source: other-projects/tipple-android/i-greenstone-server-files/greenstone/webapps/greenstone3/interfaces/default/js/berrybasket/berrycheckout.js@ 26899

Last change on this file since 26899 was 26899, checked in by davidb, 11 years ago

Tipple reborn after Chris's Summer of Code 2013

File size: 10.9 KB
Line 
1var docList = new Array();
2var urlonly = false;
3var mailinfo = new Array();
4mailinfo['address'] = "To: ";
5mailinfo['cc'] = "CC: ";
6mailinfo['bcc'] = "Bcc: ";
7mailinfo['subject'] = "Subject: ";
8var textwin;
9var mailwin;
10
11var options = new Array(3);
12options[0] = 'fullview';
13options[1] = 'textview';
14options[2] = 'email';
15
16function navigate(e){
17
18 var target = this;
19
20 if ( target.id.toLowerCase() == '' ) {
21 target = target.parentNode;
22 }
23
24 if (target.id.toLowerCase() == 'fullview'){
25 berryCheckoutHighlight( 'fullview' );
26 showFullView();
27 }
28
29 if (target.id.toLowerCase() == 'textview'){
30 berryCheckoutHighlight( 'textview' );
31 showTextView();
32 }
33
34 if (target.id.toLowerCase() == 'email'){
35 berryCheckoutHighlight( 'email' );
36 showEmail();
37 }
38
39 if (target.id.toLowerCase() == 'sendmail'){
40 sendMail();
41 }
42
43 if (target.id.toLowerCase() == 'urlcheck' && urlonly){
44 var urlcheck = YAHOO.util.Dom.get('urlcheck');
45 urlcheck.src = 'interfaces/default/images/check3.gif';
46 var parea =YAHOO.util.Dom.get('pretextarea');
47 urlonly = false;
48
49 this.value='URL only view';
50
51 populateUrlsAndMetadata(parea);
52 return;
53 }
54
55 if (target.id.toLowerCase() == 'urlcheck' && !urlonly ){
56 var urlcheck = YAHOO.util.Dom.get('urlcheck');
57 urlcheck.src = 'interfaces/default/images/check4.gif';
58 var parea =YAHOO.util.Dom.get('pretextarea');
59 populateUrls(parea);
60 urlonly = true;
61
62 this.value='URL and Metadata view';
63
64 return;
65 }
66
67 if (target.id.toLowerCase() == 'extextview' ){
68 if (textwin != null){
69 textwin.close();
70 }
71
72 textwin = window.open("","Berry basket plain text view","status=1,width=450,height=300");
73 textwin.moveTo(0,0);
74 var content = document.createElement('div');
75 buildPreview(content);
76 var body = textwin.document.getElementsByTagName('body')[0];
77 body.appendChild(content);
78 var prearea = textwin.document.getElementsByTagName('textarea')[0];
79 prearea.cols = '55';
80 prearea.rows = '15';
81 }
82
83 if (target.id.toLowerCase() == 'exemail' ){
84 if (mailwin != null){
85 mailwin.close();
86 }
87 mailwin = window.open("","Berry basket mail to a friend","status=1,width=450,height=350");
88 mailwin.moveTo(0,0);
89 var content = document.createElement('div');
90 getEmailContent(content);
91 var body = mailwin.document.getElementsByTagName('body')[0];
92 body.appendChild(content);
93 var prearea = mailwin.document.getElementsByTagName('textarea')[0];
94 prearea.cols = '50';
95 prearea.rows = '11';
96 }
97}
98
99function pageLoad(){
100 for(var j = 0; j < options.length; j++)
101 {
102 var ele = document.getElementById(options[j]);
103 YAHOO.util.Event.addListener(ele, 'click', navigate);
104 }
105
106 showFullView();
107}
108
109function showFullView(){
110
111 var content = YAHOO.util.Dom.get('berryBasketContent');
112 var fullview = YAHOO.util.Dom.get('fullview');
113 berryCheckoutPageClear();
114
115 if (docList.length == 0){
116 content.appendChild(document.createTextNode("Your berry basket is empty."));
117 return;
118 }
119
120 var trashbin = document.createElement('div');
121 trashbin.id ='trashbin';
122
123 var binhandle = document.createElement('div');
124 binhandle.id = 'binhandle';
125 binhandle.appendChild(document.createElement('span'));
126 trashbin.appendChild(binhandle);
127 content.appendChild(trashbin);
128
129 var dd = new ygDDOnTop('trashbin');
130 dd.setHandleElId('binhandle');
131 new YAHOO.util.DDTarget('trashbin','trash');
132
133 var dlist = document.createElement('div');
134 content.appendChild(dlist);
135 var ol = document.createElement('ol');
136 dlist.appendChild(ol);
137
138 for (var i in docList){
139 var doc = docList[i];
140 var li = document.createElement('li');
141 var a = document.createElement('a');
142 var img = document.createElement('img');
143 var text ="";
144
145 img.setAttribute("src", "interfaces/default/images/berry.png");
146 img.setAttribute("id", doc['collection']+":"+ doc['name']);
147 img.setAttribute("height", "15px");
148 img.setAttribute("width", "15px");
149 li.appendChild(img);
150
151 a.href =gs.xsltParams.library_name + "?a=d&c="+doc['collection']+"&d="+doc['name'];
152
153 if(window.interfaceName && window.interfaceName == "dev")
154 {
155 a.href +="&dt=hierarchy&ed=1";
156 }
157
158 a.appendChild(document.createTextNode(doc['title']));
159 if (doc['root_title'] != ""){
160 li.appendChild(document.createTextNode(doc['root_title']+": "));
161 }
162 li.appendChild(a);
163
164 var metadata = "";
165 for (var metaItem in doc && metaItem != 'title'){
166 metadata = "\n"+metaItem+": "+ doc[metaItem]+"\n";
167 }
168 text +=metadata+"\n";
169 li.appendChild(document.createTextNode(text));
170 li.className = 'berrydoc';
171 ol.appendChild(li);
172 new ygDDPlayer(img.id,'trash',docList);
173 }
174
175 /**
176 var extra = document.createElement('div');
177 var textview = document.createElement('span');
178 textview.id = 'extextview';
179 textview.className = 'extralink';
180 textview.appendChild(document.createTextNode("plain text version"));
181 var email = document.createElement('span');
182 email.appendChild(document.createTextNode("email to a friend"));
183 email.id = 'exemail';
184 email.className = 'extralink';
185 extra.appendChild(textview);
186 extra.appendChild(email);
187 content.appendChild(extra);
188 **/
189 //alert('x');
190
191}
192
193function showTextView(){
194
195 var content = YAHOO.util.Dom.get('berryBasketContent');
196 var textview = YAHOO.util.Dom.get('textview');
197
198 berryCheckoutPageClear();
199 if (docList.length == 0){
200 content.appendChild(document.createTextNode("Your berry basket is empty."));
201 return;
202 }
203 buildPreview(content);
204
205}
206
207function getEmailContent(content){
208 var item ;
209 var tr;
210 var td;
211 var input;
212
213 table = document.createElement('table');
214 table.setAttribute("class","mailtable");
215
216 for (item in mailinfo){
217 tr = document.createElement('tr');
218 td = document.createElement('td');
219 td.setAttribute("class","mailitem");
220 td.appendChild(document.createTextNode(mailinfo[item]));
221 tr.appendChild(td);
222 td = document.createElement('td');
223 input = document.createElement('input');
224 input.setAttribute("id", item);
225 input.setAttribute("class", "mailinput");
226 input.setAttribute("type", "text");
227 td.appendChild(input);
228 tr.appendChild(td);
229 table.appendChild(tr);
230 }
231
232 // an empty line
233 tr = document.createElement('tr');
234 td = document.createElement('td');
235 td.appendChild(document.createElement('br'));
236 tr.appendChild(td);
237 table.appendChild(tr);
238
239 content.appendChild(table);
240
241 buildPreview(content);
242
243 //send button
244 input = document.createElement('input');
245 input.setAttribute("id", 'sendmail');
246 input.setAttribute("class", "sendbutton");
247 input.setAttribute("type", "button");
248 input.setAttribute("value", "send");
249 content.appendChild(input);
250}
251
252function showEmail(){
253 var content = YAHOO.util.Dom.get('berryBasketContent');
254 var email = YAHOO.util.Dom.get('email');
255
256 berryCheckoutPageClear();
257
258 if (docList.length == 0){
259 content.appendChild(document.createTextNode("Your berry basket is empty."));
260 return;
261 }
262
263 var item;
264 var tr;
265 var td;
266 var input;
267
268 table = document.createElement('table');
269 table.setAttribute("class","mailtable");
270
271 for (item in mailinfo){
272 tr = document.createElement('tr');
273 td = document.createElement('td');
274 td.setAttribute("class","mailitem");
275 td.appendChild(document.createTextNode(mailinfo[item]));
276 tr.appendChild(td);
277
278 td = document.createElement('td');
279 input = document.createElement('input');
280 input.setAttribute("id", item);
281 input.setAttribute("class", "mailinput");
282 input.setAttribute("type", "text");
283 td.appendChild(input);
284 tr.appendChild(td);
285 table.appendChild(tr);
286
287 }
288
289 // an empty line
290 tr = document.createElement('tr');
291 td = document.createElement('td');
292 td.appendChild(document.createElement('br'));
293 tr.appendChild(td);
294 table.appendChild(tr);
295
296 content.appendChild(table);
297
298 buildPreview(content);
299
300 //send button
301 input = document.createElement('input');
302 input.setAttribute("id", 'sendmail');
303 input.setAttribute("class", "sendbutton");
304 input.setAttribute("type", "button");
305 input.setAttribute("value", "send");
306 content.appendChild(input);
307
308 YAHOO.util.Event.addListener(input, 'click', navigate);
309}
310
311function buildPreview(parent){
312
313 var div = document.createElement('div');
314 var cb = document.createElement('input');
315 cb.setAttribute('class', 'sendbutton');
316 cb.type = 'button';
317 cb.id = 'urlcheck';
318 if (urlonly)
319 {
320 cb.value='URL and Metadata view';
321 }
322 else
323 {
324 cb.value='URL only view';
325 }
326
327 YAHOO.util.Event.addListener(cb, 'click', navigate);
328
329 var img = document.createElement('img');
330 img.src = 'interfaces/default/images/check3.gif';
331 img.id = 'urlcheck';
332 div.appendChild(cb);
333 //div.appendChild(img);
334
335 var urls = document.createElement('span');
336 urls.id = 'urls';
337 urls.className = 'berrycheck';
338 //urls.appendChild(document.createTextNode('URL only'));
339 div.appendChild(urls);
340
341 // var urlsmetadata = document.createElement('span');
342 // urlsmetadata.id = 'urlsmetadata'
343 // urlsmetadata.className = 'berryradio';
344 // urlsmetadata.appendChild(document.createTextNode('URLs and Metadata'));
345 // div.appendChild(urlsmetadata);
346
347 parent.appendChild(div);
348
349 var parea = document.createElement('textarea');
350 parea.id = 'pretextarea';
351
352 parent.appendChild(parea);
353
354 if(urlonly)
355 {
356 populateUrls(parea);
357 }
358 else
359 {
360 populateUrlsAndMetadata(parea);
361 }
362}
363
364function populateUrls(parea){
365
366 var urls="";
367 var doc_url = document.URL;
368 var root_url = doc_url.substring(0,doc_url.indexOf('?'));
369
370 for (var i in docList){
371 var doc = docList[i];
372 urls +=root_url+"?a=d&c="+doc["collection"]+"&d="+doc["name"]+"\n\n";
373 }
374
375 parea.value = urls;
376
377}
378
379function populateUrlsAndMetadata(parea){
380
381 var doc_url = document.URL;
382 var root_url = doc_url.substring(0,doc_url.indexOf('?'));
383 var fulltext="";
384
385 for (var i in docList){
386 var doc = docList[i];
387 var url =root_url+"?a=d&c="+doc['collection']+"&d="+doc['name']+"\n";
388 for (var metaItem in doc){
389 var metadata = metaItem+": "+ doc[metaItem]+"\n";
390 }
391 fulltext +=url+metadata+"\n";
392 }
393
394 parea.value = fulltext;
395
396}
397
398function sendMail(){
399 var url = gs.xsltParams.library_name + "?a=pr&rt=r&ro=1&s=SendMail&c=";
400 var request_type = "POST";
401 var postdata = "";
402 var i;
403 //get checked items
404 for (i in mailinfo) {
405 var input = YAHOO.util.Dom.get(i);
406 var value = input.value;
407 postdata +="&s1."+i+"="+value;
408 }
409
410 var content = YAHOO.util.Dom.get('pretextarea').value;
411
412 content = content.replace(/&/g,'-------');
413 postdata +="&s1.content="+content;
414
415 var callback = {
416 success: function(o) {
417 var result = o.responseText;
418 alert("Sending mail Succeeded");
419 } ,
420 failure: function(o) {
421 alert("Sending mail falied");
422 }
423 }
424 YAHOO.util.Connect.asyncRequest(request_type , url , callback, postdata);
425}
426
427function berryCheckoutPageClear() {
428 var bbc = document.getElementById('berryBasketContent');
429 if ( bbc == null ) return;
430 bbc.innerHTML = '';
431}
432
433function berryCheckoutHighlight( id ) {
434
435 for ( var i=0; i<options.length; i++ ) {
436 var option = document.getElementById( options[i] );
437 if ( option != null ) {
438 if ( id == options[i] ) {
439 //YAHOO.util.Dom.addClass( option, 'current' );
440 option.className='current';
441 } else {
442 //YAHOO.util.Dom.removeClass( option, 'current' );
443 option.className='';
444 }
445 }
446 }
447
448 if ( option == null ) return;
449 option.style.className = 'current';
450
451}
452
453YAHOO.util.Event.addListener(window,'load', pageLoad);
454
455
Note: See TracBrowser for help on using the repository browser.