From 5bbe9a445e3b7b048eeef7f0c5e7a6280d370228 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 15 Nov 2005 15:20:29 +0000 Subject: [PATCH 1/1] basic record level holds working on record result and record detail pages git-svn-id: svn://svn.open-ils.org/ILS/trunk@2026 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/common/js/config.js | 6 ++-- Open-ILS/web/opac/common/js/opac_utils.js | 14 +++++++++ Open-ILS/web/opac/skin/default/js/mresult.js | 7 ++--- Open-ILS/web/opac/skin/default/js/rdetail.js | 6 ++++ .../web/opac/skin/default/js/result_common.js | 29 ++++++++++--------- .../web/opac/skin/default/js/search_bar.js | 5 +++- .../web/opac/skin/default/xml/mresult.xml | 1 + .../opac/skin/default/xml/myopac_prefs.xml | 2 ++ .../web/opac/skin/default/xml/rdetail.xml | 4 +++ .../web/opac/skin/default/xml/rresult.xml | 1 + 10 files changed, 53 insertions(+), 22 deletions(-) diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js index 237054cf19..585d87404e 100644 --- a/Open-ILS/web/opac/common/js/config.js +++ b/Open-ILS/web/opac/common/js/config.js @@ -224,14 +224,16 @@ function attachEvt(scope, name, action) { G.evt[scope][name].push(action); } -function detachEvt(scope, name) { - G.evt[scope][name] = null; +function detachAllEvt(scope, name) { + G.evt[scope][name] = []; } + createEvt("common", "init"); /* f() : what happens on page init */ createEvt("common", "pageRendered"); /* f() : what happens when the page is done (up to the skin to call this even)*/ createEvt("common", "unload"); /* f() : what happens on window unload (clean memory, etc.)*/ createEvt("common", "locationChanged"); /* f() : what happens when the location has changed */ +createEvt("common", "locationUpdated"); /* f() : what happens when the location has updated by the code */ createEvt("common", "run"); /* f() : make the page do stuff */ createEvt("result", "idsReceived"); /* f(ids) */ diff --git a/Open-ILS/web/opac/common/js/opac_utils.js b/Open-ILS/web/opac/common/js/opac_utils.js index 629c69e17e..1e81d04706 100644 --- a/Open-ILS/web/opac/common/js/opac_utils.js +++ b/Open-ILS/web/opac/common/js/opac_utils.js @@ -540,6 +540,20 @@ function msg( text ) { } catch(e) {} } +function findRecord(id,type) { + try { + for( var i = 0; i != recordsCache.length; i++ ) { + var rec = recordsCache[i]; + if( rec && rec.doc_id() == id ) return rec; + } + } catch(E){} + var meth = FETCH_RMODS + if(type == 'M') meth = FETCH_MRMODS; + var req = new Request(meth, id); + req.send(true); + return req.result(); +} + diff --git a/Open-ILS/web/opac/skin/default/js/mresult.js b/Open-ILS/web/opac/skin/default/js/mresult.js index 73becea251..cdd07f1d50 100644 --- a/Open-ILS/web/opac/skin/default/js/mresult.js +++ b/Open-ILS/web/opac/skin/default/js/mresult.js @@ -19,13 +19,10 @@ function mresultDoSearch() { while( table.parentNode.rows.length <= (getDisplayCount() + 1) ) /* add an extra row so IE and safari won't complain */ table.appendChild(G.ui.result.row_template.cloneNode(true)); - if(getOffset() == 0 || getHitCount() == null ) { - // mresultGetCount(); + if(getOffset() == 0 || getHitCount() == null ) mresultCollectIds(FETCH_MRIDS_FULL); - } else { - //runEvt('result', 'hitCountReceived'); + else mresultCollectIds(FETCH_MRIDS); - } } function mresultGetCount() { diff --git a/Open-ILS/web/opac/skin/default/js/rdetail.js b/Open-ILS/web/opac/skin/default/js/rdetail.js index ef983082ef..207a52d34b 100644 --- a/Open-ILS/web/opac/skin/default/js/rdetail.js +++ b/Open-ILS/web/opac/skin/default/js/rdetail.js @@ -6,6 +6,7 @@ attachEvt("rdetail", "recordDrawn", rdetailBuildInfoRows); var record = null; var cp_statuses = null; +var recordsCache = []; var copyRowParent = null; var copyRow = null; @@ -28,6 +29,8 @@ function rdetailDraw() { if(getLocation() == globalOrgTree.id()) hideMe(G.ui.rdetail.cp_info_all); + + var req = new Request(FETCH_RMODS, getRid()); req.callback(_rdetailDraw); req.send(); @@ -90,9 +93,12 @@ function _rdetailDraw(r) { G.ui.rdetail.abstr.appendChild(text(record.synopsis())); + $('rdetail_place_hold').setAttribute( + 'href','javascript:holdsDrawWindow("'+record.doc_id()+'");'); G.ui.rdetail.image.setAttribute("src", buildISBNSrc(cleanISBN(record.isbn()))); runEvt("rdetail", "recordDrawn"); + recordsCache.push(record); } diff --git a/Open-ILS/web/opac/skin/default/js/result_common.js b/Open-ILS/web/opac/skin/default/js/result_common.js index 63dfc3169c..6eee65ce54 100644 --- a/Open-ILS/web/opac/skin/default/js/result_common.js +++ b/Open-ILS/web/opac/skin/default/js/result_common.js @@ -8,6 +8,9 @@ G.evt.result.recordReceived.push(resultDisplayRecord, resultAddCopyCounts); G.evt.result.copyCountsReceived.push(resultDisplayCopyCounts); G.evt.result.allRecordsReceived.push(resultBuildCaches, resultDrawSubjects, resultDrawAuthors, resultDrawSeries); +attachEvt( "common", "locationUpdated", resultSBSubmit ); +function resultSBSubmit(){searchBarSubmit();} + /* do this after we have ID's so the rank for mr pages will be correct */ attachEvt("result", "preCollectRecords", resultPaginate); @@ -125,7 +128,7 @@ function resultDisplayRecord(rec, pos, is_mr) { unHideMe($n(r,'place_hold_span')); $n(r,'place_hold_link').setAttribute( - 'href','javascript:resultDrawHoldsWindow("'+rec.doc_id()+'");'); + 'href','javascript:holdsDrawWindow("'+rec.doc_id()+'");'); } buildSearchLink(STYPE_AUTHOR, rec.author(), author_link); @@ -172,6 +175,7 @@ function _resultFindRec(id) { return null; } +/* var currentHoldRecord; var holdsOrgSelectorBuilt = false; function resultDrawHoldsWindow(recid) { @@ -182,10 +186,16 @@ function resultDrawHoldsWindow(recid) { } currentHoldRecord = recid; + detachEvt('common','locationUpdated', resultSBSubmit ); + attachEvt( "common", "locationUpdated", resultSBSubmit ); + if(!(G.user && G.user.session)) { + detachEvt('common','locationUpdated', resultSBSubmit ); attachEvt('common','loggedIn', resultDrawHoldsWindow) + //alert(G.evt['common']['locationUpdated']); initLogin(); + //attachEvt( "common", "locationUpdated", resultSBSubmit ); return; } swapCanvas($('holds_box')); @@ -244,8 +254,9 @@ function resultBuildHoldsSelector(node, depth) { } else { var pad = (findOrgType(node.ou_type()).depth() - 1) * 12; + if(pad < 0) pad = 0; var select = new Option(node.name(), node.id()); - select.setAttribute("style", "padding-left: " + pad); + select.setAttribute("style", "padding-left: "+pad+'px;'); selector.options[index] = select; } @@ -263,10 +274,8 @@ function resultBuildHoldsSelector(node, depth) { } function resultPlaceHold() { - //alert("placing hold for " + currentHoldRecord ); - var hold = new ahr(); - hold.pickup_lib( 1 ); /* */ + hold.pickup_lib( 1 ); hold.requestor(G.user.id()); hold.usr(G.user.id()); hold.hold_type('T'); @@ -278,13 +287,13 @@ function resultPlaceHold() { req.send(true); var res = req.result(); - /* XMLize me */ if( res == '1' ) { alert('ok'); } else { alert('hold failed'); } } +*/ @@ -302,17 +311,10 @@ function resultBuildFormatIcons( row, rec ) { var f = getForm(); if( f != "all" ) { - /* - if( f != modsFormatToMARC(res) ) - addCSSClass( img, config.css.dim2); - else - addCSSClass( img, "dim2_border"); - */ if( f == modsFormatToMARC(res) ) addCSSClass( img, "dim2_border"); } - var args = {}; args.page = RRESULT; args[PARAM_OFFSET] = 0; @@ -322,7 +324,6 @@ function resultBuildFormatIcons( row, rec ) { link.setAttribute("href", buildOPACLink(args)); } - } diff --git a/Open-ILS/web/opac/skin/default/js/search_bar.js b/Open-ILS/web/opac/skin/default/js/search_bar.js index 6533496a05..d472f4054e 100644 --- a/Open-ILS/web/opac/skin/default/js/search_bar.js +++ b/Open-ILS/web/opac/skin/default/js/search_bar.js @@ -56,7 +56,6 @@ function _opacHandleLocationTagClick() { if(!orgTreeIsBuilt) { drawOrgTree(); orgTreeIsBuilt = true; - //hideMe($('org_loading_div')); } } @@ -129,10 +128,14 @@ function updateLoc(location, depth) { newSearchDepth = depth; } + runEvt('common','locationUpdated'); + + /* if(!isFrontPage && (findCurrentPage() != MYOPAC) && (newSearchLocation != getLocation()) ) { searchBarSubmit(); } + */ } diff --git a/Open-ILS/web/opac/skin/default/xml/mresult.xml b/Open-ILS/web/opac/skin/default/xml/mresult.xml index b22a99ae44..ae2b1e2312 100644 --- a/Open-ILS/web/opac/skin/default/xml/mresult.xml +++ b/Open-ILS/web/opac/skin/default/xml/mresult.xml @@ -9,6 +9,7 @@ + diff --git a/Open-ILS/web/opac/skin/default/xml/myopac_prefs.xml b/Open-ILS/web/opac/skin/default/xml/myopac_prefs.xml index d24fea3c46..98090b903b 100644 --- a/Open-ILS/web/opac/skin/default/xml/myopac_prefs.xml +++ b/Open-ILS/web/opac/skin/default/xml/myopac_prefs.xml @@ -13,7 +13,9 @@ + diff --git a/Open-ILS/web/opac/skin/default/xml/rdetail.xml b/Open-ILS/web/opac/skin/default/xml/rdetail.xml index 43ffdd8009..9564c82be0 100644 --- a/Open-ILS/web/opac/skin/default/xml/rdetail.xml +++ b/Open-ILS/web/opac/skin/default/xml/rdetail.xml @@ -8,6 +8,7 @@ + + -- 2.43.2