/[webpac2]/Webpacus/root/js/webpac.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /Webpacus/root/js/webpac.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 326 - (hide annotations)
Mon Dec 26 20:10:52 2005 UTC (18 years, 5 months ago) by dpavlin
File MIME type: text/cpp
File size: 3554 byte(s)
 r12490@llin:  dpavlin | 2005-12-26 21:13:13 +0100
 - make database filter work in WebPAC.Suggest [0.27]
 - search/suggest has changed it's REST URI to:
   search/suggest?search=FieldName&show=TitleProper&FieldName=query%20string
 - created search/filter_database

1 dpavlin 159 /*
2 dpavlin 283 WebPAC AJAX class
3 dpavlin 159 */
4 dpavlin 101
5 dpavlin 270 var WebPAC = { };
6    
7 dpavlin 203 /*
8     autocompleter which isn't (a suggest box)
9     - don't just on first option on appear
10     - removed fade-in/out effect
11     - added configurable width (content width? centered?)
12     - add icon which means suggest
13    
14 dpavlin 270 hopefully, this implementation won't break (much) when I update
15     prototype next time :-)
16 dpavlin 203 */
17    
18 dpavlin 205
19 dpavlin 270 WebPAC.Suggest = Class.create();
20     Logger.debug('Created WebPAC.Suggest Class');
21     Object.extend(Object.extend(WebPAC.Suggest.prototype, Ajax.Autocompleter.prototype), {
22 dpavlin 203 initialize: function(element, update, url, options) {
23 dpavlin 270 this.baseInitialize(element, update, options);
24 dpavlin 203 this.options.asynchronous = true;
25     this.options.onComplete = this.onComplete.bind(this);
26     this.options.defaultParams = this.options.parameters || null;
27     this.url = url;
28     this.ignoreReturn = true;
29    
30 dpavlin 270 Logger.debug('WebPAC.Sugget initialize '+element+','+update+','+url);
31 dpavlin 205
32 dpavlin 203 this.options.onShow = function(element, update) {
33     if(!update.style.position || update.style.position=='absolute') {
34     update.style.position = 'absolute';
35     Position.clone(element, update, {setHeight: false, offsetTop: element.offsetHeight});
36     }
37     new Element.show(update);
38 dpavlin 270 Logger.debug('WebPAC.Suggest.onShow');
39 dpavlin 203 };
40    
41     this.options.onHide = function(element, update) {
42     new Element.hide(update);
43 dpavlin 270 Logger.debug('WebPAC.Suggest.onHide');
44 dpavlin 203 };
45     },
46    
47     getUpdatedChoices: function() {
48 dpavlin 323 var entry = encodeURIComponent(this.options.paramName) + '=' +
49 dpavlin 203 encodeURIComponent(this.getToken());
50    
51     this.options.parameters = this.options.callback ?
52     this.options.callback(this.element, entry) : entry;
53    
54     if(this.options.defaultParams)
55     this.options.parameters += '&' + this.options.defaultParams;
56    
57 dpavlin 326 var form = $('results_form');
58     var inputs = form.getElementsByTagName('input');
59     var name = '_database';
60    
61     var matchingInputs = new Array();
62     for (var i = 0; i < inputs.length; i++) {
63     var input = inputs[i];
64     if (input.name != name || !input.checked) continue;
65     Logger.debug('keeping '+name+'='+input.value);
66     matchingInputs.push(name+'='+input.value);
67     }
68    
69     // construct arguments for url
70     var args = '';
71     var pos = this.url.indexOf('?');
72     if (pos == -1) {
73     args += '?';
74     } else {
75     args += '&';
76     }
77     args += matchingInputs.join('&');
78    
79     Logger.debug('WebPAC.Suggest called '+this.url+args);
80     new Ajax.Request(this.url+args, this.options);
81 dpavlin 203 },
82    
83     onComplete: function(request) {
84 dpavlin 270 Logger.debug('WebPAC.Suggest onComplete called');
85 dpavlin 203 this.updateChoices(request.responseText);
86     },
87    
88     markPrevious: function() {
89     if(this.index > 0) this.index--
90     // else this.index = this.entryCount-1;
91     },
92    
93     markNext: function() {
94     if(this.index < this.entryCount-1) this.index++
95     // else this.index = 0;
96 dpavlin 205 }
97 dpavlin 203
98     });
99 dpavlin 205
100 dpavlin 270 /*
101     WebPAC.Updater
102     */
103 dpavlin 205
104 dpavlin 270 WebPAC.Updater = Class.create();
105     Logger.debug('Created WebPAC.Updater Class');
106     Object.extend(WebPAC.Updater.prototype, {
107     initialize: function(container, url, options) {
108     Logger.debug('WebPAC.Updater initialize '+container+','+url+','+options);
109 dpavlin 279 if (url.indexOf('/ajax') == -1) {
110     var pos = url.indexOf('?');
111     if (pos == -1) {
112     url += '/ajax';
113     } else {
114     url = url.substring(0,pos) + '/ajax' + url.substring(pos);
115     }
116     Logger.debug('added /ajax to '+url+' pos:'+pos);
117     }
118     Logger.info('using AJAX to update "'+container+'" from '+url);
119 dpavlin 270 this.updater = new Ajax.Updater(container, url, options);
120     }
121     });
122    

Properties

Name Value
svn:mime-type text/cpp

  ViewVC Help
Powered by ViewVC 1.1.26