Преглед изворни кода

listview in linked_with

version-14
Rushabh Mehta пре 12 година
родитељ
комит
037ae044ac
4 измењених фајлова са 186 додато и 37 уклоњено
  1. +143
    -0
      public/js/wn/form/assign_to.js
  2. +30
    -25
      public/js/wn/form/linked_with.js
  3. +2
    -12
      public/js/wn/views/doclistview.js
  4. +11
    -0
      public/js/wn/views/listview.js

+ 143
- 0
public/js/wn/form/assign_to.js Прегледај датотеку

@@ -0,0 +1,143 @@
// Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com)
//
// MIT License (MIT)
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

// assign to is lined to todo
// refresh - load todos
// create - new todo
// delete to do

wn.provide("wn.ui.form");

wn.ui.form.AssignTo = Class.extend({
init: function(opts) {
$.extend(this, opts);
var me = this;
this.wrapper = $('<div>\
<button class="btn"><i class="icon-plus"></i></button>\
<div class="alert-list"></div>\
</div>').appendTo(this.parent);

this.$list = this.wrapper.find(".alert-list");
this.wrapper.find(".btn").click(function() {
me.add();
});
},
refresh: function() {
if(this.frm.doc.__islocal) {
this.parent.toggle(false);
return;
}
this.parent.toggle(true);

var me = this;
wn.call({
method: 'webnotes.widgets.form.assign_to.get',
args: {
doctype: me.frm.doctype,
name: me.frm.docname
},
callback: function(r) {
me.render(r.message)
}
})
},
render: function(d) {
var me = this;
this.$list.empty();
if(this.dialog) {
this.dialog.hide();
}
for(var i=0; i<d.length; i++) {
$.extend(d[i], wn.user_info(d[i].owner));
d[i].avatar = wn.avatar(d[i].owner);
$(repl('<div class="alert alert-success" style="height: 19px; margin-top: 3px">\
%(avatar)s %(fullname)s \
<a class="close" href="#" style="top: 1px;"\
data-owner="%(owner)s">&times;</a></div>', d[i]))
.appendTo(this.$list);
this.$list.find(".avatar").css("margin-top", "-7px")
this.$list.find('.avatar img').centerImage();
}

// set remove
this.$list.find('a.close').click(function() {
wn.call({
method:'webnotes.widgets.form.assign_to.remove',
args: {
doctype: me.frm.doctype,
name: me.frm.docname,
assign_to: $(this).attr('data-owner')
},
callback:function(r,rt) {me.render(r.message);}
});
return false;
});
},
add: function() {
var me = this;
if(!me.dialog) {
me.dialog = new wn.ui.Dialog({
title: 'Add to To Do',
width: 350,
fields: [
{fieldtype:'Link', fieldname:'assign_to', options:'Profile',
label:wn._("Assign To"),
description:wn._("Add to To Do List of"), reqd:true},
{fieldtype:'Data', fieldname:'description', label:wn._("Comment")},
{fieldtype:'Date', fieldname:'date', label: wn._("Complete By")},
{fieldtype:'Select', fieldname:'priority', label: wn._("Priority"),
options:'Low\nMedium\nHigh', 'default':'Medium'},
{fieldtype:'Check', fieldname:'notify', label: wn._("Notify By Email")},
{fieldtype:'Button', label:wn._("Add"), fieldname:'add_btn'}
]
});
me.dialog.fields_dict.add_btn.input.onclick = function() {
var assign_to = me.dialog.fields_dict.assign_to.get_value();
if(assign_to) {
wn.call({
method:'webnotes.widgets.form.assign_to.add',
args: {
doctype: me.frm.doctype,
name: me.frm.docname,
assign_to: assign_to,
description: me.dialog.fields_dict.description.get_value(),
priority: me.dialog.fields_dict.priority.get_value(),
date: me.dialog.fields_dict.date.get_value(),
notify: me.dialog.fields_dict.notify.get_value()
},
callback: function(r,rt) {
me.render(r.message);
}
});
}
}
}
me.dialog.clear();
me.dialog.show();
}
});


+ 30
- 25
public/js/wn/form/linked_with.js Прегледај датотеку

