/[smecontribs]/rpms/smeserver-vacation/contribs10/smeserver-vacation-1.1-Update-for-Apache-Mod-Proxy-based-server2.patch
ViewVC logotype

Contents of /rpms/smeserver-vacation/contribs10/smeserver-vacation-1.1-Update-for-Apache-Mod-Proxy-based-server2.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Fri Jun 12 05:52:09 2020 UTC (3 years, 10 months ago) by brianr
Branch: MAIN
CVS Tags: smeserver-vacation-1_1-34_el7_sme, smeserver-vacation-1_1-31_el7_sme, smeserver-vacation-1_1-32_el7_sme, smeserver-vacation-1_1-30_el7_sme, smeserver-vacation-1_1-35_el7_sme, smeserver-vacation-1_1-36_el7_sme, smeserver-vacation-1_1-33_el7_sme, smeserver-vacation-1_1-29_el7_sme, HEAD
* Thu Jun 11 2020 Brian Read <brianr@bjsystems.co.uk> 1.1-29.sme
- Update for Apache-Mod-Proxy mode Server2 [SME:10927]

1 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Uservacations.pm smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Uservacations.pm
2 --- smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Uservacations.pm 2020-06-11 06:33:21.401187446 +0100
3 +++ smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/Controller/Uservacations.pm 1970-01-01 01:00:00.000000000 +0100
4 @@ -1,379 +0,0 @@
5 -package SrvMngr::Controller::Uservacations;
6 -#----------------------------------------------------------------------
7 -# heading : Collaboration
8 -# description : User Vacations
9 -# navigation : 3000 3150
10 -#
11 -# name : Uservacationsget, method : get, url : /uservacations, ctlact : Uservacations#main
12 -# name : Uservacationspost,method : post, url : /Uservacations, ctlact : Uservacations#do_display
13 -# name : Uservacations1, method : get, url : /Uservacations1, ctlact : Uservacations#do_display
14 -# name : Uservacations2, method : post, url : /Uservacations2, ctlact : Uservacations#do_display
15 -# routes : end
16 -#----------------------------------------------------------------------
17 -
18 -use strict;
19 -use warnings;
20 -use Mojo::Base 'Mojolicious::Controller';
21 -
22 -#use DateTime; #Not part of SME10 mix
23 -use POSIX;
24 -
25 -use Locale::gettext;
26 -use SrvMngr::I18N;
27 -use SrvMngr qw(theme_list init_session_cgi);
28 -
29 -use Data::Dumper;
30 -use esmith::util;
31 -use esmith::HostsDB;
32 -use esmith::AccountsDB;
33 -
34 -our $db = esmith::ConfigDB->open();
35 -our $adb = esmith::AccountsDB->open();
36 -
37 -our $PanelUser = $ENV{'REMOTE_USER'} ||'';
38 -$PanelUser = $1 if ($PanelUser =~ /^([a-z][\.\-a-z0-9]*)$/);
39 -
40 -our %delegatedVacations;
41 -
42 -use constant FALSE => 0;
43 -use constant TRUE => 1;
44 -
45 -sub main {
46 -
47 - my $c = shift;
48 - $c->app->log->info( $c->log_req );
49 -
50 - my %vac_datas = ();
51 - my $title = $c->l('vac_FORM_TITLE');
52 - my $modul = '';
53 -
54 - $vac_datas{trt} = 'LIST';
55 -
56 - my @vacations = get_vacation_table($c);
57 - my $empty = (scalar @vacations == 0);
58 -
59 - $vac_datas{"first"} = 'vac_MODIFY_DESCRIPTION';
60 -
61 - $c->stash(
62 - title => $title,
63 - modul => $modul,
64 - vac_datas => \%vac_datas,
65 - vacations =>\@vacations,
66 - empty => $empty
67 - );
68 - $c->render( template => 'uservacations' );
69 -}
70 -
71 -sub do_display {
72 -
73 - my $c = shift;
74 - $c->app->log->info( $c->log_req );
75 -
76 - my $rt = $c->current_route;
77 - my $trt = ( $c->param('trt') || 'LIST' );
78 -
79 - $trt = 'ADD' if ( $rt eq 'Uservacations1' );
80 - $trt = 'ADD1' if ( $rt eq 'Uservacations2' );
81 -
82 - my %vac_datas = ();
83 - my $title = $c->l('vac_FORM_TITLE');
84 - my $modul = '';
85 -
86 -
87 - if ( $trt eq 'ADD' ) {
88 - # Add or change a vacation message - called from the list panel
89 - # Get the data and pass it across.
90 - my $account = $c->param("account");
91 - my $user = $adb->get($account);
92 - my $username = $user->prop("FirstName")." ".$user->prop("LastName");
93 - my $EmailVacation = $user->prop('EmailVacation') || '';
94 - my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
95 - my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
96 - my $VacText = get_vacation_text($c);
97 - $c->stash(account=>$account,
98 - username=>$username,
99 - EmailVacation=>$EmailVacation,
100 - EmailVacationFrom=>$EmailVacationFrom,
101 - EmailVacationTo=>$EmailVacationTo,
102 - VacText=>$VacText
103 - );
104 - }
105 -
106 - if ( $trt eq 'ADD1' ) {
107 - #Add or edit vacation message.
108 - my $ret = add_vac_message($c);
109 - #Return to list page if success
110 - if ($ret eq "OK") {
111 - $trt = "LIST";
112 - $vac_datas{success} = "vac_SUCCESS";
113 -
114 - } else {
115 - my $account = $c->param("account");
116 - my $user = $adb->get($account);
117 - my $username = $user->prop("FirstName")." ".$user->prop("LastName");
118 - my $EmailVacationFrom = $c->param('EmailVacationFrom') || '';
119 - my $EmailVacationTo = $c->param('EmailVacationTo') || '';
120 - my $EmailVacation = $c->param('EmailVacation') || '';
121 - my $VacText = $c->param("VacText");
122 - $c->stash(account=>$account,
123 - username=>$username,
124 - EmailVacation=>$EmailVacation,
125 - EmailVacationFrom=>$EmailVacationFrom,
126 - EmailVacationTo=>$EmailVacationTo,
127 - VacText=>$VacText
128 - );
129 - #Error - return to Add page
130 - $trt = "ADD";
131 - $vac_datas{error} = $ret;
132 - }
133 - }
134 -
135 - if ( $trt eq 'LIST' ) {
136 -
137 - #List all the users and vacation message details.
138 - my @vacations = get_vacation_table($c);
139 - my $empty = (scalar @vacations == 0);
140 - $c->stash(
141 - empty => $empty,
142 - vacations =>\@vacations
143 - );
144 - }
145 -
146 -
147 - $vac_datas{'trt'} = $trt;
148 - $c->stash( title => $title, modul => $modul, vac_datas => \%vac_datas );
149 - $c->render( template => 'uservacations' );
150 -}
151 -
152 -sub user_accounts_exist
153 -{
154 - my $q = shift;
155 - #return scalar $adb->users;
156 - if (scalar $adb->users)
157 - { return $q->l('vac_DESCRIPTION'); }
158 -}
159 -
160 -sub get_vacation_table
161 -{
162 - my $self = shift;
163 - #my $q = $self->{cgi};
164 -
165 -#We want to retrieve granted group from DB, and retrieve users of groups
166 - my $record = $adb->get($PanelUser);
167 - my $dg=$record->prop('delegatedVacations')||'';
168 - $dg =~ s/ //g;
169 - my @g = split(/,/, $dg);
170 - my @visiblemembers = ();
171 -
172 - foreach my $g (@g) {
173 - my $members = $adb->get_prop("$g",'Members');
174 - next unless defined $members;
175 - $members =~ s/ //g;
176 - my @members = split(/,/, $members);
177 - push @visiblemembers , @members ;
178 - }
179 -
180 - foreach my $k ( @visiblemembers )
181 - {
182 - $delegatedVacations{$k}=1;
183 - }
184 -
185 -
186 - my @users = $adb->users;
187 - return () if (@users == 0); ##$self->l("ACCOUNT_USER_NONE")
188 - return () if (@visiblemembers == 0 && $dg ne '');#; #$self->l("NO_USERS_IN_GRANTED_GROUPS")
189 -
190 - my @data = ();
191 -
192 - for my $user (@users)
193 - {
194 - next if %delegatedVacations and not $delegatedVacations{$user->key};
195 - # make it clearer which uses have vacation
196 - my $EmailVacation = $user->prop('EmailVacation') || '';
197 - my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
198 - my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
199 - my $status = $user->prop('EmailVacation') || '';
200 - if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; }
201 -
202 - push @data,
203 - { User => $user->key,
204 - FullName => $user->prop('FirstName') . " " .$user->prop('LastName'),
205 - status => $self->l($status),
206 - EmailVacation => $EmailVacation,
207 - EmailVacationFrom => showDate($EmailVacationFrom),
208 - EmailVacationTo => showDate($EmailVacationTo),
209 - Modify => $self->l('vac_MODIFY'),
210 - }
211 - }
212 - return @data;
213 -}
214 -
215 -sub showDate
216 -{
217 - my $strDate = shift;
218 - my ($Year,$Month,$Day) = ($strDate =~ /(\d{4})(\d{2})(\d{2})/);
219 - #my $Unix = mktime(0,0,0,$Day,$Month,$Year);
220 - return "$Year-$Month-$Day";
221 -}
222 -
223 -
224 -sub modify_link
225 -{
226 - my ($data_item, $row, $field) = @_;
227 -
228 - return "uservacations?" .
229 - join("&",
230 - "page=0",
231 - "page_stack=",
232 - "Next=Next",
233 - "User=" . $row->{User},
234 - "FullName=" . $row->{FullName},
235 - "EmailVacation=" . $row->{EmailVacation},
236 - "EmailVacationFrom=" . $row->{EmailVacationFrom},
237 - "EmailVacationTo=" . $row->{EmailVacationTo},
238 - "wherenext=VACATION_PAGE_MODIFY");
239 -}
240 -
241 -# this formats the text to display on screen
242 -sub get_vacation_text
243 -{
244 - my $q = shift;
245 - my $domain = $db->get_value('DomainName');
246 - my $user = $q->param('account');
247 -
248 - my $fullname = $adb->get_prop($user, "FirstName") . " " .
249 - $adb->get_prop($user, "LastName");
250 -
251 - my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
252 -
253 - my $from = $q->l('vac_FROM');
254 - my $Subject = $q->l('vac_SUBJECT');
255 - my $away = $q->l('vac_AWAY_FROM_MAIL');
256 - my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
257 -
258 - my $ExistingMessage = "$from $fullname &lt\;$user\@$domain&gt\;\n"."$Subject $return\n".
259 - "\n$away\n"."\n--\n$fullname";
260 -
261 - # if exists and is not empty
262 - if (( -e $vfile ) && (! -z $vfile ))
263 - {
264 - open (VACATION, "<$vfile")
265 - or die "Error: Could not open file: $vfile\n";
266 - my @vacationTemp;
267 -
268 - #reformat so email address isn't hidden inside < >
269 - while (<VACATION>)
270 - {
271 - $_ =~ s/</&lt\;/;
272 - $_ =~ s/>/&gt\;/;
273 - push (@vacationTemp, $_);
274 - }
275 -
276 - $ExistingMessage = join ("", @vacationTemp);
277 -
278 - close VACATION;
279 - }
280 - return $ExistingMessage;
281 -}
282 -
283 -# saves the text to .vacation.msg
284 -sub add_vac_message
285 -{
286 - my $q = shift;
287 -
288 - my $domain = $db->get_value('DomainName');
289 - my $user = $q->param('account');
290 -
291 - my $EmailVacation = $q->param('EmailVacation')||"no";
292 - #die($EmailVacation);
293 - #if ($EmailVacation eq "yes") {$EmailVacation = "yes";} else {$EmailVacation = "no";}
294 -
295 - #Decode To and FROM to standard format - comes over in html5 iso format yyyy-mm-dd
296 - my $EmailVacationFrom = trim($q->param('EmailVacationFrom'));
297 - my ($fromYear,$fromMonth,$fromDay) = ($EmailVacationFrom =~ /(\d{4})-(\d{2})-(\d{2})/);
298 - $EmailVacationFrom = $fromYear.$fromMonth.$fromDay;
299 - if ($EmailVacationFrom !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_FROM_DATE_INCORRECT";}
300 - my $EmailVacationTo = trim($q->param('EmailVacationTo'));
301 - my ($toYear,$toMonth,$toDay) = ($EmailVacationTo =~ /(\d{4})-(\d{2})-(\d{2})/);
302 - $EmailVacationTo = $toYear.$toMonth.$toDay;
303 -# $EmailVacationTo =~ s/-//g; #Just take out "-".
304 - if ($EmailVacationTo !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_TO_DATE_INCORRECT";}
305 - #Check not the same or From follows To.
306 - if ($EmailVacationTo ne "" and $EmailVacationTo eq $EmailVacationFrom) {return "vac_DATES_THE_SAME";}
307 - my $UnixFrom = mktime(0,0,0,$fromDay,$fromMonth,$fromYear);
308 - my $UnixTo = mktime(0,0,0,$toDay,$toMonth,$toYear);
309 - if ($UnixTo < $UnixFrom) {return "vac_TO_DATE_MUST_BE_LATER";}
310 -
311 -
312 - my $new_message = $q->param('VacText');
313 - my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
314 -
315 - my $fullname = $adb->get_prop($user, "FirstName") . " " .
316 - $adb->get_prop($user, "LastName");
317 -
318 - my $from = 'From:';
319 - my $away = $q->l('vac_AWAY_FROM_MAIL');
320 - my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
321 -
322 - my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n".
323 - "\n$away \n"."\n--\n$fullname";
324 -
325 - my $reset = $vacation_text;
326 -
327 - # if exists and is not empty
328 - if (( -e $vfile ) && (! -z $vfile ))
329 - {
330 - open (VACATION, "<$vfile")
331 - or die "Error: Could not open file: $vfile\n";
332 - my @vacationTemp = <VACATION>;
333 - $vacation_text = join ("", @vacationTemp);
334 -
335 - close VACATION;
336 - }
337 -
338 - chomp $new_message;
339 -
340 - # reset msg to default,
341 - if ($new_message =~ /reset/)
342 - { $vacation_text = $reset; }
343 - else
344 - {
345 - #or save new_message
346 - unless ($new_message eq "")
347 - { $vacation_text = $new_message; }
348 - }
349 -
350 - # Strip out DOS Carriage Returns (CR)
351 - $vacation_text =~ s/\r//g;
352 -
353 - unlink $vfile;
354 - open (VACATION, ">$vfile")
355 - or die ("Error opening vacation message.\n");
356 -
357 - print VACATION "$vacation_text";
358 - close VACATION;
359 -
360 - esmith::util::chownFile($user, $user,
361 - "/home/e-smith/files/users/$user/.vacation.msg");
362 -
363 - $adb->set_prop($user, 'EmailVacation', $EmailVacation);
364 - $adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
365 - $adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
366 -
367 - #the first is more correct but is slower
368 - #system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
369 - system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0
370 - or die ("Error occurred updating .qmail\n");
371 -
372 - if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation"))
373 - {
374 - system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0
375 - or die ("Error resetting vacation db.\n");
376 - }
377 -
378 - return "OK";
379 -}
380 -
381 -sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
382 -
383 -1;
384 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Uservacations/en.pm smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Uservacations/en.pm
385 --- smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Uservacations/en.pm 2020-06-11 06:33:21.401187446 +0100
386 +++ smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/lib/SrvMngr/I18N/Modules/Uservacations/en.pm 1970-01-01 01:00:00.000000000 +0100
387 @@ -1,63 +0,0 @@
388 -package SrvMngr::I18N::Modules::Uservacations::en;
389 -use strict;
390 -use warnings;
391 -use utf8;
392 -use Mojo::Base 'SrvMngr::I18N';
393 -
394 -use SrvMngr::I18N::Modules::General::en;
395 -
396 -my %lexicon = (
397 -'vac_User vacations' =>'User vacations',
398 -'vac_Vacation Message' =>'Vacation Message',
399 -'vac_FORM_TITLE' =>'Change user vacation settings',
400 -'vac_DESCRIPTION' =>' You can modify a users vacation message by clicking
401 - on the link to the right of their name below.
402 -',
403 -'vac_LABEL_VACATION' =>'Vacation',
404 -'vac_NO_FORWARDS'=>'No users found for forwarding',
405 -'vac_VACATION_FROM' =>'Vacation starts on <br>(YYYY-MM-DD)',
406 -'vac_VACATION_TO' =>'Vacation finishes on <br>(YYYY-MM-DD)',
407 -'vac_VACATION_FROM1' =>'Vacation starts on',
408 -'vac_VACATION_TO1' =>'Vacation finishes on',
409 -'vac_MESSAGE' =>'Vacation message',
410 -'vac_VACATION_STATUS' =>'Enable vacation messages',
411 -'vac_FROM' =>'From:',
412 -'vac_SUBJECT' =>'Subject:',
413 -'vac_AWAY_FROM_MAIL' =>'I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.',
414 -'vac_NO_USERS_IN_GRANTED_GROUPS' =>'There are no users in the group(s) that you are granted to manage.',
415 -'vac_ANSWER_TO_OBJECT_SENDER' => 'Re: $SUBJECT - Away from my email ',
416 -'vac_FROM_DATE_INCORRECT'=>'From date must have YYYYMMDD format',
417 -'vac_TO_DATE_INCORRECT'=>'To date must have YYYYMMDD format',
418 -'vac_DATES_THE_SAME'=>"The Start and Finish dates cannot be the same",
419 -'vac_TO_DATE_MUST_BE_LATER'=>"The Finish dates cannot be earlier than the Start date",
420 -'vac_SUCCESS'=>'Vacation message saved sucessfully',
421 -'vac_MODIFY_DESCRIPTION' =>'
422 - <p>
423 - Enter a vacation message here. You can use $SUBJECT
424 - anywhere in the text to be replaced with the subject line
425 - from the email that activated the auto-reply.</p>
426 -
427 - <p>
428 - This message must be composed of two parts separated by a blank line.
429 - The first will be integrated into the headings of the email reply,
430 - you must thus ensure you leave at least a blank line before typing your message.
431 - The primary domain is added to the address automatically,or you can insert a virtual domain by replacing the domain part of the sender address
432 - in the first line of the message with the virtual domain name (eg. replace the default From: user@primary.domain with From: user@virtual.domain).
433 - To change the vacation message back to the default type reset.</p>
434 - <p>
435 - You can also fill out the Enable vacation on and Disable vacation on fields in order to
436 - automatically enable and disable sending of the vacation message for this user account on the given dates.
437 - </p>
438 - <p>
439 - The dates in the two fields must not be the same.<br>
440 - If you want to use this functionality, leave the Enable vacation messages setting at No - it will be automatically activated based on the date given.
441 - </p>'
442 -);
443 -
444 -our %Lexicon = (
445 - %{ SrvMngr::I18N::Modules::General::en::Lexicon },
446 - %lexicon
447 -);
448 -
449 -
450 -1;
451 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_add.html.ep smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_add.html.ep
452 --- smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_add.html.ep 2020-06-11 06:33:21.397187406 +0100
453 +++ smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_add.html.ep 1970-01-01 01:00:00.000000000 +0100
454 @@ -1,54 +0,0 @@
455 -<div id='vac_add'>
456 -
457 - % my $btn = l('ADD');
458 -
459 - % if ($config->{debug} == 1) {
460 - <p>
461 - %= dumper $c->current_route
462 - %= dumper $EmailVacation
463 - </p>
464 - % }
465 -
466 - %= form_for '/Uservacations2' => (method => 'POST') => begin
467 -
468 - <span class=label>
469 - %=l 'ACCOUNT'
470 - </span><span class=data>
471 - %= $account
472 - </span><br><br>
473 - <span class=label>
474 - %=l 'USER_NAME'
475 - </span><span class=data>
476 - %=$username
477 - </span><br><br>
478 - <span class=label>
479 - %=$c->render_to_string(inline =>$c->l('vac_VACATION_FROM1'))
480 - </span>
481 - <span class=data>
482 - %=date_field 'EmailVacationFrom' =>$EmailVacationFrom
483 - </span><br><br>
484 - <span class=label>
485 - %=$c->render_to_string(inline =>$c->l('vac_VACATION_TO1'))
486 - </span>
487 - <span class=data>
488 - %=date_field 'EmailVacationTo' =>$EmailVacationTo
489 - </span><br><br>
490 - <span class=label>
491 - %=l 'vac_MESSAGE'
492 - </span>
493 - <span class=data>
494 - %=text_area 'VacText' => $VacText, cols=>55, rows=>15
495 - </span><br><br>
496 - <span class=label>
497 - %=l 'vac_VACATION_STATUS'
498 - </span>
499 - <span class=data>
500 - % param EmailVacation => "$EmailVacation";
501 - %=select_field EmailVacation =>[['Yes'=>'yes'],['No'=>'no']]
502 - </span><br><br>
503 - %= hidden_field 'account' => $account
504 -
505 - %= submit_button "$btn", class => 'action'
506 - %end
507 -
508 -</div>
509 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_list.html.ep smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_list.html.ep
510 --- smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_list.html.ep 2020-06-11 06:33:21.397187406 +0100
511 +++ smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/partials/_vac_list.html.ep 1970-01-01 01:00:00.000000000 +0100
512 @@ -1,50 +0,0 @@
513 -<div id='vac_list'>
514 -
515 - %# my $btn = l('vac_CREATE_RULE');
516 -
517 - %= form_for '/Uservacations1' => (method => 'POST') => begin
518 - <br><br>
519 -
520 - % if ($empty){
521 - <br>
522 - %=l 'vac_NO_FORWARDS'
523 - % } else {
524 - <table class="sme-border"><tbody>
525 - <tr>
526 - <th class='sme-border'>
527 - %=l 'ACCOUNT'
528 - </th>
529 - <th class='sme-border'>
530 - %=l 'USER_NAME'
531 - </th>
532 - <th class='sme-border'>
533 - %=l 'vac_LABEL_VACATION'
534 - </th>
535 -
536 - <th class='sme-border'>
537 - %=$c->render_to_string(inline =>l('vac_VACATION_FROM'))
538 - </th>
539 - <th class='sme-border'>
540 - %=$c->render_to_string(inline =>l('vac_VACATION_TO'))
541 - </th>
542 - <th class='sme-border' '>
543 - %=l 'ACTION'
544 - </th>
545 - </tr>
546 - % foreach my $vacation (@$vacations) {
547 - <tr>
548 - %= t td => (class => 'sme-border') => $vacation->{"User"}
549 - %= t td => (class => 'sme-border') => $vacation->{"FullName"}
550 - %= t td => (class => 'sme-border') => $vacation->{"status"}
551 - %= t td => (class => 'sme-border') => $vacation->{"EmailVacationFrom"}
552 - %= t td => (class => 'sme-border') => $vacation->{"EmailVacationTo"}
553 - <td>
554 - <a href="/server-manager2/Uservacations1?trt=ADD&account=<%= $vacation->{"User"}%>"><%=l 'MODIFY'%></a>
555 - </td>
556 - </tr>
557 - %}
558 - </tbody>
559 - </table>
560 - %}
561 - % end
562 -</div>
563 diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/uservacations.html.ep smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/uservacations.html.ep
564 --- smeserver-vacation-1.1.old/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/uservacations.html.ep 2020-06-11 06:33:21.397187406 +0100
565 +++ smeserver-vacation-1.1/root/etc/e-smith/web/panels/manager2/cgi-bin/srvmngr/themes/default/templates/uservacations.html.ep 1970-01-01 01:00:00.000000000 +0100
566 @@ -1,42 +0,0 @@
567 -% layout 'default', title => "Sme server 2 - User Vacations", share_dir => './';
568 -
569 -% content_for 'module' => begin
570 -<div id="module">
571 -
572 - % if ($config->{debug} == 1) {
573 - <p>
574 - %= dumper $c->current_route
575 - </p>
576 - % }
577 -
578 - <h1><%=$title%></h1>
579 - %= $modul
580 -
581 - %if ($vac_datas->{first}) {
582 - <br>
583 - %=$c->render_to_string(inline =>$c->l($vac_datas->{first}))
584 -
585 - %} elsif ($vac_datas->{success}) {
586 - <div class='"success"'>
587 - <h2> Operation Status Report</h2>
588 - %= $c->l($vac_datas->{success});
589 - </div>
590 -
591 - %} elsif ($vac_datas->{error}) {
592 - <div class='sme-error'>
593 - <h2> Operation Status Report - error</h2>
594 - %= $c->l($vac_datas->{error});
595 - </div>
596 - %}
597 -
598 -
599 - % if ($vac_datas->{trt} eq 'ADD') {
600 - %= include 'partials/_vac_add'
601 - %} elsif ($vac_datas->{trt} eq 'ADD1') {
602 - %= include 'partials/_vac_add'
603 - %} else {
604 - %= include 'partials/_vac_list'
605 - %}
606 -
607 -</div>
608 -%end
609 diff -urN smeserver-vacation-1.1.old/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm smeserver-vacation-1.1/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm
610 --- smeserver-vacation-1.1.old/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm 1970-01-01 01:00:00.000000000 +0100
611 +++ smeserver-vacation-1.1/root/usr/share/smanager/lib/SrvMngr/Controller/Uservacations.pm 2020-06-10 18:28:00.000000000 +0100
612 @@ -0,0 +1,380 @@
613 +package SrvMngr::Controller::Uservacations;
614 +#----------------------------------------------------------------------
615 +# heading : Collaboration
616 +# description : User Vacations
617 +# navigation : 3000 3150
618 +#
619 +# name : Uservacationsget, method : get, url : /uservacations, ctlact : Uservacations#main
620 +# name : Uservacationspost,method : post, url : /Uservacations, ctlact : Uservacations#do_display
621 +# name : Uservacations1, method : get, url : /Uservacations1, ctlact : Uservacations#do_display
622 +# name : Uservacations2, method : post, url : /Uservacations2, ctlact : Uservacations#do_display
623 +# routes : end
624 +#----------------------------------------------------------------------
625 +
626 +use strict;
627 +use warnings;
628 +use Mojo::Base 'Mojolicious::Controller';
629 +
630 +#use DateTime; #Not part of SME10 mix
631 +use POSIX;
632 +
633 +use Locale::gettext;
634 +use SrvMngr::I18N;
635 +use SrvMngr qw(theme_list init_session);
636 +
637 +use Data::Dumper;
638 +use esmith::util;
639 +use esmith::HostsDB;
640 +use esmith::AccountsDB;
641 +
642 +our $db = esmith::ConfigDB->open();
643 +our $adb = esmith::AccountsDB->open();
644 +
645 +our $PanelUser = $ENV{'REMOTE_USER'} ||'';
646 +$PanelUser = $1 if ($PanelUser =~ /^([a-z][\.\-a-z0-9]*)$/);
647 +
648 +our %delegatedVacations;
649 +
650 +use constant FALSE => 0;
651 +use constant TRUE => 1;
652 +
653 +sub main {
654 +
655 + my $c = shift;
656 + $c->app->log->info( $c->log_req );
657 +
658 + my %vac_datas = ();
659 + my $title = $c->l('vac_FORM_TITLE');
660 + my $modul = '';
661 +
662 + $vac_datas{trt} = 'LIST';
663 +
664 + my @vacations = get_vacation_table($c);
665 + my $empty = (scalar @vacations == 0);
666 +
667 + $vac_datas{"first"} = 'vac_MODIFY_DESCRIPTION';
668 +
669 + $c->stash(
670 + title => $title,
671 + modul => $modul,
672 + vac_datas => \%vac_datas,
673 + vacations =>\@vacations,
674 + empty => $empty
675 + );
676 + $c->render( template => 'uservacations' );
677 +}
678 +
679 +sub do_display {
680 +
681 + my $c = shift;
682 + $c->app->log->info( $c->log_req );
683 +
684 + my $rt = $c->current_route;
685 + my $trt = ( $c->param('trt') || 'LIST' );
686 +
687 + $trt = 'ADD' if ( $rt eq 'Uservacations1' );
688 + $trt = 'ADD1' if ( $rt eq 'Uservacations2' );
689 +
690 + my %vac_datas = ();
691 + my $title = $c->l('vac_FORM_TITLE');
692 + my $modul = '';
693 +
694 +
695 + if ( $trt eq 'ADD' ) {
696 + # Add or change a vacation message - called from the list panel
697 + # Get the data and pass it across.
698 + my $account = $c->param("account");
699 + my $user = $adb->get($account);
700 + my $username = $user->prop("FirstName")." ".$user->prop("LastName");
701 + my $EmailVacation = $user->prop('EmailVacation') || '';
702 + my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
703 + my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
704 + my $VacText = get_vacation_text($c);
705 + $c->stash(account=>$account,
706 + username=>$username,
707 + EmailVacation=>$EmailVacation,
708 + EmailVacationFrom=>$EmailVacationFrom,
709 + EmailVacationTo=>$EmailVacationTo,
710 + VacText=>$VacText
711 + );
712 + }
713 +
714 + if ( $trt eq 'ADD1' ) {
715 + #Add or edit vacation message.
716 + my $ret = add_vac_message($c);
717 + #Return to list page if success
718 + if ($ret eq "OK") {
719 + $trt = "LIST";
720 + $vac_datas{success} = "vac_SUCCESS";
721 +
722 + } else {
723 + my $account = $c->param("account");
724 + my $user = $adb->get($account);
725 + my $username = $user->prop("FirstName")." ".$user->prop("LastName");
726 + my $EmailVacationFrom = $c->param('EmailVacationFrom') || '';
727 + my $EmailVacationTo = $c->param('EmailVacationTo') || '';
728 + my $EmailVacation = $c->param('EmailVacation') || '';
729 + my $VacText = $c->param("VacText");
730 + $c->stash(account=>$account,
731 + username=>$username,
732 + EmailVacation=>$EmailVacation,
733 + EmailVacationFrom=>$EmailVacationFrom,
734 + EmailVacationTo=>$EmailVacationTo,
735 + VacText=>$VacText
736 + );
737 + #Error - return to Add page
738 + $trt = "ADD";
739 + $vac_datas{error} = $ret;
740 + }
741 + }
742 +
743 + if ( $trt eq 'LIST' ) {
744 +
745 + #List all the users and vacation message details.
746 + my @vacations = get_vacation_table($c);
747 + my $empty = (scalar @vacations == 0);
748 + $c->stash(
749 + empty => $empty,
750 + vacations =>\@vacations
751 + );
752 + }
753 +
754 +
755 + $vac_datas{'trt'} = $trt;
756 + $c->stash( title => $title, modul => $modul, vac_datas => \%vac_datas );
757 + $c->render( template => 'uservacations' );
758 +}
759 +
760 +sub user_accounts_exist
761 +{
762 + my $q = shift;
763 + #return scalar $adb->users;
764 + if (scalar $adb->users)
765 + { return $q->l('vac_DESCRIPTION'); }
766 +}
767 +
768 +sub get_vacation_table
769 +{
770 + my $self = shift;
771 +
772 +#We want to retrieve granted group from DB, and retrieve users of groups
773 + my $record = $adb->get($PanelUser);
774 + my $dg;
775 + if ($record) {$dg=$record->prop('delegatedVacations')||'';}
776 + else {$dg = '';}
777 + $dg =~ s/ //g;
778 + my @g = split(/,/, $dg);
779 + my @visiblemembers = ();
780 +
781 + foreach my $g (@g) {
782 + my $members = $adb->get_prop("$g",'Members');
783 + next unless defined $members;
784 + $members =~ s/ //g;
785 + my @members = split(/,/, $members);
786 + push @visiblemembers , @members ;
787 + }
788 +
789 + foreach my $k ( @visiblemembers )
790 + {
791 + $delegatedVacations{$k}=1;
792 + }
793 +
794 +
795 + my @users = $adb->users;
796 + return () if (@users == 0); ##$self->l("ACCOUNT_USER_NONE")
797 + return () if (@visiblemembers == 0 && $dg ne '');#; #$self->l("NO_USERS_IN_GRANTED_GROUPS")
798 +
799 + my @data = ();
800 +
801 + for my $user (@users)
802 + {
803 + next if %delegatedVacations and not $delegatedVacations{$user->key};
804 + # make it clearer which uses have vacation
805 + my $EmailVacation = $user->prop('EmailVacation') || '';
806 + my $EmailVacationFrom = $user->prop('EmailVacationFrom') || '';
807 + my $EmailVacationTo = $user->prop('EmailVacationTo') || '';
808 + my $status = $user->prop('EmailVacation') || '';
809 + if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; }
810 +
811 + push @data,
812 + { User => $user->key,
813 + FullName => $user->prop('FirstName') . " " .$user->prop('LastName'),
814 + status => $self->l($status),
815 + EmailVacation => $EmailVacation,
816 + EmailVacationFrom => showDate($EmailVacationFrom),
817 + EmailVacationTo => showDate($EmailVacationTo),
818 + Modify => $self->l('vac_MODIFY'),
819 + }
820 + }
821 + return @data;
822 +}
823 +
824 +sub showDate
825 +{
826 + my $strDate = shift;
827 + my ($Year,$Month,$Day) = ($strDate =~ /(\d{4})(\d{2})(\d{2})/);
828 + #my $Unix = mktime(0,0,0,$Day,$Month,$Year);
829 + return "$Year-$Month-$Day";
830 +}
831 +
832 +
833 +sub modify_link
834 +{
835 + my ($data_item, $row, $field) = @_;
836 +
837 + return "uservacations?" .
838 + join("&",
839 + "page=0",
840 + "page_stack=",
841 + "Next=Next",
842 + "User=" . $row->{User},
843 + "FullName=" . $row->{FullName},
844 + "EmailVacation=" . $row->{EmailVacation},
845 + "EmailVacationFrom=" . $row->{EmailVacationFrom},
846 + "EmailVacationTo=" . $row->{EmailVacationTo},
847 + "wherenext=VACATION_PAGE_MODIFY");
848 +}
849 +
850 +# this formats the text to display on screen
851 +sub get_vacation_text
852 +{
853 + my $q = shift;
854 + my $domain = $db->get_value('DomainName');
855 + my $user = $q->param('account');
856 +
857 + my $fullname = $adb->get_prop($user, "FirstName") . " " .
858 + $adb->get_prop($user, "LastName");
859 +
860 + my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
861 +
862 + my $from = $q->l('vac_FROM');
863 + my $Subject = $q->l('vac_SUBJECT');
864 + my $away = $q->l('vac_AWAY_FROM_MAIL');
865 + my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
866 +
867 + my $ExistingMessage = "$from $fullname &lt\;$user\@$domain&gt\;\n"."$Subject $return\n".
868 + "\n$away\n"."\n--\n$fullname";
869 +
870 + # if exists and is not empty
871 + if (( -e $vfile ) && (! -z $vfile ))
872 + {
873 + open (VACATION, "<$vfile")
874 + or die "Error: Could not open file: $vfile\n";
875 + my @vacationTemp;
876 +
877 + #reformat so email address isn't hidden inside < >
878 + while (<VACATION>)
879 + {
880 + $_ =~ s/</&lt\;/;
881 + $_ =~ s/>/&gt\;/;
882 + push (@vacationTemp, $_);
883 + }
884 +
885 + $ExistingMessage = join ("", @vacationTemp);
886 +
887 + close VACATION;
888 + }
889 + return $ExistingMessage;
890 +}
891 +
892 +# saves the text to .vacation.msg
893 +sub add_vac_message
894 +{
895 + my $q = shift;
896 +
897 + my $domain = $db->get_value('DomainName');
898 + my $user = $q->param('account');
899 +
900 + my $EmailVacation = $q->param('EmailVacation')||"no";
901 + #die($EmailVacation);
902 + #if ($EmailVacation eq "yes") {$EmailVacation = "yes";} else {$EmailVacation = "no";}
903 +
904 + #Decode To and FROM to standard format - comes over in html5 iso format yyyy-mm-dd
905 + my $EmailVacationFrom = trim($q->param('EmailVacationFrom'));
906 + my ($fromYear,$fromMonth,$fromDay) = ($EmailVacationFrom =~ /(\d{4})-(\d{2})-(\d{2})/);
907 + $EmailVacationFrom = $fromYear.$fromMonth.$fromDay;
908 + if ($EmailVacationFrom !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_FROM_DATE_INCORRECT";}
909 + my $EmailVacationTo = trim($q->param('EmailVacationTo'));
910 + my ($toYear,$toMonth,$toDay) = ($EmailVacationTo =~ /(\d{4})-(\d{2})-(\d{2})/);
911 + $EmailVacationTo = $toYear.$toMonth.$toDay;
912 +# $EmailVacationTo =~ s/-//g; #Just take out "-".
913 + if ($EmailVacationTo !~ m/^2[0-9]{3}[0|1][0-9][0-3][0-9]$/ and $EmailVacationFrom ne "") {return "vac_TO_DATE_INCORRECT";}
914 + #Check not the same or From follows To.
915 + if ($EmailVacationTo ne "" and $EmailVacationTo eq $EmailVacationFrom) {return "vac_DATES_THE_SAME";}
916 + my $UnixFrom = mktime(0,0,0,$fromDay,$fromMonth,$fromYear);
917 + my $UnixTo = mktime(0,0,0,$toDay,$toMonth,$toYear);
918 + if ($UnixTo < $UnixFrom) {return "vac_TO_DATE_MUST_BE_LATER";}
919 +
920 +
921 + my $new_message = $q->param('VacText');
922 + my $vfile = "/home/e-smith/files/users/$user/.vacation.msg";
923 +
924 + my $fullname = $adb->get_prop($user, "FirstName") . " " .
925 + $adb->get_prop($user, "LastName");
926 +
927 + my $from = 'From:';
928 + my $away = $q->l('vac_AWAY_FROM_MAIL');
929 + my $return = $q->l('vac_ANSWER_TO_OBJECT_SENDER');
930 +
931 + my $vacation_text = "$from $fullname \<$user\@$domain\>\n"."Subject: $return\n".
932 + "\n$away \n"."\n--\n$fullname";
933 +
934 + my $reset = $vacation_text;
935 +
936 + # if exists and is not empty
937 + if (( -e $vfile ) && (! -z $vfile ))
938 + {
939 + open (VACATION, "<$vfile")
940 + or die "Error: Could not open file: $vfile\n";
941 + my @vacationTemp = <VACATION>;
942 + $vacation_text = join ("", @vacationTemp);
943 +
944 + close VACATION;
945 + }
946 +
947 + chomp $new_message;
948 +
949 + # reset msg to default,
950 + if ($new_message =~ /reset/)
951 + { $vacation_text = $reset; }
952 + else
953 + {
954 + #or save new_message
955 + unless ($new_message eq "")
956 + { $vacation_text = $new_message; }
957 + }
958 +
959 + # Strip out DOS Carriage Returns (CR)
960 + $vacation_text =~ s/\r//g;
961 +
962 + unlink $vfile;
963 + open (VACATION, ">$vfile")
964 + or die ("Error opening vacation message.\n");
965 +
966 + print VACATION "$vacation_text";
967 + close VACATION;
968 +
969 + esmith::util::chownFile($user, $user,
970 + "/home/e-smith/files/users/$user/.vacation.msg");
971 +
972 + $adb->set_prop($user, 'EmailVacation', $EmailVacation);
973 + $adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom);
974 + $adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo);
975 +
976 + #the first is more correct but is slower
977 + #system ("/sbin/e-smith/signal-event", "email-update", $user) == 0
978 + system ("/etc/e-smith/events/actions/qmail-update-user event $user") == 0
979 + or die ("Error occurred updating .qmail\n");
980 +
981 + if (($EmailVacation eq 'no') && ( -e "/home/e-smith/files/users/$user/.vacation"))
982 + {
983 + system ("/bin/rm /home/e-smith/files/users/$user/.vacation") == 0
984 + or die ("Error resetting vacation db.\n");
985 + }
986 +
987 + return "OK";
988 +}
989 +
990 +sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
991 +
992 +1;
993 diff -urN smeserver-vacation-1.1.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Uservacations/en.pm smeserver-vacation-1.1/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Uservacations/en.pm
994 --- smeserver-vacation-1.1.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Uservacations/en.pm 1970-01-01 01:00:00.000000000 +0100
995 +++ smeserver-vacation-1.1/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Uservacations/en.pm 2020-05-19 15:36:00.000000000 +0100
996 @@ -0,0 +1,63 @@
997 +package SrvMngr::I18N::Modules::Uservacations::en;
998 +use strict;
999 +use warnings;
1000 +use utf8;
1001 +use Mojo::Base 'SrvMngr::I18N';
1002 +
1003 +use SrvMngr::I18N::Modules::General::en;
1004 +
1005 +my %lexicon = (
1006 +'vac_User vacations' =>'User vacations',
1007 +'vac_Vacation Message' =>'Vacation Message',
1008 +'vac_FORM_TITLE' =>'Change user vacation settings',
1009 +'vac_DESCRIPTION' =>' You can modify a users vacation message by clicking
1010 + on the link to the right of their name below.
1011 +',
1012 +'vac_LABEL_VACATION' =>'Vacation',
1013 +'vac_NO_FORWARDS'=>'No users found for forwarding',
1014 +'vac_VACATION_FROM' =>'Vacation starts on <br>(YYYY-MM-DD)',
1015 +'vac_VACATION_TO' =>'Vacation finishes on <br>(YYYY-MM-DD)',
1016 +'vac_VACATION_FROM1' =>'Vacation starts on',
1017 +'vac_VACATION_TO1' =>'Vacation finishes on',
1018 +'vac_MESSAGE' =>'Vacation message',
1019 +'vac_VACATION_STATUS' =>'Enable vacation messages',
1020 +'vac_FROM' =>'From:',
1021 +'vac_SUBJECT' =>'Subject:',
1022 +'vac_AWAY_FROM_MAIL' =>'I will not be reading my mail for a while. Your mail regarding $SUBJECT will be read when I return.',
1023 +'vac_NO_USERS_IN_GRANTED_GROUPS' =>'There are no users in the group(s) that you are granted to manage.',
1024 +'vac_ANSWER_TO_OBJECT_SENDER' => 'Re: $SUBJECT - Away from my email ',
1025 +'vac_FROM_DATE_INCORRECT'=>'From date must have YYYYMMDD format',
1026 +'vac_TO_DATE_INCORRECT'=>'To date must have YYYYMMDD format',
1027 +'vac_DATES_THE_SAME'=>"The Start and Finish dates cannot be the same",
1028 +'vac_TO_DATE_MUST_BE_LATER'=>"The Finish dates cannot be earlier than the Start date",
1029 +'vac_SUCCESS'=>'Vacation message saved sucessfully',
1030 +'vac_MODIFY_DESCRIPTION' =>'
1031 + <p>
1032 + Enter a vacation message here. You can use $SUBJECT
1033 + anywhere in the text to be replaced with the subject line
1034 + from the email that activated the auto-reply.</p>
1035 +
1036 + <p>
1037 + This message must be composed of two parts separated by a blank line.
1038 + The first will be integrated into the headings of the email reply,
1039 + you must thus ensure you leave at least a blank line before typing your message.
1040 + The primary domain is added to the address automatically,or you can insert a virtual domain by replacing the domain part of the sender address
1041 + in the first line of the message with the virtual domain name (eg. replace the default From: user@primary.domain with From: user@virtual.domain).
1042 + To change the vacation message back to the default type reset.</p>
1043 + <p>
1044 + You can also fill out the Enable vacation on and Disable vacation on fields in order to
1045 + automatically enable and disable sending of the vacation message for this user account on the given dates.
1046 + </p>
1047 + <p>
1048 + The dates in the two fields must not be the same.<br>
1049 + If you want to use this functionality, leave the Enable vacation messages setting at No - it will be automatically activated based on the date given.
1050 + </p>'
1051 +);
1052 +
1053 +our %Lexicon = (
1054 + %{ SrvMngr::I18N::Modules::General::en::Lexicon },
1055 + %lexicon
1056 +);
1057 +
1058 +
1059 +1;
1060 diff -urN smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/partials/_vac_add.html.ep smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/partials/_vac_add.html.ep
1061 --- smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/partials/_vac_add.html.ep 1970-01-01 01:00:00.000000000 +0100
1062 +++ smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/partials/_vac_add.html.ep 2020-05-19 15:36:00.000000000 +0100
1063 @@ -0,0 +1,54 @@
1064 +<div id='vac_add'>
1065 +
1066 + % my $btn = l('ADD');
1067 +
1068 + % if ($config->{debug} == 1) {
1069 + <p>
1070 + %= dumper $c->current_route
1071 + %= dumper $EmailVacation
1072 + </p>
1073 + % }
1074 +
1075 + %= form_for '/Uservacations2' => (method => 'POST') => begin
1076 +
1077 + <span class=label>
1078 + %=l 'ACCOUNT'
1079 + </span><span class=data>
1080 + %= $account
1081 + </span><br><br>
1082 + <span class=label>
1083 + %=l 'USER_NAME'
1084 + </span><span class=data>
1085 + %=$username
1086 + </span><br><br>
1087 + <span class=label>
1088 + %=$c->render_to_string(inline =>$c->l('vac_VACATION_FROM1'))
1089 + </span>
1090 + <span class=data>
1091 + %=date_field 'EmailVacationFrom' =>$EmailVacationFrom
1092 + </span><br><br>
1093 + <span class=label>
1094 + %=$c->render_to_string(inline =>$c->l('vac_VACATION_TO1'))
1095 + </span>
1096 + <span class=data>
1097 + %=date_field 'EmailVacationTo' =>$EmailVacationTo
1098 + </span><br><br>
1099 + <span class=label>
1100 + %=l 'vac_MESSAGE'
1101 + </span>
1102 + <span class=data>
1103 + %=text_area 'VacText' => $VacText, cols=>55, rows=>15
1104 + </span><br><br>
1105 + <span class=label>
1106 + %=l 'vac_VACATION_STATUS'
1107 + </span>
1108 + <span class=data>
1109 + % param EmailVacation => "$EmailVacation";
1110 + %=select_field EmailVacation =>[['Yes'=>'yes'],['No'=>'no']]
1111 + </span><br><br>
1112 + %= hidden_field 'account' => $account
1113 +
1114 + %= submit_button "$btn", class => 'action'
1115 + %end
1116 +
1117 +</div>
1118 diff -urN smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/partials/_vac_list.html.ep smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/partials/_vac_list.html.ep
1119 --- smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/partials/_vac_list.html.ep 1970-01-01 01:00:00.000000000 +0100
1120 +++ smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/partials/_vac_list.html.ep 2020-06-10 18:22:00.000000000 +0100
1121 @@ -0,0 +1,50 @@
1122 +<div id='vac_list'>
1123 +
1124 + %# my $btn = l('vac_CREATE_RULE');
1125 +
1126 + %= form_for '/Uservacations1' => (method => 'POST') => begin
1127 + <br><br>
1128 +
1129 + % if ($empty){
1130 + <br>
1131 + %=l 'vac_NO_FORWARDS'
1132 + % } else {
1133 + <table class="sme-border"><tbody>
1134 + <tr>
1135 + <th class='sme-border'>
1136 + %=l 'ACCOUNT'
1137 + </th>
1138 + <th class='sme-border'>
1139 + %=l 'USER_NAME'
1140 + </th>
1141 + <th class='sme-border'>
1142 + %=l 'vac_LABEL_VACATION'
1143 + </th>
1144 +
1145 + <th class='sme-border'>
1146 + %=$c->render_to_string(inline =>l('vac_VACATION_FROM'))
1147 + </th>
1148 + <th class='sme-border'>
1149 + %=$c->render_to_string(inline =>l('vac_VACATION_TO'))
1150 + </th>
1151 + <th class='sme-border' '>
1152 + %=l 'ACTION'
1153 + </th>
1154 + </tr>
1155 + % foreach my $vacation (@$vacations) {
1156 + <tr>
1157 + %= t td => (class => 'sme-border') => $vacation->{"User"}
1158 + %= t td => (class => 'sme-border') => $vacation->{"FullName"}
1159 + %= t td => (class => 'sme-border') => $vacation->{"status"}
1160 + %= t td => (class => 'sme-border') => $vacation->{"EmailVacationFrom"}
1161 + %= t td => (class => 'sme-border') => $vacation->{"EmailVacationTo"}
1162 + <td>
1163 + <a href="/smanager/Uservacations1?trt=ADD&account=<%= $vacation->{"User"}%>"><%=l 'MODIFY'%></a>
1164 + </td>
1165 + </tr>
1166 + %}
1167 + </tbody>
1168 + </table>
1169 + %}
1170 + % end
1171 +</div>
1172 diff -urN smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/uservacations.html.ep smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/uservacations.html.ep
1173 --- smeserver-vacation-1.1.old/root/usr/share/smanager/themes/default/templates/uservacations.html.ep 1970-01-01 01:00:00.000000000 +0100
1174 +++ smeserver-vacation-1.1/root/usr/share/smanager/themes/default/templates/uservacations.html.ep 2020-05-19 15:36:00.000000000 +0100
1175 @@ -0,0 +1,42 @@
1176 +% layout 'default', title => "Sme server 2 - User Vacations", share_dir => './';
1177 +
1178 +% content_for 'module' => begin
1179 +<div id="module">
1180 +
1181 + % if ($config->{debug} == 1) {
1182 + <p>
1183 + %= dumper $c->current_route
1184 + </p>
1185 + % }
1186 +
1187 + <h1><%=$title%></h1>
1188 + %= $modul
1189 +
1190 + %if ($vac_datas->{first}) {
1191 + <br>
1192 + %=$c->render_to_string(inline =>$c->l($vac_datas->{first}))
1193 +
1194 + %} elsif ($vac_datas->{success}) {
1195 + <div class='"success"'>
1196 + <h2> Operation Status Report</h2>
1197 + %= $c->l($vac_datas->{success});
1198 + </div>
1199 +
1200 + %} elsif ($vac_datas->{error}) {
1201 + <div class='sme-error'>
1202 + <h2> Operation Status Report - error</h2>
1203 + %= $c->l($vac_datas->{error});
1204 + </div>
1205 + %}
1206 +
1207 +
1208 + % if ($vac_datas->{trt} eq 'ADD') {
1209 + %= include 'partials/_vac_add'
1210 + %} elsif ($vac_datas->{trt} eq 'ADD1') {
1211 + %= include 'partials/_vac_add'
1212 + %} else {
1213 + %= include 'partials/_vac_list'
1214 + %}
1215 +
1216 +</div>
1217 +%end

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed