diff --git a/css/legacy/body.css b/css/legacy/body.css
index 4cb206ed0c..a775b641a0 100644
--- a/css/legacy/body.css
+++ b/css/legacy/body.css
@@ -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;
diff --git a/js/core.min.js b/js/core.min.js
index 17df0d111b..f4e37319f4 100644
--- a/js/core.min.js
+++ b/js/core.min.js
@@ -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=$('
').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=$('').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('%(dn)s (%(dt)s)
',{dt:route[1],dn:v}));}});}else{if(me.page!=p){open_links.push(repl('%(label)s
',{route:p._route,label:p.label}));}}});return open_links;},select_opened_page:function(){var me=this;this.opened_selector=$('').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 \
(%(count)s)\
',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('%(name)s',data));}
@@ -277,7 +276,10 @@ $(parent).html(repl('\
',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(' | ',v);});var tr=$(row).html('').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){$(''
+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(' | ',v);});var tr=$(row).html('').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){$(''
+strip(t)+'').click(function(){me.doclistview.set_filter('_user_tags',$(this).text())}).appendTo(parent);}});}}})
/*
* lib/js/wn/views/pageview.js
diff --git a/js/legacy/utils/datetime.js b/js/legacy/utils/datetime.js
index f35ac84686..86c4c06efd 100644
--- a/js/legacy/utils/datetime.js
+++ b/js/legacy/utils/datetime.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);
},
diff --git a/js/legacy/widgets/form/grid.js b/js/legacy/widgets/form/grid.js
index 5f75c335bb..9522bfe350 100644
--- a/js/legacy/widgets/form/grid.js
+++ b/js/legacy/widgets/form/grid.js
@@ -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() {
diff --git a/js/wn/dom.js b/js/wn/dom.js
index efbcce2e49..33f73d00fb 100644
--- a/js/wn/dom.js
+++ b/js/wn/dom.js
@@ -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);')
+
+}
diff --git a/js/wn/tmp.js b/js/wn/tmp.js
index 78c75c8c51..139143480c 100644
--- a/js/wn/tmp.js
+++ b/js/wn/tmp.js
@@ -30,4 +30,78 @@ render_grid: function() {
.get(0), this.data,
this.columns, options);
-},
\ No newline at end of file
+},
+
+
+//////////
+
+
+ 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('%(dn)s (%(dt)s)
', {
+ dt: route[1],
+ dn: v
+ }));
+ }
+ });
+ } else {
+ if(me.page!=p) {
+ open_links.push(repl('%(label)s
', {
+ route: p._route,
+ label: p.label
+ }));
+ }
+ }
+ });
+ return open_links;
+ },
+
+ select_opened_page: function() {
+ var me = this;
+ // side image with popover
+ this.opened_selector = $('')
+ .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);
+ }
+});
\ No newline at end of file
diff --git a/js/wn/views/container.js b/js/wn/views/container.js
index 753dfd51e3..8a01407af1 100644
--- a/js/wn/views/container.js
+++ b/js/wn/views/container.js
@@ -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 = $('')
- .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('%(dn)s (%(dt)s)
', {
- dt: route[1],
- dn: v
- }));
- }
- });
- } else {
- if(me.page!=p) {
- open_links.push(repl('%(label)s
', {
- route: p._route,
- label: p.label
- }));
- }
- }
- });
- return open_links;
- },
-
- select_opened_page: function() {
- var me = this;
- // side image with popover
- this.opened_selector = $('')
- .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);
}
-});
\ No newline at end of file
+})
diff --git a/js/wn/views/doclistview.js b/js/wn/views/doclistview.js
index 8c6a0bf052..0aa896a5f3 100644
--- a/js/wn/views/doclistview.js
+++ b/js/wn/views/doclistview.js
@@ -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) {