]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/holds.js
toward fleshed out holds interface
[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_cancel' : [
77                                                 ['command'],
78                                                 function() {
79                                                 }
80                                         ],
81                                         'cmd_show_catalog' : [
82                                                 ['command'],
83                                                 function() {
84                                                 }
85                                         ],
86                                 }
87                         }
88                 );
89
90                 obj.retrieve();
91
92         },
93
94         'retrieve' : function() {
95                 var obj = this;
96                 if (window.xulG && window.xulG.holds) {
97                         obj.holds = window.xulG.holds;
98                 } else {
99                         obj.holds = obj.network.request(
100                                 api.fm_ahr_retrieve.app,
101                                 api.fm_ahr_retrieve.method,
102                                 [ obj.session, obj.patron_id ]
103                         );
104                                 
105                 }
106
107                 function gen_list_append(hold) {
108                         return function() {
109                                 obj.list.append(
110                                         {
111                                                 'row' : {
112                                                         'my' : {
113                                                                 'ahr' : hold,
114                                                         }
115                                                 }
116                                         }
117                                 );
118                         };
119                 }
120
121                 JSAN.use('util.exec'); var exec = new util.exec();
122                 var rows = [];
123                 for (var i in obj.holds) {
124                         rows.push( gen_list_append(obj.holds[i]) );
125                 }
126                 exec.chain( rows );
127         },
128 }
129
130 dump('exiting patron.holds.js\n');