PluginsPage.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. var PluginsPage = {
  2. onPageShow: function () {
  3. PluginsPage.reloadList();
  4. },
  5. reloadList: function () {
  6. Dashboard.showLoadingMsg();
  7. var promise1 = ApiClient.getInstalledPlugins();
  8. var promise2 = $.getJSON("configurationpages?pageType=PluginConfiguration");
  9. $.when(promise1, promise2).done(function(response1, response2) {
  10. PluginsPage.populateList(response1[0], response2[0]);
  11. });
  12. },
  13. populateList: function (plugins, pluginConfigurationPages) {
  14. var page = $($.mobile.activePage);
  15. plugins = plugins.sort(function (plugin1, plugin2) {
  16. return (plugin1.IsCorePlugin.toString() + plugin1.Name) > (plugin2.IsCorePlugin.toString() + plugin2.Name) ? 1 : -1;
  17. });
  18. var html = "";
  19. for (var i = 0, length = plugins.length; i < length; i++) {
  20. var plugin = plugins[i];
  21. if (plugin.IsCorePlugin) {
  22. continue;
  23. }
  24. var configPage = $.grep(pluginConfigurationPages, function (pluginConfigurationPage) {
  25. return pluginConfigurationPage.PluginId == plugin.Id;
  26. })[0];
  27. html += "<li>";
  28. var href = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : "#";
  29. html += "<a href='" + href + "'>";
  30. html += "<h3>" + plugin.Name + "</h3>";
  31. html += "<p><strong>" + plugin.Version + "</strong></p>";
  32. html += "</a>";
  33. if (!plugin.IsCorePlugin) {
  34. html += "<a data-id='" + plugin.Id + "' data-pluginname='" + plugin.Name + "' onclick='PluginsPage.deletePlugin(this);' href='#'>Delete</a>";
  35. }
  36. html += "</li>";
  37. }
  38. $('#ulInstalledPlugins', page).html(html).listview('refresh');
  39. Dashboard.hideLoadingMsg();
  40. },
  41. deletePlugin: function (link) {
  42. var name = link.getAttribute('data-pluginname');
  43. var uniqueid = link.getAttribute('data-id');
  44. var msg = "Are you sure you wish to uninstall " + name + "?";
  45. Dashboard.confirm(msg, "Uninstall Plugin", function (result) {
  46. if (result) {
  47. Dashboard.showLoadingMsg();
  48. ApiClient.uninstallPlugin(uniqueid).done(function () {
  49. PluginsPage.reloadList();
  50. });
  51. }
  52. });
  53. }
  54. };
  55. $(document).on('pageshow', "#pluginsPage", PluginsPage.onPageShow);