From 0f7c0e1db3f855cb0751a58dec9be9a2d88492f4 Mon Sep 17 00:00:00 2001 From: "mike.morgan%oregonstate.edu" Date: Fri, 9 Jun 2006 18:14:09 +0000 Subject: [PATCH] Initial import. git-svn-id: svn://10.0.0.236/trunk@199619 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bouncer/.htaccess | 5 + mozilla/webtools/bouncer/README | 48 +++ mozilla/webtools/bouncer/config/acl.ini.php | 76 +++++ mozilla/webtools/bouncer/config/bootstrap.php | 46 +++ mozilla/webtools/bouncer/config/core.php | 147 +++++++++ .../bouncer/config/database.php.default | 74 +++++ .../webtools/bouncer/config/inflections.php | 72 +++++ mozilla/webtools/bouncer/config/routes.php | 46 +++ .../webtools/bouncer/config/sql/db_acl.sql | 30 ++ .../webtools/bouncer/config/sql/sessions.sql | 11 + .../bouncer/controllers/files_controller.php | 6 + .../controllers/locales_controller.php | 6 + .../controllers/mirrors_controller.php | 77 +++++ .../controllers/platforms_controller.php | 6 + .../controllers/regions_controller.php | 6 + .../controllers/templates_controller.php | 6 + .../bouncer/controllers/users_controller.php | 6 + mozilla/webtools/bouncer/index.php | 26 ++ mozilla/webtools/bouncer/models/file.php | 6 + mozilla/webtools/bouncer/models/locale.php | 7 + mozilla/webtools/bouncer/models/mirror.php | 15 + mozilla/webtools/bouncer/models/platform.php | 7 + mozilla/webtools/bouncer/models/region.php | 7 + mozilla/webtools/bouncer/models/template.php | 7 + mozilla/webtools/bouncer/models/user.php | 7 + .../webtools/bouncer/views/dashboard.thtml | 8 + .../bouncer/views/helpers/pagination.php | 211 +++++++++++++ .../bouncer/views/layouts/default.thtml | 92 ++++++ .../bouncer/views/mirrors/destroy.thtml | 8 + .../bouncer/views/mirrors/index.thtml | 46 +++ .../webtools/bouncer/views/mirrors/view.thtml | 3 + .../bouncer/views/pages/dashboard.thtml | 8 + mozilla/webtools/bouncer/webroot/.htaccess | 6 + mozilla/webtools/bouncer/webroot/css.php | 101 +++++++ .../bouncer/webroot/css/bouncer.screen.css | 147 +++++++++ .../bouncer/webroot/css/cake.basic.css | 268 +++++++++++++++++ .../bouncer/webroot/css/cake.forms.css | 279 ++++++++++++++++++ .../bouncer/webroot/css/images/arrow.gif | Bin 0 -> 62 bytes .../webroot/css/images/container_bg.gif | Bin 0 -> 109 bytes .../bouncer/webroot/css/images/logo.gif | Bin 0 -> 18012 bytes .../bouncer/webroot/css/images/nav_bg.gif | Bin 0 -> 874 bytes .../webroot/css/images/nav_item_bg.gif | Bin 0 -> 531 bytes mozilla/webtools/bouncer/webroot/favicon.ico | Bin 0 -> 4286 bytes .../bouncer/webroot/img/bouncer.icon.png | Bin 0 -> 1435 bytes .../bouncer/webroot/img/bouncer.logo.png | Bin 0 -> 5744 bytes .../bouncer/webroot/img/cake.power.png | Bin 0 -> 3053 bytes .../webtools/bouncer/webroot/img/favicon.ico | Bin 0 -> 318 bytes .../webtools/bouncer/webroot/img/w3c_css.png | Bin 0 -> 299 bytes .../bouncer/webroot/img/w3c_xhtml10.png | Bin 0 -> 321 bytes mozilla/webtools/bouncer/webroot/index.php | 87 ++++++ .../webtools/bouncer/webroot/js/vendors.php | 36 +++ 51 files changed, 2050 insertions(+) create mode 100644 mozilla/webtools/bouncer/.htaccess create mode 100644 mozilla/webtools/bouncer/README create mode 100644 mozilla/webtools/bouncer/config/acl.ini.php create mode 100644 mozilla/webtools/bouncer/config/bootstrap.php create mode 100644 mozilla/webtools/bouncer/config/core.php create mode 100644 mozilla/webtools/bouncer/config/database.php.default create mode 100644 mozilla/webtools/bouncer/config/inflections.php create mode 100644 mozilla/webtools/bouncer/config/routes.php create mode 100644 mozilla/webtools/bouncer/config/sql/db_acl.sql create mode 100644 mozilla/webtools/bouncer/config/sql/sessions.sql create mode 100644 mozilla/webtools/bouncer/controllers/files_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/locales_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/mirrors_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/platforms_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/regions_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/templates_controller.php create mode 100644 mozilla/webtools/bouncer/controllers/users_controller.php create mode 100644 mozilla/webtools/bouncer/index.php create mode 100644 mozilla/webtools/bouncer/models/file.php create mode 100644 mozilla/webtools/bouncer/models/locale.php create mode 100644 mozilla/webtools/bouncer/models/mirror.php create mode 100644 mozilla/webtools/bouncer/models/platform.php create mode 100644 mozilla/webtools/bouncer/models/region.php create mode 100644 mozilla/webtools/bouncer/models/template.php create mode 100644 mozilla/webtools/bouncer/models/user.php create mode 100644 mozilla/webtools/bouncer/views/dashboard.thtml create mode 100644 mozilla/webtools/bouncer/views/helpers/pagination.php create mode 100644 mozilla/webtools/bouncer/views/layouts/default.thtml create mode 100644 mozilla/webtools/bouncer/views/mirrors/destroy.thtml create mode 100644 mozilla/webtools/bouncer/views/mirrors/index.thtml create mode 100644 mozilla/webtools/bouncer/views/mirrors/view.thtml create mode 100644 mozilla/webtools/bouncer/views/pages/dashboard.thtml create mode 100644 mozilla/webtools/bouncer/webroot/.htaccess create mode 100644 mozilla/webtools/bouncer/webroot/css.php create mode 100644 mozilla/webtools/bouncer/webroot/css/bouncer.screen.css create mode 100644 mozilla/webtools/bouncer/webroot/css/cake.basic.css create mode 100644 mozilla/webtools/bouncer/webroot/css/cake.forms.css create mode 100644 mozilla/webtools/bouncer/webroot/css/images/arrow.gif create mode 100755 mozilla/webtools/bouncer/webroot/css/images/container_bg.gif create mode 100755 mozilla/webtools/bouncer/webroot/css/images/logo.gif create mode 100755 mozilla/webtools/bouncer/webroot/css/images/nav_bg.gif create mode 100755 mozilla/webtools/bouncer/webroot/css/images/nav_item_bg.gif create mode 100644 mozilla/webtools/bouncer/webroot/favicon.ico create mode 100644 mozilla/webtools/bouncer/webroot/img/bouncer.icon.png create mode 100644 mozilla/webtools/bouncer/webroot/img/bouncer.logo.png create mode 100644 mozilla/webtools/bouncer/webroot/img/cake.power.png create mode 100644 mozilla/webtools/bouncer/webroot/img/favicon.ico create mode 100644 mozilla/webtools/bouncer/webroot/img/w3c_css.png create mode 100644 mozilla/webtools/bouncer/webroot/img/w3c_xhtml10.png create mode 100644 mozilla/webtools/bouncer/webroot/index.php create mode 100644 mozilla/webtools/bouncer/webroot/js/vendors.php diff --git a/mozilla/webtools/bouncer/.htaccess b/mozilla/webtools/bouncer/.htaccess new file mode 100644 index 00000000000..735c2f462a9 --- /dev/null +++ b/mozilla/webtools/bouncer/.htaccess @@ -0,0 +1,5 @@ + + RewriteEngine on + RewriteRule ^$ webroot/ [L] + RewriteRule (.*) webroot/$1 [L] + diff --git a/mozilla/webtools/bouncer/README b/mozilla/webtools/bouncer/README new file mode 100644 index 00000000000..1a336af97ad --- /dev/null +++ b/mozilla/webtools/bouncer/README @@ -0,0 +1,48 @@ +Mozilla Firefox Uninstall Survey +================================ + + +How To Install +-------------- + +Assumptions: + 1) You've got a working database with the appropriate schema + 2) You've got cake setup on your server already. The code you're looking at now + is just what is in the /app/ directory - everything else will have to be on your + server already. + +Steps: + +1) Copy config/database.php.default to config/database.php and fill in your database +values (if you're only doing production, just fill in the production area). + +2) Edit /webroot/index.php. + Define ROOT: + If you're installing this in your home directory, ROOT should be: + + DS.'home'.DS.'username'.DS.'public_html' + + Define APP_DIR: + ROOT is the parent directory of the app, this is the actual app. + Continuing the example above, if people are going to go to: + http://server.com/~username/bouncer/ to get to the app, APP_DIR should be: + + bouncer + + Define CAKE_CORE_INCLUDE_PATH: + This is the path to the actual cake install on your server. For example: + + DS.'usr'.DS.'local'.DS.'lib'.DS.'php'.DS.'cake' + +3) Edit /webroot/.htaccess. Add a RewriteBase line below the line that says 'RewriteEngine On'. +For our example, we would add the line: + + RewriteBase /~username/bouncer + +4) Edit /.htaccess. Add the same RewriteBase line from step 3 directly below the +'RewriteEngine On' line. + + + + +Questions? Email clouserw@mozilla.com diff --git a/mozilla/webtools/bouncer/config/acl.ini.php b/mozilla/webtools/bouncer/config/acl.ini.php new file mode 100644 index 00000000000..71caad8d626 --- /dev/null +++ b/mozilla/webtools/bouncer/config/acl.ini.php @@ -0,0 +1,76 @@ +; +; SVN FILE: $Id: acl.ini.php,v 1.1.1.1 2006-06-09 18:14:09 mike.morgan%oregonstate.edu Exp $ +;/** +; * Short description for file. +; * +; * +; * PHP versions 4 and 5 +; * +; * CakePHP : Rapid Development Framework +; * Copyright (c) 2006, Cake Software Foundation, Inc. +; * 1785 E. Sahara Avenue, Suite 490-204 +; * Las Vegas, Nevada 89104 +; * +; * Licensed under The MIT License +; * Redistributions of files must retain the above copyright notice. +; * +; * @filesource +; * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. +; * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project +; * @package cake +; * @subpackage cake.app.config +; * @since CakePHP v 0.10.0.1076 +; * @version $Revision: 1.1.1.1 $ +; * @modifiedby $LastChangedBy: phpnut $ +; * @lastmodified $Date: 2006-06-09 18:14:09 $ +; * @license http://www.opensource.org/licenses/mit-license.php The MIT License +; */ + +; acl.ini.php - Cake ACL Configuration +; --------------------------------------------------------------------- +; Use this file to specify user permissions. +; aco = access control object (something in your application) +; aro = access request object (something requesting access) +; +; User records are added as follows: +; +; [uid] +; groups = group1, group2, group3 +; allow = aco1, aco2, aco3 +; deny = aco4, aco5, aco6 +; +; Group records are added in a similar manner: +; +; [gid] +; allow = aco1, aco2, aco3 +; deny = aco4, aco5, aco6 +; +; The allow, deny, and groups sections are all optional. +; NOTE: groups names *cannot* ever be the same as usernames! +; +; ACL permissions are checked in the following order: +; 1. Check for user denies (and DENY if specified) +; 2. Check for user allows (and ALLOW if specified) +; 3. Gather user's groups +; 4. Check group denies (and DENY if specified) +; 5. Check group allows (and ALLOW if specified) +; 6. If no aro, aco, or group information is found, DENY +; +; --------------------------------------------------------------------- + +;------------------------------------- +;Users +;------------------------------------- + +[username-goes-here] +groups = group1, group2 +deny = aco1, aco2 +allow = aco3, aco4 + +;------------------------------------- +;Groups +;------------------------------------- + +[groupname-goes-here] +deny = aco5, aco6 +allow = aco7, aco8 \ No newline at end of file diff --git a/mozilla/webtools/bouncer/config/bootstrap.php b/mozilla/webtools/bouncer/config/bootstrap.php new file mode 100644 index 00000000000..78beb728779 --- /dev/null +++ b/mozilla/webtools/bouncer/config/bootstrap.php @@ -0,0 +1,46 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.config + * @since CakePHP v 0.10.8.2117 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * + * This file is loaded automatically by the app/webroot/index.php file after the core bootstrap.php is loaded + * This is an application wide file to load any function that is not used within a class define. + * You can also use this to include or require any files in your application. + * + */ +/** + * The settings below can be used to set additional paths to models, views and controllers. + * This is related to Ticket #470 (https://trac.cakephp.org/ticket/470) + * + * $modelPaths = array('full path to models', 'second full path to models', 'etc...'); + * $viewPaths = array('this path to views', 'second full path to views', 'etc...'); + * $controllerPaths = array('this path to controllers', 'second full path to controllers', 'etc...'); + * + */ +//EOF +?> \ No newline at end of file diff --git a/mozilla/webtools/bouncer/config/core.php b/mozilla/webtools/bouncer/config/core.php new file mode 100644 index 00000000000..7f1718fb5b3 --- /dev/null +++ b/mozilla/webtools/bouncer/config/core.php @@ -0,0 +1,147 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.config + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * If you do not have mod rewrite on your system + * or if you prefer to use CakePHP pretty urls. + * uncomment the line below. + * Note: If you do have mod rewrite but prefer the + * CakePHP pretty urls, you also have to remove the + * .htaccess files + * release/.htaccess + * release/app/.htaccess + * release/app/webroot/.htaccess + */ +// define ('BASE_URL', env('SCRIPT_NAME')); +/** + * Set debug level here: + * - 0: production + * - 1: development + * - 2: full debug with sql + * - 3: full debug with sql and dump of the current object + * + * In production, the "flash messages" redirect after a time interval. + * With the other debug levels you get to click the "flash message" to continue. + * + */ + define('DEBUG', 2); +/** + * Turn of caching checking wide. + * You must still use the controller var cacheAction inside you controller class. + * You can either set it controller wide, or in each controller method. + * use var $cacheAction = true; or in the controller method $this->cacheAction = true; + */ + define('CACHE_CHECK', false); +/** + * Error constant. Used for differentiating error logging and debugging. + * Currently PHP supports LOG_DEBUG + */ + define('LOG_ERROR', 2); +/** + * CakePHP includes 3 types of session saves + * database or file. Set this to your preferred method. + * If you want to use your own save handler place it in + * app/config/name.php DO NOT USE file or database as the name. + * and use just the name portion below. + * + * Setting this to cake will save files to /cakedistro/tmp directory + * Setting it to php will use the php default save path + * Setting it to database will use the database + * + * + */ + define('CAKE_SESSION_SAVE', 'php'); +/** + * If using you own table name for storing sessions + * set the table name here. + * DO NOT INCLUDE PREFIX IF YOU HAVE SET ONE IN database.php + * + */ + define('CAKE_SESSION_TABLE', 'cake_sessions'); +/** + * Set a random string of used in session. + * + */ + define('CAKE_SESSION_STRING', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); +/** + * Set the name of session cookie + * + */ + define('CAKE_SESSION_COOKIE', 'CAKEPHP'); +/** + * Set level of Cake security. + * + */ + define('CAKE_SECURITY', 'high'); +/** + * Set Cake Session time out. + * If CAKE_SECURITY define is set + * high: multiplied by 10 + * medium: is multiplied by 100 + * low is: multiplied by 300 + * + * Number below is seconds. + */ + define('CAKE_SESSION_TIMEOUT', '120'); +/** + * Uncomment the define below to use cake built in admin routes. + * You can set this value to anything you want. + * All methods related to the admin route should be prefixed with the + * name you set CAKE_ADMIN to. + * For example: admin_index, admin_edit + */ +// define('CAKE_ADMIN', 'admin'); +/** + * The define below is used to turn cake built webservices + * on or off. Default setting is off. + */ + define('WEBSERVICES', 'off'); +/** + * Compress output CSS (removing comments, whitespace, repeating tags etc.) + * This requires a/var/cache directory to be writable by the web server (caching). + * To use, prefix the CSS link URL with '/ccss/' instead of '/css/' or use Controller::cssTag(). + */ + define('COMPRESS_CSS', false); +/** + * If set to true, helpers would output data instead of returning it. + */ + define('AUTO_OUTPUT', false); +/** + * If set to false, session would not automatically be started. + */ + define('AUTO_SESSION', true); +/** + * Set the max size of file to use md5() . + */ + define('MAX_MD5SIZE', (5 * 1024) * 1024); +/** + * To use Access Control Lists with Cake... + */ + define('ACL_CLASSNAME', 'DB_ACL'); + define('ACL_FILENAME', 'dbacl' . DS . 'db_acl'); +?> diff --git a/mozilla/webtools/bouncer/config/database.php.default b/mozilla/webtools/bouncer/config/database.php.default new file mode 100644 index 00000000000..31d9308b5b6 --- /dev/null +++ b/mozilla/webtools/bouncer/config/database.php.default @@ -0,0 +1,74 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.config + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * In this file you set up your database connection details. + * + * @package cake + * @subpackage cake.config + */ +/** + * Database configuration class. + * You can specify multiple configurations for production, development and testing. + * + * driver => + * mysql, postgres, sqlite, adodb-drivername, pear-drivername + * + * connect => + * MySQL set the connect to either mysql_pconnect of mysql_connect + * PostgreSQL set the connect to either pg_pconnect of pg_connect + * SQLite set the connect to sqlite_popen sqlite_open + * ADOdb set the connect to one of these + * (http://phplens.com/adodb/supported.databases.html) and + * append it '|p' for persistent connection. (mssql|p for example, or just mssql for not persistent) + * + * host => + * the host you connect to the database + * MySQL 'localhost' to add a port number use 'localhost:port#' + * PostgreSQL 'localhost' to add a port number use 'localhost port=5432' + * + */ +class DATABASE_CONFIG +{ + var $default = array('driver' => 'mysql', + 'connect' => 'mysql_connect', + 'host' => 'localhost', + 'login' => 'user', + 'password' => 'password', + 'database' => 'project_name', + 'prefix' => ''); + + var $test = array('driver' => 'mysql', + 'connect' => 'mysql_connect', + 'host' => 'localhost', + 'login' => 'user', + 'password' => 'password', + 'database' => 'project_name-test', + 'prefix' => ''); +} +?> \ No newline at end of file diff --git a/mozilla/webtools/bouncer/config/inflections.php b/mozilla/webtools/bouncer/config/inflections.php new file mode 100644 index 00000000000..826c9a72f25 --- /dev/null +++ b/mozilla/webtools/bouncer/config/inflections.php @@ -0,0 +1,72 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.config + * @since CakePHP v 1.0.0.2312 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * This is a key => value array of regex used to match words. + * If key matches then the value is returned. + * + * $pluralRules = array('/(s)tatus$/i' => '\1\2tatuses', '/^(ox)$/i' => '\1\2en', '/([m|l])ouse$/i' => '\1ice'); + */ + $pluralRules = array(); +/** + * This is a key only array of plural words that should not be inflected. + * Notice the last comma + * + * $uninflectedPlural = array('.*[nrlm]ese', '.*deer', '.*fish', '.*measles', '.*ois', '.*pox'); + */ + $uninflectedPlural = array(); +/** + * This is a key => value array of plural irregular words. + * If key matches then the value is returned. + * + * $irregularPlural = array('atlas' => 'atlases', 'beef' => 'beefs', 'brother' => 'brothers') + */ + $irregularPlural = array(); +/** + * This is a key => value array of regex used to match words. + * If key matches then the value is returned. + * + * $singularRules = array('/(s)tatuses$/i' => '\1\2tatus', '/(matr)ices$/i' =>'\1ix','/(vert|ind)ices$/i') + */ + $singularRules = array(); +/** + * This is a key only array of singular words that should not be inflected. + * You should not have to change this value below if you do change it use same format + * as the $uninflectedPlural above. + */ + $uninflectedSingular = $uninflectedPlural; +/** + * This is a key => value array of singular irregular words. + * Most of the time this will be a reverse of the above $irregularPlural array + * You should not have to change this value below if you do change it use same format + * + * $irregularSingular = array('atlases' => 'atlas', 'beefs' => 'beef', 'brothers' => 'brother') + */ + $irregularSingular = array_flip($irregularPlural); +?> \ No newline at end of file diff --git a/mozilla/webtools/bouncer/config/routes.php b/mozilla/webtools/bouncer/config/routes.php new file mode 100644 index 00000000000..1b3fd37da39 --- /dev/null +++ b/mozilla/webtools/bouncer/config/routes.php @@ -0,0 +1,46 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.config + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * Here, we are connecting '/' (base path) to controller called 'Pages', + * its action called 'display', and we pass a param to select the view file + * to use (in this case, /app/views/pages/home.thtml)... + */ + $Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'dashboard')); +/** + * ...and connect the rest of 'Pages' controller's urls. + */ + $Route->connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); +/** + * Then we connect url '/test' to our test controller. This is helpfull in + * developement. + */ + $Route->connect('/tests', array('controller' => 'tests', 'action' => 'index')); +?> diff --git a/mozilla/webtools/bouncer/config/sql/db_acl.sql b/mozilla/webtools/bouncer/config/sql/db_acl.sql new file mode 100644 index 00000000000..8c7aae84fdf --- /dev/null +++ b/mozilla/webtools/bouncer/config/sql/db_acl.sql @@ -0,0 +1,30 @@ +CREATE TABLE `acos` ( + `id` int(11) NOT NULL auto_increment, + `model` varchar(255) NOT NULL default '', + `object_id` int(11) default NULL, + `alias` varchar(255) NOT NULL default '', + `lft` int(11) default NULL, + `rght` int(11) default NULL, + PRIMARY KEY (`id`) +); + +CREATE TABLE `aros` ( + `id` int(11) NOT NULL auto_increment, + `model` varchar(255) NOT NULL default '', + `user_id` int(11) default NULL, + `alias` varchar(255) NOT NULL default '', + `lft` int(11) default NULL, + `rght` int(11) default NULL, + PRIMARY KEY (`id`) +); + +CREATE TABLE `aros_acos` ( + `id` int(11) NOT NULL auto_increment, + `aro_id` int(11) default NULL, + `aco_id` int(11) default NULL, + `_create` int(1) NOT NULL default '0', + `_read` int(1) NOT NULL default '0', + `_update` int(1) NOT NULL default '0', + `_delete` int(11) NOT NULL default '0', + PRIMARY KEY (`id`) +); diff --git a/mozilla/webtools/bouncer/config/sql/sessions.sql b/mozilla/webtools/bouncer/config/sql/sessions.sql new file mode 100644 index 00000000000..76a84ea6c59 --- /dev/null +++ b/mozilla/webtools/bouncer/config/sql/sessions.sql @@ -0,0 +1,11 @@ +-- @copyright Copyright (c) 2006, Cake Software Foundation, Inc. +-- @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project +-- @since CakePHP v 0.10.8.1997 +-- @version $Revision: 1.1.1.1 $ + +CREATE TABLE cake_sessions ( + id varchar(255) NOT NULL default '', + data text, + expires int(11) default NULL, + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/mozilla/webtools/bouncer/controllers/files_controller.php b/mozilla/webtools/bouncer/controllers/files_controller.php new file mode 100644 index 00000000000..cebacd1c261 --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/files_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/controllers/locales_controller.php b/mozilla/webtools/bouncer/controllers/locales_controller.php new file mode 100644 index 00000000000..ffadb21534d --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/locales_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/controllers/mirrors_controller.php b/mozilla/webtools/bouncer/controllers/mirrors_controller.php new file mode 100644 index 00000000000..0d410b4269e --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/mirrors_controller.php @@ -0,0 +1,77 @@ +sanitize = &new Sanitize; + $this->show = empty($_GET['show'])? '10': $this->sanitize->sql($_GET['show']); + $this->sortBy = empty($_GET['sort'])? 'Mirror.mirror_id': $this->sanitize->sql($_GET['sort']); + $this->direction = empty($_GET['direction'])? 'desc': $this->sanitize->sql($_GET['direction']); + $this->page = empty($_GET['page'])? '1': $this->sanitize->sql($_GET['page']); + $this->order = $this->sortBy.' '.strtoupper($this->direction); + parent::__construct(); + } + + function index() + { + $data = $this->Mirror->findAll($criteria=null, $fields=null, $this->order, $this->show, $this->page); + + $paging['style'] = 'html'; //set the style of the links: html or ajax + + foreach ($this->Mirror->_tableInfo->value as $column) { + + // If the sortBy is the same as the current link, we want to switch it. + // By default, we don't -- so that when a user changes columns, the order doesn't also reverse. + if ($this->sortBy == $column['name']) { + switch ($this->direction) { + case 'desc': + $link_direction = 'asc'; + break; + case 'asc': + default: + $link_direction = 'desc'; + break; + } + } else { + $link_direction =& $this->direction; + } + $paging['headers'][$column['name']] = $this->sanitize->html('/mirrors/?show='.$this->show.'&sort='.$column['name'].'&direction='.$link_direction.'&page='.$this->page); + } + + $paging['link'] = $this->sanitize->html('./?show='.$this->show.'&sort='.$this->sortBy.'&direction='.$this->direction.'&page='); + $paging['count'] = $this->Mirror->findCount($criteria=null,'1000'); + $paging['page'] = $this->page; + $paging['limit'] = $this->show; + $paging['show'] = array('10','25','50','100'); + + $this->set('paging',$paging); + $this->set('data',$data); + } + + function view($id) { + $this->Mirror->setId($id); + $this->set('data', $this->Mirror->read()); + } + + function destroy($id) { + if (empty($this->params['data'])) { + $this->set('data', $this->Mirror->read()); + $this->render(); + } elseif ($this->Mirror->del($id)) { + $this->flash('Mirror '.$id.' has been deleted.', '/mirrors'); + } + } +} +?> diff --git a/mozilla/webtools/bouncer/controllers/platforms_controller.php b/mozilla/webtools/bouncer/controllers/platforms_controller.php new file mode 100644 index 00000000000..1ee21ef40ee --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/platforms_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/controllers/regions_controller.php b/mozilla/webtools/bouncer/controllers/regions_controller.php new file mode 100644 index 00000000000..8d36c17d2a3 --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/regions_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/controllers/templates_controller.php b/mozilla/webtools/bouncer/controllers/templates_controller.php new file mode 100644 index 00000000000..abd14c7dbd2 --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/templates_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/controllers/users_controller.php b/mozilla/webtools/bouncer/controllers/users_controller.php new file mode 100644 index 00000000000..3b5eccb2d93 --- /dev/null +++ b/mozilla/webtools/bouncer/controllers/users_controller.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/index.php b/mozilla/webtools/bouncer/index.php new file mode 100644 index 00000000000..7a59070ffd9 --- /dev/null +++ b/mozilla/webtools/bouncer/index.php @@ -0,0 +1,26 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app + * @since CakePHP v 0.10.0.1076 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +require 'webroot' . DIRECTORY_SEPARATOR . 'index.php'; +?> \ No newline at end of file diff --git a/mozilla/webtools/bouncer/models/file.php b/mozilla/webtools/bouncer/models/file.php new file mode 100644 index 00000000000..8666af07b78 --- /dev/null +++ b/mozilla/webtools/bouncer/models/file.php @@ -0,0 +1,6 @@ + diff --git a/mozilla/webtools/bouncer/models/locale.php b/mozilla/webtools/bouncer/models/locale.php new file mode 100644 index 00000000000..0d6fe623805 --- /dev/null +++ b/mozilla/webtools/bouncer/models/locale.php @@ -0,0 +1,7 @@ + diff --git a/mozilla/webtools/bouncer/models/mirror.php b/mozilla/webtools/bouncer/models/mirror.php new file mode 100644 index 00000000000..a5598a2b827 --- /dev/null +++ b/mozilla/webtools/bouncer/models/mirror.php @@ -0,0 +1,15 @@ + + array( 'className' => 'Region', + 'joinTable' => 'mirror_region_map', + 'foreignKey' => 'mirror_id', + 'associationForeignKey' => 'region_id', + 'order' => 'region_name desc', + 'uniq' => true ) + ); +} +?> diff --git a/mozilla/webtools/bouncer/models/platform.php b/mozilla/webtools/bouncer/models/platform.php new file mode 100644 index 00000000000..8149efd7b7c --- /dev/null +++ b/mozilla/webtools/bouncer/models/platform.php @@ -0,0 +1,7 @@ + diff --git a/mozilla/webtools/bouncer/models/region.php b/mozilla/webtools/bouncer/models/region.php new file mode 100644 index 00000000000..e53dde3c7ab --- /dev/null +++ b/mozilla/webtools/bouncer/models/region.php @@ -0,0 +1,7 @@ + diff --git a/mozilla/webtools/bouncer/models/template.php b/mozilla/webtools/bouncer/models/template.php new file mode 100644 index 00000000000..b3746885d82 --- /dev/null +++ b/mozilla/webtools/bouncer/models/template.php @@ -0,0 +1,7 @@ + diff --git a/mozilla/webtools/bouncer/models/user.php b/mozilla/webtools/bouncer/models/user.php new file mode 100644 index 00000000000..511f9b164e1 --- /dev/null +++ b/mozilla/webtools/bouncer/models/user.php @@ -0,0 +1,7 @@ + diff --git a/mozilla/webtools/bouncer/views/dashboard.thtml b/mozilla/webtools/bouncer/views/dashboard.thtml new file mode 100644 index 00000000000..0b00ef0da9b --- /dev/null +++ b/mozilla/webtools/bouncer/views/dashboard.thtml @@ -0,0 +1,8 @@ +

