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.
 
 
 
 
 
 

78 line
6.3 KiB

  1. /*
  2. * lib/js/wn/ui/toolbar/selector_dialog.js
  3. */
  4. wn.provide('wn.ui.toolbar');wn.ui.toolbar.SelectorDialog=Class.extend({init:function(opts){this.opts=opts;try{this.make_dialog();}catch(e){console.log(e);}
  5. this.bind_events();},make_dialog:function(){this.dialog=new wn.widgets.Dialog({title:this.opts.title,width:300,fields:[{fieldtype:'Select',fieldname:'doctype',options:'Select...',label:'Select Type'},{fieldtype:'Button',label:'Go',fieldname:'go'}]});},bind_events:function(){var me=this;$(this.dialog.fields_dict.go.input).click(function(){if(!me.dialog.display)return;me.dialog.hide();me.opts.execute(me.dialog.fields_dict.doctype.get_value());});$(this.dialog.fields_dict.doctype.input).change(function(){me.dialog.fields_dict.go.input.click();}).keypress(function(ev){if(ev.which==13){me.dialog.fields_dict.go.input.click();}});},show:function(){this.dialog.show();this.dialog.fields_dict.doctype.input.focus();return false;},set_values:function(lst){for(var i=0;i<lst.length;i++)
  6. lst[i]=get_doctype_label(lst[i]);var sel=this.dialog.fields_dict.doctype.input;$(sel).empty();add_sel_options(sel,lst.sort());}})
  7. /*
  8. * lib/js/wn/ui/toolbar/new.js
  9. */
  10. wn.ui.toolbar.NewDialog=wn.ui.toolbar.SelectorDialog.extend({init:function(){this._super({title:"New Record",execute:function(val){new_doc(val);},});this.set_values(profile.can_create.join(',').split(','));}});
  11. /*
  12. * lib/js/wn/ui/toolbar/search.js
  13. */
  14. wn.ui.toolbar.Search=wn.ui.toolbar.SelectorDialog.extend({init:function(){this._super({title:"Search",execute:function(val){selector.set_search(val);selector.show();},});this.set_values(profile.can_search.join(',').split(','));makeselector();}});
  15. /*
  16. * lib/js/wn/ui/toolbar/report.js
  17. */
  18. wn.ui.toolbar.Report=wn.ui.toolbar.SelectorDialog.extend({init:function(){this._super({title:"Start Report For",execute:function(val){loadreport(val,null,null,null,1);},});this.set_values(profile.can_get_report.join(',').split(','));}});
  19. /*
  20. * lib/js/wn/ui/toolbar/recent.js
  21. */
  22. wn.ui.toolbar.RecentDocs=Class.extend({init:function(){$('.navbar .nav:first').append('<li class="dropdown">\
  23. <a class="dropdown-toggle" data-toggle="dropdown" href="#" \
  24. onclick="return false;">Recent<b class="caret"></b></a>\
  25. <ul class="dropdown-menu" id="toolbar-recent"></ul>\
  26. </li>');this.setup();this.bind_events();},bind_events:function(){var me=this;$(document).bind('rename',function(event,dt,old_name,new_name){me.rename_notify(dt,old_name,new_name)});},rename_notify:function(dt,old,name){this.remove(dt,old);this.add(dt,name,1);},add:function(dt,dn,on_top){if(this.istable(dt))return;this.remove(dt,dn);var html=repl('<li data-docref="%(dt)s/%(dn)s">\
  27. <a href="#Form/%(dt)s/%(dn)s">\
  28. %(dn)s <span style="font-size: 10px">(%(dt)s)</span>\
  29. </a></li>',{dt:dt,dn:dn});if(on_top){$('#toolbar-recent').prepend(html);}else{$('#toolbar-recent').append(html);}},istable:function(dt){return locals.DocType[dt]&&locals.DocType[dt].istable||false;},remove:function(dt,dn){$(repl('#toolbar-recent li[data-docref="%(dt)s/%(dn)s"]',{dt:dt,dn:dn})).remove();},setup:function(){try{var rlist=JSON.parse(profile.recent);}
  30. catch(e){return;}
  31. var m=rlist.length;if(m>15)m=15;for(var i=0;i<m;i++){var rd=rlist[i]
  32. if(rd[1]){var dt=rd[0];var dn=rd[1];this.add(dt,dn,0);}}}});
  33. /*
  34. * lib/js/wn/ui/toolbar/toolbar.js
  35. */
  36. wn.ui.toolbar.Toolbar=Class.extend({init:function(){this.make();this.make_home();this.make_document();wn.ui.toolbar.recent=new wn.ui.toolbar.RecentDocs();this.make_tools();this.set_user_name();this.make_logout();$('.dropdown-toggle').dropdown();$(document).trigger('toolbar_setup');},make:function(){$('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>');},make_home:function(){$('.navbar .brand').attr('href',"#!"+home_page);},make_document:function(){wn.ui.toolbar.new_dialog=new wn.ui.toolbar.NewDialog();wn.ui.toolbar.search=new wn.ui.toolbar.Search();wn.ui.toolbar.report=new wn.ui.toolbar.Report();$('.navbar .nav:first').append('<li class="dropdown">\
  54. <a class="dropdown-toggle" href="#" data-toggle="dropdown"\
  55. onclick="return false;">Document<b class="caret"></b></a>\
  56. <ul class="dropdown-menu" id="toolbar-document">\
  57. <li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">\
  58. <i class="icon-plus"></i> New</a></li>\
  59. <li><a href="#" onclick="return wn.ui.toolbar.search.show();">\
  60. <i class="icon-search"></i> Search</a></li>\
  61. <li><a href="#" onclick="return wn.ui.toolbar.report.show();">\
  62. <i class="icon-list"></i> Report</a></li>\
  63. </ul>\
  64. </li>');},make_tools:function(){$('.navbar .nav:first').append('<li class="dropdown">\
  65. <a class="dropdown-toggle" data-toggle="dropdown" href="#" \
  66. onclick="return false;">Tools<b class="caret"></b></a>\
  67. <ul class="dropdown-menu" id="toolbar-tools">\
  68. <li><a href="#" onclick="return err_console.show();">Error Console</a></li>\
  69. <li><a href="#" onclick="return wn.ui.toolbar.clear_cache();">Clear Cache</a></li>\
  70. <li><a href="#" onclick="return wn.ui.toolbar.show_about();">About</a></li>\
  71. </ul>\
  72. </li>');if(has_common(user_roles,['Administrator','System Manager'])){$('#toolbar-tools').append('<li><a href="#" \
  73. onclick="return wn.ui.toolbar.download_backup();">\
  74. Download Backup</a></li>');}},set_user_name:function(){var fn=user_fullname;if(fn.length>15)fn=fn.substr(0,12)+'...';$('#toolbar-user-link').html(fn+'<b class="caret"></b>');},make_logout:function(){$('#toolbar-user').append('<li><a href="#" onclick="return logout();">Logout</a></li>');}});wn.ui.toolbar.clear_cache=function(){localStorage&&localStorage.clear();$c('webnotes.session_cache.clear',{},function(r,rt){show_alert(r.message);});return false;}
  75. wn.ui.toolbar.download_backup=function(){$c('webnotes.utils.backups.get_backup',{},function(r,rt){});return false;}
  76. wn.ui.toolbar.show_about=function(){try{wn.require('lib/js/wn/misc/about.js');wn.ui.misc.about();}catch(e){console.log(e);}
  77. return false;}