system/libraries/Javascript/Jquery.php
.htaccess
AesEncryption.php
LICENSE
application
.htaccess
cache
index.html
config
autoload.php
config.php
constants.php
database.php
doctypes.php
foreign_chars.php
hooks.php
index.html
memcached.php
migration.php
mimes.php
profiler.php
routes.php
smileys.php
user_agents.php
controllers
Systemid.php
Welcome.php
index.html
core
index.html
helpers
index.html
hooks
index.html
index.html
language
english
index.html
system_lang.php
index.html
libraries
index.html
logs
index.html
models
System_model.php
index.html
third_party
index.html
views
about.php
category
addedit.php
addeditsub.php
components.php
delete.php
errors
cli
error_404.php
error_db.php
error_exception.php
error_general.php
error_php.php
index.html
html
error_404.php
error_db.php
error_exception.php
error_general.php
error_php.php
index.html
index.html
foot.php
generator.php
head.php
index.html
login.php
main.php
pass
addedit.php
show.php
welcome_message.php
captcha
sys.txt
favicon.ico
index.php
install.php
library
AesEncryption.php
bootstrap
css
.DS_Store
bootstrap-grid.css
bootstrap-grid.css.map
bootstrap-grid.min.css
bootstrap-grid.min.css.map
bootstrap-reboot.css
bootstrap-reboot.css.map
bootstrap-reboot.min.css
bootstrap-reboot.min.css.map
bootstrap.css
bootstrap.css.map
bootstrap.min.css
bootstrap.min.css.map
js
bootstrap.bundle.js
bootstrap.bundle.js.map
bootstrap.bundle.min.js
bootstrap.bundle.min.js.map
bootstrap.js
bootstrap.js.map
bootstrap.min.js
bootstrap.min.js.map
font-awesome
HELP-US-OUT.txt
css
font-awesome.css
font-awesome.min.css
fonts
FontAwesome.otf
fontawesome-webfont.eot
fontawesome-webfont.svg
fontawesome-webfont.ttf
fontawesome-webfont.woff
fontawesome-webfont.woff2
less
animated.less
bordered-pulled.less
core.less
fixed-width.less
font-awesome.less
icons.less
larger.less
list.less
mixins.less
path.less
rotated-flipped.less
screen-reader.less
stacked.less
variables.less
scss
_animated.scss
_bordered-pulled.scss
_core.scss
_fixed-width.scss
_icons.scss
_larger.scss
_list.scss
_mixins.scss
_path.scss
_rotated-flipped.scss
_screen-reader.scss
_stacked.scss
_variables.scss
font-awesome.scss
font-awesome.min.css
jquery-ui
AUTHORS.txt
LICENSE.txt
external
jquery
jquery.js
images
ui-icons_444444_256x240.png
ui-icons_555555_256x240.png
ui-icons_777620_256x240.png
ui-icons_777777_256x240.png
ui-icons_cc0000_256x240.png
ui-icons_ffffff_256x240.png
index.html
jquery-ui.css
jquery-ui.js
jquery-ui.min.css
jquery-ui.min.js
jquery-ui.structure.css
jquery-ui.structure.min.css
jquery-ui.theme.css
jquery-ui.theme.min.css
package.json
jquery.min.js
jquerysctipttop.css
logo.png
password_indicator_bs4
css
signin.css
index.html
js
jaktutorial.js
popper.min.js
right-click
css
contextMenu.min.css
js
contextMenu.min.js
style.css
tether
css
tether-theme-arrows-dark.css
tether-theme-arrows-dark.min.css
tether-theme-arrows.css
tether-theme-arrows.min.css
tether-theme-basic.css
tether-theme-basic.min.css
tether.css
tether.min.css
js
tether.js
tether.min.js
system
.htaccess
core
Benchmark.php
CodeIgniter.php
Common.php
Config.php
Controller.php
Exceptions.php
Hooks.php
Input.php
Lang.php
Loader.php
Log.php
Model.php
Output.php
Router.php
Security.php
URI.php
Utf8.php
compat
hash.php
index.html
mbstring.php
password.php
standard.php
index.html
database
DB.php
DB_cache.php
DB_driver.php
DB_forge.php
DB_query_builder.php
DB_result.php
DB_utility.php
drivers
cubrid
cubrid_driver.php
cubrid_forge.php
cubrid_result.php
cubrid_utility.php
index.html
ibase
ibase_driver.php
ibase_forge.php
ibase_result.php
ibase_utility.php
index.html
index.html
mssql
index.html
mssql_driver.php
mssql_forge.php
mssql_result.php
mssql_utility.php
mysql
index.html
mysql_driver.php
mysql_forge.php
mysql_result.php
mysql_utility.php
mysqli
index.html
mysqli_driver.php
mysqli_forge.php
mysqli_result.php
mysqli_utility.php
oci8
index.html
oci8_driver.php
oci8_forge.php
oci8_result.php
oci8_utility.php
odbc
index.html
odbc_driver.php
odbc_forge.php
odbc_result.php
odbc_utility.php
pdo
index.html
pdo_driver.php
pdo_forge.php
pdo_result.php
pdo_utility.php
subdrivers
index.html
pdo_4d_driver.php
pdo_4d_forge.php
pdo_cubrid_driver.php
pdo_cubrid_forge.php
pdo_dblib_driver.php
pdo_dblib_forge.php
pdo_firebird_driver.php
pdo_firebird_forge.php
pdo_ibm_driver.php
pdo_ibm_forge.php
pdo_informix_driver.php
pdo_informix_forge.php
pdo_mysql_driver.php
pdo_mysql_forge.php
pdo_oci_driver.php
pdo_oci_forge.php
pdo_odbc_driver.php
pdo_odbc_forge.php
pdo_pgsql_driver.php
pdo_pgsql_forge.php
pdo_sqlite_driver.php
pdo_sqlite_forge.php
pdo_sqlsrv_driver.php
pdo_sqlsrv_forge.php
postgre
index.html
postgre_driver.php
postgre_forge.php
postgre_result.php
postgre_utility.php
sqlite
index.html
sqlite_driver.php
sqlite_forge.php
sqlite_result.php
sqlite_utility.php
sqlite3
index.html
sqlite3_driver.php
sqlite3_forge.php
sqlite3_result.php
sqlite3_utility.php
sqlsrv
index.html
sqlsrv_driver.php
sqlsrv_forge.php
sqlsrv_result.php
sqlsrv_utility.php
index.html
fonts
index.html
texb.ttf
helpers
array_helper.php
captcha_helper.php
cookie_helper.php
date_helper.php
directory_helper.php
download_helper.php
email_helper.php
file_helper.php
form_helper.php
html_helper.php
index.html
inflector_helper.php
language_helper.php
number_helper.php
path_helper.php
security_helper.php
smiley_helper.php
string_helper.php
text_helper.php
typography_helper.php
url_helper.php
xml_helper.php
index.html
language
english
calendar_lang.php
date_lang.php
db_lang.php
email_lang.php
form_validation_lang.php
ftp_lang.php
imglib_lang.php
index.html
migration_lang.php
number_lang.php
pagination_lang.php
profiler_lang.php
unit_test_lang.php
upload_lang.php
index.html
libraries
Cache
Cache.php
drivers
Cache_apc.php
Cache_dummy.php
Cache_file.php
Cache_memcached.php
Cache_redis.php
Cache_wincache.php
index.html
index.html
Calendar.php
Cart.php
Driver.php
Email.php
Encrypt.php
Encryption.php
Form_validation.php
Ftp.php
Image_lib.php
Javascript
Jquery.php
index.html
Javascript.php
Migration.php
Pagination.php
Parser.php
Profiler.php
Session
Session.php
SessionHandlerInterface.php
Session_driver.php
drivers
Session_database_driver.php
Session_files_driver.php
Session_memcached_driver.php
Session_redis_driver.php
index.html
index.html
Table.php
Trackback.php
Typography.php
Unit_test.php
Upload.php
User_agent.php
Xmlrpc.php
Xmlrpcs.php
Zip.php
index.html
AesEncryption.php
LICENSE
application
.htaccess
cache
index.html
config
autoload.php
config.php
constants.php
database.php
doctypes.php
foreign_chars.php
hooks.php
index.html
memcached.php
migration.php
mimes.php
profiler.php
routes.php
smileys.php
user_agents.php
controllers
Systemid.php
Welcome.php
index.html
core
index.html
helpers
index.html
hooks
index.html
index.html
language
english
index.html
system_lang.php
index.html
libraries
index.html
logs
index.html
models
System_model.php
index.html
third_party
index.html
views
about.php
category
addedit.php
addeditsub.php
components.php
delete.php
errors
cli
error_404.php
error_db.php
error_exception.php
error_general.php
error_php.php
index.html
html
error_404.php
error_db.php
error_exception.php
error_general.php
error_php.php
index.html
index.html
foot.php
generator.php
head.php
index.html
login.php
main.php
pass
addedit.php
show.php
welcome_message.php
captcha
sys.txt
favicon.ico
index.php
install.php
library
AesEncryption.php
bootstrap
css
.DS_Store
bootstrap-grid.css
bootstrap-grid.css.map
bootstrap-grid.min.css
bootstrap-grid.min.css.map
bootstrap-reboot.css
bootstrap-reboot.css.map
bootstrap-reboot.min.css
bootstrap-reboot.min.css.map
bootstrap.css
bootstrap.css.map
bootstrap.min.css
bootstrap.min.css.map
js
bootstrap.bundle.js
bootstrap.bundle.js.map
bootstrap.bundle.min.js
bootstrap.bundle.min.js.map
bootstrap.js
bootstrap.js.map
bootstrap.min.js
bootstrap.min.js.map
font-awesome
HELP-US-OUT.txt
css
font-awesome.css
font-awesome.min.css
fonts
FontAwesome.otf
fontawesome-webfont.eot
fontawesome-webfont.svg
fontawesome-webfont.ttf
fontawesome-webfont.woff
fontawesome-webfont.woff2
less
animated.less
bordered-pulled.less
core.less
fixed-width.less
font-awesome.less
icons.less
larger.less
list.less
mixins.less
path.less
rotated-flipped.less
screen-reader.less
stacked.less
variables.less
scss
_animated.scss
_bordered-pulled.scss
_core.scss
_fixed-width.scss
_icons.scss
_larger.scss
_list.scss
_mixins.scss
_path.scss
_rotated-flipped.scss
_screen-reader.scss
_stacked.scss
_variables.scss
font-awesome.scss
font-awesome.min.css
jquery-ui
AUTHORS.txt
LICENSE.txt
external
jquery
jquery.js
images
ui-icons_444444_256x240.png
ui-icons_555555_256x240.png
ui-icons_777620_256x240.png
ui-icons_777777_256x240.png
ui-icons_cc0000_256x240.png
ui-icons_ffffff_256x240.png
index.html
jquery-ui.css
jquery-ui.js
jquery-ui.min.css
jquery-ui.min.js
jquery-ui.structure.css
jquery-ui.structure.min.css
jquery-ui.theme.css
jquery-ui.theme.min.css
package.json
jquery.min.js
jquerysctipttop.css
logo.png
password_indicator_bs4
css
signin.css
index.html
js
jaktutorial.js
popper.min.js
right-click
css
contextMenu.min.css
js
contextMenu.min.js
style.css
tether
css
tether-theme-arrows-dark.css
tether-theme-arrows-dark.min.css
tether-theme-arrows.css
tether-theme-arrows.min.css
tether-theme-basic.css
tether-theme-basic.min.css
tether.css
tether.min.css
js
tether.js
tether.min.js
system
.htaccess
core
Benchmark.php
CodeIgniter.php
Common.php
Config.php
Controller.php
Exceptions.php
Hooks.php
Input.php
Lang.php
Loader.php
Log.php
Model.php
Output.php
Router.php
Security.php
URI.php
Utf8.php
compat
hash.php
index.html
mbstring.php
password.php
standard.php
index.html
database
DB.php
DB_cache.php
DB_driver.php
DB_forge.php
DB_query_builder.php
DB_result.php
DB_utility.php
drivers
cubrid
cubrid_driver.php
cubrid_forge.php
cubrid_result.php
cubrid_utility.php
index.html
ibase
ibase_driver.php
ibase_forge.php
ibase_result.php
ibase_utility.php
index.html
index.html
mssql
index.html
mssql_driver.php
mssql_forge.php
mssql_result.php
mssql_utility.php
mysql
index.html
mysql_driver.php
mysql_forge.php
mysql_result.php
mysql_utility.php
mysqli
index.html
mysqli_driver.php
mysqli_forge.php
mysqli_result.php
mysqli_utility.php
oci8
index.html
oci8_driver.php
oci8_forge.php
oci8_result.php
oci8_utility.php
odbc
index.html
odbc_driver.php
odbc_forge.php
odbc_result.php
odbc_utility.php
pdo
index.html
pdo_driver.php
pdo_forge.php
pdo_result.php
pdo_utility.php
subdrivers
index.html
pdo_4d_driver.php
pdo_4d_forge.php
pdo_cubrid_driver.php
pdo_cubrid_forge.php
pdo_dblib_driver.php
pdo_dblib_forge.php
pdo_firebird_driver.php
pdo_firebird_forge.php
pdo_ibm_driver.php
pdo_ibm_forge.php
pdo_informix_driver.php
pdo_informix_forge.php
pdo_mysql_driver.php
pdo_mysql_forge.php
pdo_oci_driver.php
pdo_oci_forge.php
pdo_odbc_driver.php
pdo_odbc_forge.php
pdo_pgsql_driver.php
pdo_pgsql_forge.php
pdo_sqlite_driver.php
pdo_sqlite_forge.php
pdo_sqlsrv_driver.php
pdo_sqlsrv_forge.php
postgre
index.html
postgre_driver.php
postgre_forge.php
postgre_result.php
postgre_utility.php
sqlite
index.html
sqlite_driver.php
sqlite_forge.php
sqlite_result.php
sqlite_utility.php
sqlite3
index.html
sqlite3_driver.php
sqlite3_forge.php
sqlite3_result.php
sqlite3_utility.php
sqlsrv
index.html
sqlsrv_driver.php
sqlsrv_forge.php
sqlsrv_result.php
sqlsrv_utility.php
index.html
fonts
index.html
texb.ttf
helpers
array_helper.php
captcha_helper.php
cookie_helper.php
date_helper.php
directory_helper.php
download_helper.php
email_helper.php
file_helper.php
form_helper.php
html_helper.php
index.html
inflector_helper.php
language_helper.php
number_helper.php
path_helper.php
security_helper.php
smiley_helper.php
string_helper.php
text_helper.php
typography_helper.php
url_helper.php
xml_helper.php
index.html
language
english
calendar_lang.php
date_lang.php
db_lang.php
email_lang.php
form_validation_lang.php
ftp_lang.php
imglib_lang.php
index.html
migration_lang.php
number_lang.php
pagination_lang.php
profiler_lang.php
unit_test_lang.php
upload_lang.php
index.html
libraries
Cache
Cache.php
drivers
Cache_apc.php
Cache_dummy.php
Cache_file.php
Cache_memcached.php
Cache_redis.php
Cache_wincache.php
index.html
index.html
Calendar.php
Cart.php
Driver.php
Email.php
Encrypt.php
Encryption.php
Form_validation.php
Ftp.php
Image_lib.php
Javascript
Jquery.php
index.html
Javascript.php
Migration.php
Pagination.php
Parser.php
Profiler.php
Session
Session.php
SessionHandlerInterface.php
Session_driver.php
drivers
Session_database_driver.php
Session_files_driver.php
Session_memcached_driver.php
Session_redis_driver.php
index.html
index.html
Table.php
Trackback.php
Typography.php
Unit_test.php
Upload.php
User_agent.php
Xmlrpc.php
Xmlrpcs.php
Zip.php
index.html
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author EllisLab Dev Team
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 1.0.0
* @filesource
*/
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Jquery Class
*
* @package CodeIgniter
* @subpackage Libraries
* @category Loader
* @author EllisLab Dev Team
* @link https://codeigniter.com/user_guide/libraries/javascript.html
*/
class CI_Jquery extends CI_Javascript {
/**
* JavaScript directory location
*
* @var string
*/
protected $_javascript_folder = 'js';
/**
* JQuery code for load
*
* @var array
*/
public $jquery_code_for_load = array();
/**
* JQuery code for compile
*
* @var array
*/
public $jquery_code_for_compile = array();
/**
* JQuery corner active flag
*
* @var bool
*/
public $jquery_corner_active = FALSE;
/**
* JQuery table sorter active flag
*
* @var bool
*/
public $jquery_table_sorter_active = FALSE;
/**
* JQuery table sorter pager active
*
* @var bool
*/
public $jquery_table_sorter_pager_active = FALSE;
/**
* JQuery AJAX image
*
* @var string
*/
public $jquery_ajax_img = '';
// --------------------------------------------------------------------
/**
* Constructor
*
* @param array $params
* @return void
*/
public function __construct($params)
{
$this->CI =& get_instance();
extract($params);
if ($autoload === TRUE)
{
$this->script();
}
log_message('info', 'Jquery Class Initialized');
}
// --------------------------------------------------------------------
// Event Code
// --------------------------------------------------------------------
/**
* Blur
*
* Outputs a jQuery blur event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _blur($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'blur');
}
// --------------------------------------------------------------------
/**
* Change
*
* Outputs a jQuery change event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _change($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'change');
}
// --------------------------------------------------------------------
/**
* Click
*
* Outputs a jQuery click event
*
* @param string The element to attach the event to
* @param string The code to execute
* @param bool whether or not to return false
* @return string
*/
protected function _click($element = 'this', $js = '', $ret_false = TRUE)
{
is_array($js) OR $js = array($js);
if ($ret_false)
{
$js[] = 'return false;';
}
return $this->_add_event($element, $js, 'click');
}
// --------------------------------------------------------------------
/**
* Double Click
*
* Outputs a jQuery dblclick event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _dblclick($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'dblclick');
}
// --------------------------------------------------------------------
/**
* Error
*
* Outputs a jQuery error event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _error($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'error');
}
// --------------------------------------------------------------------
/**
* Focus
*
* Outputs a jQuery focus event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _focus($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'focus');
}
// --------------------------------------------------------------------
/**
* Hover
*
* Outputs a jQuery hover event
*
* @param string - element
* @param string - Javascript code for mouse over
* @param string - Javascript code for mouse out
* @return string
*/
protected function _hover($element = 'this', $over = '', $out = '')
{
$event = "\n\t$(".$this->_prep_element($element).").hover(\n\t\tfunction()\n\t\t{\n\t\t\t{$over}\n\t\t}, \n\t\tfunction()\n\t\t{\n\t\t\t{$out}\n\t\t});\n";
$this->jquery_code_for_compile[] = $event;
return $event;
}
// --------------------------------------------------------------------
/**
* Keydown
*
* Outputs a jQuery keydown event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _keydown($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'keydown');
}
// --------------------------------------------------------------------
/**
* Keyup
*
* Outputs a jQuery keydown event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _keyup($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'keyup');
}
// --------------------------------------------------------------------
/**
* Load
*
* Outputs a jQuery load event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _load($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'load');
}
// --------------------------------------------------------------------
/**
* Mousedown
*
* Outputs a jQuery mousedown event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _mousedown($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'mousedown');
}
// --------------------------------------------------------------------
/**
* Mouse Out
*
* Outputs a jQuery mouseout event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _mouseout($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'mouseout');
}
// --------------------------------------------------------------------
/**
* Mouse Over
*
* Outputs a jQuery mouseover event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _mouseover($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'mouseover');
}
// --------------------------------------------------------------------
/**
* Mouseup
*
* Outputs a jQuery mouseup event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _mouseup($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'mouseup');
}
// --------------------------------------------------------------------
/**
* Output
*
* Outputs script directly
*
* @param array $array_js = array()
* @return void
*/
protected function _output($array_js = array())
{
if ( ! is_array($array_js))
{
$array_js = array($array_js);
}
foreach ($array_js as $js)
{
$this->jquery_code_for_compile[] = "\t".$js."\n";
}
}
// --------------------------------------------------------------------
/**
* Resize
*
* Outputs a jQuery resize event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _resize($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'resize');
}
// --------------------------------------------------------------------
/**
* Scroll
*
* Outputs a jQuery scroll event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _scroll($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'scroll');
}
// --------------------------------------------------------------------
/**
* Unload
*
* Outputs a jQuery unload event
*
* @param string The element to attach the event to
* @param string The code to execute
* @return string
*/
protected function _unload($element = 'this', $js = '')
{
return $this->_add_event($element, $js, 'unload');
}
// --------------------------------------------------------------------
// Effects
// --------------------------------------------------------------------
/**
* Add Class
*
* Outputs a jQuery addClass event
*
* @param string $element
* @param string $class
* @return string
*/
protected function _addClass($element = 'this', $class = '')
{
$element = $this->_prep_element($element);
return '$('.$element.').addClass("'.$class.'");';
}
// --------------------------------------------------------------------
/**
* Animate
*
* Outputs a jQuery animate event
*
* @param string $element
* @param array $params
* @param string $speed 'slow', 'normal', 'fast', or time in milliseconds
* @param string $extra
* @return string
*/
protected function _animate($element = 'this', $params = array(), $speed = '', $extra = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
$animations = "\t\t\t";
foreach ($params as $param => $value)
{
$animations .= $param.": '".$value."', ";
}
$animations = substr($animations, 0, -2); // remove the last ", "
if ($speed !== '')
{
$speed = ', '.$speed;
}
if ($extra !== '')
{
$extra = ', '.$extra;
}
return "$({$element}).animate({\n$animations\n\t\t}".$speed.$extra.');';
}
// --------------------------------------------------------------------
/**
* Fade In
*
* Outputs a jQuery hide event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _fadeIn($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return "$({$element}).fadeIn({$speed}{$callback});";
}
// --------------------------------------------------------------------
/**
* Fade Out
*
* Outputs a jQuery hide event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _fadeOut($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return '$('.$element.').fadeOut('.$speed.$callback.');';
}
// --------------------------------------------------------------------
/**
* Hide
*
* Outputs a jQuery hide action
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _hide($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return "$({$element}).hide({$speed}{$callback});";
}
// --------------------------------------------------------------------
/**
* Remove Class
*
* Outputs a jQuery remove class event
*
* @param string $element
* @param string $class
* @return string
*/
protected function _removeClass($element = 'this', $class = '')
{
$element = $this->_prep_element($element);
return '$('.$element.').removeClass("'.$class.'");';
}
// --------------------------------------------------------------------
/**
* Slide Up
*
* Outputs a jQuery slideUp event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _slideUp($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return '$('.$element.').slideUp('.$speed.$callback.');';
}
// --------------------------------------------------------------------
/**
* Slide Down
*
* Outputs a jQuery slideDown event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _slideDown($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return '$('.$element.').slideDown('.$speed.$callback.');';
}
// --------------------------------------------------------------------
/**
* Slide Toggle
*
* Outputs a jQuery slideToggle event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _slideToggle($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return '$('.$element.').slideToggle('.$speed.$callback.');';
}
// --------------------------------------------------------------------
/**
* Toggle
*
* Outputs a jQuery toggle event
*
* @param string - element
* @return string
*/
protected function _toggle($element = 'this')
{
$element = $this->_prep_element($element);
return '$('.$element.').toggle();';
}
// --------------------------------------------------------------------
/**
* Toggle Class
*
* Outputs a jQuery toggle class event
*
* @param string $element
* @param string $class
* @return string
*/
protected function _toggleClass($element = 'this', $class = '')
{
$element = $this->_prep_element($element);
return '$('.$element.').toggleClass("'.$class.'");';
}
// --------------------------------------------------------------------
/**
* Show
*
* Outputs a jQuery show event
*
* @param string - element
* @param string - One of 'slow', 'normal', 'fast', or time in milliseconds
* @param string - Javascript callback function
* @return string
*/
protected function _show($element = 'this', $speed = '', $callback = '')
{
$element = $this->_prep_element($element);
$speed = $this->_validate_speed($speed);
if ($callback !== '')
{
$callback = ", function(){\n{$callback}\n}";
}
return '$('.$element.').show('.$speed.$callback.');';
}
// --------------------------------------------------------------------
/**
* Updater
*
* An Ajax call that populates the designated DOM node with
* returned content
*
* @param string The element to attach the event to
* @param string the controller to run the call against
* @param string optional parameters
* @return string
*/
protected function _updater($container = 'this', $controller = '', $options = '')
{
$container = $this->_prep_element($container);
$controller = (strpos('://', $controller) === FALSE) ? $controller : $this->CI->config->site_url($controller);
// ajaxStart and ajaxStop are better choices here... but this is a stop gap
if ($this->CI->config->item('javascript_ajax_img') === '')
{
$loading_notifier = 'Loading...';
}
else
{
$loading_notifier = '<img src="'.$this->CI->config->slash_item('base_url').$this->CI->config->item('javascript_ajax_img').'" alt="Loading" />';
}
$updater = '$('.$container.").empty();\n" // anything that was in... get it out
."\t\t$(".$container.').prepend("'.$loading_notifier."\");\n"; // to replace with an image
$request_options = '';
if ($options !== '')
{
$request_options .= ', {'
.(is_array($options) ? "'".implode("', '", $options)."'" : "'".str_replace(':', "':'", $options)."'")
.'}';
}
return $updater."\t\t$($container).load('$controller'$request_options);";
}
// --------------------------------------------------------------------
// Pre-written handy stuff
// --------------------------------------------------------------------
/**
* Zebra tables
*
* @param string $class
* @param string $odd
* @param string $hover
* @return string
*/
protected function _zebraTables($class = '', $odd = 'odd', $hover = '')
{
$class = ($class !== '') ? '.'.$class : '';
$zebra = "\t\$(\"table{$class} tbody tr:nth-child(even)\").addClass(\"{$odd}\");";
$this->jquery_code_for_compile[] = $zebra;
if ($hover !== '')
{
$hover = $this->hover("table{$class} tbody tr", "$(this).addClass('hover');", "$(this).removeClass('hover');");
}
return $zebra;
}
// --------------------------------------------------------------------
// Plugins
// --------------------------------------------------------------------
/**
* Corner Plugin
*
* @link http://www.malsup.com/jquery/corner/
* @param string $element
* @param string $corner_style
* @return string
*/
public function corner($element = '', $corner_style = '')
{
// may want to make this configurable down the road
$corner_location = '/plugins/jquery.corner.js';
if ($corner_style !== '')
{
$corner_style = '"'.$corner_style.'"';
}
return '$('.$this->_prep_element($element).').corner('.$corner_style.');';
}
// --------------------------------------------------------------------
/**
* Modal window
*
* Load a thickbox modal window
*
* @param string $src
* @param bool $relative
* @return void
*/
public function modal($src, $relative = FALSE)
{
$this->jquery_code_for_load[] = $this->external($src, $relative);
}
// --------------------------------------------------------------------
/**
* Effect
*
* Load an Effect library
*
* @param string $src
* @param bool $relative
* @return void
*/
public function effect($src, $relative = FALSE)
{
$this->jquery_code_for_load[] = $this->external($src, $relative);
}
// --------------------------------------------------------------------
/**
* Plugin
*
* Load a plugin library
*
* @param string $src
* @param bool $relative
* @return void
*/
public function plugin($src, $relative = FALSE)
{
$this->jquery_code_for_load[] = $this->external($src, $relative);
}
// --------------------------------------------------------------------
/**
* UI
*
* Load a user interface library
*
* @param string $src
* @param bool $relative
* @return void
*/
public function ui($src, $relative = FALSE)
{
$this->jquery_code_for_load[] = $this->external($src, $relative);
}
// --------------------------------------------------------------------
/**
* Sortable
*
* Creates a jQuery sortable
*
* @param string $element
* @param array $options
* @return string
*/
public function sortable($element, $options = array())
{
if (count($options) > 0)
{
$sort_options = array();
foreach ($options as $k=>$v)
{
$sort_options[] = "\n\t\t".$k.': '.$v;
}
$sort_options = implode(',', $sort_options);
}
else
{
$sort_options = '';
}
return '$('.$this->_prep_element($element).').sortable({'.$sort_options."\n\t});";
}
// --------------------------------------------------------------------
/**
* Table Sorter Plugin
*
* @param string table name
* @param string plugin location
* @return string
*/
public function tablesorter($table = '', $options = '')
{
$this->jquery_code_for_compile[] = "\t$(".$this->_prep_element($table).').tablesorter('.$options.");\n";
}
// --------------------------------------------------------------------
// Class functions
// --------------------------------------------------------------------
/**
* Add Event
*
* Constructs the syntax for an event, and adds to into the array for compilation
*
* @param string The element to attach the event to
* @param string The code to execute
* @param string The event to pass
* @return string
*/
protected function _add_event($element, $js, $event)
{
if (is_array($js))
{
$js = implode("\n\t\t", $js);
}
$event = "\n\t$(".$this->_prep_element($element).').'.$event."(function(){\n\t\t{$js}\n\t});\n";
$this->jquery_code_for_compile[] = $event;
return $event;
}
// --------------------------------------------------------------------
/**
* Compile
*
* As events are specified, they are stored in an array
* This function compiles them all for output on a page
*
* @param string $view_var
* @param bool $script_tags
* @return void
*/
protected function _compile($view_var = 'script_foot', $script_tags = TRUE)
{
// External references
$external_scripts = implode('', $this->jquery_code_for_load);
$this->CI->load->vars(array('library_src' => $external_scripts));
if (count($this->jquery_code_for_compile) === 0)
{
// no inline references, let's just return
return;
}
// Inline references
$script = '$(document).ready(function() {'."\n"
.implode('', $this->jquery_code_for_compile)
.'});';
$output = ($script_tags === FALSE) ? $script : $this->inline($script);
$this->CI->load->vars(array($view_var => $output));
}
// --------------------------------------------------------------------
/**
* Clear Compile
*
* Clears the array of script events collected for output
*
* @return void
*/
protected function _clear_compile()
{
$this->jquery_code_for_compile = array();
}
// --------------------------------------------------------------------
/**
* Document Ready
*
* A wrapper for writing document.ready()
*
* @param array $js
* @return void
*/
protected function _document_ready($js)
{
is_array($js) OR $js = array($js);
foreach ($js as $script)
{
$this->jquery_code_for_compile[] = $script;
}
}
// --------------------------------------------------------------------
/**
* Script Tag
*
* Outputs the script tag that loads the jquery.js file into an HTML document
*
* @param string $library_src
* @param bool $relative
* @return string
*/
public function script($library_src = '', $relative = FALSE)
{
$library_src = $this->external($library_src, $relative);
$this->jquery_code_for_load[] = $library_src;
return $library_src;
}
// --------------------------------------------------------------------
/**
* Prep Element
*
* Puts HTML element in quotes for use in jQuery code
* unless the supplied element is the Javascript 'this'
* object, in which case no quotes are added
*
* @param string
* @return string
*/
protected function _prep_element($element)
{
if ($element !== 'this')
{
$element = '"'.$element.'"';
}
return $element;
}
// --------------------------------------------------------------------
/**
* Validate Speed
*
* Ensures the speed parameter is valid for jQuery
*
* @param string
* @return string
*/
protected function _validate_speed($speed)
{
if (in_array($speed, array('slow', 'normal', 'fast')))
{
return '"'.$speed.'"';
}
elseif (preg_match('/[^0-9]/', $speed))
{
return '';
}
return $speed;
}
}