diff options
Diffstat (limited to 'framework/Web/Javascripts/js')
| -rw-r--r-- | framework/Web/Javascripts/js/compressed/ajax.js | 48 | ||||
| -rw-r--r-- | framework/Web/Javascripts/js/debug/ajax.js | 121 | 
2 files changed, 132 insertions, 37 deletions
diff --git a/framework/Web/Javascripts/js/compressed/ajax.js b/framework/Web/Javascripts/js/compressed/ajax.js index 696968c7..16dacb52 100644 --- a/framework/Web/Javascripts/js/compressed/ajax.js +++ b/framework/Web/Javascripts/js/compressed/ajax.js @@ -262,12 +262,13 @@ this.time=setTimeout(this.checkChanges.bind(this),parseInt(this.options.Interval  {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);this.initializeListeners();},initializeListeners:function() +{this.options=Object.extend({LoadTextFromSource:false,TextMode:'SingleLine'},options||{});this.element=$(this.options.ID);Prado.WebUI.TInPlaceTextBox.register(this);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)return;if(this.isEditing)return;this.isEditing=true;this.onEnterEditMode();this.createEditorInput();this.showTextBox();this.editField.disabled=false;if(this.options.LoadTextOnEdit) +{if(this.isSaving||this.isEditing)return;this.isEditing=true;this.onEnterEditMode();this.createEditorInput();this.showTextBox();this.editField.disabled=false;if(this.options.LoadTextOnEdit)  this.loadExternalText();Prado.Element.focus(this.editField);if(evt) -Event.stop(evt);return false;},showTextBox:function() +Event.stop(evt);return false;},exitEditMode:function(evt) +{this.isEditing=false;this.isSaving=false;this.editField.disabled=false;this.element.innerHTML=this.editField.value;this.showLabel();},showTextBox:function()  {Element.hide(this.element);Element.show(this.editField);},showLabel:function()  {Element.show(this.element);Element.hide(this.editField);},createEditorInput:function()  {if(this.editField==null) @@ -302,28 +303,39 @@ this.showLabel();}},onTextChanged:function(text)  {this.isSaving=false;this.isEditing=false;this.showLabel();},onTextChangedSuccess:function(sender,parameter)  {this.isSaving=false;this.isEditing=false;if(this.options.AutoHide)  this.showLabel();this.element.innerHTML=parameter==null?this.editField.value:parameter;this.editField.disabled=false;},onTextChangedFailure:function(sender,parameter) -{this.editField.disabled=false;this.isSaving=false;this.isEditing=false;}});Prado.WebUI.TRatingList=Base.extend({selectedIndex:-1,enabled:true,readOnly:false,constructor:function(options) -{var cap=$(options.CaptionID);this.options=Object.extend({caption:cap?cap.innerHTML:''},options||{});Prado.WebUI.TRatingList.register(this);this._init();this.selectedIndex=options.SelectedIndex;this.setRating(this.selectedIndex);},_init:function(options) +{this.editField.disabled=false;this.isSaving=false;this.isEditing=false;}},{textboxes:{},register:function(obj) +{Prado.WebUI.TInPlaceTextBox.textboxes[obj.options.TextBoxID]=obj;},setDisplayTextBox:function(id,value) +{var textbox=Prado.WebUI.TInPlaceTextBox.textboxes[id];if(textbox) +{if(value) +textbox.enterEditMode(null);else +{textbox.exitEditMode(null);}}}});Prado.WebUI.TRatingList=Base.extend({selectedIndex:-1,rating:-1,enabled:true,readOnly:false,constructor:function(options) +{var cap=$(options.CaptionID);this.options=Object.extend({caption:cap?cap.innerHTML:''},options||{});Prado.WebUI.TRatingList.register(this);this._init();this.selectedIndex=options.SelectedIndex;this.rating=options.Rating;if(options.Rating<=0&&options.SelectedIndex>=0) +this.rating=options.SelectedIndex+1;this.showRating(this.rating);},_init:function(options)  {Element.addClassName($(this.options.ListID),this.options.Style);this.radios=new Array();var index=0;for(var i=0;i<this.options.ItemCount;i++)  {var radio=$(this.options.ListID+'_c'+i);var td=radio.parentNode;if(radio&&td.tagName.toLowerCase()=='td')  {this.radios.push(radio);Event.observe(td,"mouseover",this.hover.bindEvent(this,index));Event.observe(td,"mouseout",this.recover.bindEvent(this,index));Event.observe(td,"click",this.click.bindEvent(this,index));index++;Element.addClassName(td,"rating");}}},hover:function(ev,index)  {if(this.enabled==false)return;for(var i=0;i<this.radios.length;i++) -{var action=i<=index?'addClassName':'removeClassName' -Element[action](this.radios[i].parentNode,"rating_selected");} -this.setCaption(index);},recover:function(ev,index) -{if(this.enabled==false)return;for(var i=0;i<=index;i++) -Element.removeClassName(this.radios[i].parentNode,"rating_selected");this.setRating(this.selectedIndex);},click:function(ev,index) +{var node=this.radios[i].parentNode;var action=i<=index?'addClassName':'removeClassName' +Element[action](node,"rating_hover");Element.removeClassName(node,"rating_selected");Element.removeClassName(node,"rating_half");} +this.showCaption(this.getIndexCaption(index));},recover:function(ev,index) +{if(this.enabled==false)return;this.showRating(this.rating);this.showCaption(this.options.caption);},click:function(ev,index)  {if(this.enabled==false)return;for(var i=0;i<this.radios.length;i++) -this.radios[i].checked=(i==index);this.selectedIndex=index;this.setRating(index);var requestOptions=Object.extend({ID:this.options.ListID+"_c"+index,EventTarget:this.options.ListID+"$c"+index},this.options);var request=new Prado.CallbackRequest(requestOptions.EventTarget,requestOptions);if(request.dispatch()==false) -Event.stop(ev);},setRating:function(index) -{for(var i=0;i<this.radios.length;i++) -{var node=this.radios[i].parentNode;var action=i>index?'removeClassName':'addClassName' -Element[action](this.radios[i].parentNode,"rating_selected");} -this.setCaption(index);},setCaption:function(index) -{var value=index>-1?this.radios[index].value:this.options.caption;var caption=$(this.options.CaptionID);if(caption)caption.innerHTML=value;$(this.options.ListID).title=value;},setEnabled:function(value) +this.radios[i].checked=(i==index);this.selectedIndex=index;this.setRating(index+1);this.dispatchRequest(ev);},dispatchRequest:function(ev) +{var requestOptions=Object.extend({ID:this.options.ListID+"_c"+this.selectedIndex,EventTarget:this.options.ListName+"$c"+this.selectedIndex},this.options);var request=new Prado.CallbackRequest(requestOptions.EventTarget,requestOptions);if(request.dispatch()==false) +Event.stop(ev);},setRating:function(value) +{this.rating=value;var base=Math.floor(value-1);var remainder=value-base-1;var halfMax=this.options.HalfRating["1"];var index=remainder>halfMax?base+1:base;for(var i=0;i<this.radios.length;i++) +this.radios[i].checked=(i==index);var caption=this.getIndexCaption(index);this.setCaption(caption);this.showCaption(caption);this.showRating(value);},showRating:function(value) +{var base=Math.floor(value-1);var remainder=value-base-1;var halfMin=this.options.HalfRating["0"];var halfMax=this.options.HalfRating["1"];var index=remainder>halfMax?base+1:base;var hasHalf=remainder>=halfMin&&remainder<=halfMax;for(var i=0;i<this.radios.length;i++) +{var node=this.radios[i].parentNode;var action=i>index?'removeClassName':'addClassName';Element[action](node,"rating_selected");if(i==index+1&&hasHalf) +Element.addClassName(node,"rating_half");else +Element.removeClassName(node,"rating_half");Element.removeClassName(node,"rating_hover");}},getIndexCaption:function(index) +{return index>-1?this.radios[index].value:this.options.caption;},showCaption:function(value) +{var caption=$(this.options.CaptionID);if(caption)caption.innerHTML=value;$(this.options.ListID).title=value;},setCaption:function(value) +{this.options.caption=value;this.showCaption(value);},setEnabled:function(value)  {this.enabled=value;for(var i=0;i<this.radios.length;i++)  {var action=value?'removeClassName':'addClassName'  Element[action](this.radios[i].parentNode,"rating_disabled");}}},{ratings:{},register:function(rating)  {Prado.WebUI.TRatingList.ratings[rating.options.ListID]=rating;},setEnabled:function(id,value)  {Prado.WebUI.TRatingList.ratings[id].setEnabled(value);},setRating:function(id,value) -{Prado.WebUI.TRatingList.ratings[id].setRating(value);Prado.WebUI.TRatingList.ratings[id].selectedIndex=value;}});
\ No newline at end of file +{Prado.WebUI.TRatingList.ratings[id].setRating(value);},setCaption:function(id,value) +{Prado.WebUI.TRatingList.ratings[id].setCaption(value);}});
\ No newline at end of file diff --git a/framework/Web/Javascripts/js/debug/ajax.js b/framework/Web/Javascripts/js/debug/ajax.js index ba777546..8b75c2ad 100644 --- a/framework/Web/Javascripts/js/debug/ajax.js +++ b/framework/Web/Javascripts/js/debug/ajax.js @@ -2396,7 +2396,7 @@ Prado.WebUI.TInPlaceTextBox = Base.extend(  		}, options || {});
  		this.element = $(this.options.ID);
 -
 +		Prado.WebUI.TInPlaceTextBox.register(this);
  		this.initializeListeners();
  	},
 @@ -2417,8 +2417,7 @@ Prado.WebUI.TInPlaceTextBox = Base.extend(  	 */
  	enterEditMode :  function(evt)
  	{
 -	    if (this.isSaving) return;
 -	    if (this.isEditing) return;
 +	    if (this.isSaving || this.isEditing) return;
  	    this.isEditing = true;
  		this.onEnterEditMode();
  		this.createEditorInput();
 @@ -2432,6 +2431,15 @@ Prado.WebUI.TInPlaceTextBox = Base.extend(      	return false;
  	},
 +	exitEditMode : function(evt)
 +	{
 +		this.isEditing = false;
 +		this.isSaving = false;
 +		this.editField.disabled = false;
 +		this.element.innerHTML = this.editField.value;
 +		this.showLabel();
 +	},
 +
  	showTextBox : function()
  	{
  		Element.hide(this.element);
 @@ -2608,11 +2616,34 @@ Prado.WebUI.TInPlaceTextBox = Base.extend(  		this.isSaving = false;
  		this.isEditing = false;
  	}
 +},
 +{
 +	textboxes : {},
 +
 +	register : function(obj)
 +	{
 +		Prado.WebUI.TInPlaceTextBox.textboxes[obj.options.TextBoxID] = obj;
 +	},
 +
 +	setDisplayTextBox : function(id,value)
 +	{
 +		var textbox = Prado.WebUI.TInPlaceTextBox.textboxes[id];
 +		if(textbox)
 +		{
 +			if(value)
 +				textbox.enterEditMode(null);
 +			else
 +			{
 +				textbox.exitEditMode(null);
 +			}
 +		}
 +	}
  });  Prado.WebUI.TRatingList = Base.extend(
  {
  	selectedIndex : -1,
 +	rating: -1,
  	enabled : true,
  	readOnly : false,
 @@ -2627,7 +2658,10 @@ Prado.WebUI.TRatingList = Base.extend(  		Prado.WebUI.TRatingList.register(this);
  		this._init();
  		this.selectedIndex = options.SelectedIndex;
 -		this.setRating(this.selectedIndex);
 +		this.rating = options.Rating;
 +		if(options.Rating <= 0 && options.SelectedIndex >= 0)
 +			this.rating = options.SelectedIndex+1;
 +		this.showRating(this.rating);
  	},
  	_init: function(options)
 @@ -2656,18 +2690,20 @@ Prado.WebUI.TRatingList = Base.extend(  		if(this.enabled==false) return;
  		for(var i = 0; i<this.radios.length; i++)
  		{
 +			var node = this.radios[i].parentNode;
  			var action = i <= index ? 'addClassName' : 'removeClassName'
 -			Element[action](this.radios[i].parentNode,"rating_selected");
 +			Element[action](node,"rating_hover");
 +			Element.removeClassName(node,"rating_selected");
 +			Element.removeClassName(node,"rating_half");
  		}
 -		this.setCaption(index);
 +		this.showCaption(this.getIndexCaption(index));
  	},
  	recover : function(ev,index)
  	{
  		if(this.enabled==false) return;
 -		for(var i = 0; i<=index; i++)
 -			Element.removeClassName(this.radios[i].parentNode, "rating_selected");
 -		this.setRating(this.selectedIndex);
 +		this.showRating(this.rating);
 +		this.showCaption(this.options.caption);
  	},
  	click : function(ev, index)
 @@ -2675,38 +2711,81 @@ Prado.WebUI.TRatingList = Base.extend(  		if(this.enabled==false) return;
  		for(var i = 0; i<this.radios.length; i++)
  			this.radios[i].checked = (i == index);
 +
  		this.selectedIndex = index;
 -		this.setRating(index);
 +		this.setRating(index+1);
 +
 +		this.dispatchRequest(ev);
 +	},
 +
 +	dispatchRequest : function(ev)
 +	{
  		var requestOptions = Object.extend(
  		{
 -			ID : this.options.ListID+"_c"+index,
 -			EventTarget : this.options.ListID+"$c"+index
 +			ID : this.options.ListID+"_c"+this.selectedIndex,
 +			EventTarget : this.options.ListName+"$c"+this.selectedIndex
  		},this.options);
  		var request = new Prado.CallbackRequest(requestOptions.EventTarget, requestOptions);
  		if(request.dispatch()==false)
  			Event.stop(ev);
  	},
 -	setRating: function(index)
 +	setRating : function(value)
  	{
 +		this.rating = value;
 +		var base = Math.floor(value-1);
 +		var remainder = value - base-1;
 +		var halfMax = this.options.HalfRating["1"];
 +		var index = remainder > halfMax ? base+1 : base;
 +		for(var i = 0; i<this.radios.length; i++)
 +			this.radios[i].checked = (i == index);
 +
 +		var caption = this.getIndexCaption(index);
 +		this.setCaption(caption);
 +		this.showCaption(caption);
 +		this.showRating(value);
 +	},
 +
 +	showRating: function(value)
 +	{
 +		var base = Math.floor(value-1);
 +		var remainder = value - base-1;
 +		var halfMin = this.options.HalfRating["0"];
 +		var halfMax = this.options.HalfRating["1"];
 +		var index = remainder > halfMax ? base+1 : base;
 +		var hasHalf = remainder >= halfMin && remainder <= halfMax;
  		for(var i = 0; i<this.radios.length; i++)
  		{
  			var node = this.radios[i].parentNode;
 -			var action = i > index ? 'removeClassName' : 'addClassName'
 -			Element[action](this.radios[i].parentNode, "rating_selected");
 +			var action = i > index ? 'removeClassName' : 'addClassName';
 +			Element[action](node, "rating_selected");
 +			if(i==index+1 && hasHalf)
 +				Element.addClassName(node, "rating_half");
 +			else
 +				Element.removeClassName(node, "rating_half");
 +			Element.removeClassName(node,"rating_hover");
  		}
 -		this.setCaption(index);
  	},
 -	setCaption : function(index)
 +	getIndexCaption : function(index)
 +	{
 +		return index > -1 ? this.radios[index].value : this.options.caption;
 +	},
 +
 +	showCaption : function(value)
  	{
 -		var value = index > -1 ? this.radios[index].value : this.options.caption;
  		var caption = $(this.options.CaptionID);
  		if(caption) caption.innerHTML = value;
  		$(this.options.ListID).title = value;
  	},
 +	setCaption : function(value)
 +	{
 +		this.options.caption = value;
 +		this.showCaption(value);
 +	},
 +
  	setEnabled : function(value)
  	{
  		this.enabled = value;
 @@ -2732,7 +2811,11 @@ setEnabled : function(id,value)  setRating : function(id,value)
  {
  	Prado.WebUI.TRatingList.ratings[id].setRating(value);
 -	Prado.WebUI.TRatingList.ratings[id].selectedIndex = value;
 +},
 +
 +setCaption : function(id,value)
 +{
 +	Prado.WebUI.TRatingList.ratings[id].setCaption(value);
  }
  });  | 
