1 |
diff -urN smeserver-vacation-1.1.old/root/etc/cron.d/vacation smeserver-vacation-1.1/root/etc/cron.d/vacation |
2 |
--- smeserver-vacation-1.1.old/root/etc/cron.d/vacation 1970-01-01 01:00:00.000000000 +0100 |
3 |
+++ smeserver-vacation-1.1/root/etc/cron.d/vacation 2015-09-04 18:19:50.007131821 +0200 |
4 |
@@ -0,0 +1,4 @@ |
5 |
+# Check each user account if a vacation message should be enabled |
6 |
+# or disabled based on the given From/To vacation dates |
7 |
+# Do it shortly after midnight on every day |
8 |
+0 01 * * * root /sbin/e-smith/vacation/check_vacation_dates.sh |
9 |
diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations |
10 |
--- smeserver-vacation-1.1.old/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.506912186 +0200 |
11 |
+++ smeserver-vacation-1.1/root/etc/e-smith/locale/de/etc/e-smith/web/functions/uservacations 2015-09-04 20:05:53.405096692 +0200 |
12 |
@@ -21,7 +21,39 @@ |
13 |
</entry> |
14 |
<entry> |
15 |
<base>MODIFY_DESCRIPTION</base> |
16 |
- <trans><![CDATA[ <p> Enter a vacation message here. You can use "$SUBJECT" anywhere in the text to be replaced with the subject line from the email that activated the auto-reply. </p> <p> This message must be composed of two parts separated by a blank line. The first will be integrated into the headings of the email reply, you must thus ensure you leave at least a blank line before typing your message. </p> <p> The primary domain is added to the address automatically, or you can insert a virtual domain. To change the vacation message back to the default type "reset". </p> ]]></trans> |
17 |
+ <trans><![CDATA[ |
18 |
+ <p> |
19 |
+ Geben Sie hier eine Abwesenheitsnachricht an. Sie können die Variable "$SUBJECT" an beliebiger Stelle im Nachrichtentext einfügen. An dieser Stelle wird in der generierten Abwsenheitsnachricht der Betreff derjenigen empfangenen Nachricht erscheinen, welche die automatische Abwesenheitsnachricht ausgelöst hat. |
20 |
+ </p> |
21 |
+ <p> |
22 |
+ Der Text der Abwesenheitsnachricht sollte aus zwei Teilen bestehen, die voneinander durch eine Leerzeile getrennt sind. |
23 |
+ Der obere Teil wird in den Header der generierten Abwesenheitsnachricht eingefügt. |
24 |
+ Vor dem eigentlichen Inhalt der Abwesenheitsnachricht muss also auf jeden Fall eine Leerzeile stehen. |
25 |
+ </p> |
26 |
+ <p> |
27 |
+ Die primäre Domain wird der Absenderadresse automatisch hinzugefügt. Sie können aber im "From:"-Header auch eine virtuelle Domäne verwenden. |
28 |
+ Um die Abwesenheitsnachricht auf den Standardtext zurückzusetzen geben Sie bitte "reset" ein. |
29 |
+ </p> |
30 |
+ <p> |
31 |
+ Sie können zusätzlich die entsprechenden Felder ausfüllen, um das Versenden der Abwesenheitsnachricht |
32 |
+ für diesen Benutzer-Account zum jeweiligen Datum automatisch zu aktivieren und zu deaktivieren. |
33 |
+ </p> |
34 |
+ <p> |
35 |
+ Bitte verwenden Sie dafür das Format JJJJMMTT (vierstellige Jahreszahl, zweistellige Monatszahl, zweistellige Tageszahl) |
36 |
+ und beachten Sie, dass die Sie in die beiden Felder nicht das gleiche Datum eintragen dürfen. |
37 |
+ </p> |
38 |
+ <p> |
39 |
+ Wenn Sie diese Funktionalität verwenden möchten dann belassen Sie den Eintrag "Abwesenheitsnotiz aktivieren" auf "Nein"; die Aktivierung erfolgt dann automatisch am gewünschten Datum. |
40 |
+ </p> |
41 |
+ ]]></trans> |
42 |
+ </entry> |
43 |
+ <entry> |
44 |
+ <base>VACATION_FROM</base> |
45 |
+ <trans>Abwesenheitsnotiz aktivieren am (JJJJMMTT)</trans> |
46 |
+ </entry> |
47 |
+ <entry> |
48 |
+ <base>VACATION_TO</base> |
49 |
+ <trans>Abwesenheitsnotiz deaktivieren am (JJJJMMTT)</trans> |
50 |
</entry> |
51 |
<entry> |
52 |
<base>MESSAGE</base> |
53 |
@@ -29,7 +61,7 @@ |
54 |
</entry> |
55 |
<entry> |
56 |
<base>VACATION_STATUS</base> |
57 |
- <trans>Abwesenheitsnotiz aktivieren</trans> |
58 |
+ <trans>Abwesenheitsnotiz aktiviert</trans> |
59 |
</entry> |
60 |
<entry> |
61 |
<base>FROM</base> |
62 |
diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations |
63 |
--- smeserver-vacation-1.1.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.507912125 +0200 |
64 |
+++ smeserver-vacation-1.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/uservacations 2015-09-04 19:35:46.599092069 +0200 |
65 |
@@ -42,10 +42,28 @@ |
66 |
"From: user@primary.domain" with "From: user@virtual.domain"). |
67 |
To change the vacation message back to the default type "reset". |
68 |
</p> |
69 |
+ <p> |
70 |
+ You can also fill out the "Enable vacation on" and "Disable vacation on" fields in order to |
71 |
+ automatically enable and disable sending of the vacation message for this user account on the given dates. |
72 |
+ </p> |
73 |
+ <p> |
74 |
+ The format used is YYYYMMDD (four digit year, two digit month, two digit day) |
75 |
+ and the dates in the two fields must not be the same. |
76 |
+ 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. |
77 |
+ </p> |
78 |
+ </p> |
79 |
]]> |
80 |
</trans> |
81 |
</entry> |
82 |
<entry> |
83 |
+ <base>VACATION_FROM</base> |
84 |
+ <trans>Enable vacation on (YYYYMMDD)</trans> |
85 |
+ </entry> |
86 |
+ <entry> |
87 |
+ <base>VACATION_TO</base> |
88 |
+ <trans>Disable vacation on (YYYYMMDD)</trans> |
89 |
+ </entry> |
90 |
+ <entry> |
91 |
<base>MESSAGE</base> |
92 |
<trans>Vacation message</trans> |
93 |
</entry> |
94 |
diff -urN smeserver-vacation-1.1.old/root/etc/e-smith/web/functions/uservacations smeserver-vacation-1.1/root/etc/e-smith/web/functions/uservacations |
95 |
--- smeserver-vacation-1.1.old/root/etc/e-smith/web/functions/uservacations 2015-09-04 10:53:45.503912372 +0200 |
96 |
+++ smeserver-vacation-1.1/root/etc/e-smith/web/functions/uservacations 2015-09-04 18:12:18.853099056 +0200 |
97 |
@@ -54,6 +54,14 @@ |
98 |
<field type="literal" id="FullName"> |
99 |
<label>USER_NAME</label> |
100 |
</field> |
101 |
+ |
102 |
+ <field type="text" id="EmailVacationFrom"> |
103 |
+ <label>VACATION_FROM</label> |
104 |
+ </field> |
105 |
+ |
106 |
+ <field type="text" id="EmailVacationTo"> |
107 |
+ <label>VACATION_TO</label> |
108 |
+ </field> |
109 |
|
110 |
<subroutine src="get_vacation_text()" /> |
111 |
|
112 |
diff -urN smeserver-vacation-1.1.old/root/sbin/e-smith/vacation/check_vacation_dates.sh smeserver-vacation-1.1/root/sbin/e-smith/vacation/check_vacation_dates.sh |
113 |
--- smeserver-vacation-1.1.old/root/sbin/e-smith/vacation/check_vacation_dates.sh 1970-01-01 01:00:00.000000000 +0100 |
114 |
+++ smeserver-vacation-1.1/root/sbin/e-smith/vacation/check_vacation_dates.sh 2015-09-04 18:39:09.929079461 +0200 |
115 |
@@ -0,0 +1,37 @@ |
116 |
+#!/bin/bash |
117 |
+CURRENT_DATE=`date +%Y%m%d` |
118 |
+ |
119 |
+echo "Checking vacation changes on $CURRENT_DATE" |
120 |
+ |
121 |
+# iterate over users |
122 |
+for key in `db accounts keys` |
123 |
+do |
124 |
+ if [ `db accounts gettype $key` == "user" ] |
125 |
+ then |
126 |
+ # check for EmailVacationProperty |
127 |
+ if [ -z `db accounts getprop $key EmailVacation` ] |
128 |
+ then |
129 |
+ echo "$key never went on vacation before." |
130 |
+ |
131 |
+ # if both fields are empty or contain the same value, do nothing |
132 |
+ elif [ `db accounts getprop $key EmailVacationFrom` == `db accounts getprop $key EmailVacationTo` ] |
133 |
+ then |
134 |
+ echo "Both fields empty or same date, not changing anything for $key" |
135 |
+ # db accounts setprop $key EmailVacation no |
136 |
+ |
137 |
+ elif [ `db accounts getprop $key EmailVacationFrom` == $CURRENT_DATE ] |
138 |
+ then |
139 |
+ echo "Happy holidays, $key" |
140 |
+ db accounts setprop $key EmailVacation yes |
141 |
+ |
142 |
+ elif [ `db accounts getprop $key EmailVacationTo` == $CURRENT_DATE ] |
143 |
+ then |
144 |
+ echo "Back to work, $key" |
145 |
+ db accounts setprop $key EmailVacation no |
146 |
+ |
147 |
+ else |
148 |
+ echo "Nothing to do for $key" |
149 |
+ |
150 |
+ fi |
151 |
+ fi |
152 |
+done |
153 |
diff -urN smeserver-vacation-1.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm smeserver-vacation-1.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm |
154 |
--- smeserver-vacation-1.1.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm 2015-09-04 10:53:45.503912372 +0200 |
155 |
+++ smeserver-vacation-1.1/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/uservacations.pm 2015-09-04 11:47:21.004897212 +0200 |
156 |
@@ -85,6 +85,8 @@ |
157 |
{ |
158 |
# make it clearer which uses have vacation |
159 |
my $EmailVacation = $user->prop('EmailVacation') || ''; |
160 |
+ my $EmailVacationFrom = $user->prop('EmailVacationFrom') || ''; |
161 |
+ my $EmailVacationTo = $user->prop('EmailVacationTo') || ''; |
162 |
my $status = $user->prop('EmailVacation') || ''; |
163 |
if ($status eq 'yes') { $status = 'YES'; } else { $status = ''; } |
164 |
|
165 |
@@ -94,6 +96,8 @@ |
166 |
$user->prop('LastName'), |
167 |
status => $self->localise($status), |
168 |
EmailVacation => $EmailVacation, |
169 |
+ EmailVacationFrom => $EmailVacationFrom, |
170 |
+ EmailVacationTo => $EmailVacationTo, |
171 |
Modify => $self->localise('MODIFY'), |
172 |
} |
173 |
} |
174 |
@@ -115,6 +119,8 @@ |
175 |
"User=" . $row->{User}, |
176 |
"FullName=" . $row->{FullName}, |
177 |
"EmailVacation=" . $row->{EmailVacation}, |
178 |
+ "EmailVacationFrom=" . $row->{EmailVacationFrom}, |
179 |
+ "EmailVacationTo=" . $row->{EmailVacationTo}, |
180 |
"wherenext=VACATION_PAGE_MODIFY"); |
181 |
} |
182 |
|
183 |
@@ -177,6 +183,8 @@ |
184 |
my $user = $q->param('User'); |
185 |
|
186 |
my $EmailVacation = $q->param('EmailVacation'); |
187 |
+ my $EmailVacationFrom = $q->param('EmailVacationFrom'); |
188 |
+ my $EmailVacationTo = $q->param('EmailVacationTo'); |
189 |
my $new_message = $q->param('new_message'); |
190 |
my $vfile = "/home/e-smith/files/users/$user/.vacation.msg"; |
191 |
|
192 |
@@ -228,6 +236,8 @@ |
193 |
"/home/e-smith/files/users/$user/.vacation.msg"); |
194 |
|
195 |
$adb->set_prop($user, 'EmailVacation', $EmailVacation); |
196 |
+ $adb->set_prop($user, 'EmailVacationFrom', $EmailVacationFrom); |
197 |
+ $adb->set_prop($user, 'EmailVacationTo', $EmailVacationTo); |
198 |
|
199 |
#the first is more correct but is slower |
200 |
#system ("/sbin/e-smith/signal-event", "email-update", $user) == 0 |
201 |
@@ -260,6 +270,16 @@ |
202 |
return $adb->get_prop($PanelUser, "EmailVacation"); |
203 |
} |
204 |
|
205 |
+sub get_vacation_date_from |
206 |
+{ |
207 |
+ return $adb->get_prop($PanelUser, "EmailVacationFrom"); |
208 |
+} |
209 |
+ |
210 |
+sub get_vacation_date_to |
211 |
+{ |
212 |
+ return $adb->get_prop($PanelUser, "EmailVacationTo"); |
213 |
+} |
214 |
+ |
215 |
# this formats the text to display on screen |
216 |
sub userpanel_get_vacation_text |
217 |
{ |
218 |
|