added ability to show / hide columns

This commit is contained in:
Rushabh Mehta 2011-08-25 11:34:01 +05:30
parent 01149f2194
commit 89abceaa0d
4 changed files with 57 additions and 57 deletions

View file

@ -131,7 +131,10 @@ class POP3Mailbox:
num = len(self.pop.list()[1])
for m in range(num):
msg = self.pop.retr(m+1)
self.process_message(IncomingMail('\n'.join(msg[1])))
try:
self.process_message(IncomingMail('\n'.join(msg[1])))
except:
pass
self.pop.dele(m+1)
self.pop.quit()

View file

@ -256,18 +256,21 @@ _f.CodeField.prototype.init_editor=function(){var me=this;this.editor=tinymce.ge
_f.CodeField.prototype.set_disp=function(val){$y(this.disp_area,{width:'90%'})
if(this.df.fieldtype=='Text Editor'){this.disp_area.innerHTML=val;}else{this.disp_area.innerHTML='<textarea class="code_text" readonly=1>'+val+'</textarea>';}}
_f.cur_grid_cell=null;_f.Grid=function(parent){}
_f.Grid.prototype.init=function(parent,row_height){this.alt_row_bg='#F2F2FF';this.row_height=row_height;if(!row_height)this.row_height='26px';this.make_ui(parent);this.insert_column('','','Int','Sr','50px','',[1,0,0]);this.total_width=50;if(this.oninit)this.oninit();keypress_observers.push(this)}
_f.Grid.prototype.init=function(parent,row_height){this.col_idx_by_name={}
this.alt_row_bg='#F2F2FF';this.row_height=row_height;if(!row_height)this.row_height='26px';this.make_ui(parent);this.insert_column('','','Int','Sr','50px','',[1,0,0]);if(this.oninit)this.oninit();keypress_observers.push(this);}
_f.Grid.prototype.make_ui=function(parent){var ht=make_table($a(parent,'div'),1,2,'100%',['60%','40%']);this.main_title=$td(ht,0,0);this.main_title.className='columnHeading';$td(ht,0,1).style.textAlign='right';this.tbar_div=$a($td(ht,0,1),'div','grid_tbarlinks');if(isIE)$y(this.tbar_div,{width:'200px'});this.tbar_tab=make_table(this.tbar_div,1,4,'100%',['25%','25%','25%','25%']);this.wrapper=$a(parent,'div','grid_wrapper');$h(this.wrapper,cint(screen.width*0.5)+'px');this.head_wrapper=$a(this.wrapper,'div','grid_head_wrapper');this.head_tab=$a(this.head_wrapper,'table','grid_head_table');this.head_row=this.head_tab.insertRow(0);this.tab_wrapper=$a(this.wrapper,'div','grid_tab_wrapper');this.tab=$a(this.tab_wrapper,'table','grid_table');var me=this;this.wrapper.onscroll=function(){me.head_wrapper.style.top=me.wrapper.scrollTop+'px';}}
_f.Grid.prototype.show=function(){if(this.can_add_rows){$ds(this.tbar_div);}else{$dh(this.tbar_div);}
$ds(this.wrapper);}
_f.Grid.prototype.hide=function(){$dh(this.wrapper);$dh(this.tbar_div);}
_f.Grid.prototype.insert_column=function(doctype,fieldname,fieldtype,label,width,options,perm,reqd){var idx=this.head_row.cells.length;if(!width)width='100px';var col=this.head_row.insertCell(idx);col.doctype=doctype;col.fieldname=fieldname;col.fieldtype=fieldtype;col.innerHTML='<div>'+label+'</div>';col.label=label;if(reqd)
col.childNodes[0].style.color="#D22";this.total_width+=cint(width);$w(col,width);col.orig_width=col.style.width;col.options=options;col.perm=perm;}
_f.Grid.prototype.set_column_disp=function(label,show){for(var i=0;i<this.head_row.cells.length;i++){var c=this.head_row.cells[i];if(label&&(c.label==label||c.cur_label==label)){if(show){var w=c.orig_width;this.head_tab.style.width=(this.total_width+cint(w))+'px';this.tab.style.width=(this.total_width+cint(w))+'px';}else{var w='0px';this.head_tab.style.width=(this.total_width-cint(c.orig_width))+'px';this.tab.style.width=(this.total_width-cint(c.orig_width))+'px';}
$w(c,w);if(this.tab){for(var j=0;j<this.tab.rows.length;j++){var cell=this.tab.rows[j].cells[i];$w(cell,w);if(show){$ds(cell.div);cell.div.style.padding='2px';}
else{$dh(cell.div);cell.div.style.padding='0px';}}}
break;}}}
_f.Grid.prototype.append_row=function(idx,docname){if(!idx)idx=this.tab.rows.length;var row=this.tab.insertRow(idx);row.docname=docname;if(idx%2)var odd=true;else var odd=false;var me=this;for(var i=0;i<this.head_row.cells.length;i++){var cell=row.insertCell(i);var hc=this.head_row.cells[i];$w(cell,hc.style.width);cell.row=row;cell.grid=this;cell.className='grid_cell';cell.div=$a(cell,'div','grid_cell_div');if(this.row_height){cell.div.style.height=this.row_height;}
_f.Grid.prototype.insert_column=function(doctype,fieldname,fieldtype,label,width,options,perm,reqd){var idx=this.head_row.cells.length;if(!width)width='140px';if((width+'').slice(-2)!='px'){width=width+'px';}
msgprint(width);var col=this.head_row.insertCell(idx);col.doctype=doctype;col.fieldname=fieldname;col.fieldtype=fieldtype;col.innerHTML='<div>'+label+'</div>';col.label=label;if(reqd)
col.childNodes[0].style.color="#D22";col.style.width=width;col.options=options;col.perm=perm;this.col_idx_by_name[fieldname]=idx;}
_f.Grid.prototype.reset_table_width=function(){var w=0;for(var i=0,len=this.head_row.cells.length;i<len;i++){w+=cint(this.head_row.cells[i].style.width);}
this.head_tab.style.width=w+'px';this.tab.style.width=w+'px';}
_f.Grid.prototype.set_column_disp=function(fieldname,show){var cidx=this.col_idx_by_name[fieldname];if(!cidx){msgprint('Trying to hide unknown column: '+fieldname);return;}
var disp=show?'table-cell':'none';this.head_row.cells[cidx].style.display=disp;for(var i=0,len=this.tab.rows.length;i<len;i++){var cell=this.tab.rows[i].cells[cidx];cell.style.display=disp;}
this.reset_table_width();}
_f.Grid.prototype.append_row=function(idx,docname){if(!idx)idx=this.tab.rows.length;var row=this.tab.insertRow(idx);row.docname=docname;if(idx%2)var odd=true;else var odd=false;var me=this;for(var i=0;i<this.head_row.cells.length;i++){var cell=row.insertCell(i);var hc=this.head_row.cells[i];cell.style.width=hc.style.width;cell.row=row;cell.grid=this;cell.className='grid_cell';cell.div=$a(cell,'div','grid_cell_div');if(this.row_height){cell.div.style.height=this.row_height;}
cell.div.cell=cell;cell.div.onclick=function(e){me.cell_click(this.cell,e);}
if(odd){$bg(cell,this.alt_row_bg);cell.is_odd=1;cell.div.style.border='2px solid '+this.alt_row_bg;}else $bg(cell,'#FFF');if(!hc.fieldname)cell.div.style.cursor='default';}
this.set_ht();return row;}
@ -299,7 +302,7 @@ return;if(!_f.cur_grid_cell)return;if(_f.cur_grid_cell.grid!=this)return;var ri=
_f.Grid.prototype.make_template=function(hc){hc.template=make_field(get_field(hc.doctype,hc.fieldname),hc.doctype,'',this.field.frm,true);hc.template.grid=this;}
_f.Grid.prototype.append_rows=function(n){for(var i=0;i<n;i++)this.append_row();}
_f.Grid.prototype.truncate_rows=function(n){for(var i=0;i<n;i++)this.tab.deleteRow(this.tab.rows.length-1);}
_f.Grid.prototype.set_data=function(data){this.cell_deselect();this.tab.style.width=this.total_width+'px';this.head_tab.style.width=this.total_width+'px';if(data.length>this.tab.rows.length)
_f.Grid.prototype.set_data=function(data){this.cell_deselect();this.reset_table_width();if(data.length>this.tab.rows.length)
this.append_rows(data.length-this.tab.rows.length);if(data.length<this.tab.rows.length)
this.truncate_rows(this.tab.rows.length-data.length);for(var ridx=0;ridx<data.length;ridx++){this.refresh_row(ridx,data[ridx]);}
if(this.can_add_rows&&this.make_newrow){this.make_newrow();}
@ -315,8 +318,7 @@ $td(t,0,0).isactive=1;$td(t,0,1).isactive=1;l.isactive=1;div.isactive=1;img.isac
_f.FormGrid.prototype.make_buttons=function(){var me=this;this.tbar_btns={};this.tbar_btns['Del']=this.make_tbar_link($td(this.tbar_tab,0,0),'Del',function(){me.delete_row();},'ic-round_minus');this.tbar_btns['Ins']=this.make_tbar_link($td(this.tbar_tab,0,1),'Ins',function(){me.insert_row();},'ic-round_plus');this.tbar_btns['Up']=this.make_tbar_link($td(this.tbar_tab,0,2),'Up',function(){me.move_row(true);},'ic-arrow_top');this.tbar_btns['Dn']=this.make_tbar_link($td(this.tbar_tab,0,3),'Dn',function(){me.move_row(false);},'ic-arrow_bottom');for(var i in this.btns)
this.btns[i].isactive=true;}
_f.FormGrid.prototype.make_columns=function(){var gl=fields_list[this.field.df.options];if(!gl){alert('Table details not found "'+this.field.df.options+'"');}
gl.sort(function(a,b){return a.idx-b.idx});var p=this.field.perm;for(var i=0;i<gl.length;i++){if(p[this.field.df.permlevel]&&p[this.field.df.permlevel][READ]&&(!gl[i].hidden)){this.insert_column(this.field.df.options,gl[i].fieldname,gl[i].fieldtype,gl[i].label,gl[i].width,gl[i].options,this.field.perm,gl[i].reqd);}}
for(var i=0;i<this.head_row.cells.length;i++){var c=this.head_row.cells[i];$w(c,cint(cint(c.style.width)/this.total_width*100)+'%')}}
gl.sort(function(a,b){return a.idx-b.idx});var p=this.field.perm;for(var i=0;i<gl.length;i++){if(p[this.field.df.permlevel]&&p[this.field.df.permlevel][READ]&&(!gl[i].hidden)){this.insert_column(this.field.df.options,gl[i].fieldname,gl[i].fieldtype,gl[i].label,gl[i].width,gl[i].options,this.field.perm,gl[i].reqd);}}}
_f.FormGrid.prototype.set_column_label=function(fieldname,label){for(var i=0;i<this.head_row.cells.length;i++){var c=this.head_row.cells[i];if(c.fieldname==fieldname){c.innerHTML='<div class="grid_head_div">'+label+'</div>';c.cur_label=label;break;}}}
_f.FormGrid.prototype.refresh=function(){var docset=getchildren(this.doctype,this.field.frm.docname,this.field.df.fieldname,this.field.frm.doctype);var data=[];for(var i=0;i<docset.length;i++){locals[this.doctype][docset[i].name].idx=i+1;data[data.length]=docset[i].name;}
this.set_data(data);}
@ -495,4 +497,4 @@ wn.widgets.form.file_upload_done=function(doctype,docname,fileid,filename,at_id,
fl.push(filename+','+fileid)
doc.file_list=fl.join('\n');}
else
doc.file_list=filename+','+fileid;doc.modified=new_timestamp;var frm=frms[doctype];frm.attachments.dialog.hide();msgprint('File Uploaded Sucessfully.');frm.refresh();}
doc.file_list=filename+','+fileid;doc.modified=new_timestamp;var frm=frms[doctype];frm.attachments.dialog.hide();msgprint('File Uploaded Sucessfully.');frm.refresh();}

View file

@ -71,12 +71,6 @@ _f.FormGrid.prototype.make_columns = function() {
this.insert_column(this.field.df.options, gl[i].fieldname, gl[i].fieldtype, gl[i].label, gl[i].width, gl[i].options, this.field.perm, gl[i].reqd);
}
}
// set width as percent
for(var i=0;i<this.head_row.cells.length; i++) {
var c = this.head_row.cells[i];
$w(c,cint(cint(c.style.width) / this.total_width * 100)+'%')
}
}
_f.FormGrid.prototype.set_column_label = function(fieldname, label) {

View file

@ -5,6 +5,7 @@ _f.Grid = function(parent) { }
_f.Grid.prototype.init = function(parent, row_height) {
this.col_idx_by_name = {}
this.alt_row_bg = '#F2F2FF';
this.row_height = row_height;
@ -14,11 +15,10 @@ _f.Grid.prototype.init = function(parent, row_height) {
// Sr No
this.insert_column('', '', 'Int', 'Sr', '50px', '', [1,0,0]);
this.total_width = 50;
if(this.oninit)this.oninit();
keypress_observers.push(this)
keypress_observers.push(this);
}
_f.Grid.prototype.make_ui = function(parent) {
@ -62,8 +62,11 @@ _f.Grid.prototype.hide = function() {
_f.Grid.prototype.insert_column = function(doctype, fieldname, fieldtype, label, width, options, perm, reqd) {
var idx = this.head_row.cells.length;
if(!width)width = '100px';
if(!width)width = '140px';
if((width+'').slice(-2)!='px') {
width= width + 'px';
}
msgprint(width);
var col = this.head_row.insertCell(idx);
col.doctype = doctype; // for report (fields may be from diff doctypes)
@ -74,43 +77,42 @@ _f.Grid.prototype.insert_column = function(doctype, fieldname, fieldtype, label,
if(reqd)
col.childNodes[0].style.color = "#D22";
this.total_width += cint(width);
$w(col, width);
col.orig_width = col.style.width;
col.style.width = width;
col.options = options;
col.perm = perm;
this.col_idx_by_name[fieldname] = idx;
}
_f.Grid.prototype.set_column_disp = function(label, show) {
//alert(label);
for(var i=0; i<this.head_row.cells.length; i++) {
var c = this.head_row.cells[i];
if(label && (c.label == label || c.cur_label == label)) {
//alert(c.orig_width);
if(show) {
var w = c.orig_width;
this.head_tab.style.width = (this.total_width + cint(w)) + 'px';
this.tab.style.width = (this.total_width + cint(w)) + 'px';
} else {
var w = '0px';
this.head_tab.style.width = (this.total_width - cint(c.orig_width)) + 'px';
this.tab.style.width = (this.total_width - cint(c.orig_width)) + 'px';
}
$w(c, w);
// change width of table too
if(this.tab) {
for(var j=0; j<this.tab.rows.length; j++) {
var cell = this.tab.rows[j].cells[i];
$w(cell, w);
if(show) { $ds(cell.div); cell.div.style.padding = '2px'; }
else { $dh(cell.div); cell.div.style.padding = '0px'; }
}
}
break;
}
_f.Grid.prototype.reset_table_width = function() {
var w = 0;
for(var i=0, len=this.head_row.cells.length; i<len; i++) {
w += cint(this.head_row.cells[i].style.width);
}
this.head_tab.style.width = w + 'px';
this.tab.style.width = w + 'px';
}
_f.Grid.prototype.set_column_disp = function(fieldname, show) {
var cidx = this.col_idx_by_name[fieldname];
if(!cidx) {
msgprint('Trying to hide unknown column: ' + fieldname);
return;
}
var disp = show ? 'table-cell' : 'none';
// head
this.head_row.cells[cidx].style.display = disp;
// body
for(var i=0, len=this.tab.rows.length; i<len; i++) {
var cell = this.tab.rows[i].cells[cidx];
cell.style.display = disp;
}
// reset table width
this.reset_table_width();
}
_f.Grid.prototype.append_row = function(idx, docname) {
@ -125,7 +127,7 @@ _f.Grid.prototype.append_row = function(idx, docname) {
for(var i=0; i<this.head_row.cells.length; i++){
var cell = row.insertCell(i);
var hc = this.head_row.cells[i];
$w(cell, hc.style.width);
cell.style.width = hc.style.width;
cell.row = row;
cell.grid = this;
cell.className = 'grid_cell';
@ -394,8 +396,7 @@ _f.Grid.prototype.set_data = function(data) {
this.cell_deselect();
// set table widths
this.tab.style.width = this.total_width + 'px';
this.head_tab.style.width = this.total_width + 'px';
this.reset_table_width();
// append if reqd
if(data.length > this.tab.rows.length)