Просмотр исходного кода

updated progress bar

version-14
Rushabh Mehta 13 лет назад
Родитель
Сommit
99d7ebbe2a
3 измененных файлов: 41 добавлений и 12 удалений
  1. +4
    -3
      js/core.min.js
  2. +23
    -2
      js/wn/request.js
  3. +14
    -7
      js/wn/views/grid_report.js

+ 4
- 3
js/core.min.js Просмотреть файл

@@ -268,8 +268,9 @@ return;}
if(r.server_messages)msgprint(r.server_messages)
if(r.exc){console.log(r.exc);};if(r['403']){wn.container.change_to('403');}
if(r.docs){LocalDB.sync(r.docs);}}
wn.request.call=function(opts){wn.request.prepare(opts);$.ajax({url:opts.url||wn.request.url,data:opts.args,type:opts.type||'POST',dataType:opts.dataType||'json',success:function(r,xhr){wn.request.cleanup(opts,r);opts.success(r,xhr.responseText);},error:function(xhr,textStatus){wn.request.cleanup(opts,{});show_alert('Unable to complete request: '+textStatus)
if(opts.error)opts.error(xhr)}})}
wn.request.call=function(opts){wn.request.prepare(opts);var args={url:opts.url||wn.request.url,data:opts.args,type:opts.type||'POST',dataType:opts.dataType||'json',success:function(r,xhr){wn.request.cleanup(opts,r);opts.success(r,xhr.responseText);},error:function(xhr,textStatus){wn.request.cleanup(opts,{});show_alert('Unable to complete request: '+textStatus)
if(opts.error)opts.error(xhr)}};if(opts.progress_bar){var interval=null;$.extend(args,{xhr:function(){var xhr=jquery.ajaxSettings.xhr();interval=setInterval(function(){if(xhr.readyState>2){var total=parseInt(xhr.getResponseHeader('Content-length'));var completed=parseInt(xhr.responseText.length);opts.progress_bar.css('width',(100.0/total*completed).toFixed(2)+'%');}},50);},complete:function(){clearInterval(interval);}})}
$.ajax(args)}
wn.call=function(opts){var args=$.extend({},opts.args)
if(opts.module&&opts.page){args.cmd=opts.module+'.page.'+opts.page+'.'+opts.page+'.'+opts.method}else if(opts.method){args.cmd=opts.method;}
for(key in args){if(args[key]&&typeof args[key]!='string'){args[key]=JSON.stringify(args[key]);}}
@@ -278,4 +279,4 @@ wn.request.call({args:args,success:opts.callback,error:opts.error,btn:opts.btn,f
* lib/js/core.js
*/
if(!console){var console={log:function(txt){}}}
window._version_number="d58703b2c2e2a5dd1294cd924eb13c57161cf583571b48248ed44bbc";$(document).ready(function(){wn.assets.check();wn.provide('wn.app');$.extend(wn.app,new wn.Application());});
window._version_number="7ab7a080278624be7e07a858feb00d5dace34c9757ef9c5d353d3e40";$(document).ready(function(){wn.assets.check();wn.provide('wn.app');$.extend(wn.app,new wn.Application());});

+ 23
- 2
js/wn/request.js Просмотреть файл

@@ -81,7 +81,7 @@ wn.request.cleanup = function(opts, r) {

wn.request.call = function(opts) {
wn.request.prepare(opts);
$.ajax({
var args = {
url: opts.url || wn.request.url,
data: opts.args,
type: opts.type || 'POST',
@@ -95,7 +95,28 @@ wn.request.call = function(opts) {
show_alert('Unable to complete request: ' + textStatus)
if(opts.error)opts.error(xhr)
}
})
};
if(opts.progress_bar) {
var interval = null;
$.extend(args, {
xhr: function() {
var xhr = jquery.ajaxSettings.xhr();
interval = setInterval(function() {
if(xhr.readyState > 2) {
var total = parseInt(xhr.getResponseHeader('Content-length'));
var completed = parseInt(xhr.responseText.length);
opts.progress_bar.css('width', (100.0 / total * completed).toFixed(2) + '%');
}
}, 50);
},
complete: function() {
clearInterval(interval);
}
})
}
$.ajax(args)
}

// generic server call (call page, object)


+ 14
- 7
js/wn/views/grid_report.js Просмотреть файл

@@ -24,7 +24,7 @@ wn.provide("wn.report_dump");

$.extend(wn.report_dump, {
data: {},
with_data: function(doctypes, callback) {
with_data: function(doctypes, callback, progress_bar) {
var missing = [];
$.each(doctypes, function(i, v) {
if(!wn.report_dump.data[v]) missing.push(v);
@@ -48,7 +48,8 @@ $.extend(wn.report_dump, {
wn.report_dump.data[doctype] = data;
});
callback();
}
},
progress_bar: progress_bar
})
} else {
callback();
@@ -61,8 +62,9 @@ wn.views.GridReport = Class.extend({
init: function(opts) {
this.filter_inputs = {};
$.extend(this, opts);
this.wrapper = $("<div style='height: 500px; border: 1px solid #aaa;'>").appendTo(this.parent);
this.id = wn.dom.set_unique_id(this.wrapper.get(0));
this.wrapper = $('<div>').appendTo(this.parent);
if(this.filters) {
this.make_filters();
}
@@ -88,13 +90,13 @@ wn.views.GridReport = Class.extend({
me.setup();
me.refresh();
});
}, this.wrapper.find(".progress .bar"));
},
make_waiting: function() {
$('<div class="well" style="width: 63%; margin: 30px auto;">\
this.waiting = $('<div class="well" style="width: 63%; margin: 30px auto;">\
<p style="text-align: center;">Loading Report...</p>\
<div class="progress progress-striped active">\
<div class="bar" style="width: 100%"></div></div>')
<div class="bar" style="width: 10%"></div></div>')
.appendTo(this.wrapper);
},
load_filters: function(callback) {
@@ -134,6 +136,11 @@ wn.views.GridReport = Class.extend({
},
render: function() {
// new slick grid
this.waiting.toggle(false);
this.grid_wrapper = $("<div style='height: 500px; border: 1px solid #aaa;'>")
.appendTo(this.wrapper);
this.id = wn.dom.set_unique_id(this.grid_wrapper.get(0));
this.grid = new Slick.Grid("#"+this.id, this.dataView, this.columns, this.options);

// bind events


Загрузка…
Отмена
Сохранить