@@ -1,18 +1,19 @@ | |||
[class^="icon-"] { | |||
[class^="icon-"], [class*=" icon-"] { | |||
display: inline-block; | |||
width: 14px; | |||
height: 14px; | |||
line-height: 14px; | |||
vertical-align: text-top; | |||
background-image: url(../img/glyphicons-halflings.png); | |||
background-image: url("../lib/images/icons/glyphicons-halflings.png"); | |||
background-position: 14px 14px; | |||
background-repeat: no-repeat; | |||
*margin-right: .3em; | |||
} | |||
[class^="icon-"]:last-child { | |||
[class^="icon-"]:last-child, [class*=" icon-"]:last-child { | |||
*margin-left: 0; | |||
} | |||
.icon-white { | |||
background-image: url(../img/glyphicons-halflings-white.png); | |||
background-image: url("../lib/images/icons/glyphicons-halflings-white.png"); | |||
} | |||
.icon-glass { | |||
background-position: 0 0; | |||
@@ -0,0 +1,39 @@ | |||
.label { | |||
padding: 2px 4px 3px; | |||
font-size: 11.049999999999999px; | |||
font-weight: bold; | |||
color: #ffffff; | |||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |||
background-color: #999999; | |||
-webkit-border-radius: 3px; | |||
-moz-border-radius: 3px; | |||
border-radius: 3px; | |||
} | |||
.label:hover { | |||
color: #ffffff; | |||
text-decoration: none; | |||
} | |||
.label-important { | |||
background-color: #b94a48; | |||
} | |||
.label-important:hover { | |||
background-color: #953b39; | |||
} | |||
.label-warning { | |||
background-color: #f89406; | |||
} | |||
.label-warning:hover { | |||
background-color: #c67605; | |||
} | |||
.label-success { | |||
background-color: #468847; | |||
} | |||
.label-success:hover { | |||
background-color: #356635; | |||
} | |||
.label-info { | |||
background-color: #3a87ad; | |||
} | |||
.label-info:hover { | |||
background-color: #2d6987; | |||
} |
@@ -23,7 +23,6 @@ function startup() { | |||
user_defaults = profile.defaults; | |||
user_roles = profile.roles; | |||
user_email = profile.email; | |||
profile.start_items = r.start_items; | |||
home_page = r.home_page; | |||
_p.letter_heads = r.letter_heads; | |||
@@ -147,6 +147,7 @@ function $c_page(module, page, method, arg, call_back, no_spinner, freeze_msg, b | |||
// generic server call (call page, object) | |||
wn.call = function(args) { | |||
if(!args.args) args.args = {}; | |||
if(args.module && args.page) { | |||
$c_page(args.module, args.page, args.method, args.args, args.callback, | |||
args.no_spinner, false, args.btn); | |||
@@ -1,3 +1,4 @@ | |||
/* | |||
* lib/js/wn/ui/toolbar/selector_dialog.js | |||
*/ | |||
@@ -33,8 +34,7 @@ if(rd[1]){var dt=rd[0];var dn=rd[1];this.add(dt,dn,0);}}}}); | |||
/* | |||
* lib/js/wn/ui/toolbar/toolbar.js | |||
*/ | |||
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();if(in_list(user_roles,'Administrator')) | |||
this.make_options();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">\ | |||
wn.ui.toolbar.Toolbar=Class.extend({init:function(){this.make();this.make_home();this.make_document();this.make_apps();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">\ | |||
<div class="navbar-inner">\ | |||
<div class="container">\ | |||
<a class="brand"></a>\ | |||
@@ -51,13 +51,17 @@ this.make_options();this.make_tools();this.set_user_name();this.make_logout();$( | |||
</ul>\ | |||
</div>\ | |||
</div>\ | |||
</div>');},make_home:function(){$('.navbar .nav:first').append('<li data-name="navbar-home"><a href="#'+home_page+'">Home</a></li>')},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">\ | |||
</div>');},make_home:function(){$('.navbar .nav:first').append('<li data-name="navbar-home">\ | |||
<a href="#!'+home_page+'">Home</a></li>');$('.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">\ | |||
<a class="dropdown-toggle" href="#" data-toggle="dropdown"\ | |||
onclick="return false;">Document<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu" id="toolbar-document">\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">New</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.search.show();">Search</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.report.show();">Report</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">\ | |||
<i class="icon-plus"></i> New</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.search.show();">\ | |||
<i class="icon-search"></i> Search</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.report.show();">\ | |||
<i class="icon-list"></i> Report</a></li>\ | |||
</ul>\ | |||
</li>');},make_tools:function(){$('.navbar .nav:first').append('<li class="dropdown">\ | |||
<a class="dropdown-toggle" data-toggle="dropdown" href="#" \ | |||
@@ -69,13 +73,16 @@ this.make_options();this.make_tools();this.set_user_name();this.make_logout();$( | |||
</ul>\ | |||
</li>');if(has_common(user_roles,['Administrator','System Manager'])){$('#toolbar-tools').append('<li><a href="#" \ | |||
onclick="return wn.ui.toolbar.download_backup();">\ | |||
Download Backup</a></li>');}},make_options:function(){$('.navbar .nav:first').append('<li class="dropdown">\ | |||
Download Backup</a></li>');}},make_apps:function(){$('.navbar .nav:first').append('<li class="dropdown">\ | |||
<a class="dropdown-toggle" data-toggle="dropdown" \ | |||
href="#" onclick="return false;">Options<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu" id="toolbar-options">\ | |||
href="#" onclick="return false;">Apps<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu">\ | |||
<li><a href="#!messages">Messages</a></li>\ | |||
<li><a href="#!todo">To Do</a></li>\ | |||
<li><a href="#!calendar">Calendar</a></li>\ | |||
<li><a href="#!questions">Knowledge Base</a></li>\ | |||
</ul>\ | |||
</li>');profile.start_items.sort(function(a,b){return(a[4]-b[4])});for(var i=0;i<profile.start_items.length;i++){var d=profile.start_items[i];var ispage=d[0]=='Page';$('#toolbar-options').append(repl('<li><a href="#%(type)s%(dt)s%(dn)s">\ | |||
%(dn)s</a></li>',{type:(ispage?'':'Form/'),dt:(ispage?'':(d[0]+'/')),dn:d[5]||d[1]}));}},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;} | |||
</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;} | |||
wn.ui.toolbar.download_backup=function(){$c('webnotes.utils.backups.get_backup',{},function(r,rt){});return false;} | |||
wn.ui.toolbar.show_about=function(){try{wn.require('lib/js/wn/misc/about.js');wn.ui.misc.about();}catch(e){console.log(e);} | |||
return false;} |
@@ -26,9 +26,8 @@ wn.ui.toolbar.Toolbar = Class.extend({ | |||
this.make(); | |||
this.make_home(); | |||
this.make_document(); | |||
this.make_apps(); | |||
wn.ui.toolbar.recent = new wn.ui.toolbar.RecentDocs(); | |||
if(in_list(user_roles, 'Administrator')) | |||
this.make_options(); | |||
this.make_tools(); | |||
this.set_user_name(); | |||
this.make_logout(); | |||
@@ -57,7 +56,9 @@ wn.ui.toolbar.Toolbar = Class.extend({ | |||
</div>'); | |||
}, | |||
make_home: function() { | |||
$('.navbar .nav:first').append('<li data-name="navbar-home"><a href="#'+home_page+'">Home</a></li>') | |||
$('.navbar .nav:first').append('<li data-name="navbar-home">\ | |||
<a href="#!'+home_page+'">Home</a></li>'); | |||
$('.navbar .brand').attr('href', "#!" + home_page); | |||
}, | |||
make_document: function() { | |||
@@ -68,9 +69,12 @@ wn.ui.toolbar.Toolbar = Class.extend({ | |||
<a class="dropdown-toggle" href="#" data-toggle="dropdown"\ | |||
onclick="return false;">Document<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu" id="toolbar-document">\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">New</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.search.show();">Search</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.report.show();">Report</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.new_dialog.show();">\ | |||
<i class="icon-plus"></i> New</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.search.show();">\ | |||
<i class="icon-search"></i> Search</a></li>\ | |||
<li><a href="#" onclick="return wn.ui.toolbar.report.show();">\ | |||
<i class="icon-list"></i> Report</a></li>\ | |||
</ul>\ | |||
</li>'); | |||
}, | |||
@@ -92,26 +96,17 @@ wn.ui.toolbar.Toolbar = Class.extend({ | |||
Download Backup</a></li>'); | |||
} | |||
}, | |||
make_options: function() { | |||
make_apps: function() { | |||
$('.navbar .nav:first').append('<li class="dropdown">\ | |||
<a class="dropdown-toggle" data-toggle="dropdown" \ | |||
href="#" onclick="return false;">Options<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu" id="toolbar-options">\ | |||
href="#" onclick="return false;">Apps<b class="caret"></b></a>\ | |||
<ul class="dropdown-menu">\ | |||
<li><a href="#!messages">Messages</a></li>\ | |||
<li><a href="#!todo">To Do</a></li>\ | |||
<li><a href="#!calendar">Calendar</a></li>\ | |||
<li><a href="#!questions">Knowledge Base</a></li>\ | |||
</ul>\ | |||
</li>'); | |||
profile.start_items.sort(function(a,b){return (a[4]-b[4])}); | |||
for(var i=0;i< profile.start_items.length;i++) { | |||
var d = profile.start_items[i]; | |||
var ispage = d[0]=='Page'; | |||
$('#toolbar-options').append(repl('<li><a href="#%(type)s%(dt)s%(dn)s">\ | |||
%(dn)s</a></li>', { | |||
type : (ispage ? '' : 'Form/'), | |||
dt : (ispage ? '' : (d[0] + '/')), | |||
dn : d[5] || d[1] | |||
})); | |||
} | |||
}, | |||
set_user_name: function() { | |||
@@ -50,7 +50,6 @@ def get_bootinfo(): | |||
if webnotes.session['user'] != 'Guest': | |||
import webnotes.widgets.menus | |||
bootinfo['start_items'] = webnotes.widgets.menus.get_menu_items() | |||
bootinfo['dt_labels'] = get_dt_labels() | |||
# home page | |||
@@ -31,64 +31,24 @@ from webnotes.utils import cint, cstr | |||
sql = webnotes.conn.sql | |||
@webnotes.whitelist() | |||
def get_menu_items(): | |||
""" | |||
Returns a list of items to show in `Options` of the Web Notes Toolbar | |||
List contains Pages and Single DocTypes | |||
""" | |||
import webnotes.utils | |||
rl = webnotes.user.get_roles() + [webnotes.session['user']] | |||
role_options = ["role = '"+r+"'" for r in rl] | |||
sql = webnotes.conn.sql | |||
menuitems = [] | |||
# pages | |||
pages = sql("select distinct parent from `tabPage Role` where docstatus!=2 and (%s)" % (' OR '.join(role_options))) | |||
for p in pages: | |||
tmp = sql("select icon, parent_node, menu_index, show_in_menu from tabPage where name = '%s'" % p[0]) | |||
if tmp and tmp[0][3]: | |||
menuitems.append(['Page', p[0] or '', tmp[0][1] or '', tmp[0][0] or '', webnotes.utils.cint(tmp[0][2])]) | |||
# singles | |||
tmp = sql("select smallicon, parent_node, menu_index, name from tabDocType where (show_in_menu = 1 and show_in_menu is not null)") | |||
singles = {} | |||
for t in tmp: singles[t[3]] = t | |||
for p in webnotes.user.can_read: | |||
tmp = singles.get(p, None) | |||
if tmp: menuitems.append([p, p, tmp[1] or '', tmp[0] or '', int(tmp[2] or 0)]) | |||
return menuitems | |||
@webnotes.whitelist() | |||
def has_result(): | |||
"""return Yes if the given dt has any records""" | |||
return sql("select name from `tab%s` limit 1" % \ | |||
webnotes.form_dict.get('dt')) and 'Yes' or 'No' | |||
# -------------------------------------------------------------- | |||
def is_submittable(dt): | |||
return sql("select name from tabDocPerm where parent=%s and ifnull(submit,0)=1 and docstatus<1 limit 1", dt) | |||
# -------------------------------------------------------------- | |||
def can_cancel(dt): | |||
return sql('select name from tabDocPerm where parent="%s" and ifnull(cancel,0)=1 and docstatus<1 and role in ("%s") limit 1' % (dt, '", "'.join(webnotes.user.get_roles()))) | |||
# -------------------------------------------------------------- | |||
def get_dt_trend(dt): | |||
ret = {} | |||
for r in sql("select datediff(now(),modified), count(*) from `tab%s` where datediff(now(),modified) between 0 and 30 group by date(modified)" % dt): | |||
ret[cint(r[0])] = cint(r[1]) | |||
return ret | |||
# -------------------------------------------------------------- | |||
def get_columns(out, sf, fl, dt, tag_fields): | |||
if not fl: | |||
fl = sf | |||