define(['dialogHelper', 'jQuery', 'emby-button'], function (dialogHelper, $) { var currentItemId; var currentFile; var currentDeferred; var hasChanges = false; function onFileReaderError(evt) { Dashboard.hideLoadingMsg(); switch (evt.target.error.code) { case evt.target.error.NOT_FOUND_ERR: require(['toast'], function (toast) { toast(Globalize.translate('MessageFileNotFound')); }); break; case evt.target.error.ABORT_ERR: break; // noop default: require(['toast'], function (toast) { toast(Globalize.translate('MessageFileReadError')); }); break; }; } function setFiles(page, files) { var file = files[0]; if (!file || !file.type.match('image.*')) { $('#imageOutput', page).html(''); $('#fldUpload', page).hide(); currentFile = null; return; } currentFile = file; var reader = new FileReader(); reader.onerror = onFileReaderError; reader.onloadstart = function () { $('#fldUpload', page).hide(); }; reader.onabort = function () { Dashboard.hideLoadingMsg(); console.log('File read cancelled'); }; // Closure to capture the file information. reader.onload = (function (theFile) { return function (e) { // Render thumbnail. var html = [''].join(''); $('#imageOutput', page).html(html); $('#fldUpload', page).show(); }; })(file); // Read in the image file as a data URL. reader.readAsDataURL(file); } function processImageChangeResult(page) { hasChanges = true; history.back(); } function onSubmit() { var file = currentFile; if (!file) { return false; } if (file.type != "image/png" && file.type != "image/jpeg" && file.type != "image/jpeg") { return false; } Dashboard.showLoadingMsg(); var page = $(this).parents('.dialog'); var imageType = $('#selectImageType', page).val(); ApiClient.uploadItemImage(currentItemId, imageType, file).then(function () { $('#uploadImage', page).val('').trigger('change'); Dashboard.hideLoadingMsg(); processImageChangeResult(page); }); return false; } function initEditor(page) { $('form', page).off('submit', onSubmit).on('submit', onSubmit); $('#uploadImage', page).on("change", function () { setFiles(page, this.files); }); $("#imageDropZone", page).on('dragover', function (e) { e.preventDefault(); e.originalEvent.dataTransfer.dropEffect = 'Copy'; return false; }).on('drop', function (e) { e.preventDefault(); setFiles(page, e.originalEvent.dataTransfer.files); return false; }); } function showEditor(itemId, options) { options = options || {}; var xhr = new XMLHttpRequest(); xhr.open('GET', 'components/imageuploader/imageuploader.template.html', true); xhr.onload = function (e) { var template = this.response; currentItemId = itemId; var dlg = dialogHelper.createDialog({ size: 'fullscreen-border' }); var theme = options.theme || 'b'; dlg.classList.add('ui-body-' + theme); dlg.classList.add('background-theme-' + theme); var html = ''; html += '