define(["loading", "dom", "libraryMenu", "globalize", "scripts/imagehelper", "humanedate", "emby-button", "emby-itemscontainer", "cardStyle"], function(loading, dom, libraryMenu, globalize, imageHelper) { "use strict"; function canDelete(deviceId) { return deviceId !== ApiClient.deviceId() } function deleteDevice(page, id) { var msg = globalize.translate("DeleteDeviceConfirmation"); require(["confirm"], function(confirm) { confirm({ text: msg, title: globalize.translate("HeaderDeleteDevice"), confirmText: globalize.translate("ButtonDelete"), primary: "delete" }).then(function() { loading.show(), ApiClient.ajax({ type: "DELETE", url: ApiClient.getUrl("Devices", { Id: id }) }).then(function() { loadData(page) }) }) }) } function showDeviceMenu(view, btn, deviceId) { var menuItems = []; canEdit && menuItems.push({ name: globalize.translate("Edit"), id: "open", ironIcon: "mode-edit" }), canDelete(deviceId) && menuItems.push({ name: globalize.translate("Delete"), id: "delete", ironIcon: "delete" }), require(["actionsheet"], function(actionsheet) { actionsheet.show({ items: menuItems, positionTo: btn, callback: function(id) { switch (id) { case "open": Dashboard.navigate("device.html?id=" + deviceId); break; case "delete": deleteDevice(view, deviceId) } } }) }) } function load(page, devices) { var html = ""; html += devices.map(function(device) { var deviceHtml = ""; deviceHtml += "
"; deviceHtml += '
'; deviceHtml += '"; deviceHtml += '
'; if (canEdit || canDelete(device.Id)) { deviceHtml += '
'; deviceHtml += ''; deviceHtml += "
"; } deviceHtml += "
"; deviceHtml += device.Name; deviceHtml += "
"; deviceHtml += "
"; deviceHtml += device.AppName + " " + device.AppVersion; deviceHtml += "
"; deviceHtml += "
"; if (device.LastUserName) { deviceHtml += device.LastUserName; deviceHtml += ", " + humaneDate(device.DateLastActivity); } deviceHtml += " "; deviceHtml += "
"; deviceHtml += "
"; deviceHtml += "
"; deviceHtml += "
"; return deviceHtml; }).join(""); page.querySelector(".devicesList").innerHTML = html; } function loadData(page) { loading.show(), ApiClient.getJSON(ApiClient.getUrl("Devices")).then(function(result) { load(page, result.Items), loading.hide() }) } var canEdit = ApiClient.isMinServerVersion("3.4.1.31"); return function(view, params) { view.querySelector(".devicesList").addEventListener("click", function(e) { var btnDeviceMenu = dom.parentWithClass(e.target, "btnDeviceMenu"); btnDeviceMenu && showDeviceMenu(view, btnDeviceMenu, btnDeviceMenu.getAttribute("data-id")) }), view.addEventListener("viewshow", function() { loadData(this) }) } });