diff --git a/webtools/bouncer/.htaccess b/webtools/bouncer/.htaccess new file mode 100644 index 000000000000..735c2f462a94 --- /dev/null +++ b/webtools/bouncer/.htaccess @@ -0,0 +1,5 @@ + + RewriteEngine on + RewriteRule ^$ webroot/ [L] + RewriteRule (.*) webroot/$1 [L] + diff --git a/webtools/bouncer/README b/webtools/bouncer/README new file mode 100644 index 000000000000..1a336af97ad8 --- /dev/null +++ b/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/webtools/bouncer/config/acl.ini.php b/webtools/bouncer/config/acl.ini.php new file mode 100644 index 000000000000..72ec291853dd --- /dev/null +++ b/webtools/bouncer/config/acl.ini.php @@ -0,0 +1,76 @@ +; +; SVN FILE: $Id: acl.ini.php,v 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 $ +; * @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/webtools/bouncer/config/bootstrap.php b/webtools/bouncer/config/bootstrap.php new file mode 100644 index 000000000000..0ad96d0300d5 --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/config/core.php b/webtools/bouncer/config/core.php new file mode 100644 index 000000000000..fcd599987eca --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/config/database.php.default b/webtools/bouncer/config/database.php.default new file mode 100644 index 000000000000..0300c045271d --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/config/inflections.php b/webtools/bouncer/config/inflections.php new file mode 100644 index 000000000000..aa7216f7a51a --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/config/routes.php b/webtools/bouncer/config/routes.php new file mode 100644 index 000000000000..39c5adb6caa7 --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/config/sql/db_acl.sql b/webtools/bouncer/config/sql/db_acl.sql new file mode 100644 index 000000000000..8c7aae84fdf8 --- /dev/null +++ b/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/webtools/bouncer/config/sql/sessions.sql b/webtools/bouncer/config/sql/sessions.sql new file mode 100644 index 000000000000..68a7dd268604 --- /dev/null +++ b/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 $ + +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/webtools/bouncer/controllers/files_controller.php b/webtools/bouncer/controllers/files_controller.php new file mode 100644 index 000000000000..cebacd1c2613 --- /dev/null +++ b/webtools/bouncer/controllers/files_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/controllers/locales_controller.php b/webtools/bouncer/controllers/locales_controller.php new file mode 100644 index 000000000000..ffadb21534d6 --- /dev/null +++ b/webtools/bouncer/controllers/locales_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/controllers/mirrors_controller.php b/webtools/bouncer/controllers/mirrors_controller.php new file mode 100644 index 000000000000..0d410b4269ed --- /dev/null +++ b/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/webtools/bouncer/controllers/platforms_controller.php b/webtools/bouncer/controllers/platforms_controller.php new file mode 100644 index 000000000000..1ee21ef40eee --- /dev/null +++ b/webtools/bouncer/controllers/platforms_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/controllers/regions_controller.php b/webtools/bouncer/controllers/regions_controller.php new file mode 100644 index 000000000000..8d36c17d2a3e --- /dev/null +++ b/webtools/bouncer/controllers/regions_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/controllers/templates_controller.php b/webtools/bouncer/controllers/templates_controller.php new file mode 100644 index 000000000000..abd14c7dbd20 --- /dev/null +++ b/webtools/bouncer/controllers/templates_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/controllers/users_controller.php b/webtools/bouncer/controllers/users_controller.php new file mode 100644 index 000000000000..3b5eccb2d93d --- /dev/null +++ b/webtools/bouncer/controllers/users_controller.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/index.php b/webtools/bouncer/index.php new file mode 100644 index 000000000000..bde636601a2e --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/models/file.php b/webtools/bouncer/models/file.php new file mode 100644 index 000000000000..8666af07b785 --- /dev/null +++ b/webtools/bouncer/models/file.php @@ -0,0 +1,6 @@ + diff --git a/webtools/bouncer/models/locale.php b/webtools/bouncer/models/locale.php new file mode 100644 index 000000000000..0d6fe623805e --- /dev/null +++ b/webtools/bouncer/models/locale.php @@ -0,0 +1,7 @@ + diff --git a/webtools/bouncer/models/mirror.php b/webtools/bouncer/models/mirror.php new file mode 100644 index 000000000000..a5598a2b8271 --- /dev/null +++ b/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/webtools/bouncer/models/platform.php b/webtools/bouncer/models/platform.php new file mode 100644 index 000000000000..8149efd7b7cb --- /dev/null +++ b/webtools/bouncer/models/platform.php @@ -0,0 +1,7 @@ + diff --git a/webtools/bouncer/models/region.php b/webtools/bouncer/models/region.php new file mode 100644 index 000000000000..e53dde3c7abd --- /dev/null +++ b/webtools/bouncer/models/region.php @@ -0,0 +1,7 @@ + diff --git a/webtools/bouncer/models/template.php b/webtools/bouncer/models/template.php new file mode 100644 index 000000000000..b3746885d82b --- /dev/null +++ b/webtools/bouncer/models/template.php @@ -0,0 +1,7 @@ + diff --git a/webtools/bouncer/models/user.php b/webtools/bouncer/models/user.php new file mode 100644 index 000000000000..511f9b164e1e --- /dev/null +++ b/webtools/bouncer/models/user.php @@ -0,0 +1,7 @@ + diff --git a/webtools/bouncer/views/dashboard.thtml b/webtools/bouncer/views/dashboard.thtml new file mode 100644 index 000000000000..0b00ef0da9bd --- /dev/null +++ b/webtools/bouncer/views/dashboard.thtml @@ -0,0 +1,8 @@ +

