(function() { let _obj = new solapps.dataModule({ key : 'coachfeatures', type : 'data', label : 'Χαρακτηριστικά βαγονιών', orderBy : '', updateEvery : 360 * 24 * 10, //secs db : {needed : false, createStatements : {}}, listFormatter : function(obj) {return '';}, optionFormatter : function(obj) {return '';} }); _obj.FEATURES = { canteen: { label: {el: 'Κυλικείο', en:'Canteen'}, doTest: true, icon:'fa-mug-hot', }, // or: fa-utensils storage_closed: { label: {el: 'Σκευοφόρος', en:'Closed luggage storage'}, doTest: true, icon:'fa-boxes-stacked', }, storage_open: { label: {el: 'Ανοικτός χώρος αποσκευών', en:'Open luggage compartment'}, doTest: false, icon:'fa-suitcase', }, bike_scooter_space: { label: {el: 'Χώρος ποδηλάτων / ηλεκτρικών πατινιών', en:'Bike / e-scooter space'}, doTest: false, icon:'fa-bicycle', }, kids_room: { label: {el: 'Παιδότοπος', en:"Kids' play area"}, doTest: false, icon:'fa-child-reaching', }, power_sockets: { label: {el: 'Πρίζες ρεύματος', en:'Power sockets'}, doTest: true, icon:'fa-plug-circle-bolt', }, prm_seats: { label: {el: 'Θέσεις ΑΜΕΑ', en:'PRM seats'}, doTest: true, icon:'fa-wheelchair', }, prm_wc: { label: {el: 'WC AMEA', en:'PRM WC'}, doTest: false, icon:'', }, prm_easy_access: { label: {el: 'Εύκολη πρόσβαση ΑΜΕΑ', en:'PRM easy access'}, doTest: false, icon:'', }, }; _obj.setUpdater(function(force) { if (_obj.DATA === null) _obj.DATA = {}; $.ajax({ data: {c: 'dbsync', op: 'getData', item:'coach_features'}, success: function (reply) { if (!reply) return; if (reply.status*1 < 0) {ajax_loader.on.backendError(reply.message);return;} if (reply.status*1 === 0 && reply.message != null) {alert(reply.message);return;} _obj.DATA = reply.data; _obj.dataUpdated(); } }); }); this.getFeatureSet = function () { let t = {}; for (let key in _obj.FEATURES) { if (_obj.FEATURES[key].doTest) t[key] = false; } return t; }; this._features2icons = function (features, color, lang) { if (!['el', 'en'].includes(lang)) lang = 'el'; let out = []; // console.log(features); for (let e in features) { if (features[e]) { // console.log(`now testing feature ${e}`); if (typeof(_obj.FEATURES[e]) === 'undefined') continue; let dd = _obj.FEATURES[e]; if (!dd.doTest) continue; out.push(``); } } return out.join('
'); }; _obj.getCoachFeatures = function(typox) { if (!typox || _obj.DATA[typox] === undefined) return getFeatureSet() return _obj.DATA[typox]; }; _obj.getCoachFeaturesAsIcons = function (typox, color='#888', lang='el') { if (!typox) return ''; let features = _obj.getCoachFeatures(typox); return _features2icons(features, color, lang); }; _obj.getTrainFeatures = function(coaches) { let out = getFeatureSet(); for (let c in coaches) { let fe = _obj.getCoachFeatures(coaches[c]); for (let e in fe) out[e] = out[e] || fe[e]; } return out; }; _obj.getTrainFeaturesAsIcons = function (coaches, color='#888', lang='el') { if (!coaches) return ''; let features = _obj.getTrainFeatures(coaches); return _features2icons(features, color, lang); }; return _obj; })();