import dom from 'dom'; import dialogHelper from 'dialogHelper'; import loading from 'loading'; import appHost from 'apphost'; import layoutManager from 'layoutManager'; import connectionManager from 'connectionManager'; import appRouter from 'appRouter'; import globalize from 'globalize'; import 'emby-checkbox'; import 'emby-input'; import 'paper-icon-button-light'; import 'emby-select'; import 'material-icons'; import 'css!./../formdialog'; import 'emby-button'; import 'flexStyles'; /* eslint-disable indent */ let currentServerId; function onSubmit(e) { loading.show(); const panel = dom.parentWithClass(this, 'dialog'); const collectionId = panel.querySelector('#selectCollectionToAddTo').value; const apiClient = connectionManager.getApiClient(currentServerId); if (collectionId) { addToCollection(apiClient, panel, collectionId); } else { createCollection(apiClient, panel); } e.preventDefault(); return false; } function createCollection(apiClient, dlg) { const url = apiClient.getUrl('Collections', { Name: dlg.querySelector('#txtNewCollectionName').value, IsLocked: !dlg.querySelector('#chkEnableInternetMetadata').checked, Ids: dlg.querySelector('.fldSelectedItemIds').value || '' }); apiClient.ajax({ type: 'POST', url: url, dataType: 'json' }).then(result => { loading.hide(); const id = result.Id; dlg.submitted = true; dialogHelper.close(dlg); redirectToCollection(apiClient, id); }); } function redirectToCollection(apiClient, id) { appRouter.showItem(id, apiClient.serverId()); } function addToCollection(apiClient, dlg, id) { const url = apiClient.getUrl(`Collections/${id}/Items`, { Ids: dlg.querySelector('.fldSelectedItemIds').value || '' }); apiClient.ajax({ type: 'POST', url: url }).then(() => { loading.hide(); dlg.submitted = true; dialogHelper.close(dlg); import('toast').then(({default: toast}) => { toast(globalize.translate('MessageItemsAdded')); }); }); } function triggerChange(select) { select.dispatchEvent(new CustomEvent('change', {})); } function populateCollections(panel) { loading.show(); const select = panel.querySelector('#selectCollectionToAddTo'); panel.querySelector('.newCollectionInfo').classList.add('hide'); const options = { Recursive: true, IncludeItemTypes: 'BoxSet', SortBy: 'SortName', EnableTotalRecordCount: false }; const apiClient = connectionManager.getApiClient(currentServerId); apiClient.getItems(apiClient.getCurrentUserId(), options).then(result => { let html = ''; html += ``; html += result.Items.map(i => { return ``; }); select.innerHTML = html; select.value = ''; triggerChange(select); loading.hide(); }); } function getEditorHtml() { let html = ''; html += '