Dashboard

+ +

Foo

+

Foo

+

Foo

+

Foo

+

Foo

+

Bar

diff --git a/mozilla/webtools/bouncer/views/helpers/pagination.php b/mozilla/webtools/bouncer/views/helpers/pagination.php new file mode 100644 index 00000000000..2ba50583d77 --- /dev/null +++ b/mozilla/webtools/bouncer/views/helpers/pagination.php @@ -0,0 +1,211 @@ +link = $paging['link']; + $this->show = $paging['show']; + $this->page = $paging['page']; + $this->style = $paging['style']; + + $pageCount = ceil($paging['count'] / $paging['limit'] ); + + $this->_pageDetails = array( + 'page'=>$paging['page'], + 'recordCount'=>$paging['count'], + 'pageCount' =>$pageCount, + 'nextPage'=> ($paging['page'] < $pageCount) ? $paging['page']+1 : '', + 'previousPage'=> ($paging['page']>1) ? $paging['page']-1 : '', + 'limit'=>$paging['limit'] + ); + + return true; + } + return false; + } + /** + * Displays limits for the query + * + * @param string $text - text to display before limits + * @param string $separator - display a separate between limits + * + **/ + function show($text=null, $separator=null) + { + if (empty($this->_pageDetails)) { return false; } + if ( !empty($this->_pageDetails['recordCount']) ) + { + $t = ''; + if(is_array($this->show)) + { + $t = $text.$separator; + foreach($this->show as $value) + { + $link = preg_replace('/show=(.*?)&/','show='.$value.'&',$this->link); + if($this->_pageDetails['limit'] == $value) + { + $t .= ''.$value.''.$separator; + } + else + { + if($this->style == 'ajax') + { + $t .= $this->Ajax->linkToRemote($value, array("fallback"=>$this->action."#","url" => $link.$this->_pageDetails['page'],"update" => "ajax_update","method"=>"get")).$separator; + } + else + { + $t .= $this->Html->link($value,$link.$this->_pageDetails['page']).$separator; + } + } + } + } + return $t; + } + return false; + + } + /** + * Displays current result information + * + * @param string $text - text to preceeding the number of results + * + **/ + function result($text) + { + if (empty($this->_pageDetails)) { return false; } + if ( !empty($this->_pageDetails['recordCount']) ) + { + if($this->_pageDetails['recordCount'] > $this->_pageDetails['limit']) + { + $start_row = $this->_pageDetails['page'] > 1 ? (($this->_pageDetails['page']-1)*$this->_pageDetails['limit'])+1:'1'; + $end_row = ($this->_pageDetails['recordCount'] < ($start_row + $this->_pageDetails['limit']-1)) ? $this->_pageDetails['recordCount'] : ($start_row + $this->_pageDetails['limit']-1); + $t = $text.$start_row.'-'.$end_row.' of '.$this->_pageDetails['recordCount']; + } + else + { + $t = $text.$this->_pageDetails['recordCount']; + } + return $t; + } + return false; + } + /** + * Returns a "Google style" list of page numbers + * + * @param string $separator - defaults to null + * @param string $prefix - defaults to null. If set, displays prefix before page links. + * @param int $pageSetLength - defaults to 10. Maximum number of pages to show. + * @param string $prevLabel - defaults to null. If set, displays previous link. + * @param string $nextLabel - defaults to null. If set, displays next link. + * + **/ + function pageNumbers($separator=null, $prefix=null, $pageSetLength=10, $prevLabel=null, $nextLabel=null) + { + + if (empty($this->_pageDetails) || $this->_pageDetails['pageCount'] == 1) { return false; } + + $t = array(); + + $modulo = $this->_pageDetails['page'] % $pageSetLength; + if ($modulo) + { // any number > 0 + $prevSetLastPage = $this->_pageDetails['page'] - $modulo; + } else { // 0, last page of set + $prevSetLastPage = $this->_pageDetails['page'] - $pageSetLength; + } + //$nextSetFirstPage = $prevSetLastPage + $pageSetLength + 1; + + if ($prevLabel) $t[] = $this->prevPage($prevLabel); + + // loops through each page number + $pageSet = $prevSetLastPage + $pageSetLength; + if ($pageSet > $this->_pageDetails['pageCount']) $pageSet = $this->_pageDetails['pageCount']; + for ($pageIndex = $prevSetLastPage+1; $pageIndex <= $pageSet; $pageIndex++) + { + if ($pageIndex == $this->_pageDetails['page']) + { + $t[] = ''.$pageIndex.''; + } + else + { + if($this->style == 'ajax') + { + $t[] = $this->Ajax->linkToRemote($pageIndex, array("fallback"=>$this->action."#","url" =>$this->link.$pageIndex,"update" => "ajax_update","method"=>"get")); + } else { + $t[] = $this->Html->link($pageIndex,$this->link.$pageIndex); + } + } + } + + if ($nextLabel) $t[] = $this->nextPage($nextLabel); + + $t = implode($separator, $t); + + return $prefix.$t; + } + /** + * Displays a link to the previous page, where the page doesn't exist then + * display the $text + * + * @param string $text - text display: defaults to next + * + **/ + function prevPage($text='prev') + { + if (empty($this->_pageDetails)) { return false; } + if ( !empty($this->_pageDetails['previousPage']) ) + { + if($this->style == 'ajax') + { + $t = $this->Ajax->linkToRemote($text, array("fallback"=>$this->action."#","url" => $this->link.$this->_pageDetails['previousPage'],"update" => "ajax_update","method"=>"get")); + } + else + { + $t = $this->Html->link($text,$this->link.$this->_pageDetails['previousPage']); + } + return $t; + } + return false; + } + /** + * Displays a link to the next page, where the page doesn't exist then + * display the $text + * + * @param string $text - text to display: defaults to next + * + **/ + function nextPage($text='next') + { + if (empty($this->_pageDetails)) { return false; } + if (!empty($this->_pageDetails['nextPage'])) + { + if($this->style == 'ajax') + { + $t = $this->Ajax->linkToRemote($text, array("fallback"=>$this->action."#","url" => $this->link.$this->_pageDetails['nextPage'],"update" => "ajax_update","method"=>"get")); + } + else + { + $t = $this->Html->link($text,$this->link.$this->_pageDetails['nextPage']); + } + return $t; + } + return false; + } + +} +?> diff --git a/mozilla/webtools/bouncer/views/layouts/default.thtml b/mozilla/webtools/bouncer/views/layouts/default.thtml new file mode 100644 index 00000000000..db267cdbd23 --- /dev/null +++ b/mozilla/webtools/bouncer/views/layouts/default.thtml @@ -0,0 +1,92 @@ + + * Copyright (c) 2005, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2005, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.cake.libs.view.templates.pages + * @since CakePHP v 0.10.0.1076 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +?> + + + + <?php echo $title_for_layout?> :: Bouncer v2.0 + + + charset('UTF-8')?> + css('bouncer.screen')?> + css('bouncer.print')?> + + + +
+ + +
+ controller->Session)) $this->controller->Session->flash(); ?> + +
+ + + + + + +
+ + diff --git a/mozilla/webtools/bouncer/views/mirrors/destroy.thtml b/mozilla/webtools/bouncer/views/mirrors/destroy.thtml new file mode 100644 index 00000000000..6b426632045 --- /dev/null +++ b/mozilla/webtools/bouncer/views/mirrors/destroy.thtml @@ -0,0 +1,8 @@ +

