Changeset 19854 for greenstone3/trunk/web/interfaces/oran
- Timestamp:
- 2009-06-16T13:45:45+12:00 (15 years ago)
- Location:
- greenstone3/trunk/web/interfaces/oran/js
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
greenstone3/trunk/web/interfaces/oran/js/berrybasket.js
r18617 r19854 1 //used to stored the current items in berrybasket, including collection name, document id and dodument title 2 //in the format of collection:id:[title], it is updated when the page is loaded (reloaded) or the user adds 3 // new items in the berry basket (see ygDDplayer.js). It is used to show the contents of the berry basket. 4 5 var berryList = new Array(); 6 var show = false; 7 8 // the default width and height of the berry basket 9 var oldHeight=90; 10 var oldWidth=140; 11 var oldBg; 12 13 var dd = new ygDDOnTop('berrybasket'); 14 dd.setHandleElId('baskethandle'); 15 16 17 var checkout = function(){ 18 19 if ( document.getElementById('berrybasket') == null ) return; 20 //alert( arguments.callee ); 21 var request_type = "GET"; 22 var url = "?a=pr&rt=r&ro=1&s=ItemNum&o=XML&c="; 23 24 var responseSuccess = function(o){ 25 //alert( arguments.callee ); 26 var response = o.responseXML; 27 var size = response.getElementsByTagName('size').item(0).getAttribute('value'); 28 29 var items = response.getElementsByTagName('item'); 30 31 for (var i=0;i < items.length ; i++ ){ 32 33 // remove berries images from if the berry basket has already contains this item 34 var itemID = items[i].getAttribute('collection')+":"+items[i].getAttribute('name'); 35 var item = YAHOO.util.Dom.get(itemID); 36 if (item != null){ 37 var parent = item.parentNode; 38 parent.removeChild(item); 39 if (parent !=null && parent.id == "documentberries"){ 40 var root = YAHOO.util.Dom.get(itemID+":root"); 41 var section = YAHOO.util.Dom.get(itemID+":section"); 42 43 if(root!=null && root.id.indexOf(itemID) !=-1){ 44 parent.removeChild(root); 45 } 46 47 if(section!=null && section.id.indexOf(itemID) !=-1){ 48 parent.removeChild(section); 49 } 50 } 51 } 52 berryList[berryList.length] = items[i]; 53 } 54 55 //add berryimage into the berry basket 56 updateBerryImages(); 57 58 // set berries images visible 59 // they are set to be invisible to prevent flickering when first loaded (see berry.css) 60 61 var berries = $('img'); 62 var berrybasket = new YAHOO.util.DDTarget('berrybasket','basket'); 63 64 for (var j=0; j < berries.length; j++){ 65 var berry = berries[j]; 66 var parent = berry.parentNode; 67 if (parent !=null && parent.id == "documentberries"){ 68 var root = YAHOO.util.Dom.get(berry.id+":root"); 69 var section = YAHOO.util.Dom.get(berry.id+":section"); 70 if(root!=null && root.id.indexOf(berry.id) !=-1){ 71 root.style.visibility ="visible" ; 72 } 73 74 if(section!=null && section.id.indexOf(berry.id) !=-1){ 75 section.style.visibility ="visible" ; 76 } 77 } 78 79 if (berry.className && berry.className == 'pick'){ 80 berry.style.visibility = "visible"; 81 new ygDDPlayer(berry.id,'basket',berryList); 82 } 83 } 84 //updateBerryCount(); 85 correctBerryExpandCollapseButtons(); 86 } 87 88 var responseFailure = function(o){ 89 //alert( arguments.callee ); 90 } 91 92 var callback = { 93 success: responseSuccess, 94 failure: responseFailure 95 } 96 97 YAHOO.util.Connect.asyncRequest(request_type , url , callback); 98 } 99 100 function updateBerryImages(){ 101 //alert( arguments.callee ); 102 var berries = YAHOO.util.Dom.get('berries'); 103 if ( berries == null ) return; 104 for (var i =0;i < berryList.length && i<12 ; i++ ){ 105 var img = document.createElement('img'); 106 img.src = 'interfaces/oran/images/berry.png'; 107 berries.appendChild(img); 108 } 109 110 //show the help message if there are no berries 111 if ( berryList.length == 0 ) { 112 var berryHelpMsg = document.createElement('span'); 113 berries.appendChild(berryHelpMsg); 114 berryHelpMsg.appendChild(document.createTextNode('Drag & drop berries here to add documents to your Berry Basket')); 115 berryHelpMsg.setAttribute('id','berryHelpMsg'); 116 } 117 118 //show the expand buttons 119 correctBerryExpandCollapseButtons(); 120 121 } 122 123 function correctBerryExpandCollapseButtons() { 124 var bbecl = YAHOO.util.Dom.get('berryBasketExpandCollapseLinks'); 125 if ( bbecl == null ) return; 126 if ( berryList.length > 0 ) { 127 YAHOO.util.Dom.get('berryBasketExpandCollapseLinks').style.display=''; 128 } else { 129 YAHOO.util.Dom.get('berryBasketExpandCollapseLinks').style.display='none'; 130 } 131 } 132 133 function updateBerryCount() { 134 var berries = YAHOO.util.Dom.get('berries'); 135 var berryCountElement = YAHOO.util.Dom.get('berryBasketCount'); 136 if ( berries == null || berryCountElement == null ) return; 137 if ( berryList.length == 0 ) { 138 berryCountElement.innerHTML = "empty"; 139 } else { 140 berryCountElement.innerHTML = berryList.length; 141 } 142 } 143 144 function basketUpdate(e) { 145 //alert( arguments.callee ); 146 var target = e.target; 147 if ((target.id.toLowerCase() == 'berrybasket' || target.id.toLowerCase() == 'berries') && !show){ 148 showBasket(); 149 show = true; 150 }else{ 151 if (target.id.toLowerCase() == 'hideview' && show){ 152 hideBasket(); 153 show = false; 154 } 155 } 156 157 if (target.className == 'pick'){ 158 addBerry(target); 159 } 160 } 161 162 function showBasket() { 163 //alert( arguments.callee ); 164 var berryBasket = YAHOO.util.Dom.get('berrybasket'); 165 var basketHandle = YAHOO.util.Dom.get('baskethandle'); 166 var berries = YAHOO.util.Dom.get('berries'); 167 var div = document.createElement('div'); 168 var list = document.createElement('ol'); 169 var width = 500; 170 var height = 40; 171 var i=0; 172 173 list.id = 'doclist'; 174 175 //remove berryImages in the berry basket 176 while (berries.hasChildNodes()) { 177 berries.removeChild(berries.firstChild); 178 } 179 while (basketHandle.hasChildNodes()) { 180 basketHandle.removeChild(basketHandle.firstChild); 181 } 182 183 //put the berries in 184 for (i in berryList){ 185 var berryItem = berryList[i]; 186 var berryElement = document.createElement('li'); 187 var title = berryItem.getAttribute('title'); 188 var root_title = berryItem.getAttribute('root_title'); 189 var id = berryItem.getAttribute('collection')+":"+berryItem.getAttribute('name'); 190 191 if (root_title != ""){ 192 root_title +=":"; 193 } 194 195 title = root_title+title; 196 if (title.length > 50){ 197 title = title.substring(0,20)+" ... "+title.substr(title.length-35,35); 198 } 199 200 berryElement.appendChild(document.createTextNode(title)); 201 berryElement.setAttribute("class","berryitem"); 202 list.appendChild(berryElement); 203 height +=18; 204 } 205 206 oldHeight = berryBasket.style.height; 207 oldWidth = berryBasket.style.width; 208 oldBg = berryBasket.style.background; 209 berryBasket.style.height = height; 210 berryBasket.style.width = width; 211 berryBasket.style.background ='url("interfaces/default/images/kete2.png") 0 0 repeat'; 212 berryBasket.style.cursor = "default"; 213 berryBasket.className = "show"; 214 div.appendChild(list); 215 berries.appendChild(div); 216 berries.style.height = height - 40; 217 218 //put the full view link in 219 var fullView = document.createElement('a'); 220 berries.appendChild(fullView); 221 fullView.appendChild(document.createTextNode('Full View »')); 222 fullView.setAttribute("href","?a=g&sa=berry&c=&s=DisplayList&rt=r"); 223 fullView.setAttribute("id","berryFullViewLink"); 224 225 226 //toggle expand/collapse links 227 var expandLink = YAHOO.util.Dom.get('berryBasketExpandLink'); 228 var collapseLink = YAHOO.util.Dom.get('berryBasketCollapseLink'); 229 if ( expandLink != null && collapseLink != null ) { 230 expandLink.style.display = 'none'; 231 collapseLink.style.display = ''; 232 } 233 234 } 235 236 function hideBasket() { 237 //alert( arguments.callee ); 238 var i = 0; 239 var berryBasket = YAHOO.util.Dom.get('berrybasket'); 240 var basketHandle = YAHOO.util.Dom.get('baskethandle'); 241 var berries = YAHOO.util.Dom.get('berries'); 242 berryBasket.style.height = oldHeight; 243 berryBasket.style.width = oldWidth; 244 berryBasket.style.background = oldBg; 245 berryBasket.style.cursor = "pointer"; 246 berryBasket.className = "hide"; 247 248 while (berries.hasChildNodes()) { 249 berries.removeChild(berries.firstChild); 250 } 251 252 while (basketHandle.hasChildNodes()) { 253 basketHandle.removeChild(basketHandle.firstChild); 254 } 255 256 updateBerryImages(); 257 //updateBerryCount(); 258 259 //toggle expand/collapse links 260 var expandLink = YAHOO.util.Dom.get('berryBasketExpandLink'); 261 var collapseLink = YAHOO.util.Dom.get('berryBasketCollapseLink'); 262 if ( expandLink != null && collapseLink != null ) { 263 expandLink.style.display = ''; 264 collapseLink.style.display = 'none'; 265 } 266 267 } 268 269 270 function addBerry(el){ 271 //alert( arguments.callee ); 272 var addurl = "?a=pr&rt=r&ro=1&s=AddItem&c=&s1.id=2&o=XML&s1.item=" + el.id; 273 274 var addSuccess = function(o){ 275 alert( arguments.callee ); 276 var result = o.responseXML; 277 var items = result.getElementsByTagName('item'); 278 279 if (items.length < 0){ 280 281 var item = items[0]; 282 var berrybasket = YAHOO.util.Dom.get('berrybasket'); 283 var berries = YAHOO.util.Dom.get('berries'); 284 berryList[berryList.length]= item; 285 var parent =el.parentNode; 286 if (parent == null) return; 287 parent.removeChild(el); 288 var itemID = item.getAttribute('collection')+":"+item.getAttribute('name'); 289 if (parent !=null && parent.id == "documentberries"){ 290 291 var root = YAHOO.util.Dom.get(itemID+":root"); 292 var section = YAHOO.util.Dom.get(itemID+":section"); 293 294 if(root!=null && root.id.indexOf(itemID) !=-1){ 295 parent.removeChild(root); 296 } 297 298 if(section!=null && section.id.indexOf(itemID) !=-1){ 299 parent.removeChild(section); 300 } 301 302 } 303 304 if (!YAHOO.util.Dom.get('hideview') && berryList.length < 13){ 305 306 while (berries.hasChildNodes()) { 307 berries.removeChild(berries.firstChild); 308 } 309 310 for (var i =0; i < berryList.length; i++ ){ 311 var img = document.createElement('img'); 312 img.src = 'interfaces/oran/images/berry.png'; 313 berries.appendChild(img); 314 } 315 316 } else { 317 318 if (YAHOO.util.Dom.get('hideview')){ 319 var berryBasket = YAHOO.util.Dom.get('berrybasket'); 320 var berries = YAHOO.util.Dom.get('berries'); 321 var doclist = YAHOO.util.Dom.get('doclist'); 322 var tid = el.id; 323 var berryItem; 324 var berryElement = document.createElement('li'); 325 326 for (var i in berryList){ 327 berryItem = berryList[i]; 328 var id = berryItem.getAttribute('collection')+":"+berryItem.getAttribute('name'); 329 330 if (id == tid){ 331 var title = berryItem.getAttribute('title'); 332 var root_title = berryItem.getAttribute('root_title'); 333 if (root_title != ""){ 334 root_title +=":"; 335 } 336 337 title = root_title+title; 338 if (title.length > 50){ 339 title = title.substring(0,20)+" ... "+title.substr(title.length-35,35); 340 } 341 342 berryElement.appendChild(document.createTextNode(title)); 343 berryElement.setAttribute("class","berryitem"); 344 doclist.appendChild(berryElement); 345 var heightStr = berryBasket.style.height+""; 346 var height =parseInt(heightStr.substring(0,heightStr.length-2)) +18; 347 berryBasket.style.height = height; 348 berries.style.height = height; 349 break; 350 } 351 352 } 353 354 } 355 356 } 357 } 358 } 359 360 var addFailure = function(o){ 361 //alert( arguments.callee ); 362 } 363 364 var addcallback = { 365 success:addSuccess, 366 failure:addFailure 367 } 368 369 YAHOO.util.Connect.asyncRequest(request_type , addurl , addcallback); 370 } 371 372 YAHOO.util.Event.addListener(window, 'load', checkout); 373 //YAHOO.util.Event.addListener(window, 'click', basketUpdate); 374 375 376 -
greenstone3/trunk/web/interfaces/oran/js/ygDDPlayer.js
r18617 r19854 69 69 70 70 var img = document.createElement('img'); 71 img.src = 'interfaces/default/images/berry3.png'; 72 img.height = 15; 73 img.width = 15; 74 img.border = 0; 75 dragEl.appendChild(img); 71 img.src = 'interfaces/oran/images/berry.png'; 72 dragEl.appendChild(img); 76 73 77 74 var added = true; … … 93 90 targetEl.className = "target"; 94 91 } 92 correctBerryExpandCollapseButtons(); 95 93 }; 96 94 … … 210 208 for (var i =0; i < player.berryList.length; i++ ){ 211 209 var img = document.createElement('img'); 212 img.src = 'interfaces/default/images/berry3.png'; 213 img.height = 15; 214 img.width = 15; 215 img.border = 0; 210 img.src = 'interfaces/oran/images/berry.png'; 216 211 berries.appendChild(img); 217 212 } 213 214 correctBerryExpandCollapseButtons(); 218 215 219 216 } … … 273 270 274 271 275 var delurl = delurlPath + el.id; 272 var delurl = delurlPath + el.id; 276 273 var delSuccess = function(o){ 277 274 var result = o.responseXML; … … 318 315 319 316 320 if (id == 'berrybasket'){ 321 YAHOO.util.Connect.asyncRequest(request_type , addurl , addcallback); 322 } 323 else{ 324 if (id == 'trashbin'){ 325 YAHOO.util.Connect.asyncRequest(request_type , delurl , delcallback); 326 } 327 } 328 329 this.resetTargets(); 330 this.slot = oDD; 331 this.slot.player = this; 317 if (id == 'berrybasket'){ 318 YAHOO.util.Connect.asyncRequest(request_type , addurl , addcallback); 319 } else { 320 if (id == 'trashbin'){ 321 YAHOO.util.Connect.asyncRequest(request_type , delurl , delcallback); 322 } 323 } 324 325 this.resetTargets(); 326 this.slot = oDD; 327 this.slot.player = this; 332 328 333 329 };
Note:
See TracChangeset
for help on using the changeset viewer.