diff options
author | wei <> | 2007-03-31 11:35:00 +0000 |
---|---|---|
committer | wei <> | 2007-03-31 11:35:00 +0000 |
commit | 2d32c6aa8f682771839531537334250cf4a731bc (patch) | |
tree | 89d702f64773e5b441e22bd418086e3bccdb98a3 /framework/Web/Javascripts | |
parent | c619ade9b79afdbc176bba6180a37970cd4343e2 (diff) |
add inplacetext onkeypress suggestions
Diffstat (limited to 'framework/Web/Javascripts')
4 files changed, 63 insertions, 16 deletions
diff --git a/framework/Web/Javascripts/js/compressed/ajax.js b/framework/Web/Javascripts/js/compressed/ajax.js index b6387293..d8536c50 100644 --- a/framework/Web/Javascripts/js/compressed/ajax.js +++ b/framework/Web/Javascripts/js/compressed/ajax.js @@ -231,7 +231,7 @@ this.onInit(options);},doCallback:function(event,options) {var element=Event.findElement(event,'LI');this.index=element.autocompleteIndex;this.selectEntry();this.hide();Event.fireEvent(this.element,"change");},getUpdatedChoices:function() {var options=new Array(this.getToken(),"__TAutoComplete_onSuggest__");Prado.Callback(this.options.EventTarget,options,null,this.options);},selectEntry:function() {if(this.hasResults) -{this.active=false;this.updateElement(this.getCurrentEntry());}},onComplete:function(request,boundary) +{this.active=false;this.updateElement(this.getCurrentEntry());var options=[this.index,"__TAutoComplete_onSuggestionSelected__"];Prado.Callback(this.options.EventTarget,options,null,this.options);}},onComplete:function(request,boundary) {var result=Prado.Element.extractContent(request.transport.responseText,boundary);if(typeof(result)=="string") {if(result.length>0) {this.hasResults=true;this.updateChoices(result);} @@ -268,8 +268,8 @@ this.count=this.count+this.options.Decay;if(this.observing) this.time=setTimeout(this.checkChanges.bind(this),parseInt(this.options.Interval*1000*this.count));}},doCallback:function(oldValue,newValue) {var request=new Prado.CallbackRequest(this.options.EventTarget,this.options);var param={'OldValue':oldValue,'NewValue':newValue};request.setCallbackParameter(param);request.dispatch();}},{timers:{},register:function(timer) {Prado.WebUI.TValueTriggeredCallback.timers[timer.options.ID]=timer;},stop:function(id) -{Prado.WebUI.TValueTriggeredCallback.timers[id].stopObserving();}});Prado.WebUI.TInPlaceTextBox=Base.extend({isSaving:false,isEditing:false,editField:null,constructor:function(options) -{this.options=Object.extend({LoadTextFromSource:false,TextMode:'SingleLine'},options||{});this.element=$(this.options.ID);Prado.WebUI.TInPlaceTextBox.register(this);this.createEditorInput();this.initializeListeners();},initializeListeners:function() +{Prado.WebUI.TValueTriggeredCallback.timers[id].stopObserving();}});Prado.WebUI.TInPlaceTextBox=Base.extend({constructor:function(options) +{this.isSaving=false;this.isEditing=false;this.editField=null;this.options=Object.extend({LoadTextFromSource:false,TextMode:'SingleLine'},options||{});this.element=$(this.options.ID);Prado.WebUI.TInPlaceTextBox.register(this);this.createEditorInput();this.initializeListeners();},initializeListeners:function() {this.onclickListener=this.enterEditMode.bindAsEventListener(this);Event.observe(this.element,'click',this.onclickListener);if(this.options.ExternalControl) Event.observe($(this.options.ExternalControl),'click',this.onclickListener);},enterEditMode:function(evt) {if(this.isSaving||this.isEditing)return;this.isEditing=true;this.onEnterEditMode();this.createEditorInput();this.showTextBox();this.editField.disabled=false;if(this.options.LoadTextOnEdit) @@ -295,14 +295,21 @@ if(this.options.TextMode=='SingleLine') {if(Event.keyCode(e)==Event.KEY_RETURN) {var target=Event.element(e);if(target) {Event.fireEvent(target,"blur");Event.stop(e);}}});} -Event.observe(this.editField,"blur",this.onTextBoxBlur.bind(this));},getText:function() +Event.observe(this.editField,"blur",this.onTextBoxBlur.bind(this));Event.observe(this.editField,"keypress",this.onKeyPressed.bind(this));},getText:function() {return this.element.innerHTML;},onEnterEditMode:function() {if(typeof(this.options.onEnterEditMode)=="function") this.options.onEnterEditMode(this,null);},onTextBoxBlur:function(e) {text=this.element.innerHTML;if(this.options.AutoPostBack&&text!=this.editField.value) -this.onTextChanged(text);else +{if(this.isEditing) +this.onTextChanged(text);} +else {this.element.innerHTML=this.editField.value;this.isEditing=false;if(this.options.AutoHide) -this.showLabel();}},onTextChanged:function(text) +this.showLabel();}},onKeyPressed:function(e) +{if(Event.keyCode(e)==Event.KEY_ESC) +{this.editField.value=this.getText();this.isEditing=false;if(this.options.AutoHide) +this.showLabel();} +else if(Event.keyCode(e)==Event.KEY_RETURN) +Event.stop(e);},onTextChanged:function(text) {request=new Prado.CallbackRequest(this.options.EventTarget,this.options);request.setCallbackParameter(text);request.ActiveControl.onSuccess=this.onTextChangedSuccess.bind(this);request.ActiveControl.onFailure=this.onTextChangedFailure.bind(this);if(request.dispatch()) {this.isSaving=true;this.editField.disabled=true;}},onLoadingText:function() {},onloadExternalTextSuccess:function(request,parameter) diff --git a/framework/Web/Javascripts/js/debug/ajax.js b/framework/Web/Javascripts/js/debug/ajax.js index 936f50e4..5b36b2d1 100644 --- a/framework/Web/Javascripts/js/debug/ajax.js +++ b/framework/Web/Javascripts/js/debug/ajax.js @@ -2024,6 +2024,8 @@ Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete, {
this.active = false;
this.updateElement(this.getCurrentEntry());
+ var options = [this.index, "__TAutoComplete_onSuggestionSelected__"];
+ Prado.Callback(this.options.EventTarget, options, null, this.options);
}
},
@@ -2239,12 +2241,13 @@ Prado.WebUI.TValueTriggeredCallback = Base.extend( Prado.WebUI.TInPlaceTextBox = Base.extend(
{
- isSaving : false,
- isEditing : false,
- editField : null,
-
constructor : function(options)
{
+
+ this.isSaving = false;
+ this.isEditing = false;
+ this.editField = null;
+
this.options = Object.extend(
{
LoadTextFromSource : false,
@@ -2379,6 +2382,7 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( }
Event.observe(this.editField, "blur", this.onTextBoxBlur.bind(this));
+ Event.observe(this.editField, "keypress", this.onKeyPressed.bind(this));
},
/**
@@ -2402,7 +2406,10 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( {
text = this.element.innerHTML;
if(this.options.AutoPostBack && text != this.editField.value)
- this.onTextChanged(text);
+ {
+ if(this.isEditing)
+ this.onTextChanged(text);
+ }
else
{
this.element.innerHTML = this.editField.value;
@@ -2412,6 +2419,19 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( }
},
+ onKeyPressed : function(e)
+ {
+ if (Event.keyCode(e) == Event.KEY_ESC)
+ {
+ this.editField.value = this.getText();
+ this.isEditing = false;
+ if(this.options.AutoHide)
+ this.showLabel();
+ }
+ else if (Event.keyCode(e) == Event.KEY_RETURN)
+ Event.stop(e);
+ },
+
/**
* When the text input value has changed.
* @param {String} original text
diff --git a/framework/Web/Javascripts/prado/activecontrols/activecontrols3.js b/framework/Web/Javascripts/prado/activecontrols/activecontrols3.js index 675aabf2..444f3ab2 100644 --- a/framework/Web/Javascripts/prado/activecontrols/activecontrols3.js +++ b/framework/Web/Javascripts/prado/activecontrols/activecontrols3.js @@ -144,6 +144,8 @@ Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete, {
this.active = false;
this.updateElement(this.getCurrentEntry());
+ var options = [this.index, "__TAutoComplete_onSuggestionSelected__"];
+ Prado.Callback(this.options.EventTarget, options, null, this.options);
}
},
diff --git a/framework/Web/Javascripts/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/prado/activecontrols/inlineeditor.js index fdf0e9f5..f8b8b412 100644 --- a/framework/Web/Javascripts/prado/activecontrols/inlineeditor.js +++ b/framework/Web/Javascripts/prado/activecontrols/inlineeditor.js @@ -1,11 +1,12 @@ Prado.WebUI.TInPlaceTextBox = Base.extend(
{
- isSaving : false,
- isEditing : false,
- editField : null,
-
constructor : function(options)
{
+
+ this.isSaving = false;
+ this.isEditing = false;
+ this.editField = null;
+
this.options = Object.extend(
{
LoadTextFromSource : false,
@@ -140,6 +141,7 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( }
Event.observe(this.editField, "blur", this.onTextBoxBlur.bind(this));
+ Event.observe(this.editField, "keypress", this.onKeyPressed.bind(this));
},
/**
@@ -163,7 +165,10 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( {
text = this.element.innerHTML;
if(this.options.AutoPostBack && text != this.editField.value)
- this.onTextChanged(text);
+ {
+ if(this.isEditing)
+ this.onTextChanged(text);
+ }
else
{
this.element.innerHTML = this.editField.value;
@@ -173,6 +178,19 @@ Prado.WebUI.TInPlaceTextBox = Base.extend( }
},
+ onKeyPressed : function(e)
+ {
+ if (Event.keyCode(e) == Event.KEY_ESC)
+ {
+ this.editField.value = this.getText();
+ this.isEditing = false;
+ if(this.options.AutoHide)
+ this.showLabel();
+ }
+ else if (Event.keyCode(e) == Event.KEY_RETURN)
+ Event.stop(e);
+ },
+
/**
* When the text input value has changed.
* @param {String} original text
|