Dashboard

+ +

Foo

+

Foo

+

Foo

+

Foo

+

Foo

+

Bar

diff --git a/webtools/bouncer/views/helpers/pagination.php b/webtools/bouncer/views/helpers/pagination.php new file mode 100644 index 000000000000..2ba50583d77f --- /dev/null +++ b/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/webtools/bouncer/views/layouts/default.thtml b/webtools/bouncer/views/layouts/default.thtml new file mode 100644 index 000000000000..9c52b5178800 --- /dev/null +++ b/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 $ + * @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')?> + + +
Skip to Navigation
+
+ + +
+ controller->Session)) $this->controller->Session->flash(); ?> + +
+ + + + + + +
+ + diff --git a/webtools/bouncer/views/mirrors/destroy.thtml b/webtools/bouncer/views/mirrors/destroy.thtml new file mode 100644 index 000000000000..6b4266320453 --- /dev/null +++ b/webtools/bouncer/views/mirrors/destroy.thtml @@ -0,0 +1,8 @@ +

+

+

+
+

Are you sure you want to delete this mirror?

+
Nevermind
+ +
diff --git a/webtools/bouncer/views/mirrors/index.thtml b/webtools/bouncer/views/mirrors/index.thtml new file mode 100644 index 000000000000..bd10158dd890 --- /dev/null +++ b/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/webtools/bouncer/views/mirrors/view.thtml b/webtools/bouncer/views/mirrors/view.thtml new file mode 100644 index 000000000000..5916bd8621f1 --- /dev/null +++ b/webtools/bouncer/views/mirrors/view.thtml @@ -0,0 +1,3 @@ +

+

+

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

Dashboard

+ +

Foo

+

Foo

+

Foo

+

Foo

+

Foo

+

Bar

