added ability to show / hide columns
This commit is contained in:
parent
01149f2194
commit
89abceaa0d
4 changed files with 57 additions and 57 deletions
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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();}
|
||||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue