Merge branch 'handlerupdate' of github.com:webnotes/wnframework into handlerupdate
This commit is contained in:
commit
b660fc949e
8 changed files with 121 additions and 146 deletions
|
|
@ -110,7 +110,6 @@ div.comment { color: #444; }
|
|||
}
|
||||
|
||||
div#body_div {
|
||||
position: relative;
|
||||
display: none;
|
||||
padding-right: 7px;
|
||||
width: 900px;
|
||||
|
|
@ -121,12 +120,6 @@ div#body_div {
|
|||
.content {
|
||||
width: 900px;
|
||||
margin-bottom: 30px;
|
||||
position: absolute;
|
||||
-webkit-transition:all 0.5s ease-in-out;
|
||||
-moz-transition:all 0.5s ease-in-out;
|
||||
-o-transition:all 0.5s ease-in-out;
|
||||
-ms-transition:all 0.5s ease-in-out;
|
||||
transition:all 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
.background-fade-in {
|
||||
|
|
@ -136,25 +129,6 @@ div#body_div {
|
|||
transition: background 1s ease-in;
|
||||
}
|
||||
|
||||
/* selector for open pages */
|
||||
#opened-page-selector {
|
||||
width: 900px;
|
||||
height: 900px;
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
opacity: 0;
|
||||
background-color: #bdf;
|
||||
}
|
||||
|
||||
#opened-page-selector.active {
|
||||
opacity: 0.6;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.popover-container {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
footer {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
|
|
|
|||
20
js/core.min.js
vendored
20
js/core.min.js
vendored
|
|
@ -45,6 +45,9 @@ c.className=className;}
|
|||
if(cs)wn.dom.css(c,cs);if(innerHTML)c.innerHTML=innerHTML;if(onclick)c.onclick=onclick;return c;}
|
||||
wn.dom.css=function(ele,s){if(ele&&s){for(var i in s)ele.style[i]=s[i];};return ele;}
|
||||
wn.get_cookie=function(c){var t=""+document.cookie;var ind=t.indexOf(c);if(ind==-1||c=="")return"";var ind1=t.indexOf(';',ind);if(ind1==-1)ind1=t.length;return unescape(t.substring(ind+c.length+1,ind1));}
|
||||
wn.dom.set_box_shadow=function(ele,spread){$(ele).css('-moz-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')
|
||||
$(ele).css('-webkit-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')
|
||||
$(ele).css('-box-shadow','0px 0px '+spread+'px rgba(0,0,0,0.3);')}
|
||||
/*
|
||||
* lib/js/wn/model.js
|
||||
*/
|
||||
|
|
@ -199,16 +202,12 @@ return[me.$w.find('.fieldname_select option:selected').attr('table'),me.field.df
|
|||
/*
|
||||
* lib/js/wn/views/container.js
|
||||
*/
|
||||
wn.provide('wn.pages');wn.provide('wn.views');wn.views.Container=Class.extend({init:function(){this.container=$('#body_div').get(0);this.page=null;this.pagewidth=$('#body_div').width();this.opened=[];this.pagemargin=50;},add_page:function(label,onshow,onhide){var page=$('<div class="content"></div>').css('left',this.pagewidth+this.pagemargin+'px').appendTo(this.container).get(0);if(onshow)
|
||||
wn.provide('wn.pages');wn.provide('wn.views');wn.views.Container=Class.extend({init:function(){this.container=$('#body_div').get(0);this.page=null;this.pagewidth=$('#body_div').width();this.pagemargin=50;},add_page:function(label,onshow,onhide){var page=$('<div class="content"></div>').appendTo(this.container).get(0);if(onshow)
|
||||
$(page).bind('show',onshow);if(onshow)
|
||||
$(page).bind('hide',onhide);page.label=label;wn.pages[label]=page;return page;},change_to:function(label){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.move_left(page);$(this.page).trigger('hide');this.opened.push(this.page);if(!this.opened_selector)
|
||||
this.select_opened_page();}
|
||||
this.page=page;$(this.page).css('left','0px').css('top','0px');$(this.page).trigger('show');this.page._route=window.location.hash;document.title=this.page.label;this.stack();return this.page;},move_left:function(page){$(page).css('left',(-1*(this.pagewidth+this.pagemargin))+'px');},stack:function(){var me=this;var l=-1*(this.pagewidth+this.pagemargin);var i=0;this.opened=$.map(this.opened,function(p,i){if(p!=me.page)return p;});var pcontent=[];$.map(this.opened,function(p,i){$(p).css('left',l-(i*2)+'px').css('top',(i*2)+'px').css('z-index',i);});},build_open_links:function(p){var open_links=[];var me=this;$.each(me.opened.concat([me.page]),function(i,p){var route=wn.get_route(p._route);if(route[0]=='Form'){var openlist=keys(wn.views.formview[route[1]].frm.opendocs).sort();$.each(openlist,function(i,v){if(me.page!=p||(me.page==p&&me.page.frm.docname!=v)){open_links.push(repl('<p><a href="#!Form/%(dt)s/%(dn)s">%(dn)s (%(dt)s)</a></p>',{dt:route[1],dn:v}));}});}else{if(me.page!=p){open_links.push(repl('<p><a href="%(route)s">%(label)s</a></p>',{route:p._route,label:p.label}));}}});return open_links;},select_opened_page:function(){var me=this;this.opened_selector=$('<div id="opened-page-selector">\
|
||||
<div class="popover-container"></div></div>').appendTo(this.container).hover(function(){$(this).toggleClass('active')}).click(function(){$('#opened-page-selector .popover-container').attr('data-content',me.build_open_links().reverse().join(''));$(this).find('.popover-container').popover('show');me.popoveropen=true;return false;})
|
||||
this.opened_selector.find('.popover-container').popover({title:"Open Pages",trigger:'manual',delay:0});$(document).click(function(){if(me.popoveropen){$('#opened-page-selector .popover-container').popover('hide');me.popoveropen=false;}})
|
||||
this.move_left(this.opened_selector);},show:function(label){return this.change_to(label);}});
|
||||
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;}})
|
||||
/*
|
||||
* lib/js/wn/views/doclistview.js
|
||||
*/
|
||||
|
|
@ -260,7 +259,7 @@ args.label=v[0];args.width=flt(v[1])/max*100;args.count=v[1];args.field=field;$i
|
|||
%(label)s</a> \
|
||||
(%(count)s)</div>\
|
||||
</div>',args));this.setup_stat_item_click($item);return $item;},setup_stat_item_click:function($item){var me=this;$item.find('a').click(function(){var fieldname=$(this).attr('data-field');var label=$(this).attr('data-label');me.set_filter(fieldname,label);return false;});},set_filter:function(fieldname,label){var filter=this.filter_list.get_filter(fieldname);if(filter){var v=filter.field.get_value();if(v.indexOf(label)!=-1){return false;}else{if(fieldname=='_user_tags'){this.filter_list.add_filter(fieldname,'like','%'+label);}else{filter.set_values(fieldname,'in',v+', '+label);}}}else{if(fieldname=='_user_tags'){this.filter_list.add_filter(fieldname,'like','%'+label);}else{this.filter_list.add_filter(fieldname,'=',label);}}
|
||||
this.run();}});wn.views.ListView=Class.extend({init:function(doclistview){this.doclistview=doclistview;this.doctype=doclistview.doctype;var t="`tab"+this.doctype+"`.";this.fields=[t+'name',t+'owner',t+'docstatus',t+'_user_tags',t+'modified'];this.stats=['_user_tags'];if(!this.doclistview.can_delete){this.columns=$.map(this.columns,function(v,i){if(v.content!='check')return v});}},columns:[{width:'5%',content:'check'},{width:'5%',content:'avatar'},{width:'5%',content:'docstatus',css:{"text-align":"center"}},{width:'30%',content:'name'},{width:'40%',content:'tags',css:{'color':'#aaa'}},{width:'10%',content:'modified',css:{'text-align':'right','color':'#777'}}],render_column:function(data,parent,opts){var me=this;if(opts.css){$.each(opts.css,function(k,v){$(parent).css(k,v)});}
|
||||
this.run();}});wn.views.ListView=Class.extend({init:function(doclistview){this.doclistview=doclistview;this.doctype=doclistview.doctype;var t="`tab"+this.doctype+"`.";this.fields=[t+'name',t+'owner',t+'docstatus',t+'_user_tags',t+'modified'];this.stats=['_user_tags'];if(!this.doclistview.can_delete){this.columns=$.map(this.columns,function(v,i){if(v.content!='check')return v});}},columns:[{width:'3%',content:'check'},{width:'4%',content:'avatar'},{width:'3%',content:'docstatus',css:{"text-align":"center"}},{width:'35%',content:'name'},{width:'40%',content:'tags',css:{'color':'#aaa'}},{width:'15%',content:'modified',css:{'text-align':'right','color':'#777'}}],render_column:function(data,parent,opts){var me=this;if(opts.css){$.each(opts.css,function(k,v){$(parent).css(k,v)});}
|
||||
if(opts.content.indexOf&&opts.content.indexOf('+')!=-1){$.map(opts.content.split('+'),function(v){me.render_column(data,parent,{content:v});});return;}
|
||||
if(typeof opts.content=='function'){opts.content(parent,data);}
|
||||
else if(opts.content=='name'){$(parent).html(repl('<a href="#!Form/%(doctype)s/%(name)s">%(name)s</a>',data));}
|
||||
|
|
@ -277,7 +276,10 @@ $(parent).html(repl('<span class="bar-outer" style="width: 30px; float: right" \
|
|||
<span class="bar-inner %(fully_delivered)s" \
|
||||
style="width: %(percent)s%;"></span>\
|
||||
</span>',args));}
|
||||
else if(data[opts.content]){$(parent).append(' '+data[opts.content]);}},render:function(row,data){var me=this;this.prepare_data(data);rowhtml='';$.each(this.columns,function(i,v){rowhtml+=repl('<td style="width: %(width)s"></td>',v);});var tr=$(row).html('<table><tbody><tr>'+rowhtml+'</tr></tbody></table>').find('tr').get(0);$.each(this.columns,function(i,v){me.render_column(data,tr.cells[i],v);});},prepare_data:function(data){data.fullname=wn.user_info(data.owner).fullname;data.avatar=wn.user_info(data.owner).image;data.when=dateutil.str_to_user(data.modified).split(' ')[0];if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';data.docstatus_title='Editable';}else if(data.docstatus==1){data.docstatus_icon='icon-lock';data.docstatus_title='Submitted';}else if(data.docstatus==2){data.docstatus_icon='icon-remove';data.docstatus_title='Cancelled';}},add_user_tags:function(parent,data){var me=this;if(data._user_tags){$.each(data._user_tags.split(','),function(i,t){if(t){$('<span class="label label-info" style="cursor: pointer">'
|
||||
else if(data[opts.content]){$(parent).append(' '+data[opts.content]);}},render:function(row,data){var me=this;this.prepare_data(data);rowhtml='';$.each(this.columns,function(i,v){rowhtml+=repl('<td style="width: %(width)s"></td>',v);});var tr=$(row).html('<table><tbody><tr>'+rowhtml+'</tr></tbody></table>').find('tr').get(0);$.each(this.columns,function(i,v){me.render_column(data,tr.cells[i],v);});},prepare_data:function(data){data.fullname=wn.user_info(data.owner).fullname;data.avatar=wn.user_info(data.owner).image;data.when=dateutil.str_to_user(data.modified).split(' ')[0];var diff=dateutil.get_diff(dateutil.get_today(),data.modified.split(' ')[0]);if(diff==0){data.when='Today'}
|
||||
if(diff==-1){data.when='Yesterday'}
|
||||
if(diff==-2){data.when='2 days ago'}
|
||||
if(data.docstatus==0||data.docstatus==null){data.docstatus_icon='icon-pencil';data.docstatus_title='Editable';}else if(data.docstatus==1){data.docstatus_icon='icon-lock';data.docstatus_title='Submitted';}else if(data.docstatus==2){data.docstatus_icon='icon-remove';data.docstatus_title='Cancelled';}},add_user_tags:function(parent,data){var me=this;if(data._user_tags){$.each(data._user_tags.split(','),function(i,t){if(t){$('<span class="label label-info" style="cursor: pointer">'
|
||||
+strip(t)+'</span>').click(function(){me.doclistview.set_filter('_user_tags',$(this).text())}).appendTo(parent);}});}}})
|
||||
/*
|
||||
* lib/js/wn/views/pageview.js
|
||||
|
|
|
|||
|
|
@ -65,6 +65,8 @@ wn.datetime = {
|
|||
},
|
||||
|
||||
get_diff: function(d1, d2) {
|
||||
if(typeof d1=='string') d1 = dateutil.str_to_obj(d1);
|
||||
if(typeof d2=='string') d2 = dateutil.str_to_obj(d2);
|
||||
return ((d1-d2) / 86400000);
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -263,6 +263,8 @@ $(document).bind('click', function(e) {
|
|||
}
|
||||
|
||||
var is_target_input = function() {
|
||||
if(e.target.tagName.toLowerCase()=='option') return true;
|
||||
|
||||
return $(e.target).parents().get().indexOf(_f.cur_grid_cell)!=-1;
|
||||
}
|
||||
|
||||
|
|
@ -270,8 +272,9 @@ $(document).bind('click', function(e) {
|
|||
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() {
|
||||
|
|
|
|||
|
|
@ -81,4 +81,11 @@ wn.get_cookie = function(c) {
|
|||
var ind1=t.indexOf(';',ind);
|
||||
if (ind1==-1) ind1=t.length;
|
||||
return unescape(t.substring(ind+c.length+1,ind1));
|
||||
}
|
||||
}
|
||||
|
||||
wn.dom.set_box_shadow = function(ele, spread) {
|
||||
$(ele).css('-moz-box-shadow', '0px 0px '+ spread +'px rgba(0,0,0,0.3);')
|
||||
$(ele).css('-webkit-box-shadow', '0px 0px '+ spread +'px rgba(0,0,0,0.3);')
|
||||
$(ele).css('-box-shadow', '0px 0px '+ spread +'px rgba(0,0,0,0.3);')
|
||||
|
||||
}
|
||||
|
|
|
|||
76
js/wn/tmp.js
76
js/wn/tmp.js
|
|
@ -30,4 +30,78 @@ render_grid: function() {
|
|||
.get(0), this.data,
|
||||
this.columns, options);
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
//////////
|
||||
|
||||
|
||||
build_open_links: function(p) {
|
||||
var open_links = [];
|
||||
// make popover content
|
||||
var me = this;
|
||||
|
||||
$.each(me.opened.concat([me.page]), function(i, p) {
|
||||
var route = wn.get_route(p._route);
|
||||
|
||||
if(route[0]=='Form') {
|
||||
var openlist = keys(wn.views.formview[route[1]].frm.opendocs).sort();
|
||||
$.each(openlist, function(i,v) {
|
||||
if(me.page!=p || (me.page==p && me.page.frm.docname!=v)) {
|
||||
open_links.push(repl('<p><a href="#!Form/%(dt)s/%(dn)s">%(dn)s (%(dt)s)</a></p>', {
|
||||
dt: route[1],
|
||||
dn: v
|
||||
}));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if(me.page!=p) {
|
||||
open_links.push(repl('<p><a href="%(route)s">%(label)s</a></p>', {
|
||||
route: p._route,
|
||||
label: p.label
|
||||
}));
|
||||
}
|
||||
}
|
||||
});
|
||||
return open_links;
|
||||
},
|
||||
|
||||
select_opened_page: function() {
|
||||
var me = this;
|
||||
// side image with popover
|
||||
this.opened_selector = $('<div id="opened-page-selector">\
|
||||
<div class="popover-container"></div></div>')
|
||||
.appendTo(this.container)
|
||||
.hover(function() {
|
||||
$(this).toggleClass('active')
|
||||
}).click(function() {
|
||||
// build links
|
||||
$('#opened-page-selector .popover-container')
|
||||
.attr('data-content', me.build_open_links().reverse().join(''));
|
||||
|
||||
|
||||
$(this).find('.popover-container').popover('show');
|
||||
me.popoveropen = true;
|
||||
return false;
|
||||
})
|
||||
|
||||
this.opened_selector.find('.popover-container').popover({
|
||||
title: "Open Pages",
|
||||
trigger: 'manual',
|
||||
delay: 0
|
||||
});
|
||||
|
||||
$(document).click(function() {
|
||||
|
||||
if(me.popoveropen) {
|
||||
$('#opened-page-selector .popover-container').popover('hide');
|
||||
me.popoveropen = false;
|
||||
}
|
||||
})
|
||||
|
||||
this.move_left(this.opened_selector);
|
||||
},
|
||||
show: function(label) {
|
||||
return this.change_to(label);
|
||||
}
|
||||
});
|
||||
|
|
@ -7,12 +7,10 @@ wn.views.Container = Class.extend({
|
|||
this.container = $('#body_div').get(0);
|
||||
this.page = null; // current page
|
||||
this.pagewidth = $('#body_div').width();
|
||||
this.opened = [];
|
||||
this.pagemargin = 50;
|
||||
},
|
||||
add_page: function(label, onshow, onhide) {
|
||||
var page = $('<div class="content"></div>')
|
||||
.css('left', this.pagewidth + this.pagemargin + 'px')
|
||||
.appendTo(this.container).get(0);
|
||||
if(onshow)
|
||||
$(page).bind('show', onshow);
|
||||
|
|
@ -38,114 +36,17 @@ wn.views.Container = Class.extend({
|
|||
|
||||
// hide current
|
||||
if(this.page) {
|
||||
this.move_left(page);
|
||||
$(this.page).toggle(false);
|
||||
$(this.page).trigger('hide');
|
||||
this.opened.push(this.page);
|
||||
if(!this.opened_selector)
|
||||
this.select_opened_page();
|
||||
}
|
||||
|
||||
// show new
|
||||
this.page = page;
|
||||
$(this.page).css('left', '0px').css('top', '0px');
|
||||
$(this.page).fadeIn();
|
||||
$(this.page).trigger('show');
|
||||
this.page._route = window.location.hash;
|
||||
document.title = this.page.label;
|
||||
|
||||
// remove from opened
|
||||
this.stack();
|
||||
|
||||
|
||||
return this.page;
|
||||
},
|
||||
move_left: function(page) {
|
||||
$(page).css('left', (-1 * (this.pagewidth + this.pagemargin)) + 'px');
|
||||
},
|
||||
stack: function() {
|
||||
var me = this;
|
||||
var l = -1 * (this.pagewidth + this.pagemargin);
|
||||
var i = 0;
|
||||
|
||||
// filter out current open
|
||||
this.opened = $.map(this.opened,
|
||||
function(p, i) {
|
||||
if(p!=me.page) return p;
|
||||
});
|
||||
|
||||
// display as as stack
|
||||
var pcontent = [];
|
||||
$.map(this.opened, function(p, i) {
|
||||
$(p).css('left', l-(i*2) + 'px')
|
||||
.css('top', (i*2) + 'px')
|
||||
.css('z-index', i);
|
||||
});
|
||||
},
|
||||
|
||||
build_open_links: function(p) {
|
||||
var open_links = [];
|
||||
// make popover content
|
||||
var me = this;
|
||||
|
||||
$.each(me.opened.concat([me.page]), function(i, p) {
|
||||
var route = wn.get_route(p._route);
|
||||
|
||||
if(route[0]=='Form') {
|
||||
var openlist = keys(wn.views.formview[route[1]].frm.opendocs).sort();
|
||||
$.each(openlist, function(i,v) {
|
||||
if(me.page!=p || (me.page==p && me.page.frm.docname!=v)) {
|
||||
open_links.push(repl('<p><a href="#!Form/%(dt)s/%(dn)s">%(dn)s (%(dt)s)</a></p>', {
|
||||
dt: route[1],
|
||||
dn: v
|
||||
}));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if(me.page!=p) {
|
||||
open_links.push(repl('<p><a href="%(route)s">%(label)s</a></p>', {
|
||||
route: p._route,
|
||||
label: p.label
|
||||
}));
|
||||
}
|
||||
}
|
||||
});
|
||||
return open_links;
|
||||
},
|
||||
|
||||
select_opened_page: function() {
|
||||
var me = this;
|
||||
// side image with popover
|
||||
this.opened_selector = $('<div id="opened-page-selector">\
|
||||
<div class="popover-container"></div></div>')
|
||||
.appendTo(this.container)
|
||||
.hover(function() {
|
||||
$(this).toggleClass('active')
|
||||
}).click(function() {
|
||||
// build links
|
||||
$('#opened-page-selector .popover-container')
|
||||
.attr('data-content', me.build_open_links().reverse().join(''));
|
||||
|
||||
|
||||
$(this).find('.popover-container').popover('show');
|
||||
me.popoveropen = true;
|
||||
return false;
|
||||
})
|
||||
|
||||
this.opened_selector.find('.popover-container').popover({
|
||||
title: "Open Pages",
|
||||
trigger: 'manual',
|
||||
delay: 0
|
||||
});
|
||||
|
||||
$(document).click(function() {
|
||||
|
||||
if(me.popoveropen) {
|
||||
$('#opened-page-selector .popover-container').popover('hide');
|
||||
me.popoveropen = false;
|
||||
}
|
||||
})
|
||||
|
||||
this.move_left(this.opened_selector);
|
||||
},
|
||||
show: function(label) {
|
||||
return this.change_to(label);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
|
|
|||
|
|
@ -307,12 +307,12 @@ wn.views.ListView = Class.extend({
|
|||
}
|
||||
},
|
||||
columns: [
|
||||
{width: '5%', content:'check'},
|
||||
{width: '5%', content:'avatar'},
|
||||
{width: '5%', content:'docstatus', css: {"text-align": "center"}},
|
||||
{width: '30%', content:'name'},
|
||||
{width: '3%', content:'check'},
|
||||
{width: '4%', content:'avatar'},
|
||||
{width: '3%', content:'docstatus', css: {"text-align": "center"}},
|
||||
{width: '35%', content:'name'},
|
||||
{width: '40%', content:'tags', css: {'color':'#aaa'}},
|
||||
{width: '10%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
|
||||
{width: '15%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
|
||||
],
|
||||
render_column: function(data, parent, opts) {
|
||||
var me = this;
|
||||
|
|
@ -392,7 +392,19 @@ wn.views.ListView = Class.extend({
|
|||
prepare_data: function(data) {
|
||||
data.fullname = wn.user_info(data.owner).fullname;
|
||||
data.avatar = wn.user_info(data.owner).image;
|
||||
|
||||
// when
|
||||
data.when = dateutil.str_to_user(data.modified).split(' ')[0];
|
||||
var diff = dateutil.get_diff(dateutil.get_today(), data.modified.split(' ')[0]);
|
||||
if(diff==0) {
|
||||
data.when = 'Today'
|
||||
}
|
||||
if(diff == -1) {
|
||||
data.when = 'Yesterday'
|
||||
}
|
||||
if(diff == -2) {
|
||||
data.when = '2 days ago'
|
||||
}
|
||||
|
||||
// docstatus
|
||||
if(data.docstatus==0 || data.docstatus==null) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue