You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

144 lines
5.0 KiB

  1. // Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com)
  2. //
  3. // MIT License (MIT)
  4. //
  5. // Permission is hereby granted, free of charge, to any person obtaining a
  6. // copy of this software and associated documentation files (the "Software"),
  7. // to deal in the Software without restriction, including without limitation
  8. // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  9. // and/or sell copies of the Software, and to permit persons to whom the
  10. // Software is furnished to do so, subject to the following conditions:
  11. //
  12. // The above copyright notice and this permission notice shall be included in
  13. // all copies or substantial portions of the Software.
  14. //
  15. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
  16. // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  17. // PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  18. // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
  19. // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
  20. // OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  21. //
  22. wn.ui.toolbar.Toolbar = Class.extend({
  23. init: function() {
  24. this.make();
  25. this.make_home();
  26. this.make_document();
  27. this.make_apps();
  28. wn.ui.toolbar.recent = new wn.ui.toolbar.RecentDocs();
  29. this.make_tools();
  30. this.set_user_name();
  31. this.make_logout();
  32. $('.dropdown-toggle').dropdown();
  33. $(document).trigger('toolbar_setup');
  34. },
  35. make: function() {
  36. $('header').append('<div class="navbar navbar-fixed-top">\
  37. <div class="navbar-inner">\
  38. <div class="container">\
  39. <a class="brand"></a>\
  40. <ul class="nav">\
  41. </ul>\
  42. <img src="lib/images/ui/spinner.gif" id="spinner"/>\
  43. <ul class="nav pull-right">\
  44. <li class="dropdown">\
  45. <a class="dropdown-toggle" data-toggle="dropdown" href="#" \
  46. onclick="return false;" id="toolbar-user-link"></a>\
  47. <ul class="dropdown-menu" id="toolbar-user">\
  48. </ul>\
  49. </li>\
  50. </ul>\
  51. </div>\
  52. </div>\
  53. </div>');
  54. },
  55. make_home: function() {
  56. $('.navbar .nav:first').append('<li data-name="navbar-home">\
  57. <a href="#!'+home_page+'">Home</a></li>');
  58. $('.navbar .brand').attr('href', "#!" + home_page);
  59. },
  60. make_document: function() {
  61. wn.ui.toolbar.new_dialog = new wn.ui.toolbar.NewDialog();
  62. wn.ui.toolbar.search = new wn.ui.toolbar.Search();
  63. wn.ui.toolbar.report = new wn.ui.toolbar.Report();
  64. $('.navbar .nav:first').append('<li class="dropdown">\
  65. <a class="dropdown-toggle" href="#" data-toggle="dropdown"\
  66. onclick="return false;">Document<b class="caret"></b></a>\
  67. <ul class="dropdown-menu" id="toolbar-document">\
  68. <li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">\
  69. <i class="icon-plus"></i> New</a></li>\
  70. <li><a href="#" onclick="return wn.ui.toolbar.search.show();">\
  71. <i class="icon-search"></i> Search</a></li>\
  72. <li><a href="#" onclick="return wn.ui.toolbar.report.show();">\
  73. <i class="icon-list"></i> Report</a></li>\
  74. </ul>\
  75. </li>');
  76. },
  77. make_tools: function() {
  78. $('.navbar .nav:first').append('<li class="dropdown">\
  79. <a class="dropdown-toggle" data-toggle="dropdown" href="#" \
  80. onclick="return false;">Tools<b class="caret"></b></a>\
  81. <ul class="dropdown-menu" id="toolbar-tools">\
  82. <li><a href="#" onclick="return err_console.show();">Error Console</a></li>\
  83. <li><a href="#" onclick="return wn.ui.toolbar.clear_cache();">Clear Cache</a></li>\
  84. <li><a href="#" onclick="return wn.ui.toolbar.show_about();">About</a></li>\
  85. </ul>\
  86. </li>');
  87. if(has_common(user_roles,['Administrator','System Manager'])) {
  88. $('#toolbar-tools').append('<li><a href="#" \
  89. onclick="return wn.ui.toolbar.download_backup();">\
  90. Download Backup</a></li>');
  91. }
  92. },
  93. make_apps: function() {
  94. $('.navbar .nav:first').append('<li class="dropdown">\
  95. <a class="dropdown-toggle" data-toggle="dropdown" \
  96. href="#" onclick="return false;">Apps<b class="caret"></b></a>\
  97. <ul class="dropdown-menu">\
  98. <li><a href="#!messages">Messages</a></li>\
  99. <li><a href="#!todo">To Do</a></li>\
  100. <li><a href="#!calendar">Calendar</a></li>\
  101. <li><a href="#!questions">Knowledge Base</a></li>\
  102. </ul>\
  103. </li>');
  104. },
  105. set_user_name: function() {
  106. var fn = user_fullname;
  107. if(fn.length > 15) fn = fn.substr(0,12) + '...';
  108. $('#toolbar-user-link').html(fn + '<b class="caret"></b>');
  109. },
  110. make_logout: function() {
  111. // logout
  112. $('#toolbar-user').append('<li><a href="#" onclick="return logout();">Logout</a></li>');
  113. }
  114. });
  115. wn.ui.toolbar.clear_cache = function() {
  116. localStorage && localStorage.clear();
  117. $c('webnotes.session_cache.clear',{},function(r,rt){ show_alert(r.message); });
  118. return false;
  119. }
  120. wn.ui.toolbar.download_backup = function() {
  121. $c('webnotes.utils.backups.get_backup',{},function(r,rt) {});
  122. return false;
  123. }
  124. wn.ui.toolbar.show_about = function() {
  125. try {
  126. wn.require('lib/js/wn/misc/about.js');
  127. wn.ui.misc.about();
  128. } catch(e) {
  129. console.log(e);
  130. }
  131. return false;
  132. }