From 767cdc1f6f6a63ce997fc9476911e2c361f9d402 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Wed, 20 Feb 2013 20:33:05 -0500 Subject: Pushing missing changes --- .../Html/scripts/PluginsPage.js | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 MediaBrowser.WebDashboard/Html/scripts/PluginsPage.js (limited to 'MediaBrowser.WebDashboard/Html/scripts/PluginsPage.js') diff --git a/MediaBrowser.WebDashboard/Html/scripts/PluginsPage.js b/MediaBrowser.WebDashboard/Html/scripts/PluginsPage.js new file mode 100644 index 000000000..f7e05e4ba --- /dev/null +++ b/MediaBrowser.WebDashboard/Html/scripts/PluginsPage.js @@ -0,0 +1,92 @@ +var PluginsPage = { + + onPageShow: function () { + PluginsPage.reloadList(); + }, + + reloadList: function () { + + Dashboard.showLoadingMsg(); + + var promise1 = ApiClient.getInstalledPlugins(); + + var promise2 = $.getJSON("configurationpages?pageType=PluginConfiguration"); + + $.when(promise1, promise2).done(function(response1, response2) { + + PluginsPage.populateList(response1[0], response2[0]); + + }); + }, + + populateList: function (plugins, pluginConfigurationPages) { + + var page = $($.mobile.activePage); + + plugins = plugins.sort(function (plugin1, plugin2) { + + return (plugin1.IsCorePlugin.toString() + plugin1.Name) > (plugin2.IsCorePlugin.toString() + plugin2.Name) ? 1 : -1; + + }); + + var html = ""; + + for (var i = 0, length = plugins.length; i < length; i++) { + + var plugin = plugins[i]; + + if (plugin.IsCorePlugin) { + continue; + } + + var configPage = $.grep(pluginConfigurationPages, function (pluginConfigurationPage) { + return pluginConfigurationPage.OwnerPluginName == plugin.Name; + })[0]; + + html += "
  • "; + + var href = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : "#"; + + html += ""; + + html += "

    " + plugin.Name + "

    "; + + html += "

    " + plugin.Version + "

    "; + + html += "
    "; + + if (!plugin.IsCorePlugin) { + html += "Delete"; + } + + html += "
  • "; + } + + $('#ulInstalledPlugins', page).html(html).listview('refresh'); + + Dashboard.hideLoadingMsg(); + }, + + deletePlugin: function (link) { + + var name = link.getAttribute('data-pluginname'); + var uniqueid = link.getAttribute('data-uniqueid'); + + var msg = "Are you sure you wish to uninstall " + name + "?"; + + Dashboard.confirm(msg, "Uninstall Plugin", function (result) { + + if (result) { + Dashboard.showLoadingMsg(); + + ApiClient.uninstallPlugin(uniqueid).done(function () { + + PluginsPage.reloadList(); + }); + } + }); + + } +}; + +$(document).on('pageshow', "#pluginsPage", PluginsPage.onPageShow); \ No newline at end of file -- cgit v1.2.3