ulrich
2021-11-28 aec40e9562272fb227671e9ff5320fcd078b2c77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<html>
  <head>
    <title>Monatsbox-Demo</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="monatsbox.css">    
    <link rel="stylesheet" type="text/css" href="stile.css">    
  </head>
  <body>
    <h3>Monatsbox-Demo</h3>    
    
    <p>
      Diese Demoseite zeigt die Monatsbox in Aktion. Die Bedienelemente 
      k&ouml;nnen direkt in der Seite ausprobiert werden. Einzelheiten 
      zu deren Funktionsweise erläutert die <a href="https://uhilger.de/data/pg/monatsbox/">Produktseite</a>.
    </p>
    
    <h4><span class="monat"></span>&nbsp;<span class="jahr"></span></h4>
    <div class="nav"><a onclick="zurueck()">&larr;</a>&nbsp;<a onclick="vor()">&rarr;</a></div>
    <div class="monatsbox">Monatsbox</div>
    <div class="datum-anzeige">Gew&auml;hltes Datum: <span class="datum-wahl">-</span></div>
    <div class="ereignis-eingabe">Tage mit Ereignissen: 
      <input class="ereignisliste" type="text" onkeyup="ereignisseDarstellen()">
      <br/>&nbsp;&nbsp;<span class="kleiner">(mit Komma getrennt, z.B. 3,7,19)</span>
    </div>    
    <div>
      <label>Ruhetag: 
        <select id="rtag" size="1" onchange="rtagWechsel()">
          <option value="0">Sonntag</option>
          <option value="1">Montag</option>
          <option value="2">Dienstag</option>
          <option value="3">Mittwoch</option>
          <option value="4">Donnerstag</option>
          <option value="5">Freitag</option>
          <option value="6">Samstag</option>
        </select>
      </label>      
    </div>
    <div>
      <label>Erster Tag: 
        <select id="etag" size="1" onchange="etagWechsel()">
          <option value="1">Montag</option>
          <option value="2">Dienstag</option>
          <option value="3">Mittwoch</option>
          <option value="4">Donnerstag</option>
          <option value="5">Freitag</option>
          <option value="6">Samstag</option>
          <option value="0">Sonntag</option>
        </select>
      </label>      
    </div>
    <script src="monatsbox.js"></script>
    <script>
      var jahr;
      var monat;
      var starttag = 1;
      var ruhetag = 0;
      var monatsnamen = new Array("Januar", "Februar", "März", "April", "Mai", 
          "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
      var tagesnamen = new Array("Sonntag","Montag", "Dienstag", "Mittwoch", 
          "Donnerstag", "Freitag", "Samstag");
      var fabrik = new MonatsboxFabrik();
      var ereignisse = new Map;
      document.addEventListener('DOMContentLoaded', function () {        
        document.querySelector('.ereignisliste').value = '';
        var jetzt = new Date();
        jahr = jetzt.getFullYear();
        monat = jetzt.getMonth();
        boxAnzeigen();
      });      
      
      function zurueck() {
        if(--monat < 0) {
          --jahr;
          monat = 11;
        }
        boxAnzeigen();
      }
      
      function vor() {
        if(++monat > 11) {
          ++jahr;
          monat = 0;
        }
        boxAnzeigen();
      }
      
      function ereignisseDarstellen() {
        var ereignisInhalt = document.querySelector('.ereignisliste').value;
        ereignisse = new Map;
        var teile = ereignisInhalt.split(',');
        for(var i = 0; i < teile.length; i++) {
          ereignisse.set(Number(teile[i]), 'monatsboxFeiertag');
        }
        boxAnzeigen();
      }
      
      function rtagWechsel() {
        ruhetag = Number(document.querySelector('#rtag').value);
        boxAnzeigen();
      }
      
      function etagWechsel() {
        starttag = Number(document.querySelector('#etag').value);
        boxAnzeigen();
      }
      
      function boxAnzeigen() {
        document.querySelector('.jahr').textContent = jahr;
        document.querySelector('.monat').textContent = monatsnamen[monat];
        var elem = document.querySelector('.monatsbox');
        elem.removeChild(elem.firstChild);
        document.querySelector('.datum-wahl').textContent = 'Kein Datum ausgewählt.';
        elem.appendChild(fabrik.monatsboxErzeugen(jahr, monat, starttag, ruhetag, ereignisse, function(event) {
          var d = fabrik.datum(event);
          document.querySelector('.datum-wahl').textContent = 
                  d.toLocaleDateString('de-DE') + ' (' + 
                  d.toISOString() + ')';
        }));        
      }
    </script>
  </body>
</html>