source: main/trunk/greenstone3/web/interfaces/default_new/js/berrybasket/berrycheckout.js@ 29852

Last change on this file since 29852 was 29852, checked in by Georgiy Litvinov, 9 years ago

Ckeditor integration commit

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