<form>
<div data-map="jobs:jobSelection"></div>
<div data-map="classes:classSelection"></div>
+ <center>
+ <ul class="pagination">
+ <li><a data-bind="onclick:lastWeek"><</a></li>
+ <li><a data-content="week"></a></li>
+ <li><a data-bind="onclick:nextWeek">></a></li>
+ </ul>
+ </center>
<div data-map="calendar:calendar"></div>
+ <div class="alert alert-info" data-bind="@display:displayInfo">
+ Es gibt keine Termine in dieser Woche
+ </div>
</form>
</body>
</html>
model=window.model||{};
+var lastxhr;
+
function load(path,onload,onerror){
onerror = onerror||function(){};
var xhr = new XMLHttpRequest();
} catch( e ) {
errorHandler(e);
}
+ if( lastxhr && lastxhr.readyState != 4 && lastxhr.abord )
+ lastxhr.abord();
+ lastxhr = xhr;
}
var jobId = null;
var classId = null;
+var date = new Date();
+
+Date.prototype.getDayOfYear = function(){
+ var start = new Date(this.getFullYear(), 0, 0);
+ var diff = this - start;
+ var oneDay = 1000 * 60 * 60 * 24;
+ var day = Math.floor(diff / oneDay);
+ return day;
+};
+
+Date.prototype.nextWeek = function(){
+ this.setDate(this.getDate()+7);
+}
+
+Date.prototype.lastWeek = function(){
+ this.setDate(this.getDate()-7);
+}
+
+function updateDate(){
+ model.week = Math.floor(date.getDayOfYear()/7) + '-' + date.getFullYear();
+ loadCalendar();
+}
+
+model.nextWeek = function(){
+ date.nextWeek();
+ updateDate();
+}
+model.lastWeek = function(){
+ date.lastWeek();
+ updateDate();
+}
function loadClasses(){
jobId = this.value;
+ classId = null;
model.classes = null;
+ model.displayInfo="none";
model.calendar = null;
load(
"http://home.gibm.ch/interfaces/133/klassen.php?beruf_id=" + jobId,
}
function loadCalendar(){
- classId = this.value;
+ if( "value" in this )
+ classId = this.value;
+ if( classId === null || jobId === null )
+ return;
model.calendar = null;
+ model.displayInfo="none";
load(
- "http://home.gibm.ch/interfaces/133/tafel.php?klasse_id=" + classId,
+ "http://home.gibm.ch/interfaces/133/tafel.php?klasse_id=" + classId + "&woche=" + model.week,
function( res ){
- model.calendar = {
- events: JSON.parse( res )
- };
+ var events = JSON.parse( res );
+ if( events.length ){
+ model.calendar = {
+ events: events
+ };
+ model.displayInfo="none";
+ }else{
+ model.displayInfo="block";
+ }
},
console.error
);
}
+updateDate();
+
+model.displayInfo="none";
+
model.jobs = null;
load("http://home.gibm.ch/interfaces/133/berufe.php", function( res ){
+ jobId = null;
+ model.displayInfo="none";
model.jobs = {
list: JSON.parse( res ),
loadClasses: loadClasses