mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Script.aculo.us: autocompletion focus fix, setContentZoom fix #1546 [Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1560 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
a551ba2c01
commit
0ffcceffac
3 changed files with 21 additions and 19 deletions
|
@ -61,6 +61,7 @@ Ajax.Autocompleter.prototype = (new Ajax.Base()).extend({
|
||||||
|
|
||||||
this.observer = null;
|
this.observer = null;
|
||||||
|
|
||||||
|
Event.observe(this.element, "blur", this.onBlur.bindAsEventListener(this));
|
||||||
Event.observe(this.element, "keypress", this.onKeyPress.bindAsEventListener(this));
|
Event.observe(this.element, "keypress", this.onKeyPress.bindAsEventListener(this));
|
||||||
Event.observe(document, "click", this.onBlur.bindAsEventListener(this));
|
Event.observe(document, "click", this.onBlur.bindAsEventListener(this));
|
||||||
},
|
},
|
||||||
|
@ -108,9 +109,15 @@ Ajax.Autocompleter.prototype = (new Ajax.Base()).extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
addObservers: function(element) {
|
||||||
|
Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
|
||||||
|
Event.observe(element, "click", this.onClick.bindAsEventListener(this));
|
||||||
|
},
|
||||||
|
|
||||||
onComplete: function(request) {
|
onComplete: function(request) {
|
||||||
if(!this.changed) {
|
if(!this.changed && this.has_focus) {
|
||||||
this.update.innerHTML = request.responseText;
|
this.update.innerHTML = request.responseText;
|
||||||
|
Element.cleanWhitespace(this.update);
|
||||||
Element.cleanWhitespace(this.update.firstChild);
|
Element.cleanWhitespace(this.update.firstChild);
|
||||||
|
|
||||||
if(this.update.firstChild && this.update.firstChild.childNodes) {
|
if(this.update.firstChild && this.update.firstChild.childNodes) {
|
||||||
|
@ -119,8 +126,7 @@ Ajax.Autocompleter.prototype = (new Ajax.Base()).extend({
|
||||||
for (var i = 0; i < this.entry_count; i++) {
|
for (var i = 0; i < this.entry_count; i++) {
|
||||||
entry = this.get_entry(i);
|
entry = this.get_entry(i);
|
||||||
entry.autocompleteIndex = i;
|
entry.autocompleteIndex = i;
|
||||||
Event.observe(entry, "mouseover", this.onHover.bindAsEventListener(this));
|
this.addObservers(entry);
|
||||||
Event.observe(entry, "click", this.onClick.bindAsEventListener(this));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.entry_count = 0;
|
this.entry_count = 0;
|
||||||
|
@ -171,26 +177,29 @@ Ajax.Autocompleter.prototype = (new Ajax.Base()).extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
onHover: function(event) {
|
onHover: function(event) {
|
||||||
element = Event.findElement(event, 'LI');
|
var element = Event.findElement(event, 'LI');
|
||||||
if(this.index != element.autocompleteIndex)
|
if(this.index != element.autocompleteIndex)
|
||||||
{
|
{
|
||||||
this.index = element.autocompleteIndex;
|
this.index = element.autocompleteIndex;
|
||||||
this.render();
|
this.render();
|
||||||
}
|
}
|
||||||
|
Event.stop(event);
|
||||||
},
|
},
|
||||||
|
|
||||||
onClick: function(event) {
|
onClick: function(event) {
|
||||||
element = Event.findElement(event, 'LI');
|
var element = Event.findElement(event, 'LI');
|
||||||
this.index = element.autocompleteIndex;
|
this.index = element.autocompleteIndex;
|
||||||
this.select_entry();
|
this.select_entry();
|
||||||
|
Event.stop(event);
|
||||||
},
|
},
|
||||||
|
|
||||||
onBlur: function(event) {
|
onBlur: function(event) {
|
||||||
element = Event.element(event);
|
var element = Event.element(event);
|
||||||
if(element==this.update) return;
|
if(element==this.update) return;
|
||||||
while(element.parentNode)
|
while(element.parentNode)
|
||||||
{ element = element.parentNode; if(element==this.update) return; }
|
{ element = element.parentNode; if(element==this.update) return; }
|
||||||
this.hide();
|
this.hide();
|
||||||
|
this.has_focus = false;
|
||||||
this.active = false;
|
this.active = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -235,13 +235,13 @@ Draggable.prototype = {
|
||||||
var options = {
|
var options = {
|
||||||
handle: false,
|
handle: false,
|
||||||
starteffect: function(element) {
|
starteffect: function(element) {
|
||||||
new Effect2.Opacity(element, {duration:0.2, from:1.0, to:0.7});
|
new Effect.Opacity(element, {duration:0.2, from:1.0, to:0.7});
|
||||||
},
|
},
|
||||||
reverteffect: function(element, top_offset, left_offset) {
|
reverteffect: function(element, top_offset, left_offset) {
|
||||||
new Effect2.MoveBy(element, -top_offset, -left_offset, {duration:0.4});
|
new Effect.MoveBy(element, -top_offset, -left_offset, {duration:0.4});
|
||||||
},
|
},
|
||||||
endeffect: function(element) {
|
endeffect: function(element) {
|
||||||
new Effect2.Opacity(element, {duration:0.2, from:0.7, to:1.0});
|
new Effect.Opacity(element, {duration:0.2, from:0.7, to:1.0});
|
||||||
},
|
},
|
||||||
zindex: 1000
|
zindex: 1000
|
||||||
}.extend(arguments[1] || {});
|
}.extend(arguments[1] || {});
|
||||||
|
@ -466,6 +466,4 @@ Sortable = {
|
||||||
|
|
||||||
return queryComponents.join("&");
|
return queryComponents.join("&");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
|
@ -529,7 +529,7 @@ Effect.Pulsate = function(element) {
|
||||||
|
|
||||||
Effect.Fold = function(element) {
|
Effect.Fold = function(element) {
|
||||||
$(element).style.overflow = 'hidden';
|
$(element).style.overflow = 'hidden';
|
||||||
new Effect2.Scale(element, 5, {
|
new Effect.Scale(element, 5, {
|
||||||
scaleContent: false,
|
scaleContent: false,
|
||||||
scaleTo: 100,
|
scaleTo: 100,
|
||||||
scaleX: false,
|
scaleX: false,
|
||||||
|
@ -547,11 +547,6 @@ Effect.Fold = function(element) {
|
||||||
|
|
||||||
Element.setContentZoom = function(element, percent) {
|
Element.setContentZoom = function(element, percent) {
|
||||||
var element = $(element);
|
var element = $(element);
|
||||||
|
element.style.fontSize = (percent/100) + "em";
|
||||||
var sizeEm = 1.0;
|
|
||||||
if (element.style.fontSize.indexOf("em")>0)
|
|
||||||
sizeEm = parseFloat(element.style.fontSize);
|
|
||||||
|
|
||||||
element.style.fontSize = sizeEm*(percent/100) + "em";
|
|
||||||
if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
|
if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue