mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update sync display
This commit is contained in:
parent
0d51412424
commit
a52b5e24d0
20 changed files with 181 additions and 147 deletions
|
@ -1,4 +1,4 @@
|
|||
define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser) {
|
||||
define(['imageLoader', 'layoutManager', 'viewManager', 'navdrawer', 'libraryBrowser', 'apphost', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, navdrawer, libraryBrowser, appHost) {
|
||||
|
||||
var navDrawerElement = document.querySelector('.mainDrawer');
|
||||
var navDrawerScrollContainer = navDrawerElement.querySelector('.scrollContainer');
|
||||
|
@ -296,7 +296,7 @@
|
|||
html += '</div>';
|
||||
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkManageServer" data-itemid="dashboard" href="#"><i class="md-icon sidebarLinkIcon">dashboard</i><span class="sidebarLinkText">' + Globalize.translate('ButtonManageServer') + '</span></a>';
|
||||
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" onclick="return LibraryMenu.onLinkClicked(event, this);" href="edititemmetadata.html"><i class="md-icon sidebarLinkIcon">mode_edit</i><span class="sidebarLinkText">' + Globalize.translate('ButtonMetadataManager') + '</span></a>';
|
||||
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" onclick="return LibraryMenu.onLinkClicked(event, this);" href="edititemmetadata.html"><i class="md-icon sidebarLinkIcon">mode_edit</i><span class="sidebarLinkText">' + Globalize.translate('MetadataManager') + '</span></a>';
|
||||
|
||||
if (!browserInfo.mobile) {
|
||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" onclick="return LibraryMenu.onLinkClicked(event, this);" href="reports.html"><i class="md-icon sidebarLinkIcon">insert_chart</i><span class="sidebarLinkText">' + Globalize.translate('ButtonReports') + '</span></a>';
|
||||
|
@ -312,7 +312,9 @@
|
|||
html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><i class="md-icon sidebarLinkIcon">settings</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>';
|
||||
}
|
||||
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>';
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkManageOffline" data-itemid="manageoffline" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html?mode=offline"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('ManageOfflineDownloads') + '</span></a>';
|
||||
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkSyncToOtherDevices" data-itemid="syncotherdevices" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><i class="md-icon sidebarLinkIcon">sync</i><span class="sidebarLinkText">' + Globalize.translate('SyncToOtherDevices') + '</span></a>';
|
||||
|
||||
if (Dashboard.isConnectMode()) {
|
||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html?showuser=1"><i class="md-icon sidebarLinkIcon">wifi</i><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>';
|
||||
|
@ -447,15 +449,22 @@
|
|||
|
||||
if (!user) {
|
||||
|
||||
showBySelector('.lnkMySync', false);
|
||||
showBySelector('.lnkManageOffline', false);
|
||||
showBySelector('.lnkSyncToOtherDevices', false);
|
||||
showBySelector('.userMenuOptions', false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.Policy.EnableSync) {
|
||||
showBySelector('.lnkMySync', true);
|
||||
showBySelector('.lnkSyncToOtherDevices', true);
|
||||
} else {
|
||||
showBySelector('.lnkMySync', false);
|
||||
showBySelector('.lnkSyncToOtherDevices', false);
|
||||
}
|
||||
|
||||
if (user.Policy.EnableSync && appHost.supports('sync')) {
|
||||
showBySelector('.lnkManageOffline', true);
|
||||
} else {
|
||||
showBySelector('.lnkManageOffline', false);
|
||||
}
|
||||
|
||||
var userId = Dashboard.getCurrentUserId();
|
||||
|
@ -788,7 +797,12 @@
|
|||
else if (isReportsPage && itemId == 'reports') {
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isMySyncPage && itemId == 'mysync') {
|
||||
else if (isMySyncPage && itemId == 'manageoffline') {
|
||||
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (isMySyncPage && itemId == 'syncotherdevices') {
|
||||
|
||||
lnkMediaFolder.classList.add('selectedMediaFolder');
|
||||
}
|
||||
else if (id && itemId == id) {
|
||||
|
@ -816,33 +830,6 @@
|
|||
return url;
|
||||
}
|
||||
|
||||
function updateTabLinks(page) {
|
||||
|
||||
var elems = page.querySelectorAll('.scopedLibraryViewNav a');
|
||||
|
||||
var id = page.classList.contains('liveTvPage') || page.classList.contains('channelsPage') || page.classList.contains('metadataEditorPage') || page.classList.contains('reportsPage') || page.classList.contains('mySyncPage') || page.classList.contains('allLibraryPage') ?
|
||||
'' :
|
||||
getTopParentId() || '';
|
||||
|
||||
if (!id) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0, length = elems.length; i < length; i++) {
|
||||
|
||||
var lnk = elems[i];
|
||||
var src = lnk.href;
|
||||
|
||||
if (src.indexOf('#') != -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
src = replaceQueryString(src, 'topParentId', id);
|
||||
|
||||
lnk.href = src;
|
||||
}
|
||||
}
|
||||
|
||||
function onWebSocketMessage(e, data) {
|
||||
|
||||
var msg = data;
|
||||
|
@ -909,7 +896,6 @@
|
|||
setDrawerClass(page);
|
||||
|
||||
updateViewMenuBar(page);
|
||||
updateTabLinks(page);
|
||||
|
||||
if (!e.detail.isRestored) {
|
||||
// Scroll back up so in case vertical scroll was messed with
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
define(['appSettings'], function (appSettings) {
|
||||
define(['appSettings', 'connectionManager'], function (appSettings, connectionManager) {
|
||||
|
||||
var syncPromise;
|
||||
|
||||
window.LocalSync = {
|
||||
|
||||
isSupported: function () {
|
||||
return AppInfo.isNativeApp && Dashboard.capabilities().SupportsSync;
|
||||
},
|
||||
|
||||
sync: function (options) {
|
||||
|
||||
if (syncPromise) {
|
||||
|
@ -16,15 +12,13 @@
|
|||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
require(['multiserversync'], function () {
|
||||
require(['multiserversync'], function (MultiServerSync) {
|
||||
|
||||
options = options || {};
|
||||
|
||||
LocalSync.normalizeSyncOptions(options);
|
||||
|
||||
options.cameraUploadServers = appSettings.cameraUploadServers();
|
||||
|
||||
syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).then(function () {
|
||||
syncPromise = new MultiServerSync(connectionManager).sync(options).then(function () {
|
||||
|
||||
syncPromise = null;
|
||||
resolve();
|
||||
|
@ -38,10 +32,6 @@
|
|||
});
|
||||
},
|
||||
|
||||
normalizeSyncOptions: function (options) {
|
||||
|
||||
},
|
||||
|
||||
getSyncStatus: function () {
|
||||
|
||||
if (syncPromise != null) {
|
||||
|
|
|
@ -1,46 +1,49 @@
|
|||
define(['loading', 'localsync'], function (loading) {
|
||||
|
||||
function refreshSyncStatus(page) {
|
||||
|
||||
if (LocalSync.isSupported()) {
|
||||
|
||||
var status = LocalSync.getSyncStatus();
|
||||
|
||||
page.querySelector('.labelSyncStatus').innerHTML = Globalize.translate('LabelLocalSyncStatusValue', status);
|
||||
if (status == 'Active') {
|
||||
loading.show();
|
||||
} else {
|
||||
loading.hide();
|
||||
}
|
||||
|
||||
if (status == "Active") {
|
||||
page.querySelector('.btnSyncNow').classList.add('hide');
|
||||
}
|
||||
else {
|
||||
page.querySelector('.btnSyncNow').classList.remove('hide');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function syncNow(page) {
|
||||
|
||||
LocalSync.sync();
|
||||
require(['toast'], function (toast) {
|
||||
toast(Globalize.translate('MessageSyncStarted'));
|
||||
});
|
||||
refreshSyncStatus(page);
|
||||
}
|
||||
define(['loading', 'apphost', 'localsync'], function (loading, appHost) {
|
||||
|
||||
return function (view, params) {
|
||||
|
||||
var interval;
|
||||
|
||||
function isLocalSyncManagement() {
|
||||
return appHost.supports('sync') && params.mode == 'offline';
|
||||
}
|
||||
|
||||
function refreshSyncStatus(page) {
|
||||
|
||||
if (isLocalSyncManagement()) {
|
||||
|
||||
var status = LocalSync.getSyncStatus();
|
||||
|
||||
page.querySelector('.labelSyncStatus').innerHTML = Globalize.translate('LabelLocalSyncStatusValue', status);
|
||||
if (status == 'Active') {
|
||||
loading.show();
|
||||
} else {
|
||||
loading.hide();
|
||||
}
|
||||
|
||||
if (status == "Active") {
|
||||
page.querySelector('.btnSyncNow').classList.add('hide');
|
||||
}
|
||||
else {
|
||||
page.querySelector('.btnSyncNow').classList.remove('hide');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function syncNow(page) {
|
||||
|
||||
LocalSync.sync();
|
||||
require(['toast'], function (toast) {
|
||||
toast(Globalize.translate('MessageSyncStarted'));
|
||||
});
|
||||
refreshSyncStatus(page);
|
||||
}
|
||||
|
||||
view.querySelector('.btnSyncNow').addEventListener('click', function () {
|
||||
syncNow(view);
|
||||
});
|
||||
|
||||
if (LocalSync.isSupported()) {
|
||||
if (isLocalSyncManagement()) {
|
||||
|
||||
view.querySelector('.localSyncStatus').classList.remove('hide');
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@
|
|||
//html += '</div>';
|
||||
//html += '</div>';
|
||||
|
||||
$(elem).html(html);
|
||||
elem.innerHTML = html;
|
||||
|
||||
$('#selectSyncTarget', elem).on('change', function () {
|
||||
|
||||
|
@ -303,7 +303,7 @@
|
|||
var promise = dialogHelper.open(dlg);
|
||||
|
||||
renderForm({
|
||||
elem: $('.formFields', dlg),
|
||||
elem: dlg.querySelector('.formFields'),
|
||||
dialogOptions: dialogOptions,
|
||||
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery)
|
||||
});
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
require(['syncDialog'], function (syncDialog) {
|
||||
syncDialog.renderForm({
|
||||
elem: $('.formFields', page),
|
||||
elem: page.querySelector('.formFields'),
|
||||
dialogOptions: dialogOptions,
|
||||
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptions),
|
||||
showName: true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue