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

update sync scripts

This commit is contained in:
Luke Pulverenti 2016-12-10 02:16:15 -05:00
parent ec06f3cc61
commit fc210d8ad2
18 changed files with 1394 additions and 564 deletions

View file

@ -1,9 +1,6 @@
define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'apphost', 'imageLoader', 'libraryMenu', 'shell', 'globalize', 'browser', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators, appHost, imageLoader, libraryMenu, shell, globalize, browser) {
define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'apphost', 'imageLoader', 'libraryMenu', 'shell', 'globalize', 'browser', 'events', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators, appHost, imageLoader, libraryMenu, shell, globalize, browser, events) {
'use strict';
var currentItem;
var currentRecordingFields;
function getPromise(params) {
var id = params.id;
@ -40,6 +37,9 @@
}
}
var currentItem;
var currentRecordingFields;
function reload(page, params) {
Dashboard.showLoadingMsg();
@ -87,14 +87,25 @@
return options;
}
function updateSyncStatus(page, item) {
function renderSyncLocalContainer(page, params, user, item) {
var i, length;
var elems = page.querySelectorAll('.chkOffline');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].checked = item.SyncPercent != null;
if (page.syncToggleInstance) {
page.syncToggleInstance.refresh(item);
return;
}
require(['syncToggle'], function (syncToggle) {
page.syncToggleInstance = new syncToggle({
user: user,
item: item,
container: page.querySelector('.syncLocalContainer')
});
events.on(page.syncToggleInstance, 'sync', function () {
reload(page, params);
});
});
}
function reloadFromItem(page, params, item) {
@ -166,19 +177,7 @@
hideAll(page, 'btnDeleteItem');
}
if (itemHelper.canSync(user, item)) {
if (appHost.supports('sync')) {
hideAll(page, 'syncLocalContainer', true);
hideAll(page, 'btnSync');
} else {
hideAll(page, 'syncLocalContainer');
hideAll(page, 'btnSync', true);
}
updateSyncStatus(page, item);
} else {
hideAll(page, 'btnSync');
hideAll(page, 'syncLocalContainer');
}
renderSyncLocalContainer(page, params, user, item);
if (hasAnyButton || item.Type !== 'Program') {
hideAll(page, 'mainDetailButtons', true);
@ -641,6 +640,12 @@
}
var overview = page.querySelector('.overview');
var externalLinksElem = page.querySelector('.itemExternalLinks');
if (item.Type === 'Season' || item.Type === 'MusicAlbum' || item.Type === 'MusicArtist') {
overview.classList.add('detailsHiddenOnMobile');
externalLinksElem.classList.add('detailsHiddenOnMobile');
}
renderOverview([overview], item);
@ -677,7 +682,7 @@
renderStudios(page.querySelector('.itemStudios'), item, isStatic);
renderUserDataIcons(page, item);
renderLinks(page.querySelector('.itemExternalLinks'), item);
renderLinks(externalLinksElem, item);
page.querySelector('.criticRatingScore').innerHTML = (item.CriticRating || '0') + '%';
@ -2175,53 +2180,10 @@
return function (view, params) {
function resetSyncStatus() {
updateSyncStatus(view, currentItem);
}
function onSyncLocalClick() {
if (this.checked) {
require(['syncDialog'], function (syncDialog) {
syncDialog.showMenu({
items: [currentItem],
isLocalSync: true,
serverId: ApiClient.serverId()
}).then(function () {
reload(view, params);
}, resetSyncStatus);
});
} else {
require(['confirm'], function (confirm) {
confirm(globalize.translate('ConfirmRemoveDownload')).then(function () {
ApiClient.cancelSyncItems([currentItem.Id]);
}, resetSyncStatus);
});
}
}
function onPlayTrailerClick() {
playTrailer(view);
}
function onRecordClick() {
var id = params.id;
Dashboard.showLoadingMsg();
require(['recordingCreator'], function (recordingCreator) {
recordingCreator.show(id, currentItem.ServerId).then(function () {
reload(view, params);
});
});
}
function onCancelRecordingClick() {
deleteTimer(view, params, currentItem.TimerId);
}
function onMoreCommandsClick() {
var button = this;
@ -2257,11 +2219,6 @@
splitVersions(view, params);
});
elems = view.querySelectorAll('.chkOffline');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('change', onSyncLocalClick);
}
elems = view.querySelectorAll('.btnMoreCommands');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onMoreCommandsClick);
@ -2349,7 +2306,7 @@
var page = this;
reload(page, params);
Events.on(ApiClient, 'websocketmessage', onWebSocketMessage);
events.on(ApiClient, 'websocketmessage', onWebSocketMessage);
});
view.addEventListener('viewbeforehide', function () {
@ -2357,8 +2314,16 @@
currentItem = null;
currentRecordingFields = null;
Events.off(ApiClient, 'websocketmessage', onWebSocketMessage);
events.off(ApiClient, 'websocketmessage', onWebSocketMessage);
libraryMenu.setTransparentMenu(false);
});
view.addEventListener('viewdestroy', function () {
if (view.syncToggleInstance) {
view.syncToggleInstance.destroy();
view.syncToggleInstance = null;
}
});
};
});

View file

@ -1293,6 +1293,7 @@ var AppInfo = {};
define("guide-settings-dialog", [embyWebComponentsBowerPath + "/guide/guide-settings"], returnFirstDependency);
define("guide-categories-dialog", [embyWebComponentsBowerPath + "/guide/guide-categories"], returnFirstDependency);
define("syncDialog", [embyWebComponentsBowerPath + "/sync/sync"], returnFirstDependency);
define("syncToggle", [embyWebComponentsBowerPath + "/sync/synctoggle"], returnFirstDependency);
define("voiceDialog", [embyWebComponentsBowerPath + "/voice/voicedialog"], returnFirstDependency);
define("voiceReceiver", [embyWebComponentsBowerPath + "/voice/voicereceiver"], returnFirstDependency);
define("voiceProcessor", [embyWebComponentsBowerPath + "/voice/voiceprocessor"], returnFirstDependency);