diff --git a/admin/code/CMSMenu.php b/admin/code/CMSMenu.php
index e13e7eff1..becb5261d 100755
--- a/admin/code/CMSMenu.php
+++ b/admin/code/CMSMenu.php
@@ -208,10 +208,12 @@ class CMSMenu extends Object implements IteratorAggregate, i18nEntityProvider
// checks on
if($menuItem->controller) {
$controllerObj = singleton($menuItem->controller);
- // Necessary for canView() to have request data available,
- // e.g. to check permissions against LeftAndMain->currentPage()
- $controllerObj->setRequest(Controller::curr()->getRequest());
- if(!$controllerObj->canView($member)) continue;
+ if(Controller::has_curr()) {
+ // Necessary for canView() to have request data available,
+ // e.g. to check permissions against LeftAndMain->currentPage()
+ $controllerObj->setRequest(Controller::curr()->getRequest());
+ if(!$controllerObj->canView($member)) continue;
+ }
}
$viewableMenuItems[$code] = $menuItem;
diff --git a/admin/code/LeftAndMain.php b/admin/code/LeftAndMain.php
index 20cb96b4c..5b79b4205 100755
--- a/admin/code/LeftAndMain.php
+++ b/admin/code/LeftAndMain.php
@@ -69,6 +69,7 @@ class LeftAndMain extends Controller {
*/
static $allowed_actions = array(
'index',
+ 'save',
'savetreenode',
'getitem',
'getsubtree',
@@ -241,6 +242,9 @@ class LeftAndMain extends Controller {
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/jsizes/lib/jquery.sizes.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/jlayout/lib/jlayout.border.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/jlayout/lib/jquery.jlayout.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.html4.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.adapter.jquery.js');
Requirements::javascript(THIRDPARTY_DIR . '/behaviour/behaviour.js');
Requirements::javascript(THIRDPARTY_DIR . '/jquery-cookie/jquery.cookie.js');
@@ -254,8 +258,12 @@ class LeftAndMain extends Controller {
Requirements::css(THIRDPARTY_DIR . '/jstree/themes/apple/style.css');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Panel.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Tree.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Ping.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Content.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.EditForm.js');
+ Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Menu.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.AddForm.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Preview.js');
Requirements::javascript(SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.BatchActions.js');
@@ -296,6 +304,9 @@ class LeftAndMain extends Controller {
SAPPHIRE_ADMIN_DIR . '/thirdparty/jsizes/lib/jquery.sizes.js',
SAPPHIRE_ADMIN_DIR . '/thirdparty/jlayout/lib/jlayout.border.js',
SAPPHIRE_ADMIN_DIR . '/thirdparty/jlayout/lib/jquery.jlayout.js',
+ SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.js',
+ SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.adapter.jquery.js',
+ SAPPHIRE_ADMIN_DIR . '/thirdparty/history-js/scripts/uncompressed/history.html4.js',
THIRDPARTY_DIR . '/jstree/jquery.jstree.js',
SAPPHIRE_ADMIN_DIR . '/javascript/jquery-changetracker/lib/jquery.changetracker.js',
SAPPHIRE_DIR . '/javascript/TreeDropdownField.js',
@@ -310,8 +321,12 @@ class LeftAndMain extends Controller {
'leftandmain.js',
array(
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.js',
+ SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Panel.js',
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Tree.js',
+ SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Ping.js',
+ SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Content.js',
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.EditForm.js',
+ SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Menu.js',
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.AddForm.js',
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.Preview.js',
SAPPHIRE_ADMIN_DIR . '/javascript/LeftAndMain.BatchActions.js',
@@ -325,6 +340,20 @@ class LeftAndMain extends Controller {
// TableListField.ss or Form.ss.
SSViewer::set_theme(null);
}
+
+ function handleRequest($request) {
+ $title = $this->Title();
+
+ $response = parent::handleRequest($request);
+ $response->addHeader('X-Controller', $this->class);
+ $response->addHeader('X-Title', $title);
+
+ return $response;
+ }
+
+ function index($request) {
+ return ($this->isAjax()) ? $this->show($request) : $this->getViewer('index')->process($this);
+ }
/**
@@ -369,17 +398,20 @@ class LeftAndMain extends Controller {
if(!$title) $title = preg_replace('/Admin$/', '', $class);
return $title;
}
-
+
public function show($request) {
// TODO Necessary for TableListField URLs to work properly
if($request->param('ID')) $this->setCurrentPageID($request->param('ID'));
if($this->isAjax()) {
- SSViewer::setOption('rewriteHashlinks', false);
- $form = $this->getEditForm($request->param('ID'));
- $content = $form->formHtmlContent();
+ if($request->getVar('cms-view-form')) {
+ $form = $this->getEditForm();
+ $content = $form->forTemplate();
+ } else {
+ // Rendering is handled by template, which will call EditForm() eventually
+ $content = $this->renderWith($this->getTemplatesWithSuffix('_Content'));
+ }
} else {
- // Rendering is handled by template, which will call EditForm() eventually
$content = $this->renderWith($this->getViewer('show'));
}
@@ -534,7 +566,7 @@ class LeftAndMain extends Controller {
$titleEval = '
"
ID\" data-id=\"$child->ID\" class=\"" . $child->CMSTreeClasses($extraArg) . "\">" .
" " .
- "Link(),0,-1), "show", $child->ID) . "\" title=\"'
+ "Link("show"), $child->ID) . "\" title=\"'
. _t('LeftAndMain.PAGETYPE','Page type: ')
. '".$child->class."\" > " . ($child->TreeTitle) .
""
@@ -628,7 +660,7 @@ class LeftAndMain extends Controller {
// write process might've changed the record, so we reload before returning
$form = $this->getEditForm($record->ID);
- return $form->formHtmlContent();
+ return $form->forTemplate();
}
public function delete($data, $form) {
@@ -640,7 +672,7 @@ class LeftAndMain extends Controller {
$record->delete();
if($this->isAjax()) {
- return $this->EmptyForm()->formHtmlContent();
+ return $this->EmptyForm()->forTemplate();
} else {
$this->redirectBack();
}
@@ -946,7 +978,7 @@ class LeftAndMain extends Controller {
return $record->ID;
} else if($this->isAjax()) {
$form = $this->getEditForm($record->ID);
- return $form->formHtmlContent();
+ return $form->forTemplate();
} else {
return $this->redirect(Controller::join_links($this->Link('show'), $record->ID));
}
@@ -1070,12 +1102,17 @@ class LeftAndMain extends Controller {
}
/**
- * Get the staus of a certain page and version.
- *
- * This function is used for concurrent editing, and providing alerts
- * when multiple users are editing a single page. It echoes a json
- * encoded string to the UA.
+ * URL to a previewable record which is shown through this controller.
+ * The controller might not have any previewable content, in which case
+ * this method returns FALSE.
+ *
+ * @return String|boolean
*/
+ public function PreviewLink() {
+ $record = $this->getRecord($this->currentPageID());
+ $baseLink = ($record && $record instanceof Page) ? $record->Link('?stage=Stage') : Director::absoluteBaseURL();
+ return Controller::join_links($baseLink, '?cms-preview-disabled=1');
+ }
/**
* Return the version number of this application.
@@ -1142,6 +1179,13 @@ class LeftAndMain extends Controller {
function getApplicationName() {
return self::$application_name;
}
+
+ /**
+ * @return String
+ */
+ function Title() {
+ return sprintf('%s | %s', $this->getApplicationName(), $this->SectionTitle());
+ }
/**
* Return the title of the current section, as shown on the main menu
@@ -1162,6 +1206,21 @@ class LeftAndMain extends Controller {
return MCE_ROOT;
}
+ /**
+ * Same as {@link ViewableData->CSSClasses()}, but with a changed name
+ * to avoid problems when using {@link ViewableData->customise()}
+ * (which always returns "ArrayData" from the $original object).
+ *
+ * @return String
+ */
+ function BaseCSSClasses() {
+ return $this->CSSClasses();
+ }
+
+ function IsPreviewExpanded() {
+ return ($this->request->getVar('cms-preview-expanded'));
+ }
+
/**
* Register the given javascript file as required in the CMS.
* Filenames should be relative to the base, eg, SAPPHIRE_DIR . '/javascript/loader.js'
diff --git a/admin/code/ModelAdmin.php b/admin/code/ModelAdmin.php
index dae73578b..2ac480841 100755
--- a/admin/code/ModelAdmin.php
+++ b/admin/code/ModelAdmin.php
@@ -664,7 +664,7 @@ class ModelAdmin_CollectionController extends Controller {
$msg = _t('ModelAdmin.NORESULTS',"Your search didn't return any matching items");
}
return new SS_HTTPResponse(
- $resultsForm->formHtmlContent(),
+ $resultsForm->forTemplate(),
200,
$msg
);
@@ -794,7 +794,7 @@ class ModelAdmin_CollectionController extends Controller {
*/
function add($request) {
return new SS_HTTPResponse(
- $this->AddForm()->formHtmlContent(),
+ $this->AddForm()->forTemplate(),
200,
sprintf(
_t('ModelAdmin.ADDFORM', "Fill out this form to add a %s to the database."),
@@ -845,6 +845,7 @@ class ModelAdmin_CollectionController extends Controller {
$form = new Form($this, "AddForm", $fields, $actions, $validator);
$form->loadDataFrom($newRecord);
+ $form->addExtraClass('cms-edit-form');
return $form;
}
@@ -862,7 +863,7 @@ class ModelAdmin_CollectionController extends Controller {
$class = $this->parentController->getRecordControllerClass($this->getModelClass());
$recordController = new $class($this, $request, $model->ID);
return new SS_HTTPResponse(
- $recordController->EditForm()->formHtmlContent(),
+ $recordController->EditForm()->forTemplate(),
200,
sprintf(
_t('ModelAdmin.LOADEDFOREDITING', "Loaded '%s' for editing."),
@@ -912,7 +913,7 @@ class ModelAdmin_RecordController extends Controller {
function edit($request) {
if ($this->currentRecord) {
if($this->isAjax()) {
- $this->response->setBody($this->EditForm()->formHtmlContent());
+ $this->response->setBody($this->EditForm()->forTemplate());
$this->response->setStatusCode(
200,
sprintf(
@@ -924,10 +925,10 @@ class ModelAdmin_RecordController extends Controller {
} else {
// This is really quite ugly; to fix will require a change in the way that customise() works. :-(
return $this->parentController->parentController->customise(array(
- 'Right' => $this->parentController->parentController->customise(array(
+ 'Content' => $this->parentController->parentController->customise(array(
'EditForm' => $this->EditForm()
- ))->renderWith(array("{$this->class}_right",'LeftAndMain_right'))
- ))->renderWith(array('ModelAdmin','LeftAndMain'));
+ ))->renderWith(array("{$this->class}_Content",'ModelAdmin_Content', 'LeftAndMain_Content'))
+ ))->renderWith(array('ModelAdmin', 'LeftAndMain'));
}
} else {
return _t('ModelAdmin.ITEMNOTFOUND', "I can't find that item");
@@ -963,6 +964,7 @@ class ModelAdmin_RecordController extends Controller {
$form = new Form($this, "EditForm", $fields, $actions, $validator);
$form->loadDataFrom($this->currentRecord);
+ $form->addExtraClass('cms-edit-form');
return $form;
}
@@ -1017,7 +1019,7 @@ class ModelAdmin_RecordController extends Controller {
function view($request) {
if($this->currentRecord) {
$form = $this->ViewForm();
- return $form->formHtmlContent();
+ return $form->forTemplate();
} else {
return _t('ModelAdmin.ITEMNOTFOUND');
}
diff --git a/admin/css/layout.css b/admin/css/layout.css
index 4a4136147..773c6cc08 100755
--- a/admin/css/layout.css
+++ b/admin/css/layout.css
@@ -17,18 +17,21 @@ a img { border: none; }
@charset "UTF-8";
html, body { width: 100%; height: 100%; padding: 0; margin: 0; overflow: hidden; }
-.cms-preview { width: 1px; overflow: hidden; }
+.cms-preview { width: 1px; }
.cms-preview .cms-preview-toggle { width: 10px; }
.cms-preview iframe { width: 100%; height: 100%; }
.cms-container { height: 100%; }
.cms-menu { width: 250px; overflow: auto; }
+.cms-menu .cms-panel-content { width: 250px; }
+.cms-menu.collapsed { width: 40px; }
-.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form { display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; vertical-align: middle; *vertical-align: auto; }
-.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form { *display: inline; }
+.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form, .cms-edit-form { display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; vertical-align: middle; *vertical-align: auto; }
+.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form, .cms-edit-form { *display: inline; }
-.cms-content-tools { width: 230px; padding: 10px; overflow: auto; }
+.cms-content-tools { width: 230px; overflow: auto; }
+.cms-content-tools .cms-panel-header, .cms-content-tools .cms-panel-content { padding: 10px; }
.cms-content-form { overflow: auto; }
@@ -38,6 +41,8 @@ html, body { width: 100%; height: 100%; padding: 0; margin: 0; overflow: hidden;
.cms-content-actions { padding: 10px; }
+.cms-header { padding: 7px 0 7px 7px; }
+
.cms-logo { height: 30px; overflow: hidden; vertical-align: middle; }
.cms-login-status { height: 30px; overflow: hidden; vertical-align: middle; }
diff --git a/admin/css/screen.css b/admin/css/screen.css
index 119229857..0ad99dcc2 100755
--- a/admin/css/screen.css
+++ b/admin/css/screen.css
@@ -1,292 +1,638 @@
/** This file is the central collection of included modules, links to custom SCSS files, and any global SCSS variable definitions. DO NOT ADD stylesheet rules to this file directly! Note: By prefixing files with an underscore, they won't create individual CSS files. */
/** ----------------------------- Core Compass Libraries ------------------------------ */
-html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; }
+/* line 17, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
-body { line-height: 1; color: black; background: white; }
+/* line 20, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+body { line-height: 1; }
+/* line 22, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
ol, ul { list-style: none; }
-table { border-collapse: separate; border-spacing: 0; vertical-align: middle; }
+/* line 24, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+table { border-collapse: collapse; border-spacing: 0; }
+/* line 26, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; }
-q, blockquote { quotes: "" ""; }
-q:before, q:after, blockquote:before, blockquote:after { content: ""; }
+/* line 28, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+q, blockquote { quotes: none; }
+/* line 101, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+q:before, q:after, blockquote:before, blockquote:after { content: ""; content: none; }
+/* line 30, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
a img { border: none; }
-@charset "UTF-8";
+/* line 115, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
+
/** ----------------------------- Theme ------------------------------ */
-/** This file contains the default theme definitions for the admin interface. @package sapphire @subpackage admin */
+/** This file contains the default theme definitions for the admin interface. Please put mostly SCSS variable definitions in here, and leave the actual styling to _style.scss and auxilliary files. */
/** ----------------------------------------------- Colours ------------------------------------------------ */
/** ----------------------------------------------- Typography ------------------------------------------------ */
/** ----------------------------------------------- Application Logo (CMS Logo) ------------------------------------------------ */
/** ----------------------------- CMS Components ------------------------------ */
/** This file defines the jstree base styling (see http://jstree.com), as well as any customizations (see bottom of file). The styles are usually added through jstree.js on DOM load, but we need it earlier in order to correctly display the uninitialized tree. */
+/* line 10, ../scss/_tree.scss */
.jstree ul { display: block; margin: 0 0 0 0; padding: 0 0 0 0; list-style-type: none; }
+/* line 16, ../scss/_tree.scss */
.jstree li { display: block; margin: 0 0 0 0; padding: 0 0 0 0; list-style-type: none; display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; }
-.jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; }
+/* line 28, ../scss/_tree.scss */
+.jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; float: left; }
+/* line 37, ../scss/_tree.scss */
.jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; }
+/* line 46, ../scss/_tree.scss */
.jstree a:focus { outline: none; }
+/* line 50, ../scss/_tree.scss */
.jstree a > ins { height: 16px; width: 16px; }
+/* line 54, ../scss/_tree.scss */
.jstree a > .jstree-icon { margin-right: 3px; }
+/* line 62, ../scss/_tree.scss */
.jstree li.jstree-open > ul { display: block; }
+/* line 65, ../scss/_tree.scss */
.jstree li.jstree-closed > ul { display: none; }
+/* line 70, ../scss/_tree.scss */
.jstree li.disabled a { color: #aaaaaa; }
+/* line 77, ../scss/_tree.scss */
.jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; }
+/* line 81, ../scss/_tree.scss */
.jstree-rtl li { margin-left: 0; margin-right: 18px; }
+/* line 88, ../scss/_tree.scss */
.jstree-rtl > ul > li { margin-right: 0px; }
+/* line 92, ../scss/_tree.scss */
.jstree > ul > li { margin-left: 0px; }
+/* line 96, ../scss/_tree.scss */
#vakata-dragged { display: block; margin: 0 0 0 0; padding: 4px 4px 4px 24px; position: absolute; top: -2000px; line-height: 16px; z-index: 10000; }
+/* line 105, ../scss/_tree.scss */
#vakata-contextmenu { display: block; visibility: hidden; left: 0; top: -200px; position: absolute; margin: 0; padding: 0; min-width: 180px; background: #ebebeb; border: 1px solid silver; z-index: 10000; *width: 180px; }
+/* line 118, ../scss/_tree.scss */
#vakata-contextmenu ul { min-width: 180px; *width: 180px; }
+/* line 121, ../scss/_tree.scss */
#vakata-contextmenu ul, #vakata-contextmenu li { margin: 0; padding: 0; list-style-type: none; display: block; }
+/* line 127, ../scss/_tree.scss */
#vakata-contextmenu li { line-height: 20px; min-height: 20px; position: relative; padding: 0px; }
+/* line 133, ../scss/_tree.scss */
#vakata-contextmenu li a { padding: 1px 6px; line-height: 17px; display: block; text-decoration: none; margin: 1px 1px 0 1px; }
+/* line 140, ../scss/_tree.scss */
#vakata-contextmenu li ins { float: left; width: 16px; height: 16px; text-decoration: none; margin-right: 2px; }
+/* line 147, ../scss/_tree.scss */
#vakata-contextmenu li a:hover, #vakata-contextmenu li.vakata-hover > a { background: gray; color: white; }
+/* line 151, ../scss/_tree.scss */
#vakata-contextmenu li ul { display: none; position: absolute; top: -2px; left: 100%; background: #ebebeb; border: 1px solid gray; }
+/* line 159, ../scss/_tree.scss */
#vakata-contextmenu .right { right: 100%; left: auto; }
+/* line 163, ../scss/_tree.scss */
#vakata-contextmenu .bottom { bottom: -1px; top: auto; }
+/* line 167, ../scss/_tree.scss */
#vakata-contextmenu li.vakata-separator { min-height: 0; height: 1px; line-height: 1px; font-size: 1px; overflow: hidden; margin: 0 2px; background: silver; /* border-top:1px solid #fefefe; */ padding: 0; }
+/* line 177, ../scss/_tree.scss */
.jstree ul, .jstree li { display: block; margin: 0 0 0 0; padding: 0 0 0 0; list-style-type: none; }
+/* line 183, ../scss/_tree.scss */
.jstree li { display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; }
+/* line 191, ../scss/_tree.scss */
.jstree-rtl li { margin-left: 0; margin-right: 18px; }
+/* line 195, ../scss/_tree.scss */
.jstree > ul > li { margin-left: 0px; }
+/* line 198, ../scss/_tree.scss */
.jstree-rtl > ul > li { margin-right: 0px; }
+/* line 201, ../scss/_tree.scss */
.jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; }
+/* line 209, ../scss/_tree.scss */
.jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; }
+/* line 219, ../scss/_tree.scss */
.jstree a:focus { outline: none; }
+/* line 222, ../scss/_tree.scss */
.jstree a > ins { height: 16px; width: 16px; }
+/* line 226, ../scss/_tree.scss */
.jstree a > .jstree-icon { margin-right: 3px; }
+/* line 229, ../scss/_tree.scss */
.jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; }
+/* line 233, ../scss/_tree.scss */
li.jstree-open > ul { display: block; }
+/* line 236, ../scss/_tree.scss */
li.jstree-closed > ul { display: none; }
+/* line 239, ../scss/_tree.scss */
#vakata-dragged ins { display: block; text-decoration: none; width: 16px; height: 16px; margin: 0 0 0 0; padding: 0; position: absolute; top: 4px; left: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-border-radius: 4px; }
+/* line 253, ../scss/_tree.scss */
#vakata-dragged .jstree-ok { background: green; }
+/* line 256, ../scss/_tree.scss */
#vakata-dragged .jstree-invalid { background: red; }
+/* line 259, ../scss/_tree.scss */
#jstree-marker { padding: 0; margin: 0; font-size: 12px; overflow: hidden; height: 12px; width: 8px; position: absolute; top: -30px; z-index: 10001; background-repeat: no-repeat; display: none; background-color: transparent; text-shadow: 1px 1px 1px white; color: black; line-height: 10px; }
+/* line 276, ../scss/_tree.scss */
#jstree-marker-line { padding: 0; margin: 0; line-height: 0%; font-size: 1px; overflow: hidden; height: 1px; width: 100px; position: absolute; top: -30px; z-index: 10000; background-repeat: no-repeat; display: none; background-color: #456c43; cursor: pointer; border: 1px solid #eeeeee; border-left: 0; -moz-box-shadow: 0px 0px 2px #666; -webkit-box-shadow: 0px 0px 2px #666; box-shadow: 0px 0px 2px #666; -moz-border-radius: 1px; border-radius: 1px; -webkit-border-radius: 1px; }
+/* line 300, ../scss/_tree.scss */
.jstree .jstree-real-checkbox { display: none; }
+/* line 303, ../scss/_tree.scss */
.jstree-themeroller .ui-icon { overflow: visible; }
+/* line 306, ../scss/_tree.scss */
.jstree-themeroller a { padding: 0 2px; }
+/* line 309, ../scss/_tree.scss */
.jstree-themeroller .jstree-no-icon { display: none; }
+/* line 312, ../scss/_tree.scss */
.jstree .jstree-wholerow-real { position: relative; z-index: 1; }
+/* line 316, ../scss/_tree.scss */
.jstree .jstree-wholerow-real li { cursor: pointer; }
+/* line 319, ../scss/_tree.scss */
.jstree .jstree-wholerow-real a { border-left-color: transparent !important; border-right-color: transparent !important; }
+/* line 323, ../scss/_tree.scss */
.jstree .jstree-wholerow { position: relative; z-index: 0; height: 0; }
+/* line 328, ../scss/_tree.scss */
.jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { width: 100%; }
+/* line 331, ../scss/_tree.scss */
.jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li, .jstree .jstree-wholerow a { margin: 0 !important; padding: 0 !important; }
+/* line 335, ../scss/_tree.scss */
.jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { background: transparent !important; }
+/* line 338, ../scss/_tree.scss */
.jstree .jstree-wholerow ins, .jstree .jstree-wholerow span, .jstree .jstree-wholerow input { display: none !important; }
+/* line 341, ../scss/_tree.scss */
.jstree .jstree-wholerow a, .jstree .jstree-wholerow a:hover { text-indent: -9999px !important; width: 100%; padding: 0 !important; border-right-width: 0px !important; border-left-width: 0px !important; }
+/* line 348, ../scss/_tree.scss */
.jstree .jstree-wholerow-span { position: absolute; left: 0; margin: 0px; padding: 0; height: 18px; border-width: 0; padding: 0; z-index: 0; }
+/* line 361, ../scss/_tree.scss */
.cms .jstree-apple.jstree-focused { background: none; }
+/* line 364, ../scss/_tree.scss */
.cms .jstree-apple > ul { background: none; }
+/* line 369, ../scss/_tree.scss */
+.jstree li { line-height: 25px; }
+
+/* line 373, ../scss/_tree.scss */
+.cms-tree.jstree-apple { /* comment speech bubble - ccs3 only - source: http://nicolasgallagher.com/pure-css-speech-bubbles/demo/ */ }
+/* line 376, ../scss/_tree.scss */
+.cms-tree.jstree-apple li.Root strong { font-weight: bold; padding-left: 1px; }
+/* line 381, ../scss/_tree.scss */
+.cms-tree.jstree-apple li.Root > a .jstree-icon { background-position: -56px -36px; }
+/* line 386, ../scss/_tree.scss */
+.cms-tree.jstree-apple a, .cms-tree.jstree-apple a:link { color: #1556b2; padding: 3px 6px 3px 3px; border: none; display: inline-block; margin-right: 5px; }
+/* line 394, ../scss/_tree.scss */
+.cms-tree.jstree-apple a span.status:after, .cms-tree.jstree-apple a:link span.status:after { clear: both; text-transform: uppercase; display: inline-block; padding: 0px 3px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-right: 6px; margin-top: -1px; -webkit-border-radius: 2px 2px; -moz-border-radius: 2px / 2px; -o-border-radius: 2px / 2px; -ms-border-radius: 2px / 2px; -khtml-border-radius: 2px / 2px; border-radius: 2px / 2px; }
+/* line 408, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.modified:after { content: "draft"; color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
+/* line 415, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.new:after { content: "new"; color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
+/* line 422, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.private:after { content: "private"; color: #636363; border: 1px solid #E49393; background-color: #F2DADB; }
+/* line 429, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.workflow-approval:after { content: "awaiting approval"; color: #56660C; border: 1px solid #7C8816; background-color: #DAE79A; }
+/* line 437, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.comment-count { clear: both; position: relative; text-transform: uppercase; display: inline-block; overflow: visible; padding: 0px 3px; font-size: 0.75em; line-height: 1em; margin-left: 3px; margin-right: 6px; -webkit-border-radius: 2px 2px; -moz-border-radius: 2px / 2px; -o-border-radius: 2px / 2px; -ms-border-radius: 2px / 2px; -khtml-border-radius: 2px / 2px; border-radius: 2px / 2px; color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
+/* line 454, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.comment-count:before { content: ""; position: absolute; bottom: -4px; /* value = - border-top-width - border-bottom-width */ left: 3px; /* controls horizontal position */ border-width: 4px 4px 0; border-style: solid; border-color: #C9B800 transparent; /* reduce the damage in FF3.0 */ display: block; width: 0; }
+/* line 467, ../scss/_tree.scss */
+.cms-tree.jstree-apple span.comment-count:after { content: ""; position: absolute; bottom: -3px; /* value = - border-top-width - border-bottom-width */ left: 4px; /* value = (:before left) + (:before border-left) - (:after border-left) */ border-width: 3px 3px 0; border-style: solid; border-color: #FFF0BC transparent; /* reduce the damage in FF3.0 */ display: block; width: 0; }
+/* line 480, ../scss/_tree.scss */
+.cms-tree.jstree-apple .jstree-hovered { text-shadow: none; text-decoration: none; }
+/* line 485, ../scss/_tree.scss */
+.cms-tree.jstree-apple li { padding: 0px; clear: left; }
+/* line 490, ../scss/_tree.scss */
+.cms-tree.jstree-apple li, .cms-tree.jstree-apple ins { background-color: transparent; background-image: url(../images/sitetree_ss_default_icons.png); }
+/* line 495, ../scss/_tree.scss */
+.cms-tree.jstree-apple li.jstree-checked a, .cms-tree.jstree-apple li.jstree-checked a:link { background-color: #efe999; }
+
+/* line 500, ../scss/_tree.scss */
+.jstree-apple #record-0.jstree-open > ins { display: none; }
+
+/* line 504, ../scss/_tree.scss */
+a .jstree-pageicon { display: block; float: left; width: 16px; height: 16px; margin-right: 4px; background-color: transparent; background-image: url(../images/sitetree_ss_pageclass_icons_default.png); background-repeat: no-repeat; }
+
+/* line 515, ../scss/_tree.scss */
+li.class-HomePage a .jstree-pageicon { background-position: 0 -48px; }
+
+/* line 519, ../scss/_tree.scss */
+li.class-RedirectorPage a .jstree-pageicon { background-position: 0 -16px; }
+
+/* line 523, ../scss/_tree.scss */
+li.class-VirtualPage a .jstree-pageicon { background-position: 0 -32px; }
+
+/* line 527, ../scss/_tree.scss */
+li.class-ErrorPage a .jstree-pageicon { background-position: 0 -112px; }
+
/** Styles for the left hand side menu @package sapphire @subpackage admin */
/** ------------------------------------------------------- CMS Menu Bar -------------------------------------------------------- */
-@charset "UTF-8";
-.cms-menu { z-index: 10; background: #c6d7df; border-right: 1px solid #8c99a1; width: 250px; overflow: auto; -moz-box-shadow: rgba(107, 120, 123, 0.5) 2px 0 6px 0; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 2px 0 6px 0; -o-box-shadow: rgba(107, 120, 123, 0.5) 2px 0 6px 0; box-shadow: rgba(107, 120, 123, 0.5) 2px 0 6px 0; }
+/* line 12, ../scss/_menu.scss */
+.cms-menu { z-index: 10; background: #c6d7df; border-right: 1px solid #8c99a1; width: 250px; overflow: auto; -moz-box-shadow: 2px 0 6px rgba(107, 120, 123, 0.5); -webkit-box-shadow: 2px 0 6px rgba(107, 120, 123, 0.5); -o-box-shadow: 2px 0 6px rgba(107, 120, 123, 0.5); box-shadow: 2px 0 6px rgba(107, 120, 123, 0.5); }
+/* line 21, ../scss/_menu.scss */
.cms-menu a { text-decoration: none; }
+/* line 25, ../scss/_menu.scss */
+.cms-menu .cms-panel-content { width: 250px; }
+/* line 30, ../scss/_menu.scss */
+.cms-menu.collapsed { width: 40px; cursor: auto; }
+/* line 36, ../scss/_menu.scss */
+.cms-menu.collapsed .cms-menu-list li span.text { display: none; }
+/* line 39, ../scss/_menu.scss */
+.cms-menu.collapsed .cms-menu-list li ul { display: none; }
+/* line 44, ../scss/_menu.scss */
+.cms-menu.collapsed.cms-panel .cms-panel-content { display: block; }
-.cms-menu-list li a { display: block; height: 30px; line-height: 30px; vertical-align: middle; font-size: 13px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-shadow: #ced7dc 1px 1px 0; color: #1f1f1f; padding: 5px; background-color: #b0bec7; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #b0bec7), color-stop(100%, #98aab6)); background-image: -moz-linear-gradient(top, #b0bec7 0%, #98aab6 100%); background-image: linear-gradient(top, #b0bec7 0%, #98aab6 100%); border-top: 1px solid #ced7dc; border-bottom: 1px solid #748d9d; }
-.cms-menu-list li a:hover { text-decoration: none; background-color: #b6c3cb; border-bottom: 1px solid #8399a7; color: #2c2c2c; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #bfcad2), color-stop(100%, #b0bec7)); background-image: -moz-linear-gradient(top, #bfcad2 0%, #b0bec7 100%); background-image: linear-gradient(top, #bfcad2 0%, #b0bec7 100%); }
-.cms-menu-list li a:focus { border-top: 1px solid #a1b2bc; text-decoration: none; background-color: #a1b2bc; color: #393939; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #92a5b2), color-stop(100%, #a1b2bc)); background-image: -moz-linear-gradient(top, #92a5b2 0%, #a1b2bc 100%); background-image: linear-gradient(top, #92a5b2 0%, #a1b2bc 100%); }
-.cms-menu-list li a .icon { display: block; float: left; margin-right: 4px; background: url('../images/icons-32.png') no-repeat; width: 32px; height: 32px; overflow: hidden; background-position: 0px 0px; }
+/* line 54, ../scss/_menu.scss */
+.cms-menu-list li a { display: block; height: 30px; line-height: 30px; vertical-align: middle; font-size: 13px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-shadow: #bfcad2 1px 1px 0; color: #1f1f1f; padding: 5px 5px 5px 12px; background-color: #b0bec7; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(top, #b0bec7, #8ca1ae); background-image: -moz-linear-gradient(top, #b0bec7, #8ca1ae); background-image: -o-linear-gradient(top, #b0bec7, #8ca1ae); background-image: -ms-linear-gradient(top, #b0bec7, #8ca1ae); background-image: linear-gradient(top, #b0bec7, #8ca1ae); border-top: 1px solid #ced7dc; border-bottom: 1px solid #748d9d; }
+/* line 76, ../scss/_menu.scss */
+.cms-menu-list li a:hover { text-decoration: none; background-color: #b6c3cb; border-bottom: 1px solid #8399a7; color: #2c2c2c; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #bfcad2), color-stop(100%, #b0bec7)); background-image: -webkit-linear-gradient(top, #bfcad2, #b0bec7); background-image: -moz-linear-gradient(top, #bfcad2, #b0bec7); background-image: -o-linear-gradient(top, #bfcad2, #b0bec7); background-image: -ms-linear-gradient(top, #bfcad2, #b0bec7); background-image: linear-gradient(top, #bfcad2, #b0bec7); }
+/* line 87, ../scss/_menu.scss */
+.cms-menu-list li a:focus { border-top: 1px solid #a1b2bc; text-decoration: none; background-color: #a1b2bc; color: #393939; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #92a5b2), color-stop(100%, #a1b2bc)); background-image: -webkit-linear-gradient(top, #92a5b2, #a1b2bc); background-image: -moz-linear-gradient(top, #92a5b2, #a1b2bc); background-image: -o-linear-gradient(top, #92a5b2, #a1b2bc); background-image: -ms-linear-gradient(top, #92a5b2, #a1b2bc); background-image: linear-gradient(top, #92a5b2, #a1b2bc); }
+/* line 99, ../scss/_menu.scss */
+.cms-menu-list li a .icon { display: block; float: left; margin-right: 4px; }
+/* line 107, ../scss/_menu.scss */
.cms-menu-list li a .text { display: block; }
-.cms-menu-list li.current a { color: white; text-shadow: #1e5270 0 -1px 0; border-top: 1px solid #55a4d2; border-bottom: 1px solid #1e5270; background-color: #338dc1; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #338dc1), color-stop(100%, #287099)); background-image: -moz-linear-gradient(top, #338dc1 0%, #287099 100%); background-image: linear-gradient(top, #338dc1 0%, #287099 100%); }
+/* line 113, ../scss/_menu.scss */
+.cms-menu-list li.current a { color: white; text-shadow: #1e5270 0 -1px 0; border-top: 1px solid #55a4d2; border-bottom: 1px solid #1e5270; background-color: #338dc1; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #338dc1), color-stop(100%, #287099)); background-image: -webkit-linear-gradient(top, #338dc1, #287099); background-image: -moz-linear-gradient(top, #338dc1, #287099); background-image: -o-linear-gradient(top, #338dc1, #287099); background-image: -ms-linear-gradient(top, #338dc1, #287099); background-image: linear-gradient(top, #338dc1, #287099); }
+/* line 125, ../scss/_menu.scss */
.cms-menu-list li.current ul { border-top: 1px solid #1e5270; }
+/* line 129, ../scss/_menu.scss */
.cms-menu-list li.current li { background-color: #287099; }
-.cms-menu-list li.current li a { font-size: 11px; padding: 0 10px 0 36px; height: 32px; line-height: 32px; color: #e2f0f7; background: none; border-top: 1px solid #338dc1; border-bottom: 1px solid #1e5270; }
+/* line 132, ../scss/_menu.scss */
+.cms-menu-list li.current li a { font-size: 12px; padding: 0 10px 0 36px; height: 32px; line-height: 32px; color: #e2f0f7; background: none; border-top: 1px solid #338dc1; border-bottom: 1px solid #1e5270; }
+/* line 143, ../scss/_menu.scss */
.cms-menu-list li.current li a.current, .cms-menu-list li.current li a:hover { background: #2e7ead; border-top: 1px solid #2e7ead; color: white; }
+/* line 149, ../scss/_menu.scss */
.cms-menu-list li.current li a:focus { background: #236184; border-top: 1px solid #1e5270; color: white; }
+/* line 157, ../scss/_menu.scss */
.cms-menu-list li.current li.current a { font-weight: bold; color: white; }
+/* line 162, ../scss/_menu.scss */
.cms-menu-list li.current li.first a { border-top: none; }
+/* line 169, ../scss/_menu.scss */
+.cms-menu-list li#Menu-CMSMain a .icon { background-position: 0px 0px; }
+/* line 170, ../scss/_menu.scss */
+.cms-menu-list li#Menu-CMSMain.current a .icon, .cms-menu-list li#Menu-CMSMain a:hover .icon { background-position: -32px 0px; }
+/* line 171, ../scss/_menu.scss */
+.cms-menu-list li#Menu-AssetAdmin a .icon { background-position: 0px -96px; }
+/* line 172, ../scss/_menu.scss */
+.cms-menu-list li#Menu-AssetAdmin.current a .icon, .cms-menu-list li#Menu-AssetAdmin a:hover .icon { background-position: -32px -96px; }
+/* line 173, ../scss/_menu.scss */
+.cms-menu-list li#Menu-SecurityAdmin a .icon { background-position: 0px -128px; }
+/* line 174, ../scss/_menu.scss */
+.cms-menu-list li#Menu-SecurityAdmin.current a .icon, .cms-menu-list li#Menu-SecurityAdmin a:hover .icon { background-position: -32px -128px; }
+/* line 175, ../scss/_menu.scss */
+.cms-menu-list li#Menu-CMSPagesController a .icon { background-position: 0px -32px; }
+/* line 176, ../scss/_menu.scss */
+.cms-menu-list li#Menu-CMSPagesController.current a .icon, .cms-menu-list li#Menu-CMSPagesController a:hover .icon { background-position: -32px -32px; }
+/* line 179, ../scss/_menu.scss */
+.cms-menu-list.collapsed li .text { display: none; }
+/* line 183, ../scss/_menu.scss */
+.cms-menu-list.collapsed li > li { display: none; }
/** This file defines common styles for form elements used throughout the CMS interface. It is an addition to the base styles defined in sapphire/css/Form.css. */
-.field { display: block; padding: 10px 0; border-bottom: 1px solid rgba(201, 205, 206, 0.8); }
-.field label { float: left; width: 10em; }
-.field .middleColumn { margin-left: 10em; }
+/** ---------------------------------------------------- Basic form fields ---------------------------------------------------- */
+/* line 10, ../scss/_forms.scss */
+.field { display: block; padding: 10px 0; border-bottom: 1px solid rgba(201, 205, 206, 0.8); overflow: hidden; }
+/* line 16, ../scss/_forms.scss */
+.field label.left { float: left; width: 170px; padding: 8px 20px 8px 4px; line-height: 16px; }
+/* line 24, ../scss/_forms.scss */
+.field .middleColumn { margin-left: 15em; }
+/* line 27, ../scss/_forms.scss */
.field .middleColumn .field { display: inline; padding: 0; border: none; }
+/* line 33, ../scss/_forms.scss */
.field .middleColumn label { float: none; width: auto; }
+/* line 42, ../scss/_forms.scss */
form.nostyle .field { display: inline; padding: 0; border: 0; }
+/* line 48, ../scss/_forms.scss */
form.nostyle label { float: none; width: auto; }
+/* line 53, ../scss/_forms.scss */
form.nostyle .middleColumn { margin-left: 0; }
+/* line 59, ../scss/_forms.scss */
.field.nolabel .middleColumn { margin-left: 0; }
-input, textarea { -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #eceff1), color-stop(50%, #ffffff), color-stop(100%, #eceff1)); background-image: -moz-linear-gradient(top, #eceff1 0%, #ffffff 50%, #eceff1 100%); background-image: linear-gradient(top, #eceff1 0%, #ffffff 50%, #eceff1 100%); border: 1px solid rgba(201, 205, 206, 0.8); padding: 3px; }
+/* line 64, ../scss/_forms.scss */
+.field.text input, textarea { -moz-border-radius: 4px; -webkit-border-radius: 4px; -o-border-radius: 4px; -ms-border-radius: 4px; -khtml-border-radius: 4px; border-radius: 4px; background: #fff; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #efefef), color-stop(10%, #ffffff), color-stop(90%, #ffffff), color-stop(100%, #efefef)); background-image: -webkit-linear-gradient(top, #efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -moz-linear-gradient(top, #efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -o-linear-gradient(top, #efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -ms-linear-gradient(top, #efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: linear-gradient(top, #efefef, #ffffff 10%, #ffffff 90%, #efefef); border: 1px solid #b3b3b3; padding: 7px; }
-input.loading, input.ui-state-default.loading, .ui-widget-content input.ui-state-default.loading, .ui-widget-header input.ui-state-default.loading { padding-left: 16px; background: #eceff1 url(../../images/network-save.gif) no-repeat center left; }
-
-.ss-ui-button.ss-ui-action-constructive, .ui-widget-content .ss-ui-button.ss-ui-action-constructive, .ui-widget-header .ss-ui-button.ss-ui-action-constructive { background: none; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #77b53f), color-stop(100%, #456925)); background-image: -moz-linear-gradient(top, #77b53f 0%, #456925 100%); background-image: linear-gradient(top, #77b53f 0%, #456925 100%); color: white; }
-
-.ss-ui-button.ss-ui-action-destructive, .ui-widget-content .ss-ui-button.ss-ui-action-destructive, .ui-widget-header .ss-ui-button.ss-ui-action-destructive { color: red; }
-
-.ss-ui-button.ss-ui-action-minor, .ui-widget-content .ss-ui-button.ss-ui-action-minor .ui-widget-header .ss-ui-button.ss-ui-action-minor { background: none; padding: 0; border: 0; color: #1f1f1f; text-decoration: underline; }
+/** ---------------------------------------------------- Buttons ---------------------------------------------------- */
+/* line 84, ../scss/_forms.scss */
+.cms input.loading, .cms input.ui-state-default.loading, .cms .ui-widget-content input.ui-state-default.loading, .cms .ui-widget-header input.ui-state-default.loading { padding-left: 16px; background: #eceff1 url(../../images/network-save.gif) no-repeat center left; }
+/* line 91, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-constructive, .cms .ui-widget-content .ss-ui-button.ss-ui-action-constructive, .cms .ui-widget-header .ss-ui-button.ss-ui-action-constructive { padding-left: 23px; color: white; border-color: #118021; background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #84be3f), color-stop(100%, #128945)); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -webkit-linear-gradient(#84be3f, #128945); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -moz-linear-gradient(#84be3f, #128945); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -o-linear-gradient(#84be3f, #128945); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -ms-linear-gradient(#84be3f, #128945); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, linear-gradient(#84be3f, #128945); background-color: #84be3f; text-shadow: #475964 1px 1px 0; -moz-box-shadow: #748d9d 1px 1px 2px; -webkit-box-shadow: #748d9d 1px 1px 2px; -o-box-shadow: #748d9d 1px 1px 2px; box-shadow: #748d9d 1px 1px 2px; }
+/* line 106, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-constructive.ui-state-hover { background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #7fb63c), color-stop(100%, #107b3e)); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -webkit-linear-gradient(#7fb63c, #107b3e); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -moz-linear-gradient(#7fb63c, #107b3e); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -o-linear-gradient(#7fb63c, #107b3e); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, -ms-linear-gradient(#7fb63c, #107b3e); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px 6px, linear-gradient(#7fb63c, #107b3e); background-color: #128945; -moz-box-shadow: #92a5b2 1px 1px 1px; -webkit-box-shadow: #92a5b2 1px 1px 1px; -o-box-shadow: #92a5b2 1px 1px 1px; box-shadow: #92a5b2 1px 1px 1px; }
+/* line 117, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-constructive.cms-page-add-button { background-position: 5px -155px; }
+/* line 123, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-destructive, .cms .ui-widget-content .ss-ui-button.ss-ui-action-destructive, .cms .ui-widget-header .ss-ui-button.ss-ui-action-destructive { color: red; background-color: #f5f5f5; }
+/* line 128, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-destructive.delete { padding-left: 23px; color: red; border-color: #ababab; background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f5f5f5), color-stop(100%, #c3c3c3)); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -webkit-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -moz-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -o-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -ms-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, linear-gradient(#f5f5f5, #c3c3c3); text-shadow: none; -moz-box-shadow: #aab9c3 1px 1px 2px; -webkit-box-shadow: #aab9c3 1px 1px 2px; -o-box-shadow: #aab9c3 1px 1px 2px; box-shadow: #aab9c3 1px 1px 2px; }
+/* line 142, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-destructive.delete.ui-state-hover { background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f0f0f0), color-stop(100%, #bbbbbb)); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -webkit-linear-gradient(#f0f0f0, #bbbbbb); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -moz-linear-gradient(#f0f0f0, #bbbbbb); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -o-linear-gradient(#f0f0f0, #bbbbbb); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, -ms-linear-gradient(#f0f0f0, #bbbbbb); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 5px -26px, linear-gradient(#f0f0f0, #bbbbbb); background-color: #c3c3c3; -moz-box-shadow: #92a5b2 1px 1px 1px; -webkit-box-shadow: #92a5b2 1px 1px 1px; -o-box-shadow: #92a5b2 1px 1px 1px; box-shadow: #92a5b2 1px 1px 1px; }
+/* line 155, ../scss/_forms.scss */
+.cms .ss-ui-button.ss-ui-action-minor, .cms .ui-widget-content .ss-ui-button.ss-ui-action-minor .ui-widget-header .ss-ui-button.ss-ui-action-minor { background: none; padding: 0; border: 0; color: #1f1f1f; text-decoration: underline; }
+/* line 164, ../scss/_forms.scss */
.cms-edit-form { padding-bottom: 20px; }
-.cms-edit-form .text input, .cms-edit-form textarea { width: 300px; }
+/* line 167, ../scss/_forms.scss */
+.cms-edit-form .text input, .cms-edit-form textarea { width: 300px; font-family: Arial, sans-serif; font-size: 13px; }
+/* line 173, ../scss/_forms.scss */
.cms-edit-form .Actions { text-align: right; }
-.cms-content-tools .field label { float: none; width: auto; }
-.cms-content-tools .field .middleColumn { margin-left: 0; }
+/** ---------------------------------------------------- Specific field overrides ---------------------------------------------------- */
+/* line 183, ../scss/_forms.scss */
+.htmleditor label { display: block; float: none; padding-bottom: 10px; }
+/* line 189, ../scss/_forms.scss */
+.htmleditor .middleColumn { margin-left: 0px; clear: left; }
+/* line 196, ../scss/_forms.scss */
.field#ViewerGroups label, .field#EditorGroups label, .field#CreateTopLevelGroups label { display: none; }
+/* line 201, ../scss/_forms.scss */
+.action-hidden { display: none; }
+
/** This file defines CMS-specific customizations to the jQuery UI theme. Every rule in this file should be wrapped in the '.cms' selector (to make it more specific), and contain ONLY overwritten jQuery UI rules (with 'ui-' prefix). This file should be fairly short, as we're using our own custom jQuery UI theme already. TODO Add theme reference Use _style.scss to add more generic style information, and read the jQuery UI theming API: http://jqueryui.com/docs/Theming/API */
+/* line 14, ../scss/_uitheme.scss */
.cms .ui-tabs { padding: 0; }
+/* line 17, ../scss/_uitheme.scss */
.cms .ui-tabs .ui-widget-header { border: 0; background: none; }
-.cms .ui-widget-content, .cms .ui-tabs .ui-tabs-panel { color: #444444; font-size: 1em; border: 0; background: #eceff1; }
+/* line 22, ../scss/_uitheme.scss */
+.cms .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; }
+/* line 26, ../scss/_uitheme.scss */
+.cms .ui-tabs .ui-tabs-nav li { top: 0; }
+/* line 29, ../scss/_uitheme.scss */
+.cms .ui-tabs .ui-tabs-nav li a { padding: 0 15px; }
+/* line 34, ../scss/_uitheme.scss */
+.cms .ui-tabs .ui-tabs-nav.ui-state-active { border-color: gray; }
+/* line 41, ../scss/_uitheme.scss */
+.cms .ui-widget-content, .cms .ui-tabs .ui-tabs-panel { color: #444444; font-size: 13px; border: 0; }
+/* line 47, ../scss/_uitheme.scss */
.cms .ui-widget-header { background: #eceff1; border: 0; padding: 0; }
+/* line 53, ../scss/_uitheme.scss */
.cms .ss-ui-button { padding: 5px; text-decoration: none; }
+/* line 59, ../scss/_uitheme.scss */
+.cms .ui-state-hover { cursor: pointer; }
+/* line 65, ../scss/_uitheme.scss */
+.cms .ss-ui-button, .cms .ui-widget-content .ss-ui-button, .cms .ui-widget-header .ss-ui-button { padding: 5px 7px 5px 7px; color: #1f1f1f; background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f5f5f5), color-stop(100%, #c3c3c3)); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, -webkit-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, -moz-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, -o-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, -ms-linear-gradient(#f5f5f5, #c3c3c3); background: url('../images/../images/btn_icons_sprite.png?1310018832') no-repeat 999px 999px, linear-gradient(#f5f5f5, #c3c3c3); background-color: #f5f5f5; -moz-box-shadow: #748d9d 1px 1px 2px; -webkit-box-shadow: #748d9d 1px 1px 2px; -o-box-shadow: #748d9d 1px 1px 2px; box-shadow: #748d9d 1px 1px 2px; }
-/** This file defines the 'theme' of the CMS: Colors, fonts, backgrounds, and detailed alignments. Together with _layout.css it provides the presentational backbone to the CMS. Ideally a developer should be able to exchange this file with his own theme easily. Please don't put any dimension, display or float information on major structural components like '.cms-container' or '.cms-header' in here, use the _layout.scss file instead. Use SCSS variable definitions in screen.css to avoid repeating styles like background colours or padding dimensions. See _colours.scss to get started. To avoid this file getting too large and complicated, it is encouraged to create new SCSS files for larger components like the CMS menu or tree (see _tree.scss and _menu.scss). */
+/* line 80, ../scss/_uitheme.scss */
+.cms-content-form { overflow: auto; background: transparent url(../images/textures/bg_cms_main_content.png) repeat top left !important; }
+
+/** This file defines most styles of the CMS: Colors, fonts, backgrounds, alignments, dimensions. Use SCSS variable definitions in screen.css to avoid repeating styles like background colours or padding dimensions. See themes/_default.scss to get started. To avoid this file getting too large and complicated, it is encouraged to create new SCSS files for larger components like the CMS menu or tree (see _tree.scss and _menu.scss). */
/** ---------------------------------------------------- Core Styles ---------------------------------------------------- */
-html, body { width: 100%; height: 100%; overflow: hidden; font-size: 13px; font-family: Verdana, Arial, sans-serif; color: #444444; }
-html html, html body, html div, html span, html applet, html object, html iframe, html h1, html h2, html h3, html h4, html h5, html h6, html p, html blockquote, html pre, html a, html abbr, html acronym, html address, html big, html cite, html code, html del, html dfn, html em, html font, html img, html ins, html kbd, html q, html s, html samp, html small, html strike, html strong, html sub, html sup, html tt, html var, html dl, html dt, html dd, html ol, html ul, html li, html fieldset, html form, html label, html legend, html table, html caption, html tbody, html tfoot, html thead, html tr, html th, html td, body html, body body, body div, body span, body applet, body object, body iframe, body h1, body h2, body h3, body h4, body h5, body h6, body p, body blockquote, body pre, body a, body abbr, body acronym, body address, body big, body cite, body code, body del, body dfn, body em, body font, body img, body ins, body kbd, body q, body s, body samp, body small, body strike, body strong, body sub, body sup, body tt, body var, body dl, body dt, body dd, body ol, body ul, body li, body fieldset, body form, body label, body legend, body table, body caption, body tbody, body tfoot, body thead, body tr, body th, body td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; }
-html body, body body { line-height: 1; color: black; background: white; }
+/* line 15, ../scss/_style.scss */
+html, body { width: 100%; height: 100%; overflow: hidden; font-size: 13px; font-family: Arial, sans-serif; color: #444444; }
+/* line 17, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html html, html body, html div, html span, html applet, html object, html iframe, html h1, html h2, html h3, html h4, html h5, html h6, html p, html blockquote, html pre, html a, html abbr, html acronym, html address, html big, html cite, html code, html del, html dfn, html em, html img, html ins, html kbd, html q, html s, html samp, html small, html strike, html strong, html sub, html sup, html tt, html var, html b, html u, html i, html center, html dl, html dt, html dd, html ol, html ul, html li, html fieldset, html form, html label, html legend, html table, html caption, html tbody, html tfoot, html thead, html tr, html th, html td, html article, html aside, html canvas, html details, html embed, html figure, html figcaption, html footer, html header, html hgroup, html menu, html nav, html output, html ruby, html section, html summary, html time, html mark, html audio, html video, body html, body body, body div, body span, body applet, body object, body iframe, body h1, body h2, body h3, body h4, body h5, body h6, body p, body blockquote, body pre, body a, body abbr, body acronym, body address, body big, body cite, body code, body del, body dfn, body em, body img, body ins, body kbd, body q, body s, body samp, body small, body strike, body strong, body sub, body sup, body tt, body var, body b, body u, body i, body center, body dl, body dt, body dd, body ol, body ul, body li, body fieldset, body form, body label, body legend, body table, body caption, body tbody, body tfoot, body thead, body tr, body th, body td, body article, body aside, body canvas, body details, body embed, body figure, body figcaption, body footer, body header, body hgroup, body menu, body nav, body output, body ruby, body section, body summary, body time, body mark, body audio, body video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
+/* line 20, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html body, body body { line-height: 1; }
+/* line 22, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
html ol, html ul, body ol, body ul { list-style: none; }
-html table, body table { border-collapse: separate; border-spacing: 0; vertical-align: middle; }
+/* line 24, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html table, body table { border-collapse: collapse; border-spacing: 0; }
+/* line 26, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
html caption, html th, html td, body caption, body th, body td { text-align: left; font-weight: normal; vertical-align: middle; }
-html q, html blockquote, body q, body blockquote { quotes: "" ""; }
-html q:before, html q:after, html blockquote:before, html blockquote:after, body q:before, body q:after, body blockquote:before, body blockquote:after { content: ""; }
+/* line 28, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html q, html blockquote, body q, body blockquote { quotes: none; }
+/* line 101, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html q:before, html q:after, html blockquote:before, html blockquote:after, body q:before, body q:after, body blockquote:before, body blockquote:after { content: ""; content: none; }
+/* line 30, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
html a img, body a img { border: none; }
+/* line 115, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/reset/_utilities.scss */
+html article, html aside, html details, html figcaption, html figure, html footer, html header, html hgroup, html menu, html nav, html section, body article, body aside, body details, body figcaption, body figure, body footer, body header, body hgroup, body menu, body nav, body section { display: block; }
+/* line 27, ../scss/_style.scss */
a { color: #3ebae0; text-decoration: none; }
+/* line 32, ../scss/_style.scss */
a:hover, a:focus { text-decoration: underline; }
-body .ui-widget { font-size: 13px; }
+/* line 36, ../scss/_style.scss */
+body .ui-widget { font-family: Arial, sans-serif; font-size: 13px; }
+/* line 41, ../scss/_style.scss */
.cms-container { height: 100%; }
-.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form { display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; vertical-align: middle; *vertical-align: auto; }
-.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-form { *display: inline; }
+/* line 51, ../scss/_style.scss */
+.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-fields, .cms-edit-form { display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; vertical-align: middle; *vertical-align: auto; }
+/* line 7, ../../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.11.4/frameworks/compass/stylesheets/compass/css3/_inline-block.scss */
+.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-fields, .cms-edit-form { *display: inline; }
+/* line 56, ../scss/_style.scss */
strong { font-weight: bold; }
-.cms-content-header { background-color: #b1bec6; padding: 8px; height: 32px; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #b1bec6), color-stop(100%, #94a5b0)); background-image: -moz-linear-gradient(top, #b1bec6 0%, #94a5b0 100%); background-image: linear-gradient(top, #b1bec6 0%, #94a5b0 100%); }
-.cms-content-header h2 { float: left; padding: 8px; font-size: 14px; font-weight: bold; width: 230px; }
+/** -------------------------------------------- Misc Panels -------------------------------------------- */
+/* line 64, ../scss/_style.scss */
+.cms-content-header { background-color: #b0bec7; padding: 8px 8px 6px 8px; height: 32px; border-bottom: 2px solid #8399a7; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dde3e7), color-stop(100%, #92a5b2)); background-image: -webkit-linear-gradient(top, #dde3e7, #92a5b2); background-image: -moz-linear-gradient(top, #dde3e7, #92a5b2); background-image: -o-linear-gradient(top, #dde3e7, #92a5b2); background-image: -ms-linear-gradient(top, #dde3e7, #92a5b2); background-image: linear-gradient(top, #dde3e7, #92a5b2); border-bottom: 1px solid #5c7382; padding: 10px; height: 32px; }
+/* line 80, ../scss/_style.scss */
+.cms-content-header h2 { float: left; padding: 12px 0 0 8px; font-size: 13px; font-weight: bold; text-shadow: #ced7dc 1px 1px 0; width: 230px; }
+/* line 89, ../scss/_style.scss */
.cms-content-header > div { width: 9999em; overflow: hidden; }
+/* line 94, ../scss/_style.scss */
.cms-content-header .cms-content-header-tabs { float: left; }
-.ui-tabs .cms-content-header .ui-tabs-nav li { height: 40px; }
-.ui-tabs .cms-content-header .ui-tabs-nav li a { font-weight: bold; font-size: 11px; padding-top: 8px; }
-.ui-tabs .cms-content-header .ui-state-default, .ui-tabs .cms-content-header .ui-widget-content .ui-state-default, .ui-tabs .cms-content-header .ui-widget-header .ui-state-default { background-color: #feffff; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #feffff), color-stop(100%, #d6d9da)); background-image: -moz-linear-gradient(top, #feffff 0%, #d6d9da 100%); background-image: linear-gradient(top, #feffff 0%, #d6d9da 100%); }
+/* line 101, ../scss/_style.scss */
+.ui-tabs .cms-content-header .ui-tabs-nav li a { font-weight: bold; font-size: 13px; padding: 11px 15px 9px; border-bottom: 2px solid #b3b3b3; }
+/* line 111, ../scss/_style.scss */
+.ui-tabs .cms-content-header .ui-state-default, .ui-tabs .cms-content-header .ui-widget-content .ui-state-default, .ui-tabs .cms-content-header .ui-widget-header .ui-state-default { background-color: #d9d9d9; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d9d9d9), color-stop(100%, #c0c0c0)); background-image: -webkit-linear-gradient(top, #d9d9d9, #c0c0c0); background-image: -moz-linear-gradient(top, #d9d9d9, #c0c0c0); background-image: -o-linear-gradient(top, #d9d9d9, #c0c0c0); background-image: -ms-linear-gradient(top, #d9d9d9, #c0c0c0); background-image: linear-gradient(top, #d9d9d9, #c0c0c0); border-color: #a6a6a6; margin: 0 3px 0 0; text-shadow: white 0 1px 0; }
+/* line 125, ../scss/_style.scss */
.ui-tabs .cms-content-header .ui-state-active, .ui-tabs .cms-content-header .ui-widget-content .ui-state-active, .ui-tabs .cms-content-header .ui-widget-header .ui-state-active { background: #eceff1; }
+/* line 128, ../scss/_style.scss */
+.ui-tabs .cms-content-header .ui-state-active a, .ui-tabs .cms-content-header .ui-widget-content .ui-state-active a, .ui-tabs .cms-content-header .ui-widget-header .ui-state-active a { border-bottom: 2px solid #eceff1; }
-.cms-content-tools { background-color: #dde3e6; padding: 10px; width: 230px; overflow: auto; }
+/* line 134, ../scss/_style.scss */
+.cms-content-tools { background-color: #dde3e7; padding: 8px; width: 230px; overflow: auto; }
+/* line 141, ../scss/_style.scss */
+.cms-content-tools .cms-panel-header, .cms-content-tools .cms-panel-content { padding: 10px; }
+
+/* line 147, ../scss/_style.scss */
+.cms-content.loading { background: url(../images/spinner.gif) no-repeat 50% 50%; }
/** ------------------------------------------------------- Top Left Header and logo area -------------------------------------------------------- */
-.cms-header { background-color: #00111d; position: relative; padding: 16px 8px 8px; line-height: 24px; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #00111d), color-stop(50%, #003050), color-stop(100%, #00111d)); background-image: -moz-linear-gradient(top, #00111d 0%, #003050 50%, #00111d 100%); background-image: linear-gradient(top, #00111d 0%, #003050 50%, #00111d 100%); }
+/* line 156, ../scss/_style.scss */
+.cms-header { background-color: #00111d; position: relative; padding: 16px 8px 8px; line-height: 24px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #00111d), color-stop(50%, #003050), color-stop(100%, #00111d)); background-image: -webkit-linear-gradient(top, #00111d, #003050, #00111d); background-image: -moz-linear-gradient(top, #00111d, #003050, #00111d); background-image: -o-linear-gradient(top, #00111d, #003050, #00111d); background-image: -ms-linear-gradient(top, #00111d, #003050, #00111d); background-image: linear-gradient(top, #00111d, #003050, #00111d); }
+/* line 168, ../scss/_style.scss */
.cms-header span { color: white; white-space: no-wrap; text-overflow: ellipsis; display: block; }
+/* line 174, ../scss/_style.scss */
.cms-header span a { color: #3ebae0; display: inline; }
+/* line 181, ../scss/_style.scss */
.cms-logo { border-bottom: 1px solid #03090c; height: 31px; overflow: hidden; padding: 0 4px; vertical-align: middle; }
+/* line 188, ../scss/_style.scss */
.cms-logo .version { display: none; }
-.cms-logo a { display: inline-block; height: 25px; width: 25px; float: left; margin-right: 10px; background: url('../images/logo_small.png?1305762003') no-repeat; text-indent: -9999em; }
+/* line 192, ../scss/_style.scss */
+.cms-logo a { display: inline-block; height: 25px; width: 25px; float: left; margin-right: 10px; background: url('../images/logo_small.png?1309939638') no-repeat; text-indent: -9999em; }
-.cms-login-status { border-top: 1px solid #19435c; height: 23px; padding: 8px 0 0 14px; overflow: hidden; line-height: 16px; font-size: 11px; }
-.cms-login-status .logout-link { display: inline-block; height: 16px; width: 16px; float: left; margin-right: 10px; background: url(../images/logout.png) no-repeat; text-indent: -9999em; }
+/* line 203, ../scss/_style.scss */
+.cms-login-status { border-top: 1px solid #19435c; height: 23px; padding: 8px 4px 0 4px; overflow: hidden; line-height: 16px; font-size: 11px; }
+/* line 211, ../scss/_style.scss */
+.cms-login-status .logout-link { display: inline-block; height: 16px; width: 16px; float: left; margin: 0 15px 0 5px; background: url(../images/logout.png) no-repeat; text-indent: -9999em; }
+/** ----------------------------------------------- Loading Screen ------------------------------------------------ */
+/* line 226, ../scss/_style.scss */
.ss-loading-screen, .ss-loading-screen .loading-logo { width: 100%; height: 100%; overflow: hidden; position: absolute; background: #fff; background: -moz-radial-gradient(50% 50% 180deg, circle cover, white, #efefef, #c7c7c7 100%); background: -webkit-gradient(radial, 50% 50%, 350, 50% 50%, 0, from(#e3e3e3), to(white)); z-index: 100000; margin: 0; padding: 0; }
+/* line 241, ../scss/_style.scss */
.ss-loading-screen .loading-logo { background-url: url(../images/logo.gif); background-repeat: no-repeat; background-color: transparent; background-position: 50% 50%; }
+/* line 247, ../scss/_style.scss */
.ss-loading-screen p { width: 100%; text-align: center; position: absolute; bottom: 80px; }
+/* line 253, ../scss/_style.scss */
.ss-loading-screen p span.notice { display: inline-block; font-size: 14px; padding: 10px 20px; color: #dc7f00; border: none; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; }
+/* line 263, ../scss/_style.scss */
.ss-loading-screen .loading-animation { display: none; position: absolute; left: 49%; top: 75%; }
-.cms-content-actions { padding: 8px; }
+/** -------------------------------------------- Actions -------------------------------------------- */
+/* line 275, ../scss/_style.scss */
+.cms-content-actions { border-top: 1px solid #8399a7; padding: 8px; background: transparent url(../images/textures/bg_cms_main_content.png) repeat top left; }
-/** Messages (see sapphire/css/Form.css) */
+/** -------------------------------------------- Messages -------------------------------------------- */
+/* line 285, ../scss/_style.scss */
.message { margin: 1em 0; padding: 0.5em; font-weight: bold; border: 1px black solid; }
+/* line 291, ../scss/_style.scss */
.message.notice { background-color: #ffbe66; border-color: #ff9300; }
+/* line 296, ../scss/_style.scss */
.message.warning { background-color: #ffbe66; border-color: #ff9300; }
+/* line 300, ../scss/_style.scss */
.message.error { background-color: #ffbe66; border-color: #ff9300; }
+/** -------------------------------------------- ModelAdmin -------------------------------------------- */
+/* line 311, ../scss/_style.scss */
.ModelAdmin .cms-content-tools { width: 300px; }
+/* line 316, ../scss/_style.scss */
.ModelAdmin .ResultAssemblyBlock { display: none; }
+/** -------------------------------------------- "Add page" dialog -------------------------------------------- */
+/* line 326, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li { clear: left; height: 40px; border-bottom: 1px solid rgba(107, 120, 123, 0.5); }
+/* line 331, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li:hover, .cms-page-add-form-dialog #PageType li.selected { background-color: #ffff99; }
+/* line 335, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li input, .cms-page-add-form-dialog #PageType li label, .cms-page-add-form-dialog #PageType li .icon, .cms-page-add-form-dialog #PageType li .title { float: left; }
+/* line 339, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li .icon { width: 20px; }
+/* line 343, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li .title { width: 100px; font-weight: bold; }
+/* line 348, ../scss/_style.scss */
.cms-page-add-form-dialog #PageType li .description { font-style: italic; }
-.cms-content-toolbar > * { display: inline-block; }
+/** -------------------------------------------- Content toolbar -------------------------------------------- */
+/* line 358, ../scss/_style.scss */
+.cms-content-toolbar { overflow: hidden; *zoom: 1; display: block; padding: 10px 0; margin: 0 0 15px 0; border-bottom-width: 2px; border-bottom: 2px groove rgba(255, 255, 255, 0.8); -webkit-border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; }
+/* line 369, ../scss/_style.scss */
+.cms-content-toolbar > * { float: left; }
+/* line 373, ../scss/_style.scss */
.cms-content-toolbar .cms-tree-view-modes * { display: inline-block; }
+/* line 377, ../scss/_style.scss */
.cms-content-toolbar .cms-content-batchactions form > * { display: inline-block; }
-.cms-preview { width: 1px; overflow: hidden; }
+/* line 384, ../scss/_style.scss */
+.cms-content-tools .field label { float: none; width: auto; }
+/* line 389, ../scss/_style.scss */
+.cms-content-tools .field .middleColumn { margin-left: 0; }
+
+/* line 395, ../scss/_style.scss */
+.cms-content-batchactions, .cms-content-constructive-actions { float: right; }
+
+/* line 399, ../scss/_style.scss */
+.cms-content-batchactions { float: right; position: relative; display: block; margin-right: 8px; }
+
+/* line 406, ../scss/_style.scss */
+form.cms-batch-actions { float: left; }
+
+/* line 410, ../scss/_style.scss */
+.cms-content-constructive-actions a { display: block; float: right; }
+
+/** -------------------------------------------- Preview header (remove before release) -------------------------------------------- */
+/* line 419, ../scss/_style.scss */
+.cms-preview { width: 1px; }
+/* line 422, ../scss/_style.scss */
.cms-preview .cms-preview-toggle { width: 10px; }
+/* line 426, ../scss/_style.scss */
.cms-preview iframe { width: 100%; height: 100%; }
+/* line 432, ../scss/_style.scss */
.cms-preview-header { background-color: #FFBE66; padding: 10px; font-weight: bold; }
+/** -------------------------------------------- Member Profile -------------------------------------------- */
+/* line 444, ../scss/_style.scss */
form.member-profile-form #CsvFile .middleColumn { background: none !important; }
+/* line 448, ../scss/_style.scss */
form.member-profile-form .advanced h4 { margin-bottom: .5em; }
+/* line 452, ../scss/_style.scss */
form.member-profile-form .Actions { text-align: left; border: 0; }
+/* line 457, ../scss/_style.scss */
form.member-profile-form input.customFormat { border: 1px solid #ccc !important; padding: 3px; margin-left: 2px; }
+/* line 462, ../scss/_style.scss */
form.member-profile-form .formattingHelpToggle { font-size: 11px; padding: 3px; }
+/* line 466, ../scss/_style.scss */
form.member-profile-form .formattingHelpText { margin: 5px auto; color: #333; padding: 5px 10px; width: 90%; background: #fff; border: 1px solid #ccc; }
+/* line 474, ../scss/_style.scss */
form.member-profile-form .formattingHelpText ul { padding: 0; }
+/* line 477, ../scss/_style.scss */
form.member-profile-form .formattingHelpText li { font-size: 11px; color: #333; margin-bottom: 2px; }
-.cms-content-form { overflow: auto; }
+/* line 485, ../scss/_style.scss */
+.cms-content-fields { overflow: auto; background: transparent url(../images/textures/bg_cms_main_content.png) repeat top left; }
+/** -------------------------------------------- Panels -------------------------------------------- */
+/* line 494, ../scss/_style.scss */
+.cms-panel { overflow: hidden; }
+/* line 499, ../scss/_style.scss */
+.cms-panel .toggle-expand, .cms-panel .toggle-collapse { display: block; position: absolute; bottom: 0; text-align: right; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #92a5b2)); background-image: -webkit-linear-gradient(top, #b0bec7, #92a5b2); background-image: -moz-linear-gradient(top, #b0bec7, #92a5b2); background-image: -o-linear-gradient(top, #b0bec7, #92a5b2); background-image: -ms-linear-gradient(top, #b0bec7, #92a5b2); background-image: linear-gradient(top, #b0bec7, #92a5b2); text-decoration: none; }
+/* line 510, ../scss/_style.scss */
+.cms-panel .toggle-expand span, .cms-panel .toggle-collapse span { display: inline-block; margin: 5px; color: #1f1f1f; font-size: 16px; }
+/* line 518, ../scss/_style.scss */
+.cms-panel .toggle-collapse { width: 100%; }
+/* line 522, ../scss/_style.scss */
+.cms-panel .toggle-expand { width: 40px; }
+/* line 528, ../scss/_style.scss */
+.cms-panel.collapsed .cms-panel-content { display: none; }
+/* line 532, ../scss/_style.scss */
+.cms-panel.collapsed .cms-panel-header { -moz-transform: rotate(-90deg); -webkit-transform: rotate(-90deg); -o-transform: rotate(-90deg); -ms-transform: rotate(-90deg); transform: rotate(-90deg); position: relative; top: 100px; }
+
+/* line 542, ../scss/_style.scss */
+.cms-content .cms-panel.collapsed { cursor: pointer; }
+
+/** -------------------------------------------- Other -------------------------------------------- */
+/* line 550, ../scss/_style.scss */
.cms-preview { background-color: #b0bec7; }
+/* line 553, ../scss/_style.scss */
.cms-preview .cms-preview-toggle { cursor: pointer; }
-.cms-preview .cms-preview-toggle a { color: white; font-weight: bold; text-decoration: none; }
+/* line 556, ../scss/_style.scss */
+.cms-preview .cms-preview-toggle a { display: block; width: 15px; height: 15px; position: relative; left: 10px; top: 48%; background-color: #b0bec7; color: white; font-weight: bold; text-decoration: none; z-index: 2000; }
+/* line 573, ../scss/_style.scss */
+.cms-preview.is-collapsed .cms-preview-toggle a { left: -15px; }
+/* line 581, ../scss/_style.scss */
.cms-switch-view a { padding-right: 1em; }
diff --git a/admin/images/btn_arrow_down_grey.png b/admin/images/btn_arrow_down_grey.png
new file mode 100644
index 000000000..1d769955a
Binary files /dev/null and b/admin/images/btn_arrow_down_grey.png differ
diff --git a/admin/images/btn_icons_sprite.png b/admin/images/btn_icons_sprite.png
new file mode 100644
index 000000000..2f0196a1e
Binary files /dev/null and b/admin/images/btn_icons_sprite.png differ
diff --git a/admin/images/mainmenu/current-indicator.png b/admin/images/mainmenu/current-indicator.png
new file mode 100644
index 000000000..22b7b3008
Binary files /dev/null and b/admin/images/mainmenu/current-indicator.png differ
diff --git a/admin/images/sitetree_ss_default_icons.png b/admin/images/sitetree_ss_default_icons.png
new file mode 100644
index 000000000..04c3cf88c
Binary files /dev/null and b/admin/images/sitetree_ss_default_icons.png differ
diff --git a/admin/images/sitetree_ss_pageclass_icons_default.png b/admin/images/sitetree_ss_pageclass_icons_default.png
new file mode 100644
index 000000000..1d65c24d8
Binary files /dev/null and b/admin/images/sitetree_ss_pageclass_icons_default.png differ
diff --git a/admin/images/textures/bg_cms_main_content.png b/admin/images/textures/bg_cms_main_content.png
new file mode 100644
index 000000000..ce265dba1
Binary files /dev/null and b/admin/images/textures/bg_cms_main_content.png differ
diff --git a/admin/images/textures/bg_fieldset_elements_border b/admin/images/textures/bg_fieldset_elements_border
new file mode 100644
index 000000000..dae63ba4d
Binary files /dev/null and b/admin/images/textures/bg_fieldset_elements_border differ
diff --git a/admin/images/textures/bg_fieldset_elements_border.png b/admin/images/textures/bg_fieldset_elements_border.png
new file mode 100644
index 000000000..c22e2273c
Binary files /dev/null and b/admin/images/textures/bg_fieldset_elements_border.png differ
diff --git a/admin/javascript/LeftAndMain.AddForm.js b/admin/javascript/LeftAndMain.AddForm.js
index 896f0e47b..8f9176cf8 100755
--- a/admin/javascript/LeftAndMain.AddForm.js
+++ b/admin/javascript/LeftAndMain.AddForm.js
@@ -91,8 +91,9 @@
data.push({name:button.attr('name'),value:button.val()});
// TODO Should be set by hiddenfield already
- jQuery('.cms-edit-form').entwine('ss').loadForm(
+ jQuery('.cms-content').entwine('ss').loadForm(
this.attr('action'),
+ null,
function() {
// Tree updates are triggered by Form_EditForm load events
button.removeClass('loading');
@@ -129,7 +130,7 @@
dropdown.find('option').remove();
//Use tree hints to find allowed children for this node
- if (className && typeof siteTreeHints !== 'undefined') {
+ if (className && siteTreeHints) {
disallowed = siteTreeHints[className].disallowedChildren;
}
diff --git a/admin/javascript/LeftAndMain.Content.js b/admin/javascript/LeftAndMain.Content.js
new file mode 100644
index 000000000..0533d9b56
--- /dev/null
+++ b/admin/javascript/LeftAndMain.Content.js
@@ -0,0 +1,266 @@
+(function($) {
+
+ $.entwine('ss', function($){
+
+ $('.cms-content, .cms-content *').entwine({
+ /**
+ * Triggered before a new URL is loaded, typically via ajax.
+ * Loading itself is handled by $('.cms-container') and window.history.
+ *
+ * @param {String}
+ */
+ beforeLoad: function(url) {
+ this.addClass('loading');
+ this.cleanup();
+ },
+
+ /**
+ * Triggered after an ajax request with new HTML data.
+ *
+ * @param {String}
+ * @param {String}
+ * @param {XMLHTTPRequest}
+ */
+ afterLoad: function(data, status, xhr) {
+ this.removeClass('loading');
+ this.replaceWith(data);
+ },
+
+ cleanup: function() {
+ this.empty();
+ }
+ });
+
+ /**
+ * The "content" area contains all of the section specific UI (excluding the menu).
+ * This area can be a form itself, as well as contain one or more forms.
+ * For example, a page edit form might fill the whole area,
+ * while a ModelAdmin layout shows a search form on the left, and edit form on the right.
+ */
+ $('.cms-content').entwine({
+
+ onmatch: function() {
+ var self = this;
+
+ // Listen to tree selection events
+ this.find('.cms-tree').bind('select_node.jstree', function(e, data) {
+ var node = data.rslt.obj, loadedNodeID = self.find(':input[name=ID]').val(), origEvent = data.args[2];
+
+ // Don't trigger unless coming from a click event.
+ // Avoids problems with automated section switches from tree to detail view
+ // when JSTree auto-selects elements on first load.
+ if(!origEvent) return false;
+
+ // Don't allow checking disabled nodes
+ if($(node).hasClass('disabled')) return false;
+
+ // Don't allow reloading of currently selected node,
+ // mainly to avoid doing an ajax request on initial page load
+ if($(node).data('id') == loadedNodeID) return;
+
+ var url = $(node).find('a:first').attr('href');
+ if(url && url != '#') {
+ window.History.pushState({}, '', url);
+ } else {
+ self.removeForm();
+ }
+ });
+
+ this._super();
+ },
+
+ onunmatch: function() {
+ this._super();
+ },
+
+ /**
+ * Function: loadForm
+ *
+ * See $('.cms-container').handleStateChange() on a frequently used alternative
+ * to direct ajax loading of content, with support for the window.History object.
+ *
+ * Parameters:
+ * (String) url - ..
+ * (Function) callback - (Optional) Called after the form content as been loaded
+ * (Object) ajaxOptions - Object literal merged into the jQuery.ajax() call (Optional)
+ *
+ * Returns:
+ * (XMLHTTPRequest)
+ */
+ loadForm: function(url, form, callback, ajaxOptions) {
+ var self = this;
+ if(!form || !form.length) var form = $('.cms-content-fields form:first');
+
+ // Alert when unsaved changes are present
+ if(form._checkChangeTracker(true) == false) return false;
+
+ // hide existing form - shown again through _loadResponse()
+ form.addClass('loading');
+
+ this.trigger('loadform', {form: form, url: url});
+
+ form.cleanup();
+
+ return jQuery.ajax(jQuery.extend({
+ url: url,
+ // Ensure that form view is loaded (rather than whole "Content" template)
+ data: {'cms-view-form': 1},
+ complete: function(xmlhttp, status) {
+ self.loadForm_responseHandler(form, xmlhttp.responseText, status, xmlhttp);
+ if(callback) callback.apply(self, arguments);
+ },
+ dataType: 'html'
+ }, ajaxOptions));
+ },
+
+ loadForm_responseHandler: function(oldForm, html, status, xmlhttp) {
+ oldForm.replaceWith(html); // triggers onmatch() on form
+
+ // set status message based on response
+ var _statusMessage = (xmlhttp.getResponseHeader('X-Status')) ? xmlhttp.getResponseHeader('X-Status') : xmlhttp.statusText;
+ },
+
+ /**
+ * Function: ajaxSubmit
+ *
+ * Parameters:
+ * {DOMElement} button - The pressed button (optional)
+ * {Function} callback - Called in complete() handler of jQuery.ajax()
+ * {Object} ajaxOptions - Object literal to merge into $.ajax() call
+ * {boolean} loadResponse - Render response through _loadResponse() (Default: true)
+ *
+ * Returns:
+ * (boolean)
+ */
+ submitForm: function(form, button, callback, ajaxOptions, loadResponse) {
+ var self = this;
+
+ // look for save button
+ if(!button) button = this.find('.Actions :submit[name=action_save]');
+ // default to first button if none given - simulates browser behaviour
+ if(!button) button = this.find('.Actions :submit:first');
+
+ this.trigger('submitform', {form: form, button: button});
+
+ // set button to "submitting" state
+ $(button).addClass('loading');
+
+ // @todo TinyMCE coupling
+ if(typeof tinyMCE != 'undefined') tinyMCE.triggerSave();
+
+ // validate if required
+ if(!form.validate()) {
+ // TODO Automatically switch to the tab/position of the first error
+ statusMessage("Validation failed.", "bad");
+
+ $(button).removeClass('loading');
+
+ return false;
+ }
+
+ // save tab selections in order to reconstruct them later
+ var selectedTabs = [];
+ form.find('.ss-tabset').each(function(i, el) {
+ if($(el).attr('id')) selectedTabs.push({id:$(el).attr('id'), selected:$(el).tabs('option', 'selected')});
+ });
+
+ // get all data from the form
+ var formData = form.serializeArray();
+ // add button action
+ formData.push({name: $(button).attr('name'), value:'1'});
+ jQuery.ajax(jQuery.extend({
+ url: form.attr('action'),
+ data: formData,
+ type: 'POST',
+ complete: function(xmlhttp, status) {
+ $(button).removeClass('loading');
+
+ // TODO This should be using the plugin API
+ form.removeClass('changed');
+
+ if(callback) callback(xmlhttp, status);
+
+ // pass along original form data to enable old/new comparisons
+ if(loadResponse !== false) {
+ self.submitForm_responseHandler(form, xmlhttp.responseText, status, xmlhttp, formData);
+ }
+
+ // Re-init tabs (in case the form tag itself is a tabset)
+ if(self.hasClass('ss-tabset')) self.removeClass('ss-tabset').addClass('ss-tabset');
+
+ // re-select previously saved tabs
+ $.each(selectedTabs, function(i, selectedTab) {
+ form.find('#' + selectedTab.id).tabs('select', selectedTab.selected);
+ });
+ },
+ dataType: 'html'
+ }, ajaxOptions));
+
+ return false;
+ },
+
+ /**
+ * Function: _loadResponse
+ *
+ * Parameters:
+ * {String} data - Either HTML for straight insertion, or eval'ed JavaScript.
+ * If passed as HTML, it is assumed that everying inside the