summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/source/prado
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2013-10-16 18:04:37 +0200
committerFabio Bas <ctrlaltca@gmail.com>2013-10-16 18:04:37 +0200
commit7d1cdcd61796a437f9ec7ba776f2a69640ba513f (patch)
treee47e6fd8438d92ced6d0b426a86d19059be411b5 /framework/Web/Javascripts/source/prado
parent1dbbb700f7959043ebcc23a3b7530ecb8a396b46 (diff)
jquery port
Diffstat (limited to 'framework/Web/Javascripts/source/prado')
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js18
-rwxr-xr-xframework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js12
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/ajax3.js6
-rwxr-xr-xframework/Web/Javascripts/source/prado/activecontrols/dragdrop.js2
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js2
-rwxr-xr-xframework/Web/Javascripts/source/prado/activefileupload/activefileupload.js2
-rw-r--r--framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js8
-rw-r--r--framework/Web/Javascripts/source/prado/controls/accordion.js4
-rw-r--r--framework/Web/Javascripts/source/prado/controls/controls.js106
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea.js2
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea4.js2
-rw-r--r--framework/Web/Javascripts/source/prado/controls/keyboard.js2
-rw-r--r--framework/Web/Javascripts/source/prado/controls/tabpanel.js28
-rw-r--r--framework/Web/Javascripts/source/prado/datepicker/datepicker.js34
-rw-r--r--framework/Web/Javascripts/source/prado/logger/logger.js6
-rw-r--r--framework/Web/Javascripts/source/prado/prado.js771
-rw-r--r--framework/Web/Javascripts/source/prado/validator/validation3.js192
17 files changed, 937 insertions, 260 deletions
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
index 3e6fe5b7..1b94ef7c 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
@@ -80,7 +80,7 @@ Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,
if(options['TextMode'] != 'MultiLine')
this.observe(this.element, "keydown", this.handleReturnKey.bind(this));
if(this.options['AutoPostBack']==true)
- this.observe(this.element, "change", this.doCallback.bindEvent(this,options));
+ this.observe(this.element, "change", jQuery.proxy(this.doCallback,this,options));
},
doCallback : function(event, options)
@@ -178,7 +178,7 @@ Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete,
/**
* Time Triggered Callback class.
*/
-Prado.WebUI.TTimeTriggeredCallback = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TTimeTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
@@ -262,7 +262,7 @@ Object.extend(Prado.WebUI.TTimeTriggeredCallback,
}
});
-Prado.WebUI.ActiveListControl = Class.create(Prado.WebUI.Control,
+Prado.WebUI.ActiveListControl = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
@@ -281,13 +281,13 @@ Prado.WebUI.ActiveListControl = Class.create(Prado.WebUI.Control,
}
});
-Prado.WebUI.TActiveDropDownList = Class.create(Prado.WebUI.ActiveListControl);
-Prado.WebUI.TActiveListBox = Class.create(Prado.WebUI.ActiveListControl);
+Prado.WebUI.TActiveDropDownList = jQuery.klass(Prado.WebUI.ActiveListControl);
+Prado.WebUI.TActiveListBox = jQuery.klass(Prado.WebUI.ActiveListControl);
/**
* Observe event of a particular control to trigger a callback request.
*/
-Prado.WebUI.TEventTriggeredCallback = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TEventTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
@@ -327,7 +327,7 @@ Prado.WebUI.TEventTriggeredCallback = Class.create(Prado.WebUI.Control,
/**
* Observe changes to a property of a particular control to trigger a callback.
*/
-Prado.WebUI.TValueTriggeredCallback = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TValueTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
{
count : 1,
@@ -406,5 +406,5 @@ Object.extend(Prado.WebUI.TValueTriggeredCallback,
}
});
-Prado.WebUI.TActiveTableCell = Class.create(Prado.WebUI.CallbackControl);
-Prado.WebUI.TActiveTableRow = Class.create(Prado.WebUI.CallbackControl);
+Prado.WebUI.TActiveTableCell = jQuery.klass(Prado.WebUI.CallbackControl);
+Prado.WebUI.TActiveTableRow = jQuery.klass(Prado.WebUI.CallbackControl);
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
index f7f63026..b6d94b0b 100755
--- a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
@@ -1,7 +1,7 @@
/**
* TActiveDatePicker control
*/
-Prado.WebUI.TActiveDatePicker = Class.create(Prado.WebUI.TDatePicker,
+Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
{
onInit : function(options)
{
@@ -35,21 +35,21 @@ Prado.WebUI.TActiveDatePicker = Class.create(Prado.WebUI.TDatePicker,
Object.extend(this,options);
if (this.options.ShowCalendar)
- this.observe(this.trigger, triggerEvent, this.show.bindEvent(this));
+ this.observe(this.trigger, triggerEvent, jQuery.proxy(this.show,this));
// Listen to change event
if(this.options.InputMode == "TextBox")
{
- this.observe(this.control, "change", this.onDateChanged.bindEvent(this));
+ this.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));
}
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control);
var year = Prado.WebUI.TDatePicker.getYearListControl(this.control);
- if (day) this.observe (day, "change", this.onDateChanged.bindEvent(this));
- if (month) this.observe (month, "change", this.onDateChanged.bindEvent(this));
- if (year) this.observe (year, "change", this.onDateChanged.bindEvent(this));
+ if (day) this.observe (day, "change", jQuery.proxy(this.onDateChanged,this));
+ if (month) this.observe (month, "change", jQuery.proxy(this.onDateChanged,this));
+ if (year) this.observe (year, "change", jQuery.proxy(this.onDateChanged,this));
}
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
index e19f5d49..10f4fae6 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
@@ -1,5 +1,5 @@
-Prado.AjaxRequest = Class.create();
+Prado.AjaxRequest = jQuery.klass();
Prado.AjaxRequest.prototype = Object.clone(Ajax.Request.prototype);
/**
@@ -127,7 +127,7 @@ Object.extend(Prado.AjaxRequest.prototype,
/**
* Prado Callback client-side request handler.
*/
-Prado.CallbackRequest = Class.create();
+Prado.CallbackRequest = jQuery.klass();
/**
* Static definitions.
@@ -970,7 +970,7 @@ Prado.Callback = function(UniqueID, parameter, onSuccess, options)
if (typeof(Prado.AssetManagerClass)=="undefined") {
- Prado.AssetManagerClass = Class.create();
+ Prado.AssetManagerClass = jQuery.klass();
Prado.AssetManagerClass.prototype = {
initialize: function() {
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
index 511c2ab9..7fa9e791 100755
--- a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
@@ -2,7 +2,7 @@
* DropContainer control
*/
-Prado.WebUI.DropContainer = Class.create(Prado.WebUI.CallbackControl,
+Prado.WebUI.DropContainer = jQuery.klass(Prado.WebUI.CallbackControl,
{
onInit: function(options)
{
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
index 0260c219..d2a17c8d 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
@@ -1,4 +1,4 @@
-Prado.WebUI.TInPlaceTextBox = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
diff --git a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
index 5f20944e..388bc7b0 100755
--- a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
+++ b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
@@ -1,4 +1,4 @@
-Prado.WebUI.TActiveFileUpload = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TActiveFileUpload = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
diff --git a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
index 142745cf..14195090 100644
--- a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
+++ b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
@@ -1,7 +1,7 @@
//-------------------- ricoColor.js
if(typeof(Rico) == "undefined") Rico = {};
-Rico.Color = Class.create();
+Rico.Color = jQuery.klass();
Rico.Color.prototype = {
@@ -242,7 +242,7 @@ Rico.Color.RGBtoHSB = function(r, g, b) {
};
-Prado.WebUI.TColorPicker = Class.create();
+Prado.WebUI.TColorPicker = jQuery.klass();
Object.extend(Prado.WebUI.TColorPicker,
{
@@ -573,7 +573,7 @@ Object.extend(Prado.WebUI.TColorPicker.prototype,
for(var type in this.inputs)
{
Event.observe(this.inputs[type], "change",
- this.onInputChanged.bindEvent(this,type));
+ jQuery.proxy(this.onInputChanged,this,type));
i++;
if(i > 6) break;
@@ -596,7 +596,7 @@ Object.extend(Prado.WebUI.TColorPicker.prototype,
this.observeMouseMovement();
- Event.observe(this.buttons.Cancel, "click", this.hide.bindEvent(this,this.options['Mode']));
+ Event.observe(this.buttons.Cancel, "click", jQuery.proxy(this.hide,this,this.options['Mode']));
Event.observe(this.buttons.OK, "click", this.onOKClicked.bind(this));
},
diff --git a/framework/Web/Javascripts/source/prado/controls/accordion.js b/framework/Web/Javascripts/source/prado/controls/accordion.js
index 90d01316..28075cd6 100644
--- a/framework/Web/Javascripts/source/prado/controls/accordion.js
+++ b/framework/Web/Javascripts/source/prado/controls/accordion.js
@@ -7,7 +7,7 @@
* http://creativecommons.org/licenses/by-sa/3.0/us/
*/
-Prado.WebUI.TAccordion = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
@@ -32,7 +32,7 @@ Prado.WebUI.TAccordion = Class.create(Prado.WebUI.Control,
var header = $(view+'_0');
if(header)
{
- this.observe(header, "click", this.elementClicked.bindEvent(this,view));
+ this.observe(header, "click", jQuery.proxy(this.elementClicked,this,view));
if(this.hiddenField.value == i)
{
this.currentView = view;
diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js
index 8ea6afe3..d2e796e1 100644
--- a/framework/Web/Javascripts/source/prado/controls/controls.js
+++ b/framework/Web/Javascripts/source/prado/controls/controls.js
@@ -1,21 +1,21 @@
-Prado.WebUI = Class.create();
+Prado.WebUI = jQuery.klass();
-Prado.WebUI.Control = Class.create({
+Prado.WebUI.Control = jQuery.klass({
initialize : function(options)
{
this.registered = false;
this.ID = options.ID;
- this.element = $(this.ID);
+ this.element = jQuery("#" + this.ID).get(0);
this.observers = new Array();
this.intervals = new Array();
var e;
- if (e = Prado.Registry.get(this.ID))
- this.replace(e, options);
- else
+ if (jQuery.inArray(this.ID, Prado.Registry) == -1)
this.register(options);
+ else
+ this.replace(Prado.Registry[this.ID], options);
- if (this === Prado.Registry.get(this.ID))
+ if (this === Prado.Registry[this.ID])
{
this.registered = true;
if(this.onInit)
@@ -29,7 +29,7 @@ Prado.WebUI.Control = Class.create({
*/
register : function(options)
{
- return Prado.Registry.set(options.ID, this);
+ return Prado.Registry[options.ID] = this;
},
/**
@@ -38,8 +38,12 @@ Prado.WebUI.Control = Class.create({
deregister : function()
{
// extra check so we don't ever deregister another wrapper
- if (Prado.Registry.get(this.ID)===this)
- return Prado.Registry.unset(this.ID);
+ var value = Prado.Registry[this.ID];
+ if (value===this)
+ {
+ delete Prado.Registry[this.ID];
+ return value;
+ }
else
debugger; // invoke debugger - this should never happen
},
@@ -76,11 +80,11 @@ Prado.WebUI.Control = Class.create({
* @param string event name to observe
* @param handler event handler function
*/
- observe: function(element, eventName, handler)
+ observe: function(element, eventName, handler, options)
{
var e = { _element: element, _eventName: eventName, _handler: handler };
this.observers.push(e);
- return Event.observe(e._element,e._eventName,e._handler);
+ return jQuery(e._element).bind(e._eventName, options, e._handler);
},
/**
@@ -121,7 +125,7 @@ Prado.WebUI.Control = Class.create({
else
debugger; // shouldn't happen
- return Event.stopObserving(element,eventName,handler);
+ return jQuery(element).unbind(eventName, handler);
},
/**
@@ -133,7 +137,7 @@ Prado.WebUI.Control = Class.create({
*/
setTimeout: function(func, delay)
{
- if (!Object.isFunction(func))
+ if (!jQuery.isFunction(func))
{
var expr = func;
func = function() { return eval(expr); }
@@ -164,7 +168,7 @@ Prado.WebUI.Control = Class.create({
*/
setInterval: function(func, delay)
{
- if (!Object.isFunction(func)) func = function() { eval(func); };
+ if (!jQuery.isFunction(func)) func = function() { eval(func); };
var obj = this;
var h = window.setInterval(function() {
if (!obj.isLingering())
@@ -212,7 +216,7 @@ Prado.WebUI.Control = Class.create({
while (this.observers.length>0)
{
var e = this.observers.pop();
- Event.stopObserving(e._element,e._eventName,e._handler);
+ jQuery(e._element).unbind(e._eventName, e._handler);
}
}
else
@@ -225,7 +229,7 @@ Prado.WebUI.Control = Class.create({
});
-Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
+Prado.WebUI.PostBackControl = jQuery.klass(Prado.WebUI.Control, {
onInit : function(options)
{
@@ -241,13 +245,13 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
this._elementOnClick = this.element.onclick.bind(this.element);
this.element.onclick = null;
}
- this.observe(this.element, "click", this.elementClicked.bindEvent(this,options));
+ this.observe(this.element, "click", jQuery.proxy(this.elementClicked,this,options));
}
},
- elementClicked : function(event, options)
+ elementClicked : function(options, event)
{
- var src = Event.element(event);
+ var src = event.target;
var doPostBack = true;
var onclicked = null;
@@ -258,29 +262,29 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {
doPostBack = onclicked;
}
if(doPostBack && !Prado.Element.isDisabled(src))
- this.onPostBack(event,options);
+ this.onPostBack(options,event);
if(typeof(onclicked) == "boolean" && !onclicked)
- Event.stop(event);
+ event.stopPropagation();
},
- onPostBack : function(event, options)
+ onPostBack : function(options, event)
{
- Prado.PostBack(event,options);
+ Prado.PostBack(options, event);
}
});
-Prado.WebUI.TButton = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TLinkButton = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TCheckBox = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TBulletedList = Class.create(Prado.WebUI.PostBackControl);
-Prado.WebUI.TImageMap = Class.create(Prado.WebUI.PostBackControl);
+Prado.WebUI.TButton = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TLinkButton = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TCheckBox = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TBulletedList = jQuery.klass(Prado.WebUI.PostBackControl);
+Prado.WebUI.TImageMap = jQuery.klass(Prado.WebUI.PostBackControl);
/**
* TImageButton client-side behaviour. With validation, Firefox needs
* to capture the x,y point of the clicked image in hidden form fields.
*/
-Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
/**
* Override parent onPostBack function, tried to add hidden forms
@@ -346,11 +350,11 @@ Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,
/**
* Radio button, only initialize if not already checked.
*/
-Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TRadioButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
initialize : function($super, options)
{
- this.element = $(options['ID']);
+ this.element = $("#" + options['ID']).get(0);
if(this.element)
{
if(!this.element.checked)
@@ -360,7 +364,7 @@ Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl,
});
-Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TTextBox = jQuery.klass(Prado.WebUI.PostBackControl,
{
onInit : function(options)
{
@@ -368,27 +372,27 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
if(this.options['TextMode'] != 'MultiLine')
this.observe(this.element, "keydown", this.handleReturnKey.bind(this));
if(this.options['AutoPostBack']==true)
- this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options));
+ this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));
},
handleReturnKey : function(e)
{
- if(Event.keyCode(e) == Event.KEY_RETURN)
+ if(e.keyCode == 13) // KEY_RETURN
{
- var target = Event.element(e);
+ var target = e.target;
if(target)
{
if(this.options['AutoPostBack']==true)
{
- Event.fireEvent(target, "change");
- Event.stop(e);
+ $(target).trigger( "change" );
+ e.stopPropagation();
}
else
{
if(this.options['CausesValidation'] && typeof(Prado.Validation) != "undefined")
{
if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], $(this.options['ID'])))
- return Event.stop(e);
+ return e.stopPropagation();
}
}
}
@@ -396,23 +400,23 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,
}
});
-Prado.WebUI.TListControl = Class.create(Prado.WebUI.PostBackControl,
+Prado.WebUI.TListControl = jQuery.klass(Prado.WebUI.PostBackControl,
{
onInit : function(options)
{
- this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options));
+ this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));
}
});
-Prado.WebUI.TListBox = Class.create(Prado.WebUI.TListControl);
-Prado.WebUI.TDropDownList = Class.create(Prado.WebUI.TListControl);
+Prado.WebUI.TListBox = jQuery.klass(Prado.WebUI.TListControl);
+Prado.WebUI.TDropDownList = jQuery.klass(Prado.WebUI.TListControl);
-Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control,
+Prado.WebUI.DefaultButton = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
this.options = options;
- this.observe(options['Panel'], 'keydown', this.triggerEvent.bindEvent(this));
+ this.observe(options['Panel'], "keydown", jQuery.proxy(this.triggerEvent,this));
},
triggerEvent : function(ev, target)
@@ -435,7 +439,7 @@ Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control,
}
});
-Prado.WebUI.TTextHighlighter = Class.create();
+Prado.WebUI.TTextHighlighter = jQuery.klass();
Prado.WebUI.TTextHighlighter.prototype =
{
initialize:function(id)
@@ -453,7 +457,7 @@ Prado.WebUI.TTextHighlighter.prototype =
}
};
-Object.extend(Prado.WebUI.TTextHighlighter,
+jQuery.klass(Prado.WebUI.TTextHighlighter,
{
copy : function(obj)
{
@@ -483,14 +487,14 @@ Object.extend(Prado.WebUI.TTextHighlighter,
});
-Prado.WebUI.TCheckBoxList = Base.extend(
+Prado.WebUI.TCheckBoxList = jQuery.klass(Prado.WebUI.Control,
{
constructor : function(options)
{
Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var checkBoxOptions = Object.extend(
+ var checkBoxOptions = jQuery.extend(
{
ID : options.ListID+"_c"+i,
EventTarget : options.ListName+"$c"+i
@@ -500,14 +504,14 @@ Prado.WebUI.TCheckBoxList = Base.extend(
}
});
-Prado.WebUI.TRadioButtonList = Base.extend(
+Prado.WebUI.TRadioButtonList = jQuery.klass(Prado.WebUI.Control,
{
constructor : function(options)
{
Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var radioButtonOptions = Object.extend(
+ var radioButtonOptions = jQuery.extend(
{
ID : options.ListID+"_c"+i,
EventTarget : options.ListName+"$c"+i
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea.js b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
index 5cba4f6c..a425e697 100644
--- a/framework/Web/Javascripts/source/prado/controls/htmlarea.js
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
@@ -8,7 +8,7 @@
*/
-Prado.WebUI.THtmlArea = Class.create(Prado.WebUI.Control,
+Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
{
initialize: function($super, options)
{
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
index cd3c6a0e..418a6e19 100644
--- a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
@@ -8,7 +8,7 @@
*/
-Prado.WebUI.THtmlArea4 = Class.create(Prado.WebUI.Control,
+Prado.WebUI.THtmlArea4 = jQuery.klass(Prado.WebUI.Control,
{
initialize: function($super, options)
{
diff --git a/framework/Web/Javascripts/source/prado/controls/keyboard.js b/framework/Web/Javascripts/source/prado/controls/keyboard.js
index 25541074..768b8d8d 100644
--- a/framework/Web/Javascripts/source/prado/controls/keyboard.js
+++ b/framework/Web/Javascripts/source/prado/controls/keyboard.js
@@ -1,4 +1,4 @@
-Prado.WebUI.TKeyboard = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TKeyboard = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
diff --git a/framework/Web/Javascripts/source/prado/controls/tabpanel.js b/framework/Web/Javascripts/source/prado/controls/tabpanel.js
index bd0a7494..78f6478c 100644
--- a/framework/Web/Javascripts/source/prado/controls/tabpanel.js
+++ b/framework/Web/Javascripts/source/prado/controls/tabpanel.js
@@ -1,58 +1,58 @@
-Prado.WebUI.TTabPanel = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TTabPanel = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
this.views = options.Views;
this.viewsvis = options.ViewsVis;
- this.hiddenField = $(options.ID+'_1');
+ this.hiddenField = $("#"+options.ID+'_1').get(0);
this.activeCssClass = options.ActiveCssClass;
this.normalCssClass = options.NormalCssClass;
var length = options.Views.length;
for(var i = 0; i<length; i++)
{
var item = options.Views[i];
- var element = $(item+'_0');
+ var element = jQuery("#"+item+'_0').get(0);
if (element && options.ViewsVis[i])
{
- this.observe(element, "click", this.elementClicked.bindEvent(this,item));
+ this.observe(element, "click", jQuery.proxy(this.elementClicked,this,item));
if (options.AutoSwitch)
- this.observe(element, "mouseenter", this.elementClicked.bindEvent(this,item));
+ this.observe(element, "mouseenter", jQuery.proxy(this.elementClicked,this,item));
}
if(element)
{
- var view = $(options.Views[i]);
+ var view = $("#"+options.Views[i]).get(0);
if (view)
if(this.hiddenField.value == i)
{
element.className=this.activeCssClass;
- view.show();
+ jQuery(view).show();
} else {
element.className=this.normalCssClass;
- view.hide();
+ jQuery(view).hide();
}
}
}
},
- elementClicked : function(event,viewID)
+ elementClicked : function(viewID, event)
{
var length = this.views.length;
for(var i = 0; i<length; i++)
{
var item = this.views[i];
- if ($(item))
+ if (jQuery("#"+item))
{
if(item == viewID)
{
- $(item+'_0').className=this.activeCssClass;
- $(item).show();
+ jQuery("#"+item+'_0').removeClass(this.normalCssClass).addClass(this.activeCssClass);
+ jQuery("#"+item).show();
this.hiddenField.value=i;
}
else
{
- $(item+'_0').className=this.normalCssClass;
- $(item).hide();
+ jQuery("#"+item+'_0').removeClass(this.activeCssClass).addClass(this.normalCssClass);
+ jQuery("#"+item).hide();
}
}
}
diff --git a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
index ae1ad4b9..bb581751 100644
--- a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
+++ b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
@@ -1,4 +1,4 @@
-Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
{
MonthNames : [ "January", "February", "March", "April",
"May", "June", "July", "August",
@@ -52,23 +52,23 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,
// generate default date _after_ extending options
this.selectedDate = this.newDate();
- Event.observe(this.trigger, triggerEvent, this.show.bindEvent(this));
+ Event.observe(this.trigger, triggerEvent, jQuery.proxy(this.show,this));
// Listen to change event if needed
if (typeof(this.options.OnDateChanged) == "function")
{
if(this.options.InputMode == "TextBox")
{
- Event.observe(this.control, "change", this.onDateChanged.bindEvent(this));
+ Event.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));
}
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control);
var year = Prado.WebUI.TDatePicker.getYearListControl(this.control);
- Event.observe (day, "change", this.onDateChanged.bindEvent(this));
- Event.observe (month, "change", this.onDateChanged.bindEvent(this));
- Event.observe (year, "change", this.onDateChanged.bindEvent(this));
+ Event.observe (day, "change", jQuery.proxy(this.onDateChanged,this));
+ Event.observe (month, "change", jQuery.proxy(this.onDateChanged,this));
+ Event.observe (year, "change", jQuery.proxy(this.onDateChanged,this));
}
@@ -214,8 +214,8 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,
tmp.data = text;
this.dateSlot[(week*7)+day] = tmp;
- Event.observe(td, "mouseover", this.hover.bindEvent(this));
- Event.observe(td, "mouseout", this.hover.bindEvent(this));
+ Event.observe(td, "mouseover", jQuery.proxy(this.hover,this));
+ Event.observe(td, "mouseout", jQuery.proxy(this.hover,this));
}
}
@@ -257,19 +257,19 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,
// end IE55+ extension
// hook up events
- Event.observe(previousMonth, "click", this.prevMonth.bindEvent(this));
- Event.observe(nextMonth, "click", this.nextMonth.bindEvent(this));
- Event.observe(todayButton, "click", this.selectToday.bindEvent(this));
- //Event.observe(clearButton, "click", this.clearSelection.bindEvent(this));
- Event.observe(this._monthSelect, "change", this.monthSelect.bindEvent(this));
- Event.observe(this._yearSelect, "change", this.yearSelect.bindEvent(this));
+ Event.observe(previousMonth, "click", jQuery.proxy(this.prevMonth,this));
+ Event.observe(nextMonth, "click", jQuery.proxy(this.nextMonth,this));
+ Event.observe(todayButton, "click", jQuery.proxy(this.selectToday,this));
+ //Event.observe(clearButton, "click", jQuery.proxy(this.clearSelection,this));
+ Event.observe(this._monthSelect, "change", jQuery.proxy(this.monthSelect,this));
+ Event.observe(this._yearSelect, "change", jQuery.proxy(this.yearSelect,this));
// ie, opera
- Event.observe(this._calDiv, "mousewheel", this.mouseWheelChange.bindEvent(this));
+ Event.observe(this._calDiv, "mousewheel", jQuery.proxy(this.mouseWheelChange,this));
// ff
- Event.observe(this._calDiv, "DOMMouseScroll", this.mouseWheelChange.bindEvent(this));
+ Event.observe(this._calDiv, "DOMMouseScroll", jQuery.proxy(this.mouseWheelChange,this));
- Event.observe(calendarBody, "click", this.selectDate.bindEvent(this));
+ Event.observe(calendarBody, "click", jQuery.proxy(this.selectDate,this));
Prado.Element.focus(this.control);
diff --git a/framework/Web/Javascripts/source/prado/logger/logger.js b/framework/Web/Javascripts/source/prado/logger/logger.js
index 55cc1aa3..c5cea3ca 100644
--- a/framework/Web/Javascripts/source/prado/logger/logger.js
+++ b/framework/Web/Javascripts/source/prado/logger/logger.js
@@ -13,7 +13,7 @@ Use it all you want. Just remember to give me some credit :)
// Custom Event
// ------------
-CustomEvent = Class.create();
+CustomEvent = jQuery.klass();
CustomEvent.prototype = {
initialize : function() {
this.listeners = []
@@ -179,7 +179,7 @@ Logger = {
}
};
-LogEntry = Class.create()
+LogEntry = jQuery.klass()
LogEntry.prototype = {
initialize : function(message, tag) {
this.message = message
@@ -187,7 +187,7 @@ LogEntry.prototype = {
}
};
-LogConsole = Class.create();
+LogConsole = jQuery.klass();
LogConsole.prototype = {
// Properties
diff --git a/framework/Web/Javascripts/source/prado/prado.js b/framework/Web/Javascripts/source/prado/prado.js
index b827b125..a215fbd2 100644
--- a/framework/Web/Javascripts/source/prado/prado.js
+++ b/framework/Web/Javascripts/source/prado/prado.js
@@ -14,81 +14,722 @@ var Prado =
* Registry for Prado components
* @var Registry
*/
- Registry: $H(),
+ Registry: {},
+};
+
+/**
+ * Performs a PostBack using javascript.
+ * @function Prado.PostBack
+ * @param options - Postback options
+ * @param event - Event that triggered this postback
+ * @... {string} FormID - Form that should be posted back
+ * @... {optional boolean} CausesValidation - Validate before PostBack if true
+ * @... {optional string} ValidationGroup - Group to Validate
+ * @... {optional string} ID - Validation ID
+ * @... {optional string} PostBackUrl - Postback URL
+ * @... {optional boolean} TrackFocus - Keep track of focused element if true
+ * @... {string} EventTarget - Id of element that triggered PostBack
+ * @... {string} EventParameter - EventParameter for PostBack
+ */
+Prado.PostBack = function(options, event)
+{
+ var form = jQuery("#" + options['FormID']).get(0);
+ var canSubmit = true;
+
+ if(options['CausesValidation'] && typeof(Prado.Validation) != "undefined")
+ {
+ if(!Prado.Validation.validate(options['FormID'], options['ValidationGroup'], $(options['ID'])))
+ return event.preventDefault();
+ }
+
+ if(options['PostBackUrl'] && options['PostBackUrl'].length > 0)
+ form.action = options['PostBackUrl'];
+
+ if(options['TrackFocus'])
+ {
+ var lastFocus = $('PRADO_LASTFOCUS');
+ if(lastFocus)
+ {
+ var active = document.activeElement; //where did this come from
+ if(active)
+ lastFocus.value = active.id;
+ else
+ lastFocus.value = options['EventTarget'];
+ }
+ }
+
+ $('PRADO_POSTBACK_TARGET').value = options['EventTarget'];
+ $('PRADO_POSTBACK_PARAMETER').value = options['EventParameter'];
+ /**
+ * Since google toolbar prevents browser default action,
+ * we will always disable default client-side browser action
+ */
+ /*if(options['StopEvent']) */
+ event.preventDefault();
+ form.submit();
+
+ $('PRADO_POSTBACK_TARGET').value = '';
+ $('PRADO_POSTBACK_PARAMETER').value = '';
+};
+
+/**
+ * Prado utilities to manipulate DOM elements.
+ * @object Prado.Element
+ */
+Prado.Element =
+{
+ /**
+ * Set the value of a particular element.
+ * @function ?
+ * @param {string} element - Element id
+ * @param {string} value - New element value
+ */
+ setValue : function(element, value)
+ {
+ var el = jQuery("#" + element).get(0);
+ if(el && typeof(el.value) != "undefined")
+ el.value = value;
+ },
+
+ /**
+ * Select options from a selectable element.
+ * @function ?
+ * @param {string} element - Element id
+ * @param {string} method - Name of any {@link Prado.Element.Selection} method
+ * @param {array|boolean|string} value - Values that should be selected
+ * @param {int} total - Number of elements
+ */
+ select : function(element, method, value, total)
+ {
+ var el = jQuery("#" + element).get(0);
+ if(!el) return;
+ var selection = Prado.Element.Selection;
+ if(typeof(selection[method]) == "function")
+ {
+ var control = selection.isSelectable(el) ? [el] : selection.getListElements(element,total);
+ selection[method](control, value);
+ }
+ },
+
+ /**
+ * Trigger a click event on a DOM element.
+ * @function ?
+ * @param {string} element - Element id
+ */
+ click : function(element)
+ {
+ var el = jQuery("#" + element).get(0);
+ if(el)
+ el.click();
+ },
+
+ /**
+ * Check if an DOM element is disabled.
+ * @function {boolean} ?
+ * @param {string} element - Element id
+ * @returns true if element is disabled
+ */
+ isDisabled : function(element)
+ {
+ if(!element.attributes['disabled']) //FF
+ return false;
+ var value = element.attributes['disabled'].nodeValue;
+ if(typeof(value)=="string")
+ return value.toLowerCase() == "disabled";
+ else
+ return value == true;
+ },
+
+ /**
+ * Sets an attribute of a DOM element.
+ * @function ?
+ * @param {string} element - Element id
+ * @param {string} attribute - Name of attribute
+ * @param {string} value - Value of attribute
+ */
+ setAttribute : function(element, attribute, value)
+ {
+ var el = jQuery("#" + element).get(0);
+ if(!el) return;
+ if((attribute == "disabled" || attribute == "multiple" || attribute == "readonly" || attribute == "href") && value==false)
+ el.removeAttribute(attribute);
+ else if(attribute.match(/^on/i)) //event methods
+ {
+ try
+ {
+ eval("(func = function(event){"+value+"})");
+ el[attribute] = func;
+ }
+ catch(e)
+ {
+ debugger;
+ throw "Error in evaluating '"+value+"' for attribute "+attribute+" for element "+element.id;
+ }
+ }
+ else
+ el.setAttribute(attribute, value);
+ },
+
+ /**
+ * Sets the options for a select element.
+ * @function ?
+ * @param {string} element - Element id
+ * @param {array[]} options - Array of options, each an array of structure
+ * [ "optionText" , "optionValue" , "optionGroup" ]
+ */
+ setOptions : function(element, options)
+ {
+ var el = jQuery("#" + element).get(0);
+ if(!el) return;
+ var previousGroup = null;
+ var optGroup=null;
+ if(el && el.tagName.toLowerCase() == "select")
+ {
+ while(el.childNodes.length > 0)
+ el.removeChild(el.lastChild);
+
+ var optDom = Prado.Element.createOptions(options);
+ for(var i = 0; i < optDom.length; i++)
+ el.appendChild(optDom[i]);
+ }
+ },
+
+ /**
+ * Create opt-group options from an array of options.
+ * @function {array} ?
+ * @param {array[]} options - Array of options, each an array of structure
+ * [ "optionText" , "optionValue" , "optionGroup" ]
+ * @returns Array of option DOM elements
+ */
+ createOptions : function(options)
+ {
+ var previousGroup = null;
+ var optgroup=null;
+ var result = [];
+ for(var i = 0; i<options.length; i++)
+ {
+ var option = options[i];
+ if(option.length > 2)
+ {
+ var group = option[2];
+ if(group!=previousGroup)
+ {
+ if(previousGroup!=null && optgroup!=null)
+ {
+ result.push(optgroup);
+ previousGroup=null;
+ optgroup=null;
+ }
+ optgroup = document.createElement('optgroup');
+ optgroup.label = group;
+ previousGroup = group;
+ }
+ }
+ var opt = document.createElement('option');
+ opt.text = option[0];
+ opt.innerHTML = option[0];
+ opt.value = option[1];
+ if(optgroup!=null)
+ optgroup.appendChild(opt);
+ else
+ result.push(opt);
+ }
+ if(optgroup!=null)
+ result.push(optgroup);
+ return result;
+ },
+
+ /**
+ * Set focus (delayed) on a particular element.
+ * @function ?
+ * @param {string} element - Element id
+ */
+ focus : function(element)
+ {
+ var obj = jQuery("#" + element).get(0);
+ if(typeof(obj) != "undefined" && typeof(obj.focus) != "undefined")
+ setTimeout(function(){ obj.focus(); }, 100);
+ return false;
+ },
+
+ /**
+ * Replace a DOM element either with given content or
+ * with content from a CallBack response boundary
+ * using a replacement method.
+ * @function ?
+ * @param {string|element} element - DOM element or element id
+ * @param {string} method - Name of method to use for replacement
+ * @param {optional string} content - New content of element
+ * @param {optional string} boundary - Boundary of new content
+ */
+ replace : function(element, method, content, boundary)
+ {
+ if(boundary)
+ {
+ var result = Prado.Element.extractContent(this.transport.responseText, boundary);
+ if(result != null)
+ content = result;
+ }
+ if(typeof(element) == "string")
+ {
+ if(jQuery("#" + element).get(0))
+ method.toFunction().apply(this,[element,""+content]);
+ }
+ else
+ {
+ method.toFunction().apply(this,[""+content]);
+ }
+ },
+
+ /**
+ * Appends a javascript block to the document.
+ * @function ?
+ * @param {string} boundary - Boundary containing the javascript code
+ */
+ appendScriptBlock : function(boundary)
+ {
+ var content = Prado.Element.extractContent(this.transport.responseText, boundary);
+ if(content == null)
+ return;
+
+ var el = document.createElement("script");
+ el.type = "text/javascript";
+ el.id = 'inline_' + boundary;
+ el.text = content;
+
+ (document.getElementsByTagName('head')[0] || document.documentElement).appendChild(el);
+ el.parentNode.removeChild(el);
+ },
/**
- * Returns browser information.
+ * Extract content from a text by its boundary id.
+ * Boundaries have this form:
* <pre>
- * var browser = Prado.Browser();
- * alert(browser.ie); //should ouput true if IE, false otherwise
+ * &lt;!--123456--&gt;Democontent&lt;!--//123456--&gt;
* </pre>
- * @function {object} ?
- * @version 1.0
- * @returns browserinfo
- * @... {string} agent - Reported user agent
- * @... {string} ver - Reported agent version
- * @... {0|1} dom - 1 for DOM browsers
- * @... {0|1} ns4 - 1 for Netscape 4
- * @... {0|1} ns6 - 1 for Netscape 6 and Firefox
- * @... {boolean} ie3 - true for IE 3
- * @... {0|1} ie5 - 1 for IE 5
- * @... {0|1} ie6 - 1 for IE 6
- * @... {0|1} ie4 - 1 for IE 4
- * @... {0|1} ie - 1 for IE 4-6
- * @... {0|1} hotjava - 1 for HotJava
- * @... {0|1} ver3 - 1 for IE3 and HotJava
- * @... {0|1} opera - 1 for Opera
- * @... {boolean} opera7 - true for Opera 7
- * @... {0|1} operaOld - 1 for older Opera
- * @... {0|1} bw - 1 for IE 4-6, Netscape 4&6, Firefox and Opera
- * @... {boolean} mac - true for mac systems
- * @... {static} Version - Version of returned structure (1.0)
- */
- Browser : function()
- {
- var info = { Version : "1.0" };
- var is_major = parseInt( navigator.appVersion );
- info.nver = is_major;
- info.ver = navigator.appVersion;
- info.agent = navigator.userAgent;
- info.dom = document.getElementById ? 1 : 0;
- info.opera = window.opera ? 1 : 0;
- info.ie5 = ( info.ver.indexOf( "MSIE 5" ) > -1 && info.dom && !info.opera ) ? 1 : 0;
- info.ie6 = ( info.ver.indexOf( "MSIE 6" ) > -1 && info.dom && !info.opera ) ? 1 : 0;
- info.ie4 = ( document.all && !info.dom && !info.opera ) ? 1 : 0;
- info.ie = info.ie4 || info.ie5 || info.ie6;
- info.mac = info.agent.indexOf( "Mac" ) > -1;
- info.ns6 = ( info.dom && parseInt( info.ver ) >= 5 ) ? 1 : 0;
- info.ie3 = ( info.ver.indexOf( "MSIE" ) && ( is_major < 4 ) );
- info.hotjava = ( info.agent.toLowerCase().indexOf( 'hotjava' ) != -1 ) ? 1 : 0;
- info.ns4 = ( document.layers && !info.dom && !info.hotjava ) ? 1 : 0;
- info.bw = ( info.ie6 || info.ie5 || info.ie4 || info.ns4 || info.ns6 || info.opera );
- info.ver3 = ( info.hotjava || info.ie3 );
- info.opera7 = ( ( info.agent.toLowerCase().indexOf( 'opera 7' ) > -1 ) || ( info.agent.toLowerCase().indexOf( 'opera/7' ) > -1 ) );
- info.operaOld = info.opera && !info.opera7;
- return info;
- },
-
- /**
- * Import CSS from Url.
+ * @function {string} ?
+ * @param {string} text - Text that contains boundaries
+ * @param {string} boundary - Boundary id
+ * @returns Content from given boundaries
+ */
+ extractContent : function(text, boundary)
+ {
+ var tagStart = '<!--'+boundary+'-->';
+ var tagEnd = '<!--//'+boundary+'-->';
+ var start = text.indexOf(tagStart);
+ if(start > -1)
+ {
+ start += tagStart.length;
+ var end = text.indexOf(tagEnd,start);
+ if(end > -1)
+ return text.substring(start,end);
+ }
+ return null;
+ /*var f = RegExp('(?:<!--'+boundary+'-->)((?:.|\n|\r)+?)(?:<!--//'+boundary+'-->)',"m");
+ var result = text.match(f);
+ if(result && result.length >= 2)
+ return result[1];
+ else
+ return null;*/
+ },
+
+ /**
+ * Evaluate a javascript snippet from a string.
* @function ?
- * @param doc - document DOM object
- * @param css_file - Url to CSS file
+ * @param {string} content - String containing the script
*/
- ImportCss : function(doc, css_file)
+ evaluateScript : function(content)
{
- if (Prado.Browser().ie)
- var styleSheet = doc.createStyleSheet(css_file);
+ try
+ {
+ content.evalScripts();
+ }
+ catch(e)
+ {
+ if(typeof(Logger) != "undefined")
+ Logger.error('Error during evaluation of script "'+content+'"');
+ else
+ debugger;
+ throw e;
+ }
+ },
+
+ /**
+ * Set CSS style with Camelized keys.
+ * See <a href="http://www.prototypejs.org/api/element/setstyle" target="_blank">Prototype's
+ * Element.setStyle</a> for details.
+ * @function ?
+ * @param {string|element} element - DOM element or element id
+ * @param {object} styles - Object with style properties/values
+ */
+ setStyle : function (element, styles)
+ {
+ var s = {}
+ // Camelize all styles keys
+ for (var property in styles)
+ {
+ s[property.camelize()]=styles[property].camelize();
+ }
+ Element.setStyle(element, s);
+ }
+};
+
+jQuery.extend(String.prototype, {
+
+ /**
+ * Add padding to string
+ * @function {string} ?
+ * @param {string} side - "left" to pad the string on the left, "right" to pad right.
+ * @param {int} len - Minimum string length.
+ * @param {string} chr - Character(s) to pad
+ * @returns Padded string
+ */
+ pad : function(side, len, chr) {
+ if (!chr) chr = ' ';
+ var s = this;
+ var left = side.toLowerCase()=='left';
+ while (s.length<len) s = left? chr + s : s + chr;
+ return s;
+ },
+
+ /**
+ * Add left padding to string
+ * @function {string} ?
+ * @param {int} len - Minimum string length.
+ * @param {string} chr - Character(s) to pad
+ * @returns Padded string
+ */
+ padLeft : function(len, chr) {
+ return this.pad('left',len,chr);
+ },
+
+ /**
+ * Add right padding to string
+ * @function {string} ?
+ * @param {int} len - Minimum string length.
+ * @param {string} chr - Character(s) to pad
+ * @returns Padded string
+ */
+ padRight : function(len, chr) {
+ return this.pad('right',len,chr);
+ },
+
+ /**
+ * Add zeros to the right of string
+ * @function {string} ?
+ * @param {int} len - Minimum string length.
+ * @returns Padded string
+ */
+ zerofill : function(len) {
+ return this.padLeft(len,'0');
+ },
+
+ /**
+ * Remove white spaces from both ends of string.
+ * @function {string} ?
+ * @returns Trimmed string
+ */
+ trim : function() {
+ return this.replace(/^\s+|\s+$/g,'');
+ },
+
+ /**
+ * Remove white spaces from the left side of string.
+ * @function {string} ?
+ * @returns Trimmed string
+ */
+ trimLeft : function() {
+ return this.replace(/^\s+/,'');
+ },
+
+ /**
+ * Remove white spaces from the right side of string.
+ * @function {string} ?
+ * @returns Trimmed string
+ */
+ trimRight : function() {
+ return this.replace(/\s+$/,'');
+ },
+
+ /**
+ * Convert period separated function names into a function reference.
+ * <br />Example:
+ * <pre>
+ * "Prado.AJAX.Callback.Action.setValue".toFunction()
+ * </pre>
+ * @function {function} ?
+ * @returns Reference to the corresponding function
+ */
+ toFunction : function()
+ {
+ var commands = this.split(/\./);
+ var command = window;
+ jQuery(commands).each(function(idx, action)
+ {
+ if(command[new String(action)])
+ command=command[new String(action)];
+ });
+ if(typeof(command) == "function")
+ return command;
else
{
- var elm = doc.createElement("link");
+ if(typeof Logger != "undefined")
+ Logger.error("Missing function", this);
+
+ throw new Error ("Missing function '"+this+"'");
+ }
+ },
+
+ /**
+ * Convert string into integer, returns null if not integer.
+ * @function {int} ?
+ * @returns Integer, null if string does not represent an integer.
+ */
+ toInteger : function()
+ {
+ var exp = /^\s*[-\+]?\d+\s*$/;
+ if (this.match(exp) == null)
+ return null;
+ var num = parseInt(this, 10);
+ return (isNaN(num) ? null : num);
+ },
- elm.rel = "stylesheet";
- elm.href = css_file;
- var headArr;
+ /**
+ * Convert string into a double/float value. <b>Internationalization
+ * is not supported</b>
+ * @function {double} ?
+ * @param {string} decimalchar - Decimal character, defaults to "."
+ * @returns Double, null if string does not represent a float value
+ */
+ toDouble : function(decimalchar)
+ {
+ if(this.length <= 0) return null;
+ decimalchar = decimalchar || ".";
+ var exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + decimalchar + "(\\d+))?\\s*$");
+ var m = this.match(exp);
- if (headArr = doc.getElementsByTagName("head"))
- headArr[0].appendChild(elm);
+ if (m == null)
+ return null;
+ m[1] = m[1] || "";
+ m[2] = m[2] || "0";
+ m[4] = m[4] || "0";
+
+ var cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4];
+ var num = parseFloat(cleanInput);
+ return (isNaN(num) ? null : num);
+ },
+
+ /**
+ * Convert strings that represent a currency value to float.
+ * E.g. "10,000.50" will become "10000.50". The number
+ * of dicimal digits, grouping and decimal characters can be specified.
+ * <i>The currency input format is <b>very</b> strict, null will be returned if
+ * the pattern does not match</i>.
+ * @function {double} ?
+ * @param {string} groupchar - Grouping character, defaults to ","
+ * @param {int} digits - Number of decimal digits
+ * @param {string} decimalchar - Decimal character, defaults to "."
+ * @returns Double, null if string does not represent a currency value
+ */
+ toCurrency : function(groupchar, digits, decimalchar)
+ {
+ groupchar = groupchar || ",";
+ decimalchar = decimalchar || ".";
+ digits = typeof(digits) == "undefined" ? 2 : digits;
+
+ var exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + groupchar + ")*)(\\d+)"
+ + ((digits > 0) ? "(\\" + decimalchar + "(\\d{1," + digits + "}))?" : "")
+ + "\\s*$");
+ var m = this.match(exp);
+ if (m == null)
+ return null;
+ var intermed = m[2] + m[5] ;
+ var cleanInput = m[1] + intermed.replace(
+ new RegExp("(\\" + groupchar + ")", "g"), "")
+ + ((digits > 0) ? "." + m[7] : "");
+ var num = parseFloat(cleanInput);
+ return (isNaN(num) ? null : num);
+ },
+
+ /**
+ * Converts the string to a date by finding values that matches the
+ * date format pattern.
+ * @function {Date} ?
+ * @param {string} format - Date format pattern, e.g. MM-dd-yyyy
+ * @returns Date extracted from the string
+ */
+ toDate : function(format)
+ {
+ return Date.SimpleParse(this, format);
+ }
+});
+
+jQuery.extend(Date.prototype,
+{
+ /**
+ * SimpleFormat
+ * @function ?
+ * @param {string} format - TODO
+ * @param {string} data - TODO
+ * @returns TODO
+ */
+ SimpleFormat: function(format, data)
+ {
+ data = data || {};
+ var bits = new Array();
+ bits['d'] = this.getDate();
+ bits['dd'] = String(this.getDate()).zerofill(2);
+
+ bits['M'] = this.getMonth()+1;
+ bits['MM'] = String(this.getMonth()+1).zerofill(2);
+ if(data.AbbreviatedMonthNames)
+ bits['MMM'] = data.AbbreviatedMonthNames[this.getMonth()];
+ if(data.MonthNames)
+ bits['MMMM'] = data.MonthNames[this.getMonth()];
+ var yearStr = "" + this.getFullYear();
+ yearStr = (yearStr.length == 2) ? '19' + yearStr: yearStr;
+ bits['yyyy'] = yearStr;
+ bits['yy'] = bits['yyyy'].toString().substr(2,2);
+
+ // do some funky regexs to replace the format string
+ // with the real values
+ var frm = new String(format);
+ for (var sect in bits)
+ {
+ var reg = new RegExp("\\b"+sect+"\\b" ,"g");
+ frm = frm.replace(reg, bits[sect]);
}
+ return frm;
+ },
+
+ /**
+ * toISODate
+ * @function {string} ?
+ * @returns TODO
+ */
+ toISODate : function()
+ {
+ var y = this.getFullYear();
+ var m = String(this.getMonth() + 1).zerofill(2);
+ var d = String(this.getDate()).zerofill(2);
+ return String(y) + String(m) + String(d);
}
-};
+});
+
+jQuery.extend(Date,
+{
+ /**
+ * SimpleParse
+ * @function ?
+ * @param {string} format - TODO
+ * @param {string} data - TODO
+ * @returns TODO
+ */
+ SimpleParse: function(value, format)
+ {
+ var val=String(value);
+ format=String(format);
+
+ if(val.length <= 0) return null;
+
+ if(format.length <= 0) return new Date(value);
+
+ var isInteger = function (val)
+ {
+ var digits="1234567890";
+ for (var i=0; i < val.length; i++)
+ {
+ if (digits.indexOf(val.charAt(i))==-1) { return false; }
+ }
+ return true;
+ };
+
+ var getInt = function(str,i,minlength,maxlength)
+ {
+ for (var x=maxlength; x>=minlength; x--)
+ {
+ var token=str.substring(i,i+x);
+ if (token.length < minlength) { return null; }
+ if (isInteger(token)) { return token; }
+ }
+ return null;
+ };
+
+ var i_val=0;
+ var i_format=0;
+ var c="";
+ var token="";
+ var token2="";
+ var x,y;
+ var now=new Date();
+ var year=now.getFullYear();
+ var month=now.getMonth()+1;
+ var date=1;
+
+ while (i_format < format.length)
+ {
+ // Get next token from format string
+ c=format.charAt(i_format);
+ token="";
+ while ((format.charAt(i_format)==c) && (i_format < format.length))
+ {
+ token += format.charAt(i_format++);
+ }
+
+ // Extract contents of value based on format token
+ if (token=="yyyy" || token=="yy" || token=="y")
+ {
+ if (token=="yyyy") { x=4;y=4; }
+ if (token=="yy") { x=2;y=2; }
+ if (token=="y") { x=2;y=4; }
+ year=getInt(val,i_val,x,y);
+ if (year==null) { return null; }
+ i_val += year.length;
+ if (year.length==2)
+ {
+ if (year > 70) { year=1900+(year-0); }
+ else { year=2000+(year-0); }
+ }
+ }
+
+ else if (token=="MM"||token=="M")
+ {
+ month=getInt(val,i_val,token.length,2);
+ if(month==null||(month<1)||(month>12)){return null;}
+ i_val+=month.length;
+ }
+ else if (token=="dd"||token=="d")
+ {
+ date=getInt(val,i_val,token.length,2);
+ if(date==null||(date<1)||(date>31)){return null;}
+ i_val+=date.length;
+ }
+ else
+ {
+ if (val.substring(i_val,i_val+token.length)!=token) {return null;}
+ else {i_val+=token.length;}
+ }
+ }
+
+ // If there are any trailing characters left in the value, it doesn't match
+ if (i_val != val.length) { return null; }
+
+ // Is date valid for month?
+ if (month==2)
+ {
+ // Check for leap year
+ if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
+ if (date > 29){ return null; }
+ }
+ else { if (date > 28) { return null; } }
+ }
+
+ if ((month==4)||(month==6)||(month==9)||(month==11))
+ {
+ if (date > 30) { return null; }
+ }
+
+ var newdate=new Date(year,month-1,date, 0, 0, 0);
+ return newdate;
+ }
+});
diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js
index 0361389f..c820b610 100644
--- a/framework/Web/Javascripts/source/prado/validator/validation3.js
+++ b/framework/Web/Javascripts/source/prado/validator/validation3.js
@@ -61,7 +61,7 @@
* @module validation
*/
-Prado.Validation = Class.create();
+Prado.Validation = jQuery.klass();
/**
* Global Validation Object.
@@ -76,7 +76,7 @@ Prado.Validation = Class.create();
*
* @object {static} Prado.Validation
*/
-Object.extend(Prado.Validation,
+jQuery.extend(Prado.Validation,
{
/**
* Hash of registered validation managers
@@ -133,8 +133,10 @@ Object.extend(Prado.Validation,
*/
getForm : function()
{
- var keys = $H(this.managers).keys();
- return keys[0];
+ var keys = jQuery.map(this.managers, function(value, key) {
+ return key;
+ });
+ return keys.length>0 ? keys[0] : null;
},
/**
@@ -201,14 +203,14 @@ Object.extend(Prado.Validation,
setErrorMessage : function(validatorID, message)
{
- $H(Prado.Validation.managers).each(function(manager)
+ jQuery.each(Prado.Validation.managers, function(manager)
{
- manager[1].validators.each(function(validator)
+ jQuery.each(manager[1].validators, function(validator)
{
if(validator.options.ID == validatorID)
{
validator.options.ErrorMessage = message;
- $(validatorID).innerHTML = message;
+ jQuery("#" + validatorID).get(0).innerHTML = message;
}
});
});
@@ -216,9 +218,9 @@ Object.extend(Prado.Validation,
updateActiveCustomValidator : function(validatorID, isValid)
{
- $H(Prado.Validation.managers).each(function(manager)
+ jQuery.each(Prado.Validation.managers, function(idx, manager)
{
- manager[1].validators.each(function(validator)
+ jQuery.each(manager[1].validators, function(idx, validator)
{
if(validator.options.ID == validatorID)
{
@@ -239,7 +241,7 @@ Object.extend(Prado.Validation,
*
* @class Prado.ValidationManager
*/
-Prado.ValidationManager = Class.create();
+Prado.ValidationManager = jQuery.klass();
Prado.ValidationManager.prototype =
{
/**
@@ -301,7 +303,10 @@ Prado.ValidationManager.prototype =
*/
reset : function(group)
{
- this.validatorPartition(group)[0].invoke('reset');
+ var vals = this.validatorPartition(group)[0];
+ for(var i = 0; i < vals.length; i++)
+ vals[i].reset();
+
this.updateSummary(group, true);
},
@@ -316,9 +321,14 @@ Prado.ValidationManager.prototype =
validate : function(group, source)
{
var partition = this.validatorPartition(group);
- var valid = partition[0].invoke('validate', source).all();
+ var valid=true;
+ for(var i = 0; i < partition[0].length; i++)
+ {
+ if(!partition[0][i].validate(source))
+ valid=false;
+ }
this.focusOnError(partition[0]);
- partition[1].invoke('hide');
+ jQuery(partition[1]).hide();
this.updateSummary(group, true);
return valid;
},
@@ -374,12 +384,16 @@ Prado.ValidationManager.prototype =
*/
validatorsInGroup : function(groupID)
{
- if(this.groups.include(groupID))
+ if(jQuery.inArray(groupID, this.groups)!=-1)
{
- return this.validators.partition(function(val)
- {
- return val.group == groupID;
+ var trues = [], falses = [];
+ jQuery.each(this.validators, function(idx, val) {
+ if(val.group == groupID)
+ trues.push(val);
+ else
+ falses.push(val);
});
+ return [trues, falses];
}
else
return [[],[]];
@@ -396,10 +410,14 @@ Prado.ValidationManager.prototype =
*/
validatorsWithoutGroup : function()
{
- return this.validators.partition(function(val)
- {
- return !val.group;
+ var trues = [], falses = [];
+ jQuery.each(this.validators, function(idx, val) {
+ if(!val.group)
+ trues.push(val);
+ else
+ falses.push(val);
});
+ return [trues, falses];
},
/**
@@ -412,7 +430,13 @@ Prado.ValidationManager.prototype =
*/
isValid : function(group)
{
- return this.validatorPartition(group)[0].pluck('isValid').all();
+ for(var i = 0; i < this.validatorPartition(group)[0]; i++)
+ {
+ if(!this.validatorPartition(group)[0].isValid())
+ return false;
+ }
+
+ return true;
},
/**
@@ -427,7 +451,7 @@ Prado.ValidationManager.prototype =
this.removeValidator(validator);
this.validators.push(validator);
- if(validator.group && !this.groups.include(validator.group))
+ if(validator.group && jQuery.inArray(validator.group, this.groups)==-1)
this.groups.push(validator.group);
if (typeof this.controls[validator.control.id] === 'undefined')
@@ -452,14 +476,15 @@ Prado.ValidationManager.prototype =
*/
removeValidator : function(validator)
{
- this.validators = this.validators.reject(function(v)
+ this.validators = jQuery.grep(this.validators, function(v)
{
- return (v.options.ID==validator.options.ID);
+ return (v.options.ID!=validator.options.ID);
});
+ // WTF?
if (this.controls[validator.control.id])
- this.controls[validator.control.id].reject( function(v)
+ jQuery.grep(this.controls[validator.control.id], function(v)
{
- return (v.options.ID==validator.options.ID)
+ return (v.options.ID!=validator.options.ID)
});
},
@@ -473,7 +498,7 @@ Prado.ValidationManager.prototype =
*/
getValidatorsWithError : function(group)
{
- return this.validatorPartition(group)[0].findAll(function(validator)
+ return jQuery.grep(this.validatorPartition(group)[0], function(validator)
{
return !validator.isValid;
});
@@ -491,7 +516,7 @@ Prado.ValidationManager.prototype =
updateSummary : function(group, refresh)
{
var validators = this.getValidatorsWithError(group);
- this.summaries.each(function(summary)
+ jQuery.each(this.summaries, function(idx, summary)
{
var inGroup = group && summary.group == group;
var noGroup = !group || !summary.group;
@@ -522,7 +547,7 @@ Prado.ValidationManager.prototype =
*
* @class Prado.WebUI.TValidationSummary
*/
-Prado.WebUI.TValidationSummary = Class.create();
+Prado.WebUI.TValidationSummary = jQuery.klass();
Prado.WebUI.TValidationSummary.prototype =
{
/**
@@ -558,8 +583,8 @@ Prado.WebUI.TValidationSummary.prototype =
* Summary DOM element
* @var {element} messages
*/
- this.messages = $(options.ID);
- Prado.Registry.set(options.ID, this);
+ this.messages = jQuery("#" + options.ID).get(0);
+ Prado.Registry[options.ID] = this;
if(this.messages)
{
/**
@@ -592,7 +617,14 @@ Prado.WebUI.TValidationSummary.prototype =
var refresh = update || this.visible == false || this.options.Refresh != false;
// Also, do not refresh summary if at least 1 validator is waiting for callback response.
// This will avoid the flickering of summary if the validator passes its test
- refresh = refresh && validators.any(function(v) { return !v.requestDispatched; });
+ for(var i = 0; i < validators.length; i++)
+ {
+ if(validators[i].requestDispatched)
+ {
+ refresh=false;
+ break;
+ }
+ }
if(this.options.ShowSummary != false && refresh)
{
@@ -619,7 +651,7 @@ Prado.WebUI.TValidationSummary.prototype =
{
while(this.messages.childNodes.length > 0)
this.messages.removeChild(this.messages.lastChild);
- this.messages.insert(this.formatSummary(messages));
+ jQuery(this.messages).append(this.formatSummary(messages));
},
/**
@@ -642,7 +674,7 @@ Prado.WebUI.TValidationSummary.prototype =
getMessages : function(validators)
{
var messages = [];
- validators.each(function(validator)
+ jQuery.each(validators, function(idx, validator)
{
var message = validator.getErrorMessage();
if(typeof(message) == 'string' && message.length > 0)
@@ -666,7 +698,7 @@ Prado.WebUI.TValidationSummary.prototype =
{
this.messages.style.visibility="hidden";
if(this.options.Display == "None" || this.options.Display == "Dynamic")
- this.messages.hide();
+ jQuery(this.messages).hide();
}
this.visible = false;
},
@@ -682,7 +714,7 @@ Prado.WebUI.TValidationSummary.prototype =
if(typeof(this.options.OnShowSummary) == "function")
this.options.OnShowSummary(this,validators);
else
- this.messages.show();
+ jQuery(this.messages).show();
this.visible = true;
},
@@ -724,7 +756,7 @@ Prado.WebUI.TValidationSummary.prototype =
var format = this.formats(this.options.DisplayMode);
var output = this.options.HeaderText ? this.options.HeaderText + format.header : "";
output += format.first;
- messages.each(function(message)
+ jQuery.each(messages, function(idx, message)
{
output += message.length > 0 ? format.pre + message + format.post : "";
});
@@ -776,7 +808,7 @@ Prado.WebUI.TValidationSummary.prototype =
*
* @class Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
+Prado.WebUI.TBaseValidator = jQuery.klass(Prado.WebUI.Control,
{
/**
* Initialize TBaseValidator.
@@ -846,14 +878,14 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
* DOM element of control to validate
* @var {element} control
*/
- this.control = $(options.ControlToValidate);
+ this.control = jQuery("#" + options.ControlToValidate).get(0);
/**
* DOM element of validator
* @var {element} message
*/
- this.message = $(options.ID);
+ this.message = jQuery("#" + options.ID).get(0);
- Prado.Registry.set(options.ID, this);
+ Prado.Registry[options.ID] = this;
if (this.onInit) this.onInit();
@@ -907,7 +939,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
if(this.options.Display == "Dynamic")
{
var msg=this.message;
- this.isValid ? msg.hide() : msg.show();
+ this.isValid ? jQuery(msg).hide() : jQuery(msg).show();
}
this.message.style.visibility = this.isValid ? "hidden" : "visible";
}
@@ -933,13 +965,13 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
if (control.lastValidator == this.options.ID)
{
control.lastValidator = null;
- control.removeClassName(CssClass);
+ jQuery(control).removeClass(CssClass);
}
}
else
{
control.lastValidator = this.options.ID;
- control.addClassName(CssClass);
+ jQuery(control).addClass(CssClass);
}
}
},
@@ -977,7 +1009,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
{
//try to find the control.
if(!this.control)
- this.control = $(this.options.ControlToValidate);
+ this.control = jQuery("#" + this.options.ControlToValidate).get(0);
if(!this.control || this.control.disabled)
{
@@ -1102,7 +1134,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
return value;
else
{
- var value = string.toDate(this.options.DateFormat);
+ var value = string.toDate(string, this.options.DateFormat);
if(value && typeof(value.getTime) == "function")
return value.getTime();
else
@@ -1131,7 +1163,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
case 'TDatePicker':
if(control.type == "text")
{
- var value = this.trim($F(control));
+ var value = this.trim(jQuery("#" + control).get(0).val());
if(this.options.DateFormat)
{
@@ -1151,15 +1183,17 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
case 'THtmlArea4':
if(typeof tinyMCE != "undefined")
tinyMCE.triggerSave();
- return $F(control);
+ return control.value;
case 'TRadioButton':
if(this.options.GroupName)
return this.getRadioButtonGroupValue();
+ case 'TCheckBox':
+ return control.checked;
default:
if(this.isListControlType())
return this.getFirstSelectedListValue();
else
- return $F(control);
+ return jQuery(control).val();
}
},
@@ -1184,6 +1218,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
case 'THtmlArea4':
return this.trim(value);
case 'TRadioButton':
+ case 'TCheckBox':
return value;
default:
if(this.isListControlType())
@@ -1202,7 +1237,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
{
var name = this.control.name;
var value = "";
- $A(document.getElementsByName(name)).each(function(el)
+ jQuery.each(document.getElementsByName(name), function(idx, el)
{
if(el.checked)
value = el.value;
@@ -1216,13 +1251,10 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
*/
observeDatePickerChanges : function()
{
- if(Prado.Browser().ie)
- {
- var DatePicker = Prado.WebUI.TDatePicker;
- this.observeChanges(DatePicker.getDayListControl(this.control));
- this.observeChanges(DatePicker.getMonthListControl(this.control));
- this.observeChanges(DatePicker.getYearListControl(this.control));
- }
+ var DatePicker = Prado.WebUI.TDatePicker;
+ this.observeChanges(DatePicker.getDayListControl(this.control));
+ this.observeChanges(DatePicker.getMonthListControl(this.control));
+ this.observeChanges(DatePicker.getYearListControl(this.control));
},
/**
@@ -1239,7 +1271,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
var checked = 0;
var values = [];
var isSelected = this.isCheckBoxType(elements[0]) ? 'checked' : 'selected';
- elements.each(function(element)
+ jQuery.each(elements, function(idx, element)
{
if(element[isSelected] && element.value != initialValue)
{
@@ -1266,19 +1298,19 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
var elements = [];
for(var i = 0; i < this.options.TotalItems; i++)
{
- var element = $(this.options.ControlToValidate+"_c"+i);
+ var element = jQuery("#" + this.options.ControlToValidate+"_c"+i).get(0);
if(this.isCheckBoxType(element))
elements.push(element);
}
return elements;
case 'TListBox':
var elements = [];
- var element = $(this.options.ControlToValidate);
+ var element = jQuery("#" + this.options.ControlToValidate).get(0);
var type;
if(element && (type = element.type.toLowerCase()))
{
if(type == "select-one" || type == "select-multiple")
- elements = $A(element.options);
+ elements = element.options;
}
return elements;
default:
@@ -1310,7 +1342,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
isListControlType : function()
{
var list = ['TCheckBoxList', 'TRadioButtonList', 'TListBox'];
- return list.include(this.options.ControlType);
+ return (jQuery.inArray(this.options.ControlType, list)!=-1);
},
/**
@@ -1339,7 +1371,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,
* @class Prado.WebUI.TRequiredFieldValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TRequiredFieldValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TRequiredFieldValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Evaluate validation state
@@ -1380,7 +1412,7 @@ Prado.WebUI.TRequiredFieldValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TCompareValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TCompareValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Additional constructor options.
@@ -1407,7 +1439,7 @@ Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator,
if (value.length <= 0)
return true;
- var comparee = $(this.options.ControlToCompare);
+ var comparee = jQuery("#" + this.options.ControlToCompare).get(0);
if(comparee)
var compareTo = this.getValidationValue(comparee);
@@ -1487,7 +1519,7 @@ Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TCustomValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TCustomValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Additional constructor options.
@@ -1521,7 +1553,7 @@ Prado.WebUI.TCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TActiveCustomValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TActiveCustomValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Override the parent implementation to store the invoker, in order to
@@ -1538,7 +1570,7 @@ Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,
//try to find the control.
if(!this.control)
- this.control = $(this.options.ControlToValidate);
+ this.control = jQuery("#" + this.options.ControlToValidate).get(0);
if(!this.control || this.control.disabled)
{
@@ -1604,7 +1636,7 @@ Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TRangeValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TRangeValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TRangeValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Additional constructor options.
@@ -1663,7 +1695,7 @@ Prado.WebUI.TRangeValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TRegularExpressionValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TRegularExpressionValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TRegularExpressionValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Additional constructor option.
@@ -1707,7 +1739,7 @@ Prado.WebUI.TEmailAddressValidator = Prado.WebUI.TRegularExpressionValidator;
* @class Prado.WebUI.TListControlValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TListControlValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Evaluate validation state
@@ -1733,10 +1765,10 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,
*/
observeListElements : function(elements)
{
- if(Prado.Browser().ie && this.isCheckBoxType(elements[0]))
+ if(this.isCheckBoxType(elements[0]))
{
var validator = this;
- elements.each(function(element)
+ jQuery.each(elements, function(idx, element)
{
validator.observeChanges(element);
});
@@ -1763,9 +1795,9 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,
{
if(values.length < required.length)
return false;
- required.each(function(requiredValue)
+ jQuery.each(required, function(idx, requiredValue)
{
- exists = exists && values.include(requiredValue);
+ exists = exists && (jQuery.inArray(requiredValue, values)!=-1);
});
}
@@ -1808,7 +1840,7 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TDataTypeValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TDataTypeValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TDataTypeValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Additional constructor option.
@@ -1839,7 +1871,7 @@ Prado.WebUI.TDataTypeValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TCaptchaValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TCaptchaValidator = Class.extend(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TCaptchaValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
/**
* Evaluate validation state
@@ -1910,7 +1942,7 @@ Prado.WebUI.TCaptchaValidator = Class.extend(Prado.WebUI.TBaseValidator,
* @class Prado.WebUI.TReCaptchaValidator
* @extends Prado.WebUI.TBaseValidator
*/
-Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator,
+Prado.WebUI.TReCaptchaValidator = jQuery.klass(Prado.WebUI.TBaseValidator,
{
onInit : function()
{
@@ -1926,7 +1958,7 @@ Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator,
responseChanged: function()
{
- var field = $(this.options.ID+'_1');
+ var field = jQuery("#" + this.options.ID+'_1').get(0);
if (field.value=='1') return;
field.value = '1';
Prado.Validation.validateControl(this.options.ID);
@@ -1939,7 +1971,7 @@ Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator,
*/
evaluateIsValid : function()
{
- return ($(this.options.ID+'_1').value=='1');
+ return (jQuery("#" + this.options.ID+'_1').get(0).value=='1');
}
});