+

+

+
+

Are you sure you want to delete this mirror?

+
Nevermind
+ +
diff --git a/mozilla/webtools/bouncer/views/mirrors/index.thtml b/mozilla/webtools/bouncer/views/mirrors/index.thtml new file mode 100644 index 00000000000..bd10158dd89 --- /dev/null +++ b/mozilla/webtools/bouncer/views/mirrors/index.thtml @@ -0,0 +1,46 @@ +

Mirrors

+ +setPaging($paging)):?> + + + + + + + + + + + + + + + + + + + + + + +
link('ID',$paging['headers']['mirror_id']); ?>link('Name',$paging['headers']['mirror_name']); ?>link('URL',$paging['headers']['mirror_baseurl']); ?>link('Rating',$paging['headers']['mirror_rating']); ?>link('Active',$paging['headers']['mirror_active']); ?>Action
+ link( $mirror['Mirror']['mirror_baseurl'], "/mirrors/view/{$mirror['Mirror']['mirror_id']}" ); ?> + + link('Edit',"/mirrors/edit/{$mirror['Mirror']['mirror_id']}",'class="action"')?> + link('Delete',"/mirrors/destroy/{$mirror['Mirror']['mirror_id']}",'class="action"','Are you sure you want to delete?')?> +
+ +setPaging($paging)):?> + + diff --git a/mozilla/webtools/bouncer/views/mirrors/view.thtml b/mozilla/webtools/bouncer/views/mirrors/view.thtml new file mode 100644 index 00000000000..5916bd8621f --- /dev/null +++ b/mozilla/webtools/bouncer/views/mirrors/view.thtml @@ -0,0 +1,3 @@ +

