Files
homeAssistant/appdaemon/compiled/javascript/default/hello_init.js
2021-11-04 01:18:18 -04:00

134 lines
4.9 KiB
JavaScript

var myDeviceID;
$(function(){ //DOM Ready
function navigate(url)
{
window.location.href = url;
}
$(document).attr("title", "Hello Panel");
content_width = (120 + 5) * 8 + 5
$('.gridster').width(content_width)
$(".gridster ul").gridster({
widget_margins: [5, 5],
widget_base_dimensions: [120, 120],
avoid_overlapped_widgets: true,
max_rows: 15,
max_size_x: 8,
shift_widgets_up: false
}).data('gridster').disable();
// Add Widgets
var gridster = $(".gridster ul").gridster().data('gridster');
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-basedisplay-default-label" id="default-label"><h1 class="title" data-bind="text: title, attr:{ style: title_style}"></h1><h1 class="title2" data-bind="text: title2, attr:{ style: title2_style}"></h1><div class="valueunit" data-bind="attr:{ style: container_style}"><h2 class="value" data-bind="html: value, attr:{ style: value_style}"></h2><p class="unit" data-bind="html: unit, attr:{ style: unit_style}"></p></div><h1 class="state_text" data-bind="text: state_text, attr: {style: state_text_style}"></h1></div></li>', 2, 2, 1, 1)
gridster.add_widget('<li><div data-bind="attr: {style: widget_style}" class="widget widget-baseclock-default-clock-clock" id="default-clock-clock"><h1 class="date"data-bind="text: date, attr: {style: date_style}"></h1><h2 class="time" data-bind="text: time, attr: {style: time_style}"></h2></div></li>', 1, 1, 3, 1)
var widgets = {}
// Initialize Widgets
widgets["default-label"] = new basedisplay("default-label", "", "default", {'widget_type': 'basedisplay', 'fields': {'title': '', 'title2': '', 'value': 'Hello World', 'unit': '', 'state_text': ''}, 'static_css': {'title_style': 'color: #fff;', 'title2_style': 'color: #fff;', 'unit_style': '', 'value_style': 'color: #fff;', 'state_text_style': 'color: #fff;', 'widget_style': 'background-color: #444;', 'container_style': ''}, 'css': {}, 'icons': [], 'static_icons': [], 'namespace': 'default'})
widgets["default-clock-clock"] = new baseclock("default-clock-clock", "", "default", {'widget_type': 'baseclock', 'fields': {'date': '', 'time': ''}, 'static_css': {'date_style': 'color: #fff;', 'time_style': 'color: #aa00ff;', 'widget_style': 'background-color: #444;'}, 'static_icons': [], 'icons': [], 'css': {}, 'entity': 'clock.clock', 'title_is_friendly_name': 1, 'namespace': 'default'})
// Setup click handler to cancel timeout navigations
$( ".gridster" ).click(function(){
clearTimeout(myTimeout);
if (myTimeoutSticky) {
myTimeout = setTimeout(function() { navigate(myTimeoutUrl); }, myTimeoutDelay);
}
});
// Set up timeout
var myTimeout;
var myTimeoutUrl;
var myTimeoutDelay;
var myTimeoutSticky = 0;
if (location.search != "")
{
console.log("begin")
var query = location.search.substr(1);
var result = {};
query.split("&").forEach(function(part) {
var item = part.split("=");
result[item[0]] = decodeURIComponent(item[1]);
});
if ("deviceid" in result)
{
myDeviceID = result.deviceid;
try
{
setCookie('ADdevID', myDeviceID);
}
catch (e)
{
console.log(e);
}
}
else
{
try
{
myDeviceID = getCookie('ADdevID');
}
catch (e)
{
console.log(e);
myDeviceID = null;
}
}
if ("timeout" in result && "return" in result)
{
url = result.return
argcount = 0
for (arg in result)
{
if (arg != "timeout" && arg != "return" && arg != "sticky")
{
if (argcount == 0)
{
url += "?";
}
else
{
url += "&";
}
argcount ++;
url += arg + "=" + result[arg]
}
}
if ("sticky" in result)
{
myTimeoutSticky = (result.sticky == "1");
}
myTimeoutUrl = url;
myTimeoutDelay = result.timeout * 1000;
myTimeout = setTimeout(function() { navigate(url); }, result.timeout * 1000);
}
}
else
{
try
{
myDeviceID = getCookie('ADdevID');
}
catch (e)
{
console.log(e);
myDeviceID = null;
}
}
// Start listening for AD Events
window.dashstream = new DashStream("ws", location.protocol, document.domain, location.port, "Hello Panel", widgets);
});