diff --git a/.htaccess b/.htaccess index fc3aac4b..370112c1 100644 --- a/.htaccess +++ b/.htaccess @@ -2,4 +2,9 @@ RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] - \ No newline at end of file + + + +Header add Access-Control-Allow-Origin "*" +Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" +Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" diff --git a/Config/core.php b/Config/core.php index 871622a6..270c88a9 100644 --- a/Config/core.php +++ b/Config/core.php @@ -263,7 +263,7 @@ /** * A random string used in security hashing methods. */ - Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); + Configure::write('Security.salt', '2Q6HX62YKE7FEtJsg4KS9Mg1tOyedpOV5KcSGVqRi'); /** * A random numeric string (digits only) used to encrypt/decrypt strings. @@ -430,3 +430,20 @@ 'serialize' => ($engine === 'File'), 'duration' => $duration )); + +// In development mode, caches should expire quickly. +$durationCacheDB = '+8 hours'; +if (Configure::read('debug') > 0) { + $durationCacheDB = '+1 minutes'; +} + +/** + * Configure the cache for database queries + */ +Cache::config('_cake_db_', array( + 'engine' => $engine, + 'prefix' => $prefix . 'db_', + 'path' => CACHE . 'db' . DS, + 'serialize' => ($engine === 'File'), + 'duration' => $durationCacheDB +)); diff --git a/Controller/BrowserController.php b/Controller/BrowserController.php index a3afdbbe..1fd397fc 100644 --- a/Controller/BrowserController.php +++ b/Controller/BrowserController.php @@ -327,7 +327,106 @@ public function import() { $this->FilterManager->ImageFilter->Exiftool->exitExiftool(); $this->redirect('index/'.$path); } + + private function _lsyncimport($filetoimport) { + + if ($this->hasRole(ROLE_ADMIN)) { + ini_set('max_execution_time', 3600);//1 hour + } + + $options = array(); + $options['recursive'] = 1; + $options['forceReadMeta'] = 1; + $options['extensions'] = array('any'); + + $recursive = (bool) $options['recursive']; + + // Get dir and imports + $dirs = array(); + $files = array(); + $toRead = array(); + + #$fsPath = $this->_getFsPath($filetoimport); + $fsPath = $filetoimport; + if (is_dir($fsPath)) { + $dirs[] = Folder::slashTerm($fsPath); + $toRead[] = $fsPath; + } elseif (file_exists($fsPath) && is_readable($fsPath)) { + $files[] = $fsPath; + $toRead[] = $fsPath; + } + + $this->FilterManager->clearErrors(); + + $readed = $this->FilterManager->readFiles($toRead, $options); + $skipped = count($this->FilterManager->skipped); + $errorCount = count($this->FilterManager->errors); + + $readCount = 0; + foreach ($readed as $file => $media) { + if ($media) { + $readCount++; + } + } + $this->Session->setFlash(__("Processed %d files (imported %d, skipped %d, %d errors)", $readCount, $readCount-$skipped, $skipped, $errorCount)); + + $this->FilterManager->ImageFilter->Exiftool->exitExiftool(); + return true; + } + + private function _lsyncdelete($filename=''){ + + if($filename != ''){ + $file = $this->MyFile->findByFilename($filename); + if (!$file) { + return false; + } elseif ($file['User']['id'] != $this->getUserId()) { + return false; + } else { + $this->Session->setFlash(__("Media %d was unlinked successfully", $file['File']['media_id'])); + $this->Media->unlinkFile($file['File']['media_id'], $file['File']['id']); + } + echo 'OK'; + exit; + } + echo 'Nothing to do here'; + exit; + } + + + public function lsyncd(){ + + if(isset($this->request->data['lsynclog']) && isset($this->request->data['folder_root'])){ + $lsynclog=$this->request->data['lsynclog']; + $folder_root = $this->request->data['folder_root']; + $files = file($lsynclog); + + + for($i=0;$i'; + // archivo nuevo, llamo a import + #$this->_lsyncimport($folder_root.'/'.trim($file[4])); + $this->_lsyncimport($folder_root.trim($file[4])); + + } elseif($file[3] == "*deleting"){ + #echo 'archivo eliminado'.$folder_root.trim($file[4]).'
'; + #$this->_lsyncdelete($folder_root.'/'.trim($file[4])); + $this->_lsyncdelete($folder_root.trim($file[4])); + // archivo borrado, llamo a delete + } + } + } + exit; + } public function unlink() { $path = $this->_getPathFromUrl(); $fsPath = $this->_getFsPath($path); diff --git a/Controller/Component/ExiftoolComponent.php b/Controller/Component/ExiftoolComponent.php index 01497fa3..4980ddf4 100644 --- a/Controller/Component/ExiftoolComponent.php +++ b/Controller/Component/ExiftoolComponent.php @@ -519,6 +519,9 @@ public function extractImageDataSidecar(&$media, &$data) { $v['shutter'] = $this->_extract($data, 'ShutterSpeed', $v['shutter']); $v['model'] = $this->_extract($data, 'Model', $v['model']); $v['iso'] = $this->_extract($data, 'ISO', $v['iso']); + if(is_array($v['iso'])){ + $v['iso'] = null; + } $v['caption'] = $this->_extract($data, 'Comment', $v['caption']); // fetch GPS coordinates diff --git a/Controller/Component/FileCacheComponent.php b/Controller/Component/FileCacheComponent.php index ebdae848..8c6b96ff 100644 --- a/Controller/Component/FileCacheComponent.php +++ b/Controller/Component/FileCacheComponent.php @@ -104,7 +104,8 @@ public function getFilePath($media, $alias, $ext = 'jpg') { * @param userId Id of the current user * @param mediaId Id of the current image/file */ - public function delete(&$media) { + public function delete(&$media,$verbose=false) { + $verbose_str = array(); $mediaId = intval($media['Media']['id']); $cacheDir = $this->getPath($media, false); if (!$cacheDir) { @@ -116,6 +117,7 @@ public function delete(&$media) { $pattern = $this->getFilenamePrefix($mediaId).'.*'; $files = $folder->find($pattern); if ($files) { + if($verbose) $verbose_str[] = "Delete cached files of image $mediaId"; CakeLog::debug("Delete cached files of image $mediaId"); foreach($files as $file) { CakeLog::debug("Delete cache file '$file'"); @@ -124,8 +126,11 @@ public function delete(&$media) { } clearstatcache(); } else { + + if($verbose) $verbose_str[] = "No cached files found for image $mediaId"; CakeLog::debug("No cached files found for image $mediaId"); } + if($verbose) return $verbose_str; } /** diff --git a/Controller/Component/FilterManagerComponent.php b/Controller/Component/FilterManagerComponent.php index 0bd9337d..580e0f61 100644 --- a/Controller/Component/FilterManagerComponent.php +++ b/Controller/Component/FilterManagerComponent.php @@ -308,6 +308,7 @@ public function readFiles($files, $options = array()) { } } } + CakeLog::debug("Found ".count($stack)." files to import"); $extStack = $this->_sortFilesByExtension($stack); $order = $this->_getExtensionsByPriority(); @@ -333,6 +334,8 @@ public function readFiles($files, $options = array()) { $importLog = $this->_importlog($importLog, $file); } } + + return $result; } @@ -450,6 +453,7 @@ public function read($filename, $forceReadMeta = false) { return false; } if (!$this->isSupported($filename)) { + CakeLog::debug("File $filename is not supported"); return false; } @@ -493,18 +497,24 @@ public function read($filename, $forceReadMeta = false) { //return $media;//overload memory with 20kb for each file return $filename;//around 0.2kb } - } else { + } + /** + * Comment this else to create media if not exists + */ + /* else { $media = false; if ($forceReadMeta) { //media missing, file will not be readed; force read meta only for EXISTING media; return false; } } + */ $filter = $this->getFilterByExtension($filename); CakeLog::debug("Read file $filename with filter ".$filter->getName()); $result = $filter->read($file, $media); + if (isset($result['Media']['id'])) { return $result['Media']['id']; } diff --git a/Controller/Component/ImageFilterComponent.php b/Controller/Component/ImageFilterComponent.php index d91888d0..3995eada 100644 --- a/Controller/Component/ImageFilterComponent.php +++ b/Controller/Component/ImageFilterComponent.php @@ -73,14 +73,43 @@ public function read(&$file, &$media = null, $options = array()) { } $media = $this->controller->Media->addDefaultAcl($media, $user); + + $isNew = true; }; + if ($this->Exiftool->isEnabled()) { $this->Exiftool->extractImageData($media, $meta); } else { $this->_extractImageDataGetId3($media, $meta); } + + if(isset($media['File']) && is_array($media['File']) && count($media['File'])>0){ + for($if=0;$iflog(">>> File ". basename($filename) . " differs from {$media['Media']['name']} (extractImageData)", 'import'); } @@ -103,6 +132,7 @@ public function read(&$file, &$media = null, $options = array()) { $this->FilterManager->addError($filename, 'MediaSaveError'); return false; } + if ($isNew) { $mediaId = $this->Media->getLastInsertID(); if (!$this->controller->MyFile->setMedia($file, $mediaId)) { @@ -116,6 +146,7 @@ public function read(&$file, &$media = null, $options = array()) { } else { CakeLog::debug("Updated media (id ".$media['Media']['id'].")"); } + $this->controller->MyFile->updateReaded($file); $this->controller->MyFile->setFlag($file, FILE_FLAG_DEPENDENT); @@ -201,6 +232,9 @@ private function _extractImageDataGetId3(&$media, &$data) { $v['shutter'] = $this->_computeSutter($this->_extract($data, 'jpg/exif/EXIF/ShutterSpeedValue', null)); $v['model'] = $this->_extract($data, 'jpg/exif/IFD0/Model', null); $v['iso'] = $this->_extract($data, 'jpg/exif/EXIF/ISOSpeedRatings', null); + if(is_array($v['iso'])){ + $v['iso'] = null; + } //CakeLog::debug($data); // fetch GPS coordinates diff --git a/Controller/Component/ImageResizerComponent.php b/Controller/Component/ImageResizerComponent.php index c387fdf6..f4d1787b 100644 --- a/Controller/Component/ImageResizerComponent.php +++ b/Controller/Component/ImageResizerComponent.php @@ -54,6 +54,7 @@ public function resize($src, $dst, $options = array()) { 'clearMetaData' => true, 'isOriginal' => false ), $options); + if (!is_readable($src)) { CakeLog::error("Could not read source $src"); @@ -68,6 +69,7 @@ public function resize($src, $dst, $options = array()) { $options['width'] = $size[0]; $options['height'] = $size[1]; } + $phpThumb = new phpThumb(); $this->_configurePhpThump($phpThumb, $src, $dst, $options); @@ -82,8 +84,11 @@ public function resize($src, $dst, $options = array()) { if ($this->_semaphoreId) { sem_release($this->_semaphoreId); } + + if ($result) { CakeLog::debug("Render {$options['size']}x{$options['size']} image in ".round($t2-$t1, 4)."ms to '{$phpThumb->cache_filename}'"); + $phpThumb->RenderToFile($phpThumb->cache_filename); } else { CakeLog::error("Could not generate thumbnail: ".$phpThumb->error); @@ -91,6 +96,19 @@ public function resize($src, $dst, $options = array()) { die('Failed: '.$phpThumb->error); } + + /** + * We add watermark to the image (if satisfy the conditions) if not an + * original/required image. An original/required image must be a base image. + */ + if((!isset($options['isOriginal']) || $options['isOriginal'] != true) && + (!isset($options['isRequired']) || $options['isRequired'] != true)) { + $this->_addWatermark($phpThumb->cache_filename); + } + + + + if ($options['clearMetaData']) { $this->Exiftool->clearMetaData($dst); } @@ -103,6 +121,89 @@ public function resize($src, $dst, $options = array()) { $this->controller->getEventManager()->dispatch($event); return !$event->isStopped(); } + + + /** + * We add _addWatermark function based on Video's _addWatermark function. + * We looking for it in webroot.DS.img.DS.watermark folder if exists a + * watermark with name like 'XXXXXXX_{minsize}.jpg' when {minsize} is smaller + * than the size of resize file. If we found several valid image, the winner + * image is the image with more {minsize}. + */ + private function _addWatermark($originalFile){ + /** + * Code to custom watermark to each user + */ + /** + * CODE 1 + ** if(method_exists($this->controller->Media, 'getAPIUser')){ + ** $accessUser = $this->controller->Media->getAPIUser(); + ** } else { + ** $accessUser = $this->controller->getUser(); + ** } + ** $homeDir = Configure::read('user.home.dir'); + ** $watermarkDir = $homeDir . $accessUser['User']['id'] . DS . 'watermark'; + */ + + + /** CODE 2 **/ + $watermarkDir = APP . 'webroot' . DS . 'img' . DS . 'watermark'; + + /** FIN_CODE 2 **/ + + + if(file_exists($watermarkDir) && is_dir($watermarkDir)){ + $d=opendir($watermarkDir); + $sizeFiles = array(); + while($file = readdir($d)){ // no recursive, only files in this folder + if($file != "." AND $file!=".."){ + $filePath = $watermarkDir . DS. $file; + if (is_file($filePath) && strpos(mime_content_type($filePath), 'image')!==false ){ + // is a file and mime content is image. + $filePathInfo = pathinfo($filePath); + $fileName = $filePathInfo['filename']; + $lastUnderscore = strrpos($fileName, '_'); + // the filename must be xxxxx_{minSize}.extension + // minSize is the min width to add the watermark + if($lastUnderscore!==false){ + $sizeMinFile = (int)substr($fileName, $lastUnderscore+1); + $sizeFiles[$sizeMinFile] = $filePath; + // sample: $sizeFiles[500] = /tmp/file_500.jpeg + } + } + } + } + + if(count($sizeFiles)>0){ + ksort($sizeFiles); + list($imgWidth, $imgHeight, $imgType, $imgAttr) = getimagesize($originalFile); + $watermarkFile = false; + // if widthImg is less than the watermark with the minimum size, + // no add watermark to image. + //echo $imgWidth;exit; + foreach($sizeFiles as $ksf=>$vsf){ + if($ksf <= $imgWidth){ + $watermarkFile = $vsf; + } else { + break; + } + } + // add the watermark with the maximum size than be less than original image width. + if($watermarkFile){ + App::uses('WatermarkCreator', 'Lib'); + $watermark = new WatermarkCreator(); + $scaleMode = 'none'; + $position = 'se'; // southeast + if (!$watermark->create($originalFile, $watermarkFile, $scaleMode, $position)) { + CakeLog::error(join(', ', $watermark->errors)); + } + } + + } + + } + } + /** * Configure phpThumb with source, destination and all options @@ -126,8 +227,20 @@ private function _configurePhpThump(&$phpThumb, &$src, &$dst, &$options) { * @param array $options */ private function _configureOptions(&$phpThumb, &$options) { + /** + * Add more options params: w, h and zc + */ $phpThumb->w = $options['size']; $phpThumb->h = $options['size']; + + if(isset($options['w'])){ // add w + $phpThumb->w = $options['w']; + } + + if(isset($options['h'])){ // add h + $phpThumb->h = $options['h']; + } + $phpThumb->q = $options['quality']; $phpThumb->ra = $options['rotation']; @@ -136,6 +249,14 @@ private function _configureOptions(&$phpThumb, &$options) { $phpThumb->w = $options['size']; $phpThumb->h = $options['size']; } + + if(isset($options['zc'])){ // add zc + $phpThumb->zc = $options['zc']; + } + + + + } /** diff --git a/Controller/Component/MenuComponent.php b/Controller/Component/MenuComponent.php index 1b37e7ba..5bb7ebbc 100644 --- a/Controller/Component/MenuComponent.php +++ b/Controller/Component/MenuComponent.php @@ -54,6 +54,9 @@ public function setBasicMainMenu() { } $this->addItem($text, array('controller' => $ctrl, 'admin' => false, 'action' => 'index'), $options); } + $controllers['logout'] = __("Logout"); + + $this->addItem(__("Logout"), array('controller' => 'users', 'admin' => false, 'action' => 'logout'), array('id' => 'item-logout', 'active' => false)); } public function beforeRender(Controller $controller) { diff --git a/Controller/Component/PreviewManagerComponent.php b/Controller/Component/PreviewManagerComponent.php index 12b3ad4f..0b986a5f 100644 --- a/Controller/Component/PreviewManagerComponent.php +++ b/Controller/Component/PreviewManagerComponent.php @@ -95,13 +95,21 @@ public function _getImageSoureFilename($media) { * @param config (Optional) configuration for the preview generation * @return Full path to the preview file */ - public function getPreview(&$media, $name, $config = array()) { + public function getPreview(&$media, $name, $config = array(), $paramsHash = '') { + + /** + * Add $paramHash param to add this param to cache name file + */ + $config = am($this->defaults, $config); if (isset($this->config[$name])) { $config = am($config, $this->config[$name]); } + if ($config['requires']) { - $src = $this->getPreview($media, $config['requires']); + + // add param isRequired to not add watermark to required file + $src = $this->getPreview($media, $config['requires'],array('isRequired' => true)); if (!$src) { CakeLog::error("Could not get preview of {$config['requires']}"); return false; @@ -112,20 +120,44 @@ public function getPreview(&$media, $name, $config = array()) { $config['rotation'] = $this->controller->Media->getRotationInDegree($media); $config['isOriginal'] = true; } + + + /** + * Change the name to create a own cache file with resize param. + */ + if($paramsHash != ''){ + $name = $name.'_'.$paramsHash; + + } elseif(!isset($config['isOriginal']) && !isset($config['isRequired'])) { + $name = $name.'_wm'; + + } + + $dst = $this->FileCache->getFilePath($media, $name); if (!$dst) { CakeLog::error("Could not get cache file path for media {$this->controller->Media->toString($media)}"); return false; } - - if (file_exists($dst) && !$config['force']) { - if (is_readable($dst)) { + + + if (file_exists($dst) && !$config['force']) { + /** + * If dst file is modified a hour ago, delete and create it again. + * Expiretime value should be a config value. + */ + $expireTime = 3600; + if(filemtime($dst) < (time()-$expireTime)){ + $this->FileCache->delete($media); + } elseif (is_readable($dst)) { return $dst; } else { CakeLog::error("Cachefile not readable: $dst"); return false; } } + + // creo imagen original $this->controller->loadComponent('ImageResizer', $this); if (!$this->ImageResizer->resize($src, $dst, $config)) { CakeLog::error("Resize of '$src' to '$dst' failed"); @@ -134,4 +166,6 @@ public function getPreview(&$media, $name, $config = array()) { } return $dst; } + + } \ No newline at end of file diff --git a/Controller/Component/QueryBuilderComponent.php b/Controller/Component/QueryBuilderComponent.php index 4fe5ce9e..cd8835b1 100644 --- a/Controller/Component/QueryBuilderComponent.php +++ b/Controller/Component/QueryBuilderComponent.php @@ -641,7 +641,7 @@ private function _mapParams(&$data) { public function build($data, $defaults) { $this->counter = 0; $data = $this->_mapParams($data); - $defaults = am(array('sort' => 'id', 'show' => EXPLORER_DEFAULT_SHOW, 'page' => 1), (array) $defaults); + $defaults = am(array('sort' => 'top', 'show' => EXPLORER_DEFAULT_SHOW, 'page' => 1), (array) $defaults); list($required, $exclude) = $this->_splitRequirements($data); // if we have some required conditions default operand is OR for optional conditions $defaultOperand = $required ? 'ANY' : 'AND'; @@ -720,6 +720,11 @@ private function _buildOrder(&$data, &$query, &$defaults) { case 'name': $query['order'][] = 'Media.name'; break; case '-name': $query['order'][] = 'Media.name DESC'; break; case 'id': $query['order'][] = 'Media.id'; break; + case 'top': $query['order'][] = "Media.id IN +(SELECT MediaTop.media_id FROM `fields_media` as `MediaTop` INNER JOIN `fields` as `FieldsTop` +ON MediaTop.field_id = FieldsTop.id +WHERE (FieldsTop.data = 'top' AND FieldsTop.name = 'keyword') +) DESC, Media.name ASC";break; default: CakeLog::error("Unknown sort value: {$sort}. Use default sort order"); $query['order'][] = 'Media.date DESC, Media.id'; @@ -729,6 +734,7 @@ private function _buildOrder(&$data, &$query, &$defaults) { if ($sort != 'random' && $sort != 'id') { $query['order'][] = 'Media.id'; } + } /** diff --git a/Controller/Component/SearchComponent.php b/Controller/Component/SearchComponent.php index f196c91b..efaea281 100644 --- a/Controller/Component/SearchComponent.php +++ b/Controller/Component/SearchComponent.php @@ -58,7 +58,7 @@ class SearchComponent extends Component 'pos' => array('numericRule' => 'numeric', 'minRule' => array('rule' => array('comparison', '>=', 1))), 'similar' => array('rule' => array('maxLength', 30), 'multiple' => true), 'show' => array('numericRule' => 'numeric', 'minRule' => array('rule' => array('comparison', '>=', 1)), 'maxRule' => array('rule' => array('comparison', '<=', 240))), - 'sort' => array('rule' => array('inList', array('date', '-date', 'newest', 'changes', 'viewed', 'popularity', 'random', 'name'))), + 'sort' => array('rule' => array('inList', array('date', '-date', 'newest', 'changes', 'viewed', 'popularity', 'random', 'name', 'top'))), 'south' => array('rule' => array('custom', '/-?\d+(\.\d+)?/')), 'sublocation' => array('rule' => array('maxLength', 30), 'multiple' => true), 'state' => array('rule' => array('maxLength', 30), 'multiple' => true), @@ -546,11 +546,46 @@ public function paginateByCrumbs($crumbs) { $tmp = $this->getParams(); $this->clear(); $this->_getParameterFromCrumbs($crumbs); - $data = $this->paginate(); + $data = $this->paginate(); + $this->setParams($tmp); return $data; } + /** + * We return allResults with no paginate + */ + public function allResults($crumbs,$onlyCount=false){ + + $this->_getParameterFromCrumbs($crumbs); + + $this->setParam('sort', 'top'); + $query = $this->QueryBuilder->build($this->getParams(), $this->defaults); + $tmp = $query; + unset($query['limit']); + unset($query['page']); + // Ensure only unique Media ids are counted + // $query['fields'] = 'DISTINCT Media.id'; + $query['recursive'] = -1; + unset($query['group']); + + + if($onlyCount) $search = 'count'; + else $search = 'all'; + $data = $this->controller->Media->find($search, $query); + + return $data; + + } + private function _getCacheHash($arr = array('')){ + if(is_array($arr) && count($arr)>0){ + return md5(serialize($arr)); + } else { + return false; + } + } + + public function paginate() { $query = $this->QueryBuilder->build($this->getParams(), $this->defaults); $tmp = $query; @@ -560,7 +595,9 @@ public function paginate() { $query['fields'] = 'DISTINCT Media.id'; $query['recursive'] = -1; unset($query['group']); + $count = $this->controller->Media->find('count', $query); + $query = $tmp; $params = array( @@ -574,6 +611,8 @@ public function paginate() { 'data' => $this->getParams() ); + + if ($count == 0) { $this->controller->request->params['search'] = $params; return array(); @@ -594,6 +633,8 @@ public function paginate() { // get all media and set access flags $this->controller->Media->bindModel(array('hasMany' => array('GroupsMedia' => array()))); + + $data = $this->controller->Media->find('all', $query); $user = $this->controller->getUser(); $groupIds = $this->controller->User->getAclGroupIds($user); diff --git a/Controller/ExplorerController.php b/Controller/ExplorerController.php index 8ce2f0da..cd7f8ea4 100644 --- a/Controller/ExplorerController.php +++ b/Controller/ExplorerController.php @@ -737,6 +737,8 @@ public function selection($action) { $this->render('index'); } + + public function sync($id) { if (!$this->RequestHandler->isAjax() || !$this->RequestHandler->isPost()) { @@ -781,9 +783,46 @@ public function media() { if (Configure::read('debug') > 1) { Configure::write('debug', 1); } + + $this->request->data = $this->Search->paginateByCrumbs($this->crumbs); } + public function count(){ + // return the count + $this->layout = 'bare'; + if (Configure::read('debug') > 1) { + Configure::write('debug', 1); + } + + + $this->request->data = $this->Search->allResults($this->crumbs, true); + + + } + + public function getids(){ + // return the count + if (Configure::read('debug') > 1) { + Configure::write('debug', 1); + } + + $ids = array(); + $this->request->data = $this->Search->allResults($this->crumbs); + if(count($this->request->data)>0){ + for($i=0;$irequest->data);$i++){ + $ids[$i] = $this->request->data[$i]['Media']['id']; + } + echo json_encode($ids); + } else { + echo json_encode(array()); + + } + exit; + + + } + public function points($north, $south, $west, $east) { $this->Search->setSort('random'); diff --git a/Controller/MediaController.php b/Controller/MediaController.php index 71d6dc92..191e7218 100644 --- a/Controller/MediaController.php +++ b/Controller/MediaController.php @@ -22,8 +22,8 @@ class MediaController extends AppController var $config = array( 'video' => array('size' => OUTPUT_SIZE_VIDEO, 'bitrate' => OUTPUT_BITRATE_VIDEO) ); - var $components = array('PreviewManager'); + var $components = array('PreviewManager','Search','FileCache'); // add components Search and Filecache public function beforeFilter() { // Reduce security level for this controller if required. Security level // 'high' allows only 10 concurrent requests @@ -91,8 +91,12 @@ private function _handleClientCache($filename) { * @return Media model data. If no media is found or access is denied it * responses 404 */ - private function _getMedia($id, $type = 'preview') { - $user = $this->getUser(); + private function _getMedia($id, $type = 'preview',$notFoundReturn=false) { + + // if the param API is set, the access user will be the user with that API key. + // if not, the user will be the login user + $user = $this->Media->getAPIUser(); + if(!$user) $user = $this->getUser(); switch ($type) { case 'hd': $flag = ACL_READ_ORIGINAL; break; @@ -107,15 +111,19 @@ private function _getMedia($id, $type = 'preview') { $media = $this->Media->find('first', $query); if (!$media) { CakeLog::debug("Media not found or access denied for media $id"); + if($notFoundReturn) return false; + // sometimes we want return a false and not a redirect when not media found $this->redirect(null, 403); } return $media; } - private function _sendPreview($id, $type) { + private function _sendPreview($id, $type,$options=array(),$paramsHash='') { + // add the param options + // and the param paramHash $media = $this->_getMedia($id, $type); - $preview = $this->PreviewManager->getPreview($media, $type); + $preview = $this->PreviewManager->getPreview($media, $type, $options,$paramsHash); if (!$preview) { CakeLog::error("Fetching preview type '{$type}' for {$this->Media->toString($media)} failed"); $this->redirect(null, 403); @@ -145,23 +153,37 @@ private function _createFlashVideo($id) { } public function mini($id) { - return $this->_sendPreview($id, 'mini'); + + return $this->_sendImage('mini', $id); } public function thumb($id) { - return $this->_sendPreview($id, 'thumb'); + + return $this->_sendImage('thumb', $id); } public function preview($id) { - return $this->_sendPreview($id, 'preview'); + return $this->_sendImage('preview', $id); } public function high($id) { - return $this->_sendPreview($id, 'high'); + return $this->_sendImage('high', $id); } public function hd($id) { - return $this->_sendPreview($id, 'hd'); + return $this->_sendImage('hd', $id); + } + + private function _sendImage($type, $id){ + + // pass the resize params and string param to create the resize image + + $params = $this->_getParamsResize(); + if($params){ + return $this->_sendPreview($id, $type,$params['arr'], $params['str']); + } else { + return $this->_sendPreview($id, $type); + } } public function video($id) { @@ -169,6 +191,8 @@ public function video($id) { $this->response->file($filename, array('download' => true)); return $this->response; } + + public function file($id) { $id = intval($id); @@ -332,4 +356,152 @@ public function zip($format) { $zipName = 'phtagr-' . date('Y-m-d_H-i-s') . '.zip'; $this->_createZipFile($zipName, $files); } + + /** + + * $number is the position of the image into the search what we want to show + */ + public function show($number){ + $medias = $this->_getListPhotos(); + $number = ($number>0) ? $number-1 : 0; + + $name = 'high'; + if(isset($medias[$number])){ + $params = $this->_getParamsResize(); + //$name = ($params['str'] != '') ? $name.'_'.$params['str'] : $name; + return $this->_sendPreview($medias[$number]['Media']['id'], $name,$params['arr'],$params['str']); + } else { + return $this->_sendPreview(null,$name); + } + } + + public function clean($number){ + /** + * If contains params, clean the position $number in search array + * If not, clean the $number ID + */ + + $this->crumbs = $this->Search->urlToCrumbs($this->request->url, 2); + if(count($this->crumbs)>0){ + $medias = $this->_getListPhotos(); + if($number == 0){ + $allMedias = true; + } else { + $number = ($number>0) ? $number-1 : 0; + if(isset($medias[$number])){ + $media = $medias[$number]; + } else { + //$media = null; + } + } + } else { + $media = $this->_getMedia($number,'preview',true); + + } + + $delete = array(); + if(isset($media) && is_array($media)){ + $delete[] = array('name' => $media['name'], + 'msg' => $this->FileCache->delete($media, true)); + + } elseif(isset($allMedias) && isset($medias)){ + foreach($medias as $media){ + $delete[] = array('name' => $media['Media']['name'], + 'msg' =>$this->FileCache->delete($media,true)); + } + } + + $this->layout = 'default'; + $this->request->data = $delete; + + + } + + + + + /** + * add function getListPhotos + */ + private function _getListPhotos(){ + $this->crumbs = $this->Search->urlToCrumbs($this->request->url, 2); + #echo 'hola';exit; + return $this->Search->allResults($this->crumbs); + + } + + /** + * resize params, return an string and an array. + */ + + private function _getParamsResize(){ + if(!$this->crumbs) $this->crumbs = $this->Search->urlToCrumbs($this->request->url, 2); + #echo 'hola'; + #print_r($this->crumbs);exit; + $arrParams = array(); + + foreach($this->crumbs as $crumb){ + list($crumbkey, $crumbvalue) = explode(':', $crumb,2); + switch($crumbkey){ + case 'size': + $arrParams['w'] = (int)$crumbvalue; + $arrParams['h'] = (int)$crumbvalue; + case 'square': + $arrParams['zc'] = 1; + break; + case 'w': + case 'h': + case 'zc': + case 'quality': + case 'rotation': + $arrParams[$crumbkey] = $crumbvalue; + break; + + } + } + + if(count($arrParams) == 0){ + //if($mode == 'str' || $mode == 'all') $strParams = ''; + foreach(array('size', 'square', 'w','h','zc','quality','rotation') as $p){ + if(isset($this->request->query[$p])){ + $param = $this->request->query[$p]; + switch($p){ + case 'size': + $arrParams['w'] = (int)$param; + $arrParams['h'] = (int)$param; + break; + case 'square': + $arrParams['zc'] = 1; + break; + case 'w': + case 'h': + case 'zc': + case 'quality': + case 'rotation': + $arrParams[$p] = $param; + break; + } + } + } + } + + if(count($arrParams)>0){ + + $strParams = ''; + foreach($arrParams as $kaP=>$vaP){ + if($kaP == 'quality') $kaP = 'q'; + elseif($kaP == 'rotation') $kaP = 'r'; + $strParams .= "{$kaP}{$vaP}"; + } + return array('str' => $strParams, 'arr' => $arrParams); + } else { + return false; + } + + + return $arrParams; + } + + + } diff --git a/Controller/OptionsController.php b/Controller/OptionsController.php index 94df38f2..8851ab43 100644 --- a/Controller/OptionsController.php +++ b/Controller/OptionsController.php @@ -60,7 +60,7 @@ public function profile() { $userId = $this->getUserId(); if (!empty($this->request->data)) { $this->User->id = $userId; - if (!$this->User->save($this->request->data['User'], true, array('username', 'firstname', 'lastname', 'email', 'visible_level', 'notify_interval'))) { + if (!$this->User->save($this->request->data['User'], true, array('username', 'firstname', 'lastname', 'email', 'key', 'visible_level', 'notify_interval'))) { CakeLog::error("Could not update user profile"); $this->Session->setFlash(__("Could not save profile!")); } else { diff --git a/Model/Field.php b/Model/Field.php index a1c3a0c2..5c22ae35 100644 --- a/Model/Field.php +++ b/Model/Field.php @@ -104,9 +104,33 @@ public function createFields(&$media) { * @return array Field assignments */ public function editSingle(&$media, &$data, $onlyFields = null) { - if (empty($data['Field'])) { + + if (empty($data['Field'])) { return array(); } + + /* + $tags_key = array(); + if(isset($media['File']) && is_array($media['File']) && count($media['File'])>0){ + for($if=0;$ifUser->findByKey($_GET['api']); + } + + if(isset($hashUser['User']) && $hashUser['User']['id'] != -1) return $hashUser; + else return false; + } /** * Build ACL query for media. * @@ -556,6 +565,8 @@ public function buildAclJoin($alias) { * @return returns ACL query */ public function buildAclQuery($user, $userId = 0, $level = ACL_READ_PREVIEW) { + $hashUser = $this->getAPIUser(); + if($hashUser !== false) $user = $hashUser; $level = intval($level); $conditions = array(); $joins = array(); @@ -1062,6 +1073,7 @@ public function editSingle(&$media, &$data, &$user) { if (!isset($media['Media']['canWriteMeta'])) { $this->setAccessFlags($media, $user); } + // handle fields if ($media['Media']['canWriteCaption']) { $tmp = am($this->Field->editSingle($media, $data), $tmp); @@ -1203,4 +1215,30 @@ public function deleteGroupByUser(&$group, &$user) { $result = $this->query($sql); return is_array($result) && !count($result); } -} \ No newline at end of file + + // Cached queries + public function find($type = 'first', $query = array()){ + /* + $cacheInFind = true; + + if($cacheInFind){ + $cacheHash = md5(serialize(array_merge(array('type' => $type),$query))); + $data = Cache::read($cacheHash, '_cake_db_'); + + if(!$data){ + $data = parent::find($type,$query); + Cache::write($cacheHash, $data, '_cake_db_'); + } + + return $data; + } else { + return parent::find($type,$query); + } + + */ + return parent::find($type,$query); + + + } +} + diff --git a/Vendor/getid3/module.graphic.jpg.php b/Vendor/getid3/module.graphic.jpg.php index 5663a2f5..69a435dd 100644 --- a/Vendor/getid3/module.graphic.jpg.php +++ b/Vendor/getid3/module.graphic.jpg.php @@ -66,7 +66,7 @@ public function Analyze() { if (substr($imageinfo['APP1'], 0, 4) == 'Exif') { //$info['warning'][] = 'known issue: https://bugs.php.net/bug.php?id=62523'; //return false; - $info['jpg']['exif'] = exif_read_data($info['filenamepath'], null, true, false); + $info['jpg']['exif'] = @exif_read_data($info['filenamepath'], null, true, false); } else { $info['warning'][] = 'exif_read_data() cannot parse non-EXIF data in APP1 (expected "Exif", found "'.substr($imageinfo['APP1'], 0, 4).'")'; } diff --git a/Vendor/phpthumb/phpthumb.class.php b/Vendor/phpthumb/phpthumb.class.php index b3f9a8a8..41d4b5fc 100644 --- a/Vendor/phpthumb/phpthumb.class.php +++ b/Vendor/phpthumb/phpthumb.class.php @@ -347,7 +347,7 @@ function GenerateThumbnail() { $this->phpThumbDebug('8g'); $this->CreateGDoutput(); $this->phpThumbDebug('8h'); - + switch ($this->far) { case 'L': case 'TL': @@ -1303,7 +1303,7 @@ function ImageMagickThumbnailToGD() { // $UnAllowedParameters contains options that can only be processed in GD, not ImageMagick // note: 'fltr' *may* need to be processed by GD, but we'll check that in more detail below $UnAllowedParameters = array('xto', 'ar', 'bg', 'bc'); - // 'ra' may be part of this list, if not a multiple of 90° + // 'ra' may be part of this list, if not a multiple of 90� foreach ($UnAllowedParameters as $parameter) { if (isset($this->$parameter)) { $this->DebugMessage('$this->useRawIMoutput=false because "'.$parameter.'" is set', __FILE__, __LINE__); @@ -3398,7 +3398,6 @@ function SourceImageToGD() { return true; } $this->DebugMessage('starting SourceImageToGD()', __FILE__, __LINE__); - if ($this->config_prefer_imagemagick) { if (empty($this->sourceFilename) && !empty($this->rawImageData)) { $this->DebugMessage('Copying raw image data to temp file and trying again with ImageMagick', __FILE__, __LINE__); diff --git a/View/Elements/Explorer/menu.ctp b/View/Elements/Explorer/menu.ctp index ed84a1f7..b27af1b7 100644 --- a/View/Elements/Explorer/menu.ctp +++ b/View/Elements/Explorer/menu.ctp @@ -113,6 +113,7 @@ $links[] = $this->Html->link(__('modified'), $this->Breadcrumb->crumbUrl($this->Breadcrumb->replace($crumbs, 'sort', 'changes'))); $links[] = $this->Html->link(__('view count'), $this->Breadcrumb->crumbUrl($this->Breadcrumb->replace($crumbs, 'sort', 'viewed'))); $links[] = $this->Html->link(__('random'), $this->Breadcrumb->crumbUrl($this->Breadcrumb->replace($crumbs, 'sort', 'random'))); + $links[] = $this->Html->link(__('top'), $this->Breadcrumb->crumbUrl($this->Breadcrumb->replace($crumbs, 'sort', 'top'))); echo implode(' ', $links); ?>

diff --git a/View/Explorer/count.ctp b/View/Explorer/count.ctp new file mode 100644 index 00000000..2effd814 --- /dev/null +++ b/View/Explorer/count.ctp @@ -0,0 +1,2 @@ +request->data; \ No newline at end of file diff --git a/View/Explorer/media.ctp b/View/Explorer/media.ctp index 3475fba7..68a4076e 100644 --- a/View/Explorer/media.ctp +++ b/View/Explorer/media.ctp @@ -53,6 +53,10 @@ $contentUrl = sprintf("/media/preview/%d%s/%s", $media['Media']['id'], $keyParam, $media['Media']['name']); $previewSize = $this->ImageData->getimagesize($media, OUTPUT_SIZE_PREVIEW); } + if(isset($_GET['api']) && $_GET['api']!=''){ + $thumbUrl.='?api='.$_GET['api']; + $contentUrl.='?api='.$_GET['api']; + } ?> type="image/jpeg" /> type="image/jpeg" /> ImageData->getPathLink($file); $files[] = $this->Html->link($file['file'], $link).' ('.$this->Number->toReadableSize($file['size']).')'; } + $preview = '/media/preview/'.$this->request->data['Media']['id']; $cells[] = array(__("File(s)"), implode(', ', $files)); + $cells[] = array(__("Preview"), $this->Html->link($this->request->data['Media']['id'],$preview)); } $folders = $this->ImageData->getFolderLinks($this->request->data); if ($folders) { diff --git a/View/Layouts/default.ctp b/View/Layouts/default.ctp index 54648c03..9f4dca10 100644 --- a/View/Layouts/default.ctp +++ b/View/Layouts/default.ctp @@ -26,6 +26,11 @@ Menu->menu('top-menu'); ?> +params['controller'] == 'users' && $this->params['action'] == 'login') + || $this->params['controller'] == 'setup' + || $currentUser['User']['id']>0): ?> +

diff --git a/View/Media/clean.ctp b/View/Media/clean.ctp new file mode 100644 index 00000000..5ffd025f --- /dev/null +++ b/View/Media/clean.ctp @@ -0,0 +1,26 @@ +

Limpieza de cache

+request->data && count($this->request->data)>0){ ?> +
    + request->data as $data){ +?> +
  • + +
      + +
    • + +
    • + +

    • +
    +
  • + +
+ + No hay datos +Form->input('User.firstname', array('label' => __('First name'))); echo $this->Form->input('User.lastname', array('label' => __('Last name'))); echo $this->Form->input('User.email', array('label' => __('Email'))); + echo $this->Form->input('User.key', array('label' => __('API'))); ?> diff --git a/changes.txt b/changes.txt new file mode 100644 index 00000000..527bfce9 --- /dev/null +++ b/changes.txt @@ -0,0 +1,22 @@ + + +En Config/Core.php +- Creo cache de queries. + +En Controller/Component/FilterManagerComponent.php +- Comento un ELSE, lo que permite que se creen los medias que no existen en las importaciones. + +En Controller/Component/ImageResizerComponent.php +- Permito algunos parametros por GET con w, h y zc + +En Controller/Component/PreviewManagerComponent.php +- Creo marca de agua +- Distinto archivo de cache si tiene resize + +En Controller/Component/SearchComponent.php +- Hago funciones de count y de devolver todos los resultados (devolvia paginados) + +En Model/Media +- Cacheo consultas de BD +- Permito el acceso mediante una API key que heredará los permisos del usuario que corresponda + diff --git a/crossdomain.xml b/crossdomain.xml new file mode 100644 index 00000000..09e6cf80 --- /dev/null +++ b/crossdomain.xml @@ -0,0 +1,4 @@ + + + diff --git a/webroot/ccss/OpenLayers/img/close.gif b/webroot/ccss/OpenLayers/img/close.gif new file mode 100644 index 00000000..a8958de9 Binary files /dev/null and b/webroot/ccss/OpenLayers/img/close.gif differ diff --git a/webroot/ccss/OpenLayers/style.css b/webroot/ccss/OpenLayers/style.css new file mode 100644 index 00000000..8e0abb70 --- /dev/null +++ b/webroot/ccss/OpenLayers/style.css @@ -0,0 +1,484 @@ +div.olMap { + z-index: 0; + padding: 0 !important; + margin: 0 !important; + cursor: default; +} + +div.olMapViewport { + text-align: left; +} + +div.olLayerDiv { + -moz-user-select: none; + -khtml-user-select: none; +} + +.olLayerGoogleCopyright { + left: 2px; + bottom: 2px; +} +.olLayerGoogleV3.olLayerGoogleCopyright { + right: auto !important; +} +.olLayerGooglePoweredBy { + left: 2px; + bottom: 15px; +} +.olLayerGoogleV3.olLayerGooglePoweredBy { + bottom: 15px !important; +} +.olControlAttribution { + font-size: smaller; + right: 3px; + bottom: 4.5em; + position: absolute; + display: block; +} +.olControlScale { + right: 3px; + bottom: 3em; + display: block; + position: absolute; + font-size: smaller; +} +.olControlScaleLine { + display: block; + position: absolute; + left: 10px; + bottom: 15px; + font-size: xx-small; +} +.olControlScaleLineBottom { + border: solid 2px black; + border-bottom: none; + margin-top:-2px; + text-align: center; +} +.olControlScaleLineTop { + border: solid 2px black; + border-top: none; + text-align: center; +} + +.olControlPermalink { + right: 3px; + bottom: 1.5em; + display: block; + position: absolute; + font-size: smaller; +} + +div.olControlMousePosition { + bottom: 0; + right: 3px; + display: block; + position: absolute; + font-family: Arial; + font-size: smaller; +} + +.olControlOverviewMapContainer { + position: absolute; + bottom: 0; + right: 0; +} + +.olControlOverviewMapElement { + padding: 10px 18px 10px 10px; + background-color: #00008B; + -moz-border-radius: 1em 0 0 0; +} + +.olControlOverviewMapMinimizeButton, +.olControlOverviewMapMaximizeButton { + height: 18px; + width: 18px; + right: 0; + bottom: 80px; + cursor: pointer; +} + +.olControlOverviewMapExtentRectangle { + overflow: hidden; + background-image: url("img/blank.gif"); + cursor: move; + border: 2px dotted red; +} +.olControlOverviewMapRectReplacement { + overflow: hidden; + cursor: move; + background-image: url("img/overview_replacement.gif"); + background-repeat: no-repeat; + background-position: center; +} + +.olLayerGeoRSSDescription { + float:left; + width:100%; + overflow:auto; + font-size:1.0em; +} +.olLayerGeoRSSClose { + float:right; + color:gray; + font-size:1.2em; + margin-right:6px; + font-family:sans-serif; +} +.olLayerGeoRSSTitle { + float:left;font-size:1.2em; +} + +.olPopupContent { + padding:5px; + overflow: auto; +} + +.olControlNavigationHistory { + background-image: url("img/navigation_history.png"); + background-repeat: no-repeat; + width: 24px; + height: 24px; + +} +.olControlNavigationHistoryPreviousItemActive { + background-position: 0 0; +} +.olControlNavigationHistoryPreviousItemInactive { + background-position: 0 -24px; +} +.olControlNavigationHistoryNextItemActive { + background-position: -24px 0; +} +.olControlNavigationHistoryNextItemInactive { + background-position: -24px -24px; +} + +div.olControlSaveFeaturesItemActive { + background-image: url(img/save_features_on.png); + background-repeat: no-repeat; + background-position: 0 1px; +} +div.olControlSaveFeaturesItemInactive { + background-image: url(img/save_features_off.png); + background-repeat: no-repeat; + background-position: 0 1px; +} + +.olHandlerBoxZoomBox { + border: 2px solid red; + position: absolute; + background-color: white; + opacity: 0.50; + font-size: 1px; + filter: alpha(opacity=50); +} +.olHandlerBoxSelectFeature { + border: 2px solid blue; + position: absolute; + background-color: white; + opacity: 0.50; + font-size: 1px; + filter: alpha(opacity=50); +} + +.olControlPanPanel { + top: 10px; + left: 5px; +} + +.olControlPanPanel div { + background-image: url(img/pan-panel.png); + height: 18px; + width: 18px; + cursor: pointer; + position: absolute; +} + +.olControlPanPanel .olControlPanNorthItemInactive { + top: 0; + left: 9px; + background-position: 0 0; +} +.olControlPanPanel .olControlPanSouthItemInactive { + top: 36px; + left: 9px; + background-position: 18px 0; +} +.olControlPanPanel .olControlPanWestItemInactive { + position: absolute; + top: 18px; + left: 0; + background-position: 0 18px; +} +.olControlPanPanel .olControlPanEastItemInactive { + top: 18px; + left: 18px; + background-position: 18px 18px; +} + +.olControlZoomPanel { + top: 71px; + left: 14px; +} + +.olControlZoomPanel div { + background-image: url(img/zoom-panel.png); + position: absolute; + height: 18px; + width: 18px; + cursor: pointer; +} + +.olControlZoomPanel .olControlZoomInItemInactive { + top: 0; + left: 0; + background-position: 0 0; +} + +.olControlZoomPanel .olControlZoomToMaxExtentItemInactive { + top: 18px; + left: 0; + background-position: 0 -18px; +} + +.olControlZoomPanel .olControlZoomOutItemInactive { + top: 36px; + left: 0; + background-position: 0 18px; +} + +/* + * When a potential text is bigger than the image it move the image + * with some headers (closes #3154) + */ +.olControlPanZoomBar div { + font-size: 1px; +} + +.olPopupCloseBox { + background: url("img/close.gif") no-repeat; + cursor: pointer; +} + +.olFramedCloudPopupContent { + padding: 5px; + overflow: auto; +} + +.olControlNoSelect { + -moz-user-select: none; + -khtml-user-select: none; +} + +.olImageLoadError { + background-color: pink; + opacity: 0.5; + filter: alpha(opacity=50); /* IE */ +} + +/** + * Cursor styles + */ + +.olCursorWait { + cursor: wait; +} +.olDragDown { + cursor: move; +} +.olDrawBox { + cursor: crosshair; +} +.olControlDragFeatureOver { + cursor: move; +} +.olControlDragFeatureActive.olControlDragFeatureOver.olDragDown { + cursor: -moz-grabbing; +} + +/** + * Layer switcher + */ +.olControlLayerSwitcher { + position: absolute; + top: 25px; + right: 0; + width: 20em; + font-family: sans-serif; + font-weight: bold; + margin-top: 3px; + margin-left: 3px; + margin-bottom: 3px; + font-size: smaller; + color: white; + background-color: transparent; +} + +.olControlLayerSwitcher .layersDiv { + padding-top: 5px; + padding-left: 10px; + padding-bottom: 5px; + padding-right: 10px; + background-color: darkblue; +} + +.olControlLayerSwitcher .layersDiv .baseLbl, +.olControlLayerSwitcher .layersDiv .dataLbl { + margin-top: 3px; + margin-left: 3px; + margin-bottom: 3px; +} + +.olControlLayerSwitcher .layersDiv .baseLayersDiv, +.olControlLayerSwitcher .layersDiv .dataLayersDiv { + padding-left: 10px; +} + +.olControlLayerSwitcher .maximizeDiv, +.olControlLayerSwitcher .minimizeDiv { + width: 18px; + height: 18px; + top: 5px; + right: 0; + cursor: pointer; +} + +.olBingAttribution { + color: #DDD; +} +.olBingAttribution.road { + color: #333; +} + +.olGoogleAttribution.hybrid, .olGoogleAttribution.satellite { + color: #EEE; +} +.olGoogleAttribution { + color: #333; +} +span.olGoogleAttribution a { + color: #77C; +} +span.olGoogleAttribution.hybrid a, span.olGoogleAttribution.satellite a { + color: #EEE; +} + +/** + * Editing and navigation icons. + * (using the editing_tool_bar.png sprint image) + */ +.olControlNavToolbar , +.olControlEditingToolbar { + margin: 5px 5px 0 0; +} +.olControlNavToolbar div, +.olControlEditingToolbar div { + background-image: url("img/editing_tool_bar.png"); + background-repeat: no-repeat; + margin: 0 0 5px 5px; + width: 24px; + height: 22px; + cursor: pointer +} +/* positions */ +.olControlEditingToolbar { + right: 0; + top: 0; +} +.olControlNavToolbar { + top: 295px; + left: 9px; +} +/* layouts */ +.olControlEditingToolbar div { + float: right; +} +/* individual controls */ +.olControlNavToolbar .olControlNavigationItemInactive, +.olControlEditingToolbar .olControlNavigationItemInactive { + background-position: -103px -1px; +} +.olControlNavToolbar .olControlNavigationItemActive , +.olControlEditingToolbar .olControlNavigationItemActive { + background-position: -103px -24px; +} +.olControlNavToolbar .olControlZoomBoxItemInactive { + background-position: -128px -1px; +} +.olControlNavToolbar .olControlZoomBoxItemActive { + background-position: -128px -24px; +} +.olControlEditingToolbar .olControlDrawFeaturePointItemInactive { + background-position: -77px -1px; +} +.olControlEditingToolbar .olControlDrawFeaturePointItemActive { + background-position: -77px -24px; +} +.olControlEditingToolbar .olControlDrawFeaturePathItemInactive { + background-position: -51px -1px; +} +.olControlEditingToolbar .olControlDrawFeaturePathItemActive { + background-position: -51px -24px; +} +.olControlEditingToolbar .olControlDrawFeaturePolygonItemInactive{ + background-position: -26px -1px; +} +.olControlEditingToolbar .olControlDrawFeaturePolygonItemActive { + background-position: -26px -24px; +} + +div.olControlZoom { + position: absolute; + top: 8px; + left: 8px; + background: rgba(255,255,255,0.4); + border-radius: 4px; + padding: 2px; +} +div.olControlZoom a { + display: block; + margin: 1px; + padding: 0; + color: white; + font-size: 18px; + font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif; + font-weight: bold; + text-decoration: none; + text-align: center; + height: 22px; + width:22px; + line-height: 19px; + background: #130085; /* fallback for IE - IE6 requires background shorthand*/ + background: rgba(0, 60, 136, 0.5); + filter: alpha(opacity=80); +} +div.olControlZoom a:hover { + background: #130085; /* fallback for IE */ + background: rgba(0, 60, 136, 0.7); + filter: alpha(opacity=100); +} +@media only screen and (max-width: 600px) { + div.olControlZoom a:hover { + background: rgba(0, 60, 136, 0.5); + } +} +a.olControlZoomIn { + border-radius: 4px 4px 0 0; +} +a.olControlZoomOut { + border-radius: 0 0 4px 4px; +} + + +/** + * Animations + */ + +.olLayerGrid .olTileImage { + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} diff --git a/webroot/ccss/_jquery_ui.sass b/webroot/ccss/_jquery_ui.sass new file mode 100644 index 00000000..1674cc50 --- /dev/null +++ b/webroot/ccss/_jquery_ui.sass @@ -0,0 +1,1470 @@ +/* + * jQuery UI CSS Framework 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + +/* Layout helpers + *---------------------------------- + +.ui-helper-hidden + display: none + +.ui-helper-hidden-accessible + position: absolute !important + clip: rect(1px 1px 1px 1px) + clip: rect(1px, 1px, 1px, 1px) + +.ui-helper-reset + margin: 0 + padding: 0 + border: 0 + outline: 0 + line-height: 1.3 + text-decoration: none + font-size: 100% + list-style: none + +.ui-helper-clearfix + &:after + content: "." + display: block + height: 0 + clear: both + visibility: hidden + display: inline-block + +/* required comment for clearfix to work in Opera \ + +* html .ui-helper-clearfix + height: 1% + +.ui-helper-clearfix + display: block + +/* end clearfix + +.ui-helper-zfix + width: 100% + height: 100% + top: 0 + left: 0 + position: absolute + opacity: 0 + filter: unquote("Alpha(Opacity=0)") + +/* Interaction Cues + *---------------------------------- + +.ui-state-disabled + cursor: default !important + +/* Icons + *---------------------------------- + +/* states and images + +.ui-icon + display: block + text-indent: -99999px + overflow: hidden + background-repeat: no-repeat + +/* Misc visuals + *---------------------------------- + +/* Overlays + +.ui-widget-overlay + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + +/* + * jQuery UI CSS Framework 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + +/* Component containers + *---------------------------------- + +.ui-widget + font-family: Verdana,Arial,sans-serif + font-size: 1.1em + .ui-widget + font-size: 1em + input, select, textarea, button + font-family: Verdana,Arial,sans-serif + font-size: 1em + +.ui-widget-content + border: 1px solid #aaaaaa + background: white url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x + color: #222222 + a + color: #222222 + +.ui-widget-header + border: 1px solid #aaaaaa + background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x + color: #222222 + font-weight: bold + a + color: #222222 + +/* Interaction states + *---------------------------------- + +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + border: 1px solid #d3d3d3 + background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x + font-weight: normal + color: #555555 + +.ui-state-default a + color: #555555 + text-decoration: none + &:link, &:visited + color: #555555 + text-decoration: none + +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus + border: 1px solid #999999 + background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x + font-weight: normal + color: #212121 + +.ui-state-hover a + color: #212121 + text-decoration: none + &:hover + color: #212121 + text-decoration: none + +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active + border: 1px solid #aaaaaa + background: white url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x + font-weight: normal + color: #212121 + +.ui-state-active a + color: #212121 + text-decoration: none + &:link, &:visited + color: #212121 + text-decoration: none + +.ui-widget :active + outline: none + +/* Interaction Cues + *---------------------------------- + +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight + border: 1px solid #fcefa1 + background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x + color: #363636 + +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a + color: #363636 + +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error + border: 1px solid #cd0a0a + background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x + color: #cd0a0a + +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a, .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text + color: #cd0a0a + +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary + font-weight: bold + +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary + opacity: .7 + filter: unquote("Alpha(Opacity = 70)") + font-weight: normal + +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled + opacity: .35 + filter: unquote("Alpha(Opacity = 35)") + background-image: none + +/* Icons + *---------------------------------- + +/* states and images + +.ui-icon + width: 16px + height: 16px + background-image: url(images/ui-icons_222222_256x240.png) + +.ui-widget-content .ui-icon, .ui-widget-header .ui-icon + background-image: url(images/ui-icons_222222_256x240.png) + +.ui-state-default .ui-icon + background-image: url(images/ui-icons_888888_256x240.png) + +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon, .ui-state-active .ui-icon + background-image: url(images/ui-icons_454545_256x240.png) + +.ui-state-highlight .ui-icon + background-image: url(images/ui-icons_2e83ff_256x240.png) + +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon + background-image: url(images/ui-icons_cd0a0a_256x240.png) + +/* positioning + +.ui-icon-carat-1-n + background-position: 0 0 + +.ui-icon-carat-1-ne + background-position: -16px 0 + +.ui-icon-carat-1-e + background-position: -32px 0 + +.ui-icon-carat-1-se + background-position: -48px 0 + +.ui-icon-carat-1-s + background-position: -64px 0 + +.ui-icon-carat-1-sw + background-position: -80px 0 + +.ui-icon-carat-1-w + background-position: -96px 0 + +.ui-icon-carat-1-nw + background-position: -112px 0 + +.ui-icon-carat-2-n-s + background-position: -128px 0 + +.ui-icon-carat-2-e-w + background-position: -144px 0 + +.ui-icon-triangle-1-n + background-position: 0 -16px + +.ui-icon-triangle-1-ne + background-position: -16px -16px + +.ui-icon-triangle-1-e + background-position: -32px -16px + +.ui-icon-triangle-1-se + background-position: -48px -16px + +.ui-icon-triangle-1-s + background-position: -64px -16px + +.ui-icon-triangle-1-sw + background-position: -80px -16px + +.ui-icon-triangle-1-w + background-position: -96px -16px + +.ui-icon-triangle-1-nw + background-position: -112px -16px + +.ui-icon-triangle-2-n-s + background-position: -128px -16px + +.ui-icon-triangle-2-e-w + background-position: -144px -16px + +.ui-icon-arrow-1-n + background-position: 0 -32px + +.ui-icon-arrow-1-ne + background-position: -16px -32px + +.ui-icon-arrow-1-e + background-position: -32px -32px + +.ui-icon-arrow-1-se + background-position: -48px -32px + +.ui-icon-arrow-1-s + background-position: -64px -32px + +.ui-icon-arrow-1-sw + background-position: -80px -32px + +.ui-icon-arrow-1-w + background-position: -96px -32px + +.ui-icon-arrow-1-nw + background-position: -112px -32px + +.ui-icon-arrow-2-n-s + background-position: -128px -32px + +.ui-icon-arrow-2-ne-sw + background-position: -144px -32px + +.ui-icon-arrow-2-e-w + background-position: -160px -32px + +.ui-icon-arrow-2-se-nw + background-position: -176px -32px + +.ui-icon-arrowstop-1-n + background-position: -192px -32px + +.ui-icon-arrowstop-1-e + background-position: -208px -32px + +.ui-icon-arrowstop-1-s + background-position: -224px -32px + +.ui-icon-arrowstop-1-w + background-position: -240px -32px + +.ui-icon-arrowthick-1-n + background-position: 0 -48px + +.ui-icon-arrowthick-1-ne + background-position: -16px -48px + +.ui-icon-arrowthick-1-e + background-position: -32px -48px + +.ui-icon-arrowthick-1-se + background-position: -48px -48px + +.ui-icon-arrowthick-1-s + background-position: -64px -48px + +.ui-icon-arrowthick-1-sw + background-position: -80px -48px + +.ui-icon-arrowthick-1-w + background-position: -96px -48px + +.ui-icon-arrowthick-1-nw + background-position: -112px -48px + +.ui-icon-arrowthick-2-n-s + background-position: -128px -48px + +.ui-icon-arrowthick-2-ne-sw + background-position: -144px -48px + +.ui-icon-arrowthick-2-e-w + background-position: -160px -48px + +.ui-icon-arrowthick-2-se-nw + background-position: -176px -48px + +.ui-icon-arrowthickstop-1-n + background-position: -192px -48px + +.ui-icon-arrowthickstop-1-e + background-position: -208px -48px + +.ui-icon-arrowthickstop-1-s + background-position: -224px -48px + +.ui-icon-arrowthickstop-1-w + background-position: -240px -48px + +.ui-icon-arrowreturnthick-1-w + background-position: 0 -64px + +.ui-icon-arrowreturnthick-1-n + background-position: -16px -64px + +.ui-icon-arrowreturnthick-1-e + background-position: -32px -64px + +.ui-icon-arrowreturnthick-1-s + background-position: -48px -64px + +.ui-icon-arrowreturn-1-w + background-position: -64px -64px + +.ui-icon-arrowreturn-1-n + background-position: -80px -64px + +.ui-icon-arrowreturn-1-e + background-position: -96px -64px + +.ui-icon-arrowreturn-1-s + background-position: -112px -64px + +.ui-icon-arrowrefresh-1-w + background-position: -128px -64px + +.ui-icon-arrowrefresh-1-n + background-position: -144px -64px + +.ui-icon-arrowrefresh-1-e + background-position: -160px -64px + +.ui-icon-arrowrefresh-1-s + background-position: -176px -64px + +.ui-icon-arrow-4 + background-position: 0 -80px + +.ui-icon-arrow-4-diag + background-position: -16px -80px + +.ui-icon-extlink + background-position: -32px -80px + +.ui-icon-newwin + background-position: -48px -80px + +.ui-icon-refresh + background-position: -64px -80px + +.ui-icon-shuffle + background-position: -80px -80px + +.ui-icon-transfer-e-w + background-position: -96px -80px + +.ui-icon-transferthick-e-w + background-position: -112px -80px + +.ui-icon-folder-collapsed + background-position: 0 -96px + +.ui-icon-folder-open + background-position: -16px -96px + +.ui-icon-document + background-position: -32px -96px + +.ui-icon-document-b + background-position: -48px -96px + +.ui-icon-note + background-position: -64px -96px + +.ui-icon-mail-closed + background-position: -80px -96px + +.ui-icon-mail-open + background-position: -96px -96px + +.ui-icon-suitcase + background-position: -112px -96px + +.ui-icon-comment + background-position: -128px -96px + +.ui-icon-person + background-position: -144px -96px + +.ui-icon-print + background-position: -160px -96px + +.ui-icon-trash + background-position: -176px -96px + +.ui-icon-locked + background-position: -192px -96px + +.ui-icon-unlocked + background-position: -208px -96px + +.ui-icon-bookmark + background-position: -224px -96px + +.ui-icon-tag + background-position: -240px -96px + +.ui-icon-home + background-position: 0 -112px + +.ui-icon-flag + background-position: -16px -112px + +.ui-icon-calendar + background-position: -32px -112px + +.ui-icon-cart + background-position: -48px -112px + +.ui-icon-pencil + background-position: -64px -112px + +.ui-icon-clock + background-position: -80px -112px + +.ui-icon-disk + background-position: -96px -112px + +.ui-icon-calculator + background-position: -112px -112px + +.ui-icon-zoomin + background-position: -128px -112px + +.ui-icon-zoomout + background-position: -144px -112px + +.ui-icon-search + background-position: -160px -112px + +.ui-icon-wrench + background-position: -176px -112px + +.ui-icon-gear + background-position: -192px -112px + +.ui-icon-heart + background-position: -208px -112px + +.ui-icon-star + background-position: -224px -112px + +.ui-icon-link + background-position: -240px -112px + +.ui-icon-cancel + background-position: 0 -128px + +.ui-icon-plus + background-position: -16px -128px + +.ui-icon-plusthick + background-position: -32px -128px + +.ui-icon-minus + background-position: -48px -128px + +.ui-icon-minusthick + background-position: -64px -128px + +.ui-icon-close + background-position: -80px -128px + +.ui-icon-closethick + background-position: -96px -128px + +.ui-icon-key + background-position: -112px -128px + +.ui-icon-lightbulb + background-position: -128px -128px + +.ui-icon-scissors + background-position: -144px -128px + +.ui-icon-clipboard + background-position: -160px -128px + +.ui-icon-copy + background-position: -176px -128px + +.ui-icon-contact + background-position: -192px -128px + +.ui-icon-image + background-position: -208px -128px + +.ui-icon-video + background-position: -224px -128px + +.ui-icon-script + background-position: -240px -128px + +.ui-icon-alert + background-position: 0 -144px + +.ui-icon-info + background-position: -16px -144px + +.ui-icon-notice + background-position: -32px -144px + +.ui-icon-help + background-position: -48px -144px + +.ui-icon-check + background-position: -64px -144px + +.ui-icon-bullet + background-position: -80px -144px + +.ui-icon-radio-off + background-position: -96px -144px + +.ui-icon-radio-on + background-position: -112px -144px + +.ui-icon-pin-w + background-position: -128px -144px + +.ui-icon-pin-s + background-position: -144px -144px + +.ui-icon-play + background-position: 0 -160px + +.ui-icon-pause + background-position: -16px -160px + +.ui-icon-seek-next + background-position: -32px -160px + +.ui-icon-seek-prev + background-position: -48px -160px + +.ui-icon-seek-end + background-position: -64px -160px + +.ui-icon-seek-start + background-position: -80px -160px + +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead + +.ui-icon-seek-first + background-position: -80px -160px + +.ui-icon-stop + background-position: -96px -160px + +.ui-icon-eject + background-position: -112px -160px + +.ui-icon-volume-off + background-position: -128px -160px + +.ui-icon-volume-on + background-position: -144px -160px + +.ui-icon-power + background-position: 0 -176px + +.ui-icon-signal-diag + background-position: -16px -176px + +.ui-icon-signal + background-position: -32px -176px + +.ui-icon-battery-0 + background-position: -48px -176px + +.ui-icon-battery-1 + background-position: -64px -176px + +.ui-icon-battery-2 + background-position: -80px -176px + +.ui-icon-battery-3 + background-position: -96px -176px + +.ui-icon-circle-plus + background-position: 0 -192px + +.ui-icon-circle-minus + background-position: -16px -192px + +.ui-icon-circle-close + background-position: -32px -192px + +.ui-icon-circle-triangle-e + background-position: -48px -192px + +.ui-icon-circle-triangle-s + background-position: -64px -192px + +.ui-icon-circle-triangle-w + background-position: -80px -192px + +.ui-icon-circle-triangle-n + background-position: -96px -192px + +.ui-icon-circle-arrow-e + background-position: -112px -192px + +.ui-icon-circle-arrow-s + background-position: -128px -192px + +.ui-icon-circle-arrow-w + background-position: -144px -192px + +.ui-icon-circle-arrow-n + background-position: -160px -192px + +.ui-icon-circle-zoomin + background-position: -176px -192px + +.ui-icon-circle-zoomout + background-position: -192px -192px + +.ui-icon-circle-check + background-position: -208px -192px + +.ui-icon-circlesmall-plus + background-position: 0 -208px + +.ui-icon-circlesmall-minus + background-position: -16px -208px + +.ui-icon-circlesmall-close + background-position: -32px -208px + +.ui-icon-squaresmall-plus + background-position: -48px -208px + +.ui-icon-squaresmall-minus + background-position: -64px -208px + +.ui-icon-squaresmall-close + background-position: -80px -208px + +.ui-icon-grip-dotted-vertical + background-position: 0 -224px + +.ui-icon-grip-dotted-horizontal + background-position: -16px -224px + +.ui-icon-grip-solid-vertical + background-position: -32px -224px + +.ui-icon-grip-solid-horizontal + background-position: -48px -224px + +.ui-icon-gripsmall-diagonal-se + background-position: -64px -224px + +.ui-icon-grip-diagonal-se + background-position: -80px -224px + +/* Misc visuals + *---------------------------------- + +/* Corner radius + +.ui-corner-tl + -moz-border-radius-topleft: 4px + -webkit-border-top-left-radius: 4px + border-top-left-radius: 4px + +.ui-corner-tr + -moz-border-radius-topright: 4px + -webkit-border-top-right-radius: 4px + border-top-right-radius: 4px + +.ui-corner-bl + -moz-border-radius-bottomleft: 4px + -webkit-border-bottom-left-radius: 4px + border-bottom-left-radius: 4px + +.ui-corner-br + -moz-border-radius-bottomright: 4px + -webkit-border-bottom-right-radius: 4px + border-bottom-right-radius: 4px + +.ui-corner-top + -moz-border-radius-topleft: 4px + -webkit-border-top-left-radius: 4px + border-top-left-radius: 4px + -moz-border-radius-topright: 4px + -webkit-border-top-right-radius: 4px + border-top-right-radius: 4px + +.ui-corner-bottom + -moz-border-radius-bottomleft: 4px + -webkit-border-bottom-left-radius: 4px + border-bottom-left-radius: 4px + -moz-border-radius-bottomright: 4px + -webkit-border-bottom-right-radius: 4px + border-bottom-right-radius: 4px + +.ui-corner-right + -moz-border-radius-topright: 4px + -webkit-border-top-right-radius: 4px + border-top-right-radius: 4px + -moz-border-radius-bottomright: 4px + -webkit-border-bottom-right-radius: 4px + border-bottom-right-radius: 4px + +.ui-corner-left + -moz-border-radius-topleft: 4px + -webkit-border-top-left-radius: 4px + border-top-left-radius: 4px + -moz-border-radius-bottomleft: 4px + -webkit-border-bottom-left-radius: 4px + border-bottom-left-radius: 4px + +.ui-corner-all + -moz-border-radius: 4px + -webkit-border-radius: 4px + border-radius: 4px + +/* Overlays + +.ui-widget-overlay + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x + opacity: .30 + filter: unquote("Alpha(Opacity = 30)") + +.ui-widget-shadow + margin: -8px 0 0 -8px + padding: 8px + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x + opacity: .30 + filter: unquote("Alpha(Opacity = 30)") + -moz-border-radius: 8px + -webkit-border-radius: 8px + border-radius: 8px + +/* + * * jQuery UI Resizable 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Resizable#theming + +.ui-resizable + position: relative + +.ui-resizable-handle + position: absolute + font-size: 0.1px + z-index: 99999 + display: block + +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle + display: none + +.ui-resizable-n + cursor: n-resize + height: 7px + width: 100% + top: -5px + left: 0 + +.ui-resizable-s + cursor: s-resize + height: 7px + width: 100% + bottom: -5px + left: 0 + +.ui-resizable-e + cursor: e-resize + width: 7px + right: -5px + top: 0 + height: 100% + +.ui-resizable-w + cursor: w-resize + width: 7px + left: -5px + top: 0 + height: 100% + +.ui-resizable-se + cursor: se-resize + width: 12px + height: 12px + right: 1px + bottom: 1px + +.ui-resizable-sw + cursor: sw-resize + width: 9px + height: 9px + left: -5px + bottom: -5px + +.ui-resizable-nw + cursor: nw-resize + width: 9px + height: 9px + left: -5px + top: -5px + +.ui-resizable-ne + cursor: ne-resize + width: 9px + height: 9px + right: -5px + top: -5px + +/* + * * jQuery UI Selectable 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Selectable#theming + +.ui-selectable-helper + position: absolute + z-index: 100 + border: 1px dotted black + +/* + * jQuery UI Accordion 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming +/* IE/Win - Fix animation bug - #4615 + +.ui-accordion + width: 100% + .ui-accordion-header + cursor: pointer + position: relative + margin-top: 1px + zoom: 1 + .ui-accordion-li-fix + display: inline + .ui-accordion-header-active + border-bottom: 0 !important + .ui-accordion-header a + display: block + font-size: 1em + padding: .5em .5em .5em .7em + +.ui-accordion-icons .ui-accordion-header a + padding-left: 2.2em + +.ui-accordion + .ui-accordion-header .ui-icon + position: absolute + left: .5em + top: 50% + margin-top: -8px + .ui-accordion-content + padding: 1em 2.2em + border-top: 0 + margin-top: -2px + position: relative + top: 1px + margin-bottom: 2px + overflow: auto + display: none + zoom: 1 + .ui-accordion-content-active + display: block + +/* + * * jQuery UI Autocomplete 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Autocomplete#theming + +.ui-autocomplete + position: absolute + cursor: default + +/* workarounds + +* html .ui-autocomplete + width: 1px + +/* without this, the menu expands to 100% in IE6 + +/* + * jQuery UI Menu 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + +.ui-menu + list-style: none + padding: 2px + margin: 0 + display: block + float: left + .ui-menu + margin-top: -3px + .ui-menu-item + margin: 0 + padding: 0 + zoom: 1 + float: left + clear: left + width: 100% + a + text-decoration: none + display: block + padding: .2em .4em + line-height: 1.5 + zoom: 1 + &.ui-state-hover, &.ui-state-active + font-weight: normal + margin: -1px + +/* + * jQuery UI Button 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + +.ui-button + display: inline-block + position: relative + padding: 0 + margin-right: .1em + text-decoration: none !important + cursor: pointer + text-align: center + zoom: 1 + overflow: visible + +/* the overflow property removes extra width in IE + +.ui-button-icon-only + width: 2.2em + +/* to make room for the icon, a width needs to be set here + +button.ui-button-icon-only + width: 2.4em + +/* button elements seem to need a little more width + +.ui-button-icons-only + width: 3.4em + +button.ui-button-icons-only + width: 3.7em + +/*button text element + +.ui-button .ui-button-text + display: block + line-height: 1.4 + +.ui-button-text-only .ui-button-text + padding: .4em 1em + +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text + padding: .4em + text-indent: -9999999px + +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text + padding: .4em 1em .4em 2.1em + +.ui-button-text-icon-secondary .ui-button-text + padding: .4em 2.1em .4em 1em + +.ui-button-text-icons .ui-button-text + padding: .4em 2.1em .4em 1em + padding-left: 2.1em + padding-right: 2.1em + +/* no icon support for input elements, provide padding by default + +input.ui-button + padding: .4em 1em + +/*button icon element(s) + +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon + position: absolute + top: 50% + margin-top: -8px + +.ui-button-icon-only .ui-icon + left: 50% + margin-left: -8px + +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary + left: .5em + +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary + right: .5em + +/*button sets + +.ui-buttonset + margin-right: 7px + .ui-button + margin-left: 0 + margin-right: -0.3em + +/* workarounds + +//button.ui-button::-moz-focus-inner +// border: 0 +// padding: 0 + +/* reset extra padding in Firefox +/* + * jQuery UI Dialog 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + +.ui-dialog + position: absolute + padding: .2em + width: 300px + overflow: hidden + .ui-dialog-titlebar + padding: .5em 1em .3em + position: relative + .ui-dialog-title + float: left + margin: .1em 16px .2em 0 + .ui-dialog-titlebar-close + position: absolute + right: .3em + top: 50% + width: 19px + margin: -10px 0 0 0 + padding: 1px + height: 18px + span + display: block + margin: 1px + &:hover, &:focus + padding: 0 + .ui-dialog-content + position: relative + border: 0 + padding: .5em 1em + background: none + overflow: auto + zoom: 1 + .ui-dialog-buttonpane + text-align: left + border-width: 1px 0 0 0 + background-image: none + margin: .5em 0 0 0 + padding: .3em 1em .5em .4em + .ui-dialog-buttonset + float: right + button + margin: .5em .4em .5em 0 + cursor: pointer + .ui-resizable-se + width: 14px + height: 14px + right: 3px + bottom: 3px + +.ui-draggable .ui-dialog-titlebar + cursor: move + +/* + * jQuery UI Slider 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + +.ui-slider + position: relative + text-align: left + .ui-slider-handle + position: absolute + z-index: 2 + width: 1.2em + height: 1.2em + cursor: default + .ui-slider-range + position: absolute + z-index: 1 + font-size: .7em + display: block + border: 0 + background-position: 0 0 + +.ui-slider-horizontal + height: .8em + .ui-slider-handle + top: -0.3em + margin-left: -0.6em + .ui-slider-range + top: 0 + height: 100% + .ui-slider-range-min + left: 0 + .ui-slider-range-max + right: 0 + +.ui-slider-vertical + width: .8em + height: 100px + .ui-slider-handle + left: -0.3em + margin-left: 0 + margin-bottom: -0.6em + .ui-slider-range + left: 0 + width: 100% + .ui-slider-range-min + bottom: 0 + .ui-slider-range-max + top: 0 + +/* + * * jQuery UI Tabs 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Tabs#theming + +.ui-tabs + position: relative + padding: .2em + zoom: 1 + .ui-tabs-nav + margin: 0 + padding: .2em .2em 0 + li + list-style: none + float: left + position: relative + top: 1px + margin: 0 .2em 1px 0 + border-bottom: 0 !important + padding: 0 + white-space: nowrap + a + float: left + padding: .5em 1em + text-decoration: none + &.ui-tabs-selected + margin-bottom: 0 + padding-bottom: 1px + a + cursor: text + &.ui-state-disabled a, &.ui-state-processing a + cursor: text + a + cursor: pointer + &.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a + cursor: pointer + .ui-tabs-panel + display: block + border-width: 0 + padding: 1em 1.4em + background: none + .ui-tabs-hide + display: none !important + +/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") + +/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... + +/* + * jQuery UI Datepicker 1.8.7 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + +.ui-datepicker + width: 17em + padding: .2em .2em 0 + display: none + .ui-datepicker-header + position: relative + padding: .2em 0 + .ui-datepicker-prev, .ui-datepicker-next + position: absolute + top: 2px + width: 1.8em + height: 1.8em + .ui-datepicker-prev-hover, .ui-datepicker-next-hover + top: 1px + .ui-datepicker-prev + left: 2px + .ui-datepicker-next + right: 2px + .ui-datepicker-prev-hover + left: 1px + .ui-datepicker-next-hover + right: 1px + .ui-datepicker-prev span, .ui-datepicker-next span + display: block + position: absolute + left: 50% + margin-left: -8px + top: 50% + margin-top: -8px + .ui-datepicker-title + margin: 0 2.3em + line-height: 1.8em + text-align: center + select + font-size: 1em + margin: 1px 0 + select + &.ui-datepicker-month-year + width: 100% + &.ui-datepicker-month, &.ui-datepicker-year + width: 49% + table + width: 100% + font-size: .9em + border-collapse: collapse + margin: 0 0 .4em + th + padding: .7em .3em + text-align: center + font-weight: bold + border: 0 + td + border: 0 + padding: 1px + span, a + display: block + padding: .2em + text-align: right + text-decoration: none + .ui-datepicker-buttonpane + background-image: none + margin: .7em 0 0 0 + padding: 0 .2em + border-left: 0 + border-right: 0 + border-bottom: 0 + button + float: right + margin: .5em .2em .4em + cursor: pointer + padding: .2em .6em .3em .6em + width: auto + overflow: visible + &.ui-datepicker-current + float: left + &.ui-datepicker-multi + width: auto + +/* with multiple calendars + +.ui-datepicker-multi .ui-datepicker-group + float: left + table + width: 95% + margin: 0 auto .4em + +.ui-datepicker-multi-2 .ui-datepicker-group + width: 50% + +.ui-datepicker-multi-3 .ui-datepicker-group + width: 33.3% + +.ui-datepicker-multi-4 .ui-datepicker-group + width: 25% + +.ui-datepicker-multi + .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-group-middle .ui-datepicker-header + border-left-width: 0 + .ui-datepicker-buttonpane + clear: left + +.ui-datepicker-row-break + clear: both + width: 100% + +/* RTL support + +.ui-datepicker-rtl + direction: rtl + .ui-datepicker-prev + right: 2px + left: auto + .ui-datepicker-next + left: 2px + right: auto + .ui-datepicker-prev:hover + right: 1px + left: auto + .ui-datepicker-next:hover + left: 1px + right: auto + .ui-datepicker-buttonpane + clear: right + button + float: left + &.ui-datepicker-current + float: right + .ui-datepicker-group + float: right + .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-group-middle .ui-datepicker-header + border-right-width: 0 + border-left-width: 1px + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 + +.ui-datepicker-cover + display: none + /*sorry for IE5 + display/**/: block + /*sorry for IE5 + position: absolute + /*must have + z-index: -1 + /*must have + filter: mask() + /*must have + top: -4px + /*must have + left: -4px + /*must have + width: 200px + /*must have + height: 200px + /*must have + +/* + ** jQuery UI Progressbar 1.8.7 + ** + ** Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + ** Dual licensed under the MIT or GPL Version 2 licenses. + ** http://jquery.org/license + ** + ** http://docs.jquery.com/UI/Progressbar#theming + +.ui-progressbar + height: 2em + text-align: left + .ui-progressbar-value + margin: -1px + height: 100% + diff --git a/webroot/ccss/backend.css b/webroot/ccss/backend.css new file mode 100644 index 00000000..681fd31b --- /dev/null +++ b/webroot/ccss/backend.css @@ -0,0 +1,1970 @@ + @font-face { + font-family: "Ubuntu"; + src: url('../fonts/ubuntu/ubuntu-r-webfont.eot'); + src: local("☺"), url('../fonts/ubuntu/ubuntu-r-webfont.woff') format('woff'), url('../fonts/ubuntu/ubuntu-r-webfont.ttf') format('truetype'); } + + @font-face { + font-family: "Ubuntu-bold"; + src: url('../fonts/ubuntu/ubuntu-b-webfont.eot'); + src: local("☺"), url('../fonts/ubuntu/ubuntu-b-webfont.woff') format('woff'), url('../fonts/ubuntu/ubuntu-b-webfont.ttf') format('truetype'); } + + @font-face { + font-family: "Cousine"; + src: url('../fonts/cousine/cousine-regular-latin-webfont.eot'); + src: local("☺"), url('../fonts/cousine/cousine-regular-latin-webfont.woff') format('woff'), url('../fonts/cousine/cousine-regular-latin-webfont.ttf') format('truetype'); } + +* { + font-size: 10pt; + font-weight: normal; + text-decoration: none; + font-family: Ubuntu, Verdana, sans; } + +a { + color: #4444ff; } + a:hover { + color: #0000aa; } + a:visited { + color: #1111ff; } + +img { + border: none; } + +ol, +ul { + list-style-type: none; } + +p { + padding: 5px 0; } + +code { + font-family: Cousine; + font-size: 10pt; + background-color: #e6e6e6; + color: #333333; } + + #content h2, + #content h3 { + font-family: Ubuntu-bold; + padding: 10px 0; } + #content ul li { + padding: 5px 0; } + +* { + margin: 0; + padding: 0; } + +#page { + width: 950px; + margin: 0 auto; + overflow: hidden; + *zoom: 1; } + +#header { + display: inline; + float: left; + margin-right: 0; + width: 950px; + background-color: #008800; + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #008800), color-stop(100%, #002200)); + background-image: -moz-linear-gradient(top, #008800 0%, #002200 100%); + background-image: linear-gradient(top, #008800 0%, #002200 100%); + border: 1px solid #008800; } + * html #header { + overflow-x: hidden; } + #header > .sub { + padding: 15px; } + #header > .sub h1 { + display: inline-block;; } + #header > .sub h1 a { + font-size: 200%; + font-weight: bold; + text-shadow: black 0 2px 0; + color: white; } + #header > .sub h1 a:hover { + color: white; + background-color: inherit; } + #header > .sub h1 a:visited { + color: white; + background-color: inherit; } + #header > .sub span { + display: inline-block;; + color: white; } + +#main { + display: inline; + float: left; + margin-right: 0; + width: 950px; + background-color: white; } + * html #main { + overflow-x: hidden; } + #main #sidebar { + display: inline; + float: left; + margin-right: 10px; + width: 230px; + background-color: white; } + * html #main #sidebar { + overflow-x: hidden; } + #main #content { + display: inline; + float: left; + margin-right: 0; + width: 710px; + -moz-border-radius-topright: 10px; + -webkit-border-top-right-radius: 10px; + -o-border-top-right-radius: 10px; + -ms-border-top-right-radius: 10px; + -khtml-border-top-right-radius: 10px; + border-top-right-radius: 10px; + background-color: white; } + * html #main #content { + overflow-x: hidden; } + #main #content > h1 { + display: block; + width: 100%; + font-size: 120%; + padding: 10px 0; + background-color: #e6e6e6; } + +#footer { + display: inline; + float: left; + margin-right: 0; + width: 950px; + background-color: #888888; } + * html #footer { + overflow-x: hidden; } + #footer p { + padding: 5px; } + +.box { + position: relative; } + .box > h1 { + font-size: 120%; + padding: 5px; + background-color: #eeeeee; + color: #444444; + text-shadow: white 1px 0px 0; } + +.info, +.message { + display: block; + margin: 5px 0; + padding: 10px; + background-color: #ffffb0; + border: 1px solid #ffdc1c; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + +#sidebar > .box { + margin: 5px 0; + overflow: hidden; } + #sidebar > .box > ul { + display: block; } + #sidebar > .box ul { + display: block; + list-style-type: none; } + #sidebar > .box li > a { + display: block; + padding: 5px; + color: black; } + #sidebar > .box li > a:hover { + color: #330033; + background-color: #7799bb; } + #sidebar > .box li > .active { + display: block; + color: white; + background-color: #557799; } + #sidebar > .box > ul > li > ul { + margin-bottom: 5px; } + #sidebar > .box > ul > li > ul > li > .active { + width: 205px; + padding-left: 20px; + background-color: #7191b0; } + #sidebar > .box > ul > li > ul > li > a { + padding-left: 20px; + width: 205px; } + #sidebar > .box > ul > li > ul > li > ul > li > .active { + width: 185px; + padding-left: 40px; + background-color: #92aac2; } + #sidebar > .box > ul > li > ul > li > ul > li > a { + width: 185px; + padding-left: 40px; } + +form { + overflow: hidden; + width: 710px; + margin: 15px 0; } + form fieldset { + padding: 15px 0; + border: 0; } + form fieldset legend { + font-family: Ubuntu-bold; + width: 81.5%; + border-bottom: 1px solid #e6e6e6; } + form fieldset div.input { + padding: 5px 0; + position: relative; + display: block; + width: 100%; } + form fieldset div.input > label { + display: inline; + float: left; + width: 30%; } + form fieldset div.input input[type=email], + form fieldset div.input input[type=password], + form fieldset div.input input[type=text], + form fieldset div.input textarea { + width: 50%; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + border: #aaaaaa 1px solid; + padding: 5px; + background-color: #efefef; } + form fieldset div.input input[type=email]:hover, + form fieldset div.input input[type=password]:hover, + form fieldset div.input input[type=text]:hover, + form fieldset div.input textarea:hover { + border: #999999 1px solid; + background-color: #ffffdd; } + form fieldset div.input input[type=email]:focus, + form fieldset div.input input[type=password]:focus, + form fieldset div.input input[type=text]:focus, + form fieldset div.input textarea:focus { + border: #aa0000 1px solid; + background-color: #ffffdd; } + form fieldset div.input select { + width: 51.5%; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + border: #aaaaaa 1px solid; + padding: 5px; + background-color: #efefef; } + form fieldset div.input select:hover { + border: #999999 1px solid; + background-color: #ffffdd; } + form fieldset div.input select:focus { + border: #aa0000 1px solid; + background-color: #ffffdd; } + form fieldset div.input.select div.checkbox { + margin-left: 30%; } + form fieldset div.input.select div.checkbox input[type=checkbox] { + margin-right: 5px; } + form fieldset div.input.checkbox input[type=checkbox] { + margin-left: 30%; + margin-right: 5px; } + form fieldset div.input.checkbox label { + float: none; + display: inline-block; + width: 50%; } + form fieldset div.input .radioSet { + margin: 3px 0; } + form fieldset div.input .radioSet input[type=radio] { + display: inline; } + form fieldset div.input .radioSet label { + padding: 5px 10px; + border: 1px solid #aaaaaa; + color: #666666; + background-color: #efefef; } + form fieldset div.input .radioSet label:hover { + cursor: pointer; } + form fieldset div.input .radioSet input[type=radio]:checked + label { + color: white; + background-color: #557799; + border-color: #314457; } + form fieldset div.input .description, + form fieldset div.input .error-message { + padding-left: 30%; } + form fieldset div.input.error { + background-color: #ffaaaa; } + form ul.buttons { + margin-left: 30%; } + form ul.buttons > li { + display: inline-block; + margin-right: 10px; } + form ul.buttons > li > input { + border: 1px solid #aaaaaa; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; + padding: 5px 15px; + color: #666666; + background-color: #efefef; } + form ul.buttons > li > input:hover { + cursor: pointer; + background-color: #557799; + color: white; + border-color: #314457; } + form div.submit { + padding-left: 30%; } + form div.submit input { + border: 1px solid #aaaaaa; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; + padding: 5px 15px; + color: #666666; + background-color: #efefef; } + form div.submit input:hover { + cursor: pointer; + background-color: #557799; + color: white; + border-color: #314457; } + form div.submit-list input { + margin-right: 5px; + border: 1px solid #aaaaaa; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; + padding: 5px 15px; + color: #666666; + background-color: #efefef; } + form div.submit-list input:hover { + cursor: pointer; + background-color: #557799; + color: white; + border-color: #314457; } + +a.button { + border: 1px solid #aaaaaa; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; + padding: 5px 15px; + color: #666666; + background-color: #efefef; } + a.button:hover { + cursor: pointer; + background-color: #557799; + color: white; + border-color: #314457; } + +table.default { + padding: 5px 0; + width: 100%; + border-collapse: separate; + border-spacing: 0; + border: 0; } + table.default thead tr th { + padding: 3px; + background: #cccccc; + text-shadow: white 1px 0 1px; + font-weight: none; + text-align: left; } + table.default tbody tr.odd td { + background: #eeeeee; } + table.default tbody tr.even td { + background: white; } + table.default tbody tr.selected td { + background: #99b3cc; } + table.default tbody tr:hover td { + background: #7799bb; } + table.default tbody tr td { + padding: 3px; + border-bottom: 1px solid #eeeeee; } + +/* + * * jQuery UI CSS Framework 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Theming/API + */ +/* + * Layout helpers + * *---------------------------------- + */ +.ui-helper-hidden { + display: none; } + +.ui-helper-hidden-accessible { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); } + +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; } + +.ui-helper-clearfix { + display: inline-block; } + .ui-helper-clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; } + +/* + * required comment for clearfix to work in Opera \ + */ +* html .ui-helper-clearfix { + height: 1%; } + +.ui-helper-clearfix { + display: block; } + +/* + * end clearfix + */ +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter: Alpha(Opacity=0); } + +/* + * Interaction Cues + * *---------------------------------- + */ +.ui-state-disabled { + cursor: default !important; } + +/* + * Icons + * *---------------------------------- + */ +/* + * states and images + */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; } + +/* + * Misc visuals + * *---------------------------------- + */ +/* + * Overlays + */ +.ui-widget-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +/* + * * jQuery UI CSS Framework 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Theming/API + * * + * * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ +/* + * Component containers + * *---------------------------------- + */ +.ui-widget { + font-family: Verdana, Arial, sans-serif; + font-size: 1.1em; } + .ui-widget .ui-widget { + font-size: 1em; } + .ui-widget button, + .ui-widget input, + .ui-widget select, + .ui-widget textarea { + font-family: Verdana, Arial, sans-serif; + font-size: 1em; } + +.ui-widget-content { + border: 1px solid #aaaaaa; + background: white url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; + color: #222222; } + .ui-widget-content a { + color: #222222; } + +.ui-widget-header { + border: 1px solid #aaaaaa; + background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; + color: #222222; + font-weight: bold; } + .ui-widget-header a { + color: #222222; } + +/* + * Interaction states + * *---------------------------------- + */ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #d3d3d3; + background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #555555; } + +.ui-state-default a { + color: #555555; + text-decoration: none; } + .ui-state-default a:link, + .ui-state-default a:visited { + color: #555555; + text-decoration: none; } + +.ui-state-focus, +.ui-state-hover, +.ui-widget-content .ui-state-focus, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-focus, +.ui-widget-header .ui-state-hover { + border: 1px solid #999999; + background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #212121; } + +.ui-state-hover a { + color: #212121; + text-decoration: none; } + .ui-state-hover a:hover { + color: #212121; + text-decoration: none; } + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #aaaaaa; + background: white url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #212121; } + +.ui-state-active a { + color: #212121; + text-decoration: none; } + .ui-state-active a:link, + .ui-state-active a:visited { + color: #212121; + text-decoration: none; } + +.ui-widget :active { + outline: none; } + +/* + * Interaction Cues + * *---------------------------------- + */ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fcefa1; + background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; + color: #363636; } + +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; } + +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; + color: #cd0a0a; } + +.ui-state-error a, +.ui-state-error-text, +.ui-widget-content .ui-state-error a, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error a, +.ui-widget-header .ui-state-error-text { + color: #cd0a0a; } + +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; } + +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: 0.7; + filter: Alpha(Opacity = 70); + font-weight: normal; } + +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: 0.35; + filter: Alpha(Opacity = 35); + background-image: none; } + +/* + * Icons + * *---------------------------------- + */ +/* + * states and images + */ +.ui-icon { + width: 16px; + height: 16px; + background-image: url(images/ui-icons_222222_256x240.png); } + +.ui-widget-content .ui-icon, +.ui-widget-header .ui-icon { + background-image: url(images/ui-icons_222222_256x240.png); } + +.ui-state-default .ui-icon { + background-image: url(images/ui-icons_888888_256x240.png); } + +.ui-state-active .ui-icon, +.ui-state-focus .ui-icon, +.ui-state-hover .ui-icon { + background-image: url(images/ui-icons_454545_256x240.png); } + +.ui-state-highlight .ui-icon { + background-image: url(images/ui-icons_2e83ff_256x240.png); } + +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* + * positioning + */ +.ui-icon-carat-1-n { + background-position: 0 0; } + +.ui-icon-carat-1-ne { + background-position: -16px 0; } + +.ui-icon-carat-1-e { + background-position: -32px 0; } + +.ui-icon-carat-1-se { + background-position: -48px 0; } + +.ui-icon-carat-1-s { + background-position: -64px 0; } + +.ui-icon-carat-1-sw { + background-position: -80px 0; } + +.ui-icon-carat-1-w { + background-position: -96px 0; } + +.ui-icon-carat-1-nw { + background-position: -112px 0; } + +.ui-icon-carat-2-n-s { + background-position: -128px 0; } + +.ui-icon-carat-2-e-w { + background-position: -144px 0; } + +.ui-icon-triangle-1-n { + background-position: 0 -16px; } + +.ui-icon-triangle-1-ne { + background-position: -16px -16px; } + +.ui-icon-triangle-1-e { + background-position: -32px -16px; } + +.ui-icon-triangle-1-se { + background-position: -48px -16px; } + +.ui-icon-triangle-1-s { + background-position: -64px -16px; } + +.ui-icon-triangle-1-sw { + background-position: -80px -16px; } + +.ui-icon-triangle-1-w { + background-position: -96px -16px; } + +.ui-icon-triangle-1-nw { + background-position: -112px -16px; } + +.ui-icon-triangle-2-n-s { + background-position: -128px -16px; } + +.ui-icon-triangle-2-e-w { + background-position: -144px -16px; } + +.ui-icon-arrow-1-n { + background-position: 0 -32px; } + +.ui-icon-arrow-1-ne { + background-position: -16px -32px; } + +.ui-icon-arrow-1-e { + background-position: -32px -32px; } + +.ui-icon-arrow-1-se { + background-position: -48px -32px; } + +.ui-icon-arrow-1-s { + background-position: -64px -32px; } + +.ui-icon-arrow-1-sw { + background-position: -80px -32px; } + +.ui-icon-arrow-1-w { + background-position: -96px -32px; } + +.ui-icon-arrow-1-nw { + background-position: -112px -32px; } + +.ui-icon-arrow-2-n-s { + background-position: -128px -32px; } + +.ui-icon-arrow-2-ne-sw { + background-position: -144px -32px; } + +.ui-icon-arrow-2-e-w { + background-position: -160px -32px; } + +.ui-icon-arrow-2-se-nw { + background-position: -176px -32px; } + +.ui-icon-arrowstop-1-n { + background-position: -192px -32px; } + +.ui-icon-arrowstop-1-e { + background-position: -208px -32px; } + +.ui-icon-arrowstop-1-s { + background-position: -224px -32px; } + +.ui-icon-arrowstop-1-w { + background-position: -240px -32px; } + +.ui-icon-arrowthick-1-n { + background-position: 0 -48px; } + +.ui-icon-arrowthick-1-ne { + background-position: -16px -48px; } + +.ui-icon-arrowthick-1-e { + background-position: -32px -48px; } + +.ui-icon-arrowthick-1-se { + background-position: -48px -48px; } + +.ui-icon-arrowthick-1-s { + background-position: -64px -48px; } + +.ui-icon-arrowthick-1-sw { + background-position: -80px -48px; } + +.ui-icon-arrowthick-1-w { + background-position: -96px -48px; } + +.ui-icon-arrowthick-1-nw { + background-position: -112px -48px; } + +.ui-icon-arrowthick-2-n-s { + background-position: -128px -48px; } + +.ui-icon-arrowthick-2-ne-sw { + background-position: -144px -48px; } + +.ui-icon-arrowthick-2-e-w { + background-position: -160px -48px; } + +.ui-icon-arrowthick-2-se-nw { + background-position: -176px -48px; } + +.ui-icon-arrowthickstop-1-n { + background-position: -192px -48px; } + +.ui-icon-arrowthickstop-1-e { + background-position: -208px -48px; } + +.ui-icon-arrowthickstop-1-s { + background-position: -224px -48px; } + +.ui-icon-arrowthickstop-1-w { + background-position: -240px -48px; } + +.ui-icon-arrowreturnthick-1-w { + background-position: 0 -64px; } + +.ui-icon-arrowreturnthick-1-n { + background-position: -16px -64px; } + +.ui-icon-arrowreturnthick-1-e { + background-position: -32px -64px; } + +.ui-icon-arrowreturnthick-1-s { + background-position: -48px -64px; } + +.ui-icon-arrowreturn-1-w { + background-position: -64px -64px; } + +.ui-icon-arrowreturn-1-n { + background-position: -80px -64px; } + +.ui-icon-arrowreturn-1-e { + background-position: -96px -64px; } + +.ui-icon-arrowreturn-1-s { + background-position: -112px -64px; } + +.ui-icon-arrowrefresh-1-w { + background-position: -128px -64px; } + +.ui-icon-arrowrefresh-1-n { + background-position: -144px -64px; } + +.ui-icon-arrowrefresh-1-e { + background-position: -160px -64px; } + +.ui-icon-arrowrefresh-1-s { + background-position: -176px -64px; } + +.ui-icon-arrow-4 { + background-position: 0 -80px; } + +.ui-icon-arrow-4-diag { + background-position: -16px -80px; } + +.ui-icon-extlink { + background-position: -32px -80px; } + +.ui-icon-newwin { + background-position: -48px -80px; } + +.ui-icon-refresh { + background-position: -64px -80px; } + +.ui-icon-shuffle { + background-position: -80px -80px; } + +.ui-icon-transfer-e-w { + background-position: -96px -80px; } + +.ui-icon-transferthick-e-w { + background-position: -112px -80px; } + +.ui-icon-folder-collapsed { + background-position: 0 -96px; } + +.ui-icon-folder-open { + background-position: -16px -96px; } + +.ui-icon-document { + background-position: -32px -96px; } + +.ui-icon-document-b { + background-position: -48px -96px; } + +.ui-icon-note { + background-position: -64px -96px; } + +.ui-icon-mail-closed { + background-position: -80px -96px; } + +.ui-icon-mail-open { + background-position: -96px -96px; } + +.ui-icon-suitcase { + background-position: -112px -96px; } + +.ui-icon-comment { + background-position: -128px -96px; } + +.ui-icon-person { + background-position: -144px -96px; } + +.ui-icon-print { + background-position: -160px -96px; } + +.ui-icon-trash { + background-position: -176px -96px; } + +.ui-icon-locked { + background-position: -192px -96px; } + +.ui-icon-unlocked { + background-position: -208px -96px; } + +.ui-icon-bookmark { + background-position: -224px -96px; } + +.ui-icon-tag { + background-position: -240px -96px; } + +.ui-icon-home { + background-position: 0 -112px; } + +.ui-icon-flag { + background-position: -16px -112px; } + +.ui-icon-calendar { + background-position: -32px -112px; } + +.ui-icon-cart { + background-position: -48px -112px; } + +.ui-icon-pencil { + background-position: -64px -112px; } + +.ui-icon-clock { + background-position: -80px -112px; } + +.ui-icon-disk { + background-position: -96px -112px; } + +.ui-icon-calculator { + background-position: -112px -112px; } + +.ui-icon-zoomin { + background-position: -128px -112px; } + +.ui-icon-zoomout { + background-position: -144px -112px; } + +.ui-icon-search { + background-position: -160px -112px; } + +.ui-icon-wrench { + background-position: -176px -112px; } + +.ui-icon-gear { + background-position: -192px -112px; } + +.ui-icon-heart { + background-position: -208px -112px; } + +.ui-icon-star { + background-position: -224px -112px; } + +.ui-icon-link { + background-position: -240px -112px; } + +.ui-icon-cancel { + background-position: 0 -128px; } + +.ui-icon-plus { + background-position: -16px -128px; } + +.ui-icon-plusthick { + background-position: -32px -128px; } + +.ui-icon-minus { + background-position: -48px -128px; } + +.ui-icon-minusthick { + background-position: -64px -128px; } + +.ui-icon-close { + background-position: -80px -128px; } + +.ui-icon-closethick { + background-position: -96px -128px; } + +.ui-icon-key { + background-position: -112px -128px; } + +.ui-icon-lightbulb { + background-position: -128px -128px; } + +.ui-icon-scissors { + background-position: -144px -128px; } + +.ui-icon-clipboard { + background-position: -160px -128px; } + +.ui-icon-copy { + background-position: -176px -128px; } + +.ui-icon-contact { + background-position: -192px -128px; } + +.ui-icon-image { + background-position: -208px -128px; } + +.ui-icon-video { + background-position: -224px -128px; } + +.ui-icon-script { + background-position: -240px -128px; } + +.ui-icon-alert { + background-position: 0 -144px; } + +.ui-icon-info { + background-position: -16px -144px; } + +.ui-icon-notice { + background-position: -32px -144px; } + +.ui-icon-help { + background-position: -48px -144px; } + +.ui-icon-check { + background-position: -64px -144px; } + +.ui-icon-bullet { + background-position: -80px -144px; } + +.ui-icon-radio-off { + background-position: -96px -144px; } + +.ui-icon-radio-on { + background-position: -112px -144px; } + +.ui-icon-pin-w { + background-position: -128px -144px; } + +.ui-icon-pin-s { + background-position: -144px -144px; } + +.ui-icon-play { + background-position: 0 -160px; } + +.ui-icon-pause { + background-position: -16px -160px; } + +.ui-icon-seek-next { + background-position: -32px -160px; } + +.ui-icon-seek-prev { + background-position: -48px -160px; } + +.ui-icon-seek-end { + background-position: -64px -160px; } + +.ui-icon-seek-start { + background-position: -80px -160px; } + +/* + * ui-icon-seek-first is deprecated, use ui-icon-seek-start instead + */ +.ui-icon-seek-first { + background-position: -80px -160px; } + +.ui-icon-stop { + background-position: -96px -160px; } + +.ui-icon-eject { + background-position: -112px -160px; } + +.ui-icon-volume-off { + background-position: -128px -160px; } + +.ui-icon-volume-on { + background-position: -144px -160px; } + +.ui-icon-power { + background-position: 0 -176px; } + +.ui-icon-signal-diag { + background-position: -16px -176px; } + +.ui-icon-signal { + background-position: -32px -176px; } + +.ui-icon-battery-0 { + background-position: -48px -176px; } + +.ui-icon-battery-1 { + background-position: -64px -176px; } + +.ui-icon-battery-2 { + background-position: -80px -176px; } + +.ui-icon-battery-3 { + background-position: -96px -176px; } + +.ui-icon-circle-plus { + background-position: 0 -192px; } + +.ui-icon-circle-minus { + background-position: -16px -192px; } + +.ui-icon-circle-close { + background-position: -32px -192px; } + +.ui-icon-circle-triangle-e { + background-position: -48px -192px; } + +.ui-icon-circle-triangle-s { + background-position: -64px -192px; } + +.ui-icon-circle-triangle-w { + background-position: -80px -192px; } + +.ui-icon-circle-triangle-n { + background-position: -96px -192px; } + +.ui-icon-circle-arrow-e { + background-position: -112px -192px; } + +.ui-icon-circle-arrow-s { + background-position: -128px -192px; } + +.ui-icon-circle-arrow-w { + background-position: -144px -192px; } + +.ui-icon-circle-arrow-n { + background-position: -160px -192px; } + +.ui-icon-circle-zoomin { + background-position: -176px -192px; } + +.ui-icon-circle-zoomout { + background-position: -192px -192px; } + +.ui-icon-circle-check { + background-position: -208px -192px; } + +.ui-icon-circlesmall-plus { + background-position: 0 -208px; } + +.ui-icon-circlesmall-minus { + background-position: -16px -208px; } + +.ui-icon-circlesmall-close { + background-position: -32px -208px; } + +.ui-icon-squaresmall-plus { + background-position: -48px -208px; } + +.ui-icon-squaresmall-minus { + background-position: -64px -208px; } + +.ui-icon-squaresmall-close { + background-position: -80px -208px; } + +.ui-icon-grip-dotted-vertical { + background-position: 0 -224px; } + +.ui-icon-grip-dotted-horizontal { + background-position: -16px -224px; } + +.ui-icon-grip-solid-vertical { + background-position: -32px -224px; } + +.ui-icon-grip-solid-horizontal { + background-position: -48px -224px; } + +.ui-icon-gripsmall-diagonal-se { + background-position: -64px -224px; } + +.ui-icon-grip-diagonal-se { + background-position: -80px -224px; } + +/* + * Misc visuals + * *---------------------------------- + */ +/* + * Corner radius + */ +.ui-corner-tl { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; } + +.ui-corner-tr { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; } + +.ui-corner-bl { + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; } + +.ui-corner-br { + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.ui-corner-top { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; } + +.ui-corner-bottom { + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.ui-corner-right { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.ui-corner-left { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; } + +.ui-corner-all { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } + +/* + * Overlays + */ +.ui-widget-overlay { + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: 0.3; + filter: Alpha(Opacity = 30); } + +.ui-widget-shadow { + margin: -8px 0 0 -8px; + padding: 8px; + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: 0.3; + filter: Alpha(Opacity = 30); + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; } + +/* + * * * jQuery UI Resizable 1.8.7 + * * * + * * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * * Dual licensed under the MIT or GPL Version 2 licenses. + * * * http://jquery.org/license + * * * + * * * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { + position: relative; } + +.ui-resizable-handle { + position: absolute; + font-size: 0px; + z-index: 99999; + display: block; } + +.ui-resizable-autohide .ui-resizable-handle, +.ui-resizable-disabled .ui-resizable-handle { + display: none; } + +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; } + +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; } + +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; } + +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; } + +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; } + +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; } + +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; } + +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; } + +/* + * * * jQuery UI Selectable 1.8.7 + * * * + * * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * * Dual licensed under the MIT or GPL Version 2 licenses. + * * * http://jquery.org/license + * * * + * * * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; } + +/* + * * jQuery UI Accordion 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Accordion#theming + */ +/* + * IE/Win - Fix animation bug - #4615 + */ +.ui-accordion { + width: 100%; } + .ui-accordion .ui-accordion-header { + cursor: pointer; + position: relative; + margin-top: 1px; + zoom: 1; } + .ui-accordion .ui-accordion-li-fix { + display: inline; } + .ui-accordion .ui-accordion-header-active { + border-bottom: 0 !important; } + .ui-accordion .ui-accordion-header a { + display: block; + font-size: 1em; + padding: 0.5em 0.5em 0.5em 0.7em; } + +.ui-accordion-icons .ui-accordion-header a { + padding-left: 2.2em; } + + .ui-accordion .ui-accordion-header .ui-icon { + position: absolute; + left: 0.5em; + top: 50%; + margin-top: -8px; } + .ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + margin-top: -2px; + position: relative; + top: 1px; + margin-bottom: 2px; + overflow: auto; + display: none; + zoom: 1; } + .ui-accordion .ui-accordion-content-active { + display: block; } + +/* + * * * jQuery UI Autocomplete 1.8.7 + * * * + * * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * * Dual licensed under the MIT or GPL Version 2 licenses. + * * * http://jquery.org/license + * * * + * * * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { + position: absolute; + cursor: default; } + +/* + * workarounds + */ +* html .ui-autocomplete { + width: 1px; } + +/* + * without this, the menu expands to 100% in IE6 + */ +/* + * * jQuery UI Menu 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style: none; + padding: 2px; + margin: 0; + display: block; + float: left; } + .ui-menu .ui-menu { + margin-top: -3px; } + .ui-menu .ui-menu-item { + margin: 0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; } + .ui-menu .ui-menu-item a { + text-decoration: none; + display: block; + padding: 0.2em 0.4em; + line-height: 1.5; + zoom: 1; } + .ui-menu .ui-menu-item a.ui-state-active, + .ui-menu .ui-menu-item a.ui-state-hover { + font-weight: normal; + margin: -1px; } + +/* + * * jQuery UI Button 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { + display: inline-block; + position: relative; + padding: 0; + margin-right: 0.1em; + text-decoration: none !important; + cursor: pointer; + text-align: center; + zoom: 1; + overflow: visible; } + +/* + * the overflow property removes extra width in IE + */ +.ui-button-icon-only { + width: 2.2em; } + +/* + * to make room for the icon, a width needs to be set here + */ +button.ui-button-icon-only { + width: 2.4em; } + +/* + * button elements seem to need a little more width + */ +.ui-button-icons-only { + width: 3.4em; } + +button.ui-button-icons-only { + width: 3.7em; } + +/* + * button text element + */ +.ui-button .ui-button-text { + display: block; + line-height: 1.4; } + +.ui-button-text-only .ui-button-text { + padding: 0.4em 1em; } + +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: 0.4em; + text-indent: -9999999px; } + +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: 0.4em 1em 0.4em 2.1em; } + +.ui-button-text-icon-secondary .ui-button-text { + padding: 0.4em 2.1em 0.4em 1em; } + +.ui-button-text-icons .ui-button-text { + padding: 0.4em 2.1em 0.4em 1em; + padding-left: 2.1em; + padding-right: 2.1em; } + +/* + * no icon support for input elements, provide padding by default + */ +input.ui-button { + padding: 0.4em 1em; } + +/* + * button icon element(s) + */ +.ui-button-icon-only .ui-icon, +.ui-button-icons-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; } + +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; } + +.ui-button-icons-only .ui-button-icon-primary, +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary { + left: 0.5em; } + +.ui-button-icons-only .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary, +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary { + right: 0.5em; } + +/* + * button sets + */ +.ui-buttonset { + margin-right: 7px; } + .ui-buttonset .ui-button { + margin-left: 0; + margin-right: -0.3em; } + +/* + * workarounds + */ +/* + * reset extra padding in Firefox + */ +/* + * * jQuery UI Dialog 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { + position: absolute; + padding: 0.2em; + width: 300px; + overflow: hidden; } + .ui-dialog .ui-dialog-titlebar { + padding: 0.5em 1em 0.3em; + position: relative; } + .ui-dialog .ui-dialog-title { + float: left; + margin: 0.1em 16px 0.2em 0; } + .ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: 0.3em; + top: 50%; + width: 19px; + margin: -10px 0 0 0; + padding: 1px; + height: 18px; } + .ui-dialog .ui-dialog-titlebar-close span { + display: block; + margin: 1px; } + .ui-dialog .ui-dialog-titlebar-close:focus, + .ui-dialog .ui-dialog-titlebar-close:hover { + padding: 0; } + .ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: 0.5em 1em; + background: none; + overflow: auto; + zoom: 1; } + .ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin: 0.5em 0 0 0; + padding: 0.3em 1em 0.5em 0.4em; } + .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; } + .ui-dialog .ui-dialog-buttonpane button { + margin: 0.5em 0.4em 0.5em 0; + cursor: pointer; } + .ui-dialog .ui-resizable-se { + width: 14px; + height: 14px; + right: 3px; + bottom: 3px; } + +.ui-draggable .ui-dialog-titlebar { + cursor: move; } + +/* + * * jQuery UI Slider 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { + position: relative; + text-align: left; } + .ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; } + .ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: 0.7em; + display: block; + border: 0; + background-position: 0 0; } + +.ui-slider-horizontal { + height: 0.8em; } + .ui-slider-horizontal .ui-slider-handle { + top: -0.3em; + margin-left: -0.6em; } + .ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; } + .ui-slider-horizontal .ui-slider-range-min { + left: 0; } + .ui-slider-horizontal .ui-slider-range-max { + right: 0; } + +.ui-slider-vertical { + width: 0.8em; + height: 100px; } + .ui-slider-vertical .ui-slider-handle { + left: -0.3em; + margin-left: 0; + margin-bottom: -0.6em; } + .ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; } + .ui-slider-vertical .ui-slider-range-min { + bottom: 0; } + .ui-slider-vertical .ui-slider-range-max { + top: 0; } + +/* + * * * jQuery UI Tabs 1.8.7 + * * * + * * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * * Dual licensed under the MIT or GPL Version 2 licenses. + * * * http://jquery.org/license + * * * + * * * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { + position: relative; + padding: 0.2em; + zoom: 1; } + .ui-tabs .ui-tabs-nav { + margin: 0; + padding: 0.2em 0.2em 0; } + .ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 1px; + margin: 0 0.2em 1px 0; + border-bottom: 0 !important; + padding: 0; + white-space: nowrap; } + .ui-tabs .ui-tabs-nav li a { + float: left; + padding: 0.5em 1em; + text-decoration: none; } + .ui-tabs .ui-tabs-nav li.ui-tabs-selected { + margin-bottom: 0; + padding-bottom: 1px; } + .ui-tabs .ui-tabs-nav li.ui-tabs-selected a { + cursor: text; } + .ui-tabs .ui-tabs-nav li.ui-state-disabled a, + .ui-tabs .ui-tabs-nav li.ui-state-processing a { + cursor: text; } + .ui-tabs .ui-tabs-nav li a { + cursor: pointer; } + .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { + cursor: pointer; } + .ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; } + .ui-tabs .ui-tabs-hide { + display: none !important; } + +/* + * position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") + */ +/* + * first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... + */ +/* + * * jQuery UI Datepicker 1.8.7 + * * + * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * * Dual licensed under the MIT or GPL Version 2 licenses. + * * http://jquery.org/license + * * + * * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { + width: 17em; + padding: 0.2em 0.2em 0; + display: none; } + .ui-datepicker .ui-datepicker-header { + position: relative; + padding: 0.2em 0; } + .ui-datepicker .ui-datepicker-next, + .ui-datepicker .ui-datepicker-prev { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; } + .ui-datepicker .ui-datepicker-next-hover, + .ui-datepicker .ui-datepicker-prev-hover { + top: 1px; } + .ui-datepicker .ui-datepicker-prev { + left: 2px; } + .ui-datepicker .ui-datepicker-next { + right: 2px; } + .ui-datepicker .ui-datepicker-prev-hover { + left: 1px; } + .ui-datepicker .ui-datepicker-next-hover { + right: 1px; } + .ui-datepicker .ui-datepicker-next span, + .ui-datepicker .ui-datepicker-prev span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; } + .ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; } + .ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; } + .ui-datepicker select.ui-datepicker-month-year { + width: 100%; } + .ui-datepicker select.ui-datepicker-month, + .ui-datepicker select.ui-datepicker-year { + width: 49%; } + .ui-datepicker table { + width: 100%; + font-size: 0.9em; + border-collapse: collapse; + margin: 0 0 0.4em; } + .ui-datepicker th { + padding: 0.7em 0.3em; + text-align: center; + font-weight: bold; + border: 0; } + .ui-datepicker td { + border: 0; + padding: 1px; } + .ui-datepicker td a, + .ui-datepicker td span { + display: block; + padding: 0.2em; + text-align: right; + text-decoration: none; } + .ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: 0.7em 0 0 0; + padding: 0 0.2em; + border-left: 0; + border-right: 0; + border-bottom: 0; } + .ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: 0.5em 0.2em 0.4em; + cursor: pointer; + padding: 0.2em 0.6em 0.3em 0.6em; + width: auto; + overflow: visible; } + .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; } + .ui-datepicker.ui-datepicker-multi { + width: auto; } + +/* + * with multiple calendars + */ +.ui-datepicker-multi .ui-datepicker-group { + float: left; } + .ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto 0.4em; } + +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; } + +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; } + +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; } + + .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, + .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; } + .ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; } + +.ui-datepicker-row-break { + clear: both; + width: 100%; } + +/* + * RTL support + */ +.ui-datepicker-rtl { + direction: rtl; } + .ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; } + .ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; } + .ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; } + .ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; } + .ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; } + .ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; } + .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { + float: right; } + .ui-datepicker-rtl .ui-datepicker-group { + float: right; } + .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, + .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; } + +/* + * IE6 IFRAME FIX (taken from datepicker 1.5.3 + */ +.ui-datepicker-cover { + display: none; + /* + * sorry for IE5 + */ + display/**/: block; + /* + * sorry for IE5 + */ + position: absolute; + /* + * must have + */ + z-index: -1; + /* + * must have + */ + filter: mask(); + /* + * must have + */ + top: -4px; + /* + * must have + */ + left: -4px; + /* + * must have + */ + width: 200px; + /* + * must have + */ + height: 200px; + /* + * must have + */ } + +/* + * ** jQuery UI Progressbar 1.8.7 + * ** + * ** Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * ** Dual licensed under the MIT or GPL Version 2 licenses. + * ** http://jquery.org/license + * ** + * ** http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { + height: 2em; + text-align: left; } + .ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; } + +body { + background: #aaaaaa; } + diff --git a/webroot/ccss/backend.sass b/webroot/ccss/backend.sass new file mode 100644 index 00000000..ce7e85dd --- /dev/null +++ b/webroot/ccss/backend.sass @@ -0,0 +1,25 @@ +$backgroundColor: #aaa +$headerBackgroundColor: #080 +$sidebarBackgroundColor: #fff +$contentBackgroundColor: #fff +$footerBackgroundColor: #888 + +$linkColor: #44f + +$menuColor: #000 +$menuBackgroundColor: darken(#fff, 5%) +$menuActiveColor: #fff +$menuActiveBackgroundColor: #579 +$menuHoverColor: #303 +$menuHoverBackgroundColor: #79b + + +@import backend/text +@import backend/layout +@import backend/menu +@import backend/form +@import backend/table +@import jquery_ui + +body + background: $backgroundColor diff --git a/webroot/ccss/backend/_form.sass b/webroot/ccss/backend/_form.sass new file mode 100644 index 00000000..73816f32 --- /dev/null +++ b/webroot/ccss/backend/_form.sass @@ -0,0 +1,106 @@ +@import grid +@import gradient +@import border-radius + +=default-input + +border-radius(3px) + border: #aaa 1px solid + padding: 5px + background-color: #efefef + &:hover + border: #999 1px solid + background-color: #ffd + &:focus + border: #a00 1px solid + background-color: #ffd + +=default-button + border: 1px solid #aaa + +border-radius(2px) + padding: 5px 15px + color: #666 + background-color: #efefef + &:hover + cursor:pointer + background-color: $menuActiveBackgroundColor + color: white + border-color: darken($menuActiveBackgroundColor, 20%) + +form + overflow: hidden + width: 710px + margin: 15px 0 + fieldset + padding: 15px 0 + border: 0 + legend + font-family: Ubuntu-bold + width: 81.5% + border-bottom: 1px solid darken(white, 10%) + div.input + padding: 5px 0 + position: relative + display: block + width: 100% + > label + display: inline + float: left + width: 30% + input[type=text], + input[type=email], + input[type=password], + textarea + width: 50% + +default-input + select + width: 51.5% + +default-input + &.select + div.checkbox + margin-left: 30% + input[type=checkbox] + margin-right: 5px + &.checkbox + input[type=checkbox] + margin-left: 30% + margin-right: 5px + label + float: none + display: inline-block + width: 50% + .radioSet + margin: 3px 0 + input[type=radio] + display: none + label + padding: 5px 10px + border: 1px solid #aaa + color: #666 + background-color: #efefef + &:hover + cursor:pointer + input[type=radio]:checked + label + color: white + background-color: $menuActiveBackgroundColor + border-color: darken($menuActiveBackgroundColor, 20%) + .error-message, .description + padding-left: 30% + &.error + background-color: #faa + ul.buttons + margin-left: 30% + > li + display: inline-block + margin-right: 10px + > input + +default-button + div.submit + padding-left: 30% + input + +default-button + div.submit-list + input + margin-right: 5px + +default-button +a.button + +default-button diff --git a/webroot/ccss/backend/_layout.sass b/webroot/ccss/backend/_layout.sass new file mode 100644 index 00000000..bdf2374b --- /dev/null +++ b/webroot/ccss/backend/_layout.sass @@ -0,0 +1,78 @@ +@import border-radius +@import grid +@import "compass/css3/gradient" +@import text-shadow +@import box-shadow + +* + margin: 0 + padding: 0 + +#page + @include container + +#header + +column(24, true) + background-color: $headerBackgroundColor + +linear-gradient(color-stops($headerBackgroundColor, darken($headerBackgroundColor, 20%))) + border: 1px solid $headerBackgroundColor + > .sub + padding: 15px + h1 + display: inline-block; + a + font-size: 200% + font-weight: bold + +text-shadow(black, 0, 2px, 0) + color: white + &:hover + color: white + background-color: inherit + &:visited + color: white + background-color: inherit + span + display: inline-block; + color: white; + +#main + +column(24, true) + background-color: $contentBackgroundColor + #sidebar + +column(6) + background-color: $sidebarBackgroundColor + + #content + +column(18, true) + @include border-top-right-radius(10px) + background-color: $contentBackgroundColor + > h1 + display: block + width: 100% + font-size: 120% + padding: 10px 0 + background-color: darken($contentBackgroundColor, 10%) + +#footer + +column(24, true) + background-color: $footerBackgroundColor + p + padding: 5px + +.box + position: relative + > h1 + font-size: 120% + padding: 5px + background-color: #eee + color: #444 + +text-shadow(white, 1px, 0px, 0) + +.info, +.message + display: block + margin: 5px 0 + padding: 10px + background-color: #ffffb0 + border: 1px solid #ffdc1c + +border-radius(2px) diff --git a/webroot/ccss/backend/_menu.sass b/webroot/ccss/backend/_menu.sass new file mode 100644 index 00000000..68216bf3 --- /dev/null +++ b/webroot/ccss/backend/_menu.sass @@ -0,0 +1,41 @@ +@import grid + +#sidebar > .box + margin: 5px 0 + overflow: hidden + > ul + display: block + ul + display: block + list-style-type: none + li > a + display: block + padding: 5px + color: $menuColor + &:hover + color: $menuHoverColor + background-color: $menuHoverBackgroundColor + li > .active + display: block + color: $menuActiveColor + background-color: $menuActiveBackgroundColor + > ul > li > ul + margin-bottom: 5px + > li + > .active + width: 205px + padding-left: 20px + background-color: lighten($menuActiveBackgroundColor, 10%) + > a + padding-left: 20px + width: 205px + > ul > li + > .active + width: 185px + padding-left: 40px + background-color: lighten($menuActiveBackgroundColor, 20%) + > a + width: 185px + padding-left: 40px + + diff --git a/webroot/ccss/backend/_table.sass b/webroot/ccss/backend/_table.sass new file mode 100644 index 00000000..eb47aad7 --- /dev/null +++ b/webroot/ccss/backend/_table.sass @@ -0,0 +1,27 @@ +@import text-shadow + +table.default + padding: 5px 0 + width: 100% + border-collapse: separate + border-spacing: 0 + border: 0 + thead tr th + padding: 3px + background: #ccc + +text-shadow(white, 1px, 0) + font-weight: none + text-align: left + tbody tr + &.odd td + background: #eee + &.even td + background: #fff + &.selected td + background: lighten($menuHoverBackgroundColor, 10%) + &:hover td + background: $menuHoverBackgroundColor + td + padding: 3px + border-bottom: 1px solid #eee + diff --git a/webroot/ccss/backend/_text.sass b/webroot/ccss/backend/_text.sass new file mode 100644 index 00000000..9e94ffab --- /dev/null +++ b/webroot/ccss/backend/_text.sass @@ -0,0 +1,39 @@ +@import font-face ++font-face(Ubuntu, font-files("ubuntu/ubuntu-r-webfont.woff", "woff", "ubuntu/ubuntu-r-webfont.ttf", "truetype"), "ubuntu/ubuntu-r-webfont.eot") ++font-face(Ubuntu-bold, font-files("ubuntu/ubuntu-b-webfont.woff", "woff", "ubuntu/ubuntu-b-webfont.ttf", "truetype"), "ubuntu/ubuntu-b-webfont.eot") ++font-face(Cousine, font-files("cousine/cousine-regular-latin-webfont.woff", "woff", "cousine/cousine-regular-latin-webfont.ttf", "truetype"), "cousine/cousine-regular-latin-webfont.eot") + +* + font-size: 10pt + font-weight: normal + text-decoration: none + font-family: Ubuntu, Verdana, sans +a + color: $linkColor + + &:hover + color: darken($linkColor, 30%) + &:visited + color: darken($linkColor, 10%) + +img + border: none + +ul, ol + list-style-type: none + +p + padding: 5px 0 +code + font-family: Cousine + font-size: 10pt + background-color: darken(white, 10%) + color: lighten(black, 20%) + +#content + h2, + h3 + font-family: Ubuntu-bold + padding: 10px 0 + ul li + padding: 5px 0 diff --git a/webroot/ccss/breadcrumb.css b/webroot/ccss/breadcrumb.css new file mode 100644 index 00000000..8e72d510 --- /dev/null +++ b/webroot/ccss/breadcrumb.css @@ -0,0 +1,63 @@ +ul.p-breadcrumb { + width: 100%; + margin: 0px; + padding: 4px; + background-color: #019801; +} +ul.p-breadcrumb li, +ul.p-breadcrumb li ul.p-breadcrumb-list, +ul.p-breadcrumb li ul.p-breadcrumb-list li, +ul.p-breadcrumb li form input, +ul.p-breadcrumb li form { + margin: 0; + padding: 0; + display: inline-block; + list-style-type: none; + vertical-align:middle; +} +ul.p-breadcrumb > li, +ul.p-breadcrumb > li > ul.p-breadcrumb-list > li { + padding: 0 2px; + height: 20px; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li { + background-color: #eee; +} +ul.p-breadcrumb li.p-breadcrumb-header { + font-weight: bold; + background-color: #182E7A; + color: white; + padding: 0 7px; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li:hover { + background-color:#f63; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li:hover a { + color: #fff; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li a.p-breadcrumb-exclude { + color: red; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li a.p-breadcrumb-remove span { + display: none; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li a.p-breadcrumb-remove { + background-image: url('../img/button-close.png'); + background-repeat:no-repeat; + background-position: center; + vertical-align:middle; + width: 15px; + padding: 0 10px; +} +ul.p-breadcrumb li ul.p-breadcrumb-list li a.p-breadcrumb-remove:hover { + background-image: url('../img/button-close-hover.png'); +} +ul.p-breadcrumb li form input[type=text] { + height: 18px; + width: 120px; +} +ul.p-breadcrumb li form input[type=submit] { + height: 20px; + padding: 0 7px; +} + diff --git a/webroot/ccss/cake.generic.css b/webroot/ccss/cake.generic.css new file mode 100644 index 00000000..a5dee037 --- /dev/null +++ b/webroot/ccss/cake.generic.css @@ -0,0 +1,478 @@ +/* SVN FILE: $Id$ */ +/** + * + * PHP versions 4 and 5 + * + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @package cake + * @subpackage cake.app.webroot.css + * @since CakePHP(tm) + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ + +* { + margin:0; + padding:0; +} + +/* General Style Info */ +body { + background: #003d4c; + color: #fff; + font-family:'lucida grande',verdana,helvetica,arial,sans-serif; + font-size:90%; + margin: 0; +} +a { + background:#fff; + color: #003d4c; + text-decoration: underline; + font-weight: bold; +} +a:hover { + background:#fff; + color: #003d4c; + text-decoration:none; +} +a img { + border:none; +} +h1, h2, h3, h4 { + font-weight: normal; +} +h1 { + background:#fff; + color: #003d4c; + font-size: 100%; + margin: 0.1em 0; +} +h2 { + background:#fff; + color: #e32; + font-family:'Gill Sans','lucida grande',helvetica, arial, sans-serif; + font-size: 190%; + margin: 0.3em 0; + padding-top: 0.8em; +} +h3 { + color: #993; + font-family:'Gill Sans','lucida grande',helvetica, arial, sans-serif; + font-size: 165%; + padding-top: 1.5em; +} +h4 { + color: #993; + font-weight: normal; + padding-top: 0.5em; +} +ul, li { + margin: 0 12px; +} + +/* Layout */ +#container { + text-align: left; +} + +#header{ + padding: 10px 20px; +} +#header h1 { + background: #003d4c url('../img/cake.icon.gif') no-repeat left; + color: #fff; + padding: 0px 30px; +} +#header h1 a { + color: #fff; + background: #003d4c; + font-weight: normal; + text-decoration: none; +} +#header h1 a:hover { + color: #fff; + background: #003d4c; + text-decoration: underline; +} +#content{ + background: #fff; + clear: both; + color: #333; + padding: 10px 20px 40px 20px; + overflow: auto; +} +#footer { + clear: both; + padding: 6px 10px; + text-align: right; +} + +/* Tables */ +table { + background: #fff; + border:1px solid #ccc; + border-right:0; + clear: both; + color: #333; + margin-bottom: 10px; + width: 100%; +} +th { + background: #f2f2f2; + border:1px solid #bbb; + border-top: 1px solid #fff; + border-left: 1px solid #fff; + text-align: center; +} +th a { + background:#f2f2f2; + display: block; + padding: 2px 4px; + text-decoration: none; +} +th a:hover { + background: #ccc; + color: #333; + text-decoration: none; +} +table tr td { + background: #fff; + border-right: 1px solid #ccc; + padding: 4px; + text-align: center; + vertical-align: top; +} +table tr.altrow td { + background: #f4f4f4; +} +td.actions { + text-align: center; + white-space: nowrap; +} +td.actions a { + margin: 0px 6px; +} +.cake-sql-log table { + background: #f4f4f4; +} +.cake-sql-log td { + padding: 4px 8px; + text-align: left; +} + +/* Paging */ +div.paging { + background:#fff; + color: #ccc; + margin-bottom: 2em; +} +div.paging div.disabled { + color: #ddd; + display: inline; +} +div.paging span { +} +div.paging span.current { + color: #000; +} +div.paging span a { +} + +/* Scaffold View */ +dl { + line-height: 2em; + margin: 0em 0em; + width: 60%; +} +dl .altrow { + background: #f4f4f4; +} +dt { + font-weight: bold; + padding-left: 4px; + vertical-align: top; +} +dd { + margin-left: 10em; + margin-top: -2em; + vertical-align: top; +} + +/* Forms */ +form { + clear: both; + margin-right: 20px; + padding: 0; + width: 80%; +} +fieldset { + border: 1px solid #ccc; + margin-top: 30px; + padding: 16px 20px; +} +fieldset legend { + background:#fff; + color: #e32; + font-size: 160%; + font-weight: bold; +} +fieldset fieldset { + margin-top: 0px; + margin-bottom: 20px; + padding: 16px 10px; +} +fieldset fieldset legend { + font-size: 120%; + font-weight: normal; +} +fieldset fieldset div { + clear: left; + margin: 0 20px; +} +form div { + clear: both; + margin-bottom: 1em; + padding: .5em; + vertical-align: text-top; +} +form div.input { + color: #444; +} +form div.required { + color: #333; + font-weight: bold; +} +form div.submit { + border: 0; + clear: both; + margin-top: 10px; + margin-left: 140px; +} +label { + display: block; + font-size: 110%; + padding-right: 20px; +} +input, textarea { + clear: both; + font-size: 140%; + font-family: "frutiger linotype", "lucida grande", "verdana", sans-serif; + padding: 2px; + width: 100%; +} +select { + clear: both; + font-size: 120%; + vertical-align: text-bottom; +} +select[multiple=multiple] { + width: 100%; +} +option { + font-size: 120%; + padding: 0 3px; +} +input[type=checkbox] { + clear: left; + float: left; + margin: 0px 6px 7px 2px; + width: auto; +} +input[type=radio] { + float:left; + width:auto; + margin: 0 3px 7px 0; +} +div.radio label { + margin: 0 0 6px 20px; +} +input[type=submit] { + display: inline; + font-size: 110%; + padding: 2px 5px; + width: auto; + vertical-align: bottom; +} + +/* Notices and Errors */ +div.message { + clear: both; + color: #900; + font-size: 140%; + font-weight: bold; + margin: 1em 0; +} +div.error-message { + clear: both; + color: #900; + font-weight: bold; +} +p.error { + background-color: #e32; + color: #fff; + font-family: Courier, monospace; + font-size: 120%; + line-height: 140%; + padding: 0.8em; + margin: 1em 0; +} +p.error em { + color: #000; + font-weight: normal; + line-height: 140%; +} +.notice { + background: #ffcc00; + color: #000; + display: block; + font-family: Courier, monospace; + font-size: 120%; + line-height: 140%; + padding: 0.8em; + margin: 1em 0; +} +.success { + background: green; + color: #fff; +} + +/* Actions */ +div.actions ul { + margin: 0px 0; + padding: 0; +} +div.actions li { + display: inline; + list-style-type: none; + line-height: 2em; + margin: 0 2em 0 0; + white-space: nowrap; +} +div.actions ul li a { + background:#fff; + color: #003d4c; + text-decoration: none; +} +div.actions ul li a:hover { + color: #333; + text-decoration: underline; +} + +/* Related */ +div.related { + clear: both; + display: block; +} + +/* Debugging */ +pre { + color: #000; + background: #f0f0f0; + padding: 1em; +} +pre.cake-debug { + background: #ffcc00; + font-size: 120%; + line-height: 140%; + margin-top: 1em; + overflow: auto; + position: relative; +} +div.cake-stack-trace { + background: #fff; + border: 4px dotted #ffcc00; + color: #333; + margin: 0px; + padding: 6px; + font-size: 120%; + line-height: 140%; + overflow: auto; + position: relative; +} +div.cake-code-dump pre { + position: relative; + overflow: auto; +} +div.cake-stack-trace pre, div.cake-code-dump pre { + color: #000; + background-color: #F0F0F0; + margin: 0px; + padding: 1em; + overflow: auto; +} +div.cake-code-dump pre, div.cake-code-dump pre code { + clear: both; + font-size: 12px; + line-height: 15px; + margin: 4px 2px; + padding: 4px; + overflow: auto; +} +div.cake-code-dump span.code-highlight { + background-color: #ff0; + padding: 4px; +} +div.code-coverage-results div.code-line { + padding-left:5px; + display:block; + margin-left:10px; +} +div.code-coverage-results div.uncovered span.content { + background:#ecc; +} +div.code-coverage-results div.covered span.content { + background:#cec; +} +div.code-coverage-results div.ignored span.content { + color:#aaa; +} +div.code-coverage-results span.line-num { + color:#666; + display:block; + float:left; + width:20px; + text-align:right; + margin-right:5px; +} +div.code-coverage-results span.line-num strong { + color:#666; +} +div.code-coverage-results div.start { + border:1px solid #aaa; + border-width:1px 1px 0px 1px; + margin-top:30px; + padding-top:5px; +} +div.code-coverage-results div.end { + border:1px solid #aaa; + border-width:0px 1px 1px 1px; + margin-bottom:30px; + padding-bottom:5px; +} +div.code-coverage-results div.realstart { + margin-top:0px; +} +div.code-coverage-results p.note { + color:#bbb; + padding:5px; + margin:5px 0 10px; + font-size:10px; +} +div.code-coverage-results span.result-bad { + color: #a00; +} +div.code-coverage-results span.result-ok { + color: #fa0; +} +div.code-coverage-results span.result-good { + color: #0a0; +} \ No newline at end of file diff --git a/webroot/ccss/comment.css b/webroot/ccss/comment.css new file mode 100644 index 00000000..bfb1d5c1 --- /dev/null +++ b/webroot/ccss/comment.css @@ -0,0 +1,44 @@ +.comments { + margin: 2em 0; +} +.comment .meta { + border: none; + background: none; +} + +.comment { + clear: left; + margin: 1em auto; + overflow: hidden; +} + +.comments .even { + background-color: #eee; +} + +.comment .meta { + padding: .5em; + font-size: 105%; +} + +.comment .meta .from { + font-weight: bold; +} + +.comment .meta .date { + font-style: italic; +} + +.comment .text { + padding: .5em 2em; +} + +.comment .image { + float: left; + margin: 0 .5em .5em 0; +} + +.comments form textarea { + width: 66%; + font-size: 120%; +} diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_123e78_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_123e78_40x100.png new file mode 100644 index 00000000..90cc9030 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_123e78_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_1a8301_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_1a8301_40x100.png new file mode 100644 index 00000000..2380a91a Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_1a8301_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_222222_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_222222_40x100.png new file mode 100644 index 00000000..dfd103c7 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_222222_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_333333_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_333333_40x100.png new file mode 100644 index 00000000..2f2c7a45 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_333333_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_aaaaaa_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 00000000..5b5dab2a Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_ad0900_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_ad0900_40x100.png new file mode 100644 index 00000000..f6dced8d Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_0_ad0900_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_40_2259a5_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_40_2259a5_40x100.png new file mode 100644 index 00000000..d2f118ec Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_40_2259a5_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_flat_75_000000_40x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_flat_75_000000_40x100.png new file mode 100644 index 00000000..abdc0108 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_flat_75_000000_40x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-bg_highlight-hard_50_aaaaaa_1x100.png b/webroot/ccss/custom-phtagr/images/ui-bg_highlight-hard_50_aaaaaa_1x100.png new file mode 100644 index 00000000..8700be71 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-bg_highlight-hard_50_aaaaaa_1x100.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-icons_aaaaaa_256x240.png b/webroot/ccss/custom-phtagr/images/ui-icons_aaaaaa_256x240.png new file mode 100644 index 00000000..64af7f11 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-icons_aaaaaa_256x240.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-icons_cccccc_256x240.png b/webroot/ccss/custom-phtagr/images/ui-icons_cccccc_256x240.png new file mode 100644 index 00000000..9254e05c Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-icons_cccccc_256x240.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-icons_dddddd_256x240.png b/webroot/ccss/custom-phtagr/images/ui-icons_dddddd_256x240.png new file mode 100644 index 00000000..91aada0a Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-icons_dddddd_256x240.png differ diff --git a/webroot/ccss/custom-phtagr/images/ui-icons_ffffff_256x240.png b/webroot/ccss/custom-phtagr/images/ui-icons_ffffff_256x240.png new file mode 100644 index 00000000..42f8f992 Binary files /dev/null and b/webroot/ccss/custom-phtagr/images/ui-icons_ffffff_256x240.png differ diff --git a/webroot/ccss/custom-phtagr/jquery-ui-1.8.14.custom.css b/webroot/ccss/custom-phtagr/jquery-ui-1.8.14.custom.css new file mode 100644 index 00000000..8fcd9783 --- /dev/null +++ b/webroot/ccss/custom-phtagr/jquery-ui-1.8.14.custom.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Droid,Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=333333&bgTextureHeader=01_flat.png&bgImgOpacityHeader=0&borderColorHeader=222222&fcHeader=cccccc&iconColorHeader=cccccc&bgColorContent=000000&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=2b2b2b&fcContent=aaaaaa&iconColorContent=aaaaaa&bgColorDefault=222222&bgTextureDefault=01_flat.png&bgImgOpacityDefault=0&borderColorDefault=222222&fcDefault=dddddd&iconColorDefault=dddddd&bgColorHover=2259a5&bgTextureHover=01_flat.png&bgImgOpacityHover=40&borderColorHover=123e78&fcHover=ffffff&iconColorHover=dddddd&bgColorActive=123e78&bgTextureActive=01_flat.png&bgImgOpacityActive=0&borderColorActive=103565&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=1a8301&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=0&borderColorHighlight=082900&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=ad0900&bgTextureError=01_flat.png&bgImgOpacityError=0&borderColorError=5c0500&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=aaaaaa&bgTextureOverlay=04_highlight_hard.png&bgImgOpacityOverlay=50&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Droid,Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Droid,Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #2b2b2b; background: #000000 url(images/ui-bg_flat_75_000000_40x100.png) 50% 50% repeat-x; color: #aaaaaa; } +.ui-widget-content a { color: #aaaaaa; } +.ui-widget-header { border: 1px solid #222222; background: #333333 url(images/ui-bg_flat_0_333333_40x100.png) 50% 50% repeat-x; color: #cccccc; font-weight: bold; } +.ui-widget-header a { color: #cccccc; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #222222; background: #222222 url(images/ui-bg_flat_0_222222_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #dddddd; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #dddddd; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #123e78; background: #2259a5 url(images/ui-bg_flat_40_2259a5_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } +.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #103565; background: #123e78 url(images/ui-bg_flat_0_123e78_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #082900; background: #1a8301 url(images/ui-bg_flat_0_1a8301_40x100.png) 50% 50% repeat-x; color: #ffffff; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #5c0500; background: #ad0900 url(images/ui-bg_flat_0_ad0900_40x100.png) 50% 50% repeat-x; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_aaaaaa_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_aaaaaa_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_dddddd_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_dddddd_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; -khtml-border-top-left-radius: 2px; border-top-left-radius: 2px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; -khtml-border-top-right-radius: 2px; border-top-right-radius: 2px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; -khtml-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; -khtml-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_highlight-hard_50_aaaaaa_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.14 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar 1.8.14 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/webroot/ccss/debug.css b/webroot/ccss/debug.css new file mode 100644 index 00000000..8800d873 --- /dev/null +++ b/webroot/ccss/debug.css @@ -0,0 +1,43 @@ +/* Debugging */ +pre { + color: #000; + background: #aaa; + padding: 1em; +} +pre.cake-debug { + font-family: Courier, monospace; + background-color: #ccc; + border: 1px solid #888; + overflow: auto; + position: relative; +} +div.cake-stack-trace { + background: #fff; + border: 4px dotted #ffcc00; + color: #333; + margin: 0px; + padding: 6px; + overflow: auto; + position: relative; +} +div.cake-code-dump pre { + position: relative; + overflow: auto; +} +div.cake-stack-trace pre, div.cake-code-dump pre { + color: #000000; + background-color: #F0F0F0; + margin: 0px; + padding: 1em; + overflow: auto; +} +div.cake-code-dump pre, div.cake-code-dump pre code { + clear: both; + margin: 4px 2px; + padding: 4px; + overflow: auto; +} +div.cake-code-dump span.code-highlight { + background-color: #FFFF00; + padding: 4px; +} diff --git a/webroot/ccss/default.css b/webroot/ccss/default.css new file mode 100644 index 00000000..de247c76 --- /dev/null +++ b/webroot/ccss/default.css @@ -0,0 +1,1253 @@ + @font-face { + font-family: "Ubuntu"; + src: url('../fonts/ubuntu/ubuntu-r-webfont.eot'); + src: local("☺"), url('../fonts/ubuntu/ubuntu-r-webfont.woff') format('woff'), url('../fonts/ubuntu/ubuntu-r-webfont.ttf') format('truetype'); } + + @font-face { + font-family: "Ubuntu-bold"; + src: url('../fonts/ubuntu/ubuntu-b-webfont.eot'); + src: local("☺"), url('../fonts/ubuntu/ubuntu-b-webfont.woff') format('woff'), url('../fonts/ubuntu/ubuntu-b-webfont.ttf') format('truetype'); } + + @font-face { + font-family: "Cousine"; + src: url('../fonts/cousine/cousine-regular-latin-webfont.eot'); + src: local("☺"), url('../fonts/cousine/cousine-regular-latin-webfont.woff') format('woff'), url('../fonts/cousine/cousine-regular-latin-webfont.ttf') format('truetype'); } + +* { + color: #bbbbbb; + font-size: 10pt; + font-weight: normal; + text-decoration: none; + font-family: Ubuntu, Verdana, sans; } + +a { + color: #2259a5; } + a:hover { + color: #528ddb; } + a:visited { + color: #1e4f90; } + +img { + border: none; } + +ol, +ul { + list-style-type: none; } + + #content > .sub h1, + #content > .sub h2, + #content > .sub h3 { + font-family: Ubuntu-bold; + padding: 10px 0; } + #content > .sub h1 { + font-size: 15pt; } + #content > .sub > p, + #content > .sub > p > a, + #content > .sub > ul > li { + font-size: 12pt; } + #content > .sub > ul { + padding: 10px 0; + list-style-type: circle; } + #content > .sub > ul > li { + padding: 5px 0 5px 20px; } + #content > .sub > p { + padding: 5px 0; } + #content > .sub > code { + font-family: Cousine; + font-size: 10pt; + background-color: #e6e6e6; + color: #333333; } + #content > .sub > .error, + #content > .sub > .notice, + #content > .sub > .warning { + margin: 5px 0; + padding: 10px; + color: black; } + #content > .sub > .error > *, + #content > .sub > .notice > *, + #content > .sub > .warning > * { + color: black; } + #content > .sub > .error { + border: 1px solid red; + background-color: #ff9999; } + #content > .sub > .notice, + #content > .sub > .warning { + border: 1px solid yellow; + background-color: #ffff99; } + +pre { + padding: 10px; + background-color: #aaaaaa; + color: #333333; + font-family: Cousine, monospace; } + pre * { + font-family: Cousine, monospace; + color: #333333; } + pre strong { + color: black; } + +* { + margin: 0; + padding: 0; } + +#page { + display: block; + width: 100%; } + +#header { + background-color: #666666; + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #666666), color-stop(100%, #333333)); + background-image: -moz-linear-gradient(top, #666666 0%, #333333 100%); + background-image: linear-gradient(top, #666666 0%, #333333 100%); + border-bottom: 2px solid #333333; + width: 100%; } + #header > .sub { + width: 950px; + display: block; + margin: 0 auto; } + #header > .sub > h1 { + padding: 5px 0; + display: inline-block; } + #header > .sub > h1 a { + color: white; + font-size: 250%; + text-shadow: #444444 2px 0px 0; } + #header > .sub > .subtitle { + color: white; + display: inline-block; } + #header > .sub > #top-menu { + float: right; + margin: 10px 0; } + #header > .sub > #top-menu > li { + float: left; + padding: 5px 2px; } + #header > .sub > #top-menu > li > a { + padding: 5px 7px; + color: gray; + text-shadow: black 1px 0px 0; } + #header > .sub > #top-menu > li > a:hover { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + background-color: #262626; + border-color: #0d0d0d; + color: white; } + +#main-menu { + background-color: #1a1a1a; } + #main-menu > .sub { + width: 950px; + display: block; + margin: 0 auto; } + #main-menu > .sub > ul li { + display: block; + float: left; } + #main-menu > .sub > ul li > a { + color: #999999; + background-color: #333333; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + display: block; + margin: 5px; + margin-left: 0; + padding: 5px 15px; } + #main-menu > .sub > ul li > a:active, + #main-menu > .sub > ul li > a:visited { + color: #999999; + text-shadow: black 1px 0px 0; } + #main-menu > .sub > ul li > a:hover { + background-color: #666666; + color: white; } + #main-menu > .sub #quicksearch { + display: block;; + float: right;; } + #main-menu > .sub #quicksearch .inputWrap, + #main-menu > .sub #quicksearch .submitWrap { + display: block; + float: left; + overflow: hidden; + height: 24px; + margin: 5px 0; + background-color: #333333; } + #main-menu > .sub #quicksearch .inputWrap input, + #main-menu > .sub #quicksearch .submitWrap input { + border: none; + background-color: #333333; + padding: 5px; } + #main-menu > .sub #quicksearch .inputWrap { + -moz-border-radius-topleft: 5px; + -webkit-border-top-left-radius: 5px; + -o-border-top-left-radius: 5px; + -ms-border-top-left-radius: 5px; + -khtml-border-top-left-radius: 5px; + border-top-left-radius: 5px; + -moz-border-radius-bottomleft: 5px; + -webkit-border-bottom-left-radius: 5px; + -o-border-bottom-left-radius: 5px; + -ms-border-bottom-left-radius: 5px; + -khtml-border-bottom-left-radius: 5px; + border-bottom-left-radius: 5px; } + #main-menu > .sub #quicksearch .inputWrap input { + border: none; + background-color: #333333; } + #main-menu > .sub #quicksearch .submitWrap { + -moz-border-radius-topright: 5px; + -webkit-border-top-right-radius: 5px; + -o-border-top-right-radius: 5px; + -ms-border-top-right-radius: 5px; + -khtml-border-top-right-radius: 5px; + border-top-right-radius: 5px; + -moz-border-radius-bottomright: 5px; + -webkit-border-bottom-right-radius: 5px; + -o-border-bottom-right-radius: 5px; + -ms-border-bottom-right-radius: 5px; + -khtml-border-bottom-right-radius: 5px; + border-bottom-right-radius: 5px; } + #main-menu > .sub #quicksearch .submitWrap:hover { + background-color: #666666; + color: white; + cursor: pointer; } + #main-menu > .sub #quicksearch .submitWrap:hover input { + background-color: #666666; + cursor: pointer; } + #main-menu > .sub #quicksearch .clear { + clear: both; } + #main-menu .clear { + clear: both; } + +#main { + width: 950px; + margin: 0 auto; + overflow: hidden; + *zoom: 1; } + #main > .sub { + display: inline; + float: left; + margin-right: 0; + width: 950px; } + * html #main > .sub { + overflow-x: hidden; } + #main > .sub #content > .sub { + display: inline; + float: left; + margin-right: 0; + width: 950px; + margin-bottom: 10px; } + * html #main > .sub #content > .sub { + overflow-x: hidden; } + +#footer { + width: 950px; + margin: 0 auto; + overflow: hidden; + *zoom: 1; } + #footer > .sub { + display: inline; + float: left; + margin-right: 0; + width: 950px; + background-color: #111111; } + * html #footer > .sub { + overflow-x: hidden; } + #footer > .sub > p { + padding: 5px; } + +.box { + position: relative; + padding: 5px; } + .box > h1 { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + background-color: #eeeeee; + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #eeeeee), color-stop(100%, #d5d5d5)); + background-image: -moz-linear-gradient(top, #eeeeee 0%, #d5d5d5 100%); + background-image: linear-gradient(top, #eeeeee 0%, #d5d5d5 100%); + color: #666666; + text-shadow: white 1px 0px 0; + border: 1px solid #bbbbbb; + padding: 3px 12px; } + +.info, +.message { + color: white; + display: block; + margin: 5px 0; + padding: 10px; + background-color: #009100; + border: 1px solid #006500; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + + * #random-media { + display: inline; + float: left; + margin-right: 10px; + width: 470px; } + * html * #random-media { + overflow-x: hidden; } + * #newest-media { + display: inline; + float: left; + margin-right: 0; + width: 470px; } + * html * #newest-media { + overflow-x: hidden; } + * #recent-comments { + clear: both; } + * #recent-comments { + display: inline; + float: left; + margin-right: 10px; + width: 470px; } + * html * #recent-comments { + overflow-x: hidden; } + * #tag-cloud { + display: inline; + float: left; + margin-right: 10px; + width: 230px; } + * html * #tag-cloud { + overflow-x: hidden; } + * #category-cloud { + display: inline; + float: left; + margin-right: 0; + width: 230px; } + * html * #category-cloud { + overflow-x: hidden; } + * .cloud { + font-size: 14pt; + line-height: 16.8pt; } + * .cloud .l, + * .cloud .s, + * .cloud .xl, + * .cloud .xs, + * .cloud .xxl, + * .cloud .xxs { + line-height: 16.8pt; } + * .cloud .xxs { + font-size: 7pt; } + * .cloud .xs { + font-size: 9.3333pt; } + * .cloud .s { + font-size: 10.5pt; } + * .cloud .l { + font-size: 18.6667pt; } + * .cloud .xl { + font-size: 21pt; } + * .cloud .xxl { + font-size: 28pt; } + * .cloud .l, + * .cloud .m, + * .cloud .s, + * .cloud .xl, + * .cloud .xs, + * .cloud .xxl, + * .cloud .xxs { + padding: 2px 5px; + padding-left: 0; } + * .cloud a { + display: inline-block; } + * .cloud a:hover { + color: white; + background-color: #2259a5; } + +* #random-media .clip { + position: relative; + display: block; + overflow: hidden; + width: 100%; + height: 309px; } + * #random-media .clip cite { + position: absolute; + bottom: 0; + right: 0; + background-color: black; + opacity: 0.6; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); + padding: 5px; } + * #random-media .clip cite:hover { + opacity: 0.9; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90); } + + * #recent-comments .comments .comment { + clear: both; } + * #recent-comments .comments .comment .image { + float: left; } + * #recent-comments .comments .comment .meta, + * #recent-comments .comments .comment .text { + margin-left: 85px; + color: #3c3c3c; } + * #recent-comments .comments .comment .meta .from, + * #recent-comments .comments .comment .text .from { + font-family: Ubuntu-bold; } + * #recent-comments p { + clear: both; } + +.tooltip-anchor { + display: inline-block; + position: relative; } + +.tooltip-actions { + display: none; + z-index: 2; + position: absolute; + margin-top: 12px; + top: 0px; + left: -10px; + width: 150px; + padding: 3px 10px 10px 10px; } + .tooltip-actions > .sub { + display: inline-block; + padding: 2px; + background-color: #ffffdd; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + border: 1px solid #aaaa00; } + .tooltip-actions > .sub > a > img { + vertical-align: bottom; } + +.p-navigator-pages { + display: inline; + float: left; + margin-right: 0; + width: 950px; + display: block; + padding: 5px 0; } + * html .p-navigator-pages { + overflow-x: hidden; } + .p-navigator-pages > .sub { + text-align: center; } + .p-navigator-pages > .sub > a { + margin: 0px 2px; + padding: 3px 6px; + cursor: pointer; + color: #dddddd; + background-color: #222222; + border: 1px solid #222222; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; } + .p-navigator-pages > .sub > a:hover { + color: white; + background-color: #2259a5; + border: 1px solid #123e78; } + .p-navigator-pages > .sub > a:active { + color: #clickable-active-text; + background-color: #123e78; + border-bottom: 1px solid #103565; } + .p-navigator-pages > .sub > .current { + margin: 0px 2px; + padding: 3px 6px; + font-family: Ubuntu-bold; + color: white; } + +#p-explorer-media-list > .row { + margin: 5px 0; + display: inline; + float: left; + margin-right: 0; + width: 950px; } + * html #p-explorer-media-list > .row { + overflow-x: hidden; } + #p-explorer-media-list > .row > .clear { + display: block; + clear: both; } + #p-explorer-media-list > .row > .cell { + position: relative; } + #p-explorer-media-list > .row > .cell:hover { + background-color: #222222; } + #p-explorer-media-list > .row > .cell.selected .actions, + #p-explorer-media-list > .row > .cell.selected .preview { + background-color: #203c60; } + #p-explorer-media-list > .row > .cell h2 { + font-family: Ubuntu ! important; + font-weight: normal; + padding: 2px 2px ! important; + position: absolute; + top: 1; + left: 1; + z-index: 1; + margin: 1px; + opacity: 0; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + background-color: black; } + #p-explorer-media-list > .row > .cell h2 a { + color: #2259a5; } + #p-explorer-media-list > .row > .cell h2 a:hover { + background-color: #2259a5; + color: white; } + #p-explorer-media-list > .row > .cell > .preview { + display: table-cell; + text-align: center; + padding: 3px; } + #p-explorer-media-list > .row > .cell > .preview > a { + vertical-align: middle; } + #p-explorer-media-list > .row > .cell > .preview > a > img { + vertical-align: middle; } + #p-explorer-media-list > .row > .cell > .preview > * { + text-align: center; + overflow: hidden; } + #p-explorer-media-list > .row > .cell > .actions { + position: absolute; + background-color: #222222; + opacity: 0; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); } + #p-explorer-media-list > .row > .cell > .actions > ul > li { + display: inline; } + #p-explorer-media-list > .row > .cell > .actions > ul > li > a > img { + padding: 3px; + vertical-align: center; } + #p-explorer-media-list > .row > .cell > .actions > ul > li > a > img:hover { + background-color: #dddddd; } + #p-explorer-media-list > .row > .cell > .description { + margin-top: 3px; } + #p-explorer-media-list > .row > .cell > .description * { + color: #444444; } + #p-explorer-media-list > .row > .cell:hover > h2 { + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); } + #p-explorer-media-list > .row > .cell:hover > .actions { + opacity: 0.3; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=30); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=30); } + #p-explorer-media-list > .row > .cell:hover > .actions:hover { + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); } + #p-explorer-media-list > .row > .cell:hover > .description * { + color: #888888; } + #p-explorer-media-list > .row > .cell:hover > .description a { + color: #2259a5; } + #p-explorer-media-list > .row > .cell:hover > .description a:hover { + background-color: #2259a5; + color: white; } + + #p-explorer-media-list.p-list-compact .cell, + #p-explorer-media-list.p-list-full .cell { + display: inline; + float: left; + margin-right: 10px; + width: 230px; } + * html #p-explorer-media-list.p-list-compact .cell, + * html #p-explorer-media-list.p-list-full .cell { + overflow-x: hidden; } + #p-explorer-media-list.p-list-compact .cell-right, + #p-explorer-media-list.p-list-full .cell-right { + display: inline; + float: left; + margin-right: 0; + width: 230px; } + * html #p-explorer-media-list.p-list-compact .cell-right, + * html #p-explorer-media-list.p-list-full .cell-right { + overflow-x: hidden; } + #p-explorer-media-list.p-list-compact .preview, + #p-explorer-media-list.p-list-full .preview { + width: 230px; + height: 230px; + vertical-align: bottom; + padding: 5px; } + #p-explorer-media-list.p-list-compact .preview img, + #p-explorer-media-list.p-list-full .preview img { + margin: 3px 0px; } + #p-explorer-media-list.p-list-compact .actions, + #p-explorer-media-list.p-list-full .actions { + right: 2px; + top: 197px; + padding: 4px; } + + #p-explorer-media-list.p-list-compact .preview { + vertical-align: middle; } + + #p-explorer-media-list.p-list-small .cell { + display: inline; + float: left; + margin-right: 10px; + width: 110px; } + * html #p-explorer-media-list.p-list-small .cell { + overflow-x: hidden; } + #p-explorer-media-list.p-list-small .cell-right { + display: inline; + float: left; + margin-right: 0; + width: 110px; } + * html #p-explorer-media-list.p-list-small .cell-right { + overflow-x: hidden; } + #p-explorer-media-list.p-list-small .preview { + width: 110px; + padding: 0px; + height: 110px; + vertical-align: middle; } + #p-explorer-media-list.p-list-small .actions { + right: 0px; + top: 77px; + padding: 4px; } + +ul.p-breadcrumb { + width: 100%; + margin: 4px 0px; + display: inline-block; } + ul.p-breadcrumb > li { + padding: 1px 3px ! important; + display: inline-block; } + ul.p-breadcrumb > li.p-breadcrumb-header { + background-color: #444444; } + ul.p-breadcrumb > li.p-breadcrumb-header > span { + padding: 0 3px; + font-family: Ubuntu-bold; } + ul.p-breadcrumb > li.p-breadcrumb-crumb > span { + padding-left: 3px; } + ul.p-breadcrumb > li.p-breadcrumb-crumb > .p-breadcrumb-remove { + background-image: url("../img/button-close.png"); + background-position: center center; + background-repeat: no-repeat; + vertical-align: middle; + padding: 0 10px; + width: 15px; } + ul.p-breadcrumb > li.p-breadcrumb-crumb > .p-breadcrumb-remove > span { + display: none; } + ul.p-breadcrumb > li.p-breadcrumb-input > form { + background-color: inherit; + overflow: inherit; + width: inherit; } + ul.p-breadcrumb > li.p-breadcrumb-input > form > div > div, + ul.p-breadcrumb > li.p-breadcrumb-input > form > div > input { + display: inline-block; } + ul.p-breadcrumb > li.p-breadcrumb-input > form > div > input { + border: 1px solid #888888; + background-color: #444444; } + ul.p-breadcrumb > li.p-breadcrumb-input > form > div > input[type=text] { + padding: 1px; } + + +#p-explorer-menu-space { + display: block; + height: 24px; } + +#p-explorer-menu { + display: inline; + float: left; + margin-right: 0; + width: 950px; + z-index: 10; + position: fixed; + background-color: #333333; } + * html #p-explorer-menu { + overflow-x: hidden; } + #p-explorer-menu > ul { + margin: 5px 1px; } + #p-explorer-menu > ul > li { + display: inline; } + #p-explorer-menu > ul > li > a { + padding: 3px; + cursor: pointer; + color: #dddddd; + background-color: #222222; + border: 1px solid #222222; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; } + #p-explorer-menu > ul > li > a:hover { + color: white; + background-color: #2259a5; + border: 1px solid #123e78; } + #p-explorer-menu > ul > li > a:active { + color: #clickable-active-text; + background-color: #123e78; + border-bottom: 1px solid #103565; } + #p-explorer-menu > ul > li.active > a { + padding: 4px 3px; + color: #clickable-active-text; + background-color: #123e78; + border-bottom: 1px solid #103565; } + #p-explorer-menu > .pages > ul { + position: absolute; + right: 0; + top: 0; + margin: 5px 1px; } + #p-explorer-menu > .pages > ul > li { + display: inline-block; + color: #aaaaaa; } + #p-explorer-menu > .pages > ul > li > a { + padding: 3px; + color: #dddddd; + background-color: #222222; + border: 1px solid #222222; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; } + #p-explorer-menu > .pages > ul > li > a:hover { + color: white; + background-color: #2259a5; + border: 1px solid #123e78; } + #p-explorer-menu > .pages > ul > li > a:active { + color: #clickable-active-text; + background-color: #123e78; + border-bottom: 1px solid #103565; } + #p-explorer-menu > #p-explorer-menu-content { + border: 1px solid #222222; + background-color: black; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more { + display: none; + padding: 10px; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta > p, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more > p { + margin: 3px 0; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta > p > .tooltip-anchor > a, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more > p > .tooltip-anchor > a { + padding: 0 3px; + color: #2259a5; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta > p > .tooltip-anchor > a:hover, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more > p > .tooltip-anchor > a:hover { + background-color: #2259a5; + color: white; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta > p > a, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more > p > a { + padding: 0 3px; + color: #2259a5; } + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-all-meta > p > a:hover, + #p-explorer-menu > #p-explorer-menu-content > #p-explorer-more > p > a:hover { + background-color: #2259a5; + color: white; } + #p-explorer-menu > #p-explorer-menu-content > form > div { + display: none; + padding: 10px 0; } + + dl.single-media > dd, + dl.single-media > dt { + display: inline-block; + float: left; } + dl.single-media > dd { + clear: left; } + dl.single-media > dt { + margin-left: 3px; } + +.p-explorer-input { + display: inline; + float: left; + margin-right: 0; + width: 950px; + z-index: 9; + position: fixed; + bottom: 26px; + background-color: gray; } + * html .p-explorer-input { + overflow-x: hidden; } + +.auto_complete { + display: none; } + + .content-browser #upload #upload-drop-area { + margin: 20px 0; + border: 3px dashed #123e78; + width: 300px; + height: 120px; + display: block; } + .content-browser #upload #upload-drop-area p { + margin-top: 45px; + text-align: center; } + .content-browser #upload .upload-status .file, + .content-browser #upload .upload-status .total { + margin: 20px 0; } + .content-browser #upload .upload-status .file p, + .content-browser #upload .upload-status .total p { + margin: 10px 0; } + .content-browser #upload .media-list p { + margin: 10px 0; } + .content-browser #upload .media-list .thumbs a { + margin-right: 5px; + margin-bottom: 5px; } + .content-browser #upload .media-list .thumbs a img { + background-color: #222222; } + +#p-media-preview { + position: relative; + overflow: hidden; } + #p-media-preview > .image { + display: table-cell; + width: 960px; + text-align: center; + vertical-align: middle; } + #p-media-preview > .image > img { + text-align: center; + vertical-align: middle; } + #p-media-preview > .navigator { + background-color: white; } + #p-media-preview > .navigator > div > .sub { + opacity: 0; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); } + #p-media-preview > .navigator > div > .sub a { + color: white; + display: block; + background-color: black; + padding: 10px; + border: 1px solid black; + font-size: 15pt; } + #p-media-preview > .navigator > div:hover > .sub { + opacity: 0.5; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); } + #p-media-preview > .navigator > div:hover > .sub:hover { + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); } + #p-media-preview > .navigator > div:hover > .sub:hover a { + background-color: #333333; + border: 1px solid #333333; } + #p-media-preview > .navigator > .prev { + position: absolute; + top: 70px; + left: 0; + padding-right: 100px; + height: 100%; } + #p-media-preview > .navigator > .prev > .sub a { + -moz-border-radius-topright: 15px; + -webkit-border-top-right-radius: 15px; + -o-border-top-right-radius: 15px; + -ms-border-top-right-radius: 15px; + -khtml-border-top-right-radius: 15px; + border-top-right-radius: 15px; + -moz-border-radius-bottomright: 15px; + -webkit-border-bottom-right-radius: 15px; + -o-border-bottom-right-radius: 15px; + -ms-border-bottom-right-radius: 15px; + -khtml-border-bottom-right-radius: 15px; + border-bottom-right-radius: 15px; } + #p-media-preview > .navigator > .up { + padding: 0; + padding-bottom: 100px; + position: absolute; + top: 0; + width: 100%; } + #p-media-preview > .navigator > .up > .sub a { + text-align: center; + display: block; + width: 120px; + margin: 0 auto; + -moz-border-radius-bottomleft: 15px; + -webkit-border-bottom-left-radius: 15px; + -o-border-bottom-left-radius: 15px; + -ms-border-bottom-left-radius: 15px; + -khtml-border-bottom-left-radius: 15px; + border-bottom-left-radius: 15px; + -moz-border-radius-bottomright: 15px; + -webkit-border-bottom-right-radius: 15px; + -o-border-bottom-right-radius: 15px; + -ms-border-bottom-right-radius: 15px; + -khtml-border-bottom-right-radius: 15px; + border-bottom-right-radius: 15px; } + #p-media-preview > .navigator > .next { + position: absolute; + top: 70px; + right: 0; + height: 100%; + padding-left: 100px; } + #p-media-preview > .navigator > .next > .sub a { + -moz-border-radius-topleft: 15px; + -webkit-border-top-left-radius: 15px; + -o-border-top-left-radius: 15px; + -ms-border-top-left-radius: 15px; + -khtml-border-top-left-radius: 15px; + border-top-left-radius: 15px; + -moz-border-radius-bottomleft: 15px; + -webkit-border-bottom-left-radius: 15px; + -o-border-bottom-left-radius: 15px; + -ms-border-bottom-left-radius: 15px; + -khtml-border-bottom-left-radius: 15px; + border-bottom-left-radius: 15px; } + +#image-tabs { + margin: 10px 0 5px 0; } + #image-tabs .meta a { + color: #2259a5; } + #image-tabs .meta a:hover { + color: white; + background-color: #2259a5; } + +#comments { + margin: 5px 0; } + #comments > h3 { + font-size: 120%; } + #comments > .comment { + padding: 5px; } + #comments > .comment.even { + background: #1a1a1a; } + #comments > .comment > .text { + margin: 5px 0px 5px 20px; } + + form fieldset { + border: 0; } + form fieldset legend { + padding: 20px 0 10px 240px; + font-size: 12pt; } + form fieldset > div { + clear: left; } + form fieldset > div > label { + display: inline; + float: left; + margin-right: 10px; + width: 230px; + margin-top: 15px; + text-align: right; } + * html form fieldset > div > label { + overflow-x: hidden; } + form fieldset > div input[type=email], + form fieldset > div input[type=password], + form fieldset > div input[type=text], + form fieldset > div textarea { + display: inline; + float: left; + margin-right: 0; + width: 230px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + color: #aaaaaa; + border: #333333 1px solid; + padding: 2px; + background-color: #111111; + font-size: 12pt; + width: 224px; + margin-top: 10px; } + * html form fieldset > div input[type=email], + * html form fieldset > div input[type=password], + * html form fieldset > div input[type=text], + * html form fieldset > div textarea { + overflow-x: hidden; } + form fieldset > div input[type=email]:hover, + form fieldset > div input[type=password]:hover, + form fieldset > div input[type=text]:hover, + form fieldset > div textarea:hover { + border: #123e78 1px solid; + background-color: #222222; } + form fieldset > div input[type=email]:focus, + form fieldset > div input[type=password]:focus, + form fieldset > div input[type=text]:focus, + form fieldset > div textarea:focus { + color: #eeeeee; + border: #2259a5 1px solid; + background-color: #333333; } + form fieldset > div select { + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + color: #aaaaaa; + border: #333333 1px solid; + padding: 2px; + background-color: #111111; + font-size: 12pt; + margin-top: 10px; } + form fieldset > div select:hover { + border: #123e78 1px solid; + background-color: #222222; } + form fieldset > div select:focus { + color: #eeeeee; + border: #2259a5 1px solid; + background-color: #333333; } + form fieldset > div select option { + padding: 3px 0; + font-size: 12pt; + background-color: #222222; } + form fieldset > div select option.selected { + background-color: #123e78; } + form fieldset > div select option:hover { + background-color: #2259a5; } + form fieldset > div > img { + margin-top: 12px; } + form fieldset > div > .description, + form fieldset > div > .error { + clear: left; + padding-left: 240px; + display: inline; + float: left; + margin-right: 0; + width: 230px; + margin-top: 3px; } + * html form fieldset > div > .description, + * html form fieldset > div > .error { + overflow-x: hidden; } + form fieldset > .checkbox input[type=checkbox] { + margin-left: 240px; + margin-right: 5px; } + form fieldset > .checkbox label { + width: 200px; + float: none; + text-align: left; + display: inline-block; } + form div.submit { + padding-left: 240px; + margin-top: 15px; } + + form.explorer-menu fieldset { + display: inline; + float: left; + margin-right: 0; + width: 950px; + padding: 5px 0; + border: 0; } + * html form.explorer-menu fieldset { + overflow-x: hidden; } + form.explorer-menu fieldset legend { + display: none; } + form.explorer-menu fieldset > div > label { + display: inline; + float: left; + margin-right: 10px; + width: 230px; + margin-top: 12px; + text-align: right; } + * html form.explorer-menu fieldset > div > label { + overflow-x: hidden; } + form.explorer-menu fieldset > div input[type=text], + form.explorer-menu fieldset > div textarea { + display: inline; + float: left; + margin-right: 0; + width: 230px; + margin-top: 10px; + width: 224px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + color: #aaaaaa; + border: #333333 1px solid; + padding: 2px; + background-color: #111111; } + * html form.explorer-menu fieldset > div input[type=text], + * html form.explorer-menu fieldset > div textarea { + overflow-x: hidden; } + form.explorer-menu fieldset > div input[type=text]:hover, + form.explorer-menu fieldset > div textarea:hover { + border: #123e78 1px solid; + background-color: #222222; } + form.explorer-menu fieldset > div input[type=text]:focus, + form.explorer-menu fieldset > div textarea:focus { + color: #eeeeee; + border: #2259a5 1px solid; + background-color: #333333; } + form.explorer-menu fieldset > div select { + margin-top: 10px; + display: inline; + float: left; + margin-right: 0; + width: 230px; + display: inline-block; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + color: #aaaaaa; + border: #333333 1px solid; + padding: 2px; + background-color: #111111; } + * html form.explorer-menu fieldset > div select { + overflow-x: hidden; } + form.explorer-menu fieldset > div select:hover { + border: #123e78 1px solid; + background-color: #222222; } + form.explorer-menu fieldset > div select:focus { + color: #eeeeee; + border: #2259a5 1px solid; + background-color: #333333; } + form.explorer-menu fieldset > div select option { + padding: 3px 0; + color: white; + background-color: #222222; } + form.explorer-menu fieldset > div select option.selected { + background-color: #123e78; } + form.explorer-menu fieldset > div select option:hover { + background-color: #2259a5; } + form.explorer-menu fieldset > div > div.description, + form.explorer-menu fieldset > div > div.error { + margin-top: 2px; + padding-left: 240px; + display: inline; + float: left; + margin-right: 0; + width: 230px; } + * html form.explorer-menu fieldset > div > div.description, + * html form.explorer-menu fieldset > div > div.error { + overflow-x: hidden; } + form.explorer-menu fieldset > div .radioSet { + margin: 5px 0; } + form.explorer-menu fieldset > div.error { + background: #660000; } + form.explorer-menu div.submit { + clear: left; + padding-left: 240px; } + +form.login { + padding-left: 360px; + display: inline; + float: left; + margin-right: 10px; + width: 230px; + margin: 20px 0 30px 0; } + * html form.login { + overflow-x: hidden; } + form.login fieldset { + border: none; } + form.login fieldset legend { + text-align: left; + padding-left: 0; + padding-bottom: 20px; + margin: 0; + font-size: 15pt; } + form.login fieldset > div { + display: block; + margin-top: 5px; + margin-bottom: 10px; } + form.login fieldset label { + width: 230px !important; + clear: left; + text-align: left; } + form.login fieldset input[type=email], + form.login fieldset input[type=password], + form.login fieldset input[type=text] { + width: 230px !important; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; + color: #aaaaaa; + border: #333333 1px solid; + padding: 2px; + background-color: #111111; + margin-top: 3px; + padding: 4px; + clear: left; + font-size: 15pt; } + form.login fieldset input[type=email]:hover, + form.login fieldset input[type=password]:hover, + form.login fieldset input[type=text]:hover { + border: #123e78 1px solid; + background-color: #222222; } + form.login fieldset input[type=email]:focus, + form.login fieldset input[type=password]:focus, + form.login fieldset input[type=text]:focus { + color: #eeeeee; + border: #2259a5 1px solid; + background-color: #333333; } + form.login > div.submit { + display: inline-block; + padding-left: 0; } + form.login > div.submit a.button, + form.login > div.submit input[type=submit] { + margin: 0 10px 5px 0; + vertical-align: top; } + + form#comment-add textarea { + display: inline; + float: left; + margin-right: 10px; + width: 470px; } + * html form#comment-add textarea { + overflow-x: hidden; } + +#mapbox { + margin: 1em 0 1em 0; } + +#map { + border: 1px solid black; + width: 100%; + height: 450px; } + +#mapStatusLine { + display: block; + width: 100%; + background-color: #dddddd; + border: 1px solid black; + margin: 0 4px 0 0; + padding: 1px; } + +#mapStatusLine > div { + color: black; + margin: 2px; + padding: 2px 4px; + border-left: 1px solid #888888; + border-right: 1px solid white; + display: inline; } + +#mapSearch > input, +#mapSearch > label { + color: black; + margin: 0; + padding: 0; + float: none; + display: inline; } + +#mapSearch > label { + margin: 0; } + +.mapContextMenu * { + color: black; + margin: 0; + padding: 0; } + +.mapContextMenu { + display: block; + border: 1px solid blue; + background-color: #eeeeee; } + .mapContextMenu > ul { + list-style-type: none; } + .mapContextMenu > ul > li > a { + color: black; + padding: 0 3px; + text-decoration: none; + display: block; } + .mapContextMenu a:focus { + outline: none; } + .mapContextMenu a:hover { + background: #dddddd; } + +body { + background: black; } + diff --git a/webroot/ccss/default.sass b/webroot/ccss/default.sass new file mode 100644 index 00000000..3b1fe36e --- /dev/null +++ b/webroot/ccss/default.sass @@ -0,0 +1,13 @@ + +@import default/colors +@import default/text +@import default/layout +@import default/home +@import default/explorer +@import default/upload +@import default/image +@import default/form +@import default/map + +body + background: $backgroundColor \ No newline at end of file diff --git a/webroot/ccss/default/_colors.sass b/webroot/ccss/default/_colors.sass new file mode 100644 index 00000000..af7b715d --- /dev/null +++ b/webroot/ccss/default/_colors.sass @@ -0,0 +1,34 @@ +$fontColor: #bbb +$backgroundColor: #000 +$headerBackgroundColor: #666 +$sidebarBackgroundColor: #fff +$contentBackgroundColor: #fff +$footerBackgroundColor: #111 + +$linkColor: #2259a5 + +$menuColor: #000 +$menuBackgroundColor: darken(#fff, 5%) +$menuActiveColor: #fff +$menuActiveBackgroundColor: #579 +$menuHoverColor: #303 +$menuHoverBackgroundColor: #79b + +// Colors of jquery-ui +$header-bg = #333 +$header-border = #222 +$header-text = #ccc +$content-bg = #000 +$content-border = #222 +$content-text = #aaa +$clickable-default-bg = #222 +$clickable-default-border = #222 +$clickable-default-text = #ddd +$clickable-hover-bg = #2259a5 +$clickable-hover-border = #123e78 +$clickable-hover-text = #fff +$clickable-active-bg = #123e78 +$clickable-active-border = #103565 +$clickable-active-text = #fff + + diff --git a/webroot/ccss/default/_explorer.sass b/webroot/ccss/default/_explorer.sass new file mode 100644 index 00000000..3782a394 --- /dev/null +++ b/webroot/ccss/default/_explorer.sass @@ -0,0 +1,278 @@ +@import colors +@import grid +@import border-radius +@import opacity +@import gradient + +.tooltip-anchor + display: inline-block + position: relative + +.tooltip-actions + display: none + z-index: 2 + position: absolute + margin-top: 12px + top: 0px + left: -10px + width: 150px + padding: 3px 10px 10px 10px + > .sub + display: inline-block + padding: 2px + background-color: #ffd + +border-radius(4px) + border: 1px solid darken(#ffd, 60%) + > a > img + vertical-align: bottom + +=link + color: $linkColor + &:hover + background-color: $clickable-hover-bg + color: white + +=clickable + color: $clickable-default-text + background-color: $clickable-default-bg + border: 1px solid $clickable-default-border + +border-radius(3px) + &:hover + color: $clickable-hover-text + background-color: $clickable-hover-bg + border: 1px solid $clickable-hover-border + &:active + color: #clickable-active-text + background-color: $clickable-active-bg + border-bottom: 1px solid $clickable-active-border + +.p-navigator-pages + +column(24, true) + display: block + padding: 5px 0 + > .sub + text-align: center + > a + margin: 0px 2px + padding: 3px 6px + cursor: pointer + +clickable + > .current + margin: 0px 2px + padding: 3px 6px + font-family: Ubuntu-bold + color: white + +#p-explorer-media-list > .row + margin: 5px 0 + +column(24, true) + > .clear + display: block + clear: both + > .cell + position: relative + &:hover + background-color: $clickable-default-bg + &.selected + .preview,.actions + background-color: #203c60 + h2 + font-family: Ubuntu ! important + font-weight: normal + padding: 2px 2px ! important + position: absolute + top: 1 + left: 1 + z-index: 1 + margin: 1px + +opacity(.0) + background-color: #000 + a + +link + > .preview + display: table-cell + text-align: center + padding: 3px + > a + vertical-align: middle + > img + vertical-align: middle + > * + text-align: center + overflow: hidden + > .actions + position: absolute + background-color: $clickable-default-bg + +opacity(0.0) + > ul > li + display: inline + > a > img + padding: 3px + vertical-align: center + &:hover + background-color: $clickable-default-text + > .description + margin-top: 3px + * + color: #444 + &:hover + > h2 + +opacity(1.0) + > .actions + +opacity(.3) + &:hover + +opacity(1.0) + > .description + * + color: #888 + a + +link + +#p-explorer-media-list.p-list-full,#p-explorer-media-list.p-list-compact + .cell + +column(6) + .cell-right + +column(6, true) + .preview + width: 230px + height: 230px + vertical-align: bottom + padding: 5px + img + margin: 3px 0px + .actions + right: 2px + top: 197px + padding: 4px +#p-explorer-media-list.p-list-compact + .preview + vertical-align: middle +#p-explorer-media-list.p-list-small + .cell + +column(3) + .cell-right + +column(3, true) + .preview + width: 110px + padding: 0px + height: 110px + vertical-align: middle + .actions + right: 0px + top: 77px + padding: 4px + +ul.p-breadcrumb + width: 100% + margin: 4px 0px + display: inline-block + > li + padding: 1px 3px ! important + display: inline-block + &.p-breadcrumb-header + background-color: #444 + > span + padding: 0 3px + font-family: Ubuntu-bold + &.p-breadcrumb-crumb + > span + padding-left: 3px + > .p-breadcrumb-remove + background-image: url("../img/button-close.png") + background-position: center center + background-repeat: no-repeat + vertical-align: middle + padding: 0 10px + width: 15px + > span + display: none + &.p-breadcrumb-input > form + background-color: inherit + overflow: inherit + width: inherit + > div + > input, > div + display: inline-block + > input + border: 1px solid #888 + background-color: #444 + > input[type=text] + padding: 1px + > input[type=submit] + &:hover + +#p-explorer-menu-space + display: block + height: 24px + +$menu-color = #222 +$menu-bg-color = black +$menu-link-color = #666 +$menu-link-hover-color = lighten($menu-link-color, 40%) + +#p-explorer-menu + +column(24, true) + z-index: 10 + position: fixed + background-color: $header-bg + > ul + margin: 5px 1px + > li + display: inline + > a + padding: 3px + cursor: pointer + +clickable + &.active > a + padding: 4px 3px + color: #clickable-active-text + background-color: $clickable-active-bg + border-bottom: 1px solid $clickable-active-border + > .pages > ul + position: absolute + right: 0 + top: 0 + margin: 5px 1px + > li + display: inline-block + color: $content-text + > a + padding: 3px + +clickable + > #p-explorer-menu-content + border: 1px solid $content-border + background-color: $content-bg + > #p-explorer-all-meta, > #p-explorer-more + display: none + padding: 10px + > p + margin: 3px 0 + > .tooltip-anchor + > a + padding: 0 3px + +link + > a + padding: 0 3px + +link + > form > div + display: none + padding: 10px 0 + +dl.single-media + > dd, > dt + display: inline-block + float: left + > dd + clear: left + > dt + margin-left: 3px + +.p-explorer-input + +column(24, true) + z-index: 9 + position: fixed + bottom: 26px + background-color: gray + +.auto_complete + display: none diff --git a/webroot/ccss/default/_form.sass b/webroot/ccss/default/_form.sass new file mode 100644 index 00000000..ea879c57 --- /dev/null +++ b/webroot/ccss/default/_form.sass @@ -0,0 +1,153 @@ +@import grid +@import gradient +@import border-radius + +=default-input + +border-radius(3px) + color: #aaa + border: #333 1px solid + padding: 2px + background-color: #111 + &:hover + border: $clickable-hover-border 1px solid + background-color: #222 + &:focus + color: #eee + border: $clickable-hover-bg 1px solid + background-color: #333 + +form + fieldset + legend + padding: 20px 0 10px 240px + font-size: 12pt + border: 0 + > div + clear: left + > label + +column(6) + margin-top: 15px + text-align: right + input[type=password], + input[type=text], + input[type=email], + textarea + +column(6, true) + +default-input + font-size: 12pt + width: 224px + margin-top: 10px + select + +default-input + font-size: 12pt + margin-top: 10px + option + padding: 3px 0 + font-size: 12pt + background-color: $clickable-default-bg + &.selected + background-color: $clickable-active-bg + &:hover + background-color: $clickable-hover-bg + > img + margin-top: 12px + > .error, > .description + clear: left + +prepend(6) + +column(6, true) + margin-top: 3px + > .checkbox + input[type=checkbox] + margin-left: 240px + margin-right: 5px + label + width: 200px + float: none + text-align: left + display: inline-block + div.submit + +prepend(6) + margin-top: 15px + +form.explorer-menu + fieldset + +column(24, true) + padding: 5px 0 + border: 0 + legend + display: none + > div + > label + +column(6) + margin-top: 12px + text-align: right + input[type=text], textarea + +column(6, true) + margin-top: 10px + width: 224px + +default-input + select + margin-top: 10px + +column(6, true) + display: inline-block + +default-input + option + padding: 3px 0 + color: white + background-color: $clickable-default-bg + &.selected + background-color: $clickable-active-bg + &:hover + background-color: $clickable-hover-bg + > div.description, > div.error + margin-top: 2px + +prepend(6) + +column(6, true) + .radioSet + margin: 5px 0 + > div.error + background: darken(red, 30%) + div.submit + clear: left + +prepend(6) + +form.login + +prepend(9) + +column(6) + margin: 20px 0 30px 0 + fieldset + border: none + legend + text-align: left + padding-left: 0 + padding-bottom: 20px + margin: 0 + font-size: 15pt + > div + display: block + margin-top: 5px + margin-bottom: 10px + label + +span(6, true) + clear: left + text-align: left + input[type=text], + input[type=email], + input[type=password] + +span(6, true) + +default-input + margin-top: 3px + padding: 4px + clear: left + font-size: 15pt + > div.submit + display: inline-block + padding-left: 0 + a.button, + input[type=submit] + margin: 0 10px 5px 0 + vertical-align: top + +form#comment-add + textarea + +column(12) diff --git a/webroot/ccss/default/_home.sass b/webroot/ccss/default/_home.sass new file mode 100644 index 00000000..8986a32c --- /dev/null +++ b/webroot/ccss/default/_home.sass @@ -0,0 +1,57 @@ +@import grid +@import tag-cloud +@import opacity + +* + #random-media + +column(12) + + #newest-media + +column(12, true) + + #recent-comments + clear: both + #recent-comments + +column(12) + #tag-cloud + +column(6) + #category-cloud + +column(6, true) + .cloud + +tag-cloud(14pt) + .xxs, .xs, .s, .m, .l, .xl, .xxl + padding: 2px 5px + padding-left: 0 + a + display: inline-block + &:hover + color: white + background-color: $clickable-hover-bg +* #random-media .clip + position: relative + display: block + overflow: hidden + width: 100% + height: 309px + cite + position: absolute + bottom: 0 + right: 0 + background-color: black + +opacity(.6) + padding: 5px + &:hover + +opacity(.9) +* #recent-comments + .comments + .comment + clear: both + .image + float: left + .meta, .text + margin-left: 85px + color: darken($fontColor, 50%) + .from + font-family: Ubuntu-bold + p + clear: both diff --git a/webroot/ccss/default/_image.sass b/webroot/ccss/default/_image.sass new file mode 100644 index 00000000..c40a205d --- /dev/null +++ b/webroot/ccss/default/_image.sass @@ -0,0 +1,81 @@ +@import grid +@import border-radius + +$nav-button-padding = 100px + +#p-media-preview + position: relative + overflow: hidden + > .image + display: table-cell + width: 960px + text-align: center + vertical-align: middle + > img + text-align: center + vertical-align: middle + > .navigator + background-color: white + > div + > .sub + +opacity(0.0) + a + color: white + display: block + background-color: black + padding: 10px + border: 1px solid black + font-size: 15pt + &:hover > .sub + +opacity(0.5) + &:hover + +opacity(1.0) + a + background-color: lighten(black, 20%) + border: 1px solid lighten(black, 20%) + > .prev + position: absolute + top: 70px + left: 0 + padding-right: $nav-button-padding + height: 100%; + > .sub a + +border-right-radius(15px) + > .up + padding: 0 + padding-bottom: $nav-button-padding + position: absolute + top: 0 + width: 100% + > .sub a + text-align: center + display: block + width: 120px + margin: 0 auto + +border-bottom-radius(15px) + > .next + position: absolute + top: 70px + right: 0 + height: 100% + padding-left: $nav-button-padding + > .sub a + +border-left-radius(15px) + +#image-tabs + margin: 10px 0 5px 0 + .meta a + color: $linkColor + &:hover + color: white + background-color: $clickable-hover-bg +#comments + margin: 5px 0 + > h3 + font-size: 120% + > .comment + padding: 5px + &.even + background: lighten(black, 10%) + > .text + margin: 5px 0px 5px 20px diff --git a/webroot/ccss/default/_layout.sass b/webroot/ccss/default/_layout.sass new file mode 100644 index 00000000..5dc8dc24 --- /dev/null +++ b/webroot/ccss/default/_layout.sass @@ -0,0 +1,142 @@ +@import border-radius +@import grid +@import "compass/css3/gradient" +@import text-shadow +@import box-shadow + +* + margin: 0 + padding: 0 + +#page + display: block + width: 100% + +#header + background-color: $headerBackgroundColor + +linear-gradient(color-stops($headerBackgroundColor, darken($headerBackgroundColor, 20%))) + border-bottom: 2px solid darken($headerBackgroundColor, 20%) + width: 100% + > .sub + width: 950px + display: block + margin: 0 auto + > h1 + padding: 5px 0 + display: inline-block + a + color: white + font-size: 250% + +text-shadow(#444, 2px, 0px, 0) + > .subtitle + color: white + display: inline-block + > #top-menu + float: right + margin: 10px 0 + > li + float: left + padding: 5px 2px + > a + padding: 5px 7px + color: darken(white, 50%) + +text-shadow(black, 1px, 0px, 0) + &:hover + +border-radius(5px) + background-color: darken($headerBackgroundColor, 25%) + border-color: darken($headerBackgroundColor, 35%) + color: white + +#main-menu + background-color:darken($headerBackgroundColor, 30%) + > .sub + width: 950px; + display: block + margin: 0 auto + > ul li + display: block + float: left + > a + color: lighten(black, 60%) + background-color: lighten(black, 20%) + +border-radius(5px) + display: block + margin: 5px + margin-left: 0 + padding: 5px 15px + &:active, &:visited + color: lighten(black, 60%) + +text-shadow(black, 1px, 0px, 0) + &:hover + background-color: lighten(black, 40%) + color: white + #quicksearch + display: block; + float: right; + .inputWrap, .submitWrap + display: block + float: left + overflow: hidden + height: 24px + margin: 5px 0 + background-color: lighten(black, 20%) + input + border: none + background-color: lighten(black, 20%) + padding: 5px + .inputWrap + +border-left-radius(5px) + input + border: none + background-color: lighten(black, 20%) + .submitWrap + +border-right-radius(5px) + &:hover + background-color: lighten(black, 40%) + color: white + cursor: pointer + input + background-color: lighten(black, 40%) + cursor: pointer + .clear + clear: both + .clear + clear: both + +#main + +container + > .sub + +column(24, true) + #content > .sub + +column(24, true) + margin-bottom: 10px + +#footer + +container + > .sub + +column(24, true) + background-color: $footerBackgroundColor + > p + padding: 5px + +.box + position: relative + padding: 5px + > h1 + @include border-radius(5px) + background-color: #eee + +linear-gradient(colour-stops(#eee, darken(#eee, 10%))) + color: #666 + +text-shadow(white, 1px, 0px, 0) + border: 1px solid #bbb + padding: 3px 12px + +.info, +.message + color: white + display: block + margin: 5px 0 + padding: 10px + background-color: #009100 + border: 1px solid #006500 + +border-radius(2px) diff --git a/webroot/ccss/default/_map.sass b/webroot/ccss/default/_map.sass new file mode 100644 index 00000000..adea8c48 --- /dev/null +++ b/webroot/ccss/default/_map.sass @@ -0,0 +1,56 @@ +#mapbox + margin: 1em 0 1em 0 + +#map + border: 1px solid #000 + width: 100% + height: 450px + +#mapStatusLine + display: block + width: 100% + background-color: #ddd + border: 1px solid #000 + margin: 0 4px 0 0 + padding: 1px + +#mapStatusLine > div + color: black + margin: 2px + padding: 2px 4px + border-left: 1px solid #888 + border-right: 1px solid #fff + display: inline + +#mapSearch > label, +#mapSearch > input + color: black + margin: 0 + padding: 0 + float: none + display: inline + +#mapSearch > label + margin: 0 + +.mapContextMenu * + color: black + margin: 0 + padding: 0 + +.mapContextMenu + display: block + border: 1px solid blue + background-color: #eee + > ul + list-style-type: none + > li > a + color: black + padding: 0 3px + text-decoration:none + display: block + a:focus + outline: none + a:hover + background: #ddd + diff --git a/webroot/ccss/default/_text.sass b/webroot/ccss/default/_text.sass new file mode 100644 index 00000000..ffc5edb7 --- /dev/null +++ b/webroot/ccss/default/_text.sass @@ -0,0 +1,68 @@ +@import font-face ++font-face(Ubuntu, font-files("ubuntu/ubuntu-r-webfont.woff", "woff", "ubuntu/ubuntu-r-webfont.ttf", "truetype"), "ubuntu/ubuntu-r-webfont.eot") ++font-face(Ubuntu-bold, font-files("ubuntu/ubuntu-b-webfont.woff", "woff", "ubuntu/ubuntu-b-webfont.ttf", "truetype"), "ubuntu/ubuntu-b-webfont.eot") ++font-face(Cousine, font-files("cousine/cousine-regular-latin-webfont.woff", "woff", "cousine/cousine-regular-latin-webfont.ttf", "truetype"), "cousine/cousine-regular-latin-webfont.eot") + +* + color: $fontColor + font-size: 10pt + font-weight: normal + text-decoration: none + font-family: Ubuntu, Verdana, sans +a + color: $linkColor + &:hover + color: lighten($linkColor, 20%) + &:visited + color: darken($linkColor, 5%) + +img + border: none + +ul, ol + list-style-type: none + + +#content > .sub + h1, h2, h3 + font-family: Ubuntu-bold + padding: 10px 0 + h1 + font-size: 15pt + > p, > p > a, > ul > li + font-size: 12pt + > ul + padding: 10px 0 + list-style-type: circle + > li + padding: 5px 0 5px 20px + > p + padding: 5px 0 + > code + font-family: Cousine + font-size: 10pt + background-color: darken(white, 10%) + color: lighten(black, 20%) + + > .error, > .notice, > .warning + margin: 5px 0 + padding: 10px + color: black + > * + color: black + > .error + border: 1px solid red + background-color: lighten(red, 30%) + > .notice, > .warning + border: 1px solid yellow + background-color: lighten(yellow, 30%) +pre + padding: 10px + background-color: #aaa + color: #333 + font-family: Cousine, monospace + * + font-family: Cousine, monospace + color: #333 + strong + color: #000 diff --git a/webroot/ccss/default/_upload.sass b/webroot/ccss/default/_upload.sass new file mode 100644 index 00000000..7bb51903 --- /dev/null +++ b/webroot/ccss/default/_upload.sass @@ -0,0 +1,30 @@ +@import colors +@import grid +@import border-radius +@import opacity +@import gradient + +.content-browser + #upload + #upload-drop-area + margin: 20px 0 + border: 3px dashed $clickable-hover-border + width: 300px + height: 120px + display: block + p + margin-top: 45px + text-align: center + .upload-status + .file, .total + margin: 20px 0 + p + margin: 10px 0 + .media-list + p + margin: 10px 0 + .thumbs a + margin-right: 5px + margin-bottom: 5px + img + background-color: $content-border \ No newline at end of file diff --git a/webroot/ccss/explorer.css b/webroot/ccss/explorer.css new file mode 100644 index 00000000..22374706 --- /dev/null +++ b/webroot/ccss/explorer.css @@ -0,0 +1,252 @@ +.thumbs { + float: left; + padding: 0; + margin: 0; + width: 100%; +} + +.thumb { + width: 95%; +} +.unselected { + margin: 2px; + padding: 3px; +} + +.selected { + margin: 2px; + padding: 3px; + background-color: #bdf; +} + +.thumb h2 { + font-size: 110%; +} + +.thumb h2 img { + vertical-align: middle; +} + +.image { + margin: 0px; + padding: 2px 2px; + text-align: center; +} + +.image * img { + vertical-align: middle; + border: 1px solid black; +} + +.mediaPreview { + margin: 0px; + padding: 2px 2px; +} + +.user { + text-align: center; +} + +.user img { + vertical-align: middle; +} + +.meta { + margin: 0; + padding: 0; + border: 1px solid #ddd; + background-color: #f0f0f0; +} + +.meta * td { + margin: 0px; + padding: 0px; +} + +.meta * a { + text-decoration: none; +} + +.meta * a:hover { + color: white; + background-color: #f63; +} + +.meta * fieldset { + margin: 0; +} + +.paginator { + width: 95%; + display: block; + color: #8C8C8C; + margin: 10px 0; + text-align: center; +} + +.subpaginator { + font-size: 85%; + margin: 2px auto; + padding: 3px; +} + +.subpaginator a { + text-decoration: none; + padding: 2px 6px; + margin: 3px 0; + background-color: #ffffff; + border: 1px solid #b3b3b3; +} + +.subpaginator a:hover { + border: 1px solid #000; + background-color: #f63; + color: #ffffff; +} + +.subpaginator a.prev, +.subpaginator a.next { + margin: 3px 8px; +} + +.subpaginator .current { + font-weight: bold; + font-size: 100%; + padding: 4px 8px; + margin: 0 1px; + color: white; + background-color: #182e7a; + border: 1px solid #000; +} + +.edit { + clear: both; +} + +#mapbox { + margin: 1em 0 1em 0; +} + +#map { + width: 100%; + height: 350px; + border: 1px solid #000; +} + +#mapStatusLine { + display: block; + width: 100%; + background-color: #ddd; + border: 1px solid #000; + margin: 0 4px 0 0; + padding: 1px; +} +#mapStatusLine div { + margin: 2px; + padding: 2px 4px; + border-left: 1px solid #888; + border-right: 1px solid #fff; + display: inline; +} +#mapSearch label, +#mapSearch input { + margin: 0; + padding: 0; + float: none; + display: inline; +} +#mapSearch label { + margin: 0; +} + +.mapContextMenu * { + margin: 0; + padding: 0; +} +.mapContextMenu { + display: block; + border: 1px solid blue; + background-color: #eee; +} +.mapContextMenu ul { + list-style-type: none; +} +.mapContextMenu * a { + padding: 0 2px; + text-decoration:none; + display: block; +} +.mapContextMenu * a:focus { + outline: none; +} +.mapContextMenu * a:hover { + background: #ddd; +} + +/** Patches for the menu list */ +#submenu li.multi { + margin: 0; + padding: 3px 0 3px 10%; + border-bottom: 1px #eee solid; +} + +#submenu li.multi a { + display: inline; + padding: 3px 0px 3px 0px; + border-style: none; +} + +#submenu li.multi .actionlist { + display: none; +} + +.p-explorer-cell h2 { + font-size: 10pt; +} +.p-explorer-cell { + display: inline-block; + width: 240px; + height: 100%; + position: relative; +} + +.p-explorer-cell-image { + display: table-cell; + text-align: center; + vertical-align: middle; + width: 240px; + height: 220px; +} +.p-explorer-cell-image * { + vertical-align: middle; +} +/*\*//*/ +.p-explorer-cell-image { + display: block; +} +.p-explorer-cell-image { + display: inline-block; + height: 100%; + width: 1px; +} +/**/ +.p-explorer-cell-caption { + text-align: center; + height: 12pt; +} +.p-explorer-cell-meta { + display: block; + width: 240px; + border: 1px solid #888; + opacity: .0; + background-color: white; + position: absolute; + bottom: 12pt; +} +.p-explorer-cell-meta table tbody tr td { + margin: 0; + padding: 0; +} +.p-explorer-cell-meta:hover { + opacity: .9; +} diff --git a/webroot/ccss/formular.css b/webroot/ccss/formular.css new file mode 100644 index 00000000..ac38a1fa --- /dev/null +++ b/webroot/ccss/formular.css @@ -0,0 +1,157 @@ +/* Forms */ +fieldset { + margin: 5px 0 5px 0; + background-color: white; + border-top: 1px solid #888; + border-bottom: 1px solid #888; +} + +fieldset legend { + margin: 0px 0px 0em 0em; + padding: 3px; + font-weight: bold; + border: 1px solid #888; + background-color: white; +} + +fieldset fieldset { + margin-top: 0px; + margin-bottom: 20px; + padding: 16px 0; +} + +fieldset fieldset legend { + font-weight: normal; + margin-left: 20px; +} +fieldset fieldset div { + clear: left; + margin: 0 20px; +} +form fieldset div.input { + clear: both; + margin-bottom: 1em; + padding: .5em; + vertical-align: text-top; +} +form fieldset div.input { + color: #444; +} +form fieldset div.required { + color: #333; + font-weight: bold; +} +form div.submit { + border: 0; + clear: both; + margin-top: 5px; +} +label { + float: left; + display: block; + width: 140px; + padding-right: 5px; + text-align: right; +} +form fieldset div .hint { + float: left; + font-weight: normal; + font-style: italic; + padding: 0 1em; + color: #888; +} +form fieldset div img { + float: left; +} + +input[type=text], +input[type=password], +select, +textarea { + float:left; + background-color: #efefef; + border: 1px #bbb solid; +} +input[type=text]:hover, +input[type=password]:hover, +select:hover, +textarea:hover { + border: 1px solid black; +} +input[type=text]:focus, +input[type=password]:focus, +select:focus, +textarea:focus { + border: 1px solid black; + background-color: #ffffd0; +} +select[multiple=multiple] { + width: 100%; +} +option { + padding: 0 3px; +} +fieldset * input[type=checkbox] { + clear: left; + float: left; + margin: 0px 6px 0px 145px; + padding: 5px; + width: auto; +} +.checkbox label { + float: left; + text-align: left; + width: auto; +} + +input[type=submit] { + color: black; + padding: 3px; + font-weight: bold; + background-color: white; + border: 1px solid #888; +} + +input[type=submit]:hover { + color: white; + background-color: #f63; +} + +input[type=reset], +.reset { + color: white; + font-weight: bold; + background-color: #182e7a; +} +.reset { + border: 1px solid black; + padding: 4px; + margin: 0 3pt 0 3pt; +} + +.searchBox { + width: 100%; +} + +.searchBoxSub { + float: right; + width: 150px; + height: 18px; + border: 1px solid #888; + background: #cf9; +} + +.searchBoxSub form input[type=text] { + float: left; + padding: 0; + margin: 1px 0 0 1px; + border: 0; + width: 132px; + background: none; +} + +.searchBoxSub form input[type=image] { + float: right; + margin: 1px 1px 0 0; + background: none; +} diff --git a/webroot/ccss/images/debug.png b/webroot/ccss/images/debug.png new file mode 100644 index 00000000..52ad3ff9 Binary files /dev/null and b/webroot/ccss/images/debug.png differ diff --git a/webroot/ccss/images/error.png b/webroot/ccss/images/error.png new file mode 100644 index 00000000..6b00ad67 Binary files /dev/null and b/webroot/ccss/images/error.png differ diff --git a/webroot/ccss/images/header.png b/webroot/ccss/images/header.png new file mode 100644 index 00000000..79bbf7c1 Binary files /dev/null and b/webroot/ccss/images/header.png differ diff --git a/webroot/ccss/images/header.svg b/webroot/ccss/images/header.svg new file mode 100644 index 00000000..fdff6961 --- /dev/null +++ b/webroot/ccss/images/header.svg @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webroot/ccss/images/icon.png b/webroot/ccss/images/icon.png new file mode 100644 index 00000000..70c2e7e9 Binary files /dev/null and b/webroot/ccss/images/icon.png differ diff --git a/webroot/ccss/images/info.png b/webroot/ccss/images/info.png new file mode 100644 index 00000000..761c4f17 Binary files /dev/null and b/webroot/ccss/images/info.png differ diff --git a/webroot/ccss/images/question.png b/webroot/ccss/images/question.png new file mode 100644 index 00000000..e1aacf60 Binary files /dev/null and b/webroot/ccss/images/question.png differ diff --git a/webroot/ccss/images/success.png b/webroot/ccss/images/success.png new file mode 100644 index 00000000..f9f272bd Binary files /dev/null and b/webroot/ccss/images/success.png differ diff --git a/webroot/ccss/images/vote-none.png b/webroot/ccss/images/vote-none.png new file mode 100644 index 00000000..51e29d1a Binary files /dev/null and b/webroot/ccss/images/vote-none.png differ diff --git a/webroot/ccss/images/vote-select.png b/webroot/ccss/images/vote-select.png new file mode 100644 index 00000000..6d5e0081 Binary files /dev/null and b/webroot/ccss/images/vote-select.png differ diff --git a/webroot/ccss/images/vote-set.png b/webroot/ccss/images/vote-set.png new file mode 100644 index 00000000..227b6e15 Binary files /dev/null and b/webroot/ccss/images/vote-set.png differ diff --git a/webroot/ccss/images/warning.png b/webroot/ccss/images/warning.png new file mode 100644 index 00000000..c0bed427 Binary files /dev/null and b/webroot/ccss/images/warning.png differ diff --git a/webroot/ccss/messages.css b/webroot/ccss/messages.css new file mode 100644 index 00000000..750131ab --- /dev/null +++ b/webroot/ccss/messages.css @@ -0,0 +1,40 @@ +debug, .error, .message, .warning, .success, .info, .question { + display:block; + color: black; + min-height: 23px; + margin: 10px 0 10px 0; + padding: 10px 30px 10px 50px; +} + +debug { + border: solid 2px #cc00ff; + background: #eeeeee url(images/debug.png) no-repeat 5px 5px; +} + +.error { + border: solid 2px #ff0000; + background: #ffb09f url(images/error.png) no-repeat 5px 5px; +} + +.warning { + border: solid 2px #ff7300; + background: #ffb260 url(images/warning.png) no-repeat 5px 5px; +} + +.success { + border: solid 2px #008e47; + background: #7aff8c url(images/success.png) no-repeat 5px 5px; +} + +.message, +.info{ + border: solid 2px #ffdc3f; + background: #ffffb8 url(images/info.png) no-repeat 5px 5px; +} + +.question { + border: solid 2px #0000ff; + background: #9797ff url(images/question.png) no-repeat 5px 5px; +} + + diff --git a/webroot/ccss/patches/patch_phtagr.css b/webroot/ccss/patches/patch_phtagr.css new file mode 100644 index 00000000..26e6f2d5 --- /dev/null +++ b/webroot/ccss/patches/patch_phtagr.css @@ -0,0 +1,47 @@ +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS framework + * (en) IE patch stylesheet + * (de) IE-Anpassungs-Stylesheet + * + * @creator YAML Builder V1.0 beta1 (http://builder.yaml.de) + * @file patch_phtagr.css + */ + +/* Layout independent adjustments | Layout-unabhängige Anpassungen */ +@import url(../../yaml/core/iehacks.css); + +/* Layout-dependent adjustments | Layout-abhängige Anpassungen */ +@media screen +{ + /** + * Bugfix for IE 3-Pixel-Jog Bug + * + * @bugfix + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + * html #col3 {height: 1%} + * html #col1 {margin-right: -3px} + * html #col3 {margin-left: 24%} + + /** + * min-width/max-width workaround for IE + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid no + */ + + * html #page_margins { + /* Fallback if JavaScript is disabled */ + width: auto; + + /* JS-Expression for min-/max-width simulation */ + width: expression((document.documentElement && document.documentElement.clientHeight) ? ( document.documentElement.clientWidth < 740) ? "740px" : (( document.documentElement.clientWidth > (90 * parseInt(document.documentElement.currentStyle.fontSize))) ? "90em" : "auto" ) : ( document.body.clientWidth < 740) ? "740px" : (( document.body.clientWidth > (90 * parseInt(document.documentElement.currentStyle.fontSize))) ? "90em" : "auto" ) ); + } +} + diff --git a/webroot/ccss/phtagr.css b/webroot/ccss/phtagr.css new file mode 100644 index 00000000..df29a513 --- /dev/null +++ b/webroot/ccss/phtagr.css @@ -0,0 +1,31 @@ +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS framework + * (en) central stylesheet + * (de) zentrales Stylesheet + * + * @creator YAML Builder V1.0 beta1 (http://builder.yaml.de) + * @file phtagr.css + */ + +/* import core styles | Basis-Stylesheets einbinden */ +@import url(../yaml/core/base.css); + +/* import screen layout | Screen-Layout einbinden */ +@import url(../yaml/navigation/nav_shinybuttons.css); +@import url(../yaml/navigation/nav_vlist.css); +@import url(screen/basemod.css); +@import url(screen/content.css); + +/* import print layout | Druck-Layout einbinden */ +@import url(../yaml/print/print_003_draft.css); + +@import url(phtagr.generic.css); +@import url(formular.css); +@import url(explorer.css); +@import url(breadcrumb.css); +@import url(comment.css); +@import url(messages.css); +@import url(table.css); +@import url(tab.css); +@import url(debug.css); diff --git a/webroot/ccss/phtagr.generic.css b/webroot/ccss/phtagr.generic.css new file mode 100644 index 00000000..79c85df4 --- /dev/null +++ b/webroot/ccss/phtagr.generic.css @@ -0,0 +1,62 @@ +#header { + background-color: blue; + background: #eeeeee url(images/header.png) repeat-x 0px 0px; +} + +#header h1 { + color: #fff; +} + +#topnav a { + color: #fff; +} + +.actionlist { + display: inline; +} + +.actionlist a img { + vertical-align: middle; +} + +ul.bare { + list-style-type: none; + padding: 0; +} + +/* Browser */ +ul#files { + margin: 0; + list-style-type: none; +} + +div.disabled { + display: inline; + float: none; + clear: none; + color: #C0C0C0; +} + +.auto_complete { + position: absolute; + width: 250px; + background-color: white; + border: 1px solid #888; + margin: 0px; + padding: 0px; + z-index: 2; +} +.auto_complete ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.auto_complete ul li { + margin: 0; + padding: 3px; + width: 100%; +} +.auto_complete ul li.selected { + background-color: #ffb; +} + diff --git a/webroot/ccss/screen/basemod.css b/webroot/ccss/screen/basemod.css new file mode 100644 index 00000000..de4d52f7 --- /dev/null +++ b/webroot/ccss/screen/basemod.css @@ -0,0 +1,154 @@ +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS framework + * (en) stylesheet for screen layout + * (de) Stylesheet für das Bildschirm-Layout + * + * @creator YAML Builder V1.0 beta1 (http://builder.yaml.de) + * @file basemod.css + */ + +@media all +{ + /*-------------------------------------------------------------------------*/ + + /* (en) Marginal areas & page background */ + /* (de) Randbereiche & Seitenhintergrund */ + body { background: #3b69ad none; padding: 10px 0; } + + /* Layout Alignment | Layout-Ausrichtung */ + #page_margins { margin: 0 auto; } + + /* Layout Properties | Layout-Eigenschaften */ + #page_margins { width: auto; min-width: 740px; max-width: 90em; background: #fff; } + #page { padding: 10px 15px 10px 10px; } + #header { padding: 25px 2em 1em 20px; color: #000; background: #fff; } + #topnav { color: #fff; background: transparent; } + /* (en) adjustment of main navigation */ + /* (de) Anpassung der Hauptnavigation */ + #nav ul { margin-left: 20px; } + #nav_main {background-color: #336} + #main { margin: 10px 0; background: #fff; } + #footer { padding: 15px; color:#666; background: #f9f9f9; border-top: 5px #efefef solid; } + + /* (en) navigation: horizontal adjustment | (de) horizontale Ausrichtung */ + #nav ul { margin-left: 20px; } + + /*-------------------------------------------------------------------------*/ + + /** + * (en) Formatting content container + * (de) Formatierung der Inhalts-Container + * + */ + + #col1 { float: left; width: 25%} + #col2 { display:none} + #col3 { width: auto; margin: 0 0 0 25%} + #col1_content { padding: 0 10px 0 20px } + #col3_content { padding: 0 20px 0 10px } + + /*-------------------------------------------------------------------------*/ + + #page_margins { + border: 0 none; + background-image: url(images/gfxborder/border_left.gif); + background-repeat:repeat-y; + background-position:left; + } + + #page { + border: 0 none; + margin: 0 0 0 5px; padding: 10px 15px 10px 10px; + background-image: url(images/gfxborder/border_right.gif); + background-repeat:repeat-y; + background-position:right; + } + + + #border-top { + overflow:hidden; + width: auto; + height: 20px; + font-size:0; + margin-bottom: -15px; + background-image: url(images/gfxborder/border_top.gif); + background-repeat:repeat-x; + background-position:top left; + } + + #border-bottom { + overflow:hidden; + width: auto; + height: 20px; + margin-top: -15px; + font-size:0; + background-image: url(images/gfxborder/border_bottom.gif); + background-repeat:repeat-x; + background-position:bottom left; + } + + #edge-tl { + float:left; + width: 20px; + height: 20px; + font-size:0; + background-image: url(images/gfxborder/corner_tl.gif); + background-position: top left; + } + + #edge-tr { + position:relative; /* IE Fix | z-index */ + float:right; + width: 20px; + height: 20px; + font-size:0; + background-image: url(images/gfxborder/corner_tr.gif); + background-position: top right; + } + + #edge-bl { + float:left; + width: 20px; + height: 20px; + background-image: url(images/gfxborder/corner_bl.gif); + background-position: bottom left; + } + + #edge-br { + position:relative; /* IE Fix | z-index */ + float:right; + width: 20px; + height: 20px; + background-image: url(images/gfxborder/corner_br.gif); + background-position: bottom right; + } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Modifying "shiny buttons" navigation + * (en) Anpassung der "Shiny Buttons" Navigation + */ + + #nav * { border: 0px none !important} + #nav_main { background: #efefef } + #nav_main ul { margin-left: 10px } + #nav_main ul li { line-height: 1.2em} + + #nav_main ul li a, + #nav_main ul li strong { color: #666; font-weight: normal; padding: 0.5em 0.8em 0.5em 0.8em;} + + #nav_main ul li a:focus, + #nav_main ul li a:hover, + #nav_main ul li a:active { background: #182E7A; color: #fff } + + #nav_main ul li#current { background: transparent } + + #nav_main ul li#current strong, + #nav_main ul li#current a, + #nav_main ul li#current a:focus, + #nav_main ul li#current a:hover, + #nav_main ul li#current a:active { color: #182E7A; font-weight: bold; background-color: white; } + +} diff --git a/webroot/ccss/screen/content.css b/webroot/ccss/screen/content.css new file mode 100644 index 00000000..9a5aa69d --- /dev/null +++ b/webroot/ccss/screen/content.css @@ -0,0 +1,182 @@ +@charset "UTF-8"; +/** +* "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework +* +* (en) Uniform design of standard content elements +* (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente +* +* @copyright Copyright 2005-2007, Dirk Jesse +* @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), +* YAML-C (http://www.yaml.de/en/license/license-conditions.html) +* @link http://www.yaml.de +* @package yaml +* @version 3.0.1 +* @revision $Revision: 92 $ +* @lastmodified $Date: 2007-07-15 10:26:40 +0200 (So, 15 Jul 2007) $ +* @appdef yaml +*/ + +@media all +{ + /** + * Fonts + * (en) font-family and font-size selection for headings and standard text elements + * (de) Zeichensatz und Schriftgrößen für Überschriften und übliche Text-Elemente + * + * @section content-fonts + */ + + /* (en) reset font size for all elements to standard (16 Pixel) */ + /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ + html * { font-size: 100.01% } + + /* (en) base layout gets standard font size 12px */ + /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ + body { + font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; + font-size: 75.00%; + color: #444; + } + + h1,h2,h3,h4,h5,h6 { + font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; + font-weight:bold; + color:#666; + margin: 0 0 0.25em 0; + } + + h1 { font-size: 200% } /* 24px */ + h2 { font-size: 200%; color:#182E7A} /* 24px */ + h3 { font-size: 150% } /* 18px */ + h4 { font-size: 133.33% } /* 16px */ + h5 { font-size: 116.67% } /* 14px */ + h6 { font-size: 116.67%; font-style:italic } /* 14px */ + + #header h1 { + font-size:2.5em; + letter-spacing:-2px; + line-height:65%; + color:#000; + } + + #header span { + color:#999; + } + + p { line-height: 1.5em; margin: 0 0 1em 0; } + + /* ### Lists | Listen #### */ + + ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em } + li { margin-left: 1.5em; line-height: 1.5em } + + dt { font-weight: bold } + dd { margin: 0 0 1em 2em } + + /* ### text formatting | Textauszeichnung ### */ + + cite, blockquote { font-style:italic } + blockquote { margin: 0 0 1em 1.5em } + + strong,b { font-weight: bold } + em,i { font-style:italic } + + pre, code { font-family: monospace; font-size: 1.1em; } + + acronym, abbr { + letter-spacing: .07em; + border-bottom: .1em dashed #c00; + cursor: help; + } + + /** + * Generic Content Classes + * (en) standard classes for positioning and highlighting + * (de) Standardklassen zur Positionierung und Hervorhebung + * + * @section content-generic-classes + */ + + .note {background: #dfd; padding: 1em; border-bottom: 1px #bdb dotted; border-bottom: 1px #dbb dotted;} + .important {background: #ffd; padding: 1em; border-bottom: 1px #ddb dotted; border-bottom: 1px #dbb dotted;} + .warning {background: #fdd; padding: 1em; border-bottom: 1px #dbb dotted; border-bottom: 1px #dbb dotted;} + + .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } + .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } + .center { text-align:center; margin: 0.5em auto } + + /** + * External Links + * + * (en) Formatting of hyperlinks + * (de) Gestaltung von Hyperlinks + * + */ + + a {color: #4D87C7; text-decoration:none;} + a:focus, + a:hover, + a:active {color:#182E7A; text-decoration:underline;} + + #topnav a { color: #999; font-weight: normal; background:transparent; text-decoration:none; } + #topnav a:focus, + #topnav a:hover, + #topnav a:active { text-decoration:underline; background-color: transparent;} + + #footer a { color: #999; background:transparent; font-weight: bold;} + #footer a:focus, + #footer a:hover, + #footer a:active {color: #4D87C7; background-color: transparent; text-decoration:underline;} + + /** + * (en) Emphasizing external Hyperlinks via CSS + * (de) Hervorhebung externer Hyperlinks mit CSS + * + * @section content-external-links + * @app-yaml-default disabled + */ + + /* + #main a[href^="http://www.my-domain.com"], + #main a[href^="https://www.my-domain.com"] + { + padding-left: 12px; + background-image: url('your_image.gif'); + background-repeat: no-repeat; + background-position: 0 0.45em; + } + */ + + /** + * Tables | Tabellen + * (en) Generic classes for table-width and design definition + * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen + * + * @section content-tables + */ + + table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } + table.full { width: 100%; } + table.fixed { table-layout:fixed } + + th,td { padding: 0.5em; } + thead th { background: #444; color: #fff } + tbody th { background: #ccc; color: #333 } + tbody th.sub { background: #ddd; color: #333 } + + /** + * Miscellaneous | Sonstiges + * + * @section content-misc + */ + + hr { + color: #fff; + background:transparent; + margin: 0 0 0.5em 0; + padding: 0 0 0.5em 0; + border:0; + border-bottom: 1px #eee solid; + } +} + diff --git a/webroot/ccss/screen/images/gfxborder/border_bottom.gif b/webroot/ccss/screen/images/gfxborder/border_bottom.gif new file mode 100644 index 00000000..b8961f8a Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/border_bottom.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/border_left.gif b/webroot/ccss/screen/images/gfxborder/border_left.gif new file mode 100644 index 00000000..ebbb3b07 Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/border_left.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/border_right.gif b/webroot/ccss/screen/images/gfxborder/border_right.gif new file mode 100644 index 00000000..6d8259ce Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/border_right.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/border_top.gif b/webroot/ccss/screen/images/gfxborder/border_top.gif new file mode 100644 index 00000000..fa997089 Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/border_top.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/corner_bl.gif b/webroot/ccss/screen/images/gfxborder/corner_bl.gif new file mode 100644 index 00000000..4f10b571 Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/corner_bl.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/corner_br.gif b/webroot/ccss/screen/images/gfxborder/corner_br.gif new file mode 100644 index 00000000..526f19fa Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/corner_br.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/corner_tl.gif b/webroot/ccss/screen/images/gfxborder/corner_tl.gif new file mode 100644 index 00000000..ec927f59 Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/corner_tl.gif differ diff --git a/webroot/ccss/screen/images/gfxborder/corner_tr.gif b/webroot/ccss/screen/images/gfxborder/corner_tr.gif new file mode 100644 index 00000000..6e359359 Binary files /dev/null and b/webroot/ccss/screen/images/gfxborder/corner_tr.gif differ diff --git a/webroot/ccss/tab.css b/webroot/ccss/tab.css new file mode 100644 index 00000000..2709198c --- /dev/null +++ b/webroot/ccss/tab.css @@ -0,0 +1,34 @@ +.tab { + padding: 0 0 2pt 4pt; + margin: 0; + border-bottom: 1px solid black; +} +.tab li { + margin: 0; + padding: 0pt 1pt; + display: inline; +} +.tab li a { + padding: 2pt; + cursor: pointer; + border: 1px solid black; + text-decoration: none; + background-color:#eee; + color: black; +} +.tab li.tabActive a { + padding: 3.5pt 3.5pt 2pt 3.5pt; + font-weight: bold; + background-color: #fff; + border-bottom: 1px solid white; +} +.tab li a:hover { + color: #fff; + background-color:#182e7a; + border: 1px solid black; +} +.tabContent { +} +.tabHidden { + display: none; +} diff --git a/webroot/ccss/table.css b/webroot/ccss/table.css new file mode 100644 index 00000000..7f108426 --- /dev/null +++ b/webroot/ccss/table.css @@ -0,0 +1,38 @@ +table.default { + border: 1px solid #888; +} + +table.default thead tr { + font-weight: bold; + background-color: #336; + color: #fff; +} + +table.default thead * a { + color: #fff; +} + +table.default tbody tr.even { + background-color: #eee; +} + +table.default tbody tr.selected { + background-color: #ccffcc; +} + +table.default tbody tr:hover, +table.default tbody tr:hover a { + color: #fff; + background-color: #f63; +} + +table.bare { + border: 0; + border-collapse: collapse; + border-spacing: 0; +} +table.bare tbody tr, +table.bare tbody tr td { + margin: 0; + padding: 0; +} diff --git a/webroot/img/watermark/aguagis_p_300.png b/webroot/img/watermark/aguagis_p_300.png new file mode 100644 index 00000000..26bfe3bd Binary files /dev/null and b/webroot/img/watermark/aguagis_p_300.png differ