From c1d4ded2b03bcd0d2f260b18d4ca257cad5433e6 Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 11 Nov 2005 19:18:07 +0000 Subject: [PATCH] using new slimtree for sidebars added authority retrieval git-svn-id: svn://svn.open-ils.org/ILS/trunk@2003 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/common/js/config.js | 1 + Open-ILS/web/opac/common/js/opac_utils.js | 4 +- Open-ILS/web/opac/locale/en-US/lang.dtd | 2 +- Open-ILS/web/opac/skin/default/css/layout.css | 2 +- .../web/opac/skin/default/js/result_common.js | 86 +++++++++++++++---- .../web/opac/skin/default/xml/js_common.xml | 1 + .../opac/skin/default/xml/result_common.xml | 30 ------- .../opac/skin/default/xml/result_table.xml | 2 +- .../web/opac/skin/default/xml/sidebar.xml | 51 ++++++----- 9 files changed, 107 insertions(+), 72 deletions(-) diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js index 6840706c4d..b6272c15ab 100644 --- a/Open-ILS/web/opac/common/js/config.js +++ b/Open-ILS/web/opac/common/js/config.js @@ -193,6 +193,7 @@ var FETCH_CHECKED_OUT = "open-ils.circ:open-ils.circ.actor.user.checked_out"; var FETCH_HOLDS = "open-ils.circ:open-ils.circ.holds.retrieve"; var FETCH_FINES_SUMMARY = "open-ils.actor:open-ils.actor.user.fines.summary"; var FETCH_TRANSACTIONS = "open-ils.actor:open-ils.actor.user.transactions.have_charge.fleshed"; +var FETCH_CROSSREF = "open-ils.search:open-ils.search.authority.crossref"; /* ---------------------------------------------------------------------------- */ diff --git a/Open-ILS/web/opac/common/js/opac_utils.js b/Open-ILS/web/opac/common/js/opac_utils.js index 07779ee235..e500548c8a 100644 --- a/Open-ILS/web/opac/common/js/opac_utils.js +++ b/Open-ILS/web/opac/common/js/opac_utils.js @@ -416,11 +416,13 @@ function unHideMe(obj) { removeCSSClass(obj, config.css.hide_me); } /* ----------------------------------------------------------------------- */ function drawOrgTree() { G.ui.common.org_tree.innerHTML = buildOrgSelector().toString(); + //buildOrgSelector(G.ui.common.org_tree); } var orgTreeSelector; -function buildOrgSelector() { +function buildOrgSelector(node) { var tree = new dTree("orgTreeSelector"); + //var tree = new SlimTree(node); for( var i in orgArraySearcher ) { var node = orgArraySearcher[i]; if( node == null ) continue; diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index 40a82236e1..6be654f828 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -1,7 +1,7 @@ -"> + diff --git a/Open-ILS/web/opac/skin/default/css/layout.css b/Open-ILS/web/opac/skin/default/css/layout.css index c190ac0bc2..9ffd4c156f 100644 --- a/Open-ILS/web/opac/skin/default/css/layout.css +++ b/Open-ILS/web/opac/skin/default/css/layout.css @@ -92,7 +92,7 @@ border-left: 1px solid #E0E0E0; border-top: 1px solid #E0E0E0; border-bottom: 1p .result_table_pic { height: 50px; width: 40px; border: none;} .result_table_pic_header { width: 43px; } -.result_table_row { text-align: left; } +.result_table_row { text-align: left; width: 100%;} .result_table_subtable { width: 100%; border-collapse: collapse; vertical-align: top;} .result_table_subtbody { height: 100%; width: 100%; } .result_table_title_cell { text-align: left; } 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 740e54a5be..6788a1d1dd 100644 --- a/Open-ILS/web/opac/skin/default/js/result_common.js +++ b/Open-ILS/web/opac/skin/default/js/result_common.js @@ -329,42 +329,98 @@ function resultDrawSubjects() { var ss = []; for( var s in subjs ) ss.push(subjs[s].sub); - resultDrawSidebarStuff(STYPE_SUBJECT, G.ui.sidebar.subject_item, - config.names.sidebar.subject_item, ss, G.ui.sidebar.subject); + + resultDrawSidebarTrees( + STYPE_SUBJECT, + "subjectSidebarTree", ss, + getId("subject_tree_sidebar"), + getId("subject_sidebar_tree_div") ); } function resultDrawAuthors() { var auths = new Array(); for( var s in authorCache ) auths.push(s); - resultDrawSidebarStuff(STYPE_AUTHOR, G.ui.sidebar.author_item, - config.names.sidebar.author_item, auths.sort(), G.ui.sidebar.author); + + resultDrawSidebarTrees( + STYPE_AUTHOR, + "authorSidebarTree", auths.sort(), + getId("author_tree_sidebar"), + getId("author_sidebar_tree_div") ); } function resultDrawSeries() { var sers = new Array(); for( var s in seriesCache ) sers.push(s); - resultDrawSidebarStuff(STYPE_SERIES, G.ui.sidebar.series_item, - config.names.sidebar.series_item, sers.sort(), G.ui.sidebar.series); + resultDrawSidebarTrees( + STYPE_SERIES, + "seriesSidebarTree", sers.sort(), + getId("series_tree_sidebar"), + getId("series_sidebar_tree_div") ); } -/* search type, template node, href link name, array of text, node to unhide */ -function resultDrawSidebarStuff(stype, node, linkname, items, wrapperNode) { - var parent = node.parentNode; - var template = parent.removeChild(node); - var x = 0; - var newnode = template.cloneNode(true); +function resultDrawSidebarTrees( stype, treeName, items, wrapperNode, destNode ) { + var tree; + eval("tree = " + treeName); + var found = false; + var x = 0; for( var i in items ) { + if(isNull(items[i])) continue; if(x++ > 7) break; - buildSearchLink(stype, items[i], findNodeByName(newnode, linkname), 100); - parent.appendChild(newnode); - newnode = template.cloneNode(true); + + var item = normalize(truncate(items[i], 65)); + var trunc = 65; + var args = {}; + var href = resultQuickLink( items[i], stype ); + tree.addNode( stype + "_" + items[i], treeName + 'Root', item, href ); + + var req = new Request(FETCH_CROSSREF, stype, items[i]); + req.request._tree = tree; + req.request._item = items[i]; + req.request._stype = stype; + req.callback(resultAppendCrossRef); + req.send(); + found = true; } if(found) unHideMe(wrapperNode); } +function resultQuickLink( term, type ) { + var args = {}; + args.page = MRESULT; + args[PARAM_OFFSET] = 0; + args[PARAM_TERM] = term; + args[PARAM_STYPE] = type; + return buildOPACLink(args); +} + + +function resultAppendCrossRef(r) { + var tree = r._tree + var item = r._item + var stype = r._stype; + var result = r.getResultObject(); + var froms = result['from']; + var alsos = result['also']; + + var total = 0; + + for( var i = 0; (total++ < 5 && i < froms.length); i++ ) { + var string = normalize(truncate(froms[i], 45)); + if(getId(stype + '_' + froms[i])) continue; + tree.addNode(stype + '_' + froms[i], + stype + '_' + item, string, resultQuickLink(froms[i],stype)); + } + for( var i = 0; (total++ < 10 && i < alsos.length); i++ ) { + var string = normalize(truncate(alsos[i], 45)); + if(getId(stype + '_' + alsos[i])) continue; + tree.addNode(stype + '_' + alsos[i], + stype + '_' + item, string, resultQuickLink(alsos[i],stype)); + } +} + diff --git a/Open-ILS/web/opac/skin/default/xml/js_common.xml b/Open-ILS/web/opac/skin/default/xml/js_common.xml index cc5526174a..15f99e9430 100644 --- a/Open-ILS/web/opac/skin/default/xml/js_common.xml +++ b/Open-ILS/web/opac/skin/default/xml/js_common.xml @@ -10,6 +10,7 @@ + diff --git a/Open-ILS/web/opac/skin/default/xml/result_common.xml b/Open-ILS/web/opac/skin/default/xml/result_common.xml index dd69fd4654..944c32a571 100644 --- a/Open-ILS/web/opac/skin/default/xml/result_common.xml +++ b/Open-ILS/web/opac/skin/default/xml/result_common.xml @@ -29,38 +29,8 @@ config.names.result.count_cell = "copy_count_cell"; - - -
Loading Results...
- - - diff --git a/Open-ILS/web/opac/skin/default/xml/result_table.xml b/Open-ILS/web/opac/skin/default/xml/result_table.xml index 349550676b..c8e15256ec 100644 --- a/Open-ILS/web/opac/skin/default/xml/result_table.xml +++ b/Open-ILS/web/opac/skin/default/xml/result_table.xml @@ -42,7 +42,7 @@ Start &llt;&llt; - >> + &ggt;&ggt; End diff --git a/Open-ILS/web/opac/skin/default/xml/sidebar.xml b/Open-ILS/web/opac/skin/default/xml/sidebar.xml index c979dca4ed..56fddeeeef 100644 --- a/Open-ILS/web/opac/skin/default/xml/sidebar.xml +++ b/Open-ILS/web/opac/skin/default/xml/sidebar.xml @@ -54,38 +54,43 @@ My Title Details - - -