diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..4d6fce5
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/orchester_dienstplan.iml b/.idea/orchester_dienstplan.iml
new file mode 100644
index 0000000..c956989
--- /dev/null
+++ b/.idea/orchester_dienstplan.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app.js b/app.js
index 7e3c2e7..764ab3f 100644
--- a/app.js
+++ b/app.js
@@ -7,11 +7,11 @@ if (!String.prototype.includes) {
//extend FileReader
if (!FileReader.prototype.readAsBinaryString) {
FileReader.prototype.readAsBinaryString = function (fileData) {
- var binary = "";
- var pt = this;
- var reader = new FileReader();
+ var binary = "";
+ var pt = this;
+ var reader = new FileReader();
reader.onload = function (e) {
- var bytes = new Uint8Array(reader.result);
+ var bytes = new Uint8Array(reader.result);
var length = bytes.byteLength;
for (var i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i]);
@@ -26,21 +26,21 @@ if (!FileReader.prototype.readAsBinaryString) {
//localStorage persistence
var SHIFT_STORAGE_KEY = "dienstplan_chrosey";
-var RULE_STORAGE_KEY = "regeln_chrosey";
-var shiftStorage = {
+var RULE_STORAGE_KEY = "regeln_chrosey";
+var shiftStorage = {
fetch: function () {
'use strict';
var parsed = JSON.parse(localStorage.getItem(SHIFT_STORAGE_KEY) || '[]'),
shifts = [];
parsed.forEach(function (el, index) {
var shift = Shift.thaw(el);
- shift.id = index;
+ shift.id = index;
shifts.push(shift);
});
shiftStorage.uid = shifts.length;
return shifts;
},
- save: function (shifts) {
+ save : function (shifts) {
'use strict';
var json = JSON.stringify(shifts)
localStorage.setItem(SHIFT_STORAGE_KEY, json);
@@ -49,21 +49,21 @@ var shiftStorage = {
return JSON.parse(localStorage.getItem(SHIFT_STORAGE_KEY) || '[]').length;
}
};
-var ruleStorage = {
+var ruleStorage = {
fetch: function () {
'use strict';
- var parsed = JSON.parse(localStorage.getItem(RULE_STORAGE_KEY)) | [];
- var rules = parsed.length > 0 ?
- parsed.map((e, i) => {
- var r = Rule.thaw(e);
- r.id = i;
- return r;
- }) :
- Rule.defaults();
+ var parsed = JSON.parse(localStorage.getItem(RULE_STORAGE_KEY)) | [];
+ var rules = parsed.length > 0 ?
+ parsed.map((e, i) => {
+ var r = Rule.thaw(e);
+ r.id = i;
+ return r;
+ }) :
+ Rule.defaults();
ruleStorage.uid = rules.length;
return rules;
},
- save: function (rules) {
+ save : function (rules) {
'use strict';
var json = JSON.stringify(rules);
localStorage.setItem(RULE_STORAGE_KEY, json);
@@ -92,7 +92,7 @@ Vue.component('ask-format-modal', {
picked: null
}
},
- props: ["options"],
+ props : ["options"],
methods: {
submitPick() {
this.$emit('picked-format', this.picked);
@@ -109,7 +109,7 @@ Vue.component('chip-input', {
data() {
return {
instance: null,
- chips: []
+ chips : []
}
},
@@ -131,17 +131,17 @@ Vue.component('chip-input', {
}
},
props: {
- name: String,
+ name : String,
initData: Array
},
methods: {
initialize() {
- this.chips = this.initData.map(e => e);
- var el = $('#' + this.name)[0];
+ this.chips = this.initData.map(e => e);
+ var el = $('#' + this.name)[0];
this.instance = M.Chips.init(el, {
- data: this.chips,
- onChipAdd: () => {
+ data : this.chips,
+ onChipAdd : () => {
this.$emit("change", this.chipsData);
},
onChipDelete: () => {
@@ -157,39 +157,39 @@ Vue.component('chip-input', {
});
var app = new Vue({
- el: '#app',
- data: {
- shifts: shiftStorage.fetch(),
- rules: ruleStorage.fetch(),
- icsFile: null,
- blob: null,
- dp_sheet: '',
- deletedShift: '',
- format: '',
- remaining: shiftStorage.count(),
- selectedShift: new Shift({}),
+ el : '#app',
+ data : {
+ shifts : shiftStorage.fetch(),
+ rules : ruleStorage.fetch(),
+ icsFile : null,
+ blob : null,
+ dp_sheet : '',
+ deletedShift : '',
+ format : '',
+ remaining : shiftStorage.count(),
+ selectedShift : new Shift({}),
selectedShiftIndex: -1,
- selectedRule: new Rule({}),
- selectedRuleIndex: -1,
- saveto: 'dienstplan.ics',
- uploadFileName: "",
- availableFormats: ["Erfurt", "Stuttgart", "X"],
- stepper: null,
- timepickers: null,
+ selectedRule : new Rule({}),
+ selectedRuleIndex : -1,
+ saveto : 'dienstplan.ics',
+ uploadFileName : "",
+ availableFormats : ["Erfurt", "Stuttgart", "X"],
+ stepper : null,
+ timepickers : null,
config: {
- moment: {
- parse_formats: [
+ moment : {
+ parse_formats : [
"ddd, DD/ MMM. 'YY HH:mm",
"ddd, DD/ MMM. YYYY HH:mm"
],
- parse_language: 'en',
+ parse_language : 'en',
display_language: 'de'
},
- stepper: {
+ stepper : {
firstActive: 0,
},
- toast: {
+ toast : {
displayLength: 3000
},
timepicker: {
@@ -203,19 +203,19 @@ var app = new Vue({
'use strict';
shiftStorage.save(shifts);
this.remaining = shifts.length;
- this.icsFile = null;
- this.blob = null;
+ this.icsFile = null;
+ this.blob = null;
this.makeToast("Änderungen gespeichert.");
},
- deep: true
+ deep : true
},
- rules: {
+ rules : {
handler: function (rules) {
'use strict';
ruleStorage.save(rules);
this.makeToast("Änderungen gespeichert.");
},
- deep: true
+ deep : true
}
},
@@ -225,7 +225,7 @@ var app = new Vue({
}
},
- methods: {
+ methods : {
updateArten(value) {
this.selectedRule.Arten = value;
},
@@ -235,20 +235,20 @@ var app = new Vue({
},
makeToast(message) {
- var toastOptions = this.config.toast;
+ var toastOptions = this.config.toast;
toastOptions.html = message;
M.toast(toastOptions);
},
openModal(elementID) {
var element = document.getElementById(elementID);
- var modal = M.Modal.getInstance(element);
+ var modal = M.Modal.getInstance(element);
modal.open();
},
closeModal(elementID) {
var element = document.getElementById(elementID);
- var modal = M.Modal.getInstance(element);
+ var modal = M.Modal.getInstance(element);
modal.close();
},
@@ -261,12 +261,12 @@ var app = new Vue({
},
handleInputFile: function (file) {
- var reader = new FileReader();
- var vm = this;
+ var reader = new FileReader();
+ var vm = this;
reader.onload = (e) => {
- var data = !e ? reader.content : e.target.result;
- var workbook = XLSX.read(data, {
- type: 'binary',
+ var data = !e ? reader.content : e.target.result;
+ var workbook = XLSX.read(data, {
+ type : 'binary',
cellDates: true,
});
var isErfurterDienstplan = workbook.SheetNames.indexOf("Dienstplan") > -1;
@@ -287,11 +287,11 @@ var app = new Vue({
},
parseForErfurt: function (dp) {
- var arr = XLSX.utils.sheet_to_row_object_array(dp, {
+ var arr = XLSX.utils.sheet_to_row_object_array(dp, {
range: 1
});
this.format = "Erfurt";
- var vm = this;
+ var vm = this;
var day;
this.makeToast("Erfurter Dienstplan erkannt.");
@@ -301,54 +301,86 @@ var app = new Vue({
if (element.hasOwnProperty('Datum')) {
day = moment(element.Datum);
}
+
+ if (element.hasOwnProperty('Bemerkung')) {
+ if (element.Bemerkung.toString().search(/\d\d:\d\d\s/) >= 0) {
+ // prüfe ob eine Uhrzeit drinnen steht
+ let sonderzeit = moment(element.Bemerkung, 'HH:mm');
+ let name = element.Bemerkung.toString().replace(/\d\d:\d\d\s/, '').trim();
+ let splittedName = name.split(' ');
+
+ let terminArt = '';
+ splittedName.forEach(function (item) {
+ vm.rules.forEach(function (rule) {
+ rule.Arten.forEach(function (art) {
+ if (art.tag == item) {
+ terminArt = art.tag;
+ name.replace(art.tag, '');
+ }
+ })
+ })
+ });
+
+ let termin = {
+ datum : day.clone().hour(sonderzeit.hour()).minute(sonderzeit.minute()),
+ art : terminArt,
+ beschreibung: '',
+ name : name.trim()
+ }
+ vm.addShift(new Shift(termin));
+ beschreibung = '';
+ }
+ }
+
if (element.hasOwnProperty('Dienst')) {
- let times = [];
+ let times = [];
let art, beschreibung, name = "";
if (element.Zeit.toString().indexOf(' + ') > 0) {
// in der Zeitspalte stehen mehrere Uhrzeiten.
let tempTimes = element.Zeit.toString().split(' + ');
- tempTimes.forEach(function(time) {
+ tempTimes.forEach(function (time) {
let mom = moment(time, 'HH:mm');
times.push([mom.hour(), mom.minute()]);
})
+ } else if (element.Zeit.toString().indexOf(' - ') > 0) {
+ // in der Zeitspalte stehen mehrere Uhrzeiten als Zeitspanne
+ let tempTimes = element.Zeit.toString().split(' - ');
+
+ let mom = moment(tempTimes[0], 'HH:mm');
+ let momEnd = moment(tempTimes[1], 'HH:mm');
+ times.push([mom.hour(), mom.minute(), momEnd.hour(), momEnd.minute()]);
} else {
if (element.Zeit) {
let mom = moment(element.Zeit);
times.push([mom.hour(), mom.minute()]);
} else {
- times.push([0,0]);
+ times.push([0, 0]);
}
}
- if (element.hasOwnProperty('Bemerkung')) {
- if (element.Bemerkung.toString().search(/\d\d:\d\d\s/) >= 0) {
- // prüfe ob eine Uhrzeit drinnen steht
- let sonderzeit = moment(element.Bemerkung, 'HH:mm');
- let termin = {
- datum: day.clone().hour(sonderzeit.hour()).minute(sonderzeit.minute()),
- art: '',
- beschreibung: '',
- name: element.Bemerkung.toString().replace(/\d\d:\d\d\s/, '').trim()
- }
- vm.addShift(new Shift(termin));
- beschreibung = '';
- } else {
- beschreibung = element.Bemerkung;
- }
- }
- if (element.hasOwnProperty('Dienst')) {
- art = element.Dienst.trim();
- }
+
+ art = element.Dienst.trim();
+
if (element.hasOwnProperty('__EMPTY')) {
name = element.__EMPTY.trim();
}
+ if (element.hasOwnProperty('Bemerkung')
+ && element.Bemerkung.toString().search(/\d\d:\d\d\s/) == -1) {
+ beschreibung = element.Bemerkung;
+ }
+
times.forEach(time => {
var termin = {
- datum: day.clone().hour(time[0]).minute(time[1]),
- art: art,
+ datum : day.clone().hour(time[0]).minute(time[1]),
+ art : art,
beschreibung: beschreibung,
- name: name
+ name : name
+ }
+ if (time.length === 4) {
+ // Wenn die Zeit mehr Werte hat, dann behandle die nächsten 2 als ende
+ termin.end = day.clone().hour(time[2]).minute(time[3]);
+ termin.dontSetDurationFromRules = true;
}
vm.addShift(new Shift(termin));
});
@@ -358,7 +390,7 @@ var app = new Vue({
},
changeTime: function (hours) {
- let temp = this.shifts;
+ let temp = this.shifts;
this.shifts = [];
temp.forEach(shift => {
shift.updateBeginn(hours);
@@ -373,10 +405,10 @@ var app = new Vue({
parseForStuttgart: function (dp) {
var arr = XLSX.utils.sheet_to_json(dp, {
- header: "A",
+ header : "A",
blankrows: false,
});
- var vm = this;
+ var vm = this;
var day;
this.makeToast("Stuttgarter Dienstplan erkannt.");
@@ -388,20 +420,20 @@ var app = new Vue({
}
if (element.hasOwnProperty('D') && moment(element.D, "HH:mm").isValid()) {
var termin = {
- ort: element.H ? element.H.trim() : "",
- art: element.E ? element.E.trim() : "",
+ ort : element.H ? element.H.trim() : "",
+ art : element.E ? element.E.trim() : "",
beschreibung: element.H ? element.H.trim() : "",
- name: element.F ? element.F.trim() : ""
+ name : element.F ? element.F.trim() : ""
}
- var time = day.clone();
+ var time = day.clone();
if (typeof (element.D) === "object") {
- time = moment(element.D);
+ time = moment(element.D);
termin.datum = day.clone().hour(time.hour()).minute(time.minute());
} else if (element.D.indexOf("-") > -1) {
- var tArray = element.D.split(" - ");
- time = moment(tArray[0], "HH:mm");
+ var tArray = element.D.split(" - ");
+ time = moment(tArray[0], "HH:mm");
termin.datum = day.clone().hour(time.hour()).minute(time.minute());
- termin.ende = moment(tArray[1], "HH:mm").format("HH:mm");
+ termin.ende = moment(tArray[1], "HH:mm").format("HH:mm");
}
vm.addShift(new Shift(termin));
@@ -411,17 +443,17 @@ var app = new Vue({
parseForX: function (dp, sheetName) {
moment.locale(this.config.moment.parse_language);
- var arr = XLSX.utils.sheet_to_json(dp, {
- header: "A",
+ var arr = XLSX.utils.sheet_to_json(dp, {
+ header : "A",
blankrows: false,
});
- var vm = this;
+ var vm = this;
var month = moment(sheetName.substr(sheetName.indexOf(" ") + 1), "MMMM YYYY", "de");
var day;
arr.forEach(element => {
var art, name, beschreibung = null;
- var time = moment().hour(0).minute(0);
+ var time = moment().hour(0).minute(0);
try {
if (element.hasOwnProperty('A')) {
day = moment(element.A, "D.", "de");
@@ -434,37 +466,37 @@ var app = new Vue({
if (element.hasOwnProperty("D") && element.hasOwnProperty("E")) {
// Probe
- time = moment(element.D);
- art = element.E.trim();
- name = element.F ? element.F.trim() : "";
+ time = moment(element.D);
+ art = element.E.trim();
+ name = element.F ? element.F.trim() : "";
beschreibung = typeof (element.I) != 'undefined' ? element.I.trim() :
- typeof (element.J) != 'undefined' ? element.J.trim() :
- "";
+ typeof (element.J) != 'undefined' ? element.J.trim() :
+ "";
} else if (element.hasOwnProperty("G") && element.hasOwnProperty("H")) {
// Vorstellung
- time = moment(element.G);
- art = "VS";
- name = element.H.trim();
+ time = moment(element.G);
+ art = "VS";
+ name = element.H.trim();
beschreibung = typeof (element.I) != 'undefined' ? element.I.trim() :
- typeof (element.J) != 'undefined' ? element.J.trim() :
- "";
+ typeof (element.J) != 'undefined' ? element.J.trim() :
+ "";
} else if (element.hasOwnProperty("I")) {
// Spielort/Extras
beschreibung = element.I.trim();
- name = name ? name : "Spielort/Extras";
+ name = name ? name : "Spielort/Extras";
} else if (element.hasOwnProperty("J")) {
// Spielort/Extras Fallback
beschreibung = element.J.trim();
- name = name ? name : "Spielort/Extras";
+ name = name ? name : "Spielort/Extras";
}
var datumStr = day + '.' + month.clone().format("MM.YY") + time.format(" HH:mm");
- var termin = {
- ort: "",
- art: art,
+ var termin = {
+ ort : "",
+ art : art,
beschreibung: beschreibung,
- name: name,
- datum: moment(datumStr, "D.MM.YY HH:mm")
+ name : name,
+ datum : moment(datumStr, "D.MM.YY HH:mm")
}
vm.addShift(new Shift(termin));
}
@@ -516,7 +548,7 @@ var app = new Vue({
vCal.add(shift.toVEvent());
});
var calString = vCal.toString();
- this.blob = new Blob([calString], {
+ this.blob = new Blob([calString], {
type: 'text/plain'
});
@@ -546,18 +578,18 @@ var app = new Vue({
this.shifts.splice(this.shifts.indexOf(this.keepShift), 1, changedShift);
this.closeModal('shiftModal');
- this.keepShift = '';
+ this.keepShift = '';
this.selectedShift = '';
},
discardChanges: function (changedShift) {
this.closeModal('shiftModal');
- this.keepShift = '';
+ this.keepShift = '';
this.selectedShift = '';
},
editRule: function (rule) {
- this.selectedRule = Rule.thaw(rule);
+ this.selectedRule = Rule.thaw(rule);
this.selectedRuleIndex = this.rules.indexOf(rule);
this.openModal('ruleModal');
},
@@ -591,11 +623,11 @@ var app = new Vue({
}
}
},
- mounted: function () {
+ mounted : function () {
M.AutoInit();
- var els = document.querySelectorAll('.timepicker');
+ var els = document.querySelectorAll('.timepicker');
this.timepickers = M.Timepicker.init(els, this.config.timepicker);
- var el = document.querySelector(".stepper");
- this.stepper = new MStepper(el, this.config.stepper);
+ var el = document.querySelector(".stepper");
+ this.stepper = new MStepper(el, this.config.stepper);
}
})
diff --git a/js/shift.js b/js/shift.js
index f39e555..2a7f6dd 100644
--- a/js/shift.js
+++ b/js/shift.js
@@ -1,16 +1,16 @@
var DATE_LOCALE_FORMAT = "D.M.YY"; //10.2.16
-var DATE_INPUT_FORMAT = "YYYY-MM-DD"; //2016-02-10
-var TIME_FORMAT = "HH:mm"; // 17:30
-var WEEKDAY_FORMAT = "dddd"; //Monday
-var MOMENT_LOCALE = "de";
-var TIMEZONE_NAME = "Europe/Berlin";
+var DATE_INPUT_FORMAT = "YYYY-MM-DD"; //2016-02-10
+var TIME_FORMAT = "HH:mm"; // 17:30
+var WEEKDAY_FORMAT = "dddd"; //Monday
+var MOMENT_LOCALE = "de";
+var TIMEZONE_NAME = "Europe/Berlin";
//requires moment.js
-Array.prototype.asChipData = function () {
+Array.prototype.asChipData = function () {
return this.map((e, i) => {
return {
tag: e,
- id: i
+ id : i
};
})
}
@@ -29,19 +29,19 @@ function Rule() {
'arten': [],
'dauer': 60,
'titel': [],
- 'name': "Standard"
+ 'name' : "Standard"
}
for (var index in default_args) {
if (typeof options[index] == "undefined") options[index] = default_args[index];
}
this._duration = options.dauer;
- this._arten = options.arten;
- this._titel = options.titel;
- this._name = options.name;
+ this._arten = options.arten;
+ this._titel = options.titel;
+ this._name = options.name;
}
-Rule.prototype = {
+Rule.prototype = {
get Dauer() {
return this._duration;
},
@@ -71,7 +71,7 @@ Rule.prototype = {
},
};
Rule.prototype.fits = function (art, title) {
- var artMatch = false;
+ var artMatch = false;
var nameMatch = false;
if (this._arten.length == 0) artMatch = true;
@@ -90,54 +90,54 @@ Rule.prototype.fits = function (art, title) {
return artMatch && nameMatch;
}
-Rule.thaw = function (json) {
+Rule.thaw = function (json) {
return new Rule({
dauer: json._duration,
- name: json._name,
+ name : json._name,
arten: json._arten,
titel: json._titel
});
}
-Rule.defaults = function () {
+Rule.defaults = function () {
var rules = [];
var input = [{
- name: "EF #01",
- dauer: 60,
- arten: ['VS'],
- titel: ['Kinderkonzert']
- },
- {
- name: "EF #02",
- dauer: 120,
- arten: ['VS'],
- titel: ["Expeditionskonzert", "Sinfoniekonzert"]
- },
- {
- name: "EF #03",
- dauer: 150,
- arten: ['Oa', 'GP'],
- titel: ['Expeditionskonzert']
- },
- {
- name: "EF #04",
- dauer: 60,
- arten: ['Oa', 'GP'],
- titel: ['Expeditionskonzert']
- },
- {
- name: "EF #05",
- dauer: 150,
- arten: ['Oa', 'OSP']
- },
- {
- name: "EF #06",
- dauer: 180,
- arten: ["VS", "BO", "OHP", "HP", "GP", "Prem", "WA"]
- },
- {
- name: "Standard",
- dauer: 60
- }
+ name : "EF #01",
+ dauer: 60,
+ arten: ['VS'],
+ titel: ['Kinderkonzert']
+ },
+ {
+ name : "EF #02",
+ dauer: 120,
+ arten: ['VS'],
+ titel: ["Expeditionskonzert", "Sinfoniekonzert"]
+ },
+ {
+ name : "EF #03",
+ dauer: 150,
+ arten: ['Oa', 'GP'],
+ titel: ['Expeditionskonzert']
+ },
+ {
+ name : "EF #04",
+ dauer: 60,
+ arten: ['Oa', 'GP'],
+ titel: ['Expeditionskonzert']
+ },
+ {
+ name : "EF #05",
+ dauer: 150,
+ arten: ['Oa', 'OSP']
+ },
+ {
+ name : "EF #06",
+ dauer: 180,
+ arten: ["VS", "BO", "OHP", "HP", "GP", "Prem", "WA"]
+ },
+ {
+ name : "Standard",
+ dauer: 60
+ }
];
input.forEach(e => {
rules.push(new Rule(e));
@@ -145,7 +145,7 @@ Rule.defaults = function () {
return rules;
}
-var DURATION_RULES = Rule.defaults();
+var DURATION_RULES = Rule.defaults();
function Shift() {
var options = {};
@@ -153,22 +153,24 @@ function Shift() {
if (arguments[0]) options = arguments[0];
var default_args = {
- 'art': "",
- 'name': "DUMMY",
- 'datum': moment(),
+ 'art' : "",
+ 'name' : "DUMMY",
+ 'datum' : moment(),
+ 'end' : moment(),
'beschreibung': "",
- 'ort': "",
+ 'ort' : "",
}
for (var index in default_args) {
if (typeof options[index] == "undefined") options[index] = default_args[index];
}
- this.Datum = options.datum.format(DATE_INPUT_FORMAT);
- this.Beginn = options.datum.format(TIME_FORMAT);
- this.Art = options.art;
+ this.Datum = options.datum.format(DATE_INPUT_FORMAT);
+ this.Beginn = options.datum.format(TIME_FORMAT);
+ this.Ende = options.end.format(TIME_FORMAT);
+ this.Art = options.art;
this.Beschreibung = options.beschreibung;
- this.Name = options.name;
- this.Ort = options.ort;
+ this.Name = options.name;
+ this.Ort = options.ort;
if (typeof options.ende != "undefined") {
this.Ende = options.ende;
@@ -180,7 +182,7 @@ function Shift() {
}
-Shift.prototype = {
+Shift.prototype = {
get Wochentag() {
return this._date.clone().locale(MOMENT_LOCALE).format(WEEKDAY_FORMAT);
},
@@ -193,7 +195,7 @@ Shift.prototype = {
},
set FormattedDatum(value) {
var dateMoment = moment(value, DATE_LOCALE_FORMAT);
- this._date = dateMoment;
+ this._date = dateMoment;
},
get Datum() {
@@ -201,7 +203,7 @@ Shift.prototype = {
},
set Datum(value) {
var dateMoment = moment(value).startOf('day');
- this._date = dateMoment.clone();
+ this._date = dateMoment.clone();
},
get Beginn() {
@@ -209,7 +211,7 @@ Shift.prototype = {
},
set Beginn(value) {
var dateMoment = moment(this.Datum + " " + value, DATE_INPUT_FORMAT + " " + TIME_FORMAT);
- this._begin = dateMoment.clone();
+ this._begin = dateMoment.clone();
},
get Ende() {
var ende = this._begin.clone().add(this._duration).format(TIME_FORMAT);
@@ -267,15 +269,15 @@ Shift.prototype = {
}
}
-Shift.setDurationFromRules = function (shift, rules) {
+Shift.setDurationFromRules = function (shift, rules) {
'use strict';
var isAllDayEvent = shift.Beginn == "00:00";
if (isAllDayEvent) {
shift.Dauer = moment.duration(24, 'h').locale(MOMENT_LOCALE);
return;
}
- var art = shift.Art.toLowerCase();
- var titel = shift.Name.toLowerCase();
+ var art = shift.Art.toLowerCase();
+ var titel = shift.Name.toLowerCase();
var duration = 60;
for (var rIndex in rules) {
var rule = rules[rIndex];
@@ -287,31 +289,31 @@ Shift.setDurationFromRules = function (shift, rules) {
}
shift.Dauer = moment.duration(duration, 'm').locale(MOMENT_LOCALE);
}
-Shift.prototype.toVEvent = function () {
+Shift.prototype.toVEvent = function () {
var end = this._begin.clone().add(this._duration);
return new VEvent({
startMoment: this._begin,
- endMoment: end,
- title: this.VEventTitle,
+ endMoment : end,
+ title : this.VEventTitle,
description: this.Beschreibung,
- location: this.Ort
+ location : this.Ort
});
};
-Shift.thaw = function (jsonShift) {
+Shift.thaw = function (jsonShift) {
moment.locale(MOMENT_LOCALE);
- var begin = moment(jsonShift._begin);
- var shift = new Shift({
- art: jsonShift._kind,
- name: jsonShift._name,
- datum: begin,
+ var begin = moment(jsonShift._begin);
+ var shift = new Shift({
+ art : jsonShift._kind,
+ name : jsonShift._name,
+ datum : begin,
beschreibung: jsonShift._description,
- ort: jsonShift._ort,
+ ort : jsonShift._ort,
});
- shift.id = jsonShift.id;
+ shift.id = jsonShift.id;
shift.Dauer = moment.duration(jsonShift._duration);
return shift;
};
-Shift.prototype.updateBeginn = function(hour) {
+Shift.prototype.updateBeginn = function (hour) {
this._begin = this._begin.add('hours', hour);
}