Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

100 строки
2.6 KiB

  1. wn.provide('wn.core.pages.desktop');
  2. wn.core.pages.desktop.refresh = function() {
  3. wn.core.pages.desktop.render();
  4. $("#icon-grid").sortable({
  5. update: function() {
  6. new_order = [];
  7. $("#icon-grid .case-wrapper").each(function(i, e) {
  8. new_order.push($(this).attr("data-name"));
  9. });
  10. wn.defaults.set_default("_desktop_items", new_order);
  11. }
  12. });
  13. }
  14. wn.core.pages.desktop.render = function() {
  15. document.title = "Desktop";
  16. var add_icon = function(m) {
  17. var module = wn.modules[m];
  18. if(!module)
  19. return;
  20. if(!module.label)
  21. module.label = m;
  22. module.name = m;
  23. module.label = wn._(module.label);
  24. //module.gradient_css = wn.get_gradient_css(module.color, 45);
  25. module._link = module.link.toLowerCase().replace("/", "-");
  26. $module_icon = $(repl('<div id="module-icon-%(_link)s" class="case-wrapper" \
  27. data-name="%(name)s" data-link="%(link)s">\
  28. <div id="module-count-%(_link)s" class="circle" style="display: None">\
  29. <span class="circle-text"></span>\
  30. </div>\
  31. <div class="case-border" style="background-color: %(color)s">\
  32. <i class="%(icon)s"></i>\
  33. </div>\
  34. <div class="case-label">%(label)s</div>\
  35. </div>', module)).click(function() {
  36. wn.set_route($(this).attr("data-link"));
  37. }).css({
  38. cursor:"pointer"
  39. }).appendTo("#icon-grid");
  40. }
  41. // modules
  42. var modules_list = wn.user.get_desktop_items();
  43. $.each(modules_list, function(i, m) {
  44. if(m!="Setup")
  45. add_icon(m);
  46. })
  47. // setup
  48. if(user_roles.indexOf('System Manager')!=-1)
  49. add_icon('Setup')
  50. // notifications
  51. wn.core.pages.desktop.show_pending_notifications();
  52. $(document).on("notification-update", function() {
  53. wn.core.pages.desktop.show_pending_notifications();
  54. })
  55. }
  56. wn.core.pages.desktop.show_pending_notifications = function() {
  57. if (!wn.boot.notification_info.module_doctypes) {
  58. return;
  59. }
  60. var modules_list = wn.user.get_desktop_items();
  61. $.each(modules_list, function(i, module) {
  62. var module_doctypes = wn.boot.notification_info.module_doctypes[module];
  63. var sum = 0;
  64. if(module_doctypes) {
  65. $.each(module_doctypes, function(j, doctype) {
  66. sum += (wn.boot.notification_info.open_count_doctype[doctype] || 0);
  67. });
  68. } else if(wn.boot.notification_info.open_count_module[module]!=null) {
  69. sum = wn.boot.notification_info.open_count_module[module];
  70. }
  71. var notifier = $("#module-count-" + wn.modules[module]._link);
  72. if(notifier.length) {
  73. notifier.toggle(sum ? true : false);
  74. notifier.find(".circle-text").html(sum || "");
  75. }
  76. });
  77. }
  78. pscript.onload_desktop = function(wrapper) {
  79. // load desktop
  80. wn.core.pages.desktop.refresh();
  81. $(wrapper).css({"background-color": "transparent", "box-shadow":"none"});
  82. }