function controller_state() { var controllerId = Session.get('controller_id'); result = ControllerState.findOne({}); console.log("jupiii", result); if (!result) { result = {} }; return result; }; function sensor_data_collection() { var controllerId = Session.get('controller_id'); return SensorData.find({ controllerId: controllerId }, { sort: { created_at: -1 }, limit: 1 }); } 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 {} } } 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(); if (sensor && sensor.tankFull === "1") { return "/images/barell_full.png"; } else { return "/images/barell_draining.png"; } }, last_sensor_reading: last_sensor_reading, last_communication_time: function() { return moment(controller_state().time).fromNow(); }, water_now_button_class: function() { var stateObject = controller_state(); if (stateObject.state && (stateObject.state.out_valve === 'open' || stateObject.state.out_valve === 'opening')) { return 'hidden'; } else { return ''; } }, stop_button_class: function() { var stateObject = controller_state(); if (stateObject.state && (stateObject.state.out_valve === 'closed' || stateObject.state.out_valve === 'closing')) { return 'hidden'; } else { return ''; } } }); 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) } });