A working rdetail_summary.xml for LUL skin
authordbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 12 Apr 2011 20:18:51 +0000 (20:18 +0000)
committerdbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 12 Apr 2011 20:18:51 +0000 (20:18 +0000)
subjectMe() gets objects with .textContent properties that
BT.textContent() / dojox.data.dom.textContent() doesn't parse;
works fine in the inline implementation in the default skin
though.

Merge in the other 2.0-isms as we go.

git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/branches/rel_2_0@1334 6d9bc8c9-1ec2-4278-b937-99fde70a366f

web/opac/skin/lul/xml/rdetail/rdetail_summary.xml

index 1afb2b0..90fbbb7 100644 (file)
@@ -29,7 +29,7 @@
                                <td nowrap='nowrap' class='rdetail_desc'>&common.title;</td>            
                                 <td type='opac/slot-data' query='datafield[tag=245]' class='rdetail_item'>
                                          <script type='opac/slot-format'><![CDATA[
-                                               var rdetail_bib_title = dojox.data.dom.textContent(item);
+                                               var rdetail_bib_title = BT.textContent(item);
                                                var title_node = dojo.query('head title');
                                                dojo.addOnLoad(function() {dojo.place('<title>' + rdetail_bib_title + '</title>', title_node[0], 'replace');});
                                                 return '<span>' + rdetail_bib_title + '</span><br/>';
@@ -42,7 +42,7 @@
                                <td type='opac/slot-data' query='datafield[tag=246] subfield[code=a]' class='rdetail_item'>
                                        <script type='opac/slot-format'><![CDATA[
                                                dojo.query('#tag246').removeClass('hide_me');
-                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                        ]]></script>
                                </td>
                        </tr>
@@ -51,7 +51,7 @@
                                <td type='opac/slot-data' query='datafield[tag="247"]' class='rdetail_item'>
                                        <script type='opac/slot-format'><![CDATA[
                                                dojo.query('#tag247').removeClass('hide_me');
-                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                        ]]></script>
                                </td>
                        </tr>
@@ -67,7 +67,7 @@
                                <td type='opac/slot-data' query='datafield[tag=100]' class='rdetail_item'>
                                        <script type='opac/slot-format'><![CDATA[
                                                dojo.query('#tag100').removeClass('hide_me');
-                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                        ]]></script>
                                </td>
                        </tr>
@@ -76,7 +76,7 @@
                                <td type='opac/slot-data' query='datafield[tag=110]' class='rdetail_item'>
                                        <script type='opac/slot-format'><![CDATA[
                                                dojo.query('#tag110').removeClass('hide_me');
-                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                        ]]></script>
                                </td>
                        </tr>
@@ -85,7 +85,7 @@
                                <td type='opac/slot-data' query='datafield[tag=111]' class='rdetail_item'>
                                        <script type='opac/slot-format'><![CDATA[
                                                dojo.query('#tag111').removeClass('hide_me');
-                                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                        ]]></script>
                                </td>
                        </tr>
@@ -94,7 +94,7 @@
                                <td type='opac/slot-data' query='datafield[tag=020]' class='rdetail_item'>
                                    <script type='opac/slot-format'><![CDATA[
                                        dojo.query('#tag020').removeClass('hide_me');
-                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       return '<span>' + BT.textContent(item) + '</span><br/>';
                                    ]]></script>
                                </td>
 
                                <td type='opac/slot-data' query='datafield[tag=022]' class='rdetail_item' id='rdetail_issn'>
                                    <script type='opac/slot-format'><![CDATA[
                                        dojo.query('#tag022').removeClass('hide_me');
-                                       var issn_raw = dojo.trim(dojox.data.dom.textContent(item));
+                                       var issn_raw = dojo.trim(BT.textContent(item));
 
                                        // textContent returns multiple subfields concatenated with linefeeds,
                                        // so our regex needs to match against linefeeds. "." does not match
                                <td type='opac/slot-data' query='datafield[tag=250]' class='rdetail_item'>
                                    <script type='opac/slot-format'><![CDATA[
                                        dojo.query('#tag250').removeClass('hide_me');
-                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       return '<span>' + BT.textContent(item) + '</span><br/>';
                                    ]]></script>
                            </td>
                        </tr>
                                <td type='opac/slot-data' query='datafield[tag=260]' class='rdetail_item'>
                                    <script type='opac/slot-format'><![CDATA[
                                        dojo.query('#tag260').removeClass('hide_me');
-                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       return '<span>' + BT.textContent(item) + '</span><br/>';
                                    ]]></script>
                            </td> 
                        </tr>
                                <td type='opac/slot-data' query='datafield[tag=520]' class='rdetail_item'>
                                    <script type='opac/slot-format'><![CDATA[
                                        dojo.query('#tag520').removeClass('hide_me');
-                                       return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                                       return '<span>' + BT.textContent(item) + '</span><br/>';
                                    ]]></script>
                                </td>
 
                        <td type='opac/slot-data' query='datafield[tag=500]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag500').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                ]]></script>
                        </td>
                </tr>
                        <td type='opac/slot-data' query='datafield[tag=505]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag505').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                ]]></script>
                        </td>
                </tr>
                        <td type='opac/slot-data' query='datafield[tag=506] subfield[code=a]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag506').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span> ';
