KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/compasssysweb/calendar/CalciumDir39/Operation/SysGroupsOneGroup.pm
# 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 '&nbsp;';
    print submit (-name  => 'Cancel',
                  -value => $i18n->get ('Done'));
    print '&nbsp;';
    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;

Anon7 - 2021