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