added context menu for XUL on the record detail page
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 12 Jul 2005 16:10:00 +0000 (16:10 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 12 Jul 2005 16:10:00 +0000 (16:10 +0000)
added holds cancelling on my opac

git-svn-id: svn://svn.open-ils.org/ILS/trunk@1145 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/javascript/opac/AbstractRecordResultPage.js
Open-ILS/src/javascript/opac/MyOPACSPage.js
Open-ILS/src/javascript/opac/RecordDetailPage.js
Open-ILS/src/javascript/opac/RecordResultPage.js

index 6d14653..7f10618 100644 (file)
@@ -275,7 +275,7 @@ AbstractRecordResultPage.prototype.displayRecord =
        author_cell.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        author_cell.appendChild(this.mkLink(record.doc_id(), "author", author ));
 
-       var marcd = elem("div");
+       var marcd = null;
        if(instanceOf(this, RecordResultPage)) {
                var span = createAppElement("span");
                span.style.marginLeft = "10px";
@@ -292,23 +292,17 @@ AbstractRecordResultPage.prototype.displayRecord =
                author_cell.appendChild(span);
 
                var marcb = elem( "a",
-                       {
-                               href:"javascript:void(0)",
-                               style: "text-decoration:underline"
-                       }, {}, "View MARC" );
+                       {       href:"javascript:void(0)", 
+                               style: "text-decoration:underline;"
+                       }, null, "View MARC" );
 
                debug("Setting up view marc callback with record " + record.doc_id());
                var func = buildViewMARCWindow(record);
                marcb.onclick = func;
 
-               marcd = elem( "div", { style: "float:right" } );
+               marcd = elem( "div", { style: "float:right;font-size:x-small;" } );
                marcd.appendChild(marcb);
 
-               //author_cell.appendChild(marcd);
-               //misc_row.insertCell(misc_row.cells.length).appendChild(marcd);
-               //c.appendChild(marcd);
-
-
        }
 
        var holddiv = null;
@@ -359,7 +353,7 @@ AbstractRecordResultPage.prototype.displayRecord =
 
        if(holddiv) tc.appendChild(holddiv);
        tc2.appendChild(mktext(" "));
-       tc3.appendChild(marcd);
+       if(marcd) tc3.appendChild(marcd);
 
        c.appendChild(tab);
 
index 97d0e78..056fa61 100644 (file)
@@ -594,15 +594,15 @@ MyOPACSPage.prototype._drawHolds = function() {
 
        for( var idx = 0; idx != holds.length; idx++ ) {
                debug("Displaying hold " + holds[idx].id());
-               _doCallbackDance(table, holds[idx]);
+               _doCallbackDance(table, holds[idx], this.user.session_id, this);
        }
 
 }
 
-function _doCallbackDance(table, hold) {
+function _doCallbackDance(table, hold, session_id, obj) {
        if(hold == null) return;
        debug("Setting holds callback with hold " + hold.id() );
-       var func = function(rec) {_drawHoldsRow(table, hold, rec)};
+       var func = function(rec) {_drawHoldsRow(table, hold, rec, session_id, obj)};
 
        /* grab the record that is held */
        if(hold.hold_type() == "M")
@@ -613,7 +613,7 @@ function _doCallbackDance(table, hold) {
 }
 
 
-function _drawHoldsRow(table, hold, record) {
+function _drawHoldsRow(table, hold, record, session_id, obj) {
 
        if(record == null || record.length == 0) return;
        debug("In holds callback with hold " + hold );
@@ -668,15 +668,37 @@ function _drawHoldsRow(table, hold, record) {
        cell = row.insertCell(row.cells.length);
        var a = elem("a",{href:"javascript:void(0);",
                        style:"text-decoration:underline"},null, "Cancel");
-       a.onclick = function(){_cancelHoldRequest(hold);};
+       a.onclick = function(){_cancelHoldRequest(hold, a, session_id, obj);};
        add_css_class(cell, "my_opac_profile_cell");
        cell.appendChild(a);
 }
 
-function _cancelHoldRequest(hold) {
-       alert("Canceling hold " + hold.id());
+
+function _cancelHoldRequest(hold, node, session_id, obj) {
+       var box = new PopupBox(node);
+       box.title("Cancel Hold");
+       box.addText("Are you sure you wish to cancel the hold?");
+       var but = elem("input",{type:"submit",value:"Cancel Hold"});
+       var can = elem("input",{type:"submit",value:"Do not Cancel Hold"});
+       box.makeGroup([but, can]);
+       but.onclick = function(){
+               _cancelHold(hold, session_id); box.hide(); obj.draw("holds");};
+       can.onclick = function() { box.hide(); };
+       box.show();
 }
 
+function _cancelHold(hold, session_id) {
+       var req = new RemoteRequest(
+               "open-ils.circ", "open-ils.circ.hold.cancel", 
+               session_id, hold );
+
+       req.send(true);
+       if(req.getResultObject())
+               alert("Hold successfully cancelled");
+}
+
+
+
 function _buildChangeEmailNotify(hold) {
        var a = elem("a",{href:"javascript:void(0);",
                        style:"text-decoration:underline"},null, hold.email_notify());
index e408753..11a72f8 100644 (file)
@@ -42,6 +42,21 @@ RecordDetailPage.prototype.setPageTrail = function() {
 }
 
 
+RecordDetailPage.prototype.buildContextMenu = function(record) {
+
+       var menu_name = "record_detail_menu";
+       var menu = globalMenuManager.buildMenu(menu_name);
+
+       globalMenuManager.setContext(getById("record_detail_main_box"), menu);
+       var func = buildViewMARCWindow(record);
+       menu.addItem("View MARC", func);
+
+       if(isXUL())
+               xulEvtRecordDetailDisplayed( menu, record );
+       getDocument().body.appendChild(menu.getNode());
+}
+
+
 RecordDetailPage.instance = function() {
        if( globalRecordDetailPage != null )
                return globalRecordDetailPage;
@@ -389,6 +404,7 @@ RecordDetailPage.prototype.drawRecord = function(record) {
        if(!orgUnit) orgUnit = globalLocation;
 
        this.drawCopyTrees(orgUnit, record);
+       this.buildContextMenu(record);
 }
 
 /* sets up the cover art image */
index 1e7a035..b4dd96a 100644 (file)
@@ -96,13 +96,13 @@ RecordResultPage.prototype.prev = function() {
        url_redirect( paramArray ) 
 }
 
+
 RecordResultPage.prototype.addMenuItems = function(menu, record) {
 
        var func = buildViewMARCWindow(record);
        menu.addItem("View MARC", func);
        if(isXUL())
                xulEvtRecordResultDisplayed( menu, record );
-
 }