- Timestamp:
- 2019-07-02T11:32:34+12:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/berrybasket/berrybasket.js
r33252 r33259 33 33 34 34 35 var countFavourites = function(callback) { 36 // identical AJAX call to countBerries() 37 return countBerries(callback); 38 } 39 40 35 41 // adds berries onto page 36 var checkout = function(){42 var berryCheckout = function(){ 37 43 38 44 if ( document.getElementById('berrybasket') == null ) return; … … 120 126 } 121 127 128 // display selected favourites (filled-in star icon) on page 129 var favouritesCheckout = function(){ 130 131 if ( document.getElementById('berrybasket') == null ) return; 132 133 var request_type = "GET"; 134 var url = gs.xsltParams.library_name + "?a=pr&rt=r&ro=1&s=ItemNum&o=XML&hhf="+makeURLComponentSafe("[{\"name\":\"Cache-Control\", \"value\":\"no-cache\"}]")+"&c="; 135 136 var responseSuccess = function(o){ 137 138 var response = o.responseXML; 139 var size = response.getElementsByTagName('size').item(0).getAttribute('value'); 140 141 var items = response.getElementsByTagName('item'); 142 143 berryList = new Array(); 144 for (var i=0;i < items.length ; i++ ){ 145 146 var itemID = items[i].getAttribute('collection')+":"+items[i].getAttribute('name'); 147 var item = YAHOO.util.Dom.get(itemID); 148 149 if (item != null){ 150 item.src = gs.variables.selected_favourite_icon_url; 151 item.setAttribute("data-is-favourite","true"); 152 } 153 berryList[berryList.length] = items[i]; 154 } 155 156 // set favourite images visible 157 // they are set to be invisible to prevent flickering when first loaded (see berry.css) 158 159 var berries = document.getElementsByTagName('img'); 160 161 for (var j=0; j < berries.length; j++){ 162 var berry = berries[j]; 163 var parent = berry.parentNode; 164 if (parent !=null && parent.id == "documentberries"){ 165 var root = YAHOO.util.Dom.get(berry.id+":root"); 166 var section = YAHOO.util.Dom.get(berry.id+":section"); 167 if(root!=null && root.id.indexOf(berry.id) !=-1){ 168 root.style.visibility ="visible" ; 169 } 170 171 if(section!=null && section.id.indexOf(berry.id) !=-1){ 172 section.style.visibility ="visible" ; 173 } 174 } 175 176 if (berry.className && berry.className == 'pick'){ 177 berry.style.visibility = "visible"; 178 // new ygDDPlayer(berry.id,'basket',berryList); // **** can go 179 } 180 } 181 updateFavouritesCount(); 182 } 183 184 var responseFailure = function(o){ 185 console.error("Berry Basket GetItems AJAX call failed:" + url); 186 } 187 188 var callback = { 189 success: responseSuccess, 190 failure: responseFailure 191 } 192 193 //var date = new Date(); 194 //url += "&rand=" + date.getTime(); 195 YAHOO.util.Connect.asyncRequest(request_type , url , callback); 196 } 197 198 122 199 function updateBerryImages(){ 123 200 … … 171 248 } 172 249 250 function updateFavouritesCount() { 251 var favouritesCountElement = YAHOO.util.Dom.get('favouritesCountDisplay'); 252 if ( favouritesCountElement == null ) return; 253 if ( berryList.length == 0 ) { 254 favouritesCountElement.innerHTML = "(0)"; 255 } else { 256 favouritesCountElement.innerHTML = "(" + berryList.length + ")"; 257 } 258 } 259 173 260 function basketUpdate(e) { 174 //alert( arguments.callee ); 261 175 262 var target = e.target; 176 263 if ((target.id.toLowerCase() == 'berrybasket' || target.id.toLowerCase() == 'berries') && !show){ … … 190 277 191 278 function showBasket() { 192 //alert( arguments.callee ); 279 193 280 var berryBasket = YAHOO.util.Dom.get('berrybasket'); 194 281 var basketHandle = YAHOO.util.Dom.get('baskethandle'); … … 281 368 282 369 function hideBasket() { 283 //alert( arguments.callee );284 370 var i = 0; 285 371 var berryBasket = YAHOO.util.Dom.get('berrybasket'); … … 414 500 } 415 501 416 YAHOO.util.Event.addListener(window, 'load', checkout); 502 503 504 function addFavourite(el){ 505 var addurl = gs.xsltParams.library_name + "?a=pr&rt=r&ro=1&s=AddItem&c=&s1.id=2&o=XML&hhf="+makeURLComponentSafe("[{\"name\":\"Cache-Control\", \"value\":\"no-cache\"}]")+"&s1.item=" + el.id; 506 507 var addSuccess = function(o){ 508 var result = o.responseXML; 509 var items = result.getElementsByTagName('item'); 510 511 if (items.length > 0){ 512 // assumes that there is only 1 item to add 513 var item = items[0]; 514 berryList[berryList.length]= item; 515 516 updateFavouritesCount(); 517 } 518 519 } 520 521 var addFailure = function(o){ 522 } 523 524 var addcallback = { 525 success:addSuccess, 526 failure:addFailure 527 } 528 529 YAHOO.util.Connect.asyncRequest(request_type , addurl , addcallback); 530 } 531 532 533 function deleteFavourite(el){ 534 var delurl = gs.xsltParams.library_name + "?a=pr&rt=r&ro=1&s=DeleteItems&c=&o=XML&hhf="+makeURLComponentSafe("[{\"name\":\"Cache-Control\", \"value\":\"no-cache\"}]")+"&s1.items=" + el.id; 535 536 var delSuccess = function(o){ 537 538 for (var i in berryList) { 539 var berry = berryList[i]; 540 console.log(berry); 541 var id = berry.getAttribute('collection')+":"+berry.getAttribute('name'); 542 543 if (id == el.id){ 544 berryList.splice(i,1); 545 546 break; 547 } 548 549 } 550 updateFavouritesCount(); 551 552 } 553 554 var delFailure = function(o){ 555 } 556 557 var delcallback = { 558 success:delSuccess, 559 failure:delFailure 560 } 561 562 YAHOO.util.Connect.asyncRequest(request_type , delurl , delcallback); 563 } 564 565 566 567 function toggleFavourite(el) 568 { 569 var is_favourite = el.getAttribute("data-is-favourite"); 570 if (is_favourite == "true") { 571 deleteFavourite(el); 572 el.src = gs.variables.unselected_favourite_icon_url; 573 el.setAttribute("data-is-favourite","false") 574 } 575 else { 576 addFavourite(el); 577 el.src = gs.variables.selected_favourite_icon_url; 578 el.setAttribute("data-is-favourite","true") 579 } 580 } 581 582 if(gs.cgiParams.berrybasket == "on") 583 { 584 YAHOO.util.Event.addListener(window, 'load', berryCheckout); 585 } 586 else { 587 // assumption is that favouritesbasket is on 588 YAHOO.util.Event.addListener(window, 'load', favouritesCheckout); 589 } 590 417 591 //YAHOO.util.Event.addListener(window, 'click', basketUpdate); 418 592
Note:
See TracChangeset
for help on using the changeset viewer.