|
|
- var update_timer = null;
- var relaySlider;
-
- function doUpdate() {
- var self = $(this);
- self.addClass("loading");
- $.ajax({
- 'method': 'POST',
- 'url': '/post',
- 'dataType': 'json',
- 'data': $("#formSave").serializeArray()
- }).done(function(data) {
- self.removeClass("loading");
- }).fail(function() {
- self.removeClass("loading");
- });
- }
-
- function showPanel() {
- $(".panel").hide();
- $("#" + $(this).attr("data")).show();
- if ($("#layout").hasClass('active')) toggleMenu();
- };
-
- function toggleMenu() {
- $("#layout").toggleClass('active');
- $("#menu").toggleClass('active');
- $("#menuLink").toggleClass('active');
- }
-
- function parseResponse(data) {
-
- // pre-process
- if ("network" in data) data.network = data.network.toUpperCase();
- if ("mqttStatus" in data) data.mqttStatus = data.mqttStatus ? "CONNECTED" : "NOT CONNECTED";
-
- // relay
- if ("relayStatus" in data) {
- $("input[name='relayStatus']")
- .prop("checked", data.relayStatus)
- .iphoneStyle("refresh");
- }
-
- // title
- if ("app" in data) {
- document.title = data.app;
- $(".pure-menu-heading").html(data.app);
- }
-
- // automatic assign
- Object.keys(data).forEach(function(key) {
- var id = "input[name=" + key + "]";
- if ($(id).length) $(id).val(data[key]);
- });
-
- // WIFI
- var groups = $("#panel-wifi .pure-g");
- for (var i in data.wifi) {
- var wifi = data.wifi[i];
- Object.keys(wifi).forEach(function(key) {
- var id = "input[name=" + key + "]";
- if ($(id, groups[i]).length) $(id, groups[i]).val(wifi[key]);
- });
- };
-
- if ("updateInterval" in data) {
- if (update_timer) clearInterval(update_timer);
- if (data.updateInterval > 0) {
- update_timer = setInterval(update, data.updateInterval);
- }
- }
-
- }
-
- function update() {
- $.ajax({
- 'method': 'GET',
- 'url': '/status',
- 'dataType': 'json'
- }).done(parseResponse);
- }
-
- function init() {
- $.ajax({
- 'method': 'GET',
- 'url': '/get',
- 'dataType': 'json'
- }).done(parseResponse);
- }
-
- $(function() {
- $("#menuLink").on('click', toggleMenu);
- $(".button-update").on('click', doUpdate);
- $(".pure-menu-link").on('click', showPanel);
- relaySlider = $('#relayStatus').iphoneStyle({
- checkedLabel: 'ON',
- uncheckedLabel: 'OFF',
- onChange: function(elem, value) {
- $.ajax({
- 'method': 'GET',
- 'url': value ? '/relay/on' : '/relay/off',
- 'dataType': 'json'
- });
- setTimeout(update, 200);
- }
- });
- init();
- });
|