source: greenstone3/trunk/web/interfaces/oran/js/berrycheckout.js@ 19854

Last change on this file since 19854 was 19854, checked in by oranfry, 15 years ago

reorganised javascript for the new interface

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