source: main/branches/64_bit_Greenstone/greenstone3/web/interfaces/oran/js/berrycheckout.js@ 24007

Last change on this file since 24007 was 24007, checked in by sjm84, 13 years ago

Updating this branch to match the latest Greenstone3 changes

File size: 10.5 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 text ="";
143 a.href ="?a=d&c="+doc['collection']+"&d="+doc['name'];
144 a.appendChild(document.createTextNode(doc['title']));
145 if (doc['root_title'] != ""){
146 li.appendChild(document.createTextNode(doc['root_title']+": "));
147 }
148 li.appendChild(a);
149
150 var metadata = "";
151 for (var metaItem in doc && metaItem != 'title'){
152 metadata = "\n"+metaItem+": "+ doc[metaItem]+"\n";
153 }
154 text +=metadata+"\n";
155 li.appendChild(document.createTextNode(text));
156 li.id = doc['collection']+":"+ doc['name'];
157 li.className = 'berrydoc';
158 ol.appendChild(li);
159 new ygDDPlayer(li.id,'trash',docList);
160 }
161
162 /**
163 var extra = document.createElement('div');
164 var textview = document.createElement('span');
165 textview.id = 'extextview';
166 textview.className = 'extralink';
167 textview.appendChild(document.createTextNode("plain text version"));
168 var email = document.createElement('span');
169 email.appendChild(document.createTextNode("email to a friend"));
170 email.id = 'exemail';
171 email.className = 'extralink';
172 extra.appendChild(textview);
173 extra.appendChild(email);
174 content.appendChild(extra);
175 **/
176 //alert('x');
177
178}
179
180function showTextView(){
181
182 var content = YAHOO.util.Dom.get('berryBasketContent');
183 var textview = YAHOO.util.Dom.get('textview');
184
185 berryCheckoutPageClear();
186 if (docList.length == 0){
187 content.appendChild(document.createTextNode("Your berry basket is empty."));
188 return;
189 }
190 buildPreview(content);
191
192}
193
194function getEmailContent(content){
195 var item ;
196 var tr;
197 var td;
198 var input;
199
200 table = document.createElement('table');
201 table.setAttribute("class","mailtable");
202
203 for (item in mailinfo){
204 tr = document.createElement('tr');
205 td = document.createElement('td');
206 td.setAttribute("class","mailitem");
207 td.appendChild(document.createTextNode(mailinfo[item]));
208 tr.appendChild(td);
209 td = document.createElement('td');
210 input = document.createElement('input');
211 input.setAttribute("id", item);
212 input.setAttribute("class", "mailinput");
213 input.setAttribute("type", "text");
214 td.appendChild(input);
215 tr.appendChild(td);
216 table.appendChild(tr);
217 }
218
219 // an empty line
220 tr = document.createElement('tr');
221 td = document.createElement('td');
222 td.appendChild(document.createElement('br'));
223 tr.appendChild(td);
224 table.appendChild(tr);
225
226 content.appendChild(table);
227
228 buildPreview(content);
229
230 //send button
231 input = document.createElement('input');
232 input.setAttribute("id", 'sendmail');
233 input.setAttribute("class", "sendbutton");
234 input.setAttribute("type", "button");
235 input.setAttribute("value", "send");
236 content.appendChild(input);
237}
238
239function showEmail(){
240 var content = YAHOO.util.Dom.get('berryBasketContent');
241 var email = YAHOO.util.Dom.get('email');
242
243 berryCheckoutPageClear();
244
245 if (docList.length == 0){
246 content.appendChild(document.createTextNode("Your berry basket is empty."));
247 return;
248 }
249
250 var item;
251 var tr;
252 var td;
253 var input;
254
255 table = document.createElement('table');
256 table.setAttribute("class","mailtable");
257
258 for (item in mailinfo){
259 tr = document.createElement('tr');
260 td = document.createElement('td');
261 td.setAttribute("class","mailitem");
262 td.appendChild(document.createTextNode(mailinfo[item]));
263 tr.appendChild(td);
264
265 td = document.createElement('td');
266 input = document.createElement('input');
267 input.setAttribute("id", item);
268 input.setAttribute("class", "mailinput");
269 input.setAttribute("type", "text");
270 td.appendChild(input);
271 tr.appendChild(td);
272 table.appendChild(tr);
273
274 }
275
276 // an empty line
277 tr = document.createElement('tr');
278 td = document.createElement('td');
279 td.appendChild(document.createElement('br'));
280 tr.appendChild(td);
281 table.appendChild(tr);
282
283 content.appendChild(table);
284
285 buildPreview(content);
286
287 //send button
288 input = document.createElement('input');
289 input.setAttribute("id", 'sendmail');
290 input.setAttribute("class", "sendbutton");
291 input.setAttribute("type", "button");
292 input.setAttribute("value", "send");
293 content.appendChild(input);
294
295 YAHOO.util.Event.addListener(input, 'click', navigate);
296}
297
298function buildPreview(parent){
299
300 var div = document.createElement('div');
301 var cb = document.createElement('input');
302 cb.setAttribute('class', 'sendbutton');
303 cb.type = 'button';
304 cb.id = 'urlcheck';
305 if (urlonly)
306 {
307 cb.value='URL and Metadata view';
308 }
309 else
310 {
311 cb.value='URL only view';
312 }
313
314 YAHOO.util.Event.addListener(cb, 'click', navigate);
315
316 var img = document.createElement('img');
317 img.src = 'interfaces/default/images/check3.gif';
318 img.id = 'urlcheck';
319 div.appendChild(cb);
320 //div.appendChild(img);
321
322 var urls = document.createElement('span');
323 urls.id = 'urls';
324 urls.className = 'berrycheck';
325 //urls.appendChild(document.createTextNode('URL only'));
326 div.appendChild(urls);
327
328 // var urlsmetadata = document.createElement('span');
329 // urlsmetadata.id = 'urlsmetadata'
330 // urlsmetadata.className = 'berryradio';
331 // urlsmetadata.appendChild(document.createTextNode('URLs and Metadata'));
332 // div.appendChild(urlsmetadata);
333
334 parent.appendChild(div);
335
336 var parea = document.createElement('textarea');
337 parea.id = 'pretextarea';
338
339 parent.appendChild(parea);
340
341 if(urlonly)
342 {
343 populateUrls(parea);
344 }
345 else
346 {
347 populateUrlsAndMetadata(parea);
348 }
349}
350
351function populateUrls(parea){
352
353 var urls="";
354 var doc_url = document.URL;
355 var root_url = doc_url.substring(0,doc_url.indexOf('?'));
356
357 for (var i in docList){
358 var doc = docList[i];
359 urls +=root_url+"?a=d&c="+doc["collection"]+"&d="+doc["name"]+"\n\n";
360 }
361
362 parea.value = urls;
363
364}
365
366function populateUrlsAndMetadata(parea){
367
368 var doc_url = document.URL;
369 var root_url = doc_url.substring(0,doc_url.indexOf('?'));
370 var fulltext="";
371
372 for (var i in docList){
373 var doc = docList[i];
374 var url =root_url+"?a=d&c="+doc['collection']+"&d="+doc['name']+"\n";
375 for (var metaItem in doc){
376 var metadata = metaItem+": "+ doc[metaItem]+"\n";
377 }
378 fulltext +=url+metadata+"\n";
379 }
380
381 parea.value = fulltext;
382
383}
384
385function sendMail(){
386 var url = "?a=pr&rt=r&ro=1&s=SendMail&c=";
387 var request_type = "POST";
388 var postdata = "";
389 var i;
390 //get checked items
391 for (i in mailinfo) {
392 var input = YAHOO.util.Dom.get(i);
393 var value = input.value;
394 postdata +="&s1."+i+"="+value;
395 }
396
397 var content = YAHOO.util.Dom.get('pretextarea').value;
398
399 content = content.replace(/&/g,'-------');
400 postdata +="&s1.content="+content;
401
402 var callback = {
403 success: function(o) {
404 var result = o.responseText;
405 alert("Sending mail Succeeded");
406 } ,
407 failure: function(o) {
408 alert("Sending mail falied");
409 }
410 }
411 YAHOO.util.Connect.asyncRequest(request_type , url , callback, postdata);
412}
413
414function berryCheckoutPageClear() {
415 var bbc = document.getElementById('berryBasketContent');
416 if ( bbc == null ) return;
417 bbc.innerHTML = '';
418}
419
420function berryCheckoutHighlight( id ) {
421
422 for ( var i=0; i<options.length; i++ ) {
423 var option = document.getElementById( options[i] );
424 if ( option != null ) {
425 if ( id == options[i] ) {
426 //YAHOO.util.Dom.addClass( option, 'current' );
427 option.className='current';
428 } else {
429 //YAHOO.util.Dom.removeClass( option, 'current' );
430 option.className='';
431 }
432 }
433 }
434
435 if ( option == null ) return;
436 option.style.className = 'current';
437
438}
439
440YAHOO.util.Event.addListener(window,'load', pageLoad);
441
442
Note: See TracBrowser for help on using the repository browser.