]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/holds.js
promising too much?
[Evergreen.git] / Open-ILS / xul / staff_client / server / patron / holds.js
1 dump('entering patron.holds.js\n');
2
3 if (typeof patron == 'undefined') patron = {};
4 patron.holds = function (params) {
5
6         JSAN.use('util.error'); this.error = new util.error();
7         JSAN.use('util.network'); this.network = new util.network();
8         this.OpenILS = {}; JSAN.use('OpenILS.data'); this.OpenILS.data = new OpenILS.data(); this.OpenILS.data.init({'via':'stash'});
9 }
10
11 patron.holds.prototype = {
12
13         'init' : function( params ) {
14
15                 var obj = this;
16
17                 obj.session = params['session'];
18                 obj.patron_id = params['patron_id'];
19
20                 JSAN.use('circ.util');
21                 var columns = circ.util.hold_columns( 
22                         { 
23                                 'title' : { 'hidden' : false, 'flex' : '3' },
24                                 'request_time' : { 'hidden' : false },
25                                 'pickup_lib_shortname' : { 'hidden' : false },
26                                 'hold_type' : { 'hidden' : false },
27                                 'capture_time' : { 'hidden' : false },
28                         } 
29                 );
30
31                 JSAN.use('util.list'); obj.list = new util.list('holds_list');
32                 obj.list.init(
33                         {
34                                 'columns' : columns,
35                                 'map_row_to_column' : circ.util.std_map_row_to_column(),
36                                 'retrieve_row' : function(params) {
37                                         var row = params.row;
38                                         try {
39                                                 switch(row.my.ahr.hold_type()) {
40                                                         case 'M' :
41                                                                 row.my.mvr = obj.network.request(
42                                                                         api.mods_slim_metarecord_retrieve.app,
43                                                                         api.mods_slim_metarecord_retrieve.method,
44                                                                         [ row.my.ahr.target() ]
45                                                                 );
46                                                         break;
47                                                         default:
48                                                                 row.my.mvr = obj.network.request(
49                                                                         api.mods_slim_record_retrieve.app,
50                                                                         api.mods_slim_record_retrieve.method,
51                                                                         [ row.my.ahr.target() ]
52                                                                 );
53                                                         break;
54                                                 }
55                                         } catch(E) {
56                                                 obj.error.sdump('D_ERROR','retrieve_row: ' + E );
57                                         }
58                                         return row;
59                                 }
60                         }
61                 );
62                 
63                 JSAN.use('util.controller'); obj.controller = new util.controller();
64                 obj.controller.init(
65                         {
66                                 'control_map' : {
67                                         'cmd_broken' : [
68                                                 ['command'],
69                                                 function() { alert('Not Yet Implemented'); }
70                                         ],
71                                         'cmd_holds_print' : [
72                                                 ['command'],
73                                                 function() {
74                                                 }
75                                         ],
76                                         'cmd_holds_edit' : [
77                                                 ['command'],
78                                                 function() {
79                                                 }
80                                         ],
81                                         'cmd_holds_cancel' : [
82                                                 ['command'],
83                                                 function() {
84                                                 }
85                                         ],
86                                         'cmd_show_catalog' : [
87                                                 ['command'],
88                                                 function() {
89                                                 }
90                                         ],
91                                 }
92                         }
93                 );
94
95                 obj.retrieve();
96
97         },
98
99         'retrieve' : function() {
100                 var obj = this;
101                 if (window.xulG && window.xulG.holds) {
102                         obj.holds = window.xulG.holds;
103                 } else {
104                         obj.holds = obj.network.request(
105                                 api.fm_ahr_retrieve.app,
106                                 api.fm_ahr_retrieve.method,
107                                 [ obj.session, obj.patron_id ]
108                         );
109                                 
110                 }
111
112                 function gen_list_append(hold) {
113                         return function() {
114                                 obj.list.append(
115                                         {
116                                                 'row' : {
117                                                         'my' : {
118                                                                 'ahr' : hold,
119                                                         }
120                                                 }
121                                         }
122                                 );
123                         };
124                 }
125
126                 JSAN.use('util.exec'); var exec = new util.exec();
127                 var rows = [];
128                 for (var i in obj.holds) {
129                         rows.push( gen_list_append(obj.holds[i]) );
130                 }
131                 exec.chain( rows );
132         },
133 }
134
135 dump('exiting patron.holds.js\n');