import loading from 'loading'; import dom from 'dom'; import globalize from 'globalize'; import imageHelper from 'scripts/imagehelper'; import * as datefns from 'date-fns'; import dfnshelper from 'dfnshelper'; import 'emby-button'; import 'emby-itemscontainer'; import 'cardStyle'; /* eslint-disable indent */ // Local cache of loaded let deviceIds = []; function canDelete(deviceId) { return deviceId !== ApiClient.deviceId(); } function deleteViaApi(id) { return ApiClient.ajax({ type: 'DELETE', url: ApiClient.getUrl('Devices', { Id: id }) }); } function deleteAllDevices(page) { let msg = globalize.translate('DeleteDevicesConfirmation'); require(['confirm'], async function (confirm) { await confirm({ text: msg, title: globalize.translate('HeaderDeleteDevices'), confirmText: globalize.translate('ButtonDelete'), primary: 'delete' }); loading.show(); await Promise.all( deviceIds.filter(canDelete).map((id) => deleteViaApi(id)) ); loadData(page); }); } function deleteDevice(page, id) { const msg = globalize.translate('DeleteDeviceConfirmation'); import('confirm').then(({default: confirm}) => { confirm({ text: msg, title: globalize.translate('HeaderDeleteDevice'), confirmText: globalize.translate('Delete'), primary: 'delete' }).then(async () => { loading.show(); await deleteViaApi(id); loadData(page); }); }); } function showDeviceMenu(view, btn, deviceId) { const menuItems = []; if (canEdit) { menuItems.push({ name: globalize.translate('Edit'), id: 'open', icon: 'mode_edit' }); } if (canDelete(deviceId)) { menuItems.push({ name: globalize.translate('Delete'), id: 'delete', icon: 'delete' }); } import('actionsheet').then(({default: 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) { let html = ''; html += devices.map(function (device) { let deviceHtml = ''; deviceHtml += "