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 |