PluginsPage.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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.Name) > (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. var configPage = $.grep(pluginConfigurationPages, function (pluginConfigurationPage) {
  22. return pluginConfigurationPage.Plugin.Id == plugin.Id;
  23. })[0];
  24. html += "<li>";
  25. var href = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : "#";
  26. html += "<a href='" + href + "'>";
  27. html += "<h3>" + plugin.Name + "</h3>";
  28. html += "<p><strong>" + plugin.Version + "</strong></p>";
  29. html += "</a>";
  30. html += "<a data-id='" + plugin.Id + "' data-pluginname='" + plugin.Name + "' onclick='PluginsPage.deletePlugin(this);' href='#'>Delete</a>";
  31. html += "</li>";
  32. }
  33. $('#ulInstalledPlugins', page).html(html).listview('refresh');
  34. Dashboard.hideLoadingMsg();
  35. },
  36. deletePlugin: function (link) {
  37. var name = link.getAttribute('data-pluginname');
  38. var uniqueid = link.getAttribute('data-id');
  39. var msg = "Are you sure you wish to uninstall " + name + "?";
  40. Dashboard.confirm(msg, "Uninstall Plugin", function (result) {
  41. if (result) {
  42. Dashboard.showLoadingMsg();
  43. ApiClient.uninstallPlugin(uniqueid).done(function () {
  44. PluginsPage.reloadList();
  45. });
  46. }
  47. });
  48. }
  49. };
  50. $(document).on('pageshow', "#pluginsPage", PluginsPage.onPageShow);