1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

remove use of globals from metadata editor

This commit is contained in:
Luke Pulverenti 2016-07-23 17:20:14 -04:00
parent c5574155d3
commit c60d221eed
5 changed files with 52 additions and 56 deletions

View file

@ -516,16 +516,17 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var serverId = apiClient.serverInfo().Id;
if (item.Type == 'Timer') { if (item.Type == 'Timer') {
require(['recordingEditor'], function (recordingEditor) { require(['recordingEditor'], function (recordingEditor) {
var serverId = apiClient.serverInfo().Id;
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} else { } else {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) { require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(item.Id).then(resolve, reject); metadataeditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }
}); });

View file

@ -291,16 +291,17 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var serverId = apiClient.serverInfo().Id;
if (item.Type == 'Timer') { if (item.Type == 'Timer') {
require(['recordingEditor'], function (recordingEditor) { require(['recordingEditor'], function (recordingEditor) {
var serverId = apiClient.serverInfo().Id;
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} else { } else {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) { require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(item.Id).then(resolve, reject); metadataeditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }
}); });

View file

@ -1,4 +1,4 @@
define(['itemHelper', 'dialogHelper', 'datetime', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light'], function (itemHelper, dialogHelper, datetime) { define(['itemHelper', 'dialogHelper', 'datetime', 'loading', 'connectionManager', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light'], function (itemHelper, dialogHelper, datetime, loading, connectionManager) {
var currentContext; var currentContext;
var metadataEditorInfo; var metadataEditorInfo;
@ -23,19 +23,21 @@
toast(Globalize.translate('MessageItemSaved')); toast(Globalize.translate('MessageItemSaved'));
}); });
Dashboard.hideLoadingMsg(); loading.hide();
closeDialog(true); closeDialog(true);
} }
ApiClient.updateItem(item).then(function () { var apiClient = getApiClient();
apiClient.updateItem(item).then(function () {
var newContentType = form.querySelector('#selectContentType').value || ''; var newContentType = form.querySelector('#selectContentType').value || '';
if ((metadataEditorInfo.ContentType || '') != newContentType) { if ((metadataEditorInfo.ContentType || '') != newContentType) {
ApiClient.ajax({ apiClient.ajax({
url: ApiClient.getUrl('Items/' + item.Id + '/ContentType', { url: apiClient.getUrl('Items/' + item.Id + '/ContentType', {
ContentType: newContentType ContentType: newContentType
}), }),
@ -115,7 +117,7 @@
function onSubmit(e) { function onSubmit(e) {
Dashboard.showLoadingMsg(); loading.show();
var form = this; var form = this;
@ -271,16 +273,6 @@
}); });
} }
function showRefreshMenu(context, button) {
require(['refreshDialog'], function (refreshDialog) {
showElement(new refreshDialog({
itemIds: [currentItem.Id],
serverId: ApiClient.serverInfo().Id
}));
});
}
function showMoreMenu(context, button, user) { function showMoreMenu(context, button, user) {
require(['itemContextMenu'], function (itemContextMenu) { require(['itemContextMenu'], function (itemContextMenu) {
@ -300,7 +292,7 @@
Emby.Page.goHome(); Emby.Page.goHome();
} else if (result.updated) { } else if (result.updated) {
reload(context, currentItem.Id); reload(context, currentItem.Id, currentItem.ServerId);
} }
}); });
}); });
@ -315,19 +307,19 @@
if (msg.Data.ItemsUpdated.indexOf(currentItem.Id) != -1) { if (msg.Data.ItemsUpdated.indexOf(currentItem.Id) != -1) {
console.log('Item updated - reloading metadata'); console.log('Item updated - reloading metadata');
reload(currentContext, currentItem.Id); reload(currentContext, currentItem.Id, currentItem.ServerId);
} }
} }
} }
function bindItemChanged(context) { function bindItemChanged(context, apiClient) {
Events.on(ApiClient, "websocketmessage", onWebSocketMessageReceived); Events.on(apiClient, "websocketmessage", onWebSocketMessageReceived);
} }
function unbindItemChanged(context) { function unbindItemChanged(context, apiClient) {
Events.off(ApiClient, "websocketmessage", onWebSocketMessageReceived); Events.off(apiClient, "websocketmessage", onWebSocketMessageReceived);
} }
function onEditorClick(e) { function onEditorClick(e) {
@ -344,7 +336,11 @@
} }
} }
function init(context) { function getApiClient() {
return connectionManager.getApiClient(currentItem.ServerId);
}
function init(context, apiClient) {
context.querySelector('.btnCancel').addEventListener('click', function () { context.querySelector('.btnCancel').addEventListener('click', function () {
@ -353,7 +349,7 @@
context.querySelector('.btnMore').addEventListener('click', function (e) { context.querySelector('.btnMore').addEventListener('click', function (e) {
Dashboard.getCurrentUser().then(function (user) { getApiClient().getCurrentUser().then(function (user) {
showMoreMenu(context, e.target, user); showMoreMenu(context, e.target, user);
}); });
@ -387,21 +383,27 @@
// For now this is only supported in dialog mode because we have a way of knowing when it closes // For now this is only supported in dialog mode because we have a way of knowing when it closes
if (isDialog()) { if (isDialog()) {
bindItemChanged(context); bindItemChanged(context, apiClient);
} }
} }
function getItem(itemId) { function getItem(itemId, serverId) {
var apiClient = connectionManager.getApiClient(serverId);
if (itemId) { if (itemId) {
return ApiClient.getItem(Dashboard.getCurrentUserId(), itemId); return apiClient.getItem(apiClient.getCurrentUserId(), itemId);
} }
return ApiClient.getRootFolder(Dashboard.getCurrentUserId()); return apiClient.getRootFolder(apiClient.getCurrentUserId());
} }
function getEditorConfig(itemId) { function getEditorConfig(itemId, serverId) {
var apiClient = connectionManager.getApiClient(serverId);
if (itemId) { if (itemId) {
return ApiClient.getJSON(ApiClient.getUrl('Items/' + itemId + '/MetadataEditor')); return apiClient.getJSON(apiClient.getUrl('Items/' + itemId + '/MetadataEditor'));
} }
return Promise.resolve({}); return Promise.resolve({});
@ -1121,11 +1123,11 @@
container.innerHTML = html; container.innerHTML = html;
} }
function reload(context, itemId) { function reload(context, itemId, serverId) {
Dashboard.showLoadingMsg(); loading.show();
Promise.all([getItem(itemId), getEditorConfig(itemId)]).then(function (responses) { Promise.all([getItem(itemId, serverId), getEditorConfig(itemId, serverId)]).then(function (responses) {
var item = responses[0]; var item = responses[0];
metadataEditorInfo = responses[1]; metadataEditorInfo = responses[1];
@ -1159,15 +1161,15 @@
hideElement('#fldTagline', context); hideElement('#fldTagline', context);
} }
Dashboard.hideLoadingMsg(); loading.hide();
}); });
} }
return { return {
show: function (itemId) { show: function (itemId, serverId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
Dashboard.showLoadingMsg(); loading.show();
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open('GET', 'components/metadataeditor/metadataeditor.template.html', true); xhr.open('GET', 'components/metadataeditor/metadataeditor.template.html', true);
@ -1195,25 +1197,25 @@
dialogHelper.open(dlg); dialogHelper.open(dlg);
dlg.addEventListener('close', function () { dlg.addEventListener('close', function () {
unbindItemChanged(dlg); unbindItemChanged(dlg, connectionManager.getApiClient(serverId));
resolve(); resolve();
}); });
currentContext = dlg; currentContext = dlg;
init(dlg); init(dlg, connectionManager.getApiClient(serverId));
reload(dlg, itemId); reload(dlg, itemId, serverId);
} }
xhr.send(); xhr.send();
}); });
}, },
embed: function (elem, itemId) { embed: function (elem, itemId, serverId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
Dashboard.showLoadingMsg(); loading.show();
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open('GET', 'components/metadataeditor/metadataeditor.template.html', true); xhr.open('GET', 'components/metadataeditor/metadataeditor.template.html', true);
@ -1228,8 +1230,8 @@
currentContext = elem; currentContext = elem;
init(elem); init(elem, connectionManager.getApiClient(serverId));
reload(elem, itemId); reload(elem, itemId, serverId);
} }
xhr.send(); xhr.send();

View file

@ -14,7 +14,7 @@
if (itemId) { if (itemId) {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) { require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.embed(page.querySelector('.editPageInnerContent'), itemId); metadataeditor.embed(page.querySelector('.editPageInnerContent'), itemId, ApiClient.serverInfo().Id);
}); });
} else { } else {
page.querySelector('.editPageInnerContent').innerHTML = ''; page.querySelector('.editPageInnerContent').innerHTML = '';

View file

@ -575,14 +575,6 @@
}); });
}, },
editMetadata: function (itemId) {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(itemId);
});
},
getHref: function (item, context, topParentId) { getHref: function (item, context, topParentId) {
var href = LibraryBrowser.getHrefInternal(item, context); var href = LibraryBrowser.getHrefInternal(item, context);