]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/opac/skin/default/js/cn_browse.js
388e7b84e76bfe023769f8f12eb054e57e1acf5f
[Evergreen.git] / Open-ILS / web / opac / skin / default / js / cn_browse.js
1 var cnOffset = 0;
2 var cnCount = 9;
3 var cnBrowseCN;
4 var cnBrowseOrg;
5
6 if( findCurrentPage() == CNBROWSE ) {
7         attachEvt("common", "run", cnBrowseLoadSearch);
8         attachEvt( "common", "locationUpdated", cnBrowseResubmit );
9         attachEvt( "common", "depthChanged", cnBrowseResubmit );
10 }
11
12
13 function cnBrowseLoadSearch() {
14         unHideMe($('cn_browse'));
15         cnBrowseGo(getCallnumber(), getLocation(), getDepth());
16 }
17
18
19 function cnBrowseResubmit() {
20         var args = {}
21         args[PARAM_CN] = cnBrowseCN;
22         args[PARAM_DEPTH] = depthSelGetDepth();
23         args[PARAM_LOCATION] = getNewSearchLocation();
24         goTo(buildOPACLink(args));
25 }
26
27
28
29 function cnBrowseGo(cn, org, depth) { 
30         if(depth == null) depth = getDepth();
31
32         org = findOrgUnit(org);
33
34         do {
35                 var t = findOrgType(org.ou_type());
36                 if( t.depth() > depth ) 
37                         org = findOrgUnit(org.parent_ou());
38                 else break;
39         } while(true); 
40
41         cnBrowseOrg = org;
42         cnBrowseCN = cn;
43
44         _cnBrowseGo( cn, org );
45         appendClear($('cn_browse_where'), text(org.name()));
46 }
47
48
49 function _cnBrowseGo( cn, org ) {
50         var req = new Request( FETCH_CNBROWSE, cn, org.id(), cnCount, cnOffset );
51         req.callback( cnBrowseDraw );
52         req.send();
53 }
54
55 function cnBrowseNext() {
56         cnOffset++;
57         _cnBrowseGo( cnBrowseCN, cnBrowseOrg );
58 }
59
60 function cnBrowsePrev() {
61         cnOffset--;
62         _cnBrowseGo( cnBrowseCN, cnBrowseOrg );
63 }
64
65
66 function cnBrowseDraw( r ) {
67         var list = r.getResultObject();
68         _cnBrowseDraw(list);
69 }
70
71
72 var cnTbody;
73 var cnRowT;
74 var cnTdT;
75 function _cnBrowseDraw( list ) {
76
77         if(!cnTbody) {
78                 cnTbody = $('cn_tbody');
79                 cnRowT = $('cn_browse_row');
80                 cnTdT = cnRowT.removeChild($('cn_browse_td'));
81                 cnTbody.removeChild(cnRowT);
82         }
83         removeChildren(cnTbody);
84
85         var counter = 1;
86         var currentRow = cnRowT.cloneNode(true);
87         cnTbody.appendChild(currentRow);
88
89         for( var idx in list ) {
90                 
91
92                 var currentTd = cnTdT.cloneNode(true);
93                 currentRow.appendChild(currentTd);
94
95                 var td = cnTdT.cloneNode(true);
96
97                 var obj = list[idx];
98                 var cn  = obj.cn;
99                 var mods = obj.mods;
100
101                 var cn_td                       = $n(currentTd, 'cn_browse_cn');
102                 var lib_td                      = $n(currentTd, 'cn_browse_lib');
103                 var title_td            = $n(currentTd, 'cn_browse_title');
104                 var author_td           = $n(currentTd, 'cn_browse_author');
105                 var pic_td                      = $n(currentTd, 'cn_browse_pic');
106
107                 cn_td.appendChild(text(cn.label()));
108                 lib_td.appendChild(text(findOrgUnit(cn.owning_lib()).name()));
109                 cnBrowseDrawTitle(mods, title_td, author_td, pic_td);
110
111                 if( counter++ % 3 == 0 ) {
112                         counter = 1;
113                         currentRow = cnRowT.cloneNode(true);
114                         cnTbody.appendChild(currentRow);
115                 }
116         }
117 }
118
119
120 function cnBrowseDrawTitle(mods, title_td, author_td, pic_td) {
121
122         buildTitleDetailLink(mods, title_td); 
123         buildSearchLink(STYPE_AUTHOR, mods.author(), author_td);
124         pic_td.setAttribute("src", buildISBNSrc(cleanISBN(mods.isbn())));
125
126         var args = {};
127         args.page = RDETAIL;
128         args[PARAM_OFFSET] = 0;
129         args[PARAM_RID] = mods.doc_id();
130         args[PARAM_MRID] = 0;
131         pic_td.parentNode.setAttribute("href", buildOPACLink(args));
132 }
133