Changeset 33259 for main/trunk/greenstone3
- Timestamp:
- 2019-07-02T11:32:34+12:00 (5 years ago)
- Location:
- main/trunk/greenstone3/web/interfaces/default/js
- Files:
-
- 4 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 -
main/trunk/greenstone3/web/interfaces/default/js/berrybasket/berrycheckout.js
r33254 r33259 114 114 var berry = docList[i]; 115 115 var berry_id = berry['collection'] + ":" + berry['name']; 116 116 117 117 for(var j = searchForNextSelectedIdFromIndex; j >= 0; j--) { 118 118 if(idsToDelete[j] == berry_id) { … … 148 148 } 149 149 content.appendChild(document.createTextNode('Your berry basket is empty.')); 150 150 var berryBasketDelOptions = YAHOO.util.Dom.get('delOptions'); 151 if (berryBasketDelOptions != null) { 152 berryBasketDelOptions.setAttribute("style","display:none;"); 153 } 154 151 155 var trashbin = YAHOO.util.Dom.get('trashbin'); 152 156 if ( trashbin !=null){ … … 155 159 } 156 160 157 // Ensure the select-all, delete-all and delete-selected checkboxes are deselected 158 YAHOO.util.Dom.get('select-all-checkbox').checked = false; 159 YAHOO.util.Dom.get('delete-selected-checkbox').checked = false; 160 YAHOO.util.Dom.get('delete-all-checkbox').checked = false; 161 var have_checkboxes = YAHOO.util.Dom.get('select-all-checkbox'); // just pick one for the test 162 if (have_checkboxes) { 163 // Ensure the select-all, delete-all and delete-selected checkboxes are deselected 164 YAHOO.util.Dom.get('select-all-checkbox').checked = false; 165 YAHOO.util.Dom.get('delete-selected-checkbox').checked = false; 166 YAHOO.util.Dom.get('delete-all-checkbox').checked = false; 167 } 161 168 } 162 169 … … 173 180 YAHOO.util.Connect.asyncRequest(request_type, delurl , delcallback); 174 181 } 182 183 function deleteFavouriteFromCheckout(el) 184 { 185 var delurl = delurlPath; // var delurlPath is declared in ygDDPlayer.js. 186 187 var doc_id = el.getAttribute('id'); 188 delurl += doc_id; 189 190 var deleteAll = false; 191 var selectedList = [ el ]; 192 var idsToDelete = [ doc_id ]; 193 doDelete(deleteAll, delurl, selectedList, idsToDelete); 194 } 195 175 196 176 197 function navigate(e){ … … 267 288 } 268 289 269 function showFullView(){ 290 function showFullView() { 291 if (gs.cgiParams.berrybasket == "on") { 292 showFullViewBerries(); 293 } 294 else { 295 // assumption is that favouritesbasket is on 296 showFullViewFavourites(); 297 } 298 } 299 300 function showFullViewBerries(){ 270 301 271 302 var content = YAHOO.util.Dom.get('berryBasketContent'); … … 320 351 } 321 352 353 function showFullViewFavourites(){ 354 355 var content = YAHOO.util.Dom.get('berryBasketContent'); 356 var fullview = YAHOO.util.Dom.get('fullview'); 357 berryCheckoutPageClear(); 358 359 var berryBasketDelOptions = YAHOO.util.Dom.get('delOptions'); 360 if (docList.length == 0){ 361 content.appendChild(document.createTextNode(gs.text.berry.empty_basket)); 362 if (berryBasketDelOptions != null) { 363 berryBasketDelOptions.setAttribute("style","display:none;"); 364 } 365 366 return; 367 } 368 if (berryBasketDelOptions != null) { 369 berryBasketDelOptions.setAttribute("style","display:block;"); 370 } 371 372 var dlist = document.createElement('div'); 373 content.appendChild(dlist); 374 var ul = document.createElement('ul'); 375 dlist.appendChild(ul); 376 377 ul.setAttribute("id", "berryDocsList"); 378 ul.setAttribute("style","list-style: none;"); 379 380 for (var i in docList){ 381 var doc = docList[i]; 382 var li = document.createElement('li'); 383 var img = document.createElement('img'); 384 var text =""; 385 386 var doc_id = doc['collection']+":"+ doc['name']; 387 388 img.setAttribute("src", gs.variables.selected_favourite_icon_url); 389 img.setAttribute("id", doc_id); 390 img.setAttribute("height", "20px"); 391 img.setAttribute("width", "20px"); 392 img.setAttribute("style","padding-right: 5px;"); // **** better to do this with CSS 393 img.setAttribute("onClick", "deleteFavouriteFromCheckout(this)"); 394 li.appendChild(img); 395 396 generateDocDisplay(li, doc, doc_id) 397 li.className = 'berrydoc'; 398 ul.appendChild(li); 399 } 400 401 } 402 322 403 function generateDocDisplay(li, doc, doc_id) { 323 var checkbox = document.createElement('input');324 checkbox.setAttribute("type", "checkbox");325 checkbox.setAttribute("id", doc_id+"-checkbox");326 checkbox.setAttribute("name", "select-berry-checkbox");327 checkbox.setAttribute("value", "select-"+doc_id);328 329 404 var a = document.createElement('a'); 330 405 var text=""; … … 335 410 li.appendChild(document.createTextNode(doc['root_Title']+": ")); 336 411 } 337 li.appendChild(checkbox); 412 338 413 li.appendChild(a); 339 414 li.appendChild(document.createTextNode(" ("+doc['collection']+")")); … … 348 423 349 424 } 350 425 351 426 function showTextView(){ 352 427 -
main/trunk/greenstone3/web/interfaces/default/js/classifier_scripts.js
r33217 r33259 129 129 url = url + "&berrybasket=on"; 130 130 } 131 if(gs.cgiParams.favouritesbasket == "on") 132 { 133 url = url + "&favouritesbasket=on"; 134 } 131 135 132 136 if(url.indexOf("#") != -1) … … 148 152 if(gs.cgiParams.berrybasket == "on") 149 153 { 150 checkout();154 berryCheckout(); 151 155 } 152 else if(gs.cgiParams.documentbasket == "on") 156 if(gs.cgiParams.favouritesbasket == "on") 157 { 158 favouritesCheckout(); 159 } 160 if(gs.cgiParams.documentbasket == "on") 153 161 { 154 162 dmcheckout(); -
main/trunk/greenstone3/web/interfaces/default/js/facet-scripts.js
r33154 r33259 57 57 $("#resultsArea").html(""); 58 58 $("#resultsArea").html(response.substring(response.indexOf(">") + 1, response.lastIndexOf("<"))); 59 checkout(); // called to add back in berries (if berrybasket active) 59 if(gs.cgiParams.berrybasket == "on") { 60 berryCheckout(); // called to add back in berries (if berrybasket active) 61 } 62 if(gs.cgiParams.favouritesbasket == "on") { 63 favouritesCheckout(); // called to add back in favourites icons (if favouritesbasket active) 64 } 60 65 }); 61 66 }
Note:
See TracChangeset
for help on using the changeset viewer.