+

+

diff --git a/mozilla/webtools/bouncer/views/pages/dashboard.thtml b/mozilla/webtools/bouncer/views/pages/dashboard.thtml new file mode 100644 index 00000000000..0b00ef0da9b --- /dev/null +++ b/mozilla/webtools/bouncer/views/pages/dashboard.thtml @@ -0,0 +1,8 @@ +

Dashboard

+ +

Foo

+

Foo

+

Foo

+

Foo

+

Foo

+

Bar

diff --git a/mozilla/webtools/bouncer/webroot/.htaccess b/mozilla/webtools/bouncer/webroot/.htaccess new file mode 100644 index 00000000000..0e0ecab7d2e --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/.htaccess @@ -0,0 +1,6 @@ + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] + diff --git a/mozilla/webtools/bouncer/webroot/css.php b/mozilla/webtools/bouncer/webroot/css.php new file mode 100644 index 00000000000..576c8b9ea5d --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/css.php @@ -0,0 +1,101 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.webroot + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * Enter description here... + */ + require(CONFIGS . 'paths.php'); + require(CAKE . 'basics.php'); + require(LIBS . 'folder.php'); + require(LIBS . 'file.php'); + require(LIBS . 'legacy.php'); +/** + * Enter description here... + * + * @param unknown_type $path + * @param unknown_type $name + * @return unknown + */ + function make_clean_css($path, $name) { + require(VENDORS . 'csspp' . DS . 'csspp.php'); + $data =file_get_contents($path); + $csspp =new csspp(); + $output=$csspp->compress($data); + $ratio =100 - (round(strlen($output) / strlen($data), 3) * 100); + $output=" /* file: $name, ratio: $ratio% */ " . $output; + return $output; + } +/** + * Enter description here... + * + * @param unknown_type $path + * @param unknown_type $content + * @return unknown + */ + function write_css_cache($path, $content) { + if (!is_dir(dirname($path))) { + mkdir(dirname($path)); + } + $cache=new File($path); + return $cache->write($content); + } + + if (preg_match('|\.\.|', $url) || !preg_match('|^ccss/(.+)$|i', $url, $regs)) { + die('Wrong file name.'); + } + + $filename = 'css/' . $regs[1]; + $filepath = CSS . $regs[1]; + $cachepath = CACHE . 'css' . DS . str_replace(array('/','\\'), '-', $regs[1]); + + if (!file_exists($filepath)) { + die('Wrong file name.'); + } + + if (file_exists($cachepath)) { + $templateModified=filemtime($filepath); + $cacheModified =filemtime($cachepath); + + if ($templateModified > $cacheModified) { + $output=make_clean_css($filepath, $filename); + write_css_cache($cachepath, $output); + } else { + $output = file_get_contents($cachepath); + } + } else { + $output=make_clean_css($filepath, $filename); + write_css_cache($cachepath, $output); + } + + header("Date: " . date("D, j M Y G:i:s ", $templateModified) . 'GMT'); + header("Content-Type: text/css"); + header("Expires: " . gmdate("D, j M Y H:i:s", time() + DAY) . " GMT"); + header("Cache-Control: cache"); // HTTP/1.1 + header("Pragma: cache"); // HTTP/1.0 + print $output; +?> \ No newline at end of file diff --git a/mozilla/webtools/bouncer/webroot/css/bouncer.screen.css b/mozilla/webtools/bouncer/webroot/css/bouncer.screen.css new file mode 100644 index 00000000000..22aecc3ac41 --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/css/bouncer.screen.css @@ -0,0 +1,147 @@ +body { + margin: 0; + padding: 0; +} + +#skip-to-nav { + display: none; +} + +#header { + background-color: #333; + border-bottom: 2px solid #ccc; + height: 70px; +} + +#content { + padding: 0 1em; + font-family: verdana, arial, sans-serif; +} + +#content h1,h2,h3,h4,h5 { + border-bottom: 1px solid #eee; + color: #337; + font-family: arial, verdana, sans-serif; + margin: .2em 0; + padding: .2em 0; +} + +#content h1 { + font-size: 1.5em; +} + +#content h2 { + font-size: 1.3em; +} + +#content h3 { + font-size: 1.2em; +} + +#content h4 { + font-size: 1.0em; +} + +#content h5 { + font-size: 0.8em; +} + +#wrapper { + margin: 0; + padding: 0; +} + +#nav { + position: absolute; + right: 10px; + top: 2em; +} + +#nav ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +#nav ul li { + float: left; +} + +#nav ul li a { + background-color: #666; + border: 2px inset #000; + color: #eee; + display: block; + font-family: verdana, arial, sans-serif; + font-size: small; + font-weight: bold; + margin: 4px; + padding: 2px 5px; + text-decoration: none; +} + +#nav ul li a:hover { + border: 2px outset #000; + color: #666; + background-color: #eee; +} + +#footer { + background-color: #333; + border-top: 2px solid #ccc; + border-bottom: 2px solid #ccc; + color: #eee; + padding: .6em .4em .4em .4em; +} + +#footer a { + color: #ccc; +} + +.hidden { + display: none; +} + +.copyright { + color: #eee; + float: right; + margin: 0; + padding: 0; + font-size: x-small; + font-family: verdana, arial, sans-serif; +} + +.buttons { + margin: 0; + padding: 0; +} + +.buttons img { + border: none; +} + +.inav { + background: #eee; + border: 1px solid #ccc; + padding: .2em; +} + +.inav th { + background-color: #999; + color: blue; + font-size: small; + font-weight: bold; + line-height: 1.6em; + text-align: center; +} + +.inav th a { + color: blue; + display: block; + background-color: #999; + padding: 0 .5em; +} + +.inav th a:hover { + background-color: #fff; +} diff --git a/mozilla/webtools/bouncer/webroot/css/cake.basic.css b/mozilla/webtools/bouncer/webroot/css/cake.basic.css new file mode 100644 index 00000000000..6b9d77fa296 --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/css/cake.basic.css @@ -0,0 +1,268 @@ +*{ +margin:0; +padding:0; +} + +body{ +font-family:verdana,helvetica,arial,sans-serif; +font-size:12px; +text-align:center; +color:#fff; +background:#003d4c; +} + +/* +* General Style Info +*/ + +a{ +color:#003d4c; +text-decoration:none; +} +a:hover{ +color:#003d4c; +text-decoration:underline; +} + +a img{ +border:none; +} + +h1, h2,h3{ +font-family:'Gill Sans'; +font-size:28px; +font-weight:normal; +} +h1{ +padding:0.5em 0; +color:#003d4c; +} +em { + font-size: 12px; +} +h2{ +padding-top:0.15em; +margin:0.3em 0; +color:#e32; +} + +h3{ +font-size:18px; +padding-top:0.5em; +color:#003d4c; +} + +h4{ +color:#ff9966; +font-size:20px; +padding-top:0.5em; +font-weight:normal; +} + +blockquote{ +padding: 10px; +padding-left: 20px; +padding-right: 20px; +} + +#content ol, #content ul{ +margin:0 1em; +padding:0 2em; +} + +/* +* Layout +*/ + +#container{ +text-align:left; +margin-left:0px; +} + +#header{ +height:200px; +background:#003d4c; +} + +#header h1{ +color:#fff; +font-family: 'Gill Sans'; +font-size: 45px; +font-weight:normal; +} + +#header h1.logo { +float:left; +} + +#header h1.logo a{ +display:block; +width:226px; +height:176px; +background: transparent url('images/logo.gif') no-repeat top; +} + +#header h1.logo a:hover{ +background:url('images/logo.gif') no-repeat bottom; +} + +#content{ +width: auto; +min-width: 860px; +min-height: 720px; +padding:15px 20px 50px 20px; +margin: 0px 10px 0px 40px; +color:#333; +background:#fff ; +border-right: 6px solid #222; +} + +/* +* Navigation +*/ +#navigation{ +float:left; +height: 146px; +width:710px; +background:#003d4c url(images/nav_bg.gif) no-repeat; +padding-left: 20px; +} +#navigation ul{ + +} + +#navigation ul li{ +list-style-type:none; +display:inline; +} + +#navigation ul li a{ +font-weight:bold; +display:block; +float:left; +color:#000; +} + +#navigation ul li a span{ +display:block; +margin-right:12px; +padding:10px 6px 9px 9px; +} + +#navigation ul li.active a span{ +padding:10px 6px 9px 9px; +} + + + +#navigation ul li a:hover, #navigation ul li.active a{ +background:url(images/nav_item_bg.gif) no-repeat bottom right; +} + +#navigation ul li a:hover span, #navigation ul li.active a span{ +background:url(images/nav_item_bg.gif) no-repeat bottom left; +} + +#footer { + color: #fff; + background-color: #003d4c; + padding: 4px 10px; + text-align: right; +} +#footer a{ + color: #fff; +} +.left { + float:left; +} +.right { + float:right; +} +.clear { + clear:both; + height: 0px; + line-height: 0px; +} + + +/* tables */ + +table { + width: 100%; + border: 0px; + color:#333; + border: 1px solid #ccc; + background-color: #fff; + clear:both; + padding: 0; + margin: 0 0 2em 0; + white-space: normal; +} +th { + background-color: #ccc; + border-top: 1px solid #fff; + border-left: 1px solid #fff; + border-right: 1px solid #003d4c; + border-bottom: 1px solid #003d4c; + text-align: center; + padding:2px; +} +table tr td { + border-right: 1px solid #ccc; + padding:4px 4px; + vertical-align:top; + text-align: center; +} +table tr.altRow td { + background: #f4f4f4; +} + +/* scaffold show */ + + +div.related { + clear:both; + display:block; +} +dl { + line-height:2em; + margin:1em; + float:left; + width: 400px; +} +dt { + font-weight: bold; + vertical-align:top; +} +dd { + margin-left:10em; + margin-top:-2em; + vertical-align:top; +} + +/* scaffold buttons */ + + +.notice { + color: #DB8101; + background-color: #ddd; + display: block; + padding: 1em; +} +.tip { + color: #DB8101; + background-color: #ddd; + display: block; + padding: 1em; +} + + +/* action links */ +ul.actions { + float:left; + margin-left: 10px; + width: 200px; +} +li { + list-style-image: url("images/arrow.gif"); +} \ No newline at end of file diff --git a/mozilla/webtools/bouncer/webroot/css/cake.forms.css b/mozilla/webtools/bouncer/webroot/css/cake.forms.css new file mode 100644 index 00000000000..8ee223a075c --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/css/cake.forms.css @@ -0,0 +1,279 @@ +/* form.css */ + +form { + margin: 0 4px; + font-size: 120%; + border-width: 0px 0px 0px 0px; + border-style: solid; + border-color: #DB8101; +} + +form fieldset { + font-size: 100%; + border-color: #000000; + border-width: 1px 0px 0px 0px; + border-style: solid none none none; + padding: 10px; +} + +form fieldset legend { + font-size: 150%; + font-weight: normal; + color: #000; + padding: 0px 5px; +} + +label { + font-size: 150%; +} + +label u { + font-style: normal; + text-decoration: underline; +} + +input, select, textarea { + font-family: Tahoma, Arial, sans-serif; + font-size: 100%; + color: #000; +} + +textarea { + overflow: auto; +} + +form div { + clear: left; + display: block; + margin: 5px 0px 0px 0px; + padding: 1px 3px; +} + +form fieldset div.notes { + float: right; + width: 158px; + height: auto; + margin: 0px 0px 10px 10px; + padding: 5px; + border: 1px solid #666; + background-color: #ffffe1; + color: #666; + font-size: 88%; +} + +form fieldset div.notes h4 { + background-image: url(/images/icon_info.gif); + background-repeat: no-repeat; + background-position: top left; + padding: 3px 0px 3px 27px; + border-width: 0px 0px 1px 0px; + border-style: solid; + border-color: #666; + color: #666; + font-size: 110%; +} + +form fieldset div.notes p { + margin: 0em 0em 1.2em 0em; + color: #666; +} + +form fieldset div.notes p.last { + margin: 0em; +} + +form div fieldset { + clear: none; + border-width: 0px 1px 0px 1px; + border-style: solid; + border-color: #666; + margin: 0px 0px 0px 142px; + padding: 0px 5px 5px 5px; +} + +form div fieldset legend { + font-size: 100%; + padding: 0px 3px 0px 9px; +} + +form div.required fieldset legend { + font-weight: bold; +} + +form div label { + display: block; + float: left; + width: 200px; + background-color: #f4f4f4; + font-size: 16px; + padding: 3px 5px; + margin: 0px 0px 5px 0px; + text-align: right; +} + +form div.optional label, label.optional { + font-weight: normal; +} + +form div.required label, label.required { + font-weight: bold; +} + +form div label.labelCheckbox, form div label.labelRadio { + float: none; + display: block; + margin: 0px 0px 5px 142px; + text-align: left; +} + +form div fieldset label.labelCheckbox, form div fieldset label.labelRadio { + margin: 0px 0px 5px 0px; +} +p.error { + color: #DB8101; + background-color: #DBA941; + font-size: 14px; + padding: 1em; +} + +form div input, form div select, form div textarea { + padding: 1px 3px; + margin: 0px 0px 0px 0px; +} + +form div input.inputFile { + width: 211px; +} + +form div select.selectOne, form div select.selectMultiple { + width: 211px; + padding: 1px 3px; +} + +form div input.inputCheckbox, form div input.inputRadio, input.inputCheckbox, input.inputRadio { + display: inline; + height: 14px; + width: 14px; + background-color: transparent; + border-width: 0px; +} + +form div.submit { + padding: 0px 0px 0px 140px; + clear:both; + display:block; +} + +div.submit input { + padding: 2px 12px; + color: #DB8101; + background-color:#ccc; + text-decoration: none; + border: 1px solid #666; + font-size: 14px; + font-weight: bold; + text-align:center; + text-decoration: none; + width: auto; +} +div.submit input:hover { + padding: 2px 12px; + color: #fff; + background-color:#DB8101; + text-decoration: none; + border: 1px solid #666; + font-size: 14px; + font-weight: bold; + text-align:center; + text-decoration: none; + width: auto; +} + +form div.submit div input.inputSubmit, form div.submit div input.inputButton { + float: right; + margin: 0px 0px 0px 5px; +} + +form div small { + display: block; + margin: 0px 0px 5px 142px; + padding: 1px 3px; + font-size: 88%; +} + +/* form.import.css */ + +form fieldset legend { + line-height: 150%; +} + +form input, form select, form textarea { + background-color: #fff; +} + +div.optional label:before { + content: ''; +} + +div.required label:before { + content: ''; +} + +form div label.labelCheckbox, form div label.labelRadio, label.labelCheckbox, label.labelRadio { + display: block; + width: 190px; + padding: 4px 0px 0px 18px; + text-indent: -18px; + line-height: 120%; +} + +form div label.labelCheckbox input.inputCheckbox, form div label.labelRadio input.inputRadio, label.labelCheckbox input.inputCheckbox, label.labelRadio input.inputRadio { + margin: 0; +} + +form div fieldset input.inputText, form div fieldset input.inputPassword, form div fieldset input.inputFile, form div fieldset textarea.inputTextarea { + width: 160px; + margin: 0px 0px 0px 18px; +} + +form div label.compact { + display: inline; + width: auto; + padding: 4px 10px 0px 0px; + text-indent: 0px; + margin: 0; +} + +form div.wide label { + float: none; + display: block; +} + +form div label.wide { + width: 348px; +} + +form div.wide input.inputText, form div.wide input.inputPassword, form div.wide input.inputFile, form div.wide select, form div.wide textarea { + width: 344px; + margin: 0; +} + +form div.notes p, form div small { + line-height: 125%; +} + +form div.wide small { + margin: 0px 0px 5px 0px; +} + +div.date select { + width:auto; +} + +select.autoWidth { + width:auto; +} + +option { + padding-left:1em; +} \ No newline at end of file diff --git a/mozilla/webtools/bouncer/webroot/css/images/arrow.gif b/mozilla/webtools/bouncer/webroot/css/images/arrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..965b0aa4eaa72d652a64e3cd9e48a48fbf1ea132 GIT binary patch literal 62 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 A4*&oF literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/css/images/nav_item_bg.gif b/mozilla/webtools/bouncer/webroot/css/images/nav_item_bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..d106c10e88f0aa96664747187ca64a3f237a3b87 GIT binary patch literal 531 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 literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/img/bouncer.icon.png b/mozilla/webtools/bouncer/webroot/img/bouncer.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..03578ddb43d1da4dcb57fdd860ffce5a8109de19 GIT binary patch literal 1435 zcmV;M1!Ve(P){G zK~z}7?U&C_R96(oKX2Y+em&m6z>I(cqXXIjL?s5$jmn~nuA8Q-?o9eWbYbG6Y1*a> zS4~XprcD~#VBM>!F)5+SjEWL84%o&jpn${hYv#?odv6yr3^O1GO^u6slACvbpYQp3 z&(oArig!pZ-Z8xg@E$-JfSoVAb!JjZHV2&xKq-a0#y~0c%C^3D^Y>+Ywlv2<%jL;D zoniFG?ebntDW#;8Z&h-&u!#JA2!8t=ed-A*Rp9TzK8~C_T?8N;hwZXa8L6g~=QLo) z*=sF_I{P#FH$S4S<;v4J)63kKpBDk-3;7baBEy`WBmE-H($W%+UhSFh6A+RE-o1edne848ZW(p}E*Yz?0 zug^y)6k>96lE;r969@!|?%9K`>!|hEmy(s06^4h0`QiL|5{U$RqEQ~~f`|*B&q6r+w*%IrO zc3dZ2*Xi%?Cz(u=N~IVZyGtNYhu7;xDMc!k;^NRnGMNmWot>OGae|JH4h+M7OH73n2q6)Uz*(OY5>fe;5~IeTxA!oXW%20IU);QL zgYofkg25nN-Q7fXN6<74Aw}6ig(!iMf~iMSn@sQquVFYGCK8G8@Zm#}$t2lqmc4sp z#P;sR?XF?F7gi~SQxMevq!gvalAX260~>RdeUHaY$G&~szki>ZnHjuZFKy8_LZL=L zmG7)(Udk60Z)wR1Uta?XjkZVxzuzRCet}^a>^?dTXP?DEBl4syMDJ z$$UN^u~>VtKGC!yb47J!Qo1vT)LA~9f?ehPJIapRM9unm py`NspFt@NwysKy9?En7n_+MsR5vj*^f}#Kb002ovPDHLkV1jVdt?B>( literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/img/bouncer.logo.png b/mozilla/webtools/bouncer/webroot/img/bouncer.logo.png new file mode 100644 index 0000000000000000000000000000000000000000..171a4af9dee680262308bf9e3449791b906df8db GIT binary patch literal 5744 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 WzT>!?E&%R^K`M$G3UzW8k^ck1CqK*p literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/img/cake.power.png b/mozilla/webtools/bouncer/webroot/img/cake.power.png new file mode 100644 index 0000000000000000000000000000000000000000..699ef80fdf423d4100a97ce61f461c0b64857926 GIT binary patch literal 3053 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 literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/img/w3c_xhtml10.png b/mozilla/webtools/bouncer/webroot/img/w3c_xhtml10.png new file mode 100644 index 0000000000000000000000000000000000000000..ec686442cc1242d75bc95de7e48803f86f8c1862 GIT binary patch literal 321 zcmV-H0lxl;P)X!LnL50z(5q>K~=a4CjcodXPV4VJ#(T~ivj_KbD4HB-<^MP-5Cc03hfj3 zvVX5FJDvqHk!uy#0w7|5Fo1vof|+yC=<`<^b^w*Qx~!Acb697z&yHPyZVr`4!@8xQQ^UkrXoS5B(d&{)2(V0q#bq zLa_U|xL|H%tYz9+JNH^gUjhMNGgvZ|OWqEsc_BbZA<(;wK_Ht6DI_kgiA_BK@PQUn TFoEJQ00000NkvXXu0mjfr-Fwn literal 0 HcmV?d00001 diff --git a/mozilla/webtools/bouncer/webroot/index.php b/mozilla/webtools/bouncer/webroot/index.php new file mode 100644 index 00000000000..ebd1a02a78e --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/index.php @@ -0,0 +1,87 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.webroot + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * Do not change + */ + if (!defined('DS')) { + define('DS', DIRECTORY_SEPARATOR); + } +/** + * These defines should only be edited if you have cake installed in + * a directory layout other than the way it is distributed. + * Each define has a commented line of code that explains what you would change. + * + */ + if (!defined('ROOT')) { + //define('ROOT', 'FULL PATH TO DIRECTORY WHERE APP DIRECTORY IS LOCATED DO NOT ADD A TRAILING DIRECTORY SEPARATOR'; + //You should also use the DS define to seperate your directories + define('ROOT', DS.'home'.DS.'morgamic'.DS.'public_html'); + } + if (!defined('APP_DIR')) { + //define('APP_DIR', 'DIRECTORY NAME OF APPLICATION'; + define('APP_DIR', 'bouncer'); + } +/** + * This only needs to be changed if the cake installed libs are located + * outside of the distributed directory structure. + */ + if (!defined('CAKE_CORE_INCLUDE_PATH')) { + //define ('CAKE_CORE_INCLUDE_PATH', FULL PATH TO DIRECTORY WHERE CAKE CORE IS INSTALLED DO NOT ADD A TRAILING DIRECTORY SEPARATOR'; + //You should also use the DS define to seperate your directories + define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'local'.DS.'lib'.DS.'php'.DS.'cake'); + } +/////////////////////////////// +//DO NOT EDIT BELOW THIS LINE// +/////////////////////////////// + if (!defined('WEBROOT_DIR')) { + define('WEBROOT_DIR', basename(dirname(__FILE__))); + } + if (!defined('WWW_ROOT')) { + define('WWW_ROOT', dirname(__FILE__) . DS); + } + if (!defined('CORE_PATH')) { + if (function_exists('ini_set')) { + ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS); + define('APP_PATH', null); + define('CORE_PATH', null); + } else { + define('APP_PATH', ROOT . DS . APP_DIR . DS); + define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS); + } + } + require CORE_PATH . 'cake' . DS . 'bootstrap.php'; + if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') { + } else { + $Dispatcher=new Dispatcher(); + $Dispatcher->dispatch($url); + } + if (DEBUG) { + echo ""; + } +?> diff --git a/mozilla/webtools/bouncer/webroot/js/vendors.php b/mozilla/webtools/bouncer/webroot/js/vendors.php new file mode 100644 index 00000000000..3b2b0bbe69b --- /dev/null +++ b/mozilla/webtools/bouncer/webroot/js/vendors.php @@ -0,0 +1,36 @@ + + * Copyright (c) 2006, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright (c) 2006, Cake Software Foundation, Inc. + * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project + * @package cake + * @subpackage cake.app.webroot.js + * @since CakePHP v 0.2.9 + * @version $Revision: 1.1.1.1 $ + * @modifiedby $LastChangedBy: phpnut $ + * @lastmodified $Date: 2006-06-09 18:14:09 $ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +/** + * Enter description here... + */ + if (is_file('../../vendors/javascript/' . $_GET['file']) && (preg_match('/(.+)\\.js/', $_GET['file']))) { + readfile('../../vendors/javascript/' . $_GET['file']); + } +?>