|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/compasssysweb/calendar/CalciumDir39/Operation/ |
Upload File : |
# Copyright 2000-2003, Fred Steinberg, Brown Bear Software
# Set Calendars for one Group
package SysGroupsOneGroup;
use strict;
use CGI (':standard');
use vars ('@ISA');
@ISA = ('Operation');
sub perform {
my $self = shift;
my ($groupName, $save, $cancel) =
$self->getParams (qw (GroupName Save Cancel));
my $i18n = $self->I18N;
my $prefs = $self->prefs;
my $message;
if ($cancel or !defined ($groupName) or $self->calendarName) {
print redirect ($self->makeURL ({Op => 'SysGroups'}));
return;
}
my @calendars = sort {lc($a) cmp lc($b)} MasterDB->getAllCalendars;
if ($save) {
$self->{audit_formsaved}++;
# get selected cals for the group
my @calsInGroup = param ('CalsInGroup');
# for every cal, if this group changed, save new prefs
foreach my $thisCal (@calendars) {
my $db = Database->new ($thisCal);
my $prefs = $db->getPreferences;
my @origGroups = $prefs->getGroups;
my $wasInGroup = grep /^$groupName$/, @origGroups;
my $nowInGroup = grep /^$thisCal$/, @calsInGroup;
next if ($wasInGroup == $nowInGroup);
if ($nowInGroup) {
$prefs->addGroup ($groupName);
}
else {
$prefs->deleteGroup ($groupName);
}
$db->setPreferences ($prefs);
}
}
# And display (or re-display) the form
print header;
print start_html ('-title' => $i18n->get ('Calendar Groups'),
'-bgcolor' => 'white');
print GetHTML->SysAdminHeader ($i18n, 'Calendar Groups', 1);
print startform;
print h3 ($message) if $message;
print '<center>';
print h2 ($i18n->get ('Group') . ": $groupName");
print h3 ($i18n->get ('Assign Calendars'));
my ($calsInGroup, $noGroup) = MasterDB->getCalendarsInGroup ($groupName);
print scrolling_list (-name => "CalsInGroup",
-Values => \@calendars,
-defaults => $calsInGroup,
-size => 15,
-multiple => 'true');
print '<br>';
print '<small><b>' . $i18n->get ('Note') . ': </b>';
print $i18n->get ('control-click to choose multiple calendars.');
print '</small>';
print '</center>';
print '<hr>';
print submit (-name => 'Save',
-value => $i18n->get ('Save'));
print ' ';
print submit (-name => 'Cancel',
-value => $i18n->get ('Done'));
print ' ';
print reset (-value => 'Reset');
print hidden (-name => 'Op', -value => __PACKAGE__);
print hidden (-name => 'GroupName', -value => $groupName);
print endform;
print end_html;
}
sub auditString {
my ($self, $short) = @_;
return unless $self->{audit_formsaved};
my $summary = $self->SUPER::auditString ($short);
my $message = '-';
return unless $message; # don't report if nothing changed
if ($short) {
return $summary . " $message";
} else {
return $summary . "\n\n$message";
}
}
1;