turned <b.. /> into <b..> </b> for internet explorer.
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 15 Mar 2006 21:53:46 +0000 (21:53 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 15 Mar 2006 21:53:46 +0000 (21:53 +0000)
moved holds editing into the current hold creation pane to re-use the code
ripped out the old hold editing code in my account

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

13 files changed:
Open-ILS/web/opac/common/js/config.js
Open-ILS/web/opac/common/js/opac_utils.js
Open-ILS/web/opac/images/small_logo.jpg
Open-ILS/web/opac/skin/default/css/layout.css
Open-ILS/web/opac/skin/default/js/holds.js
Open-ILS/web/opac/skin/default/js/myopac.js
Open-ILS/web/opac/skin/default/js/rdetail.js
Open-ILS/web/opac/skin/default/xml/common/cn_browse.xml
Open-ILS/web/opac/skin/default/xml/common/holds.xml
Open-ILS/web/opac/skin/default/xml/common/logo.xml
Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml
Open-ILS/web/opac/skin/default/xml/myopac/myopac_prefs.xml
Open-ILS/web/opac/skin/default/xml/page_rdetail.xml

index 6f593c5..bf515e2 100644 (file)
@@ -104,9 +104,10 @@ var ADVTYPE_ISSN   = 'issn';
 var LOGOUT_WARNING_TIME = 30; /* "head up" for session timeout */
 
 /* user preferences */
-var PREF_HITS_PER = 'opac.hits_per_page';
-var PREF_BOOKBAG = 'opac.bookbag_enabled';
-var PREF_DEF_FONT = 'opac.default_font';
+var PREF_HITS_PER              = 'opac.hits_per_page';
+//var PREF_BOOKBAG             = 'opac.bookbag_enabled';
+var PREF_DEF_FONT              = 'opac.default_font';
+var PREF_HOLD_NOTIFY = 'opac.hold_notify';
 
 
 /* container for global variables shared accross pages */
index 81bd4ba..61e8b60 100644 (file)
@@ -331,7 +331,12 @@ function buildSearchLink(type, string, linknode, trunc) {
 function grabUser(ses, force) {
 
        if(!ses && isXUL()) ses = xulG['authtoken'];
-       if(!ses) ses = cookieManager.read(COOKIE_SES);
+
+       if(!ses) {
+               ses = cookieManager.read(COOKIE_SES);
+               /* https cookies don't show up in http servers.. */
+       }
+
        if(!ses) return false;
 
        if(!force) 
@@ -357,7 +362,7 @@ function grabUser(ses, force) {
        G.user = user;
        G.user.fleshed = false;
        G.user.session = ses;
-       cookieManager.write(COOKIE_SES, ses, '+1y');
+       cookieManager.write(COOKIE_SES, ses, '+1d');
 
        grabUserPrefs();
        if(G.user.prefs['opac.hits_per_page'])
@@ -367,9 +372,9 @@ function grabUser(ses, force) {
                setFontSize(G.user.prefs[PREF_DEF_FONT]);
 
        var at = getAuthtime();
-       if(isXUL()) at = xulG['authtime'];
+       //if(isXUL()) at = xulG['authtime'];
 
-       if(at) new AuthTimer(at).run(); 
+       if(at && !isXUL()) new AuthTimer(at).run(); 
        return G.user;
 }
 
index 62dd385..90afc99 100644 (file)
Binary files a/Open-ILS/web/opac/images/small_logo.jpg and b/Open-ILS/web/opac/images/small_logo.jpg differ
index 42038d6..b827a44 100644 (file)
@@ -38,7 +38,15 @@ table { border-collapse: collapse; }
 
 
 #loading_div { width: 100%;}
+
+
+/* default to image size to avoid image stretching */
+/*
 .logo { height: 65px; width: 180px; }
+*/
+
+
+
 /*
 .org_tree { height: 500px; padding-left: 2px; padding-right: 2px; }            
 */
index 95d193d..0bf2139 100644 (file)
@@ -6,6 +6,8 @@ var holdRecipient;
 var holdRequestor
 var holdEmail;
 var holdPhone;
+var holdEditHold;
+var holdEditCallback;
 
 
 function holdsHandleStaff() {
@@ -29,13 +31,15 @@ function _holdsHandleStaff() {
        holdsDrawWindow( currentHoldRecord, null );
 }
 
-function holdsDrawWindow(recid, type) {
+function holdsDrawWindow(recid, type, edithold, done_callback) {
 
        if(recid == null) {
                recid = currentHoldRecord;
                if(recid == null) return;
        }       
        currentHoldRecord = recid;
+       holdEditHold = edithold;
+       holdEditCallback = done_callback;
        
        if(isXUL() && holdRecipient == null ) { 
                holdsHandleStaff();
@@ -55,9 +59,52 @@ function holdsDrawWindow(recid, type) {
 
 
        swapCanvas($('check_holds_box'));
-       setTimeout( function() { holdsCheckPossibility(recid, type); }, 10 );
+
+       if(!edithold) {
+               setTimeout( function() { holdsCheckPossibility(recid, type); }, 10 );
+
+       } else {
+               _holdsDrawWindow(recid, type);
+               _holdsUpdateEditHold(edithold);
+       }
+}
+
+function _holdsUpdateEditHold(hold) {
+
+       if( hold.capture_time() )
+               $('holds_org_selector').disabled = true;
+       else
+               setSelector($('holds_org_selector'), hold.pickup_lib());
+
+       $('holds_submit').onclick = holdsEditHold;
+
+
+       if(hold.phone_notify()) {
+               $('holds_enable_phone').checked = true;
+               $('holds_phone').value = hold.phone_notify();
+
+       } else {
+               $('holds_phone').disabled = true;
+               $('holds_enable_phone').checked = false;
+       }
+
+       if(hold.email_notify()) {
+               $('holds_enable_email').checked = true;
+
+       } else {
+               $('holds_enable_email').checked = false;
+       }
 }
 
+function holdsEditHold() {
+       var hold = holdsBuildHoldFromWindow();
+       hold.id( holdEditHold.id() );
+       holdsUpdate(hold);
+       showCanvas();
+       if(holdEditCallback) holdEditCallback(hold);
+}
+
+
 function _holdsDrawWindow(recid, type) {
 
        swapCanvas($('holds_box'));
@@ -86,13 +133,26 @@ function _holdsDrawWindow(recid, type) {
                $('holds_format').appendChild(text(' '));
        }
 
+
        $('holds_phone').value = holdRecipient.day_phone();
        appendClear( $('holds_email'), text(holdRecipient.email()));
-       $('holds_cancel').onclick = showCanvas;
-       $('holds_submit').onclick = holdsPlaceHold; 
 
+       var pref = G.user.prefs[PREF_HOLD_NOTIFY];
+
+       if(pref) {
+               if( ! pref.match(/email/i) ) 
+                       $('holds_enable_email').checked = false;
+
+               if( ! pref.match(/phone/i) ) {
+                       $('holds_phone').disabled = true;
+                       $('holds_enable_phone').checked = false;
+               }
+       }
+
+       $('holds_cancel').onclick = showCanvas;
+       $('holds_submit').onclick = function(){holdsPlaceHold(holdsBuildHoldFromWindow())};
        appendClear($('holds_physical_desc'), text(rec.physical_description()));
-       if(hold.hold_type() == 'M') hideMe($('hold_physical_desc_row'));
+       if(type == 'M') hideMe($('hold_physical_desc_row'));
 }
 
 
@@ -130,7 +190,7 @@ function holdsBuildOrgSelector(node) {
        }
 }
 
-function holdsPlaceHold() {
+function holdsBuildHoldFromWindow() {
 
        var org = $('holds_org_selector').options[
                $('holds_org_selector').selectedIndex].value;
@@ -141,13 +201,13 @@ function holdsPlaceHold() {
        if( $('holds_enable_phone').checked ) {
                var phone = $('holds_phone').value;
                if( !phone.match(REGEX_PHONE) ) {
-                       alert($('holds_bad_phone').textContent);
+                       alert($('holds_bad_phone').innerHTML);
                        return;
                }
                hold.phone_notify(phone);
 
        } else {
-               hold.phone_notify(null);
+               hold.phone_notify("");
        }
 
        if( $('holds_enable_email').checked ) 
@@ -156,14 +216,17 @@ function holdsPlaceHold() {
                hold.email_notify(0);
 
 
-
        hold.pickup_lib(org); 
        hold.request_lib(org); 
        hold.requestor(holdRequestor.id());
        hold.usr(holdRecipient.id());
        hold.hold_type('T');
        hold.target(currentHoldRecord);
+       return hold;
+}
        
+function holdsPlaceHold(hold) {
+
        var req = new Request( CREATE_HOLD, holdRequestor.session, hold );
        req.send(true);
        var res = req.result();
@@ -183,4 +246,13 @@ function holdsCancel(holdid, user) {
        return req.result();
 }
 
+function holdsUpdate(hold, user) {
+       if(!user) user = G.user;
+       var req = new Request(UPDATE_HOLD, user.session, hold);
+       req.send(true);
+       var x = req.result(); /* cause an exception if there is one */
+}
+
+
+
 
index 81e78c2..e5ae4ec 100644 (file)
@@ -260,143 +260,32 @@ function myOPACDrawHolds(r) {
 
                var orglink = $n(row, "myopac_holds_location");
                orglink.appendChild(text(findOrgUnit(h.pickup_lib()).name()));
-               orglink.setAttribute('href', 'javascript:myOPACChangeHoldPickupLib('+h.id()+');');
 
-               if(h.email_notify()) 
-                       $n(row, "myopac_holds_email_link").checked = true;
-               else
-                       $n(row, "myopac_holds_email_link").checked = false;
-
-               var plink = $n(row, "myopac_holds_phone_link");
-
-               if( h.phone_notify() ) {
-                       plink.appendChild(text(h.phone_notify()));
-                       $n(row, 'myopac_holds_enable_phone').checked = true;
-               } else {
-                       $n(row, 'myopac_holds_enable_phone').checked = false;
-               }
-
-               plink.setAttribute('href', 'javascript:myOPACChangeHoldPhone('+h.id()+');');
                tbody.appendChild(row);
 
                $n(row,'myopac_holds_cancel_link').setAttribute(
                        'href','javascript:myOPACCancelHold("'+ h.id()+'");'); 
-               unHideMe(row);
-
-               myOPACDrawHoldTitle(h);
-       }
-}
 
-var holdsOrgRowTemplate;
-function myOPACChangeHoldPickupLib(holdid) {
-       var hold = holdCache[holdid];
-       var row = $('myopac_holds_row_' + holdid + '_' + hold.target());
-       if(!holdsOrgRowTemplate)
-               holdsOrgRowTemplate = $('myopac_holds_org_row').cloneNode(true);
-       var orgrow = holdsOrgRowTemplate;
-       var tbody = row.parentNode;
-       if( row.nextSibling ) tbody.insertBefore(orgrow, row.nextSibling);
-       else tbody.appendChild(orgrow);
-       var selector = $n(orgrow, 'myopac_holds_org_selector');
-       buildOrgSel( selector, globalOrgTree, 0 );
-       setSelector( selector, hold.pickup_lib() );
-
-       for( var i = 0; i != selector.options.length; i++ ) {
-               var ou = findOrgUnit(selector.options[i].value);
-               var t = findOrgType(ou.ou_type());
-               if(!t.can_have_vols()) selector.options[i].disabled = true;
-       }
-
-       unHideMe(orgrow);
-
-       $n(orgrow, 'myopac_hold_org_update_submit').onclick = 
-               function(){myOPACUpdateHoldPickupLib(tbody, orgrow, hold);} 
-       $n(orgrow, 'myopac_hold_org_update_cancel').onclick = 
-               function(){tbody.removeChild(orgrow);}
-}
+               $n(row,'myopac_holds_edit_link').setAttribute(
+                       'href','javascript:myOPACEditHold("'+ h.id()+'");'); 
 
-function myOPACUpdateHoldPickupLib( tbody, orgrow, hold ) {
+               unHideMe(row);
 
-       if( hold.capture_time() ) {
-               alert($('myopac_cannot_change_pickup').textContent);
-               return;
+               myOPACDrawHoldTitle(h);
        }
-
-       var org = getSelectorVal($n(orgrow, 'myopac_holds_org_selector'));
-       hold.pickup_lib(org);
-       tbody.removeChild(orgrow);
-       myOPACUpdateHold(hold);
 }
 
-
-function myOPACUpdateHold(hold) {
-       var req = new Request(UPDATE_HOLD, G.user.session, hold);
-       req.send(true);
-       var x = req.result();
-       holdsTemplateRow = null
-       myOPACShowHolds();
-}
-
-
-function myOPACChangeHoldPhone(holdid) {
+function myOPACEditHold(holdid) {
        var hold = holdCache[holdid];
-       var phone;
-
-       var origphone = hold.phone_notify();
-       if(!origphone) origphone = G.user.day_phone();
-
-       phone = prompt($('myopac_hold_phone_change').innerHTML, origphone);
-       if(!phone) return;
-       if( phone == hold.phone_notify() ) return;
-       if( !phone.match(REGEX_PHONE) ) {
-               alert($('myopac_bad_phone').textContent);
-               myOPACChangeHoldPhone(holdid);
-               return;
-       }
-
-       hold.phone_notify(phone);
-       myOPACUpdateHold(hold);
-}
-
-
-function myopacChangeEmailNotify(node) {
-       var id = node.parentNode.parentNode.id.replace(/myopac_holds_row_/,"").replace(/_\d+$/,"");
-       var hold = holdCache[id];
-
-       if(!confirm($('myopac_hold_email_verify').innerHTML)) {
-               if( hold.email_notify() ) node.checked = true;
-               else node.checked = false;
-               return;
-       }
-
-       if( hold.email_notify() ) {
-               hold.email_notify(0);
-               node.checked = false;
-       } else {
-               hold.email_notify(1);
-               node.checked = true;
-       }
-
-       myOPACUpdateHold(hold);
-}
-
-function myopacChangePhoneNotify(node) {
-       var id = node.parentNode.parentNode.id.replace(/myopac_holds_row_/,"").replace(/_\d+$/,"");
-       var hold = holdCache[id];
-
-       if(!node.checked) {
-               if(!confirm($('myopac_hold_phone_verify').innerHTML)) {
-                       node.checked = true;
-                       return;
+       holdsDrawWindow(hold.target(), hold.hold_type(), hold, 
+               function(){
+                       holdsTemplateRow = null;
+                       myOPACShowHolds();
                }
-       }
-
-       if( hold.phone_notify() ) hold.phone_notify("");
-       else myOPACChangeHoldPhone(id);
-
-       myOPACUpdateHold(hold);
+       );
 }
 
+
 function myOPACCancelHold(holdid) {
        if( confirm($('myopac_holds_cancel_verify').innerHTML) ) {
                holdsCancel(holdid);
@@ -581,6 +470,7 @@ function myOPACShowCircTransaction(trans, record, circ) {
 function myOPACSavePrefs() {
        G.user.prefs[PREF_HITS_PER] = getSelectorVal($('prefs_hits_per'));
        G.user.prefs[PREF_DEF_FONT] = getSelectorVal($('prefs_def_font'));
+       G.user.prefs[PREF_HOLD_NOTIFY] = getSelectorVal($('prefs_hold_notify'));
        if(commitUserPrefs())
                alert($('prefs_update_success').innerHTML);
        else alert($('prefs_update_failure').innerHTML);
@@ -595,10 +485,28 @@ function myOPACShowDefFont() {
        setSelector($('prefs_def_font'), font);
 }
 
+function myOPACShowHoldNotify() {
+       var pref = G.user.prefs[PREF_HOLD_NOTIFY];
+
+       if(pref) {
+               if(pref.match(/email/i) && pref.match(/phone/i)) {
+                       setSelector($('prefs_hold_notify'), 'phone:email');
+               } else if( pref.match(/email/i) ) {
+                       setSelector($('prefs_hold_notify'), 'email');
+               } else if( pref.match(/phone/i) ) {
+                       setSelector($('prefs_hold_notify'), 'phone');
+               }
+
+       } else {
+               setSelector($('prefs_hold_notify'), 'phone:email');
+       }
+}
+
 function myOPACShowPrefs() {
        grabUserPrefs();
        myOPACShowHitsPer();
        myOPACShowDefFont();
+       myOPACShowHoldNotify();
        hideMe($('myopac_prefs_loading'));
 }
 
@@ -774,7 +682,10 @@ function myOPACShowBookbags(force) {
                if( cont.pub() ) {
                        unHideMe($n(row, 'myopac_bb_published_yes'));
                        var link = $n(row, 'myopac_bb_published_view');
+                       /*
                        link.setAttribute('href', buildExtrasLink( 'bbags.xml?bb='+cont.id(), false));  
+                       */
+                       link.setAttribute('href', buildExtrasLink( 'feed/bookbag/html/'+cont.id(), false));  
                        link.setAttribute('target', '_blank' );
                        unHideMe(link);
 
index a03312e..499ac0e 100644 (file)
@@ -161,7 +161,7 @@ function rdetailAddBookbags(r) {
        }
 
        nextContainerIndex = index;
-       if(!found) insertSelectorVal( selector, 3, "name", "value", 1 );
+       if(!found) insertSelectorVal( selector, index, "name", "value", 1 );
 }
 
 var _actions = {};
index f2aec67..36d583c 100644 (file)
@@ -7,7 +7,7 @@
        <div id='cn_browse_loading'  class='cn_browse_loading hide_me'>Loading Callnumber Page...</div>
        <div id='cn_browse_div'> 
                <div style='width: 90%; text-align: center; margin: 10px;' class='color_4'>
-                       <span>You are now browsing</span><b style='margin-left: 6px;' id='cn_browse_where'/>
+                       <span>You are now browsing</span><b style='margin-left: 6px;' id='cn_browse_where'> </b>
                </div>
                <table class='data_grid bookshelf' width='100%'>
                        <thead>
index 41907a2..596c4c3 100644 (file)
@@ -28,7 +28,7 @@
                        <tbody>
                                <tr>
                                        <td class='holds_cell color_1' 
-                                               align='center' colspan='2'>&opac.holds.placeHold;</td>
+                                               align='center' colspan='2'>Place or Edit a Hold</td>
                                </tr>
                                <tr>
                                        <td class='holds_cell'>&opac.holds.recipient;:</td>
                                <tr>
                                        <td class='holds_cell'>Enable phone notifications for this hold?</td>
                                        <td class='holds_cell'>
-                                               <input type='checkbox' id='holds_enable_phone' checked='checked'/>
+                                               <input type='checkbox' id='holds_enable_phone'  checked='checked'
+                                                       onchange='
+                                                               if (this.checked) $("holds_phone").disabled=false; 
+                                                               else $("holds_phone").disabled = true;'/>
                                        </td>
                                </tr>
 
                                </tr>
                                <tr>
                                        <td class='holds_cell' align='center' colspan='2'>
+                                               <!--
                                                <button id='holds_submit'>&opac.holds.placeHold;</button>
+                                               -->
+                                               <button id='holds_submit'>Update Hold</button>
                                                <span style='padding: 20px;'> </span>
                                                <button id='holds_cancel'>&common.cancel;</button>
                                        </td>
index 7970a18..37fa538 100644 (file)
@@ -1,4 +1,4 @@
 <div id='logo_div'>
        <script language='javascript'>config.ids.common.top_logo = "top_left_logo";</script>
-       <img src='<!--#echo var="OILS_BASE"-->/images/small_logo.jpg' id='top_left_logo' border='0' class='logo'> </img>
+       <img style='margin-right: 4px;' src='<!--#echo var="OILS_BASE"-->/images/small_logo.jpg' id='top_left_logo' border='0' class='logo'> </img>
 </div>
index 4be7ff0..9336469 100644 (file)
                                <td width='30%'>Author</td>
                                <td>Formats</td>
                                <td>Pickup Location</td>
+                               <!--
                                <td>Enable Email Notification</td>
                                <td>Enable Phone Notification</td>
                                <td>Notification Phone Number</td>
-                               <td>Cancel This Hold</td>
+                               -->
+                               <td>Edit/Cancel</td>
                        </tr>
                </thead>
 
                <tbody id='myopac_holds_tbody'>
 
-                       <tr id='myopac_holds_org_row' class='hide_me' style='padding: 6px; border: 3px solid #E0F0E0;'>
-                               <td style='padding: 4px;' colspan='10'>
-                                       <select name='myopac_holds_org_selector'> </select>
-                                       <input name='myopac_hold_org_update_submit' type='submit' value='Submit'> </input>
-                                       <input name='myopac_hold_org_update_cancel' type='submit' value='Cancel'> </input>
-                               </td>
-                       </tr>
-
                        <tr id='myopac_holds_none' class='hide_me'>
                                <td colspan='10'><b>You have no items on hold at this time</b></td>
                        </tr>
 
                                <td name='myopac_holds_formats'> </td>
 
-                               <td><a name='myopac_holds_location' class='classic_link'/></td>
+                               <td name='myopac_holds_location'></td>
 
-                               <td>
-                                       <input type='checkbox' name='myopac_holds_email_link' onclick='myopacChangeEmailNotify(this);'/>
-                               </td>
-
-                               <td>
-                                       <input type='checkbox' name='myopac_holds_enable_phone' 
-                                               onclick='myopacChangePhoneNotify(this);'/>
-                               </td>
-
-                               <td name='myopac_holds_phone' class='classic_link'>
-                                       <a href='javascript:void(0);' name='myopac_holds_phone_link'></a>
-                               </td>
-
-                               <td name='myopac_holds_cancel'>
+                               <td name='myopac_holds_cancel' style='border-left: 3px solid #E0E0E0; border-right: 3px solid #E0E0E0;'>
+                                       <a href='javascript:void(0);' 
+                                               name='myopac_holds_edit_link' class='classic_link'>Edit</a>
                                        <a href='javascript:void(0);' 
                                                name='myopac_holds_cancel_link' class='classic_link'>Cancel</a>
                                </td>
                </tbody>
        </table>
 
-       <div class='hide_me' id='myopac_holds_cancel_verify'>Are you sure you wish to cancel the selected hold?</div>
+       <span class='hide_me' id='myopac_holds_cancel_verify'>
+               If you wish to cancel the selected hold, click OK, otherwise click Cancel.
+       </span>
 
+       <!--
        <span class='hide_me' id='myopac_hold_email_verify'>
                Are you sure you wish to the email notification setting for this hold?
        </span>
@@ -92,6 +78,7 @@
                The selected hold is either in transit or has arrived at the pickup location.
                The pickup location for this hold cannot be changed.
        </span>
+       -->
 
 </div>
 
index 26227b7..a644bd7 100644 (file)
@@ -29,6 +29,7 @@
                                </td>
                        </tr>
 
+                       <!-- FONT size preference -->
                        <tr>
                                <td>Default Font Size</td>
                                <td>
                                </td>
                        </tr>
 
+                       <!-- default hold notification type -->
+                       <tr>
+                               <td>
+                                       <span>Default Hold Notification Style</span>
+                                       <a class='classic_link' href='javascript:void(0);' 
+                                               onclick='alert($("myopac_pref_hold_notify_alert").textContent);' >(??)</a>
+                               </td>
+                               <td>
+                                       <select id='prefs_hold_notify'>
+                                               <option value='phone:email' selected='selected'>Use Phone and Email</option>
+                                               <option value='phone'>Use Phone Only</option>
+                                               <option value='email'>Use Email Only</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+
+                       <!-- Save the preferences -->
                        <tr><td colspan='2'><br/></td></tr>
 
                        <tr>
 
        <div class='hide_me' id='prefs_update_success'>Preferences successfully updated</div>
        <div class='hide_me' id='prefs_update_failure'>Preferences update failed!</div>
+       <span class='hide_me' id='myopac_pref_hold_notify_alert'>
+               This setting defines how you will be notified of holds that are ready to be picked up from the library.
+               By default, holds will use the notification style you choose here.  
+               However, you will still have the option to change individual holds regardless of this setting.
+       </span>
 
 </div>
 
index 7e66c7c..60fc7ef 100644 (file)
                                        <span style='padding-right: 7px;' class='hide_me' id='rdetail_more_actions'>
                                                <select id='rdetail_more_actions_selector' style='max-width: 11em;'>
                                                        <option value='start'>More Actions...</option>
+                                                       <!--
+                                                       <option value='place_hold' 
+                                                               onclick='holdsDrawWindow(record.doc_id())'>Place a hold on this item</option>
+                                                       -->
                                                        <option disabled='disabled'>--------------</option>
                                                        <option disabled='disabled'>Add to Bookbag</option>
                                                        <option disabled='disabled'>--------------</option>