degligy medialibrarypage
This commit is contained in:
parent
e8ae9b3605
commit
e9d2c73c5e
1 changed files with 97 additions and 52 deletions
|
@ -1,48 +1,54 @@
|
||||||
define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "globalize", "dom", "indicators", "scripts/imagehelper", "cardStyle", "emby-itemrefreshindicator"], function($, appHost, taskButton, loading, libraryMenu, globalize, dom, indicators, imageHelper) {
|
define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "globalize", "dom", "indicators", "scripts/imagehelper", "cardStyle", "emby-itemrefreshindicator"], function ($, appHost, taskButton, loading, libraryMenu, globalize, dom, indicators, imageHelper) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function addVirtualFolder(page) {
|
function addVirtualFolder(page) {
|
||||||
require(["medialibrarycreator"], function(medialibrarycreator) {
|
require(["medialibrarycreator"], function (medialibrarycreator) {
|
||||||
(new medialibrarycreator).show({
|
new medialibrarycreator().show({
|
||||||
collectionTypeOptions: getCollectionTypeOptions().filter(function(f) {
|
collectionTypeOptions: getCollectionTypeOptions().filter(function (f) {
|
||||||
return !f.hidden;
|
return !f.hidden;
|
||||||
}),
|
}),
|
||||||
refresh: shouldRefreshLibraryAfterChanges(page)
|
refresh: shouldRefreshLibraryAfterChanges(page)
|
||||||
}).then(function(hasChanges) {
|
}).then(function (hasChanges) {
|
||||||
hasChanges && reloadLibrary(page);
|
if (hasChanges) {
|
||||||
})
|
reloadLibrary(page);
|
||||||
})
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function editVirtualFolder(page, virtualFolder) {
|
function editVirtualFolder(page, virtualFolder) {
|
||||||
require(["medialibraryeditor"], function(medialibraryeditor) {
|
require(["medialibraryeditor"], function (medialibraryeditor) {
|
||||||
(new medialibraryeditor).show({
|
new medialibraryeditor().show({
|
||||||
refresh: shouldRefreshLibraryAfterChanges(page),
|
refresh: shouldRefreshLibraryAfterChanges(page),
|
||||||
library: virtualFolder
|
library: virtualFolder
|
||||||
}).then(function(hasChanges) {
|
}).then(function (hasChanges) {
|
||||||
hasChanges && reloadLibrary(page);
|
if (hasChanges) {
|
||||||
})
|
reloadLibrary(page);
|
||||||
})
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteVirtualFolder(page, virtualFolder) {
|
function deleteVirtualFolder(page, virtualFolder) {
|
||||||
var msg = globalize.translate("MessageAreYouSureYouWishToRemoveMediaFolder");
|
var msg = globalize.translate("MessageAreYouSureYouWishToRemoveMediaFolder");
|
||||||
|
|
||||||
if (virtualFolder.Locations.length) {
|
if (virtualFolder.Locations.length) {
|
||||||
msg += "<br/><br/>" + globalize.translate("MessageTheFollowingLocationWillBeRemovedFromLibrary") + "<br/><br/>";
|
msg += "<br/><br/>" + globalize.translate("MessageTheFollowingLocationWillBeRemovedFromLibrary") + "<br/><br/>";
|
||||||
msg += virtualFolder.Locations.join("<br/>");
|
msg += virtualFolder.Locations.join("<br/>");
|
||||||
}
|
}
|
||||||
require(["confirm"], function(confirm) {
|
|
||||||
confirm(msg, globalize.translate("HeaderRemoveMediaFolder")).then(function() {
|
require(["confirm"], function (confirm) {
|
||||||
|
confirm(msg, globalize.translate("HeaderRemoveMediaFolder")).then(function () {
|
||||||
var refreshAfterChange = shouldRefreshLibraryAfterChanges(page);
|
var refreshAfterChange = shouldRefreshLibraryAfterChanges(page);
|
||||||
ApiClient.removeVirtualFolder(virtualFolder.Name, refreshAfterChange).then(function() {
|
ApiClient.removeVirtualFolder(virtualFolder.Name, refreshAfterChange).then(function () {
|
||||||
reloadLibrary(page);
|
reloadLibrary(page);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshVirtualFolder(page, virtualFolder) {
|
function refreshVirtualFolder(page, virtualFolder) {
|
||||||
require(["refreshDialog"], function(refreshDialog) {
|
require(["refreshDialog"], function (refreshDialog) {
|
||||||
new refreshDialog({
|
new refreshDialog({
|
||||||
itemIds: [virtualFolder.ItemId],
|
itemIds: [virtualFolder.ItemId],
|
||||||
serverId: ApiClient.serverId(),
|
serverId: ApiClient.serverId(),
|
||||||
|
@ -52,14 +58,14 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
}
|
}
|
||||||
|
|
||||||
function renameVirtualFolder(page, virtualFolder) {
|
function renameVirtualFolder(page, virtualFolder) {
|
||||||
require(["prompt"], function(prompt) {
|
require(["prompt"], function (prompt) {
|
||||||
prompt({
|
prompt({
|
||||||
label: globalize.translate("LabelNewName"),
|
label: globalize.translate("LabelNewName"),
|
||||||
confirmText: globalize.translate("ButtonRename")
|
confirmText: globalize.translate("ButtonRename")
|
||||||
}).then(function(newName) {
|
}).then(function (newName) {
|
||||||
if (newName && newName != virtualFolder.Name) {
|
if (newName && newName != virtualFolder.Name) {
|
||||||
var refreshAfterChange = shouldRefreshLibraryAfterChanges(page);
|
var refreshAfterChange = shouldRefreshLibraryAfterChanges(page);
|
||||||
ApiClient.renameVirtualFolder(virtualFolder.Name, newName, refreshAfterChange).then(function() {
|
ApiClient.renameVirtualFolder(virtualFolder.Name, newName, refreshAfterChange).then(function () {
|
||||||
reloadLibrary(page);
|
reloadLibrary(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -97,24 +103,29 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
id: "refresh",
|
id: "refresh",
|
||||||
ironIcon: "refresh"
|
ironIcon: "refresh"
|
||||||
});
|
});
|
||||||
require(["actionsheet"], function(actionsheet) {
|
|
||||||
|
require(["actionsheet"], function (actionsheet) {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
positionTo: elem,
|
positionTo: elem,
|
||||||
callback: function(resultId) {
|
callback: function (resultId) {
|
||||||
switch (resultId) {
|
switch (resultId) {
|
||||||
case "edit":
|
case "edit":
|
||||||
editVirtualFolder(page, virtualFolder);
|
editVirtualFolder(page, virtualFolder);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "editimages":
|
case "editimages":
|
||||||
editImages(page, virtualFolder);
|
editImages(page, virtualFolder);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "rename":
|
case "rename":
|
||||||
renameVirtualFolder(page, virtualFolder);
|
renameVirtualFolder(page, virtualFolder);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "delete":
|
case "delete":
|
||||||
deleteVirtualFolder(page, virtualFolder);
|
deleteVirtualFolder(page, virtualFolder);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "refresh":
|
case "refresh":
|
||||||
refreshVirtualFolder(page, virtualFolder);
|
refreshVirtualFolder(page, virtualFolder);
|
||||||
}
|
}
|
||||||
|
@ -125,7 +136,7 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
|
|
||||||
function reloadLibrary(page) {
|
function reloadLibrary(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
ApiClient.getVirtualFolders().then(function(result) {
|
ApiClient.getVirtualFolders().then(function (result) {
|
||||||
reloadVirtualFolders(page, result);
|
reloadVirtualFolders(page, result);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -148,36 +159,40 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
|
|
||||||
for (var i = 0; i < virtualFolders.length; i++) {
|
for (var i = 0; i < virtualFolders.length; i++) {
|
||||||
var virtualFolder = virtualFolders[i];
|
var virtualFolder = virtualFolders[i];
|
||||||
html += getVirtualFolderHtml(page, virtualFolder, i)
|
html += getVirtualFolderHtml(page, virtualFolder, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
var divVirtualFolders = page.querySelector("#divVirtualFolders");
|
var divVirtualFolders = page.querySelector("#divVirtualFolders");
|
||||||
divVirtualFolders.innerHTML = html;
|
divVirtualFolders.innerHTML = html;
|
||||||
divVirtualFolders.classList.add("itemsContainer");
|
divVirtualFolders.classList.add("itemsContainer");
|
||||||
divVirtualFolders.classList.add("vertical-wrap");
|
divVirtualFolders.classList.add("vertical-wrap");
|
||||||
$(".btnCardMenu", divVirtualFolders).on("click", function() {
|
$(".btnCardMenu", divVirtualFolders).on("click", function () {
|
||||||
showCardMenu(page, this, virtualFolders);
|
showCardMenu(page, this, virtualFolders);
|
||||||
});
|
});
|
||||||
divVirtualFolders.querySelector(".addLibrary").addEventListener("click", function() {
|
divVirtualFolders.querySelector(".addLibrary").addEventListener("click", function () {
|
||||||
addVirtualFolder(page);
|
addVirtualFolder(page);
|
||||||
});
|
});
|
||||||
$(".editLibrary", divVirtualFolders).on("click", function() {
|
$(".editLibrary", divVirtualFolders).on("click", function () {
|
||||||
var card = $(this).parents(".card")[0];
|
var card = $(this).parents(".card")[0];
|
||||||
var index = parseInt(card.getAttribute("data-index"));
|
var index = parseInt(card.getAttribute("data-index"));
|
||||||
var virtualFolder = virtualFolders[index];
|
var virtualFolder = virtualFolders[index];
|
||||||
virtualFolder.ItemId && editVirtualFolder(page, virtualFolder);
|
|
||||||
|
if (virtualFolder.ItemId) {
|
||||||
|
editVirtualFolder(page, virtualFolder);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
loading.hide();
|
loading.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
function editImages(page, virtualFolder) {
|
function editImages(page, virtualFolder) {
|
||||||
require(["imageEditor"], function(imageEditor) {
|
require(["imageEditor"], function (imageEditor) {
|
||||||
imageEditor.show({
|
imageEditor.show({
|
||||||
itemId: virtualFolder.ItemId,
|
itemId: virtualFolder.ItemId,
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
||||||
}).then(function() {
|
}).then(function () {
|
||||||
reloadLibrary(page);
|
reloadLibrary(page);
|
||||||
});
|
});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLink(text, url) {
|
function getLink(text, url) {
|
||||||
|
@ -214,25 +229,32 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
name: globalize.translate("FolderTypeUnset"),
|
name: globalize.translate("FolderTypeUnset"),
|
||||||
value: "mixed",
|
value: "mixed",
|
||||||
message: globalize.translate("MessageUnsetContentHelp")
|
message: globalize.translate("MessageUnsetContentHelp")
|
||||||
}]
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getVirtualFolderHtml(page, virtualFolder, index) {
|
function getVirtualFolderHtml(page, virtualFolder, index) {
|
||||||
var html = "";
|
var html = "";
|
||||||
var style = "";
|
var style = "";
|
||||||
page.classList.contains("wizardPage") && (style += "min-width:33.3%;");
|
|
||||||
|
if (page.classList.contains("wizardPage")) {
|
||||||
|
style += "min-width:33.3%;";
|
||||||
|
}
|
||||||
|
|
||||||
html += '<div class="card backdropCard scalableCard backdropCard-scalable" style="' + style + '" data-index="' + index + '" data-id="' + virtualFolder.ItemId + '">';
|
html += '<div class="card backdropCard scalableCard backdropCard-scalable" style="' + style + '" data-index="' + index + '" data-id="' + virtualFolder.ItemId + '">';
|
||||||
html += '<div class="cardBox visualCardBox">';
|
html += '<div class="cardBox visualCardBox">';
|
||||||
html += '<div class="cardScalable visualCardBox-cardScalable">';
|
html += '<div class="cardScalable visualCardBox-cardScalable">';
|
||||||
html += '<div class="cardPadder cardPadder-backdrop"></div>';
|
html += '<div class="cardPadder cardPadder-backdrop"></div>';
|
||||||
html += '<div class="cardContent">';
|
html += '<div class="cardContent">';
|
||||||
var imgUrl = "";
|
var imgUrl = "";
|
||||||
|
|
||||||
if (virtualFolder.PrimaryImageItemId) {
|
if (virtualFolder.PrimaryImageItemId) {
|
||||||
imgUrl = ApiClient.getScaledImageUrl(virtualFolder.PrimaryImageItemId, {
|
imgUrl = ApiClient.getScaledImageUrl(virtualFolder.PrimaryImageItemId, {
|
||||||
type: "Primary"
|
type: "Primary"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasCardImageContainer;
|
var hasCardImageContainer;
|
||||||
|
|
||||||
if (imgUrl) {
|
if (imgUrl) {
|
||||||
html += '<div class="cardImageContainer editLibrary" style="cursor:pointer;background-image:url(\'' + imgUrl + "');\">";
|
html += '<div class="cardImageContainer editLibrary" style="cursor:pointer;background-image:url(\'' + imgUrl + "');\">";
|
||||||
hasCardImageContainer = true;
|
hasCardImageContainer = true;
|
||||||
|
@ -241,38 +263,60 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
html += '<i class="cardImageIcon-small md-icon">' + (virtualFolder.icon || imageHelper.getLibraryIcon(virtualFolder.CollectionType)) + "</i>";
|
html += '<i class="cardImageIcon-small md-icon">' + (virtualFolder.icon || imageHelper.getLibraryIcon(virtualFolder.CollectionType)) + "</i>";
|
||||||
hasCardImageContainer = true;
|
hasCardImageContainer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasCardImageContainer) {
|
if (hasCardImageContainer) {
|
||||||
html += '<div class="cardIndicators backdropCardIndicators">';
|
html += '<div class="cardIndicators backdropCardIndicators">';
|
||||||
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && "Idle" !== virtualFolder.RefreshStatus ? "" : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && "Idle" !== virtualFolder.RefreshStatus ? "" : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!imgUrl && virtualFolder.showNameWithIcon) {
|
if (!imgUrl && virtualFolder.showNameWithIcon) {
|
||||||
html += '<h3 class="cardImageContainer addLibrary" style="position:absolute;top:0;left:0;right:0;bottom:0;cursor:pointer;flex-direction:column;">';
|
html += '<h3 class="cardImageContainer addLibrary" style="position:absolute;top:0;left:0;right:0;bottom:0;cursor:pointer;flex-direction:column;">';
|
||||||
html += '<i class="cardImageIcon-small md-icon">' + (virtualFolder.icon || imageHelper.getLibraryIcon(virtualFolder.CollectionType)) + "</i>";
|
html += '<i class="cardImageIcon-small md-icon">' + (virtualFolder.icon || imageHelper.getLibraryIcon(virtualFolder.CollectionType)) + "</i>";
|
||||||
virtualFolder.showNameWithIcon && (html += '<div style="margin:1em 0;position:width:100%;">', html += virtualFolder.Name, html += "</div>");
|
|
||||||
|
if (virtualFolder.showNameWithIcon) {
|
||||||
|
html += '<div style="margin:1em 0;position:width:100%;">';
|
||||||
|
html += virtualFolder.Name;
|
||||||
|
html += "</div>";
|
||||||
|
}
|
||||||
|
|
||||||
html += "</h3>";
|
html += "</h3>";
|
||||||
}
|
}
|
||||||
html += "</div>";
|
|
||||||
html += "</div>";
|
|
||||||
html += '<div class="cardFooter visualCardBox-cardFooter">';
|
|
||||||
|
|
||||||
// always show menu unless explicitly hidden
|
html += "</div>";
|
||||||
|
html += "</div>";
|
||||||
|
html += '<div class="cardFooter visualCardBox-cardFooter">'; // always show menu unless explicitly hidden
|
||||||
|
|
||||||
if (virtualFolder.showMenu !== false) {
|
if (virtualFolder.showMenu !== false) {
|
||||||
html += '<div style="text-align:right; float:right;padding-top:5px;">';
|
html += '<div style="text-align:right; float:right;padding-top:5px;">';
|
||||||
html += '<button type="button" is="paper-icon-button-light" class="btnCardMenu autoSize"><i class="md-icon"></i></button>';
|
html += '<button type="button" is="paper-icon-button-light" class="btnCardMenu autoSize"><i class="md-icon"></i></button>';
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
html += "<div class='cardText'>";
|
html += "<div class='cardText'>";
|
||||||
virtualFolder.showNameWithIcon ? html += " " : html += virtualFolder.Name;
|
|
||||||
|
if (virtualFolder.showNameWithIcon) {
|
||||||
|
html += " ";
|
||||||
|
} else {
|
||||||
|
html += virtualFolder.Name;
|
||||||
|
}
|
||||||
|
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
var typeName = getCollectionTypeOptions().filter(function(t) {
|
var typeName = getCollectionTypeOptions().filter(function (t) {
|
||||||
return t.value == virtualFolder.CollectionType
|
return t.value == virtualFolder.CollectionType;
|
||||||
})[0];
|
})[0];
|
||||||
typeName = typeName ? typeName.name : globalize.translate("FolderTypeUnset");
|
typeName = typeName ? typeName.name : globalize.translate("FolderTypeUnset");
|
||||||
html += "<div class='cardText cardText-secondary'>";
|
html += "<div class='cardText cardText-secondary'>";
|
||||||
virtualFolder.showType === false ? html += " " : html += typeName;
|
|
||||||
|
if (virtualFolder.showType === false) {
|
||||||
|
html += " ";
|
||||||
|
} else {
|
||||||
|
html += typeName;
|
||||||
|
}
|
||||||
|
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
|
|
||||||
if (virtualFolder.showLocations === false) {
|
if (virtualFolder.showLocations === false) {
|
||||||
html += "<div class='cardText cardText-secondary'>";
|
html += "<div class='cardText cardText-secondary'>";
|
||||||
html += " ";
|
html += " ";
|
||||||
|
@ -286,6 +330,7 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
html += globalize.translate("NumLocationsValue", virtualFolder.Locations.length);
|
html += globalize.translate("NumLocationsValue", virtualFolder.Locations.length);
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
|
@ -305,18 +350,18 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
}, {
|
}, {
|
||||||
href: "metadatanfo.html",
|
href: "metadatanfo.html",
|
||||||
name: globalize.translate("TabNfoSettings")
|
name: globalize.translate("TabNfoSettings")
|
||||||
}]
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
window.WizardLibraryPage = {
|
window.WizardLibraryPage = {
|
||||||
next: function() {
|
next: function () {
|
||||||
Dashboard.navigate("wizardsettings.html")
|
Dashboard.navigate("wizardsettings.html");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pageClassOn("pageshow", "mediaLibraryPage", function() {
|
pageClassOn("pageshow", "mediaLibraryPage", function () {
|
||||||
reloadLibrary(this);
|
reloadLibrary(this);
|
||||||
});
|
});
|
||||||
pageIdOn("pageshow", "mediaLibraryPage", function() {
|
pageIdOn("pageshow", "mediaLibraryPage", function () {
|
||||||
libraryMenu.setTabs("librarysetup", 0, getTabs);
|
libraryMenu.setTabs("librarysetup", 0, getTabs);
|
||||||
var page = this;
|
var page = this;
|
||||||
taskButton({
|
taskButton({
|
||||||
|
@ -326,7 +371,7 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
||||||
button: page.querySelector(".btnRefresh")
|
button: page.querySelector(".btnRefresh")
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
pageIdOn("pagebeforehide", "mediaLibraryPage", function() {
|
pageIdOn("pagebeforehide", "mediaLibraryPage", function () {
|
||||||
var page = this;
|
var page = this;
|
||||||
taskButton({
|
taskButton({
|
||||||
mode: "off",
|
mode: "off",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue