浏览代码

[grid reports] now show by wn.route_options

version-14
Rushabh Mehta 12 年前
父节点
当前提交
bffc4039d0
共有 1 个文件被更改,包括 30 次插入49 次删除
  1. +30
    -49
      public/js/wn/views/grid_report.js

+ 30
- 49
public/js/wn/views/grid_report.js 查看文件

@@ -162,29 +162,42 @@ wn.views.GridReport = Class.extend({
// set route from filters // set route from filters
// if route has changed, set route calls get data // if route has changed, set route calls get data
me.set_route();
// if route hasn't changed, call get data
if(wn.get_route_str()===old_route) {
me.get_data();
}
me.refresh();
}); });
// reset filters // reset filters
this.filter_inputs.reset_filters && this.filter_inputs.reset_filters.click(function() { this.filter_inputs.reset_filters && this.filter_inputs.reset_filters.click(function() {
me.init_filter_values(); me.init_filter_values();
me.set_route();
me.refresh();
}); });
// range // range
this.filter_inputs.range && this.filter_inputs.range.change(function() { this.filter_inputs.range && this.filter_inputs.range.change(function() {
me.set_route();
me.refresh();
}); });
// plot check // plot check
if(this.setup_plot_check) if(this.setup_plot_check)
this.setup_plot_check(); this.setup_plot_check();
},
set_filter: function(key, value) {
var filters = this.filter_inputs[key];
if(filters) {
var opts = filters.get(0).opts;
if(opts.fieldtype === "Check") {
if(cint(value)) {
filters.attr("checked", "checked");
} else {
filters.removeAttr("checked");
}
} if(opts.fieldtype=="Date") {
filters.val(wn.datetime.str_to_user(value));
} else {
filters.val(value);
}
} else {
msgprint("Invalid Filter: " + key)
}
}, },
set_autocomplete: function($filter, list) { set_autocomplete: function($filter, list) {
var me = this; var me = this;
@@ -192,7 +205,7 @@ wn.views.GridReport = Class.extend({
source: list, source: list,
select: function(event, ui) { select: function(event, ui) {
$filter.val(ui.item.value); $filter.val(ui.item.value);
me.set_route();
me.refresh();
} }
}); });
}, },
@@ -261,7 +274,7 @@ wn.views.GridReport = Class.extend({
} }
input.keypress(function(e) { input.keypress(function(e) {
if(e.which==13) { if(e.which==13) {
me.set_route();
me.refresh();
} }
}) })
} }
@@ -381,24 +394,9 @@ wn.views.GridReport = Class.extend({
apply_filters_from_route: function() { apply_filters_from_route: function() {
var hash = decodeURIComponent(window.location.hash); var hash = decodeURIComponent(window.location.hash);
var me = this; var me = this;
if(hash.indexOf('/') != -1) {
$.each(hash.split('/').splice(1).join('/').split('&&'), function(i, f) {
var f = f.split("=");
if(me.filter_inputs[f[0]]) {
var val = decodeURIComponent(f[1]);
var opts = me.filter_inputs[f[0]].get(0).opts;
if(opts.fieldtype === "Check") {
if(cint(val)) {
me.filter_inputs[f[0]].attr("checked", "checked");
} else {
me.filter_inputs[f[0]].removeAttr("checked");
}
} else {
me.filter_inputs[f[0]].val(val);
}
} else {
console.log("Invalid filter: " +f[0]);
}
if(wn.route_options) {
$.each(wn.route_options, function(key, value) {
me.set_filter(key, value);
}); });
} else { } else {
this.init_filter_values(); this.init_filter_values();
@@ -407,22 +405,6 @@ wn.views.GridReport = Class.extend({
$(this.wrapper).trigger('apply_filters_from_route'); $(this.wrapper).trigger('apply_filters_from_route');
}, },
set_route: function() {
var page_name = wn.container.page.page_name;
var filters_route = $.map(this.filter_inputs, function(v) {
var opts = v.get(0).opts;
if(opts.fieldtype === "Check") {
var val = v.attr("checked") ? 1 : 0;
} else {
var val = v.val();
}
if(val && val != opts.default_value)
return encodeURIComponent(opts.fieldname)
+ '=' + encodeURIComponent(val);
}).join('&&');

wn.set_route(page_name, filters_route);
},
options: { options: {
editable: false, editable: false,
enableColumnReorder: false enableColumnReorder: false
@@ -559,9 +541,8 @@ wn.views.GridReport = Class.extend({
var link_formatter = me.dataview_columns[cell].link_formatter; var link_formatter = me.dataview_columns[cell].link_formatter;
if (link_formatter.filter_input) { if (link_formatter.filter_input) {
var html = repl('<a href="#" \ var html = repl('<a href="#" \
onclick="wn.cur_grid_report.filter_inputs \
.%(col_name)s.val(\'%(value)s\'); \
wn.cur_grid_report.set_route(); return false;">\
onclick="wn.cur_grid_report.set_filter(\'%(col_name)s\', \'%(value)s\'); \
wn.cur_grid_report.refresh(); return false;">\
%(value)s</a>', { %(value)s</a>', {
value: value, value: value,
col_name: link_formatter.filter_input, col_name: link_formatter.filter_input,
@@ -665,7 +646,7 @@ wn.views.GridReport = Class.extend({
var me = this; var me = this;
$.each(filters, function(i, f) { $.each(filters, function(i, f) {
me.filter_inputs[f] && me.filter_inputs[f].change(function() { me.filter_inputs[f] && me.filter_inputs[f].change(function() {
me.set_route();
me.refresh();
}); });
}); });
} }


正在加载...
取消
保存