summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Web/Javascripts')
-rw-r--r--framework/Web/Javascripts/TJavaScript.php8
-rw-r--r--framework/Web/Javascripts/packages.php67
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js25
-rwxr-xr-xframework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js24
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/ajax3.js103
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/autocomplete.js84
-rwxr-xr-xframework/Web/Javascripts/source/prado/activecontrols/dragdrop.js12
-rw-r--r--framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js70
-rwxr-xr-xframework/Web/Javascripts/source/prado/activefileupload/activefileupload.js28
-rw-r--r--framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js8
-rw-r--r--framework/Web/Javascripts/source/prado/controls/accordion.js127
-rw-r--r--framework/Web/Javascripts/source/prado/controls/controls.js62
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea.js18
-rw-r--r--framework/Web/Javascripts/source/prado/controls/htmlarea4.js10
-rw-r--r--framework/Web/Javascripts/source/prado/controls/slider.js84
-rw-r--r--framework/Web/Javascripts/source/prado/controls/tabpanel.js6
-rw-r--r--framework/Web/Javascripts/source/prado/datepicker/datepicker.js34
-rw-r--r--framework/Web/Javascripts/source/prado/prado.js56
-rw-r--r--framework/Web/Javascripts/source/prado/ratings/ratings.js153
19 files changed, 516 insertions, 463 deletions
diff --git a/framework/Web/Javascripts/TJavaScript.php b/framework/Web/Javascripts/TJavaScript.php
index 8cfbc9ba..f55b5c5b 100644
--- a/framework/Web/Javascripts/TJavaScript.php
+++ b/framework/Web/Javascripts/TJavaScript.php
@@ -4,9 +4,8 @@
*
* @author Wei Zhuo<weizhuo[at]gmail[dot]com>
* @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 2005-2013 PradoSoft
+ * @copyright Copyright &copy; 2005-2014 PradoSoft
* @license http://www.pradosoft.com/license/
- * @version $Id: TJavaScript.php 3291 2013-05-09 17:44:58Z ctrlaltca $
* @package System.Web.Javascripts
*/
@@ -17,7 +16,6 @@
* functions.
*
* @author Wei Zhuo<weizhuo[at]gmail[dot]com>
- * @version $Id: TJavaScript.php 3291 2013-05-09 17:44:58Z ctrlaltca $
* @package System.Web.Javascripts
* @since 3.0
*/
@@ -251,7 +249,7 @@ class TJavaScript
self::checkJsonError();
return $s;
}
-
+
private static function checkJsonError()
{
switch ($err = json_last_error())
@@ -284,7 +282,7 @@ class TJavaScript
/**
* Minimize the size of a javascript script.
* This method is based on Douglas Crockford's JSMin.
- * @param string code that you want to minimzie
+ * @param string code that you want to minimzie
* @return minimized version of the code
*/
public static function JSMin($code)
diff --git a/framework/Web/Javascripts/packages.php b/framework/Web/Javascripts/packages.php
index 8223ecba..19cda98b 100644
--- a/framework/Web/Javascripts/packages.php
+++ b/framework/Web/Javascripts/packages.php
@@ -9,11 +9,7 @@ if (!defined('SCRIPTACULOUS_DIR')) define ('SCRIPTACULOUS_DIR', 'scriptaculous-1
//package names and its contents (files relative to the current directory)
$packages = array(
- 'prototype' => array(
- PROTOTYPE_DIR.'/prototype.js',
- SCRIPTACULOUS_DIR.'/builder.js',
- SCRIPTACULOUS_DIR.'/effects.js'
- ),
+ // base prado scripts
'prado' => array(
'prado/prado.js',
'prado/controls/controls.js'
@@ -40,15 +36,6 @@ $packages = array(
'prado/activecontrols/activecontrols3.js',
),
- 'dragdrop'=>array(
- SCRIPTACULOUS_DIR.'/dragdrop.js',
- 'prado/activecontrols/dragdrop.js'
- ),
-
- 'dragdropextra'=>array(
- 'prado/activecontrols/dragdropextra.js',
- ),
-
'slider'=>array(
'prado/controls/slider.js'
),
@@ -60,19 +47,15 @@ $packages = array(
'tabpanel'=>array(
'prado/controls/tabpanel.js'
),
-
+
'activedatepicker' => array(
'prado/activecontrols/activedatepicker.js'
),
-
+
'activefileupload' => array(
'prado/activefileupload/activefileupload.js'
),
- 'accordion'=>array(
- 'prado/controls/accordion.js'
- ),
-
'htmlarea'=>array(
'prado/controls/htmlarea.js'
),
@@ -81,14 +64,18 @@ $packages = array(
'prado/controls/htmlarea4.js'
),
- 'ratings' => array(
- 'prado/ratings/ratings.js',
+ 'accordion'=>array(
+ 'prado/controls/accordion.js'
),
'inlineeditor' => array(
'prado/activecontrols/inlineeditor.js'
),
+ 'ratings' => array(
+ 'prado/ratings/ratings.js',
+ ),
+
// jquery
'jquery' => array(
JQUERY_DIR.'/jquery.js',
@@ -98,12 +85,31 @@ $packages = array(
JQUERY_DIR.'/jquery-ui-i18n.min.js',
),
+ // prototype + scriptaculous
+ 'prototype' => array(
+ PROTOTYPE_DIR.'/prototype.js',
+ SCRIPTACULOUS_DIR.'/builder.js',
+ SCRIPTACULOUS_DIR.'/effects.js'
+ ),
+
+ 'dragdrop'=>array(
+ SCRIPTACULOUS_DIR.'/dragdrop.js',
+ 'prado/activecontrols/dragdrop.js'
+ ),
+
+ 'dragdropextra'=>array(
+ 'prado/activecontrols/dragdropextra.js',
+ ),
+
+ 'autocomplete' => array(
+ SCRIPTACULOUS_DIR.'/controls.js',
+ 'prado/activecontrols/autocomplete.js'
+ ),
);
//package names and their dependencies
$dependencies = array(
- 'prototype' => array('prototype'),
'jquery' => array('jquery'),
'prado' => array('jquery', 'prado'),
'validator' => array('jquery', 'prado', 'validator'),
@@ -119,15 +125,14 @@ $dependencies = array(
'htmlarea4' => array('jquery', 'prado', 'htmlarea4'),
'keyboard' => array('jquery', 'prado', 'keyboard'),
'slider' => array('jquery', 'prado', 'slider'),
- 'dragdrop' => array(),
-/*
- 'dragdrop' => array('prototype', 'prado', 'effects', 'ajax', 'dragdrop'),
- 'dragdropextra' => array('prototype', 'prado', 'effects', 'ajax', 'dragdrop','dragdropextra'),
- 'accordion' => array('prototype', 'prado', 'effects', 'accordion'),
- 'ratings' => array('prototype', 'prado', 'effects', 'ajax', 'ratings'),
- 'inlineeditor' => array('prototype', 'prado', 'effects', 'ajax', 'inlineeditor'),
- */
+ 'inlineeditor' => array('jquery', 'prado', 'ajax', 'inlineeditor'),
+ 'accordion' => array('jquery', 'prado', 'accordion'),
+ 'ratings' => array('jquery', 'prado', 'ajax', 'ratings'),
'jqueryui' => array('jquery', 'jqueryui'),
+ 'prototype' => array('prototype'),
+ 'dragdrop' => array('prototype', 'jquery', 'prado', 'ajax', 'dragdrop'),
+ 'dragdropextra' => array('prototype', 'jquery', 'prado', 'ajax', 'dragdrop','dragdropextra'),
+ 'autocomplete' => array('prototype', 'jquery', 'prado', 'ajax', 'autocomplete'),
);
return array($packages, $dependencies);
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
index 71c9d73c..907d930e 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js
@@ -50,18 +50,17 @@ Prado.WebUI.TActiveCheckBox = jQuery.klass(Prado.WebUI.CallbackControl,
Prado.WebUI.TActiveRadioButton = jQuery.klass(Prado.WebUI.TActiveCheckBox);
-Prado.WebUI.TActiveCheckBoxList = jQuery.extend(
+Prado.WebUI.TActiveCheckBoxList = jQuery.klass(Prado.WebUI.Control,
{
- constructor : function(options)
+ onInit : function(options)
{
- Prado.Registry[options.ListID] = this;
for(var i = 0; i<options.ItemCount; i++)
{
- var checkBoxOptions = jQuery.extend(
+ var checkBoxOptions = jQuery.extend({}, options,
{
- ID : options.ListID+"_c"+i,
+ ID : options.ID+"_c"+i,
EventTarget : options.ListName+"$c"+i
- }, options);
+ });
new Prado.WebUI.TActiveCheckBox(checkBoxOptions);
}
}
@@ -108,9 +107,9 @@ Prado.WebUI.TJuiAutoComplete = jQuery.klass(Prado.WebUI.TActiveTextBox,
})
jQuery('#'+options.ID).autocomplete(this.options)
.data( "ui-autocomplete")._renderItem = function( ul, item ) {
- return $( "<li>" )
+ return jQuery( "<li>" )
.attr( "data-value", item.value )
- .append( $( "<a>" ).html( item.label ) )
+ .append( jQuery( "<a>" ).html( item.label ) )
.appendTo( ul );
};
@@ -283,7 +282,7 @@ Prado.WebUI.TEventTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
onInit : function(options)
{
this.options = options || {} ;
- var element = $('#'+options['ControlID']).get(0);
+ var element = jQuery('#'+options['ControlID']).get(0);
if(element)
this.observe(element, this.getEventName(element), this.doCallback.bind(this));
},
@@ -328,7 +327,7 @@ Prado.WebUI.TValueTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
{
this.options = options || {} ;
this.options.PropertyName = this.options.PropertyName || 'value';
- var element = $('#'+options['ControlID']).get(0);
+ var element = jQuery('#'+options['ControlID']).get(0);
this.value = element ? element[this.options.PropertyName] : undefined;
Prado.WebUI.TValueTriggeredCallback.register(this);
this.startObserving();
@@ -347,7 +346,7 @@ Prado.WebUI.TValueTriggeredCallback = jQuery.klass(Prado.WebUI.Control,
checkChanges : function()
{
- var element = $('#'+this.options.ControlID).get(0);
+ var element = jQuery('#'+this.options.ControlID).get(0);
if(element)
{
var value = element[this.options.PropertyName];
@@ -401,7 +400,7 @@ Prado.WebUI.TActiveTableCell = jQuery.klass(Prado.WebUI.CallbackControl);
Prado.WebUI.TActiveTableRow = jQuery.klass(Prado.WebUI.CallbackControl);
Prado.WebUI.TActiveRatingList = jQuery.klass(Prado.WebUI.TRatingList,
-{
+{
dispatchRequest : function(ev)
{
var requestOptions = jQuery.extend(
@@ -413,5 +412,5 @@ Prado.WebUI.TActiveRatingList = jQuery.klass(Prado.WebUI.TRatingList,
if(request.dispatch()==false)
ev.preventDefault();
}
-
+
});
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
index c0268077..dd0fc6f2 100755
--- a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js
@@ -6,7 +6,7 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
onInit : function(options)
{
this.options = options || [];
- this.control = $('#'+options.ID).get(0);
+ this.control = jQuery('#'+options.ID).get(0);
this.dateSlot = new Array(42);
this.weekSlot = new Array(6);
this.minimalDaysInFirstWeek = 4;
@@ -17,7 +17,7 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
//which element to trigger to show the calendar
if(this.options.Trigger)
{
- this.trigger = $('#'+this.options.Trigger).get(0) ;
+ this.trigger = jQuery('#'+this.options.Trigger).get(0) ;
var triggerEvent = this.options.TriggerEvent || "click";
}
else
@@ -25,7 +25,7 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
this.trigger = this.control;
var triggerEvent = this.options.TriggerEvent || "focus";
}
-
+
// Popup position
if(this.options.PositionMode == 'Top')
{
@@ -36,12 +36,12 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
if (this.options.ShowCalendar)
this.observe(this.trigger, triggerEvent, jQuery.proxy(this.show,this));
-
- // Listen to change event
+
+ // Listen to change event
if(this.options.InputMode == "TextBox")
{
this.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));
- }
+ }
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
@@ -50,11 +50,11 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
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));
-
+
}
- },
-
+ },
+
// Respond to change event on the textbox or dropdown list
// This method raises OnDateChanged event on client side if it has been defined,
// and raise the callback request
@@ -64,7 +64,7 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
if (this.options.InputMode == "TextBox")
{
date=this.control.value;
- }
+ }
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
@@ -76,7 +76,7 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
date=new Date(year, month, day, 0,0,0).SimpleFormat(this.Format, this);
}
if (typeof(this.options.OnDateChanged) == "function") this.options.OnDateChanged(this, date);
-
+
if(this.options['AutoPostBack']==true)
{
// Make callback request
@@ -84,4 +84,4 @@ Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,
request.dispatch();
}
}
-});
+});
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
index 0d306a89..e6616176 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js
@@ -1,4 +1,4 @@
-Prado.CallbackRequestManager =
+Prado.CallbackRequestManager =
{
/**
* Callback request target POST field name.
@@ -66,6 +66,55 @@ Prado.CallbackRequestManager =
}
msg += e.version+" "+e.time+"\n";
return msg;
+ },
+
+ /*! jQuery Ajax Queue - v0.1.2pre - 2013-03-19
+ * https://github.com/gnarf37/jquery-ajaxQueue
+ * Copyright (c) 2013 Corey Frang; Licensed MIT
+ * Slightly adapted for use within prado by Fabio Bas <ctrlaltca@gmail.com>
+ */
+
+ // jQuery on an empty object, we are going to use this as our Queue
+ ajaxQueue : jQuery({}),
+
+ ajax : function( ajaxOpts ) {
+ var jqXHR,
+ dfd = jQuery.Deferred(),
+ promise = dfd.promise();
+
+ // run the actual query
+ function doRequest( next ) {
+ jqXHR = jQuery.ajax( ajaxOpts );
+ jqXHR.done( dfd.resolve )
+ .fail( dfd.reject )
+ .then( next, next );
+ }
+
+ // queue our ajax request
+ Prado.CallbackRequestManager.ajaxQueue.queue( doRequest );
+
+ // add the abort method
+ promise.abort = function( statusText ) {
+
+ // proxy abort to the jqXHR if it is active
+ if ( jqXHR ) {
+ return jqXHR.abort( statusText );
+ }
+
+ // if there wasn't already a jqXHR we need to remove from queue
+ var queue = Prado.CallbackRequestManager.ajaxQueue.queue(),
+ index = jQuery.inArray( doRequest, queue );
+
+ if ( index > -1 ) {
+ queue.splice( index, 1 );
+ }
+
+ // and then reject the deferred
+ dfd.rejectWith( ajaxOpts.context || ajaxOpts, [ promise, statusText, "" ] );
+ return promise;
+ };
+
+ return promise;
}
};
@@ -202,7 +251,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
if(this.options.onPreDispatch)
this.options.onPreDispatch(this,null);
-
+
// jQuery don't have all these states.. simulate them to avoid breaking old scripts
if (this.options.onLoading)
this.options.onLoading(this,null);
@@ -215,7 +264,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
this.options.data = this.getParameters();
this.options.url = this.getCallbackUrl();
- this.request = jQuery.ajax(this.options);
+ this.request = Prado.CallbackRequestManager.ajax(this.options);
},
abort : function()
@@ -239,7 +288,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
if(this.options.EventTarget)
data[Prado.CallbackRequestManager.FIELD_CALLBACK_TARGET] = this.options.EventTarget;
- if(this.options.PostInputs != false)
+ if(this.options.PostInputs != false)
return jQuery(form).serialize() + '&' + jQuery.param(data);
else
return jQuery.param(data);
@@ -352,7 +401,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
*/
updatePageState : function(request, datain)
{
- var pagestate = $("#"+Prado.CallbackRequestManager.FIELD_CALLBACK_PAGESTATE);
+ var pagestate = jQuery("#"+Prado.CallbackRequestManager.FIELD_CALLBACK_PAGESTATE);
var enabled = request.options.EnablePageStateUpdate;
var aborted = false; //typeof(self.currentRequest) == 'undefined' || self.currentRequest == null;
if(enabled && !aborted && pagestate)
@@ -408,7 +457,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
},
/*
- * Checks which assets are used by the response and ensures they're loaded
+ * Checks which assets are used by the response and ensures they're loaded
*/
loadAssets : function(request, datain, callback)
{
@@ -439,7 +488,7 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
},
/*
- * Checks which scripts are used by the response and ensures they're loaded
+ * Checks which scripts are used by the response and ensures they're loaded
*/
loadScripts : function(request, datain, callback)
{
@@ -473,10 +522,10 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
{
var url = this.ScriptsToLoad.shift(); var obj = this;
if (
- Prado.ScriptManager.ensureAssetIsLoaded(url,
- function() {
- obj.loadNextScript();
- }
+ Prado.ScriptManager.ensureAssetIsLoaded(url,
+ function() {
+ obj.loadNextScript();
+ }
)
)
this.loadNextScript();
@@ -560,10 +609,10 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
{
var url = this.StyleSheetsToLoad.shift(); var obj = this;
if (
- Prado.StyleSheetManager.ensureAssetIsLoaded(url,
- function() {
- obj.loadNextStyleSheet();
- }
+ Prado.StyleSheetManager.ensureAssetIsLoaded(url,
+ function() {
+ obj.loadNextStyleSheet();
+ }
)
)
this.loadNextStyleSheet();
@@ -591,8 +640,10 @@ Prado.CallbackRequest = jQuery.klass(Prado.PostBack,
if(typeof(Logger) != "undefined")
Logger.warn("Invalid action:"+data);
} else {
- for(var key in json)
- this.__run(this, json[key]);
+ var that = this;
+ jQuery.each(json, function(idx, item){
+ that.__run(that, item);
+ });
}
}
},
@@ -659,7 +710,7 @@ jQuery(function()
// /**
// * Prado Callback client-side request handler.
// */
-// Prado.CallbackRequestManager =
+// Prado.CallbackRequestManager =
// {
// requestQueue : [],
@@ -795,11 +846,11 @@ jQuery(function()
// this.Enabled = true;
// this.id = id;
// this.randomId = this.randomString();
-
+
// if(typeof(id)=="string"){
// Prado.CallbackRequestManager.requests[id+"__"+this.randomId] = this;
// }
-
+
// Prado.CallbackRequestManager.requests[id+"__"+this.randomId].ActiveControl = this.options;
// },
@@ -864,7 +915,7 @@ if (typeof(Prado.AssetManagerClass)=="undefined") {
discoverLoadedAssets: function() {
// wait until document has finished loading to avoid javascript errors
- if (!document.body) return;
+ if (!document.body) return;
var assets = this.findAssetUrlsInMarkup();
for(var i=0;i<assets.length;i++)
@@ -873,11 +924,11 @@ if (typeof(Prado.AssetManagerClass)=="undefined") {
/**
* Extend url to a fully qualified url.
- * @param string url
+ * @param string url
*/
makeFullUrl: function(url) {
- // this is not intended to be a fully blown url "canonicalizator",
+ // this is not intended to be a fully blown url "canonicalizator",
// just to handle the most common and basic asset paths used by Prado
if (!this.baseUri) this.baseUri = window.location;
@@ -906,7 +957,7 @@ if (typeof(Prado.AssetManagerClass)=="undefined") {
/**
* Mark asset as being already loaded
- * @param string url of the asset
+ * @param string url of the asset
*/
markAssetAsLoaded: function(url) {
url = this.makeFullUrl(url);
@@ -987,7 +1038,7 @@ Prado.ScriptManagerClass = jQuery.klass(Prado.AssetManagerClass, {
var urls = new Array();
var scripts = document.getElementsByTagName('script');
for(var i=0;i<scripts.length;i++)
- {
+ {
var e = scripts[i]; var src = e.src;
if (src!="")
urls.push(src);
@@ -1011,7 +1062,7 @@ Prado.StyleSheetManagerClass = jQuery.klass(Prado.AssetManagerClass, {
var urls = new Array();
var scripts = document.getElementsByTagName('link');
for(var i=0;i<scripts.length;i++)
- {
+ {
var e = scripts[i]; var href = e.href;
if ((e.rel=="stylesheet") && (href.length>0))
urls.push(href);
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/autocomplete.js b/framework/Web/Javascripts/source/prado/activecontrols/autocomplete.js
new file mode 100644
index 00000000..180ceecf
--- /dev/null
+++ b/framework/Web/Javascripts/source/prado/activecontrols/autocomplete.js
@@ -0,0 +1,84 @@
+jQuery.noConflict();
+
+/**
+ * TAutoComplete control.
+ */
+Prado.WebUI.TAutoComplete = Class.create(Autocompleter.Base, Prado.WebUI.TActiveTextBox.prototype);
+Prado.WebUI.TAutoComplete = Class.create(Prado.WebUI.TAutoComplete,
+{
+ initialize : function(options)
+ {
+ this.options = options;
+ this.observers = new Array();
+ this.hasResults = false;
+ this.baseInitialize(options.ID, options.ResultPanel, options);
+ Object.extend(this.options,
+ {
+ onSuccess : this.onComplete.bind(this)
+ });
+
+ if(options.AutoPostBack)
+ this.onInit(options);
+
+ Prado.Registry[options.ID] = this;
+ },
+
+ doCallback : function(event, options)
+ {
+ if(!this.active)
+ {
+ var request = new Prado.CallbackRequest(this.options.EventTarget, options);
+ request.dispatch();
+ Event.stop(event);
+ }
+ },
+
+ //Overrides parent implementation, fires onchange event.
+ onClick: function(event)
+ {
+ var element = Event.findElement(event, 'LI');
+ this.index = element.autocompleteIndex;
+ this.selectEntry();
+ this.hide();
+ Event.fire(this.element, "change");
+ },
+
+ getUpdatedChoices : function()
+ {
+ var options = new Array(this.getToken(),"__TAutoComplete_onSuggest__");
+ Prado.Callback(this.options.EventTarget, options, null, this.options);
+ },
+
+ /**
+ * Overrides parent implements, don't update if no results.
+ */
+ selectEntry: function()
+ {
+ if(this.hasResults)
+ {
+ 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 = request.extractContent(boundary);
+ if(typeof(result) == "string")
+ {
+ if(result.length > 0)
+ {
+ this.hasResults = true;
+ this.updateChoices(result);
+ }
+ else
+ {
+ this.active = false;
+ this.hasResults = false;
+ this.hide();
+ }
+ }
+ }
+}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
index 7fa9e791..9e583c1f 100755
--- a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js
@@ -1,20 +1,22 @@
+jQuery.noConflict();
+
/**
* DropContainer control
*/
-
-Prado.WebUI.DropContainer = jQuery.klass(Prado.WebUI.CallbackControl,
+
+Prado.WebUI.DropContainer = Class.create(Prado.WebUI.CallbackControl,
{
onInit: function(options)
{
this.options = options;
- Object.extend (this.options,
+ Object.extend (this.options,
{
onDrop: this.onDrop.bind(this)
});
-
+
Droppables.add (options.ID, this.options);
},
-
+
onDrop: function(dragElement, dropElement, event)
{
var elementId=dragElement.id.replace(/clone_/,"");
diff --git a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
index d2a17c8d..66862584 100644
--- a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
+++ b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js
@@ -8,13 +8,13 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
this.editField = null;
this.readOnly = options.ReadOnly;
- this.options = Object.extend(
+ this.options = jQuery.extend(
{
LoadTextFromSource : false,
TextMode : 'SingleLine'
}, options || {});
- this.element = $(this.options.ID);
+ this.element = jQuery('#'+this.options.ID).get(0);
Prado.WebUI.TInPlaceTextBox.register(this);
this.createEditorInput();
this.initializeListeners();
@@ -25,10 +25,10 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
*/
initializeListeners : function()
{
- this.onclickListener = this.enterEditMode.bindAsEventListener(this);
+ this.onclickListener = this.enterEditMode.bind(this);
this.observe(this.element, 'click', this.onclickListener);
if (this.options.ExternalControl)
- this.observe($(this.options.ExternalControl), 'click', this.onclickListener);
+ this.observe(jQuery('#'+this.options.ExternalControl).get(0), 'click', this.onclickListener);
},
/**
@@ -45,9 +45,9 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
this.editField.disabled = false;
if(this.options.LoadTextOnEdit)
this.loadExternalText();
- Prado.Element.focus(this.editField);
+ jQuery(this.editField).focus();
if (evt)
- Event.stop(evt);
+ evt.preventDefault();
return false;
},
@@ -62,14 +62,14 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
showTextBox : function()
{
- Element.hide(this.element);
- Element.show(this.editField);
+ jQuery(this.element).hide();
+ jQuery(this.editField).show();
},
showLabel : function()
{
- Element.show(this.element);
- Element.hide(this.editField);
+ jQuery(this.element).show();
+ jQuery(this.editField).hide();
},
/**
@@ -91,8 +91,8 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
var request = new Prado.CallbackRequest(this.options.EventTarget, this.options);
request.setCausesValidation(false);
request.setCallbackParameter(options);
- request.ActiveControl.onSuccess = this.onloadExternalTextSuccess.bind(this);
- request.ActiveControl.onFailure = this.onloadExternalTextFailure.bind(this);
+ request.options.onSuccess = this.onloadExternalTextSuccess.bind(this);
+ request.options.onFailure = this.onloadExternalTextFailure.bind(this);
request.dispatch();
},
@@ -103,41 +103,44 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
{
var cssClass= this.element.className || '';
var inputName = this.options.EventTarget;
- var options = {'className' : cssClass, name : inputName, id : this.options.TextBoxID};
+
if(this.options.TextMode == 'SingleLine')
{
+ this.editField = document.createElement("input");
if(this.options.MaxLength > 0)
- options['maxlength'] = this.options.MaxLength;
+ this.editField.maxlength = this.options.MaxLength;
if(this.options.Columns > 0)
- options['size'] = this.options.Columns;
- this.editField = INPUT(options);
+ this.editField.size = this.options.Columns;
}
else
{
+ this.editField = document.createElement("textarea");
if(this.options.Rows > 0)
- options['rows'] = this.options.Rows;
+ this.editField.rows = this.options.Rows;
if(this.options.Columns > 0)
- options['cols'] = this.options.Columns;
+ this.editField.cols = this.options.Columns;
if(this.options.Wrap)
- options['wrap'] = 'off';
- this.editField = TEXTAREA(options);
+ this.editField.wrap = 'off';
}
+ this.editField.className = cssClass;
+ this.editField.name = inputName;
+ this.editField.id = this.options.TextBoxID;
this.editField.style.display="none";
- this.element.parentNode.insertBefore(this.editField,this.element)
-
+ this.element.parentNode.insertBefore(this.editField, this.element)
+
//handle return key within single line textbox
if(this.options.TextMode == 'SingleLine')
{
this.observe(this.editField, "keydown", 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)
{
- Event.fireEvent(target, "blur");
- Event.stop(e);
+ jQuery(target).trigger("blur");
+ e.preventDefault();
}
}
});
@@ -183,15 +186,16 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
onKeyPressed : function(e)
{
- if (Event.keyCode(e) == Event.KEY_ESC)
+ if (e.keyCode == 27) //KEY_ESC
{
this.editField.value = this.getText();
this.isEditing = false;
if(this.options.AutoHide)
this.showLabel();
}
- else if (Event.keyCode(e) == Event.KEY_RETURN && this.options.TextMode != 'MultiLine')
- Event.stop(e);
+ else if (e.keyCode == 13 // KEY_RETURN
+ && this.options.TextMode != 'MultiLine')
+ e.preventDefault()
},
/**
@@ -202,8 +206,8 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
{
var 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);
+ request.options.onSuccess = this.onTextChangedSuccess.bind(this);
+ request.options.onFailure = this.onTextChangedFailure.bind(this);
if(request.dispatch())
{
this.isSaving = true;
@@ -224,7 +228,7 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
this.isEditing = true;
this.editField.disabled = false;
this.editField.value = this.getText();
- Prado.Element.focus(this.editField);
+ jQuery(this.editField).focus();
if(typeof(this.options.onSuccess)=="function")
this.options.onSuccess(sender,parameter);
},
@@ -266,7 +270,7 @@ Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,
});
-Object.extend(Prado.WebUI.TInPlaceTextBox,
+jQuery.extend(Prado.WebUI.TInPlaceTextBox,
{
//class methods
diff --git a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
index 29c9e3d4..15998278 100755
--- a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
+++ b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js
@@ -4,21 +4,21 @@ Prado.WebUI.TActiveFileUpload = jQuery.klass(Prado.WebUI.Control,
{
this.options = options || {};
Prado.WebUI.TActiveFileUpload.register(this);
-
- this.input = $('#'+options.inputID).get(0);
- this.flag = $('#'+options.flagID).get(0);
- this.form = $('#'+options.formID).get(0);
-
- this.indicator = $('#'+options.indicatorID).get(0);
- this.complete = $('#'+options.completeID).get(0);
- this.error = $('#'+options.errorID).get(0);
-
+
+ this.input = jQuery('#'+options.inputID).get(0);
+ this.flag = jQuery('#'+options.flagID).get(0);
+ this.form = jQuery('#'+options.formID).get(0);
+
+ this.indicator = jQuery('#'+options.indicatorID).get(0);
+ this.complete = jQuery('#'+options.completeID).get(0);
+ this.error = jQuery('#'+options.errorID).get(0);
+
// set up events
if (options.autoPostBack){
this.observe(this.input,"change",this.fileChanged.bind(this));
}
},
-
+
fileChanged : function(){
// show the upload indicator, and hide the complete and error indicators (if they areSn't already).
this.flag.value = '1';
@@ -43,7 +43,7 @@ Prado.WebUI.TActiveFileUpload = jQuery.klass(Prado.WebUI.Control,
this.form.method = this.oldFormMethod;
this.form.enctype = this.oldFormEnctype;
},
-
+
finishUpload : function(options){
if (this.options.targetID == options.targetID)
@@ -82,7 +82,7 @@ Prado.WebUI.TActiveFileUpload = jQuery.klass(Prado.WebUI.Control,
});
-jQuery.extend(Prado.WebUI.TActiveFileUpload,
+jQuery.extend(Prado.WebUI.TActiveFileUpload,
{
//class methods
@@ -92,12 +92,12 @@ jQuery.extend(Prado.WebUI.TActiveFileUpload,
{
Prado.WebUI.TActiveFileUpload.controls[control.options.ID] = control;
},
-
+
onFileUpload : function(options)
{
Prado.WebUI.TActiveFileUpload.controls[options.clientID].finishUpload(options);
},
-
+
fileChanged : function(controlID){
Prado.WebUI.TActiveFileUpload.controls[controlID].fileChanged();
}
diff --git a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
index 54680922..9915eb81 100644
--- a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
+++ b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js
@@ -93,7 +93,7 @@ Rico.Color.prototype = {
toColorPart: function(number) {
number = (number > 255 ? 255 : (number < 0 ? 0 : number));
var hex = number.toString(16);
- return hex.length < 2 ? "0" + hex : hex;
+ return hex.length < 2 ? "0" + hex : hex;
}
};
@@ -265,13 +265,13 @@ Prado.WebUI.TColorPicker = jQuery.klass(Prado.WebUI.Control, {
options = jQuery.extend(basics, options);
this.options = options;
- this.input = $('#'+options['ID']).get(0);
- this.button = $('#'+options['ID']+'_button').get(0);
+ this.input = jQuery('#'+options['ID']).get(0);
+ this.button = jQuery('#'+options['ID']+'_button').get(0);
this._buttonOnClick = jQuery.proxy(this.buttonOnClick, this);
if(options['ShowColorPicker'])
this.observe(this.button, "click", this._buttonOnClick);
this.observe(this.input, "change", jQuery.proxy(this.updatePicker, this));
-
+
Prado.Registry[options.ID] = this;
},
diff --git a/framework/Web/Javascripts/source/prado/controls/accordion.js b/framework/Web/Javascripts/source/prado/controls/accordion.js
index 28075cd6..084aef7f 100644
--- a/framework/Web/Javascripts/source/prado/controls/accordion.js
+++ b/framework/Web/Javascripts/source/prado/controls/accordion.js
@@ -1,8 +1,9 @@
-/* Simple Accordion Script
+/* Simple Accordion Script
* Requires Prototype and Script.aculo.us Libraries
* By: Brian Crescimanno <brian.crescimanno@gmail.com>
* http://briancrescimanno.com
* Adapted to Prado & minor improvements: Gabor Berczi <gabor.berczi@devworx.hu>
+ * jQuery port by Bas Fabio <ctrlaltca@gmail.com>
* This work is licensed under the Creative Commons Attribution-Share Alike 3.0
* http://creativecommons.org/licenses/by-sa/3.0/us/
*/
@@ -11,9 +12,9 @@ Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,
{
onInit : function(options)
{
- this.accordion = $(options.ID);
+ this.accordion = jQuery('#'+options.ID).get(0);
this.options = options;
- this.hiddenField = $(options.ID+'_1');
+ this.hiddenField = jQuery('#'+options.ID+'_1').get(0);
if (this.options.maxHeight)
{
@@ -29,15 +30,15 @@ Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,
var i = 0;
for(var view in this.options.Views)
{
- var header = $(view+'_0');
+ var header = jQuery('#'+view+'_0').get(0);
if(header)
{
this.observe(header, "click", jQuery.proxy(this.elementClicked,this,view));
if(this.hiddenField.value == i)
{
this.currentView = view;
- if($(this.currentView).getHeight() != this.maxHeight)
- $(this.currentView).setStyle({height: this.maxHeight+"px"});
+ if(jQuery('#'+this.currentView).height() != this.maxHeight)
+ jQuery('#'+this.currentView).css({height: this.maxHeight+"px"});
}
}
i++;
@@ -48,38 +49,20 @@ Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,
{
for(var viewID in this.options.Views)
{
- var view = $(viewID);
- if(view.getHeight() > this.maxHeight)
- this.maxHeight = view.getHeight();
+ var view = jQuery('#'+viewID);
+ if(view.height() > this.maxHeight)
+ this.maxHeight = view.height();
}
},
- elementClicked : function(event,viewID)
- {
- // dummy effect to force processing of click into the event queue
- // is not actually supposed to change the appearance of the accordion
- var obj = this;
- new Effect.Opacity(
- this.element,
- {
- from: 1.0, to: 1.0, duration: 0.0,
- queue: {
- position: 'end',
- scope: 'accordion'
- },
- afterFinish: function() { obj.processElementClick(event, viewID); }
- }
- );
- },
-
- processElementClick : function(event,viewID)
+ elementClicked : function(viewID, event)
{
var i = 0;
for(var index in this.options.Views)
{
- if ($(index))
+ if (jQuery('#'+index).get(0))
{
- var header = $(index+'_0');
+ var header = jQuery('#'+index+'_0').get(0);
if(index == viewID)
{
this.oldView = this.currentView;
@@ -96,75 +79,31 @@ Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,
{
this.animate();
} else {
- $(this.currentView).setStyle({ height: this.maxHeight+"px" });
- $(this.currentView).show();
- $(this.oldView).hide();
-
- var oldHeader = $(this.oldView+'_0');
- var currentHeader = $(this.currentView+'_0');
- oldHeader.className=this.options.HeaderCssClass;
- currentHeader.className=this.options.ActiveHeaderCssClass;
+ jQuery('#'+this.currentView).css({ height: this.maxHeight+"px" });
+ jQuery('#'+this.currentView).show();
+ jQuery('#'+this.oldView).hide();
+
+ jQuery('#'+this.oldView+'_0').removeClass().addClass(this.options.HeaderCssClass);
+ jQuery('#'+this.currentView+'_0').removeClass().addClass(this.options.ActiveHeaderCssClass);
}
}
},
animate: function() {
- var effects = new Array();
- var options = {
- sync: true,
- queue: {
- position: 'end',
- scope: 'accordion'
- },
- scaleFrom: 0,
- scaleContent: false,
- transition: Effect.Transitions.sinoidal,
- scaleMode: {
- originalHeight: this.maxHeight,
- originalWidth: this.accordion.getWidth()
- },
- scaleX: false,
- scaleY: true
- };
-
- effects.push(new Effect.Scale(this.currentView, 100, options));
-
- options = {
- sync: true,
- queue: {
- position: 'end',
- scope: 'accordion'
- },
- scaleContent: false,
- transition: Effect.Transitions.sinoidal,
- scaleX: false,
- scaleY: true
- };
-
- effects.push(new Effect.Scale(this.oldView, 0, options));
-
- var oldHeader = $(this.oldView+'_0');
- var currentHeader = $(this.currentView+'_0');
-
- new Effect.Parallel(effects, {
- duration: this.options.Duration,
- fps: 35,
- queue: {
- position: 'end',
- scope: 'accordion'
- },
- beforeStart: function() {
- $(this.currentView).setStyle({ height: "0px" });
- $(this.currentView).show();
-
- oldHeader.className=this.options.HeaderCssClass;
- currentHeader.className=this.options.ActiveHeaderCssClass;
- }.bind(this),
- afterFinish: function() {
- $(this.oldView).hide();
- $(this.currentView).setStyle({ height: this.maxHeight+"px" });
- }.bind(this)
- });
+ jQuery('#'+this.oldView+'_0').removeClass().addClass(this.options.HeaderCssClass);
+ jQuery('#'+this.currentView+'_0').removeClass().addClass(this.options.ActiveHeaderCssClass);
+
+ jQuery('#'+this.oldView).animate(
+ {height: 0},
+ this.options.Duration,
+ function() {
+ jQuery(this).hide()
+ }
+ );
+ jQuery('#'+this.currentView).css({height: 0}).show().animate(
+ {height: this.maxHeight+'px'},
+ this.options.Duration
+ );
}
});
diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js
index 0f0b01f4..00a39e66 100644
--- a/framework/Web/Javascripts/source/prado/controls/controls.js
+++ b/framework/Web/Javascripts/source/prado/controls/controls.js
@@ -60,11 +60,11 @@ Prado.WebUI.Control = jQuery.klass({
// from the old wrapper to this new one (which then could live on, while the old
// one could get destroyed), or to copy the new, changed options to the old wrapper,
// (which could then left intact to keep working, while this new wrapper could be
- // disposed of by exiting its initialization without installing any handlers or
+ // disposed of by exiting its initialization without installing any handlers or
// leaving any references to it)
//
- // for now this method is simply deinitializing and deregistering the old wrapper,
+ // for now this method is simply deinitializing and deregistering the old wrapper,
// and then registering the new wrapper for the control id
if (oldwrapper.deinitialize)
@@ -74,7 +74,7 @@ Prado.WebUI.Control = jQuery.klass({
},
/**
- * Registers an event observer which will be automatically disposed of when the wrapper
+ * Registers an event observer which will be automatically disposed of when the wrapper
* is deregistered
* @param element DOM element reference or id to attach the event handler to
* @param string event name to observe
@@ -99,7 +99,7 @@ Prado.WebUI.Control = jQuery.klass({
var e = { _element: element, _eventName: eventName, _handler: handler };
var idx = -1;
for(var i=0;i<this.observers.length;i++)
- {
+ {
var o = this.observers[i];
if ((o._element===element) && (o._eventName===eventName) && (o._handler===handler))
{
@@ -109,7 +109,7 @@ Prado.WebUI.Control = jQuery.klass({
}
return idx;
},
-
+
/**
* Degisters an event observer from the list of automatically disposed handlers
@@ -133,11 +133,11 @@ Prado.WebUI.Control = jQuery.klass({
* wrapper hasn't been destroyed in the meantime
* @param code function or code snippet to execute
* @param int number of milliseconds to wait before executing
- * @return int unique ID that can be used to cancel the scheduled execution
+ * @return int unique ID that can be used to cancel the scheduled execution
*/
setTimeout: function(func, delay)
{
- if (!jQuery.isFunction(func))
+ if (!jQuery.isFunction(func))
{
var expr = func;
func = function() { return eval(expr); }
@@ -209,11 +209,11 @@ Prado.WebUI.Control = jQuery.klass({
this.onDone();
// automatically stop all intervals
- while (this.intervals.length>0)
+ while (this.intervals.length>0)
window.clearInterval(this.intervals.pop());
// automatically deregister all installed observers
- while (this.observers.length>0)
+ while (this.observers.length>0)
{
var e = this.observers.pop();
jQuery(e._element).unbind(e._eventName, e._handler);
@@ -235,7 +235,7 @@ Prado.WebUI.PostBackControl = jQuery.klass(Prado.WebUI.Control, {
{
this._elementOnClick = null;
- if (!this.element)
+ if (!this.element)
debugger; // element not found
else
{
@@ -284,17 +284,17 @@ 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 = jQuery.klass(Prado.WebUI.PostBackControl,
+Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
/**
* Override parent onPostBack function, tried to add hidden forms
* inputs to capture x,y clicked point.
*/
- onPostBack : function(event, options)
+ onPostBack : function(options, event)
{
- this.addXYInput(event,options);
- new Prado.PostBack(event, options);
- this.removeXYInput(event,options);
+ this.addXYInput(options, event);
+ new Prado.PostBack(options, event);
+ this.removeXYInput(options, event);
},
/**
@@ -302,7 +302,7 @@ Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,
* @param event DOM click event.
* @param array image button options.
*/
- addXYInput : function(event,options)
+ addXYInput : function(options, event)
{
var imagePos = jQuery(this.element).offset();
var clickedPos = [event.clientX, event.clientY];
@@ -335,7 +335,7 @@ Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,
* @param event DOM click event.
* @param array image button options.
*/
- removeXYInput : function(event,options)
+ removeXYInput : function(options, event)
{
var id = this.element.id;
jQuery('#'+id+'_x').remove();
@@ -351,7 +351,7 @@ Prado.WebUI.TRadioButton = jQuery.klass(Prado.WebUI.PostBackControl,
{
initialize : function($super, options)
{
- this.element = $("#" + options['ID']).get(0);
+ this.element = jQuery("#" + options['ID']).get(0);
if(this.element)
{
if(!this.element.checked)
@@ -386,14 +386,14 @@ Prado.WebUI.TTextBox = jQuery.klass(Prado.WebUI.PostBackControl,
{
if(this.options['AutoPostBack']==true)
{
- $(target).trigger( "change" );
+ jQuery(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'])))
+ if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], jQuery(this.options['ID'])))
return e.stopPropagation();
}
}
@@ -432,10 +432,10 @@ Prado.WebUI.DefaultButton = jQuery.klass(Prado.WebUI.Control,
var isTextArea = ev.target.tagName.toLowerCase() == "textarea";
var isHyperLink = ev.target.tagName.toLowerCase() == "a" && ev.target.hasAttribute("href");
var isValidButton = ev.target.tagName.toLowerCase() == "input" && ev.target.type.toLowerCase() == "submit";
-
+
if(enterPressed && !isTextArea && !isValidButton && !isHyperLink)
{
- var defaultButton = $('#'+this.options['Target']);
+ var defaultButton = jQuery('#'+this.options['Target']);
if(defaultButton)
{
this.triggered = true;
@@ -496,16 +496,15 @@ jQuery.klass(Prado.WebUI.TTextHighlighter,
Prado.WebUI.TCheckBoxList = jQuery.klass(Prado.WebUI.Control,
{
- constructor : function(options)
+ onInit : function(options)
{
- Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var checkBoxOptions = jQuery.extend(
+ var checkBoxOptions = jQuery.extend({}, options,
{
- ID : options.ListID+"_c"+i,
+ ID : options.ID+"_c"+i,
EventTarget : options.ListName+"$c"+i
- }, options);
+ });
new Prado.WebUI.TCheckBox(checkBoxOptions);
}
}
@@ -513,16 +512,15 @@ Prado.WebUI.TCheckBoxList = jQuery.klass(Prado.WebUI.Control,
Prado.WebUI.TRadioButtonList = jQuery.klass(Prado.WebUI.Control,
{
- constructor : function(options)
+ onInit : function(options)
{
- Prado.Registry.set(options.ListID, this);
for(var i = 0; i<options.ItemCount; i++)
{
- var radioButtonOptions = jQuery.extend(
+ var radioButtonOptions = jQuery.extend({}, options,
{
- ID : options.ListID+"_c"+i,
+ ID : options.ID+"_c"+i,
EventTarget : options.ListName+"$c"+i
- }, options);
+ });
new Prado.WebUI.TRadioButton(radioButtonOptions);
}
}
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea.js b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
index 819e853c..7bf820ab 100644
--- a/framework/Web/Javascripts/source/prado/controls/htmlarea.js
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea.js
@@ -1,6 +1,6 @@
/*
- *
+ *
* HtmlArea (tinyMCE) wrapper
*
* @author Gabor Berczi <gabor.berczi@devworx.hu>
@@ -24,7 +24,7 @@ Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
this.registerInstance();
},
-
+
registerInstance: function()
@@ -38,7 +38,7 @@ Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
{
// we're in a callback
// try it again in some time, as tinyMCE is most likely still loading
- this.setTimeout(this.registerInstance.bind(this), 50);
+ this.setTimeout(this.registerInstance.bind(this), 50);
return;
}
throw "TinyMCE libraries must be loaded first";
@@ -62,7 +62,7 @@ Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
}
}
},
-
+
compressedScriptsLoaded: function()
{
Prado.WebUI.THtmlArea.tinyMCELoadState = 255;
@@ -119,14 +119,14 @@ Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
if (prev)
try
{
- tinyMCE.execCommand('mceFocus', false, this.ID);
+ tinyMCE.execCommand('mceFocus', false, this.ID);
// when removed, tinyMCE restores its content to the textarea. If the textarea content has been
// updated in this same callback, it will be overwritten with the old content. Workaround this.
- var curtext = $('#'+this.ID).get(0).value;
+ var curtext = jQuery('#'+this.ID).get(0).value;
tinyMCE.execCommand('mceRemoveControl', false, this.ID);
- $('#'+this.ID).get(0).value = curtext;
+ jQuery('#'+this.ID).get(0).value = curtext;
}
- catch (e)
+ catch (e)
{
// suppress error here in case editor can't be properly removed
// (happens when <textarea> has been removed from DOM tree without deinitialzing the tinyMCE editor first)
@@ -139,7 +139,7 @@ Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,
}
});
-jQuery.extend(Prado.WebUI.THtmlArea,
+jQuery.extend(Prado.WebUI.THtmlArea,
{
pendingRegistrations : [],
tinyMCELoadState : 0
diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
index 418a6e19..64a78176 100644
--- a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
+++ b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js
@@ -1,6 +1,6 @@
/*
- *
+ *
* HtmlArea (tinyMCE 4) wrapper
*
* @author Gabor Berczi <gabor.berczi@devworx.hu>
@@ -39,14 +39,14 @@ Prado.WebUI.THtmlArea4 = jQuery.klass(Prado.WebUI.Control,
if (prev)
try
{
- tinyMCE.execCommand('mceFocus', false, this.ID);
+ tinyMCE.execCommand('mceFocus', false, this.ID);
// when removed, tinyMCE restores its content to the textarea. If the textarea content has been
// updated in this same callback, it will be overwritten with the old content. Workaround this.
- // var curtext = $(this.ID).html();
+ // var curtext = jQuery(this.ID).html();
tinyMCE.execCommand('mceRemoveControl', false, this.ID);
- // $(this.ID).html(curtext);
+ // jQuery(this.ID).html(curtext);
}
- catch (e)
+ catch (e)
{
// suppress error here in case editor can't be properly removed
// (happens when <textarea> has been removed from DOM tree without deinitialzing the tinyMCE editor first)
diff --git a/framework/Web/Javascripts/source/prado/controls/slider.js b/framework/Web/Javascripts/source/prado/controls/slider.js
index 28d7d4ac..e18fde84 100644
--- a/framework/Web/Javascripts/source/prado/controls/slider.js
+++ b/framework/Web/Javascripts/source/prado/controls/slider.js
@@ -9,33 +9,33 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
{
var slider = this;
this.options=options || {};
- this.track = $('#'+options.ID+'_track').get(0);
- this.handle =$('#'+options.ID+'_handle').get(0);
- this.progress = $('#'+options.ID+'_progress').get(0);
+ this.track = jQuery('#'+options.ID+'_track').get(0);
+ this.handle =jQuery('#'+options.ID+'_handle').get(0);
+ this.progress = jQuery('#'+options.ID+'_progress').get(0);
this.axis = this.options.axis || 'horizontal';
this.range = this.options.range || [0, 1];
this.value = 0;
this.maximum = this.options.maximum || this.range[1];
this.minimum = this.options.minimum || this.range[0];
- this.hiddenField=$('#'+this.options.ID+'_1').get(0);
-
+ this.hiddenField=jQuery('#'+this.options.ID+'_1').get(0);
+
// Will be used to align the handle onto the track, if necessary
this.alignX = parseInt(this.options.alignX || - this.track.offsetLeft);
this.alignY = parseInt(this.options.alignY || - this.track.offsetTop);
-
+
this.trackLength = this.maximumOffset() - this.minimumOffset();
- this.handleLength = this.isVertical() ?
- (this.handle.offsetHeight != 0 ?
- this.handle.offsetHeight : this.handles.style.height.replace(/px$/,"")) :
- (this.handle.offsetWidth != 0 ? this.handle.offsetWidth :
+ this.handleLength = this.isVertical() ?
+ (this.handle.offsetHeight != 0 ?
+ this.handle.offsetHeight : this.handles.style.height.replace(/px$/,"")) :
+ (this.handle.offsetWidth != 0 ? this.handle.offsetWidth :
this.handle.style.width.replace(/px$/,""));
-
+
this.active = false;
this.dragging = false;
this.disabled = false;
if(this.options.disabled) this.setDisabled();
-
+
// Allowed values array
this.allowedValues = this.options.values ? this.options.values.sort() : false;
if(this.allowedValues) {
@@ -50,15 +50,15 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
// Initialize handle
this.setValue(parseFloat(slider.options.sliderValue));
this.observe (this.handle, "mousedown", this.eventMouseDown);
-
+
this.observe (this.track, "mousedown", this.eventMouseDown);
if (this.progress) this.observe (this.progress, "mousedown", this.eventMouseDown);
-
+
this.observe (document, "mouseup", this.eventMouseUp);
this.observe (document, "mousemove", this.eventMouseMove);
-
+
this.initialized=true;
-
+
if(this.options['AutoPostBack']==true)
this.observe(this.hiddenField, "change", jQuery.proxy(this.doPostback,this,options));
},
@@ -67,20 +67,20 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
{
new Prado.PostBack(options, event);
},
-
+
setDisabled: function(){
this.disabled = true;
},
setEnabled: function(){
this.disabled = false;
- },
+ },
getNearestValue: function(value){
if(this.allowedValues){
var max = Math.max.apply( Math, this.allowedValues );
var min = Math.min.apply( Math, this.allowedValues );
if(value >= max) return(max);
if(value <= min) return(min);
-
+
var offset = Math.abs(this.allowedValues[0] - value);
var newValue = this.allowedValues[0];
jQuery.each(this.allowedValues, function(idx, v) {
@@ -88,7 +88,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
if(currentOffset <= offset){
newValue = v;
offset = currentOffset;
- }
+ }
});
return newValue;
}
@@ -96,7 +96,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
if(value < this.range[0]) return this.range[0];
return value;
},
-
+
setValue: function(sliderValue){
if(!this.active) {
this.updateStyles();
@@ -106,47 +106,47 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
this.handle.style[this.isVertical() ? 'top' : 'left'] = pixelValue;
if (this.progress)
this.progress.style[this.isVertical() ? 'height' : 'width'] = pixelValue;
-
+
//this.drawSpans();
if(!this.dragging || !this.event) this.updateFinished();
},
-
+
setValueBy: function(delta) {
this.setValue(this.value + delta);
},
-
+
translateToPx: function(value) {
return Math.round(
((this.trackLength-this.handleLength)/(this.range[1]-this.range[0])) * (value - this.range[0])) + "px";
},
-
+
translateToValue: function(offset) {
return ((offset/(this.trackLength-this.handleLength) * (this.range[1]-this.range[0])) + this.range[0]);
},
-
+
minimumOffset: function(){
return(this.isVertical() ? this.alignY : this.alignX);
},
-
+
maximumOffset: function(){
- return(this.isVertical() ?
+ return(this.isVertical() ?
(this.track.offsetHeight != 0 ? this.track.offsetHeight :
- this.track.style.height.replace(/px$/,"")) - this.alignY :
- (this.track.offsetWidth != 0 ? this.track.offsetWidth :
+ this.track.style.height.replace(/px$/,"")) - this.alignY :
+ (this.track.offsetWidth != 0 ? this.track.offsetWidth :
this.track.style.width.replace(/px$/,"")) - this.alignX);
},
-
+
isVertical: function(){
return (this.axis == 'vertical');
},
-
+
updateStyles: function() {
- if (this.active)
+ if (this.active)
jQuery(this.handle).addClass('selected');
else
jQuery(this.handle).removeClass('selected');
},
-
+
startDrag: function(event) {
if (event.which === 1) {
// left click
@@ -158,7 +158,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
if(track==this.track) {
var offsets = jQuery(this.track).offset();
this.event = event;
- this.setValue(this.translateToValue(
+ this.setValue(this.translateToValue(
(this.isVertical() ? pointer[1]-offsets['top'] : pointer[0]-offsets['left'])-(this.handleLength/2)
));
var offsets = jQuery(this.handle).offset();
@@ -174,7 +174,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
event.stopPropagation();
}
},
-
+
update: function(event) {
if(this.active) {
if(!this.dragging) this.dragging = true;
@@ -182,7 +182,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
event.stopPropagation();
}
},
-
+
draw: function(event) {
var pointer = [event.pageX, event.pageY];
var offsets = jQuery(this.track).offset();
@@ -193,7 +193,7 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
if(this.initialized && this.options.onSlide)
this.options.onSlide(this.value, this);
},
-
+
endDrag: function(event) {
if(this.active && this.dragging) {
this.finishDrag(event, true);
@@ -201,18 +201,18 @@ Prado.WebUI.TSlider = jQuery.klass(Prado.WebUI.PostBackControl,
}
this.active = false;
this.dragging = false;
- },
-
+ },
+
finishDrag: function(event, success) {
this.active = false;
this.dragging = false;
this.updateFinished();
},
-
+
updateFinished: function() {
this.hiddenField.value=this.value;
this.updateStyles();
- if(this.initialized && this.options.onChange)
+ if(this.initialized && this.options.onChange)
this.options.onChange(this.value, this);
this.event = null;
if (this.options['AutoPostBack']==true)
diff --git a/framework/Web/Javascripts/source/prado/controls/tabpanel.js b/framework/Web/Javascripts/source/prado/controls/tabpanel.js
index 78f6478c..866e45fb 100644
--- a/framework/Web/Javascripts/source/prado/controls/tabpanel.js
+++ b/framework/Web/Javascripts/source/prado/controls/tabpanel.js
@@ -4,7 +4,7 @@ Prado.WebUI.TTabPanel = jQuery.klass(Prado.WebUI.Control,
{
this.views = options.Views;
this.viewsvis = options.ViewsVis;
- this.hiddenField = $("#"+options.ID+'_1').get(0);
+ this.hiddenField = jQuery("#"+options.ID+'_1').get(0);
this.activeCssClass = options.ActiveCssClass;
this.normalCssClass = options.NormalCssClass;
var length = options.Views.length;
@@ -18,10 +18,10 @@ Prado.WebUI.TTabPanel = jQuery.klass(Prado.WebUI.Control,
if (options.AutoSwitch)
this.observe(element, "mouseenter", jQuery.proxy(this.elementClicked,this,item));
}
-
+
if(element)
{
- var view = $("#"+options.Views[i]).get(0);
+ var view = jQuery("#"+options.Views[i]).get(0);
if (view)
if(this.hiddenField.value == i)
{
diff --git a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
index bca801b9..012f2ef8 100644
--- a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
+++ b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js
@@ -22,18 +22,18 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
onInit : function(options)
{
this.options = options || [];
- this.control = $('#'+options.ID).get(0);
+ this.control = jQuery('#'+options.ID).get(0);
this.dateSlot = new Array(42);
this.weekSlot = new Array(6);
this.minimalDaysInFirstWeek = 4;
this.positionMode = 'Bottom';
-
+
Prado.Registry[options.ID] = this;
//which element to trigger to show the calendar
if(this.options.Trigger)
{
- this.trigger = $('#'+this.options.Trigger).get(0);
+ this.trigger = jQuery('#'+this.options.Trigger).get(0);
var triggerEvent = this.options.TriggerEvent || "click";
}
else
@@ -41,7 +41,7 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
this.trigger = this.control;
var triggerEvent = this.options.TriggerEvent || "focus";
}
-
+
// Popup position
if(this.options.PositionMode == 'Top')
{
@@ -51,16 +51,16 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
jQuery.extend(this,options);
// generate default date _after_ extending options
this.selectedDate = this.newDate();
-
+
this.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")
{
this.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));
- }
+ }
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);
@@ -69,10 +69,10 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
this.observe (day, "change", jQuery.proxy(this.onDateChanged,this));
this.observe (month, "change", jQuery.proxy(this.onDateChanged,this));
this.observe (year, "change", jQuery.proxy(this.onDateChanged,this));
-
+
}
-
-
+
+
}
},
@@ -407,7 +407,7 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
if (this.options.InputMode == "TextBox")
{
date=this.control.value;
- }
+ }
else
{
var day = Prado.WebUI.TDatePicker.getDayListControl(this.control).selectedIndex+1;
@@ -438,9 +438,9 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
else
jQuery(element).trigger("change");
},
-
+
onChange : function(ref, date, capevents)
- {
+ {
if(this.options.InputMode == "TextBox")
{
this.control.value = this.formatDate();
@@ -587,7 +587,7 @@ Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,
}
this.observe(document,"keydown", this.documentKeyDownEvent);
this.showing = true;
-
+
if(this.positionMode=='Top')
{
this._calDiv.style.top = ((pos[1]-1) - this.getDatePickerOffsetHeight() - this._calDiv.offsetHeight) + 'px';
@@ -744,16 +744,16 @@ jQuery.extend(Prado.WebUI.TDatePicker,
getYearListControl : function(control)
{
- return $('#'+control.id+"_year").get(0);
+ return jQuery('#'+control.id+"_year").get(0);
},
getMonthListControl : function(control)
{
- return $('#'+control.id+"_month").get(0);
+ return jQuery('#'+control.id+"_month").get(0);
},
getDayListControl : function(control)
{
- return $('#'+control.id+"_day").get(0);
+ return jQuery('#'+control.id+"_day").get(0);
}
}); \ No newline at end of file
diff --git a/framework/Web/Javascripts/source/prado/prado.js b/framework/Web/Javascripts/source/prado/prado.js
index 2e3ffbaa..1d69a034 100644
--- a/framework/Web/Javascripts/source/prado/prado.js
+++ b/framework/Web/Javascripts/source/prado/prado.js
@@ -1,11 +1,11 @@
/*
* Low Pro JQ
* ----------
- *
+ *
* Author: Dan Webb (dan@danwebb.net)
* GIT: github.com:danwrong/low-pro-for-jquery.git
* Download: http://github.com/danwrong/low-pro-for-jquery/tree/master/src/lowpro.jquery.js?raw=true
- *
+ *
* A jQuery port of the Low Pro behavior framework that was originally written for Prototype.
*
* Prado actually uses it as a base to emulate OOP subclassing, inheritance and contructor events.
@@ -185,9 +185,9 @@
Remote.Link = $.klass(Remote.Base, {
onclick: function(e) {
- var options = $.extend({
- url: $(this).attr('href'),
- type: 'GET'
+ var options = $.extend({
+ url: $(this).attr('href'),
+ type: 'GET'
}, this.options);
return e.data.behavior._makeRequest(e.data.behavior.options);
}
@@ -203,9 +203,9 @@
onsubmit: function(e) {
var elm = $(this), data = elm.serializeArray();
- if (e.data.behavior._submitButton) data.push({
- name: e.data.behavior._submitButton.name,
- value: e.data.behavior._submitButton.value
+ if (e.data.behavior._submitButton) data.push({
+ name: e.data.behavior._submitButton.name,
+ value: e.data.behavior._submitButton.value
});
var options = $.extend({
@@ -241,7 +241,7 @@ var Prado =
* @var Version
*/
Version: '3.2.3',
-
+
/**
* Registry for Prado components
* @var Registry
@@ -249,7 +249,7 @@ var Prado =
Registry: {},
};
-Prado.RequestManager =
+Prado.RequestManager =
{
FIELD_POSTBACK_TARGET : 'PRADO_POSTBACK_TARGET',
@@ -262,8 +262,8 @@ Prado.RequestManager =
* @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} 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
@@ -289,7 +289,7 @@ Prado.PostBack = jQuery.klass(
var form = this.getForm();
if(this.options['CausesValidation'] && typeof(Prado.Validation) != "undefined")
{
- if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], $("#" + this.options['ID'])))
+ if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], jQuery("#" + this.options['ID'])))
return event.preventDefault();
}
@@ -298,7 +298,7 @@ Prado.PostBack = jQuery.klass(
if(this.options['TrackFocus'])
{
- var lastFocus = $('PRADO_LASTFOCUS');
+ var lastFocus = jQuery('#PRADO_LASTFOCUS');
if(lastFocus)
{
var active = document.activeElement; //where did this come from
@@ -356,7 +356,7 @@ Prado.Element =
* @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
+ * @param {int} total - Number of elements
*/
select : function(element, method, value, total)
{
@@ -407,16 +407,16 @@ Prado.Element =
offset : 50
};
jQuery.extend(op, options || {});
- $('html, body').animate({
- scrollTop: $("#"+element).offset().top - op.offset
+ jQuery('html, body').animate({
+ scrollTop: jQuery("#"+element).offset().top - op.offset
}, op.duration);
},
/**
- * Sets the options for a select element.
+ * Sets the options for a select element.
* @function ?
* @param {string} element - Element id
- * @param {array[]} options - Array of options, each an array of structure
+ * @param {array[]} options - Array of options, each an array of structure
* [ "optionText" , "optionValue" , "optionGroup" ]
*/
setOptions : function(element, options)
@@ -436,9 +436,9 @@ Prado.Element =
},
/**
- * Create opt-group options from an array of options.
+ * Create opt-group options from an array of options.
* @function {array} ?
- * @param {array[]} options - Array of options, each an array of structure
+ * @param {array[]} options - Array of options, each an array of structure
* [ "optionText" , "optionValue" , "optionGroup" ]
* @returns Array of option DOM elements
*/
@@ -599,7 +599,7 @@ Prado.Element.Selection =
/**
* Set selected attribute for elements options by value.
* If value is boolean, all elements options selected attribute will be set
- * to value. Otherwhise all options that have the given value will be selected.
+ * to value. Otherwhise all options that have the given value will be selected.
* @function ?
* @param {element[]} elements - Array of selectable DOM elements
* @param {boolean|string} value - Value of options that should be selected or boolean value of selection status
@@ -735,7 +735,7 @@ Prado.Element.Selection =
var el;
for(var i = 0; i < total; i++)
{
- el = $("#"+element+"_c"+i).get(0);
+ el = jQuery("#"+element+"_c"+i).get(0);
if(el)
elements.push(el);
}
@@ -744,12 +744,12 @@ Prado.Element.Selection =
/**
* Set checked attribute of elements by value.
- * If value is boolean, checked attribute will be set to value.
- * Otherwhise all elements that have the given value will be checked.
+ * If value is boolean, checked attribute will be set to value.
+ * Otherwhise all elements that have the given value will be checked.
* @function ?
* @param {element[]} elements - Array of checkable DOM elements
* @param {boolean|String} value - Value that should be checked or boolean value of checked status
- *
+ *
*/
checkValue : function(elements, value)
{
@@ -767,7 +767,7 @@ Prado.Element.Selection =
* @function ?
* @param {element[]} elements - Array of checkable DOM elements
* @param {string[]} values - Values that should be checked
- *
+ *
*/
checkValues : function(elements, values)
{
@@ -928,7 +928,7 @@ jQuery.extend(String.prototype, {
/**
* Convert period separated function names into a function reference.
* <br />Example:
- * <pre>
+ * <pre>
* "Prado.AJAX.Callback.Action.setValue".toFunction()
* </pre>
* @function {function} ?
diff --git a/framework/Web/Javascripts/source/prado/ratings/ratings.js b/framework/Web/Javascripts/source/prado/ratings/ratings.js
index 1369c740..eb541b99 100644
--- a/framework/Web/Javascripts/source/prado/ratings/ratings.js
+++ b/framework/Web/Javascripts/source/prado/ratings/ratings.js
@@ -1,78 +1,67 @@
-Prado.WebUI.TRatingList = Base.extend(
+Prado.WebUI.TRatingList = jQuery.klass(Prado.WebUI.Control,
{
selectedIndex : -1,
rating: -1,
readOnly : false,
- constructor : function(options)
+ onInit : function(options)
{
- var cap = $(options.CaptionID);
- this.options = Object.extend(
+ var cap = $('#'+options.CaptionID).get(0);
+ this.options = jQuery.extend(
{
caption : cap ? cap.innerHTML : ''
}, options || {});
- Prado.WebUI.TRatingList.register(this);
- this._init();
- Prado.Registry.set(options.ListID, this);
- this.selectedIndex = options.SelectedIndex;
- this.rating = options.Rating;
- this.readOnly = options.ReadOnly
- if(options.Rating <= 0 && options.SelectedIndex >= 0)
- this.rating = options.SelectedIndex+1;
- this.setReadOnly(this.readOnly);
- },
+ this.radios = [];
- _init: function(options)
- {
- Element.addClassName($(this.options.ListID),this.options.Style);
- this.radios = new Array();
- this._mouseOvers = new Array();
- this._mouseOuts = new Array();
- this._clicks = new Array();
- var index=0;
- for(var i = 0; i<this.options.ItemCount; i++)
+ $('#'+options.ID).addClass(options.Style);
+ for(var i = 0; i<options.ItemCount; i++)
{
- var radio = $(this.options.ListID+'_c'+i);
+ var radio = $('#'+options.ID+"_c"+i).get(0);
var td = radio.parentNode.parentNode;
+
if(radio && td.tagName.toLowerCase()=='td')
{
this.radios.push(radio);
- this._mouseOvers.push(this.hover.bindEvent(this,index));
- this._mouseOuts.push(this.recover.bindEvent(this,index));
- this._clicks.push(this.click.bindEvent(this,index));
- index++;
- Element.addClassName(td,"rating");
+ $(td).addClass("rating");
}
}
+
+ this.selectedIndex = options.SelectedIndex;
+ this.rating = options.Rating;
+ this.readOnly = options.ReadOnly
+ if(options.Rating <= 0 && options.SelectedIndex >= 0)
+ this.rating = options.SelectedIndex+1;
+ this.setReadOnly(this.readOnly);
},
- hover : function(ev,index)
+ hover : function(index, ev)
{
if(this.readOnly==true) return;
+
for(var i = 0; i<this.radios.length; i++)
{
var node = this.radios[i].parentNode.parentNode;
- var action = i <= index ? 'addClassName' : 'removeClassName'
- Element[action](node,"rating_hover");
- Element.removeClassName(node,"rating_selected");
- Element.removeClassName(node,"rating_half");
+ if(i <= index)
+ $(node).addClass('rating_hover');
+ else
+ $(node).removeClass('rating_hover');
+ $(node).removeClass("rating_selected");
+ $(node).removeClass("rating_half");
}
this.showCaption(this.getIndexCaption(index));
},
- recover : function(ev,index)
+ recover : function(index, ev)
{
if(this.readOnly==true) return;
this.showRating(this.rating);
this.showCaption(this.options.caption);
},
- click : function(ev, index)
+ click : function(index, ev)
{
if(this.readOnly==true) return;
- for(var i = 0; i<this.radios.length; i++)
- this.radios[i].checked = (i == index);
this.selectedIndex = index;
this.setRating(index+1);
@@ -83,13 +72,13 @@ Prado.WebUI.TRatingList = Base.extend(
dispatchRequest : function(ev)
{
- var requestOptions = Object.extend(
+ var requestOptions =jQuery.extend({}, this.options,
{
- ID : this.options.ListID+"_c"+this.selectedIndex,
+ ID : this.options.ID+"_c"+this.selectedIndex,
EventTarget : this.options.ListName+"$c"+this.selectedIndex
- },this.options);
- Prado.PostBack(ev, requestOptions);
- },
+ });
+ new Prado.PostBack(requestOptions, ev);
+ },
setRating : function(value)
{
@@ -119,16 +108,19 @@ Prado.WebUI.TRatingList = Base.extend(
for(var i = 0; i<this.radios.length; i++)
{
var node = this.radios[i].parentNode.parentNode;
- var action = i > index ? 'removeClassName' : 'addClassName';
- Element[action](node, "rating_selected");
+ if(i <= index)
+ $(node).addClass('rating_selected');
+ else
+ $(node).removeClass('rating_selected');
+
if(i==index+1 && hasHalf)
- Element.addClassName(node, "rating_half");
+ $(node).addClass("rating_half");
else
- Element.removeClassName(node, "rating_half");
- Element.removeClassName(node,"rating_hover");
+ $(node).removeClass("rating_half");
+ $(node).removeClass("rating_hover");
}
},
-
+
getIndexCaption : function(index)
{
return index > -1 ? this.radios[index].value : this.options.caption;
@@ -136,9 +128,8 @@ Prado.WebUI.TRatingList = Base.extend(
showCaption : function(value)
{
- var caption = $(this.options.CaptionID);
- if(caption) caption.innerHTML = value;
- $(this.options.ListID).title = value;
+ $('#'+this.options.CaptionID).html(value);
+ $('#'+this.options.ID).attr( "title", value);
},
setCaption : function(value)
@@ -152,55 +143,37 @@ Prado.WebUI.TRatingList = Base.extend(
this.readOnly = value;
for(var i = 0; i<this.radios.length; i++)
{
-
- var action = value ? 'addClassName' : 'removeClassName';
- Element[action](this.radios[i].parentNode.parentNode, "rating_disabled");
-
- var action = value ? 'stopObserving' : 'observe';
- var td = this.radios[i].parentNode.parentNode;
- Event[action](td, "mouseover", this._mouseOvers[i]);
- Event[action](td, "mouseout", this._mouseOuts[i]);
- Event[action](td, "click", this._clicks[i]);
+ var node = this.radios[i].parentNode.parentNode;
+ if(value)
+ {
+ $(node).addClass('rating_disabled');
+ $(node).off('mouseover', jQuery.proxy(this.hover, this, i));
+ $(node).off('mouseout', jQuery.proxy(this.recover, this, i));
+ $(node).off('click', jQuery.proxy(this.click, this, i));
+ } else {
+ $(node).removeClass('rating_disabled');
+ $(node).on('mouseover', jQuery.proxy(this.hover, this, i));
+ $(node).on('mouseout', jQuery.proxy(this.recover, this, i));
+ $(node).on('click', jQuery.proxy(this.click, this, i));
+ }
}
this.showRating(this.rating);
}
-},
-{
-ratings : {},
-register : function(rating)
-{
- Prado.WebUI.TRatingList.ratings[rating.options.ListID] = rating;
-},
-
-setReadOnly : function(id,value)
-{
- Prado.WebUI.TRatingList.ratings[id].setReadOnly(value);
-},
-
-setRating : function(id,value)
-{
- Prado.WebUI.TRatingList.ratings[id].setRating(value);
-},
-
-setCaption : function(id,value)
-{
- Prado.WebUI.TRatingList.ratings[id].setCaption(value);
-}
});
-Prado.WebUI.TActiveRatingList = Prado.WebUI.TRatingList.extend(
-{
+Prado.WebUI.TActiveRatingList = jQuery.klass(Prado.WebUI.TRatingList,
+{
dispatchRequest : function(ev)
{
- var requestOptions = Object.extend(
+ var requestOptions =jQuery.extend({}, this.options,
{
- ID : this.options.ListID+"_c"+this.selectedIndex,
+ ID : this.options.ID+"_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);
+ ev.preventDefault();
}
-
+
});