// The default link type in the basket - "document" = greenstone version of the document, "source" = link to source file eg pdf. var default_link_type = "document"; // "source" or "document" // use the appropriate one of these to override the default for particular collections. var source_link_collections = new Array(); // or add list of collections like ["pdfberry", "mgppdemo"]; var document_link_collections = new Array(); // or add list of collections as above. //these are the default metadata items used by berry baskets. var default_metas = ["Title", "root_Title", "root_assocfilepath", "root_srclinkFile", "name", "collection", "Date"]; var docList = new Array(); var urlonly = false; var mailinfo = new Array(); mailinfo['address'] = gs.text.berry.to; mailinfo['cc'] = gs.text.berry.cc; mailinfo['bcc'] = gs.text.berry.bcc; mailinfo['subject'] = gs.text.berry.subject; var textwin; var mailwin; var options = ['fullview', 'textview', 'email']; function navigate(e){ var target = this; if ( target.id.toLowerCase() == '' ) { target = target.parentNode; } if (target.id.toLowerCase() == 'fullview'){ berryCheckoutHighlight( 'fullview' ); showFullView(); } if (target.id.toLowerCase() == 'textview'){ berryCheckoutHighlight( 'textview' ); showTextView(); } if (target.id.toLowerCase() == 'email'){ berryCheckoutHighlight( 'email' ); showEmail(); } if (target.id.toLowerCase() == 'sendmail'){ sendMail(); } if (target.id.toLowerCase() == 'urlcheck' && urlonly){ var urlcheck = YAHOO.util.Dom.get('urlcheck'); urlcheck.src = 'interfaces/default/images/check3.gif'; var parea =YAHOO.util.Dom.get('pretextarea'); urlonly = false; this.value=gs.text.berry.url_only; populateUrlsAndMetadata(parea); return; } if (target.id.toLowerCase() == 'urlcheck' && !urlonly ){ var urlcheck = YAHOO.util.Dom.get('urlcheck'); urlcheck.src = 'interfaces/default/images/check4.gif'; var parea =YAHOO.util.Dom.get('pretextarea'); populateUrls(parea); urlonly = true; this.value=gs.text.berry.url_and_metadata; return; } if (target.id.toLowerCase() == 'extextview' ){ if (textwin != null){ textwin.close(); } textwin = window.open("","Berry basket plain text view","status=1,width=450,height=300"); textwin.moveTo(0,0); var content = document.createElement('div'); buildPreview(content); var body = textwin.document.getElementsByTagName('body')[0]; body.appendChild(content); var prearea = textwin.document.getElementsByTagName('textarea')[0]; prearea.cols = '55'; prearea.rows = '15'; } if (target.id.toLowerCase() == 'exemail' ){ if (mailwin != null){ mailwin.close(); } mailwin = window.open("","Berry basket mail to a friend","status=1,width=450,height=350"); mailwin.moveTo(0,0); var content = document.createElement('div'); getEmailContent(content); var body = mailwin.document.getElementsByTagName('body')[0]; body.appendChild(content); var prearea = mailwin.document.getElementsByTagName('textarea')[0]; prearea.cols = '50'; prearea.rows = '11'; } } function pageLoad(){ for(var j = 0; j < options.length; j++) { var ele = document.getElementById(options[j]); YAHOO.util.Event.addListener(ele, 'click', navigate); } showFullView(); } function showFullView(){ var content = YAHOO.util.Dom.get('berryBasketContent'); var fullview = YAHOO.util.Dom.get('fullview'); berryCheckoutPageClear(); if (docList.length == 0){ content.appendChild(document.createTextNode(gs.text.berry.empty_basket)); return; } var trashbin = document.createElement('div'); trashbin.id ='trashbin'; var binhandle = document.createElement('div'); binhandle.id = 'binhandle'; binhandle.appendChild(document.createElement('span')); trashbin.appendChild(binhandle); content.appendChild(trashbin); var dd = new ygDDOnTop('trashbin'); dd.setHandleElId('binhandle'); new YAHOO.util.DDTarget('trashbin','trash'); var dlist = document.createElement('div'); content.appendChild(dlist); var ol = document.createElement('ol'); dlist.appendChild(ol); for (var i in docList){ var doc = docList[i]; var li = document.createElement('li'); var a = document.createElement('a'); var img = document.createElement('img'); var text =""; img.setAttribute("src", "interfaces/default/images/berry.png"); img.setAttribute("id", doc['collection']+":"+ doc['name']); img.setAttribute("height", "15px"); img.setAttribute("width", "15px"); li.appendChild(img); a.href=generateURL(doc); a.appendChild(document.createTextNode(doc['Title'])); if (doc['root_Title']){ li.appendChild(document.createTextNode(doc['root_Title']+": ")); } li.appendChild(a); li.appendChild(document.createTextNode(" ("+doc['collection']+")")); var metadata = ""; for (var metaItem in doc) { if ( !default_metas.includes(metaItem)){ metadata += " "+metaItem+": "+ doc[metaItem]+" "; } } text +=metadata; li.appendChild(document.createTextNode(text)); li.className = 'berrydoc'; ol.appendChild(li); new ygDDPlayer(img.id,'trash',docList); } } function showTextView(){ var content = YAHOO.util.Dom.get('berryBasketContent'); var textview = YAHOO.util.Dom.get('textview'); berryCheckoutPageClear(); if (docList.length == 0){ content.appendChild(document.createTextNode(gs.text.berry.empty_basket)); return; } buildPreview(content); } function getEmailContent(content){ var item ; var tr; var td; var input; table = document.createElement('table'); table.setAttribute("class","mailtable"); for (item in mailinfo){ tr = document.createElement('tr'); td = document.createElement('td'); td.setAttribute("class","mailitem"); td.appendChild(document.createTextNode(mailinfo[item])); tr.appendChild(td); td = document.createElement('td'); input = document.createElement('input'); input.setAttribute("id", item); input.setAttribute("class", "mailinput"); input.setAttribute("type", "text"); td.appendChild(input); tr.appendChild(td); table.appendChild(tr); } // an empty line tr = document.createElement('tr'); td = document.createElement('td'); td.appendChild(document.createElement('br')); tr.appendChild(td); table.appendChild(tr); content.appendChild(table); buildPreview(content); //send button input = document.createElement('input'); input.setAttribute("id", 'sendmail'); input.setAttribute("class", "sendbutton"); input.setAttribute("type", "button"); input.setAttribute("value", gs.text.berry.send); content.appendChild(input); } function showEmail(){ var content = YAHOO.util.Dom.get('berryBasketContent'); var email = YAHOO.util.Dom.get('email'); berryCheckoutPageClear(); if (docList.length == 0){ content.appendChild(document.createTextNode(gs.text.berry.empty_basket)); return; } var item; var tr; var td; var input; table = document.createElement('table'); table.setAttribute("class","mailtable"); for (item in mailinfo){ tr = document.createElement('tr'); td = document.createElement('td'); td.setAttribute("class","mailitem"); td.appendChild(document.createTextNode(mailinfo[item])); tr.appendChild(td); td = document.createElement('td'); input = document.createElement('input'); input.setAttribute("id", item); input.setAttribute("class", "mailinput"); input.setAttribute("type", "text"); td.appendChild(input); tr.appendChild(td); table.appendChild(tr); } // an empty line tr = document.createElement('tr'); td = document.createElement('td'); td.appendChild(document.createElement('br')); tr.appendChild(td); table.appendChild(tr); content.appendChild(table); buildPreview(content); //send button input = document.createElement('input'); input.setAttribute("id", 'sendmail'); input.setAttribute("class", "sendbutton"); input.setAttribute("type", "button"); input.setAttribute("value", gs.text.berry.send); content.appendChild(input); YAHOO.util.Event.addListener(input, 'click', navigate); } function buildPreview(parent){ var div = document.createElement('div'); var cb = document.createElement('input'); cb.setAttribute('class', 'sendbutton'); cb.type = 'button'; cb.id = 'urlcheck'; if (urlonly) { cb.value=gs.text.berry.url_and_metadata; } else { cb.value=gs.text.berry.url_only; } YAHOO.util.Event.addListener(cb, 'click', navigate); var img = document.createElement('img'); img.src = 'interfaces/default/images/check3.gif'; img.id = 'urlcheck'; div.appendChild(cb); //div.appendChild(img); var urls = document.createElement('span'); urls.id = 'urls'; urls.className = 'berrycheck'; //urls.appendChild(document.createTextNode('URL only')); div.appendChild(urls); // var urlsmetadata = document.createElement('span'); // urlsmetadata.id = 'urlsmetadata' // urlsmetadata.className = 'berryradio'; // urlsmetadata.appendChild(document.createTextNode('URLs and Metadata')); // div.appendChild(urlsmetadata); parent.appendChild(div); var parea = document.createElement('textarea'); parea.id = 'pretextarea'; parent.appendChild(parea); if(urlonly) { populateUrls(parea); } else { populateUrlsAndMetadata(parea); } } function getDefaultLinkType(collection) { var link_type; if (document_link_collections.includes(collection)) { link_type = "document"; } else if (source_link_collections.includes(collection)) { link_type = "source"; } else { link_type = default_link_type; if (link_type != "source" && link_type != "document") { link_type = "document"; //the default default } } return link_type; } function generateURL(doc) { var url; var doc_url = document.URL; var root_url = doc_url.substring(0,doc_url.indexOf('?')); var link_type = getDefaultLinkType(doc["collection"]); if (link_type == "document") { url = root_url+"/collection/"+doc["collection"]+"/document/"+doc["name"]; } else if (link_type == "source") { // remove library root_url = root_url.substring(0, root_url.lastIndexOf('/')); url = root_url+"/sites/"+gs.xsltParams.site_name+"/collect/"+doc['collection']+"/index/assoc/"+doc["root_assocfilepath"]+"/"+doc["root_srclinkFile"]; } return url; } function populateUrls(parea){ var urls=""; for (var i in docList){ var doc = docList[i]; urls += generateURL(doc)+"\n\n"; } parea.value = urls; } function populateUrlsAndMetadata(parea){ var fulltext=""; for (var i in docList){ var doc = docList[i]; var url = generateURL(doc)+"\n"; var metadata = ""; if (doc['Title']) { metadata += gs.text.berry.doc_title+": "+doc['Title']+"\n"; } if (doc['root_Title']) { metadata += gs.text.berry.doc_root_title+": "+doc['root_Title']+"\n"; } if (doc['name']) { metadata += gs.text.berry.doc_name+": "+doc['name']+"\n"; } if (doc['collection']) { metadata += gs.text.berry.doc_collection+": "+doc['collection']+"\n"; } if (doc['Date']) { metadata += gs.text.berry.doc_date+": "+doc['Date']+"\n"; } // allow for inclusion of custom metadata for (var m in doc) { if (!default_metas.includes(m)) { metadata += m +":" + doc[m]+"\n"; } } fulltext +=url+metadata+"\n"; } parea.value = fulltext; } function sendMail(){ var url = gs.xsltParams.library_name + "?a=pr&rt=r&ro=1&s=SendMail&c="; var request_type = "POST"; var postdata = ""; var i; //get checked items for (i in mailinfo) { var input = YAHOO.util.Dom.get(i); var value = input.value; postdata +="&s1."+i+"="+value; } var content = YAHOO.util.Dom.get('pretextarea').value; content = content.replace(/&/g,'-------'); postdata +="&s1.content="+content; var callback = { success: function(o) { var result = o.responseText; alert(gs.text.berry.send_success); } , failure: function(o) { alert(gs.text.berry.send_fail); } } YAHOO.util.Connect.asyncRequest(request_type , url , callback, postdata); } function berryCheckoutPageClear() { var bbc = document.getElementById('berryBasketContent'); if ( bbc == null ) return; bbc.innerHTML = ''; } function berryCheckoutHighlight( id ) { for ( var i=0; i