]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/holds.js
67ca39b576a272b901bbaf568755a8b7e4bc08a4
[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                                         if (typeof params.on_retrieve == 'function') {
59                                                 params.on_retrieve(row);
60                                         }
61                                         return row;
62                                 }
63                         }
64                 );
65                 
66                 JSAN.use('util.controller'); obj.controller = new util.controller();
67                 obj.controller.init(
68                         {
69                                 'control_map' : {
70                                         'cmd_broken' : [
71                                                 ['command'],
72                                                 function() { alert('Not Yet Implemented'); }
73                                         ],
74                                         'cmd_holds_print' : [
75                                                 ['command'],
76                                                 function() {
77                                                 }
78                                         ],
79                                         'cmd_holds_edit' : [
80                                                 ['command'],
81                                                 function() {
82                                                 }
83                                         ],
84                                         'cmd_holds_cancel' : [
85                                                 ['command'],
86                                                 function() {
87                                                 }
88                                         ],
89                                         'cmd_show_catalog' : [
90                                                 ['command'],
91                                                 function() {
92                                                 }
93                                         ],
94                                 }
95                         }
96                 );
97
98                 obj.retrieve();
99
100         },
101
102         'retrieve' : function() {
103                 var obj = this;
104                 if (window.xulG && window.xulG.holds) {
105                         obj.holds = window.xulG.holds;
106                 } else {
107                         obj.holds = obj.network.request(
108                                 api.FM_AHR_RETRIEVE.app,
109                                 api.FM_AHR_RETRIEVE.method,
110                                 [ obj.session, obj.patron_id ]
111                         );
112                                 
113                 }
114
115                 function gen_list_append(hold) {
116                         return function() {
117                                 obj.list.append(
118                                         {
119                                                 'row' : {
120                                                         'my' : {
121                                                                 'ahr' : hold,
122                                                         }
123                                                 }
124                                         }
125                                 );
126                         };
127                 }
128
129                 JSAN.use('util.exec'); var exec = new util.exec();
130                 var rows = [];
131                 for (var i in obj.holds) {
132                         rows.push( gen_list_append(obj.holds[i]) );
133                 }
134                 exec.chain( rows );
135         },
136 }
137
138 dump('exiting patron.holds.js\n');