From becfd56e07194bbc9a5efa1d9dec3baf2d4e4a87 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 27 Jan 2012 15:56:35 +0530 Subject: [PATCH] cleaned up pages and minor style fixes, removed submit_error in js --- css/legacy/body.css | 9 ++++- css/legacy/default.css | 10 +++++- js/legacy/form.compressed.js | 8 ++--- js/legacy/webpage/error_console.js | 9 ----- js/legacy/webpage/loaders.js | 2 +- js/legacy/webpage/page.js | 10 +++--- js/legacy/widgets/form/fields.js | 1 - js/legacy/widgets/form/form.js | 4 +-- js/legacy/widgets/form/form_fields.js | 1 - js/legacy/wn/widgets/listing.js | 24 +++++++++++--- js/legacy/wnf.compressed.js | 16 ++++----- js/wn/ui/toolbar.min.js | 2 +- js/wn/ui/toolbar/selector_dialog.js | 9 +++-- py/core/doctype/page/page.py | 2 +- py/core/doctype/page/page.txt | 47 +++++++++++++++++++++++---- py/webnotes/model/doc.py | 3 ++ py/webnotes/session_cache.py | 7 ++-- 17 files changed, 112 insertions(+), 52 deletions(-) diff --git a/css/legacy/body.css b/css/legacy/body.css index 4a28b29d1a..60e0f6a990 100644 --- a/css/legacy/body.css +++ b/css/legacy/body.css @@ -40,7 +40,13 @@ select, input, textarea { color: #222; } -textarea { font-family: arial, helvetica, sans serif; height: 120px; width: 90%; overflow-x: auto; font-size: 12px; } +textarea { + font-family: inherit; + height: 120px; + width: 90%; + font-size: 12px; + white-space: normal; +} table { padding: 0px; border-collapse: 'collapse'} @@ -63,6 +69,7 @@ div#body_div { position: relative; display: none; margin-top: 56px; + padding-right: 7px; } div.no_script { diff --git a/css/legacy/default.css b/css/legacy/default.css index 0ccdff6004..3fa1a27e6f 100644 --- a/css/legacy/default.css +++ b/css/legacy/default.css @@ -44,7 +44,13 @@ select, input, textarea { color: #222; } -textarea { font-family: arial, helvetica, sans serif; height: 120px; width: 90%; overflow-x: auto; font-size: 12px; } +textarea { + font-family: inherit; + height: 120px; + width: 90%; + font-size: 12px; + white-space: normal; +} table { padding: 0px; border-collapse: 'collapse'} @@ -67,6 +73,7 @@ div#body_div { position: relative; display: none; margin-top: 56px; + padding-right: 7px; } div.no_script { @@ -1829,4 +1836,5 @@ button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { -moz-opacity: 0.4; opacity: 0.4; cursor: pointer; + font-weight: bold; } diff --git a/js/legacy/form.compressed.js b/js/legacy/form.compressed.js index 7cce7cce76..b568794ca7 100644 --- a/js/legacy/form.compressed.js +++ b/js/legacy/form.compressed.js @@ -176,8 +176,8 @@ _f.Frm.prototype.runscript=function(scriptname,callingfield,onrefresh){var me=th onrefresh(r,rtxt);me.refresh_fields();me.refresh_dependency();if(callingfield)callingfield.input.done_working();});}} _f.Frm.prototype.runclientscript=function(caller,cdt,cdn){var _dt=this.parent_doctype?this.parent_doctype:this.doctype;var _dn=this.parent_docname?this.parent_docname:this.docname;var doc=get_local(_dt,_dn);if(!cdt)cdt=this.doctype;if(!cdn)cdn=this.docname;var ret=null;try{if(this.cscript[caller]) ret=this.cscript[caller](doc,cdt,cdn);if(this.cscript['custom_'+caller]) -ret+=this.cscript['custom_'+caller](doc,cdt,cdn);}catch(e){submit_error(e);} -if(caller&&caller.toLowerCase()=='setup'){var doctype=get_local('DocType',this.doctype);var cs=doctype.__js||(doctype.client_script_core+doctype.client_script);if(cs){try{var tmp=eval(cs);}catch(e){submit_error(e);}} +ret+=this.cscript['custom_'+caller](doc,cdt,cdn);}catch(e){console.log(e);} +if(caller&&caller.toLowerCase()=='setup'){var doctype=get_local('DocType',this.doctype);var cs=doctype.__js||(doctype.client_script_core+doctype.client_script);if(cs){try{var tmp=eval(cs);}catch(e){console.log(e);}} if(doctype.__css)set_style(doctype.__css) if(doctype.client_string){this.cstring={};var elist=doctype.client_string.split('---');for(var i=1;i%(owner)s \ ×',d[i]))} $(this.body).find('a.close').click(function(){$c('webnotes.widgets.form.assign_to.remove',{doctype:me.doctype,name:me.name,assign_to:$(this).attr('data-owner')},function(r,rt){me.render(r.message);});return false;});},add:function(){var me=this;if(!me.dialog){me.dialog=new wn.widgets.Dialog({title:'Add to To Do',width:350,fields:[{fieldtype:'Link',fieldname:'assign_to',options:'Profile',label:'Assign To',description:'Add to To Do List of',reqd:true},{fieldtype:'Data',fieldname:'description',label:'Comment','default':'Assigned by '+user},{fieldtype:'Date',fieldname:'date',label:'Complete By'},{fieldtype:'Select',fieldname:'priority',label:'Priority',options:'Low\nMedium\nHigh','default':'Medium'},{fieldtype:'Button',label:'Add',fieldname:'add_btn'}]});me.dialog.fields_dict.add_btn.input.onclick=function(){var assign_to=me.dialog.fields_dict.assign_to.get_value();if(assign_to){$c('webnotes.widgets.form.assign_to.add',{doctype:me.doctype,name:me.name,assign_to:assign_to,description:me.dialog.fields_dict.description.get_value(),priority:me.dialog.fields_dict.priority.get_value(),date:me.dialog.fields_dict.date.get_value()},function(r,rt){me.render(r.message);});}}} -me.dialog.clear();me.dialog.show();}}); +me.dialog.clear();me.dialog.show();}}); \ No newline at end of file diff --git a/js/legacy/webpage/error_console.js b/js/legacy/webpage/error_console.js index 0fe312275e..a3c1ee1daa 100644 --- a/js/legacy/webpage/error_console.js +++ b/js/legacy/webpage/error_console.js @@ -7,15 +7,6 @@ function errprint(t) { err_list[err_list.length] = ('
'+t+'
'); } -function submit_error(e) { - if(isIE) { - var t = 'Explorer: ' + e + '\n' + e.description; - } else { - var t = 'Mozilla: ' + e.toString() + '\n' + e.message + '\nLine Number:' + e.lineNumber;// + '\nStack:' + e.stack; - } - errprint(e + '\nLine Number:' + e.lineNumber + '\nStack:' + e.stack); -} - function setup_err_console() { err_console = new Dialog(640, 480, 'Error Console') err_console.make_body([ diff --git a/js/legacy/webpage/loaders.js b/js/legacy/webpage/loaders.js index d0ff2090fd..01334b7318 100644 --- a/js/legacy/webpage/loaders.js +++ b/js/legacy/webpage/loaders.js @@ -212,7 +212,7 @@ function loadpage(page_name, call_back, no_history) { try { if(pscript['refresh_'+page_name]) pscript['refresh_'+page_name](); // onload } catch(e) { - submit_error(e); + console.log(e); } } diff --git a/js/legacy/webpage/page.js b/js/legacy/webpage/page.js index 3eb811fd2d..fde2a2f756 100644 --- a/js/legacy/webpage/page.js +++ b/js/legacy/webpage/page.js @@ -9,12 +9,14 @@ function Page(page_name, content) { this.onshow = function() { // default set_title - set_title(me.doc.page_title ? me.doc.page_title : me.name); + set_title(me.doc.title ? me.doc.title : me.name); // onshow try { - if(pscript['onshow_'+me.name]) pscript['onshow_'+me.name](); // onload - } catch(e) { submit_error(e); } + if(pscript['onshow_'+me.name]) pscript['onshow_'+me.name](me.wrapper); // onload + } catch(e) { + console.log(e); + } // clear cur_frm cur_frm = null; @@ -69,7 +71,7 @@ function render_page(page_name, menuitem) { if(pscript['onload_'+page_name]) pscript['onload_'+page_name](page_body.pages[page_name]); // onload } catch(e) { - submit_error(e); + console.log(e); } return p; diff --git a/js/legacy/widgets/form/fields.js b/js/legacy/widgets/form/fields.js index bf2910b9cb..74195efec8 100644 --- a/js/legacy/widgets/form/fields.js +++ b/js/legacy/widgets/form/fields.js @@ -853,7 +853,6 @@ TextField.prototype.make_input = function() { return; // do nothing, text dialog will take over this.input = $a(this.input_area, 'textarea'); - this.input.wrap = 'off'; if(this.df.fieldtype=='Small Text') this.input.style.height = "80px"; this.input.set_input = function(v) { diff --git a/js/legacy/widgets/form/form.js b/js/legacy/widgets/form/form.js index 374324c59e..7629c74b2a 100644 --- a/js/legacy/widgets/form/form.js +++ b/js/legacy/widgets/form/form.js @@ -979,7 +979,7 @@ _f.Frm.prototype.runclientscript = function(caller, cdt, cdn) { if(this.cscript['custom_'+caller]) ret += this.cscript['custom_'+caller](doc, cdt, cdn); } catch(e) { - submit_error(e); + console.log(e); } if(caller && caller.toLowerCase()=='setup') { @@ -992,7 +992,7 @@ _f.Frm.prototype.runclientscript = function(caller, cdt, cdn) { try { var tmp = eval(cs); } catch(e) { - submit_error(e); + console.log(e); } } diff --git a/js/legacy/widgets/form/form_fields.js b/js/legacy/widgets/form/form_fields.js index be5e14e932..1c5aa1360f 100644 --- a/js/legacy/widgets/form/form_fields.js +++ b/js/legacy/widgets/form/form_fields.js @@ -335,7 +335,6 @@ _f.CodeField.prototype.make_input = function() { this.input = $a(this.input_area, 'textarea','code_text',{fontSize:'12px'}); this.myid = wn.dom.set_unique_id(this.input); - this.input.setAttribute('wrap', 'off'); this.input.set_input = function(v) { if(me.editor) { me.editor.setContent(v); diff --git a/js/legacy/wn/widgets/listing.js b/js/legacy/wn/widgets/listing.js index 22802f958e..86392c3c1f 100644 --- a/js/legacy/wn/widgets/listing.js +++ b/js/legacy/wn/widgets/listing.js @@ -2,6 +2,19 @@ // uses FieldGroup for rendering filters // removed rarely used functionality // +// opts: +// parent +// query or get_query +// query_max +// no_result_message ("No result") +// page_length (20) +// filters ([{docfield}, ..]) +// hide_refresh (False) +// new_doctype +// [function] render_row(parent, data) +// [function] onrun +// no_loading (no ajax indicator) + wn.widgets.Listing = function(opts) { this.opts = opts; @@ -63,7 +76,7 @@ wn.widgets.Listing = function(opts) { // make more button // that shows more results when they are displayed this.make_more_button = function() { - this.more_btn = $btn(this.more_button_area, 'Show more results...', + this.more_btn = $btn(this.more_button_area, 'More...', function() { me.more_btn.set_working(); me.run(function() { @@ -137,14 +150,13 @@ wn.widgets.Listing = function(opts) { this.start = 0; // load query - this.query = this.opts.get_query(); + this.query = this.opts.get_query ? this.opts.get_query() : this.opts.query; this.add_limits(); - args={ query_max: this.query_max ? this.query_max : '' } + args={ query_max: this.query_max || this.opts.query_max || '' } args.simple_query = this.query; - if(this.opts.as_dict) args.as_dict = 1; - if(this.opts.formatted) args.formatted = 1; + args.as_dict = 1; // show loading if(this.loading_img) $di(this.loading_img); @@ -152,6 +164,8 @@ wn.widgets.Listing = function(opts) { function(r, rt) { me.make_results(r, rt) }, null, this.opts.no_loading); } + this.refresh = this.run; + this.add_limits = function() { this.query += ' LIMIT ' + this.start + ',' + (this.page_length+1); } diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index 9052eadd79..14b2310a7f 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -490,7 +490,7 @@ this.make_filters=function(){if(this.opts.filters){$ds(this.filters_area);this.f this.make_toolbar=function(){if(!this.opts.hide_refresh){this.ref_img=$a(this.toolbar_area,'span','link_type',{color:'#888'},'[refresh]');this.ref_img.onclick=function(){me.run();} this.loading_img=$a(this.toolbar_area,'img','lib/images/ui/button-load.gif',{display:'none',marginLeft:'3px',marginBottom:'-2px'});} if(this.opts.new_doctype){this.new_btn=$btn(this.toolbar_area,'New '+get_doctype_label(this.opts.new_doctype),function(){newdoc(me.opts.new_doctype,me.opts.new_doc_onload,me.opts.new_doc_indialog,me.opts.new_doc_onsave);},{marginLeft:'7px'});}} -this.make_more_button=function(){this.more_btn=$btn(this.more_button_area,'Show more results...',function(){me.more_btn.set_working();me.run(function(){me.more_btn.done_working();},1);},{fontSize:'14px'},0,1);$y(this.more_btn.loading_img,{marginBottom:'0px'});} +this.make_more_button=function(){this.more_btn=$btn(this.more_button_area,'More...',function(){me.more_btn.set_working();me.run(function(){me.more_btn.done_working();},1);},{fontSize:'14px'},0,1);$y(this.more_btn.loading_img,{marginBottom:'0px'});} this.clear=function(){this.results_area.innerHTML='';this.table=null;$ds(this.results_area);$dh(this.no_results_area);} this.make_results=function(r,rt){if(this.start==0)this.clear();$dh(this.more_button_area);if(this.loading_img)$dh(this.loading_img) if(r.values&&r.values.length){this.values=r.values;var m=Math.min(r.values.length,this.page_length);for(var i=0;i'+t+'');} -function submit_error(e){if(isIE){var t='Explorer: '+e+'\n'+e.description;}else{var t='Mozilla: '+e.toString()+'\n'+e.message+'\nLine Number:'+e.lineNumber;} -errprint(e+'\nLine Number:'+e.lineNumber+'\nStack:'+e.stack);} function setup_err_console(){err_console=new Dialog(640,480,'Error Console') err_console.make_body([['HTML','Error List'],['Button','Clear'],['HTML','Error Report']]);var span=$a(err_console.widgets['Error Report'],'span','link_type');span.innerHTML='Send Error Report';span.onclick=function(){msg=prompt('How / where did you get the error [optional]') var call_back=function(r,rt){err_console.hide();msgprint("Error Report Sent")} @@ -797,7 +795,7 @@ var newdoc=new_doc;var pscript={};var cur_page;function loadpage(page_name,call_ page_name=home_page;var fn=function(r,rt){page_body.set_status('Done');if(page_body.pages[page_name]){var p=page_body.pages[page_name] page_body.change_to(page_name);}else{var p=render_page(page_name);if(!p)return;} cur_page=page_name;if(call_back)call_back();scroll(0,0);pscript.update_page_history(page_name,no_history) -try{if(pscript['refresh_'+page_name])pscript['refresh_'+page_name]();}catch(e){submit_error(e);}} +try{if(pscript['refresh_'+page_name])pscript['refresh_'+page_name]();}catch(e){console.log(e);}} if(get_local('Page',page_name)||page_body.pages[page_name]) fn();else{args=get_url_dict();args.name=page_name;$c('webnotes.widgets.page.getpage',args,fn);}} pscript.update_page_history=function(page_name,no_history){var arg=null;var t=null;if(window.location.hash){var t=nav_obj.get_page(window.location.hash)}else if(get_url_arg('page')){var t=nav_obj.get_page(get_url_arg('page'))} @@ -819,7 +817,7 @@ function upload_callback(id,fid){uploaders[id].callback(fid);} * lib/js/legacy/webpage/page.js */ -var pages=[];var stylesheets=[];function Page(page_name,content){var me=this;this.name=page_name;this.onshow=function(){set_title(me.doc.page_title?me.doc.page_title:me.name);try{if(pscript['onshow_'+me.name])pscript['onshow_'+me.name]();}catch(e){submit_error(e);} +var pages=[];var stylesheets=[];function Page(page_name,content){var me=this;this.name=page_name;this.onshow=function(){set_title(me.doc.title?me.doc.title:me.name);try{if(pscript['onshow_'+me.name])pscript['onshow_'+me.name](me.wrapper);}catch(e){console.log(e);} cur_frm=null;} this.wrapper=page_body.add_page(page_name,this.onshow);this.cont=this.wrapper if(content) @@ -830,7 +828,7 @@ var pdoc=locals['Page'][page_name];if(pdoc.style)set_style(pdoc.style) if(pdoc.stylesheet){set_style(locals.Stylesheet[pdoc.stylesheet].stylesheet);stylesheets.push(pdoc.stylesheet);} var p=new Page(page_name,pdoc._Page__content?pdoc._Page__content:pdoc.content);var script=pdoc.__script?pdoc.__script:pdoc.script;p.doc=pdoc;if(script){eval(script);} page_body.change_to(page_name);try{if(pscript['onload_'+page_name]) -pscript['onload_'+page_name](page_body.pages[page_name]);}catch(e){submit_error(e);} +pscript['onload_'+page_name](page_body.pages[page_name]);}catch(e){console.log(e);} return p;} function refresh_page(page_name){var fn=function(r,rt){render_page(page_name)} $c('webnotes.widgets.page.getpage',{'name':page_name,stylesheets:JSON.stringify(stylesheets)},fn);} diff --git a/js/wn/ui/toolbar.min.js b/js/wn/ui/toolbar.min.js index a647e4a4a5..e854d6b075 100644 --- a/js/wn/ui/toolbar.min.js +++ b/js/wn/ui/toolbar.min.js @@ -63,7 +63,7 @@ */ wn.ui.toolbar.SelectorDialog=Class.extend({init:function(opts){this.opts=opts;try{this.make_dialog();}catch(e){console.log(e);} -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(){me.dialog.hide();me.opts.execute(me.dialog.fields_dict.doctype.get_value());});$(this.dialog.fields_dict.doctype.input).change(function(){me.dialog.hide();me.opts.execute($(this).val());});},show:function(){this.dialog.show();this.dialog.fields_dict.doctype.input.focus();return false;},set_values:function(lst){for(var i=0;iTo add images, use $image(filename)
Where file name is the ID or Name of the File record' + 'fieldtype': 'Section Break' }, # DocField @@ -157,5 +168,27 @@ 'options': 'Page Role', 'reqd': 0, 'search_index': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'script', + 'fieldtype': 'Code', + 'label': 'Script (JS)' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'style', + 'fieldtype': 'Code', + 'label': 'Style (CSS)' } ] \ No newline at end of file diff --git a/py/webnotes/model/doc.py b/py/webnotes/model/doc.py index bc49f8e3d7..954714d656 100755 --- a/py/webnotes/model/doc.py +++ b/py/webnotes/model/doc.py @@ -82,6 +82,9 @@ class Document: if (doctype and name): self._loadfromdb(doctype, name) + else: + if not fielddata: + self.fields['__islocal'] = 1 def __nonzero__(self): return True diff --git a/py/webnotes/session_cache.py b/py/webnotes/session_cache.py index b020042f10..8381fae213 100644 --- a/py/webnotes/session_cache.py +++ b/py/webnotes/session_cache.py @@ -19,9 +19,10 @@ def clear_cache(user=''): else: webnotes.conn.sql("delete from __SessionCache") webnotes.conn.sql("update tabSessions set sessiondata=NULL") - - webnotes.session['data'] = {} - + + if webnotes.session: + webnotes.session['data'] = {} + def get(): """get session boot info""" import webnotes.defs