]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js
toward offline management
[Evergreen.git] / Open-ILS / xul / staff_client / server / admin / offline_manage_xacts.js
1 dump('entering admin/offline_manage_xacts.js\n');
2
3 if (typeof admin == 'undefined') admin = {};
4 admin.offline_manage_xacts = function (params) {
5
6         JSAN.use('util.error'); this.error = new util.error();
7         JSAN.use('util.network'); this.network = new util.network();
8 }
9
10 admin.offline_manage_xacts.prototype = {
11
12         'init' : function( params ) {
13
14                 var obj = this;
15
16                 JSAN.use('OpenILS.data'); obj.data = new OpenILS.data(); obj.data.init({'via':'stash'});
17
18                 JSAN.use('util.list'); obj.list = new util.list('session_tree');
19                 obj.list.init( {
20                         'columns' : [
21                                 { 'id' : 'desc', 'label' : 'Description', 'render' : "my.desc", 'flex' : '2' },
22                                 { 'id' : 'count', 'label' : 'Upload Count', 'render' : "my.meta.length", 'flex' : '1' },
23                                 { 'id' : 'complete', 'label' : 'Processed?', 'render' : "my.complete == 0 ? 'No' : 'Yes'", 'flex' : '1' },
24                                 { 'id' : 'seskey', 'label' : 'Session', 'render' : "my.session", 'hidden' : 'true', 'flex' : '1' },
25                         ],
26                         'map_row_to_column' : function(row,col) {
27                                 var my = row; var value;
28                                 try { value = eval( col.render ); } catch(E) { obj.error.sdump('D_ERROR',E); value = '???'; }
29                                 return value;
30                         },
31                 } );
32
33                 obj.retrieve_seslist();
34                 obj.render_seslist();
35
36                 document.getElementById('create').addEventListener('command',function() { obj.create_ses(); },false);
37
38         },
39
40         'create_ses' : function() {
41
42                 var obj = this;
43
44                 var desc = window.prompt('Please enter a description:','','Create an Offline Transaction Session');
45                 if (desc=='') { return; }
46
47                 obj.data.stash_retrieve();
48
49                 var url  = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI)
50                         + "?ses=" + window.escape(obj.data.session)
51                         + "&createses=1" 
52                         + "&org=" + window.escape(obj.data.list.au[0].ws_ou())
53                         + "&desc=" + window.escape(desc)
54                         + "&raw=1";
55                 var x = new XMLHttpRequest();
56                 x.open("GET",url,false);
57                 x.send(null);
58
59                 var robj = JSON2js(x.responseText);
60                 if (robj.ilsevent == 0) {
61                         obj.retrieve_seslist(); obj.render_seslist();
62                 } else {
63                         alert('Error: ' + x.responseText);
64                 }
65
66         },
67
68         'retrieve_seslist' : function() {
69
70                 var obj = this;
71
72                 obj.data.stash_retrieve();
73
74                 var url = xulG.url_prefix(urls.XUL_OFFLINE_MANAGE_XACTS_CGI) 
75                         + "?ses=" + window.escape(obj.data.session)
76                         + "&seslist=1"
77                         + "&org=" + window.escape(obj.data.list.au[0].ws_ou())
78                         + "&raw=1";
79                 var x = new XMLHttpRequest();
80                 x.open("GET",url,false);
81                 x.send(null);
82
83                 obj.seslist = JSON2js( x.responseText );
84                 dump(url + ' = ' + x.responseText + '\n' );
85         },
86
87         'render_seslist' : function() {
88
89                 var obj = this;
90
91                 obj.list.clear();
92
93                 var funcs = [];
94                 for (var i = 0; i < obj.seslist.length; i++) {
95                         funcs.push( 
96                                 function(row){ 
97                                         return function(){
98                                                 obj.list.append( { 'retrieve_id' : row.session, 'row' : row } );
99                                         };
100                                 }(obj.seslist[i]) 
101                         );
102                 }
103                 JSAN.use('util.exec'); var exec = new util.exec();
104                 exec.chain( funcs );
105         },
106 }
107
108 dump('exiting admin/offline_manage_xacts.js\n');