form bugfix and otehr minor fixes
This commit is contained in:
parent
16fef73b86
commit
09efcee290
12 changed files with 358 additions and 329 deletions
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"default.css": [
|
||||
"body.css",
|
||||
"menus.css",
|
||||
"messages.css",
|
||||
"forms.css",
|
||||
"grid.css",
|
||||
"listing.css",
|
||||
"report.css",
|
||||
"calendar.css",
|
||||
"autosuggest.css",
|
||||
"dialog.css",
|
||||
"wntoolbar.css",
|
||||
"tabs.css",
|
||||
"bw-icons.css",
|
||||
"sidebar.css",
|
||||
"bootstrap-buttons.css"
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
/* User CSS */
|
||||
|
|
@ -1,4 +1,13 @@
|
|||
// find files changed since last version
|
||||
|
||||
if(!console) {
|
||||
var console = {
|
||||
log: function(txt) {
|
||||
errprint(txt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wn.versions.check();
|
||||
|
||||
/* overload links for ajax pages */
|
||||
|
|
|
|||
1
js/core.min.js
vendored
1
js/core.min.js
vendored
|
|
@ -90,4 +90,5 @@ throw new SyntaxError('JSON.parse');};}}());
|
|||
/*
|
||||
* lib/js/core.js
|
||||
*/
|
||||
if(!console){var console={log:function(txt){errprint(txt);}}}
|
||||
wn.versions.check();$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
|
||||
|
|
@ -75,12 +75,4 @@ var pscript = {};
|
|||
var validated = true;
|
||||
var validation_message = '';
|
||||
var tinymce_loaded = null;
|
||||
var cur_autosug = null;
|
||||
|
||||
if(!console) {
|
||||
var console = {
|
||||
log: function(txt) {
|
||||
errprint(txt);
|
||||
}
|
||||
}
|
||||
}
|
||||
var cur_autosug = null;
|
||||
|
|
@ -270,6 +270,10 @@ function loadscript(src, call_back) {
|
|||
|
||||
var doc_browser_page;
|
||||
function loaddocbrowser(dt, label, fields) {
|
||||
//wn.require('lib/js/wn/pages/doclistview.js');
|
||||
//wn.pages.doclistview.show(dt);
|
||||
//return;
|
||||
|
||||
wn.require('lib/js/legacy/webpage/docbrowser.js');
|
||||
dt = get_label_doctype(dt);
|
||||
if(!doc_browser_page)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ var def_ph_style = {
|
|||
wrapper: {marginBottom:'16px', backgroundColor:'#EEE'}
|
||||
,main_heading: { }
|
||||
,sub_heading: { marginBottom:'8px', color:'#555', display:'none' }
|
||||
,separator: { borderTop:'3px solid #444' } // show this when there is no toolbar
|
||||
,separator: { borderTop:'3px solid #777' } // show this when there is no toolbar
|
||||
,toolbar_area: { padding:'3px 0px', display:'none',borderBottom:'1px solid #AAA'}
|
||||
}
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ function PageHeader(parent, main_text, sub_text) {
|
|||
|
||||
// close btn
|
||||
$y($td(this.t1, 0, 1),{textAlign:'right', padding:'3px'});
|
||||
this.close_btn = $a($td(this.t1, 0, 1), 'span', 'close', {}, '×');
|
||||
this.close_btn = $a($td(this.t1, 0, 1), 'span', 'close', {}, '×');
|
||||
this.close_btn.onclick = function() { nav_obj.show_last_open(); };
|
||||
|
||||
if(main_text) this.main_head.innerHTML = main_text;
|
||||
|
|
|
|||
|
|
@ -99,6 +99,11 @@ _f.FormGrid.prototype.refresh = function() {
|
|||
data[data.length] = docset[i].name;
|
||||
}
|
||||
this.set_data(data);
|
||||
|
||||
// if form open, refresh form
|
||||
if(_f.frm_dialog && _f.frm_dialog.dialog.display && _f.frm_dialog.cur_frm) {
|
||||
_f.frm_dialog.cur_frm.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
_f.FormGrid.prototype.set_unsaved = function() {
|
||||
|
|
|
|||
|
|
@ -443,5 +443,4 @@ _f.Grid.prototype.refresh_row = function(ridx, docname) {
|
|||
for(var cidx=0; cidx<row.cells.length; cidx++) {
|
||||
this.set_cell_value(row.cells[cidx]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
301
js/wn/pages/doclistview-tmp.js
Normal file
301
js/wn/pages/doclistview-tmp.js
Normal file
|
|
@ -0,0 +1,301 @@
|
|||
wn.provide('wn.body');
|
||||
wn.provide('wn.list_views');
|
||||
|
||||
wn.body.ListPage = function(doctype) {
|
||||
wn.require('lib/css/body/list.css');
|
||||
wn.require('lib/js/wn/body/tags.js');
|
||||
wn.require('lib/js/wn/utils/datetime.js');
|
||||
|
||||
var me = this;
|
||||
$.extend(this, {
|
||||
make: function() {
|
||||
// page
|
||||
me.label = 'List/' + doctype;
|
||||
wn.require('lib/js/wn/body/page.js');
|
||||
me.page = new wn.body.Page(me.label, 1);
|
||||
me.page.update_history = function() {
|
||||
window.location.hash = 'List/' + encodeURIComponent(doctype);
|
||||
}
|
||||
var $w = $(me.page.wrapper);
|
||||
$w.append("<div></div><div></div>")
|
||||
me.page_head =
|
||||
new wn.body.PageHead($w.find('> div:eq(0)').get(0),
|
||||
wn.model.label_of(doctype) + ' List');
|
||||
|
||||
me.list =
|
||||
new wn.body.List(me, $w.find('> div:eq(1)').get(0), doctype);
|
||||
|
||||
me.make_sidebar();
|
||||
},
|
||||
|
||||
make_sidebar: function() {
|
||||
me.page.sidebar.style.marginTop = '13px';
|
||||
if(wn.profile.can_read.indexOf(doctype)!=-1) {
|
||||
new wn.ui.Button({
|
||||
parent: me.page.sidebar,
|
||||
css_class: 'blue-pill',
|
||||
label: '+ New ' + wn.model.label_of(doctype),
|
||||
style: {fontSize:'11px', margin: '13px', marginTop:'0px'},
|
||||
onclick: function() {
|
||||
wn.open('Form', doctype);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// sidebar
|
||||
wn.require('lib/js/wn/body/page_sidebar.js')
|
||||
me.sidebar = new wn.body.page_sidebar.Sidebar(me.page.sidebar, {
|
||||
sections: [
|
||||
{
|
||||
title: 'Top Tags',
|
||||
render: function(body) {
|
||||
new wn.body.tags.TagCloud(body, doctype, function(tag) {
|
||||
me.set_tag_filter(tag) });
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
},
|
||||
|
||||
// add a filter when a tag is clicked
|
||||
set_tag_filter: function(tag) {
|
||||
me.list.flist.set_filter_display();
|
||||
var l = tag.label;
|
||||
if(tag.fieldname=='_user_tags') l = '%' + tag.label
|
||||
me.list.flist.add_filter(tag.fieldname, 'like', l);
|
||||
me.list.refresh();
|
||||
}
|
||||
|
||||
});
|
||||
me.make();
|
||||
}
|
||||
|
||||
|
||||
// args (list name)
|
||||
wn.body.List = function(list_page, parent, doctype) {
|
||||
var me = this;
|
||||
me.start = 0;
|
||||
me.page_len = 20;
|
||||
|
||||
$.extend(this, {
|
||||
setup: function() {
|
||||
wn.require('lib/js/wn/model/list.js');
|
||||
|
||||
// doctype for rendering
|
||||
var dt = wn.model.get_doctype(doctype);
|
||||
|
||||
me.preloaded = wn.list.has(doctype);
|
||||
|
||||
// get the list
|
||||
var res = wn.list.get(doctype, null, me.start, me.page_len, 1);
|
||||
me.list = res.message || [];
|
||||
if(res.list_view_js) {
|
||||
eval('me.list_view_obj=' + res.list_view_js);
|
||||
}
|
||||
},
|
||||
|
||||
make: function() {
|
||||
// body
|
||||
me.make_body();
|
||||
me.make_filters();
|
||||
me.setup();
|
||||
me.render(me.list);
|
||||
if(me.preloaded)
|
||||
me.reload();
|
||||
},
|
||||
|
||||
make_body: function() {
|
||||
// new / refresh area
|
||||
me.toolbar_area = wn.dom.add(parent, 'div');
|
||||
|
||||
// list area
|
||||
me.list_area = wn.dom.add(parent, 'div');
|
||||
|
||||
// more btn
|
||||
me.more_btn_area = wn.dom.add(parent, 'div', 'more_btn_area');
|
||||
me.nothing_more = wn.dom.add(parent, 'div', 'nothing_more round');
|
||||
|
||||
},
|
||||
|
||||
make_filters: function() {
|
||||
me.filter_area = wn.dom.add(me.toolbar_area, 'div');
|
||||
wn.require('lib/js/wn/body/filter.js');
|
||||
me.flist = new wn.body.FilterList(me, me.filter_area, doctype);
|
||||
|
||||
},
|
||||
|
||||
reload: function() {
|
||||
list_page.page_head.set_status('Checking for updates...');
|
||||
wn.list.diff(doctype, (me.list.length ? me.list[0].modified : null),
|
||||
me.render_reload);
|
||||
},
|
||||
|
||||
render_reload: function(res) {
|
||||
me.list = res.new_list;
|
||||
me.list_area.innerHTML = ''
|
||||
|
||||
if(res.list_view_js) {
|
||||
eval('me.list_view_obj=' + res.list_view_js);
|
||||
}
|
||||
|
||||
me.render(me.list);
|
||||
|
||||
// update heading
|
||||
list_page.page_head.set_status('');
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
// get the list
|
||||
me.start = 0;
|
||||
me.list = wn.list.get(doctype,
|
||||
me.flist.get_filters(),
|
||||
me.start, me.page_len);
|
||||
me.render(me.list);
|
||||
},
|
||||
|
||||
extend: function() {
|
||||
me.start += me.page_len
|
||||
var add = wn.list.get(doctype, me.flist.get_filters(), me.start, me.page_len);
|
||||
me.list = me.list.concat(add);
|
||||
me.render(add);
|
||||
},
|
||||
|
||||
// render the list
|
||||
render: function(list) {
|
||||
if(me.start==0)
|
||||
me.list_area.innerHTML = '';
|
||||
|
||||
$.each(list, function(i, d) {
|
||||
d.doctype = doctype;
|
||||
if(!d.__deleted)
|
||||
new wn.body.ListItem(me, me.list_area, d);
|
||||
});
|
||||
|
||||
// show filters, they may be hidden later
|
||||
wn.dom.show(me.filter_area);
|
||||
|
||||
if(list.length >= me.page_len) {
|
||||
me.show_more_btn();
|
||||
} else {
|
||||
me.hide_more_btn();
|
||||
}
|
||||
},
|
||||
|
||||
show_more_btn: function() {
|
||||
if(!me.more_btn) {
|
||||
me.more_btn = new wn.ui.Button({
|
||||
parent: me.more_btn_area,
|
||||
label: 'Show more results',
|
||||
onclick: function() {
|
||||
me.extend();
|
||||
},
|
||||
style: {
|
||||
width: '200px',
|
||||
fontSize:'14px'
|
||||
}
|
||||
})
|
||||
}
|
||||
wn.dom.show(me.more_btn_area);
|
||||
wn.dom.hide(me.nothing_more);
|
||||
},
|
||||
|
||||
hide_more_btn: function() {
|
||||
wn.dom.hide(me.more_btn_area);
|
||||
wn.dom.show(me.nothing_more);
|
||||
if(me.list.length) {
|
||||
me.nothing_more.innerHTML = 'Thats it';
|
||||
} else {
|
||||
me.nothing_more.innerHTML = 'No matches :( Try again.';
|
||||
|
||||
if(!me.flist.get_filters().length) {
|
||||
wn.dom.hide(me.filter_area);
|
||||
|
||||
// new link
|
||||
if(wn.profile.can_create.indexOf(doctype)!=-1) {
|
||||
$(me.nothing_more).html('<div class="new_link">\
|
||||
<span class="link_type" onclick="wn.open(\'Form\', \'%(doctype)s\')">\
|
||||
Click here to create your first %(doctype_label)s\
|
||||
</span>\
|
||||
</div>'.repl({
|
||||
doctype:doctype,
|
||||
doctype_label: wn.model.label_of(doctype)
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
me.make();
|
||||
}
|
||||
|
||||
// title (link), owner, last update, delete / archive, tags
|
||||
wn.body.ListItem = function(list, parent, args) {
|
||||
var me = this;
|
||||
$.extend(this, {
|
||||
make: function() {
|
||||
me.wrapper = wn.dom.add(parent, 'div', 'list_item');
|
||||
me.wrapper.innerHTML = '<div>\
|
||||
<span class="pre_subject"></span>\
|
||||
<span class="link_type subject">%(label)s</span>\
|
||||
<span class="post_subject"></span>\
|
||||
<span class="wn-icon ic-round_minus delete_btn"></span>\
|
||||
<span class="user_info">%(owner)s %(timestamp)s</span>\
|
||||
</div>\
|
||||
<div class="list_view"></div>'.repl({
|
||||
label: args.label || args.name,
|
||||
owner: args.owner,
|
||||
timestamp: wn.utils.datetime.when(args.modified)
|
||||
});
|
||||
|
||||
$w = $(me.wrapper);
|
||||
// hide delete if no perms
|
||||
if(!(wn.model.get_doctype(args.doctype).get_perm()[0] || {}).cancel) {
|
||||
$w.find('.delete_btn').css('display','none');
|
||||
} else {
|
||||
$w.find('.delete_btn').click(function() {
|
||||
wn.require('lib/js/wn/ui/confirm.js');
|
||||
if(wn.ui.confirm('You sure you want to delete?', function() {
|
||||
wn.http.post({
|
||||
args: {
|
||||
cmd:'webnotes.widgets.menus.delete_doc',
|
||||
doctype:args.doctype,
|
||||
name:args.name
|
||||
}
|
||||
});
|
||||
$w.slideUp();
|
||||
}));
|
||||
})
|
||||
}
|
||||
|
||||
// open
|
||||
$w.find('.subject')
|
||||
.bind('click', function() {
|
||||
wn.open('Form', args.doctype, args.name);
|
||||
});
|
||||
|
||||
// render body
|
||||
me.render_body($w);
|
||||
},
|
||||
|
||||
render_body: function($w) {
|
||||
var lv = list.list_view_obj
|
||||
if(lv) {
|
||||
if(lv.subject) {
|
||||
$w.find('.subject').html(lv.subject.repl(args));
|
||||
}
|
||||
if(lv.render) {
|
||||
lv.render($w, args);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
render_tag: function() {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
me.make();
|
||||
}
|
||||
|
|
@ -1,301 +1,33 @@
|
|||
wn.provide('wn.body');
|
||||
wn.provide('wn.list_views');
|
||||
wn.provide('wn.pages.doclistview');
|
||||
|
||||
wn.body.ListPage = function(doctype) {
|
||||
wn.require('lib/css/body/list.css');
|
||||
wn.require('lib/js/wn/body/tags.js');
|
||||
wn.require('lib/js/wn/utils/datetime.js');
|
||||
|
||||
var me = this;
|
||||
$.extend(this, {
|
||||
make: function() {
|
||||
// page
|
||||
me.label = 'List/' + doctype;
|
||||
wn.require('lib/js/wn/body/page.js');
|
||||
me.page = new wn.body.Page(me.label, 1);
|
||||
me.page.update_history = function() {
|
||||
window.location.hash = 'List/' + encodeURIComponent(doctype);
|
||||
}
|
||||
var $w = $(me.page.wrapper);
|
||||
$w.append("<div></div><div></div>")
|
||||
me.page_head =
|
||||
new wn.body.PageHead($w.find('> div:eq(0)').get(0),
|
||||
wn.model.label_of(doctype) + ' List');
|
||||
|
||||
me.list =
|
||||
new wn.body.List(me, $w.find('> div:eq(1)').get(0), doctype);
|
||||
|
||||
me.make_sidebar();
|
||||
},
|
||||
|
||||
make_sidebar: function() {
|
||||
me.page.sidebar.style.marginTop = '13px';
|
||||
if(wn.profile.can_read.indexOf(doctype)!=-1) {
|
||||
new wn.ui.Button({
|
||||
parent: me.page.sidebar,
|
||||
css_class: 'blue-pill',
|
||||
label: '+ New ' + wn.model.label_of(doctype),
|
||||
style: {fontSize:'11px', margin: '13px', marginTop:'0px'},
|
||||
onclick: function() {
|
||||
wn.open('Form', doctype);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// sidebar
|
||||
wn.require('lib/js/wn/body/page_sidebar.js')
|
||||
me.sidebar = new wn.body.page_sidebar.Sidebar(me.page.sidebar, {
|
||||
sections: [
|
||||
{
|
||||
title: 'Top Tags',
|
||||
render: function(body) {
|
||||
new wn.body.tags.TagCloud(body, doctype, function(tag) {
|
||||
me.set_tag_filter(tag) });
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
},
|
||||
|
||||
// add a filter when a tag is clicked
|
||||
set_tag_filter: function(tag) {
|
||||
me.list.flist.set_filter_display();
|
||||
var l = tag.label;
|
||||
if(tag.fieldname=='_user_tags') l = '%' + tag.label
|
||||
me.list.flist.add_filter(tag.fieldname, 'like', l);
|
||||
me.list.refresh();
|
||||
}
|
||||
|
||||
});
|
||||
me.make();
|
||||
wn.pages.doclistview.pages = {};
|
||||
wn.pages.doclistview.show = function(doctype) {
|
||||
var pagename = doctype + ' List';
|
||||
if(!wn.pages.doclistview.pages[pagename]) {
|
||||
var page = page_body.add_page(pagename);
|
||||
page.doclistview = new wn.pages.DocListView(doctype, page);
|
||||
wn.pages.doclistview.pages[pagename] = page;
|
||||
}
|
||||
page_body.change_to(pagename);
|
||||
}
|
||||
|
||||
|
||||
// args (list name)
|
||||
wn.body.List = function(list_page, parent, doctype) {
|
||||
var me = this;
|
||||
me.start = 0;
|
||||
me.page_len = 20;
|
||||
|
||||
$.extend(this, {
|
||||
setup: function() {
|
||||
wn.require('lib/js/wn/model/list.js');
|
||||
|
||||
// doctype for rendering
|
||||
var dt = wn.model.get_doctype(doctype);
|
||||
|
||||
me.preloaded = wn.list.has(doctype);
|
||||
|
||||
// get the list
|
||||
var res = wn.list.get(doctype, null, me.start, me.page_len, 1);
|
||||
me.list = res.message || [];
|
||||
if(res.list_view_js) {
|
||||
eval('me.list_view_obj=' + res.list_view_js);
|
||||
}
|
||||
},
|
||||
wn.pages.DocListView = Class.extend({
|
||||
init: function(doctype, page) {
|
||||
this.doctype = doctype;
|
||||
this.wrapper = page;
|
||||
this.label = get_doctype_label(doctype);
|
||||
this.label = (this.label.toLowerCase().substr(-4) == 'list') ?
|
||||
this.label : (this.label + ' List')
|
||||
|
||||
make: function() {
|
||||
// body
|
||||
me.make_body();
|
||||
me.make_filters();
|
||||
me.setup();
|
||||
me.render(me.list);
|
||||
if(me.preloaded)
|
||||
me.reload();
|
||||
},
|
||||
this.make();
|
||||
},
|
||||
make: function() {
|
||||
$(this.wrapper).html('<div class="layout_wrapper">\
|
||||
<div class="header"></div>\
|
||||
<div class="filters">[filters]</div>\
|
||||
<div class="body">[body]</div>\
|
||||
</div>');
|
||||
|
||||
make_body: function() {
|
||||
// new / refresh area
|
||||
me.toolbar_area = wn.dom.add(parent, 'div');
|
||||
|
||||
// list area
|
||||
me.list_area = wn.dom.add(parent, 'div');
|
||||
|
||||
// more btn
|
||||
me.more_btn_area = wn.dom.add(parent, 'div', 'more_btn_area');
|
||||
me.nothing_more = wn.dom.add(parent, 'div', 'nothing_more round');
|
||||
|
||||
},
|
||||
|
||||
make_filters: function() {
|
||||
me.filter_area = wn.dom.add(me.toolbar_area, 'div');
|
||||
wn.require('lib/js/wn/body/filter.js');
|
||||
me.flist = new wn.body.FilterList(me, me.filter_area, doctype);
|
||||
|
||||
},
|
||||
|
||||
reload: function() {
|
||||
list_page.page_head.set_status('Checking for updates...');
|
||||
wn.list.diff(doctype, (me.list.length ? me.list[0].modified : null),
|
||||
me.render_reload);
|
||||
},
|
||||
|
||||
render_reload: function(res) {
|
||||
me.list = res.new_list;
|
||||
me.list_area.innerHTML = ''
|
||||
|
||||
if(res.list_view_js) {
|
||||
eval('me.list_view_obj=' + res.list_view_js);
|
||||
}
|
||||
|
||||
me.render(me.list);
|
||||
|
||||
// update heading
|
||||
list_page.page_head.set_status('');
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
// get the list
|
||||
me.start = 0;
|
||||
me.list = wn.list.get(doctype,
|
||||
me.flist.get_filters(),
|
||||
me.start, me.page_len);
|
||||
me.render(me.list);
|
||||
},
|
||||
|
||||
extend: function() {
|
||||
me.start += me.page_len
|
||||
var add = wn.list.get(doctype, me.flist.get_filters(), me.start, me.page_len);
|
||||
me.list = me.list.concat(add);
|
||||
me.render(add);
|
||||
},
|
||||
|
||||
// render the list
|
||||
render: function(list) {
|
||||
if(me.start==0)
|
||||
me.list_area.innerHTML = '';
|
||||
|
||||
$.each(list, function(i, d) {
|
||||
d.doctype = doctype;
|
||||
if(!d.__deleted)
|
||||
new wn.body.ListItem(me, me.list_area, d);
|
||||
});
|
||||
|
||||
// show filters, they may be hidden later
|
||||
wn.dom.show(me.filter_area);
|
||||
|
||||
if(list.length >= me.page_len) {
|
||||
me.show_more_btn();
|
||||
} else {
|
||||
me.hide_more_btn();
|
||||
}
|
||||
},
|
||||
|
||||
show_more_btn: function() {
|
||||
if(!me.more_btn) {
|
||||
me.more_btn = new wn.ui.Button({
|
||||
parent: me.more_btn_area,
|
||||
label: 'Show more results',
|
||||
onclick: function() {
|
||||
me.extend();
|
||||
},
|
||||
style: {
|
||||
width: '200px',
|
||||
fontSize:'14px'
|
||||
}
|
||||
})
|
||||
}
|
||||
wn.dom.show(me.more_btn_area);
|
||||
wn.dom.hide(me.nothing_more);
|
||||
},
|
||||
|
||||
hide_more_btn: function() {
|
||||
wn.dom.hide(me.more_btn_area);
|
||||
wn.dom.show(me.nothing_more);
|
||||
if(me.list.length) {
|
||||
me.nothing_more.innerHTML = 'Thats it';
|
||||
} else {
|
||||
me.nothing_more.innerHTML = 'No matches :( Try again.';
|
||||
|
||||
if(!me.flist.get_filters().length) {
|
||||
wn.dom.hide(me.filter_area);
|
||||
|
||||
// new link
|
||||
if(wn.profile.can_create.indexOf(doctype)!=-1) {
|
||||
$(me.nothing_more).html('<div class="new_link">\
|
||||
<span class="link_type" onclick="wn.open(\'Form\', \'%(doctype)s\')">\
|
||||
Click here to create your first %(doctype_label)s\
|
||||
</span>\
|
||||
</div>'.repl({
|
||||
doctype:doctype,
|
||||
doctype_label: wn.model.label_of(doctype)
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
me.make();
|
||||
}
|
||||
|
||||
// title (link), owner, last update, delete / archive, tags
|
||||
wn.body.ListItem = function(list, parent, args) {
|
||||
var me = this;
|
||||
$.extend(this, {
|
||||
make: function() {
|
||||
me.wrapper = wn.dom.add(parent, 'div', 'list_item');
|
||||
me.wrapper.innerHTML = '<div>\
|
||||
<span class="pre_subject"></span>\
|
||||
<span class="link_type subject">%(label)s</span>\
|
||||
<span class="post_subject"></span>\
|
||||
<span class="wn-icon ic-round_minus delete_btn"></span>\
|
||||
<span class="user_info">%(owner)s %(timestamp)s</span>\
|
||||
</div>\
|
||||
<div class="list_view"></div>'.repl({
|
||||
label: args.label || args.name,
|
||||
owner: args.owner,
|
||||
timestamp: wn.utils.datetime.when(args.modified)
|
||||
});
|
||||
|
||||
$w = $(me.wrapper);
|
||||
// hide delete if no perms
|
||||
if(!(wn.model.get_doctype(args.doctype).get_perm()[0] || {}).cancel) {
|
||||
$w.find('.delete_btn').css('display','none');
|
||||
} else {
|
||||
$w.find('.delete_btn').click(function() {
|
||||
wn.require('lib/js/wn/ui/confirm.js');
|
||||
if(wn.ui.confirm('You sure you want to delete?', function() {
|
||||
wn.http.post({
|
||||
args: {
|
||||
cmd:'webnotes.widgets.menus.delete_doc',
|
||||
doctype:args.doctype,
|
||||
name:args.name
|
||||
}
|
||||
});
|
||||
$w.slideUp();
|
||||
}));
|
||||
})
|
||||
}
|
||||
|
||||
// open
|
||||
$w.find('.subject')
|
||||
.bind('click', function() {
|
||||
wn.open('Form', args.doctype, args.name);
|
||||
});
|
||||
|
||||
// render body
|
||||
me.render_body($w);
|
||||
},
|
||||
|
||||
render_body: function($w) {
|
||||
var lv = list.list_view_obj
|
||||
if(lv) {
|
||||
if(lv.subject) {
|
||||
$w.find('.subject').html(lv.subject.repl(args));
|
||||
}
|
||||
if(lv.render) {
|
||||
lv.render($w, args);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
render_tag: function() {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
me.make();
|
||||
}
|
||||
new PageHeader($(this.wrapper).find('.header').get(0), this.label)
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -36,7 +36,13 @@ class ValidationError(Exception):
|
|||
|
||||
class AuthenticationError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class UnknownDomainError(Exception):
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
def __str__(self):
|
||||
return repr(self.value)
|
||||
|
||||
def getTraceback():
|
||||
import utils
|
||||
return utils.getTraceback()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue