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

deminify the installed plugin page

This commit is contained in:
dkanada 2019-04-02 15:16:51 -07:00
parent 9677981344
commit 3b0b5228fe

View file

@ -10,9 +10,10 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
primary: "cancel", primary: "cancel",
confirmText: globalize.translate("UninstallPluginHeader") confirmText: globalize.translate("UninstallPluginHeader")
}).then(function() { }).then(function() {
loading.show(), ApiClient.uninstallPlugin(uniqueid).then(function() { loading.show();
reloadList(page) ApiClient.uninstallPlugin(uniqueid).then(function() {
}) reloadList(page);
});
}) })
}) })
} }
@ -20,18 +21,18 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
function showNoConfigurationMessage() { function showNoConfigurationMessage() {
Dashboard.alert({ Dashboard.alert({
message: globalize.translate("NoPluginConfigurationMessage") message: globalize.translate("NoPluginConfigurationMessage")
}) });
} }
function showConnectMessage() { function showConnectMessage() {
Dashboard.alert({ Dashboard.alert({
message: globalize.translate("MessagePluginConfigurationRequiresLocalAccess") message: globalize.translate("MessagePluginConfigurationRequiresLocalAccess")
}) });
} }
function getPluginCardHtml(plugin, pluginConfigurationPages) { function getPluginCardHtml(plugin, pluginConfigurationPages) {
var configPage = pluginConfigurationPages.filter(function(pluginConfigurationPage) { var configPage = pluginConfigurationPages.filter(function(pluginConfigurationPage) {
return pluginConfigurationPage.PluginId == plugin.Id return pluginConfigurationPage.PluginId == plugin.Id;
})[0]; })[0];
var configPageUrl = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : null; var configPageUrl = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : null;
@ -65,38 +66,56 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
return html; return html;
} }
function renderPlugins(page, plugins, showNoPluginsMessage) { function renderPlugins(page, plugins) {
ApiClient.getJSON(ApiClient.getUrl("web/configurationpages") + "?pageType=PluginConfiguration").then(function(configPages) { ApiClient.getJSON(ApiClient.getUrl("web/configurationpages") + "?pageType=PluginConfiguration").then(function(configPages) {
populateList(page, plugins, configPages, showNoPluginsMessage) populateList(page, plugins, configPages);
}) });
} }
function populateList(page, plugins, pluginConfigurationPages, showNoPluginsMessage) { function populateList(page, plugins, pluginConfigurationPages) {
plugins = plugins.sort(function(plugin1, plugin2) { plugins = plugins.sort(function(plugin1, plugin2) {
return plugin1.Name > plugin2.Name ? 1 : -1 return plugin1.Name > plugin2.Name ? 1 : -1
}); });
var html = plugins.map(function(p) { var html = plugins.map(function(p) {
return getPluginCardHtml(p, pluginConfigurationPages) return getPluginCardHtml(p, pluginConfigurationPages)
}).join(""), }).join("");
installedPluginsElement = page.querySelector(".installedPlugins"); var installedPluginsElement = page.querySelector(".installedPlugins");
installedPluginsElement.removeEventListener("click", onInstalledPluginsClick), installedPluginsElement.addEventListener("click", onInstalledPluginsClick), plugins.length ? (installedPluginsElement.classList.add("itemsContainer"), installedPluginsElement.classList.add("vertical-wrap"), installedPluginsElement.innerHTML = html) : (showNoPluginsMessage && (html += '<div style="padding:5px;">', html += "<p>" + globalize.translate("MessageNoPluginsInstalled") + "</p>", html += '<p><a is="emby-linkbutton" class="button-link" href="plugincatalog.html">', html += globalize.translate("BrowsePluginCatalogMessage"), html += "</a></p>", html += "</div>"), installedPluginsElement.innerHTML = html), loading.hide() installedPluginsElement.removeEventListener("click", onInstalledPluginsClick);
installedPluginsElement.addEventListener("click", onInstalledPluginsClick);
if (plugins.length) {
installedPluginsElement.classList.add("itemsContainer");
installedPluginsElement.classList.add("vertical-wrap");
} else {
html += '<div style="padding:5px;">';
html += "<p>" + globalize.translate("MessageNoPluginsInstalled") + "</p>";
html += '<p><a is="emby-linkbutton" class="button-link" href="plugincatalog.html">';
html += globalize.translate("BrowsePluginCatalogMessage");
html += "</a></p>";
html += "</div>";
}
installedPluginsElement.innerHTML = html;
loading.hide();
} }
function showPluginMenu(page, elem) { function showPluginMenu(page, elem) {
var card = dom.parentWithClass(elem, "card"), var card = dom.parentWithClass(elem, "card");
id = card.getAttribute("data-id"), var id = card.getAttribute("data-id");
name = card.getAttribute("data-name"), var name = card.getAttribute("data-name");
configHref = card.querySelector(".cardContent").getAttribute("href"), var configHref = card.querySelector(".cardContent").getAttribute("href");
menuItems = []; var menuItems = [];
configHref && menuItems.push({ if (configHref) {
name: globalize.translate("ButtonSettings"), menuItems.push({
id: "open", name: globalize.translate("ButtonSettings"),
ironIcon: "mode-edit" id: "open",
}), menuItems.push({ ironIcon: "mode-edit"
});
}
menuItems.push({
name: globalize.translate("ButtonUninstall"), name: globalize.translate("ButtonUninstall"),
id: "delete", id: "delete",
ironIcon: "delete" ironIcon: "delete"
}), require(["actionsheet"], function(actionsheet) { });
require(["actionsheet"], function(actionsheet) {
actionsheet.show({ actionsheet.show({
items: menuItems, items: menuItems,
positionTo: elem, positionTo: elem,
@ -109,14 +128,15 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
deletePlugin(page, id, name) deletePlugin(page, id, name)
} }
} }
}) });
}) });
} }
function reloadList(page) { function reloadList(page) {
loading.show(), ApiClient.getInstalledPlugins().then(function(plugins) { loading.show();
renderPlugins(page, plugins, !0) ApiClient.getInstalledPlugins().then(function(plugins) {
}) renderPlugins(page, plugins);
});
} }
function getTabs() { function getTabs() {
@ -130,16 +150,22 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
} }
function onInstalledPluginsClick(e) { function onInstalledPluginsClick(e) {
if (dom.parentWithClass(e.target, "noConfigPluginCard")) showNoConfigurationMessage(); if (dom.parentWithClass(e.target, "noConfigPluginCard")) {
else if (dom.parentWithClass(e.target, "connectModePluginCard")) showConnectMessage(); showNoConfigurationMessage();
else { } else if (dom.parentWithClass(e.target, "connectModePluginCard")) {
showConnectMessage();
} else {
var btnCardMenu = dom.parentWithClass(e.target, "btnCardMenu"); var btnCardMenu = dom.parentWithClass(e.target, "btnCardMenu");
btnCardMenu && showPluginMenu(dom.parentWithClass(btnCardMenu, "page"), btnCardMenu) btnCardMenu && showPluginMenu(dom.parentWithClass(btnCardMenu, "page"), btnCardMenu);
} }
} }
pageIdOn("pageshow", "pluginsPage", function() { pageIdOn("pageshow", "pluginsPage", function() {
libraryMenu.setTabs("plugins", 0, getTabs), reloadList(this) libraryMenu.setTabs("plugins", 0, getTabs);
}), window.PluginsPage = { reloadList(this);
});
window.PluginsPage = {
renderPlugins: renderPlugins renderPlugins: renderPlugins
} }
}); });