diff --git a/build.json b/build.json index 33032d788c7..6069394da55 100644 --- a/build.json +++ b/build.json @@ -52,6 +52,8 @@ "lib/css/bootstrap/navbar.css", "lib/css/bootstrap/dropdown.css", "lib/css/bootstrap/tooltip.css", + "lib/css/ui/fonts.css", + "lib/css/ui/list.css", "erpnext/startup/startup.css", "erpnext/website/css/website.css" ] @@ -159,6 +161,7 @@ "lib/js/legacy/model/local_data.js", "lib/js/legacy/model/doclist.js", "lib/js/wn/ui/toolbar.min.js:concat", + "lib/js/wn/views/breadcrumbs.js", "lib/js/legacy/widgets/form/fields.js", "lib/js/legacy/widgets/form/form_dialog.js", "lib/js/legacy/widgets/form/form_header.js", diff --git a/css/all-app.css b/css/all-app.css index 790887eacc3..c2a67306cfe 100644 --- a/css/all-app.css +++ b/css/all-app.css @@ -123,7 +123,6 @@ div#body_div { .content { width: 900px; - margin-bottom: 30px; } .background-fade-in { @@ -134,9 +133,8 @@ div#body_div { } footer { - position: absolute; - bottom: 0px; - width: 100%; + width: 900px; + margin: auto; } header .container { width: 900px; @@ -160,7 +158,6 @@ div.no_script { } div.loading_div { - position: absolute; background-color: #FFFFCC; z-index: 1999; right: 5px; @@ -199,7 +196,6 @@ div.std-footer-item { box-shadow: 0px 0px 6px rgba(0,0,0,0.3); background-color: #fff; padding: 15px; - margin-bottom: 30px; } .layout-wrapper-background { @@ -3464,12 +3460,12 @@ button.btn.small, input[type="submit"].btn.small { * erpnext/startup/startup.css */ h1, h2, h3, h4, h5 { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-weight: bold; } body { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-size: 13px; } diff --git a/css/all-web.css b/css/all-web.css index 6a75d12c2ad..d818b7f81f9 100644 --- a/css/all-web.css +++ b/css/all-web.css @@ -123,7 +123,6 @@ div#body_div { .content { width: 900px; - margin-bottom: 30px; } .background-fade-in { @@ -134,9 +133,8 @@ div#body_div { } footer { - position: absolute; - bottom: 0px; - width: 100%; + width: 900px; + margin: auto; } header .container { width: 900px; @@ -160,7 +158,6 @@ div.no_script { } div.loading_div { - position: absolute; background-color: #FFFFCC; z-index: 1999; right: 5px; @@ -199,7 +196,6 @@ div.std-footer-item { box-shadow: 0px 0px 6px rgba(0,0,0,0.3); background-color: #fff; padding: 15px; - margin-bottom: 30px; } .layout-wrapper-background { @@ -1601,16 +1597,204 @@ button.btn.small, input[type="submit"].btn.small { margin-bottom: 0; } +/* + * lib/css/ui/fonts.css + */ +@font-face { + font-family: 'Pontano Sans'; + font-style: normal; + font-weight: 800; + src: url('../lib/css/fonts/pontanosans.woff') format('woff'); +} + +@font-face { + font-family: 'Droid Sans'; + font-style: normal; + font-weight: normal; + src: local('Droid Sans'), local('DroidSans'), url('../lib/css/fonts/droidsans.woff') format('woff'); +} + +@font-face { + font-family: 'PT Sans'; + font-style: normal; + font-weight: normal; + src: local('PT Sans'), local('PTSans-Regular'), url('../lib/css/fonts/ptsans.woff') format('woff'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url('../lib/css/fonts/opensans.woff') format('woff'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), url('../lib/css/fonts/lato.woff') format('woff'); +} + + + +/* + * lib/css/ui/list.css + */ +.hide { + display: none; +} + +.list-filters { + margin: 7px 0px; +} + +.wnlist .img-load { + display: none; + float: left; + margin-bottom: 8px; +} + +/* list-row */ +div.list-row { + border-bottom: 1px solid #eee; + padding: 5px 0px; +} +div.list-row:hover { + background-color: #eef +} + +div.list-row .label { + margin-right: 4px; +} + +div.list-row table { + table-layout: fixed; + border-collapse: collapse; + width: 100%; +} + +div.list-row table td { + overflow: hidden; + padding-right: 3px; + vertical-align: middle; + height: 24px; + max-height: 24px; +} + +div.paging-button { + text-align: center; + padding: 11px 0px; +} + +div.show_filters { + display: none; +} + +div.filter_list { + padding: 13px; +} + +div.show_filters.well { + margin-top: 11px; + margin-bottom: 11px; +} + +div.filter_list .run_btn { + text-align: right; +} + +div.filter_list .add_filter { + margin: 3px 0px; +} + +div.list_filter { + margin: 7px 0px; +} + +div.list_filter input, div.list_filter select { + width: 130px; + margin-right: 7px; +} + +/* bar */ + +span.bar-outer { + display: inline-block; + margin: 0px 7px; + margin-top: 3px; + background-color: #fff; + border: 1px solid #aaa; + height: 10px; +} + +span.bar-inner { + display: inline-block; + background-color: #bdf; + height: 100%; + margin-bottom: 2px; + float: left; +} +span.bar-complete { + background-color: #009900; +} +span.bar-empty { + background-color: #990000; +} + + +/* stats */ + +div.stat-wrapper { + margin-bottom: 19px; +} + +div.stat-grid { + border: 2px solid #bbb; + background-color: white; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + overflow: hidden; +} + +div.stat-label { + position: relative; + padding: 3px; + text-align: center; +} +div.stat-label, div.stat-label a { + z-index: 5; +} + +div.stat-item { + position: relative; + border-bottom: 1px solid #ddd; +} +div.stat-item:last-child { + border-bottom: 0px solid #ddd; +} + +div.stat-bar { + position: absolute; + left: 0px; + background-color: #def; + height: 100%; + z-index: 0; +} + + + + + /* * erpnext/startup/startup.css */ h1, h2, h3, h4, h5 { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-weight: bold; } body { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-size: 13px; } @@ -1713,6 +1897,10 @@ h3 { margin-bottom: 7px; } +p, li { + line-height: 1.6em; +} + pre { background-color: #F8F8F8; border: 1px solid #CCCCCC; diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py index 446a116c992..b0d1e53d990 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -166,7 +166,8 @@ class DocType(TransactionBase): # Item Details # ------------- def get_item_details(self, args=None): - args = args and eval(args) or {} + import json + args = args and json.loads(args) or {} if args.get('item_code'): ret = get_obj('Sales Common').get_item_details(args, self) return self.get_pos_details(args, ret) diff --git a/erpnext/knowledge_base/page/question_view/question_view.js b/erpnext/knowledge_base/page/question_view/question_view.js index a193f16f113..879ee7912eb 100644 --- a/erpnext/knowledge_base/page/question_view/question_view.js +++ b/erpnext/knowledge_base/page/question_view/question_view.js @@ -19,9 +19,9 @@ pscript['onload_question-view'] = function(wrapper) { } pscript['refresh_question-view'] = function() { - $('.add-answer-area').empty(); // href var qid = window.location.hash.split('/')[1]; + console.log(qid) if(qid) { pscript.question_view(qid); } diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index 27206b2d492..f18546850cb 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -77,7 +77,8 @@ class DocType(TransactionBase): # Get Item Details # ----------------- def get_item_details(self, args=None): - args = args and eval(args) or {} + import json + args = args and json.loads(args) or {} if args.get('item_code'): return get_obj('Sales Common').get_item_details(args, self) else: diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index c886ec38b6b..7796e15cbd7 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -102,7 +102,8 @@ class DocType(TransactionBase): # Get Item Details # ---------------- def get_item_details(self, args=None): - args = args and eval(args) or {} + import json + args = args and json.loads(args) or {} if args.get('item_code'): return get_obj('Sales Common').get_item_details(args, self) else: diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css index 2735ffec07d..a6f4e920fb5 100644 --- a/erpnext/startup/startup.css +++ b/erpnext/startup/startup.css @@ -1,10 +1,10 @@ h1, h2, h3, h4, h5 { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-weight: bold; } body { - font-family: "Lato", Helvetica, "Helvetica Neue", sans-serif; + font-family: "Open Sans", Helvetica, "Helvetica Neue", sans-serif; font-size: 13px; } diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 3d8a1011fc2..5940bb22840 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -107,7 +107,8 @@ class DocType(TransactionBase): # ***************** Get Item Details ****************************** def get_item_details(self, args=None): - args = args and eval(args) or {} + import json + args = args and json.loads(args) or {} if args.get('item_code'): return get_obj('Sales Common').get_item_details(args, self) else: diff --git a/erpnext/utilities/doctype/address/address.js b/erpnext/utilities/doctype/address/address.js index 1c2bab7f9e1..8949c5a9ebf 100644 --- a/erpnext/utilities/doctype/address/address.js +++ b/erpnext/utilities/doctype/address/address.js @@ -26,13 +26,13 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { doc.address_type = 'Office'; } else if(route[1]=='Customer') { var customer = locals.Customer[route[2]] - doc.supplier = customer.name; + doc.customer = customer.name; doc.customer_name = customer.customer_name; doc.address_type = 'Office'; } else if(route[1]=='Sales Partner') { var sp = locals['Sales Partner'][route[2]]; doc.sales_partner = sp.name; - ndoc.address_type = 'Office'; + doc.address_type = 'Office'; } } diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css index 693b8fb4d5f..b56b55ee353 100644 --- a/erpnext/website/css/website.css +++ b/erpnext/website/css/website.css @@ -14,6 +14,10 @@ h3 { margin-bottom: 7px; } +p, li { + line-height: 1.6em; +} + pre { background-color: #F8F8F8; border: 1px solid #CCCCCC; diff --git a/erpnext/website/doctype/style_settings/style_settings.txt b/erpnext/website/doctype/style_settings/style_settings.txt index d42c485643f..18a4d1a6085 100644 --- a/erpnext/website/doctype/style_settings/style_settings.txt +++ b/erpnext/website/doctype/style_settings/style_settings.txt @@ -23,7 +23,7 @@ 'name': '__common__', 'section_style': u'Simple', 'show_in_menu': 0, - 'version': 15 + 'version': 18 }, # These values are common for all DocField @@ -66,17 +66,6 @@ 'permlevel': 1 }, - # DocField - { - 'colour': u'White:FFF', - 'description': u'Solid background color (default light gray)', - 'doctype': u'DocField', - 'fieldname': u'background_color', - 'fieldtype': u'Data', - 'label': u'Background Color', - 'permlevel': 0 - }, - # DocField { 'colour': u'White:FFF', @@ -89,13 +78,24 @@ 'permlevel': 0 }, + # DocField + { + 'colour': u'White:FFF', + 'description': u'Solid background color (default light gray)', + 'doctype': u'DocField', + 'fieldname': u'background_color', + 'fieldtype': u'Data', + 'label': u'Background Color', + 'permlevel': 0 + }, + # DocField { 'doctype': u'DocField', 'fieldname': u'font', 'fieldtype': u'Select', 'label': u'Font', - 'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nPontano Sans\nDroid Sans\nGill Sans', + 'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nLato\nOpen Sans', 'permlevel': 0 }, @@ -115,7 +115,7 @@ 'fieldname': u'heading_font', 'fieldtype': u'Select', 'label': u'Heading Font', - 'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nPontano Sans\nDroid Sans\nGill Sans', + 'options': u'\nLucida Grande\nVerdana\nArial\nGeorgia\nTahoma\nLato\nOpen Sans', 'permlevel': 0 }, @@ -153,4 +153,4 @@ 'permlevel': 0, 'print_hide': 1 } -] \ No newline at end of file +] diff --git a/erpnext/website/doctype/web_page/template.html b/erpnext/website/doctype/web_page/template.html index 1fb613c70dd..69500699a71 100644 --- a/erpnext/website/doctype/web_page/template.html +++ b/erpnext/website/doctype/web_page/template.html @@ -23,6 +23,6 @@
-
+
Last Modified: {{ doc.updated }} Feedback
diff --git a/erpnext/website/js/topbar.js b/erpnext/website/js/topbar.js index 4f9ed7fe99a..aec0f02aa8e 100644 --- a/erpnext/website/js/topbar.js +++ b/erpnext/website/js/topbar.js @@ -112,6 +112,6 @@ erpnext.Footer = Class.extend({ }); $(document).bind('startup', function() { -// erpnext.footer = new erpnext.Footer(); + erpnext.footer = new erpnext.Footer(); erpnext.navbar.navbar = new erpnext.navbar.Navbar(); }) diff --git a/js/all-app.js b/js/all-app.js index bd85e3e3b14..fe634e38bb0 100644 --- a/js/all-app.js +++ b/js/all-app.js @@ -345,7 +345,14 @@ $(page).bind('hide',onhide);page.label=label;wn.pages[label]=page;return page;}, var me=this;if(label.tagName){var page=label;}else{var page=wn.pages[label];} if(!page){console.log('Page not found '+label);return;} if(this.page){$(this.page).toggle(false);$(this.page).trigger('hide');} -this.page=page;$(this.page).fadeIn();$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;return this.page;}}) +this.page=page;$(this.page).fadeIn();$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;scroll(0,0);return this.page;}});wn.views.add_module_btn=function(parent,module){$(parent).append(repl('\ + %(module)s Home\ + ',{module:module,module_small:module.toLowerCase()}));} +wn.views.add_list_btn=function(parent,doctype){$(parent).append(repl('\ + %(doctype)s List\ + ',{doctype:doctype}));} /* * lib/js/wn/views/doclistview.js */ @@ -354,6 +361,7 @@ document.title=page.doclistview.label;wn.container.change_to(pagename);})} wn.views.DocListView=wn.ui.Listing.extend({init:function(doctype,page){this.doctype=doctype;this.$page=$(page);this.label=get_doctype_label(doctype);this.label=(this.label.toLowerCase().substr(-4)=='list')?this.label:(this.label+' List');this.make_page();this.setup();},make_page:function(){var me=this;this.$page.html(repl('
\
\ ×\ + \

%(label)s

\
\
Loading...
\ @@ -367,7 +375,7 @@ wn.views.DocListView=wn.ui.Listing.extend({init:function(doctype,page){this.doct
\
\
\ -
',{label:this.label}));},setup:function(){var me=this;me.can_delete=wn.model.can_delete(me.doctype);me.meta=locals.DocType[me.doctype];me.$page.find('.wnlist-area').empty(),me.setup_docstatus_filter();me.setup_listview();me.init_list();me.init_stats();me.add_delete_option();},setup_docstatus_filter:function(){var me=this;this.can_submit=$.map(locals.DocPerm,function(d){if(d.parent==me.meta.name&&d.submit)return 1 + ',{label:this.label}));wn.views.breadcrumbs(this.$page.find('.breadcrumbs-area').get(0),locals.DocType[this.doctype].module);},setup:function(){var me=this;me.can_delete=wn.model.can_delete(me.doctype);me.meta=locals.DocType[me.doctype];me.$page.find('.wnlist-area').empty(),me.setup_docstatus_filter();me.setup_listview();me.init_list();me.init_stats();me.add_delete_option();},setup_docstatus_filter:function(){var me=this;this.can_submit=$.map(locals.DocPerm,function(d){if(d.parent==me.meta.name&&d.submit)return 1 else return null;}).length;if(this.can_submit){this.$page.find('.show-docstatus').removeClass('hide');this.$page.find('.show-docstatus input').click(function(){me.run();})}},setup_listview:function(){if(this.meta.__listjs){eval(this.meta.__listjs);this.listview=new wn.doclistviews[this.doctype](this);}else{this.listview=new wn.views.ListView(this);} this.listview.parent=this;},init_list:function(){this.make({method:'webnotes.widgets.doclistview.get',get_args:this.get_args,parent:this.$page.find('.wnlist-area'),start:0,page_length:20,show_filters:true,show_grid:true,new_doctype:this.doctype,allow_delete:true,no_result_message:this.make_no_result(),columns:this.listview.fields});this.run();},make_no_result:function(){return repl('

No %(doctype_label)s found

\ %(description)s\ @@ -424,7 +432,7 @@ if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';da */ wn.provide('wn.views.pageview');wn.views.pageview={pages:{},with_page:function(name,callback){if(!locals.Page[name]){wn.call({method:'webnotes.widgets.page.getpage',args:{'name':name},callback:callback});}else{callback();}},show:function(name){wn.views.pageview.with_page(name,function(){if(!wn.pages[name]){wn.views.pageview.pages[name]=new wn.views.Page(name);} wn.container.change_to(name);});}} -wn.views.Page=Class.extend({init:function(name){this.name=name;var me=this;this.pagedoc=locals.Page[this.name];this.wrapper=wn.container.add_page(this.name);this.wrapper.label=this.pagedoc.title||this.pagedoc.name;this.wrapper.innerHTML=this.pagedoc.content;wn.dom.eval(this.pagedoc.__script||this.pagedoc.script||'');wn.dom.set_style(this.pagedoc.style);this.trigger('onload');$(this.wrapper).bind('show',function(){cur_frm=null;me.trigger('onshow');});},trigger:function(eventname){var me=this;try{if(pscript[eventname+'_'+this.name]){pscript[eventname+'_'+this.name](me.wrapper);}else if(me.wrapper[eventname]){me.wrapper[eventname](me.wrapper);}}catch(e){console.log(e);}}}) +wn.views.Page=Class.extend({init:function(name){this.name=name;var me=this;this.pagedoc=locals.Page[this.name];this.wrapper=wn.container.add_page(this.name);this.wrapper.label=this.pagedoc.title||this.pagedoc.name;this.wrapper.innerHTML=this.pagedoc.content;wn.dom.eval(this.pagedoc.__script||this.pagedoc.script||'');wn.dom.set_style(this.pagedoc.style);this.trigger('onload');$(this.wrapper).bind('show',function(){cur_frm=null;me.trigger('onshow');me.trigger('refresh');});},trigger:function(eventname){var me=this;try{if(pscript[eventname+'_'+this.name]){pscript[eventname+'_'+this.name](me.wrapper);}else if(me.wrapper[eventname]){me.wrapper[eventname](me.wrapper);}}catch(e){console.log(e);}}}) /* * lib/js/wn/views/formview.js */ @@ -788,7 +796,7 @@ me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt me.last_value=val;me.run_trigger();} this.input.set_input=function(val){if(val==null)val='';me.input.value=val;if(me.format_input)me.format_input();} if(this.df.options=='Suggest'){if(this.suggest_icon)$di(this.suggest_icon);$(me.input).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':repl('SELECT DISTINCT `%(fieldname)s` FROM \ - `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}});}} + `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});}});}} DataField.prototype.validate=function(v){if(this.df.options=='Phone'){if(v+''=='')return'';v1='' v=v.replace(/ /g,'').replace(/-/g,'').replace(/\(/g,'').replace(/\)/g,'');if(v&&v.substr(0,1)=='+'){v1='+';v=v.substr(1);} if(v&&v.substr(0,2)=='00'){v1+='00';v=v.substr(2);} @@ -816,7 +824,8 @@ return v;};function LinkField(){}LinkField.prototype=new Field();LinkField.proto $(me.btn2).css('display','inline-block');else $dh(me.btn2);}} me.txt.field_object=this;me.input.set_input=function(val){if(val==undefined)val='';me.txt.value=val;} me.get_value=function(){return me.txt.value;} -$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};} +$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};$(this.txt).change(function(){if(!$(this).val()) +me.set_input_value('');})} LinkField.prototype.get_custom_query=function(){this.set_get_query();if(this.get_query){if(cur_frm) var doc=locals[cur_frm.doctype][cur_frm.docname];return this.get_query(doc,this.doctype,this.docname);}} LinkField.prototype.setup_buttons=function(){var me=this;me.btn.onclick=function(){selector.set(me,me.df.options,me.df.label);selector.show(me.txt);} @@ -1042,8 +1051,7 @@ this.show=function(){$ds(me.ldiv);}} * lib/js/legacy/webpage/page_header.js */ var def_ph_style={wrapper:{marginBottom:'16px',backgroundColor:'#EEE'},main_heading:{},sub_heading:{marginBottom:'8px',color:'#555',display:'none'},separator:{borderTop:'1px solid #ddd'},toolbar_area:{padding:'3px 0px',display:'none',borderBottom:'1px solid #ddd'}} -function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.t1=make_table($a(this.wrapper,'div','',def_ph_style.wrapper.backgroundColor),1,2,'100%',[null,'100px'],{padding:'2px'});$y(this.t1,{borderCollapse:'collapse'}) -this.lhs=$td(this.t1,0,0);this.main_head=$a(this.lhs,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.lhs,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});$y($td(this.t1,0,1),{textAlign:'right',padding:'3px'});this.close_btn=$a($td(this.t1,0,1),'span','close',{},'×');this.close_btn.onclick=function(){window.history.back();};if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};} +function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.close_btn=$a(this.wrapper,'a','close',{},'×');this.close_btn.onclick=function(){window.history.back();};this.breadcrumbs=$a(this.wrapper,'div');this.main_head=$a(this.wrapper,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.wrapper,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};} PageHeader.prototype.add_button=function(label,fn,bold,icon,green){var tb=this.toolbar_area;if(this.buttons[label])return;iconhtml=icon?(' '):'';var $button=$('').click(fn).appendTo(tb);if(green){$button.addClass('btn-info');$button.find('i').addClass('icon-white');} if(bold)$button.css('font-weight','bold');this.buttons[label]=$button.get(0);$ds(this.toolbar_area);return this.buttons[label];} PageHeader.prototype.clear_toolbar=function(){this.toolbar_area.innerHTML='';this.buttons={};} @@ -1397,6 +1405,14 @@ wn.ui.toolbar.download_backup=function(){$c('webnotes.utils.backups.get_backup', 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;} +/* + * lib/js/wn/views/breadcrumbs.js + */ +wn.provide('wn.views');wn.views.breadcrumbs=function(parent,module,doctype,name){var $bspan=$(repl('\ + ',{home_page:wn.boot.home_page}));if(module){$bspan.append(repl(' / %(module)s Home',{module:module,module_small:module.toLowerCase()}))} +if(doctype&&(locals.DocType[doctype]&&!locals.DocType[doctype].issingle)){$bspan.append(repl(' / %(doctype)s List',{doctype:doctype}))} +if(name){$bspan.append(' / '+name)} +$bspan.appendTo(parent);} /* * lib/js/legacy/widgets/form/fields.js */ @@ -1468,7 +1484,7 @@ me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt me.last_value=val;me.run_trigger();} this.input.set_input=function(val){if(val==null)val='';me.input.value=val;if(me.format_input)me.format_input();} if(this.df.options=='Suggest'){if(this.suggest_icon)$di(this.suggest_icon);$(me.input).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':repl('SELECT DISTINCT `%(fieldname)s` FROM \ - `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}});}} + `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});}});}} DataField.prototype.validate=function(v){if(this.df.options=='Phone'){if(v+''=='')return'';v1='' v=v.replace(/ /g,'').replace(/-/g,'').replace(/\(/g,'').replace(/\)/g,'');if(v&&v.substr(0,1)=='+'){v1='+';v=v.substr(1);} if(v&&v.substr(0,2)=='00'){v1+='00';v=v.substr(2);} @@ -1496,7 +1512,8 @@ return v;};function LinkField(){}LinkField.prototype=new Field();LinkField.proto $(me.btn2).css('display','inline-block');else $dh(me.btn2);}} me.txt.field_object=this;me.input.set_input=function(val){if(val==undefined)val='';me.txt.value=val;} me.get_value=function(){return me.txt.value;} -$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};} +$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};$(this.txt).change(function(){if(!$(this).val()) +me.set_input_value('');})} LinkField.prototype.get_custom_query=function(){this.set_get_query();if(this.get_query){if(cur_frm) var doc=locals[cur_frm.doctype][cur_frm.docname];return this.get_query(doc,this.doctype,this.docname);}} LinkField.prototype.setup_buttons=function(){var me=this;me.btn.onclick=function(){selector.set(me,me.df.options,me.df.label);selector.show(me.txt);} @@ -1625,8 +1642,8 @@ d.cur_frm=f;d.dn=dn;d.table_form=f.meta.istable;f.refresh(dn);d.dialog.show();}) /* * lib/js/legacy/widgets/form/form_header.js */ -_f.FrmHeader=function(parent,frm){var me=this;this.wrapper=$a(parent,'div');if(frm.meta.in_dialog)$y(this.wrapper,{marginLeft:'8px',marginRight:'8px'});this.page_head=new PageHeader(this.wrapper);this.dt_area=$a(this.page_head.main_head,'h1','',{marginRight:'8px',display:'inline'}) -var div=$a(null,'div','',{marginBottom:'4px'});this.page_head.lhs.insertBefore(div,this.page_head.sub_head);this.dn_area=$a(div,'span','',{fontSize:'14px',fontWeight:'normal',marginRight:'8px',padding:'2px'}) +_f.FrmHeader=function(parent,frm){var me=this;this.wrapper=$a(parent,'div');if(frm.meta.in_dialog)$y(this.wrapper,{marginLeft:'8px',marginRight:'8px'});this.page_head=new PageHeader(this.wrapper);wn.views.breadcrumbs(this.page_head.breadcrumbs,frm.meta.module,frm.meta.name);this.dt_area=$a(this.page_head.main_head,'h1','',{marginRight:'8px',display:'inline'}) +var div=$a(null,'div','',{marginBottom:'4px'});this.page_head.wrapper.insertBefore(div,this.page_head.sub_head);this.dn_area=$a(div,'span','',{fontSize:'14px',fontWeight:'normal',marginRight:'8px',padding:'2px'}) this.status_area=$a(div,'span','',{marginRight:'8px',marginBottom:'2px',cursor:'pointer',textShadow:'none'})} _f.FrmHeader.prototype.show=function(){$ds(this.wrapper);} _f.FrmHeader.prototype.hide=function(){$dh(this.wrapper);} @@ -1873,7 +1890,7 @@ if(v==null){v='';} var me=this;if(cell.cellIndex){var ft=hc.fieldtype;if(ft=='Link'&&cur_frm.doc.docstatus<1)ft='Data';$s(cell.div,v,ft,hc.options);}else{cell.div.style.padding='2px';cell.div.style.textAlign='left';cell.innerHTML='';var t=make_table(cell,1,3,'60px',['20px','20px','20px'],{verticalAlign:'middle',padding:'2px'});$y($td(t,0,0),{paddingLeft:'4px'});$td(t,0,0).innerHTML=cell.row.rowIndex+1;if(cur_frm.editable&&this.can_edit){var ed=$a($td(t,0,1),'i','icon-edit',{cursor:'pointer'});ed.cell=cell;ed.title='Edit Row';ed.onclick=function(){_f.cur_grid=me;_f.cur_grid_ridx=this.cell.row.rowIndex;_f.edit_record(me.doctype,this.cell.row.docname,1);}}else{cell.div.innerHTML=(cell.row.rowIndex+1);cell.div.style.cursor='default';cell.div.onclick=function(){}}}} $(document).bind('click',function(e){var is_target_toolbar=function(){return $(e.target).parents('.grid_tbarlinks').length;} var is_target_input=function(){if(e.target.tagName.toLowerCase()=='option')return true;return $(e.target).parents().get().indexOf(_f.cur_grid_cell)!=-1;} -if(_f.cur_grid_cell&&!is_target_input()&&!is_target_toolbar()){if(!(text_dialog&&text_dialog.display)&&!datepicker_active&&!(selector&&selector.display)){_f.cur_grid_cell.grid.cell_deselect();return false;}}});_f.Grid.prototype.cell_deselect=function(){if(_f.cur_grid_cell){var c=_f.cur_grid_cell;c.grid.remove_template(c);c.div.className='grid_cell_div';if(c.is_odd)c.div.style.border='2px solid '+c.grid.alt_row_bg;else c.div.style.border='2px solid #FFF';_f.cur_grid_cell=null;}} +if(_f.cur_grid_cell&&!is_target_input()&&!is_target_toolbar()){if(!(text_dialog&&text_dialog.display)&&!datepicker_active&&!(selector&&selector.display)){setTimeout('_f.cur_grid_cell.grid.cell_deselect()',500);return false;}}});_f.Grid.prototype.cell_deselect=function(){if(_f.cur_grid_cell){var c=_f.cur_grid_cell;c.grid.remove_template(c);c.div.className='grid_cell_div';if(c.is_odd)c.div.style.border='2px solid '+c.grid.alt_row_bg;else c.div.style.border='2px solid #FFF';_f.cur_grid_cell=null;}} _f.Grid.prototype.cell_select=function(cell,ri,ci){if(ri!=null&&ci!=null) cell=this.tab.rows[ri].cells[ci];var hc=this.head_row.cells[cell.cellIndex];if(!hc.template){this.make_template(hc);} hc.template.perm=this.field?this.field.perm:hc.perm;if(hc.fieldname&&hc.template.get_status()=='Write'){this.cell_deselect();cell.div.style.border='2px solid #88F';_f.cur_grid_cell=cell;this.add_template(cell);}} diff --git a/js/all-web.js b/js/all-web.js index 0f788171c3e..f905fa47ebd 100644 --- a/js/all-web.js +++ b/js/all-web.js @@ -259,7 +259,14 @@ $(page).bind('hide',onhide);page.label=label;wn.pages[label]=page;return page;}, var me=this;if(label.tagName){var page=label;}else{var page=wn.pages[label];} if(!page){console.log('Page not found '+label);return;} if(this.page){$(this.page).toggle(false);$(this.page).trigger('hide');} -this.page=page;$(this.page).fadeIn();$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;return this.page;}}) +this.page=page;$(this.page).fadeIn();$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;scroll(0,0);return this.page;}});wn.views.add_module_btn=function(parent,module){$(parent).append(repl('\ + %(module)s Home\ + ',{module:module,module_small:module.toLowerCase()}));} +wn.views.add_list_btn=function(parent,doctype){$(parent).append(repl('\ + %(doctype)s List\ + ',{doctype:doctype}));} /* * lib/js/wn/views/doclistview.js */ @@ -268,6 +275,7 @@ document.title=page.doclistview.label;wn.container.change_to(pagename);})} wn.views.DocListView=wn.ui.Listing.extend({init:function(doctype,page){this.doctype=doctype;this.$page=$(page);this.label=get_doctype_label(doctype);this.label=(this.label.toLowerCase().substr(-4)=='list')?this.label:(this.label+' List');this.make_page();this.setup();},make_page:function(){var me=this;this.$page.html(repl('
    \
    \ ×\ + \

    %(label)s

    \
    \
    Loading...
    \ @@ -281,7 +289,7 @@ wn.views.DocListView=wn.ui.Listing.extend({init:function(doctype,page){this.doct
    \
    \
    \ -
    ',{label:this.label}));},setup:function(){var me=this;me.can_delete=wn.model.can_delete(me.doctype);me.meta=locals.DocType[me.doctype];me.$page.find('.wnlist-area').empty(),me.setup_docstatus_filter();me.setup_listview();me.init_list();me.init_stats();me.add_delete_option();},setup_docstatus_filter:function(){var me=this;this.can_submit=$.map(locals.DocPerm,function(d){if(d.parent==me.meta.name&&d.submit)return 1 + ',{label:this.label}));wn.views.breadcrumbs(this.$page.find('.breadcrumbs-area').get(0),locals.DocType[this.doctype].module);},setup:function(){var me=this;me.can_delete=wn.model.can_delete(me.doctype);me.meta=locals.DocType[me.doctype];me.$page.find('.wnlist-area').empty(),me.setup_docstatus_filter();me.setup_listview();me.init_list();me.init_stats();me.add_delete_option();},setup_docstatus_filter:function(){var me=this;this.can_submit=$.map(locals.DocPerm,function(d){if(d.parent==me.meta.name&&d.submit)return 1 else return null;}).length;if(this.can_submit){this.$page.find('.show-docstatus').removeClass('hide');this.$page.find('.show-docstatus input').click(function(){me.run();})}},setup_listview:function(){if(this.meta.__listjs){eval(this.meta.__listjs);this.listview=new wn.doclistviews[this.doctype](this);}else{this.listview=new wn.views.ListView(this);} this.listview.parent=this;},init_list:function(){this.make({method:'webnotes.widgets.doclistview.get',get_args:this.get_args,parent:this.$page.find('.wnlist-area'),start:0,page_length:20,show_filters:true,show_grid:true,new_doctype:this.doctype,allow_delete:true,no_result_message:this.make_no_result(),columns:this.listview.fields});this.run();},make_no_result:function(){return repl('

    No %(doctype_label)s found

    \ %(description)s\ @@ -338,7 +346,7 @@ if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';da */ wn.provide('wn.views.pageview');wn.views.pageview={pages:{},with_page:function(name,callback){if(!locals.Page[name]){wn.call({method:'webnotes.widgets.page.getpage',args:{'name':name},callback:callback});}else{callback();}},show:function(name){wn.views.pageview.with_page(name,function(){if(!wn.pages[name]){wn.views.pageview.pages[name]=new wn.views.Page(name);} wn.container.change_to(name);});}} -wn.views.Page=Class.extend({init:function(name){this.name=name;var me=this;this.pagedoc=locals.Page[this.name];this.wrapper=wn.container.add_page(this.name);this.wrapper.label=this.pagedoc.title||this.pagedoc.name;this.wrapper.innerHTML=this.pagedoc.content;wn.dom.eval(this.pagedoc.__script||this.pagedoc.script||'');wn.dom.set_style(this.pagedoc.style);this.trigger('onload');$(this.wrapper).bind('show',function(){cur_frm=null;me.trigger('onshow');});},trigger:function(eventname){var me=this;try{if(pscript[eventname+'_'+this.name]){pscript[eventname+'_'+this.name](me.wrapper);}else if(me.wrapper[eventname]){me.wrapper[eventname](me.wrapper);}}catch(e){console.log(e);}}}) +wn.views.Page=Class.extend({init:function(name){this.name=name;var me=this;this.pagedoc=locals.Page[this.name];this.wrapper=wn.container.add_page(this.name);this.wrapper.label=this.pagedoc.title||this.pagedoc.name;this.wrapper.innerHTML=this.pagedoc.content;wn.dom.eval(this.pagedoc.__script||this.pagedoc.script||'');wn.dom.set_style(this.pagedoc.style);this.trigger('onload');$(this.wrapper).bind('show',function(){cur_frm=null;me.trigger('onshow');me.trigger('refresh');});},trigger:function(eventname){var me=this;try{if(pscript[eventname+'_'+this.name]){pscript[eventname+'_'+this.name](me.wrapper);}else if(me.wrapper[eventname]){me.wrapper[eventname](me.wrapper);}}catch(e){console.log(e);}}}) /* * lib/js/wn/views/formview.js */ @@ -685,7 +693,7 @@ me.format_input();if(in_list(['Currency','Float','Int'],me.df.fieldtype)){if(flt me.last_value=val;me.run_trigger();} this.input.set_input=function(val){if(val==null)val='';me.input.value=val;if(me.format_input)me.format_input();} if(this.df.options=='Suggest'){if(this.suggest_icon)$di(this.suggest_icon);$(me.input).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':repl('SELECT DISTINCT `%(fieldname)s` FROM \ - `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}});}} + `tab%(dt)s` WHERE `%(fieldname)s` LIKE "%s" LIMIT 50',{fieldname:me.df.fieldname,dt:me.df.parent})},callback:function(r){response(r.results);}});}});}} DataField.prototype.validate=function(v){if(this.df.options=='Phone'){if(v+''=='')return'';v1='' v=v.replace(/ /g,'').replace(/-/g,'').replace(/\(/g,'').replace(/\)/g,'');if(v&&v.substr(0,1)=='+'){v1='+';v=v.substr(1);} if(v&&v.substr(0,2)=='00'){v1+='00';v=v.substr(2);} @@ -713,7 +721,8 @@ return v;};function LinkField(){}LinkField.prototype=new Field();LinkField.proto $(me.btn2).css('display','inline-block');else $dh(me.btn2);}} me.txt.field_object=this;me.input.set_input=function(val){if(val==undefined)val='';me.txt.value=val;} me.get_value=function(){return me.txt.value;} -$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);return false;}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};} +$(me.txt).autocomplete({source:function(request,response){wn.call({method:'webnotes.widgets.search.search_link',args:{'txt':request.term,'dt':me.df.options,'query':me.get_custom_query()},callback:function(r){response(r.results);},});},select:function(event,ui){me.set_input_value(ui.item.value);}}).data('autocomplete')._renderItem=function(ul,item){return $('
  • ').data('item.autocomplete',item).append(repl('%(label)s
    %(info)s
    ',item)).appendTo(ul);};$(this.txt).change(function(){if(!$(this).val()) +me.set_input_value('');})} LinkField.prototype.get_custom_query=function(){this.set_get_query();if(this.get_query){if(cur_frm) var doc=locals[cur_frm.doctype][cur_frm.docname];return this.get_query(doc,this.doctype,this.docname);}} LinkField.prototype.setup_buttons=function(){var me=this;me.btn.onclick=function(){selector.set(me,me.df.options,me.df.label);selector.show(me.txt);} @@ -1003,8 +1012,7 @@ LayoutCell.prototype.hide=function(){$dh(this.wrapper);} * lib/js/legacy/webpage/page_header.js */ var def_ph_style={wrapper:{marginBottom:'16px',backgroundColor:'#EEE'},main_heading:{},sub_heading:{marginBottom:'8px',color:'#555',display:'none'},separator:{borderTop:'1px solid #ddd'},toolbar_area:{padding:'3px 0px',display:'none',borderBottom:'1px solid #ddd'}} -function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.t1=make_table($a(this.wrapper,'div','',def_ph_style.wrapper.backgroundColor),1,2,'100%',[null,'100px'],{padding:'2px'});$y(this.t1,{borderCollapse:'collapse'}) -this.lhs=$td(this.t1,0,0);this.main_head=$a(this.lhs,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.lhs,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});$y($td(this.t1,0,1),{textAlign:'right',padding:'3px'});this.close_btn=$a($td(this.t1,0,1),'span','close',{},'×');this.close_btn.onclick=function(){window.history.back();};if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};} +function PageHeader(parent,main_text,sub_text){this.wrapper=$a(parent,'div','page_header');this.close_btn=$a(this.wrapper,'a','close',{},'×');this.close_btn.onclick=function(){window.history.back();};this.breadcrumbs=$a(this.wrapper,'div');this.main_head=$a(this.wrapper,'h1','',def_ph_style.main_heading);this.sub_head=$a(this.wrapper,'h4','',def_ph_style.sub_heading);this.separator=$a(this.wrapper,'div','',def_ph_style.separator);this.toolbar_area=$a(this.wrapper,'div','',def_ph_style.toolbar_area);this.padding_area=$a(this.wrapper,'div','',{padding:'3px'});if(main_text)this.main_head.innerHTML=main_text;if(sub_text)this.sub_head.innerHTML=sub_text;this.buttons={};this.buttons2={};} PageHeader.prototype.add_button=function(label,fn,bold,icon,green){var tb=this.toolbar_area;if(this.buttons[label])return;iconhtml=icon?(' '):'';var $button=$('').click(fn).appendTo(tb);if(green){$button.addClass('btn-info');$button.find('i').addClass('icon-white');} if(bold)$button.css('font-weight','bold');this.buttons[label]=$button.get(0);$ds(this.toolbar_area);return this.buttons[label];} PageHeader.prototype.clear_toolbar=function(){this.toolbar_area.innerHTML='';this.buttons={};} @@ -1281,4 +1289,4 @@ item.route=item.url||item.custom_page;$parent_li.find('.dropdown-menu').append(r erpnext.com
    \ ',wn.boot.website_settings));this.make_items();},make_items:function(){var items=wn.boot.website_menus for(var i=0;i%(label)s',item))}}}});$(document).bind('startup',function(){erpnext.navbar.navbar=new erpnext.navbar.Navbar();}) \ No newline at end of file + data-label="%(label)s">%(label)s',item))}}}});$(document).bind('startup',function(){erpnext.footer=new erpnext.Footer();erpnext.navbar.navbar=new erpnext.navbar.Navbar();}) diff --git a/version.num b/version.num index 560b9d85517..2800f1bc1fd 100644 --- a/version.num +++ b/version.num @@ -1 +1 @@ -1401 \ No newline at end of file +1460