1
0
Fork 0
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:
Luke Pulverenti 2016-08-16 14:54:08 -04:00
parent 0d51412424
commit a52b5e24d0
20 changed files with 181 additions and 147 deletions

View file

@ -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

View file

@ -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) {

View file

@ -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');

View file

@ -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)
});

View file

@ -18,7 +18,7 @@
require(['syncDialog'], function (syncDialog) {
syncDialog.renderForm({
elem: $('.formFields', page),
elem: page.querySelector('.formFields'),
dialogOptions: dialogOptions,
dialogOptionsFn: getTargetDialogOptionsFn(dialogOptions),
showName: true,