@@ -22,7 +22,7 @@ wn.ui.form.LinkedWith = Class.extend({
}).sort(function(a, b) { return a.label > b.label ? 1 : -1 });
this.dialog = new wn.ui.Dialog({
width: 640,
width: 700,
title: wn._("Linked With"),
fields: [
{ fieldtype: "HTML", label: "help",
@@ -60,6 +60,7 @@ wn.ui.form.LinkedWith = Class.extend({
},
make_listing: function() {
var me = this;
this.listview = wn.views.get_listview(this.doctype, this);
this.lst = new wn.ui.Listing({
hide_refresh: true,
no_loading: true,
@@ -69,34 +70,37 @@ wn.ui.form.LinkedWith = Class.extend({
parent: $(this.dialog.fields_dict.list.wrapper).empty().css("min-height", "300px")
.get(0),
method: 'webnotes.widgets.reportview.get',
custom_new_doc: me.listview.make_new_doc || undefined,
get_args: function() {
return {
doctype: me.doctype,
fields: (!me.is_table
? [ '`tab' + me.doctype + '`.name',
'`tab' + me.doctype + '`.modified',
'`tab' + me.doctype + '`.modified_by',
'`tab' + me.doctype + '`.docstatus']
: [ '`tab' + me.doctype + '`.parent',
'`tab' + me.doctype + '`.parenttype',
'`tab' + me.doctype + '`.modified_by',
'`tab' + me.doctype + '`.docstatus']
),
filters: me.lst.filter_list.get_filters(),
docstatus: ['0','1']
var args = {
doctype: this.doctype,
fields: this.listview.fields,
filters: this.filter_list.get_filters(),
docstatus: ['0','1'],
order_by: this.listview.order_by || undefined,
group_by: this.listview.group_by || undefined,
}
return args;
// return {
// doctype: me.doctype,
// fields: (!me.is_table
// ? [ '`tab' + me.doctype + '`.name',
// '`tab' + me.doctype + '`.modified',
// '`tab' + me.doctype + '`.modified_by',
// '`tab' + me.doctype + '`.docstatus']
// : [ '`tab' + me.doctype + '`.parent',
// '`tab' + me.doctype + '`.parenttype',
// '`tab' + me.doctype + '`.modified_by',
// '`tab' + me.doctype + '`.docstatus']
// ),
// filters: me.lst.filter_list.get_filters(),
// docstatus: ['0','1']
// }
},
render_row: function(parent, data) {
$(parent).html(repl('%(avatar)s \
<a href="#Form/%(doctype)s/%(name)s" onclick="cur_dialog.hide()">\
%(doctype)s: %(name)s</a>\
<span class="help">Last Updated: %(modified)s</span>', {
avatar: wn.avatar(data.modified_by, null,
"Last Modified By: " + wn.user_info(data.modified_by).fullname),
doctype: me.is_table ? data.parenttype : me.doctype,
modified: dateutil.comment_when(data.modified),
name: me.is_table ? data.parent : data.name
})).find('.avatar img').centerImage();
data.doctype = this.doctype;
me.listview.render(parent, data, this);
},
get_no_result_message: function() {
return repl("<div class='alert'>%(doctype)s: " + wn._("Not linked") + "</div>", {
@@ -108,5 +112,6 @@ wn.ui.form.LinkedWith = Class.extend({
me.lst.filter_list.show_filters(true);
me.lst.filter_list.clear_filters();
me.lst.set_filter(me.linked_with[me.doctype], me.frm.doc.name);
me.lst.listview = me.listview;
}
});

+ 2
- 12
public/js/wn/views/doclistview.js Прегледај датотеку

@@ -129,13 +129,7 @@ wn.views.DocListView = wn.ui.Listing.extend({
}
},
setup_listview: function() {
if(this.meta.__listjs) {
eval(this.meta.__listjs);
this.listview = new wn.doclistviews[this.doctype](this);
} else {
this.listview = new wn.views.ListView(this);
}
this.listview.parent = this;
this.listview = wn.views.get_listview(this.doctype, this);
this.wrapper = this.$page.find('.wnlist-area');
this.page_length = 20;
this.allow_delete = true;
@@ -155,7 +149,6 @@ wn.views.DocListView = wn.ui.Listing.extend({
new_doctype: this.doctype,
allow_delete: this.allow_delete,
no_result_message: this.make_no_result(),
columns: this.listview.fields,
custom_new_doc: me.listview.make_new_doc || undefined,
});
@@ -188,9 +181,6 @@ wn.views.DocListView = wn.ui.Listing.extend({
});
data.doctype = this.doctype;
this.listview.render(row, data, this);
},
get_query_fields: function() {
return this.listview.fields;
},
get_args: function() {
var docstatus_list = this.can_submit ? $.map(this.$page.find('.show-docstatus :checked'),
@@ -200,7 +190,7 @@ wn.views.DocListView = wn.ui.Listing.extend({
var args = {
doctype: this.doctype,
fields: this.get_query_fields(),
fields: this.listview.fields,
filters: this.filter_list.get_filters(),
docstatus: docstatus_list,
order_by: this.listview.order_by || undefined,


+ 11
- 0
public/js/wn/views/listview.js Прегледај датотеку

@@ -1,3 +1,14 @@
wn.views.get_listview = function(doctype, parent) {
var meta = locals.DocType[doctype];
if(meta.__listjs) {
eval(meta.__listjs);
var listview = new wn.doclistviews[doctype](parent);
} else {
var listview = new wn.views.ListView(parent);
}
return listview;
}

wn.views.ListView = Class.extend({
init: function(doclistview) {
this.doclistview = doclistview;


Loading…
Откажи
Сачувај