define(["loading", "dom", "libraryMenu", "globalize", "humanedate", "emby-button", "emby-itemscontainer", "cardStyle"], function(loading, dom, libraryMenu, globalize) { "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: "cancel" }).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 += '
', (canEdit || canDelete(device.Id)) && (deviceHtml += '
', deviceHtml += '', deviceHtml += "
"), deviceHtml += "
", deviceHtml += device.Name, deviceHtml += "
", deviceHtml += "
", deviceHtml += device.AppName + " " + device.AppVersion, deviceHtml += "
", deviceHtml += "
", device.LastUserName && (deviceHtml += device.LastUserName, deviceHtml += ", " + humane_date(device.DateLastActivity)), deviceHtml += " ", deviceHtml += "
", deviceHtml += "
", deviceHtml += "
", 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) }) } });