UNPKG

htd-lync

Version:

This library is meant to be used to interact with an HTD Lync 12

483 lines (401 loc) 15.1 kB
function createPresetSettingsList() { //if (!presets) { var html = '<ul><li>'; html += ' <div class="list-box">'; html += ' <div class="list-grid list-grid-left">'; html += ' <div class="list-title">'; html += ' <span><a href="#" onclick="createNewPreset()">Create New Preset</a></span>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-grid list-grid-right">'; html += ' <div class="list-cat">'; html += ' </div>'; html += ' </div>'; html += ' </div>'; html += '</li>'; $("#presetSettingsList").html(html); if (!systems[systemIdx].presets) { return; } for (i = 0; i < systems[systemIdx].presets.length; i++) { console.log(systems[systemIdx].presets[i]) // if (zones[i].name !== "None" && zones[i].name !== "" && zones[i].name !== "none") { //console.log(zones[i]) var enabled = "checked"; html += '<li>'; html += ' <div class="list-box">'; html += ' <div class="list-grid list-grid-left-wide">'; html += ' <div class="list-title">'; html += ' <span><a href="#" zoneNumber="' + i + '">' + systems[systemIdx].presets[i].name + '</a></span>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-grid list-grid-right">'; html += '<div class="both-btn">'; html += ' <img class="edit-box removePreset" src="images/round-delete-button.png" zone="' + i + '" >'; html += ' <img class="edit-box editPreset" src="images/settings.png" zone="' + i + '" >'; html += '</div>'; // html += ' <div class="list-volume">'; //html += makeVolumeDropDown(i); html += ' <div class="list-cat">'; //html += makeSourceDropDownSystemStatus(i); html += ' </div>'; html += ' </div>'; html += ' </div>'; html += '</li>'; } //} html += "</ul>"; $("#presetSettingsList").html(html); $('#addGroup').click(function() { createNewPreset(); }); $(".zoneEnabled:input[type=checkbox]").on('change', function() { var self = $(this); var zone = self.attr("zone") * 1; if (self.is(":checked")) { //console.log("checkbox id =" + self.attr("zone") + "is checked "); systems[systemIdx].zones[zone].enabled = true; } else { //console.log("Id = " + self.attr("zone") + "is Unchecked "); systems[systemIdx].zones[zone].enabled = false; } updateData(); }); $(".edit-box.goToZoneSettings").on('click', function() { var self = $(this); var zone = self.attr("zone") * 1; goToZoneSettingsPage(zone); }); $(".removePreset").on('click', function() { var self = $(this); var zone = self.attr("zone") * 1; var r = confirm("Are you sure you want to remove this preset?"); if (r == true) { } else { return; } systems[systemIdx].presets.splice(zone, 1); updateData(); createPresetSettingsList(); }); $(".editPreset").on('click', function() { var self = $(this); var preset = self.attr("zone") * 1; goToEditPreset(preset); }); } function createNewPreset() { var name = prompt("Enter Preset Name", ""); if (name != null && name != "") { goToPresetCreatePage(name); newPresetName = name; } } var newPresetName; function goToPresetCreatePage(name) { console.log("goToPresetCreatePage") var html = "<ul id='presetList'>"; html += ' <li><div class="list-title">'; html += ' <h2 id="presetName">' + name + '</h2><a href="#" onclick="savePreset()">Save</a>'; html += ' </div></li>'; for (i = 1; i < systems[systemIdx].zones.length; i++) { if (systems[systemIdx].zones[i].name !== "None" && systems[systemIdx].zones[i].name !== "" && systems[systemIdx].zones[i].name !== "none") { //console.log(zones[i]) var enabled = ""; var powerState = "active"; if (systems[systemIdx].zones[i].powerOn == false) { powerState = ""; } html += '<li>'; html += ' <div class="list-box">'; html += ' <div class="list-grid list-grid-left custom-left-grid">'; html += ' <label class="switch">'; html += ' <input type="checkbox" ' + enabled + ' class="zoneEnabled" id="enableZone-' + i + '" zone="' + i + '">'; html += ' <span class="slider round"></span>'; html += ' </label>'; html += ' <div class="list-title">'; html += ' <span><a href="#" zoneNumber="' + i + '">' + systems[systemIdx].zones[i].appName + '</a></span>'; html += ' </div>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-box" id="presetBottom-' + i + '">'; html += ' <div id="zonePower-' + i + '" class="list-grid list-grid-left zonePower ' + powerState + '" zone="' + i + '">'; html += ' <div class="list-icon">'; html += ' </div>'; html += ' <div class="list-title">'; //html += ' <span><a href="#" zoneNumber="' + i + '">' + zones[i].appName + '</a></span>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-grid list-grid-right presetList">'; html += ' <div class="list-volume">'; html += makeVolumeDropDownPreset(i); html += ' </div>'; html += makeDNDDropDownPreset(i); html += ' <div class="list-cat">'; html += makeSourceDropDownPreset(i); html += ' </div>'; html += ' </div>'; html += ' </div>'; html += '</li>'; //html += '</li>'; } } html += "</ul>"; $("#presetSettingsList").html(html); for (i = 1; i < systems[systemIdx].zones.length; i++) { $('#presetBottom-' + i).hide(); } $(".zoneEnabled").on('click', function() { var zone = ($(this).attr("zone")); var enabled = $('#enableZone-' + zone).is(":checked"); if (enabled) { $('#presetBottom-' + zone).show(); } else { $('#presetBottom-' + zone).hide(); } }); $(".zonePower").on('click', function() { var zone = ($(this).attr("zone")); var enabled = $(this).attr("class"); if (enabled == "list-grid list-grid-left zonePower") { $(this).addClass("active"); $('#DNDDropDownPreset-' + zone).prop('disabled', false); } else { $(this).removeClass("active"); $('#DNDDropDownPreset-' + zone).val(0); $('#DNDDropDownPreset-' + zone).prop('disabled', "disabled"); } }); } function goToEditPreset(preset) { console.log("goToEditPreset: " + preset) var html = "<ul id='presetList'>"; html += ' <li><div class="list-title">'; html += ' <h2 id="presetName">' + systems[systemIdx].presets[preset].name + '</h2><a href="#" onclick="saveEditedPreset(' + preset + ')">Save Changes</a>'; html += ' </div></li>'; for (i = 1; i < systems[systemIdx].zones.length; i++) { if (systems[systemIdx].zones[i].name !== "None" && systems[systemIdx].zones[i].name !== "" && systems[systemIdx].zones[i].name !== "none") { //console.log(zones[i]) var enabled = ""; var powerState = "active"; if (systems[systemIdx].zones[i].powerOn == false) { powerState = ""; } html += '<li>'; html += ' <div class="list-box">'; html += ' <div class="list-grid list-grid-left custom-left-grid">'; html += ' <label class="switch">'; html += ' <input type="checkbox" ' + enabled + ' class="zoneEnabled" id="enableZone-' + i + '" zone="' + i + '">'; html += ' <span class="slider round"></span>'; html += ' </label>'; html += ' <div class="list-title">'; html += ' <span><a href="#" zoneNumber="' + i + '">' + systems[systemIdx].zones[i].appName + '</a></span>'; html += ' </div>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-box" id="presetBottom-' + i + '">'; html += ' <div id="editPresetPowerButton-' + i + '" class="list-grid list-grid-left powerButtonEdit ' + powerState + '" zone="' + i + '">'; html += ' <div class="list-icon">'; html += ' </div>'; html += ' <div class="list-title">'; //html += ' <span><a href="#" zoneNumber="' + i + '">' + zones[i].appName + '</a></span>'; html += ' </div>'; html += ' </div>'; html += ' <div class="list-grid list-grid-right presetList">'; html += ' <div class="list-volume">'; html += makeVolumeDropDownPreset(i); html += ' </div>'; html += makeDNDDropDownPreset(i); html += ' <div class="list-cat">'; html += makeSourceDropDownPreset(i); html += ' </div>'; html += ' </div>'; html += ' </div>'; html += '</li>'; html += '</li>'; } } html += "</ul>"; $("#presetSettingsList").html(html); for (i = 1; i < systems[systemIdx].zones.length; i++) { $('#presetBottom-' + i).hide(); } for (var i = 0; i < systems[systemIdx].presets[preset].zones.length; i++) { var zone = systems[systemIdx].presets[preset].zones[i]; $('#presetBottom-' + zone.zone).show(); $('#enableZone-' + zone.zone).attr("checked", true); if (zone.powerOn == true) { $('#editPresetPowerButton-' + zone.zone).addClass("active"); } else if (zone.powerOn == false) { $('#editPresetPowerButton-' + zone.zone).removeClass("active"); } $('#sourceDropDownPreset-' + zone.zone).val(zone.source); $('#volumeDropDownPreset-' + zone.zone).val(zone.vol); $('#DNDDropDownPreset-' + zone.zone).val(zone.dnd); } $(".zoneEnabled").on('click', function() { var zone = ($(this).attr("zone")); var enabled = $('#enableZone-' + zone).is(":checked"); if (enabled) { $('#presetBottom-' + zone).show(); } else { $('#presetBottom-' + zone).hide(); } }); $(".powerButtonEdit").on('click', function() { var zone = ($(this).attr("zone")); var enabled = $(this).attr("class"); if (enabled == "list-grid list-grid-left powerButtonEdit") { $(this).addClass("active"); $('#DNDDropDownPreset-' + zone).prop('disabled', false); } else { $(this).removeClass("active"); $('#DNDDropDownPreset-' + zone).val(0); $('#DNDDropDownPreset-' + zone).prop('disabled', "disabled"); } }); $("#presetName").on('click', function() { var newName = prompt("Change Preset Name", systems[systemIdx].presets[preset].name); systems[systemIdx].presets[preset].name = newName; $('#presetName').text(newName); updateData(); }); } function makeSourceDropDownPreset(zone) { var html = '<select class="dropBtnSourceForPreset" id="sourceDropDownPreset-' + zone + '" zone="' + zone + '">' for (var i = 0; i <= systems[systemIdx].sources.length; i++) { if (systems[systemIdx].sources[i] && systems[systemIdx].sources[i].name && systems[systemIdx].sources[i].enabled) { if (systems[systemIdx].zones[zone].source == i) { html += '<option value="' + i + '" selected>' + systems[systemIdx].sources[i].appName + '</option>'; } else { html += '<option value="' + i + '">' + systems[systemIdx].sources[i].appName + '</option>'; } } } html += "</select>"; return html; } function makeDNDDropDownPreset(zone) { var html = '<select class="dropBtnDNDForPreset" id="DNDDropDownPreset-' + zone + '" zone="' + zone + '">' html += '<option value="' + 0 + '" selected>DND Off</option>'; html += '<option value="' + 1 + '" >DND On</option>'; html += "</select>"; return html; } function makeVolumeDropDownPreset(zone) { var html = '<select class="dropBtnPreset" id="volumeDropDownPreset-' + zone + '" zone="' + zone + '">' html += '<option value="0">Mute</option>' for (var i = 1; i <= 60; i++) { if (systems[systemIdx].zones[zone].vol == i) { html += '<option value="' + i + '" selected >' + i + '</option>'; } else { html += '<option value="' + i + '">' + i + '</option>'; } } html += "</select>"; return html; } function savePreset() { var presetZones = []; for (i = 1; i < systems[systemIdx].zones.length; i++) { var enabled = $('#enableZone-' + i).is(":checked"); if (enabled == true) { //get the values var power = $('#zonePower-' + i).attr('class'); var powerOn; if (power == "list-grid list-grid-left zonePower active") { powerOn = true; } else { powerOn = false; } var source = $('#sourceDropDownPreset-' + i).val(); var volume = $('#volumeDropDownPreset-' + i).val(); var dnd = $('#DNDDropDownPreset-' + i).val(); if (powerOn == false) { dnd = 0; } var zone = { zone: i, powerOn: powerOn, source: source, vol: volume, dnd: dnd } presetZones.push(zone); } } var preset = { name: newPresetName, zones: presetZones } console.log(preset); if (!systems[systemIdx].presets) { systems[systemIdx].presets = []; } systems[systemIdx].presets.push(preset); updateData(); goToPresetSettingsPage(); } function saveEditedPreset(oldPreset) { //console.log(JSON.stringify(presets)) systems[systemIdx].presets.splice(oldPreset, 1); console.log("save edited preset: " + oldPreset) var presetZones = []; for (i = 1; i < systems[systemIdx].zones.length; i++) { var enabled = $('#enableZone-' + i).is(":checked"); //console.log(i, enabled); if (enabled == true) { //get the values var power = $('#editPresetPowerButton-' + i).attr('class'); var powerOn; //console.log(power); if (power == "list-grid list-grid-left powerButtonEdit active") { powerOn = true; } else { powerOn = false; } var source = $('#sourceDropDownPreset-' + i).val(); var volume = $('#volumeDropDownPreset-' + i).val(); var dnd = $('#DNDDropDownPreset-' + i).val(); if (powerOn == false) { dnd = 0; } var zone = { zone: i, powerOn: powerOn, source: source, vol: volume, dnd: dnd } presetZones.push(zone); } } var preset = { name: $('#presetName').text(), zones: presetZones } console.log("new preset:") if (!systems[systemIdx].presets) { systems[systemIdx].presets = []; } systems[systemIdx].presets.push(preset); updateData(); goToPresetSettingsPage(); } function editPreset(preset) { goToPresetCreatePage(); console.log(systems[systemIdx].presets[preset]) $('#presetName').text(systems[systemIdx].presets[preset].name); for (i = 0; i < systems[systemIdx].presets[preset].zones.length; i++) { var zone = (systems[systemIdx].presets[preset].zones[i]); console.log(zone); $('#enableZone-' + zone.zone).attr("checked", true) if (zone.powerOn == true) { $('#zonePower-' + zone.zone).addClass("active"); } $('#sourceDropDownPreset-' + zone.zone).val(zone.source); $('#volumeDropDownPreset-' + zone.zone).val(zone.vol); } } function saveChangesPreset() { }