summaryrefslogtreecommitdiff
path: root/framework/Web/UI/TClientScriptManager.php
diff options
context:
space:
mode:
authorChristophe.Boulain <>2009-02-23 15:46:26 +0000
committerChristophe.Boulain <>2009-02-23 15:46:26 +0000
commit1d2260ea228fc98dce3c5fc088bd4b5ad8a9ebb4 (patch)
tree751cc0d8888b2de1562137862bc3060774bb9bb5 /framework/Web/UI/TClientScriptManager.php
parent8fcfadf79ebc05d43bf15e130a4fad04a3bbd6cf (diff)
Fixed Issue#7 - Client side javascripts are not combined anymore in debug mode
Diffstat (limited to 'framework/Web/UI/TClientScriptManager.php')
-rw-r--r--framework/Web/UI/TClientScriptManager.php35
1 files changed, 31 insertions, 4 deletions
diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php
index f0eb6157..09e240c2 100644
--- a/framework/Web/UI/TClientScriptManager.php
+++ b/framework/Web/UI/TClientScriptManager.php
@@ -76,7 +76,12 @@ class TClientScriptManager extends TApplicationComponent
* @var array
*/
private static $_pradoScripts;
-
+ /**
+ * Client-side javascript library packages, loads from SCRIPT_PATH.'/packages.php';
+ * @var array
+ */
+ private static $_pradoPackages;
+
/**
* Constructor.
* @param TPage page that owns this client script manager
@@ -120,6 +125,7 @@ class TClientScriptManager extends TApplicationComponent
$packageFile = Prado::getFrameworkPath().DIRECTORY_SEPARATOR.self::SCRIPT_PATH.'/packages.php';
list($packages,$deps)= include($packageFile);
self::$_pradoScripts = $deps;
+ self::$_pradoPackages = $packages;
}
if(isset(self::$_pradoScripts[$name]))
@@ -147,9 +153,30 @@ class TClientScriptManager extends TApplicationComponent
{
if(($packages=array_keys($this->_registeredPradoScripts))!==array())
{
- $base = Prado::getFrameworkPath().DIRECTORY_SEPARATOR.self::SCRIPT_PATH;
- $url = $this->registerJavascriptPackages($base, $packages);
- $writer->write(TJavaScript::renderScriptFile($url));
+ if (Prado::getApplication()->getMode()!==TApplicationMode::Debug)
+ {
+ $base = Prado::getFrameworkPath().DIRECTORY_SEPARATOR.self::SCRIPT_PATH;
+ $url = $this->registerJavascriptPackages($base, $packages);
+ $writer->write(TJavaScript::renderScriptFile($url));
+ }
+ else
+ {
+ // In debug mode, we add 1 <script> line by file
+ $baseUrl=$this->getPradoScriptAssetUrl();
+ $packagesUrl=array();
+ foreach ($packages as $p)
+ {
+ foreach (self::$_pradoScripts[$p] as $dep)
+ {
+ foreach (self::$_pradoPackages[$dep] as $script)
+ {
+ if (!in_array($url=$baseUrl.'/'.$script,$packagesUrl))
+ $packagesUrl[]=$url;
+ }
+ }
+ }
+ $writer->write(TJavaScript::renderScriptFiles($packagesUrl));
+ }
}
}