base basic javascript utilities, e.g. $() * - dom DOM and Form functions, e.g. $F(inputID) to retrive form input values. * - effects Effects such as fade, shake, move * - controls Prado client-side components, e.g. Slider, AJAX components * - validator Prado client-side validators. * - ajax Prado AJAX library including Prototype's AJAX and JSON. * * Dependencies for each library are automatically resolved. * * Namespace: System.Web.UI * * @author Wei Zhuo * @version $Revision: 1.1 $ $Date: 2005/11/06 23:02:33 $ * @package System.Web.UI */ class TClientScript { protected $_manager; /** * Client-side javascript library dependencies * @var array */ protected static $_dependencies = array( 'prado' => array('prado'), 'effects' => array('prado', 'effects'), 'ajax' => array('prado', 'effects', 'ajax'), 'validator' => array('prado', 'validator'), 'logger' => array('prado', 'logger'), 'datepicker' => array('prado', 'datepicker'), 'rico' => array('prado', 'effects', 'ajax', 'rico') ); public function __construct($manager) { $this->_manager = $manager; } /** * Resolve dependencies for the given library. * @param array list of libraries to load. * @return array list of libraries including its dependencies. */ public function getScripts($scripts) { $files = array(); if(!is_array($scripts)) $scripts = array($scripts); foreach($scripts as $script) { if(isset(self::$_dependencies[$script])) $files = array_merge($files, self::$_dependencies[$script]); $files[] = $script; } $files = array_unique($files); return $files; } /** * TODO: clean up * public function getPostBackEventReference($control,$parameter='',$options=null,$javascriptPrefix=true) { if(!$options || (!$options->getPerformValidation() && !$options->getTrackFocus() && $options->getClientSubmit() && $options->getActionUrl()=='')) { $this->registerPostBackScript(); if(($form=$this->_page->getForm())!==null) $formID=$form->getClientID(); else throw new TConfigurationException('clientscriptmanager_form_required'); $postback=self::POSTBACK_FUNC.'(\''.$formID.'\',\''.$control->getUniqueID().'\',\''.THttpUtility::quoteJavaScriptString($parameter).'\')'; if($options && $options->getAutoPostBack()) $postback='setTimeout(\''.THttpUtility::quoteJavaScriptString($postback).'\',0)'; return $javascriptPrefix?'javascript:'.$postback:$postback; } $opt=''; $flag=false; if($options->getPerformValidation()) { $flag=true; $this->registerValidationScript(); $opt.=',true,'; } else $opt.=',false,'; if($options->getValidationGroup()!=='') { $flag=true; $opt.='"'.$options->getValidationGroup().'",'; } else $opt.='\'\','; if($options->getActionUrl()!=='') { $flag=true; $this->_page->setCrossPagePostBack(true); $opt.='"'.$options->getActionUrl().'",'; } else $opt.='null,'; if($options->getTrackFocus()) { $flag=true; $this->registerFocusScript(); $opt.='true,'; } else $opt.='false,'; if($options->getClientSubmit()) { $flag=true; $opt.='true'; } else $opt.='false'; if(!$flag) return ''; $this->registerPostBackScript(); if(($form=$this->_page->getForm())!==null) $formID=$form->getClientID(); else throw new TConfigurationException('clientscriptmanager_form_required'); $postback=self::POSTBACK_FUNC.'(\''.$formID.'\',\''.$control->getUniqueID().'\',\''.THttpUtility::quoteJavaScriptString($parameter).'\''.$opt.')'; if($options && $options->getAutoPostBack()) $postback='setTimeout(\''.THttpUtility::quoteJavaScriptString($postback).'\',0)'; return $javascriptPrefix?'javascript:'.$postback:$postback; }*/ } ?>