define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (dom, shell, dialogHelper, loading, layoutManager, connectionManager, appRouter, globalize) { 'use strict'; function getEditorHtml() { var html = ''; html += '
'; html += '
'; html += '
'; html += '
'; html += ''; html += '
'; html += ''; html += '
'; html += globalize.translate('RefreshDialogHelp'); html += '
'; html += ''; html += '
'; html += '
'; html += ''; html += '
'; html += '
'; html += '
'; html += '
'; return html; } function centerFocus(elem, horiz, on) { require(['scrollHelper'], function (scrollHelper) { var fn = on ? 'on' : 'off'; scrollHelper.centerFocus[fn](elem, horiz); }); } function onSubmit(e) { loading.show(); var instance = this; var dlg = dom.parentWithClass(e.target, 'dialog'); var options = instance.options; var apiClient = connectionManager.getApiClient(options.serverId); var replaceAllMetadata = dlg.querySelector('#selectMetadataRefreshMode').value === 'all'; var mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh'; var replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked; options.itemIds.forEach(function (itemId) { apiClient.refreshItem(itemId, { Recursive: true, ImageRefreshMode: mode, MetadataRefreshMode: mode, ReplaceAllImages: replaceAllImages, ReplaceAllMetadata: replaceAllMetadata }); }); dialogHelper.close(dlg); require(['toast'], function (toast) { toast(globalize.translate('RefreshQueued')); }); loading.hide(); e.preventDefault(); return false; } function RefreshDialog(options) { this.options = options; } RefreshDialog.prototype.show = function () { var dialogOptions = { removeOnClose: true, scrollY: false }; if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { dialogOptions.size = 'small'; } var dlg = dialogHelper.createDialog(dialogOptions); dlg.classList.add('formDialog'); var html = ''; var title = globalize.translate('RefreshMetadata'); html += '
'; html += ''; html += '

'; html += title; html += '

'; html += '
'; html += getEditorHtml(); dlg.innerHTML = html; dlg.querySelector('form').addEventListener('submit', onSubmit.bind(this)); dlg.querySelector('#selectMetadataRefreshMode').addEventListener('change', function () { if (this.value === 'scan') { dlg.querySelector('.fldReplaceExistingImages').classList.add('hide'); } else { dlg.querySelector('.fldReplaceExistingImages').classList.remove('hide'); } }); if (this.options.mode) { dlg.querySelector('#selectMetadataRefreshMode').value = this.options.mode; } dlg.querySelector('#selectMetadataRefreshMode').dispatchEvent(new CustomEvent('change')); dlg.querySelector('.btnCancel').addEventListener('click', function () { dialogHelper.close(dlg); }); if (layoutManager.tv) { centerFocus(dlg.querySelector('.formDialogContent'), false, true); } return new Promise(function (resolve, reject) { if (layoutManager.tv) { centerFocus(dlg.querySelector('.formDialogContent'), false, false); } dlg.addEventListener('close', resolve); dialogHelper.open(dlg); }); }; return RefreshDialog; });