Bernd Wurst commited on 2023-04-28 11:50:48
Zeige 4 geänderte Dateien mit 25 Einfügungen und 74 Löschungen.
... | ... |
@@ -428,32 +428,11 @@ function html_select($name, $options, $default='', $free='') |
428 | 428 |
} |
429 | 429 |
|
430 | 430 |
|
431 |
-function html_datepicker($nameprefix, $timestamp) |
|
432 |
-{ |
|
433 |
- $valid_days = [ 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, |
|
434 |
- 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, |
|
435 |
- 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, |
|
436 |
- 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, |
|
437 |
- 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, |
|
438 |
- 26 => 26, 27 => 27, 28 => 28, 29 => 29, 30 => 30, |
|
439 |
- 31 => 31, ]; |
|
440 |
- $valid_months = [ 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, |
|
441 |
- 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, |
|
442 |
- 11 => 11, 12 => 12, ]; |
|
443 |
- $current_year = (int) date('Y'); |
|
444 |
- $valid_years = [$current_year => $current_year, |
|
445 |
- $current_year+1 => $current_year+1, |
|
446 |
- $current_year+2 => $current_year+2, |
|
447 |
- $current_year+3 => $current_year+3, |
|
448 |
- $current_year+4 => $current_year+4, ]; |
|
449 |
- |
|
450 |
- $selected_day = date('d', $timestamp); |
|
451 |
- $selected_month = date('m', $timestamp); |
|
452 |
- $selected_year = date('Y', $timestamp); |
|
431 |
+function html_datepicker($htmlname, $timestamp) |
|
432 |
+{ |
|
433 |
+ $date = date('Y-m-d', $timestamp); |
|
453 | 434 |
$ret = ''; |
454 |
- $ret .= html_select($nameprefix.'_day', $valid_days, $selected_day, 'style="text-align: right;"').". "; |
|
455 |
- $ret .= html_select($nameprefix.'_month', $valid_months, $selected_month, 'style="text-align: right;"').". "; |
|
456 |
- $ret .= html_select($nameprefix.'_year', $valid_years, $selected_year); |
|
435 |
+ $ret .= '<input type="date" id="'.$htmlname.'" name="'.$htmlname.'" value="'.$date.'">'; |
|
457 | 436 |
return $ret; |
458 | 437 |
} |
459 | 438 |
|
... | ... |
@@ -146,47 +146,20 @@ $(document).ready(function(){ |
146 | 146 |
$('div.vmail-forward input').change(); |
147 | 147 |
|
148 | 148 |
|
149 |
- $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen', |
|
150 |
- closeText: 'schließen', closeStatus: 'ohne Änderungen schließen', |
|
151 |
- prevText: '< zurück', prevStatus: 'letzten Monat zeigen', |
|
152 |
- nextText: 'vor >', nextStatus: 'nächsten Monat zeigen', |
|
153 |
- currentText: 'heute', currentStatus: '', |
|
154 |
- monthNames: ['Januar','Februar','März','April','Mai','Juni', |
|
155 |
- 'Juli','August','September','Oktober','November','Dezember'], |
|
156 |
- monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', |
|
157 |
- 'Jul','Aug','Sep','Okt','Nov','Dez'], |
|
158 |
- monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen', |
|
159 |
- weekHeader: 'Wo', weekStatus: 'Woche des Monats', |
|
160 |
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], |
|
161 |
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
|
162 |
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], |
|
163 |
- dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d', |
|
164 |
- dateFormat: 'dd.mm.yy', firstDay: 1, |
|
165 |
- initStatus: 'Wähle ein Datum', isRTL: false}; |
|
166 |
- $.datepicker.setDefaults( $.datepicker.regional[ "de" ] ); |
|
167 |
- $.datepicker.setDefaults({ |
|
168 |
- dateFormat: 'yy-mm-dd', |
|
169 |
- minDate: 1, |
|
170 |
- maxDate: "+2m" |
|
171 |
- |
|
172 |
- }); |
|
173 |
- |
|
174 |
- $('#ar_startdate').datepicker(); |
|
175 |
- $('#ar_startdate').change(function () { |
|
176 |
- $('#ar_valid_from_date').prop('checked', true) |
|
177 |
- mindate = $('#ar_startdate').datepicker("getDate"); |
|
178 |
- mindate.setDate(mindate.getDate()+1); |
|
179 |
- $('#ar_enddate').datepicker("option", "minDate", mindate); |
|
180 |
- maxdate = $('#ar_startdate').datepicker("getDate"); |
|
181 |
- maxdate.setDate(maxdate.getDate()+60); |
|
182 |
- $('#ar_enddate').datepicker("option", "maxDate", maxdate); |
|
149 |
+ document.querySelector("#ar_startdate").addEventListener("change", (e) => { |
|
150 |
+ document.querySelector("#ar_enddate").min = document.querySelector("#ar_startdate").value; |
|
151 |
+ startdate = new Date(document.querySelector("#ar_startdate").value) |
|
152 |
+ minenddate = new Date(startdate); |
|
153 |
+ minenddate.setDate(startdate.getDate() + 1); |
|
154 |
+ document.querySelector("#ar_enddate").min = minenddate.toISOString().split("T")[0]; |
|
155 |
+ if (document.querySelector("#ar_enddate").value < document.querySelector("#ar_startdate").value) { |
|
156 |
+ document.querySelector("#ar_enddate").value = minenddate.toISOString().split("T")[0]; |
|
157 |
+ } |
|
158 |
+ maxenddate = new Date(startdate); |
|
159 |
+ maxenddate.setDate(startdate.getDate() + 60); |
|
160 |
+ document.querySelector("#ar_enddate").max = maxenddate.toISOString().split("T")[0]; |
|
183 | 161 |
}); |
184 | 162 |
|
185 |
- $('#ar_enddate').datepicker(); |
|
186 |
- $('#ar_enddate').datepicker("option", "minDate", $('#ar_startdate').val()); |
|
187 |
- $('#ar_enddate').change(function () { |
|
188 |
- $('#ar_valid_until_date').prop('checked', true) |
|
189 |
- }); |
|
190 | 163 |
}); |
191 | 164 |
|
192 | 165 |
|
... | ... |
@@ -128,25 +128,24 @@ if (! $startdate || $startdate <= date('Y-m-d')) { |
128 | 128 |
} |
129 | 129 |
$form .= "<p><input type=\"radio\" name=\"ar_valid_from\" value=\"now\" id=\"ar_valid_from_now\"{$valid_from_now_checked} /> <label for=\"ar_valid_from_now\">Ab sofort</label><br />". |
130 | 130 |
"<input type=\"radio\" name=\"ar_valid_from\" value=\"date\" id=\"ar_valid_from_date\"{$valid_from_future_checked} /> <label for=\"ar_valid_from_date\">Erst ab dem </label>". |
131 |
- "<input type=\"text\" value=\"$startdate\" id=\"ar_startdate\" name=\"ar_startdate\" /></p>"; |
|
131 |
+ "<input type=\"date\" value=\"$startdate\" id=\"ar_startdate\" name=\"ar_startdate\" min=\"".date('Y-m-d')."\" max=\"".date('Y-m-d', time() + 60*24*60*60)."\" /></p>"; |
|
132 | 132 |
|
133 |
-$valid_until_infinity_checked = ($ar['valid_until'] == null) ? ' checked="checked"' : ''; |
|
134 |
-$valid_until_date_checked = ($ar['valid_until'] != null) ? ' checked="checked"' : ''; |
|
135 | 133 |
$enddate = $ar['valid_until']; |
136 | 134 |
if (! $enddate) { |
137 | 135 |
$enddate = date('Y-m-d', time() + 7*24*60*60); |
138 | 136 |
} |
137 |
+$max_end = date('Y-m-d', time() + 60*24*60*60); |
|
138 |
+if ($ar['valid_from'] > date('Y-m-d')) { |
|
139 |
+ $max_end = date_create($ar['valid_from']); |
|
140 |
+ $max_end->modify("+60 day"); |
|
141 |
+ $max_end = $max_end->format('Y-m-d'); |
|
142 |
+} |
|
139 | 143 |
$form .= "<h4>Deaktivierung</h4>"; |
140 | 144 |
$form .= "<p><label for=\"ar_valid_until_date\">Keine Antworten mehr versenden ab dem </label>". |
141 |
- "<input type=\"text\" value=\"$enddate\" id=\"ar_enddate\" name=\"ar_enddate\" /><br/>"; |
|
145 |
+ "<input type=\"date\" value=\"$enddate\" id=\"ar_enddate\" name=\"ar_enddate\" min=\"".date('Y-m-d')."\" max=\"".$max_end."\" /><br/>"; |
|
142 | 146 |
if (!$accountlogin && ($id != 0)) { |
143 | 147 |
$form .= "<small>(Automatische Antworten sind nur befristet erlaubt. Wenn Sie diese Adresse dauerhaft stilllegen möchten, können Sie dies am Ende dieser Seite tun.)</small></p>"; |
144 | 148 |
} |
145 |
-/* |
|
146 |
-$form .= "<p><input type=\"radio\" name=\"ar_valid_until\" value=\"infinity\" id=\"ar_valid_until_infinity\"{$valid_until_infinity_checked} /> <label for=\"ar_valid_until_infinity\">Unbefristet</label><br />". |
|
147 |
- "<input type=\"radio\" name=\"ar_valid_until\" value=\"date\" id=\"ar_valid_until_date\"{$valid_until_date_checked} /> <label for=\"ar_valid_until_date\">Keine Antworten mehr versenden ab dem </label>". |
|
148 |
- "<input type=\"text\" value=\"$enddate\" id=\"ar_enddate\" name=\"ar_enddate\" /><br/><small>(Automatische Antworten sind nur befristet erlaubt. Benötigen Sie langfristig funktionierende automatische Antworten, sprechen Sie unsere Administratoren bitte an, dann suchen wir eine Lösung.)</small></p>"; |
|
149 |
-*/ |
|
150 | 149 |
|
151 | 150 |
$subject = filter_output_html($ar['subject']); |
152 | 151 |
$ar_subject_default_checked = ($subject == null) ? ' checked="checked"' : ''; |
... | ... |
@@ -26,7 +26,7 @@ if ($_GET['action'] == 'new') { |
26 | 26 |
|
27 | 27 |
$gueltig_ab = $_REQUEST['gueltig_ab']; |
28 | 28 |
if ($gueltig_ab == 'datum') { |
29 |
- $gueltig_ab = $_REQUEST['gueltig_ab_datum_year'].'-'.$_REQUEST['gueltig_ab_datum_month'].'-'.$_REQUEST['gueltig_ab_datum_day']; |
|
29 |
+ $gueltig_ab = $_REQUEST['gueltig_ab_datum']; |
|
30 | 30 |
} |
31 | 31 |
if (! check_date($gueltig_ab)) { |
32 | 32 |
system_failure('Konnte das Datum nicht auslesen'); |
33 | 33 |