javascripts/right-autocompleter-src.js in right-rails-0.5.1 vs javascripts/right-autocompleter-src.js in right-rails-0.5.2

- old
+ new

@@ -65,12 +65,14 @@ // storing the callbacks so we could detach them later this._watch = this.watch.bind(this); this._hide = this.hide.bind(this); this.input.onKeyup(this._watch).onBlur(this._hide); - this.container = $E('div', {'class': 'autocompleter'}).insertTo(this.input, 'after'); + this.holder = $E('div', {'class': 'right-autocompleter'}).insertTo(this.input, 'after'); + this.container = $E('div', {'class': 'autocompleter'}).insertTo(this.holder); + this.input.autocompleter = Autocompleter.instances[$uid(input)] = this; }, // kills the autocompleter destroy: function() { @@ -90,15 +92,15 @@ }, // handles the list appearance show: function() { if (this.container.hidden()) { - var dims = this.input.dimensions(); + var dims = this.input.dimensions(), pos = this.holder.position(); this.container.setStyle({ - top: (dims.top + dims.height) + 'px', - left: dims.left + 'px', + top: (dims.top + dims.height - pos.y) + 'px', + left: (dims.left - pos.x) + 'px', width: dims.width + 'px' }).show(this.options.fxName, { duration: this.options.fxDuration, onFinish: this.fire.bind(this, 'show') }); @@ -248,11 +250,11 @@ // building the native spinner if (this._spinner == 'native') { this._spinner = $E('div', { 'class': 'autocompleter-spinner' - }).insertTo(this.input, 'after'); + }).insertTo(this.holder); var dots = '123'.split('').map(function(i) { return $E('div', {'class': 'dot-'+i, html: '&raquo;'}); }); @@ -263,20 +265,20 @@ }.bind(this)).periodical(400); } // repositioning the native spinner if (this.options.spinner == 'native') { - var dims = this.input.dimensions(); + var dims = this.input.dimensions(), pos = this.holder.position(); this._spinner.setStyle('visiblity: hidden').show(); this._spinner.setStyle({ visibility: 'visible', - top: (dims.top + 1) + 'px', + top: (dims.top + 1 - pos.y) + 'px', height: (dims.height - 2) + 'px', lineHeight: (dims.height - 2) + 'px', - left: (dims.left + dims.width - this._spinner.offsetWidth - 1) + 'px' + left: (dims.left + dims.width - this._spinner.offsetWidth - 1 - pos.x) + 'px' }).hide(); } return this._spinner; } @@ -314,6 +316,6 @@ Autocompleter.find(event); } } }); -document.write("<style type=\"text/css\">div.autocompleter{display:none;position:absolute;z-index:100000000;border:none;margin:0;padding:0;background:white;-moz-box-shadow:#BBB .2em .2em .4em;-webkit-box-shadow:#BBB .2em .2em .4em;overflow:hidden}div.autocompleter ul{list-style:none;margin:0;padding:0;border:none;background:none;*border-bottom:1px solid #CCC}div.autocompleter ul li{list-style:none;font-weight:normal;margin:0;padding:.2em .4em;border:1px solid #CCC;border-top:none;border-bottom:none;background:none;cursor:pointer}div.autocompleter ul li:first-child{border-top:1px solid #CCC}div.autocompleter ul li:last-child{border-bottom:1px solid #CCC;*border-bottom:none}div.autocompleter ul li.current{background:#DDD}div.autocompleter-spinner{position:absolute;z-index:100000000;text-align:center;font-size:140%;font-family:Georgia;background:#DDD;color:#666;display:none;width:1em;margin:0;padding:0}div.autocompleter-spinner div.dot-1{margin-left:-4px}div.autocompleter-spinner div.dot-2{}div.autocompleter-spinner div.dot-3{margin-left:4px}</style>"); +document.write("<style type=\"text/css\">div.right-autocompleter,div.autocompleter,div.autocompleter ul,div.autocompleter ul li,div.autocompleter-spinner,div.autocompleter-spinner div{border:none;background:none;margin:0;padding:0;list-style:none;font-weight:normal}div.right-autocompleter{position:absolute;display:inline}div.autocompleter{display:none;position:absolute;z-index:9999999;background:white;-moz-box-shadow:#BBB .2em .2em .4em;-webkit-box-shadow:#BBB .2em .2em .4em;overflow:hidden}div.autocompleter ul{*border-bottom:1px solid #CCC}div.autocompleter ul li{padding:.2em .4em;border:1px solid #CCC;border-top:none;border-bottom:none;cursor:pointer}div.autocompleter ul li:first-child{border-top:1px solid #CCC}div.autocompleter ul li:last-child{border-bottom:1px solid #CCC;*border-bottom:none}div.autocompleter ul li.current{background:#DDD}div.autocompleter-spinner{position:absolute;z-index:100000000;text-align:center;font-size:140%;font-family:Georgia;background:#DDD;color:#666;display:none;width:1em}div.autocompleter-spinner div.dot-1{margin-left:-4px}div.autocompleter-spinner div.dot-2{}div.autocompleter-spinner div.dot-3{margin-left:4px}</style>"); \ No newline at end of file