+                               return '<span>' + BT.textContent(item) + '</span> ';
                                ]]></script>
                        </td>
                </tr>
                        <td type='opac/slot-data' query='datafield[tag=511]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag511').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                ]]></script>
                        </td>
                </tr>
                                var text = '';
                                var list = dojo.query( 'subfield:not([code=4])', item );
                                for (var i =0; i < list.length; i++) {
-                                       text += dojox.data.dom.textContent(list[i]) + ' ';
+                                       text += BT.textContent(list[i]) + ' ';
                                }
                                return '<span>' + text + '</span><br/>';
                                ]]></script>
                        <td type='opac/slot-data' query='datafield[tag=780]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag780').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                ]]></script>
                        </td>
                </tr>
                        <td type='opac/slot-data' query='datafield[tag=785]' class='rdetail_item'>
                                <script type='opac/slot-format'><![CDATA[
                                dojo.query('#tag785').removeClass('hide_me');
-                               return '<span>' + dojox.data.dom.textContent(item) + '</span><br/>';
+                               return '<span>' + BT.textContent(item) + '</span><br/>';
                                ]]></script>
                        </td>
                </tr>
                                ]]></script>
                        </td>
                </tr>
+                       <tr name="serial_holdings_label"
+                               class="result_table_title_cell hide_me">
+                <td class="rdetail_desc">&rdetail.summary.issues_held;</td>
+                <td templated="true" type="opac/slot-data"
+                    query="datafield[tag='901'] subfield[code='c']"
+                    class="rdetail_item">
+                    ${holdingsStatement}
+                                       <span class="hide_me" name="holdingsStatement" type="opac/template-value"><![CDATA[
+                        if (fetchOrgSettingDefault(
+                            getLocation(),
+                            "opac.fully_compressed_serial_holdings"
+                        )) {
+                            var bibid = BT.textContent(item_list[0]);
+                            var blob = fieldmapper.standardRequest(
+                                ["open-ils.serial",
+                                    "open-ils.serial.bib.summary_statements"],
+                                [bibid, {
+                                    "orgid": getLocation(), "depth": getDepth()
+                                }]
+                            );
+
+                            var fake = dojo.create("td");
+                            var something = false;
+
+                            for (var i in blob) {
+                                if (!blob[i].length) continue;
+                                if (something) dojo.create("br", null, fake);
+                                something = true;
+
+                                var a = dojo.create(
+                                    "a", {
+                                        "innerHTML": "[+]",
+                                        "href": "javascript:void(0);",
+                                        "onclick":
+                                            "rdetailDrawExpandedHoldings(this,"+
+                                            bibid + ",'" + i + "');",
+                                        "style": {"marginRight": "1.5em"}
+                                    }, fake
+                                );
+                                dojo.create(
+                                    "span", {
+                                        "innerHTML": blob[i].join(", ")
+                                    }, fake
+                                );
+                                dojo.create(
+                                    "span", {"id": "holding_type_" + i}, fake
+                                );
+                            }
+
+                            if (something)
+                                unHideMe(slot.parentNode);
+
+                            return fake.innerHTML;
+                        } else {
+                            return "";
+                        }
+                                       ]]></span>
+                               </td>
+                       </tr>
 
                </tbody>
        </table>
         var first_issn = true;
 
         function subjectMe(tag, item) {
-           dojo.query(tag).removeClass('hide_me');
+            dojo.query(tag).removeClass('hide_me');
             var cgi = new CGI();
             var other_params = [ 'd', 'l', 'r', 'av', 's', 'sd' ];
             var total = '';
             var output = [];
-            var list = dojo.query( 'subfield:not([code=2])', item );
-            for (var i =0; i < list.length; i++) {
-                total += dojox.data.dom.textContent(list[i]) + ' ';
+            dojo.query( 'subfield:not([code=2])', item ).forEach( function (onesub) {
+                var subtext;
+                try {   
+                        subtext = onesub.textContent;
+                        total +=  subtext + ' ';
+                } catch (e) {
+                        return;
+                }
                 var current = '<a class="search_link" href="rresult.xml?rt=subject&tp=subject&t=' + total;
                 for (var p in other_params) {
                 if (cgi.param(other_params[p]))
                     current += '&' + other_params[p] + '=' + cgi.param(other_params[p]);
                 }
-                current += '">' + dojox.data.dom.textContent(list[i]) + '</a>'
+                current += '">' + subtext + '</a>'
                 output.push(current);
-            }
+            });
             return '<span>' + output.join(' &#x2d;&#x2d; ') + '</span><br/>';
         }
 
         dojo.addOnLoad( function () {
-            var here = findOrgUnit(getLocation());
-            if (getDepth() > 0 || getDepth === 0 ) {
-                while (getDepth() < findOrgDepth(here))
-                    here = findOrgUnit( here.parent_ou() );
-            }
-
-            dojo.require('openils.BibTemplate');
-            new openils.BibTemplate({ record : new CGI().param('r'), org_unit : here.shortname() }).render();
+            setTimeout( function () {
+                var here = findOrgUnit(getLocation());
+                if (getDepth() > 0 || getDepth === 0 ) {
+                    while (getDepth() < findOrgDepth(here))
+                        here = findOrgUnit( here.parent_ou() );
+                }
+
+                dojo.require('openils.BibTemplate');
+                new openils.BibTemplate({ record : new CGI().param('r'), org_unit : here.shortname() }).render();
+            }, 0);
         });
        ]]></script>