Files
old-tfm/app/client/state.js

125 lines
4.1 KiB
JavaScript
Raw Normal View History

2016-02-28 10:05:14 +01:00
function controller_state() {
2016-03-06 09:20:36 +01:00
var controllerId = Session.get('controller_id');
result = ControllerState.findOne({});
2016-02-28 10:05:14 +01:00
if (!result) {
result = {}
};
2016-02-28 10:05:14 +01:00
return result;
};
2016-02-28 10:05:14 +01:00
function sensor_data_collection() {
var controllerId = Session.get('controller_id');
return SensorData.find({
controllerId: controllerId
}, {
sort: {
created_at: -1
2016-02-28 11:19:18 +01:00
},
limit: 1
});
2016-02-28 10:05:14 +01:00
}
function last_sensor_reading() {
var controller = Session.get('controller_id');
var result = null;
if (controller) {
result = sensor_data_collection();
}
if (result && result.count() > 0) {
return result.fetch()[0];
} else {
return {}
}
}
2016-02-28 10:05:14 +01:00
Template.state.helpers({
controller_state: controller_state,
pretty_valve: function(state) {
if (state === 'open') return "Otvoren";
if (state === 'opening') return "Otvara se";
if (state === 'closing') return "Zatvara se";
if (state === 'closed') return "Zatvoren";
},
bucket_image: function() {
var sensor = last_sensor_reading();
var stateObject = controller_state();
if (sensor) {
2016-03-26 07:11:52 +01:00
if (parseInt(sensor.tankFull) === 0 && stateObject.state.in_valve === 'open' && stateObject.state.out_valve === 'closed') return "/images/barrellFillingUp.png";
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'closed')) return "/images/barrellFull.png";
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'opening')) return "/images/barrellStartWateringFull.png";
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'open')) return "/images/barrellWateringFull.png";
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'closing')) return "/images/barrellStopWateringFull.png";
else if (parseInt(sensor.tankFull) === 0 && (stateObject.state.out_valve === 'closed')) return "/images/barrellNotFull.png";
else if (parseInt(sensor.tankFull) === 0 && (stateObject.state.out_valve === 'opening')) return "/images/barrellStartWateringNotFull.png";
else if (parseInt(sensor.tankFull) === 0 && (stateObject.state.out_valve === 'open')) return "/images/barrellWateringNotFull.png"
else if (parseInt(sensor.tankFull) === 0 && (stateObject.state.out_valve === 'closing')) return "/images/barrellStopWateringNotFull.png"
else return "/images/statusAmber.png";
2016-03-19 09:23:59 +01:00
} else return "/images/statusRed.png";
2016-02-28 10:05:14 +01:00
},
2016-02-28 10:05:14 +01:00
last_sensor_reading: last_sensor_reading,
water_now_button_class: function() {
var stateObject = controller_state();
if (stateObject.state && (stateObject.state.out_valve === 'open' || stateObject.state.out_valve === 'opening')) {
2016-03-19 09:23:59 +01:00
return 'hidden btn btn-success';
2016-02-28 10:05:14 +01:00
} else {
2016-03-19 09:23:59 +01:00
return 'btn btn-success';
2016-02-28 10:05:14 +01:00
}
},
stop_button_class: function() {
var stateObject = controller_state();
if (stateObject.state && (stateObject.state.out_valve === 'closed' || stateObject.state.out_valve === 'closing')) {
2016-03-19 09:23:59 +01:00
return 'hidden btn btn-success';
2016-02-28 10:05:14 +01:00
} else {
2016-03-19 09:23:59 +01:00
return 'btn btn-success';
2016-02-28 10:05:14 +01:00
}
2016-03-19 09:23:59 +01:00
},
2016-02-28 10:05:14 +01:00
2016-03-19 09:23:59 +01:00
pretty_days: function(daysInNumbers) {
var days = ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"];
2016-03-20 10:36:43 +01:00
if (!daysInNumbers || daysInNumbers.length == 0) {
2016-03-19 09:23:59 +01:00
return "Nikad"
2016-03-20 10:36:43 +01:00
}
else if (daysInNumbers.length == 7) {
return "Svaki dan"
2016-03-19 09:23:59 +01:00
} else {
return daysInNumbers.map(function(number) {
return days[number -1 ];
}).join(", ");
}
},
pretty_time: function(daysInNumbers, time) {
if (!daysInNumbers || daysInNumbers.length == 0) {
return ""
} else {
return " u " + time;
}
}
2016-02-28 10:05:14 +01:00
});
2016-04-10 10:47:11 +02:00
2016-02-28 10:05:14 +01:00
Template.state.events({
'click #water_now': function() {
var controller_id = Session.get('controller_id');
Meteor.call('openOutValve', controller_id)
},
'click #stop_water_now': function() {
var controller_id = Session.get('controller_id');
Meteor.call('closeOutValve', controller_id)
2016-03-19 09:23:59 +01:00
},
'click #run_settings': function() {
Modal.show('settings');
},
'click #bucket_image': function() {
Modal.show('state_details', controller_state());
2016-02-28 10:05:14 +01:00
}
});