Merge branch 'handlerupdate' of github.com:webnotes/wnframework into handlerupdate

This commit is contained in:
Rushabh Mehta 2012-03-22 07:08:36 +01:00
commit b660fc949e
8 changed files with 121 additions and 146 deletions

View file

@ -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
View file

@ -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

View file

@ -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);
},

View file

@ -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() {

View file

@ -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);')
}

View file

@ -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);
}
});

View file

@ -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);
}
});
})

View file

@ -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) {