diff --git a/webtools/bouncer/webroot/.htaccess b/webtools/bouncer/webroot/.htaccess new file mode 100644 index 000000000000..0e0ecab7d2e9 --- /dev/null +++ b/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/webtools/bouncer/webroot/css.php b/webtools/bouncer/webroot/css.php new file mode 100644 index 000000000000..23824706b091 --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/webroot/css/bouncer.screen.css b/webtools/bouncer/webroot/css/bouncer.screen.css new file mode 100644 index 000000000000..22aecc3ac418 --- /dev/null +++ b/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/webtools/bouncer/webroot/css/cake.basic.css b/webtools/bouncer/webroot/css/cake.basic.css new file mode 100644 index 000000000000..6b9d77fa2962 --- /dev/null +++ b/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/webtools/bouncer/webroot/css/cake.forms.css b/webtools/bouncer/webroot/css/cake.forms.css new file mode 100644 index 000000000000..8ee223a075c5 --- /dev/null +++ b/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/webtools/bouncer/webroot/css/images/arrow.gif b/webtools/bouncer/webroot/css/images/arrow.gif new file mode 100644 index 000000000000..965b0aa4eaa7 Binary files /dev/null and b/webtools/bouncer/webroot/css/images/arrow.gif differ diff --git a/webtools/bouncer/webroot/css/images/container_bg.gif b/webtools/bouncer/webroot/css/images/container_bg.gif new file mode 100755 index 000000000000..fed97a9a5c67 Binary files /dev/null and b/webtools/bouncer/webroot/css/images/container_bg.gif differ diff --git a/webtools/bouncer/webroot/css/images/logo.gif b/webtools/bouncer/webroot/css/images/logo.gif new file mode 100755 index 000000000000..0d0cf000bec0 Binary files /dev/null and b/webtools/bouncer/webroot/css/images/logo.gif differ diff --git a/webtools/bouncer/webroot/css/images/nav_bg.gif b/webtools/bouncer/webroot/css/images/nav_bg.gif new file mode 100755 index 000000000000..4b320be84776 Binary files /dev/null and b/webtools/bouncer/webroot/css/images/nav_bg.gif differ diff --git a/webtools/bouncer/webroot/css/images/nav_item_bg.gif b/webtools/bouncer/webroot/css/images/nav_item_bg.gif new file mode 100755 index 000000000000..d106c10e88f0 Binary files /dev/null and b/webtools/bouncer/webroot/css/images/nav_item_bg.gif differ diff --git a/webtools/bouncer/webroot/favicon.ico b/webtools/bouncer/webroot/favicon.ico new file mode 100644 index 000000000000..8c5c557bf7bc Binary files /dev/null and b/webtools/bouncer/webroot/favicon.ico differ diff --git a/webtools/bouncer/webroot/img/bouncer.icon.png b/webtools/bouncer/webroot/img/bouncer.icon.png new file mode 100644 index 000000000000..03578ddb43d1 Binary files /dev/null and b/webtools/bouncer/webroot/img/bouncer.icon.png differ diff --git a/webtools/bouncer/webroot/img/bouncer.logo.png b/webtools/bouncer/webroot/img/bouncer.logo.png new file mode 100644 index 000000000000..171a4af9dee6 Binary files /dev/null and b/webtools/bouncer/webroot/img/bouncer.logo.png differ diff --git a/webtools/bouncer/webroot/img/cake.power.png b/webtools/bouncer/webroot/img/cake.power.png new file mode 100644 index 000000000000..699ef80fdf42 Binary files /dev/null and b/webtools/bouncer/webroot/img/cake.power.png differ diff --git a/webtools/bouncer/webroot/img/favicon.ico b/webtools/bouncer/webroot/img/favicon.ico new file mode 100644 index 000000000000..a50f9769a910 Binary files /dev/null and b/webtools/bouncer/webroot/img/favicon.ico differ diff --git a/webtools/bouncer/webroot/img/w3c_css.png b/webtools/bouncer/webroot/img/w3c_css.png new file mode 100644 index 000000000000..706325e1c1b6 Binary files /dev/null and b/webtools/bouncer/webroot/img/w3c_css.png differ diff --git a/webtools/bouncer/webroot/img/w3c_xhtml10.png b/webtools/bouncer/webroot/img/w3c_xhtml10.png new file mode 100644 index 000000000000..ec686442cc12 Binary files /dev/null and b/webtools/bouncer/webroot/img/w3c_xhtml10.png differ diff --git a/webtools/bouncer/webroot/index.php b/webtools/bouncer/webroot/index.php new file mode 100644 index 000000000000..4f9e64f744ec --- /dev/null +++ b/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 $ + * @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/webtools/bouncer/webroot/js/vendors.php b/webtools/bouncer/webroot/js/vendors.php new file mode 100644 index 000000000000..8ffc6059b906 --- /dev/null +++ b/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 $ + * @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']); + } +?>