Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

81 wiersze
2.4 KiB

  1. wn.pages['applications'].onload = function(wrapper) {
  2. wn.ui.make_app_page({
  3. parent: wrapper,
  4. title: 'Applications',
  5. single_column: true
  6. });
  7. wn.call({
  8. method:"webnotes.core.page.applications.applications.get_app_list",
  9. callback: function(r) {
  10. var $main = $(wrapper).find(".layout-main");
  11. if(!keys(r.message).length) {
  12. $main.html('<div class="alert alert-info">No Apps Installed</div>');
  13. return;
  14. }
  15. $main.empty();
  16. // search
  17. $('<div class="row">\
  18. <div class="col-md-6">\
  19. <input type="text" class="form-control app-search" placeholder="Search" name="search"/>\
  20. </div>\
  21. </div><hr>').appendTo($main).find(".app-search").on("keyup", function() {
  22. var val = $(this).val();
  23. $main.find(".app-listing").each(function() {
  24. $(this).toggle($(this).attr("data-title").toLowerCase().indexOf(val)!==-1);
  25. });
  26. })
  27. $.each(r.message, function(app_key, app) {
  28. wn.modules[app_key] = {
  29. label: app.app_title,
  30. icon: app.app_icon,
  31. color: app.app_color,
  32. is_app: true
  33. }
  34. app.app_icon = wn.ui.app_icon.get_html(app_key);
  35. $app = $($r('<div style="border-bottom: 1px solid #c7c7c7; margin-bottom: 10px;" \
  36. class="app-listing" data-title="%(app_title)s">\
  37. <div style="float: left; width: 80px;">\
  38. %(app_icon)s\
  39. </div>\
  40. <div style="margin-left: 95px;">\
  41. <div class="row">\
  42. <div class="col-xs-10">\
  43. <p><b class="title">%(app_title)s</b></p>\
  44. <p class="text-muted">%(app_description)s\
  45. <br>Publisher: %(app_publisher)s; Version: %(app_version)s</p>\
  46. </div>\
  47. <div class="col-xs-2 button-area"></div>\
  48. </div>\
  49. </div>\
  50. </div>', app))
  51. $app.appendTo($main)
  52. if(app.installed) {
  53. $btn = $('<button class="btn btn-success" disabled=disabled>\
  54. <i class="icon-ok"></i> Installed</button>');
  55. } else {
  56. $btn = $('<button class="btn btn-info">Install</button>')
  57. .attr("data-app", app.app_name)
  58. .on("click", function() {
  59. wn.call({
  60. method:"webnotes.installer.install_app",
  61. args: {name: $(this).attr("data-app")},
  62. callback: function(r) {
  63. if(!r.exc) {
  64. msgprint("<i class='icon-ok'></i> Installed");
  65. msgprint("Refreshing...");
  66. setTimeout(function() { window.location.reload() }, 2000)
  67. }
  68. }
  69. })
  70. });
  71. }
  72. $btn.appendTo($app.find(".button-area"))
  73. })
  74. }
  75. })
  76. }