diff --git a/admin/_config.php b/admin/_config.php index 1a5daa238..bc696cc86 100644 --- a/admin/_config.php +++ b/admin/_config.php @@ -34,3 +34,4 @@ HtmlEditorConfig::get('cms')->addButtonsToLine(2, 'ssimage', 'ssflash', 'sslink' HtmlEditorConfig::get('cms')->removeButtons('tablecontrols'); HtmlEditorConfig::get('cms')->addButtonsToLine(3, 'tablecontrols'); +CMSMenu::remove_menu_item('CMSProfileController'); \ No newline at end of file diff --git a/admin/code/CMSProfileController.php b/admin/code/CMSProfileController.php new file mode 100644 index 000000000..7d902b03c --- /dev/null +++ b/admin/code/CMSProfileController.php @@ -0,0 +1,34 @@ +Member_ProfileForm(); + return $this->customise(array( + 'Content' => ' ', + 'Form' => $form + ))->renderWith('CMSDialog'); + } + + public function Member_ProfileForm() { + return new Member_ProfileForm($this, 'Member_ProfileForm', Member::currentUser()); + } + + function canView($member = null) { + if(!$member && $member !== FALSE) $member = Member::currentUser(); + + // cms menus only for logged-in members + if(!$member) return false; + + // Only check for generic CMS permissions + if( + !Permission::checkMember($member, "CMS_ACCESS_LeftAndMain") + && !Permission::checkMember($member, "CMS_ACCESS_CMSMain") + ) { + return false; + } + + return true; + } +} \ No newline at end of file diff --git a/admin/code/LeftAndMain.php b/admin/code/LeftAndMain.php index fbce677cd..40ab6ef25 100644 --- a/admin/code/LeftAndMain.php +++ b/admin/code/LeftAndMain.php @@ -73,10 +73,8 @@ class LeftAndMain extends Controller { 'savetreenode', 'getitem', 'getsubtree', - 'myprofile', 'printable', 'show', - 'Member_ProfileForm', 'EditorToolbar', 'EditForm', 'RootForm', @@ -239,6 +237,7 @@ class LeftAndMain extends Controller { THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js', THIRDPARTY_DIR . '/jquery-cookie/jquery.cookie.js', THIRDPARTY_DIR . '/jquery-query/jquery.query.js', + THIRDPARTY_DIR . '/jquery-form/jquery.form.js', SAPPHIRE_ADMIN_DIR . '/thirdparty/jquery-notice/jquery.notice.js', SAPPHIRE_ADMIN_DIR . '/thirdparty/jsizes/lib/jquery.sizes.js', SAPPHIRE_ADMIN_DIR . '/thirdparty/jlayout/lib/jlayout.border.js', @@ -283,6 +282,7 @@ class LeftAndMain extends Controller { )) ); + Requirements::css(SAPPHIRE_ADMIN_DIR . '/thirdparty/jquery-notice/jquery.notice.css'); Requirements::css(THIRDPARTY_DIR . '/jquery-ui-themes/smoothness/jquery-ui.css'); Requirements::css(SAPPHIRE_ADMIN_DIR .'/thirdparty/chosen/chosen/chosen.css'); Requirements::css(THIRDPARTY_DIR . '/jstree/themes/apple/style.css'); @@ -513,7 +513,7 @@ class LeftAndMain extends Controller { )) )); $record = $this->currentPage(); - if($record) { + if($record && $record->exists()) { if($record->hasExtension('Hierarchy')) { $ancestors = $record->getAncestors(); $ancestors = new ArrayList(array_reverse($ancestors->toArray())); @@ -1104,18 +1104,6 @@ class LeftAndMain extends Controller { return $form; } - public function myprofile() { - $form = $this->Member_ProfileForm(); - return $this->customise(array( - 'Content' => ' ', - 'Form' => $form - ))->renderWith('CMSDialog'); - } - - public function Member_ProfileForm() { - return new Member_ProfileForm($this, 'Member_ProfileForm', Member::currentUser()); - } - public function printable() { $form = $this->getEditForm($this->currentPageID()); if(!$form) return false; diff --git a/admin/code/SecurityAdmin.php b/admin/code/SecurityAdmin.php index cc5070ca5..2e9723dd8 100755 --- a/admin/code/SecurityAdmin.php +++ b/admin/code/SecurityAdmin.php @@ -79,12 +79,6 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { ); } - $form->Actions()->insertBefore( - $actionAddMember = new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member')), - 'action_save' - ); - $actionAddMember->setForm($form); - // Filter permissions $permissionField = $form->Fields()->dataFieldByName('Permissions'); if($permissionField) $permissionField->setHiddenPermissions(self::$hidden_permissions); @@ -107,9 +101,12 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { */ function RootForm() { $config = new GridFieldConfig_Base(25); + $config->addComponent(new GridFieldAction_Edit()); + $config->addComponent(new GridFieldAction_Delete()); $config->addComponent(new GridFieldPopupForms()); $config->addComponent(new GridFieldExporter()); $memberList = new GridField('Members', 'All members', DataList::create('Member'), $config); + $memberList->addExtraClass("members_grid"); $fields = new FieldList( $root = new TabSet( @@ -158,9 +155,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider { $rolesTab->push($rolesCTF); } - $actions = new FieldList( - new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member')) - ); + $actions = new FieldList(); $this->extend('updateRootFormFields', $fields, $actions); diff --git a/admin/css/ie7.css b/admin/css/ie7.css index c8259f9a7..7d185239c 100644 --- a/admin/css/ie7.css +++ b/admin/css/ie7.css @@ -14,3 +14,5 @@ html { overflow: hidden; } .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { background-image: none; } .jstree li a .ui-icon { text-indent: 0px !important; } + +.cms table.ss-gridfield-table tbody td button span.ui-button-text { zoom: 1; } diff --git a/admin/css/screen.css b/admin/css/screen.css index e873abb56..7c64a96de 100644 --- a/admin/css/screen.css +++ b/admin/css/screen.css @@ -88,6 +88,8 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, /** ----------------------------- CMS Components ------------------------------ */ /** File: typography.scss Contains the basic typography related styles for the admin interface. */ +body, html { font-size: 12px; line-height: 16px; font-family: Arial, sans-serif; color: #444444; } + .cms h2, .cms h3, .cms h4, .cms h5 { font-weight: bold; margin: 16px 0 16px 0; line-height: 16px; } .cms h2 { font-size: 18px; line-height: 24px; } .cms h3 { font-size: 16px; } @@ -105,7 +107,7 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, .cms .ui-tabs .ui-tabs-nav.ui-state-active { border-color: gray; } .cms .ui-tabs .ui-tabs-panel { background: transparent; padding: 0; } .cms .ui-widget-content, .cms .ui-widget { color: #444444; font-size: 12px; font-family: Arial, sans-serif; border: 0; } -.cms .ui-widget-header { background-color: #b0bec7; padding: 8px 8px 6px 8px; 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: 3px solid #5c7382; padding: 8px; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; } +.cms .ui-widget-header { background-color: #b0bec7; padding: 8px 8px 6px 8px; 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(#dde3e7, #92a5b2); background-image: -moz-linear-gradient(#dde3e7, #92a5b2); background-image: -o-linear-gradient(#dde3e7, #92a5b2); background-image: -ms-linear-gradient(#dde3e7, #92a5b2); background-image: linear-gradient(#dde3e7, #92a5b2); border-bottom: 3px solid #5c7382; padding: 8px; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; } .cms .ui-widget-header .ui-dialog-title { padding: 6px 0; text-shadow: #ced7dc 1px 1px 0; } .cms .ui-widget-header a.ui-dialog-titlebar-close { position: absolute; top: -8px; right: -15px; width: 30px; height: 30px; z-index: 100000; } .cms .ui-widget-header a.ui-state-hover { border-color: transparent; background: transparent; } @@ -214,16 +216,7 @@ input.radio { margin-left: 0; } * (see _tree.scss and _menu.scss). */ /** ---------------------------------------------------- Core Styles. ---------------------------------------------------- */ -html, body { width: 100%; height: 100%; font-size: 12px; line-height: 16px; font-family: 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 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; } -html body, body body { line-height: 1; } -html ol, html ul, body ol, body ul { list-style: none; } -html table, body table { border-collapse: collapse; border-spacing: 0; } -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: none; } -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; } -html a img, body a img { border: none; } -html article, html aside, html details, html figcaption, html figure, html footer, html header, html hgroup, html menu, html nav, html section, html summary, body article, body aside, body details, body figcaption, body figure, body footer, body header, body hgroup, body menu, body nav, body section, body summary { display: block; } +html, body { width: 100%; height: 100%; } body.cms { overflow: hidden; } @@ -243,24 +236,31 @@ body.cms { overflow: hidden; } .cms-content-header { padding: 0px 8px 8px; height: 32px; z-index: 60; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; } .cms-content-header a { color: #1556b2; } -.cms-content-header h2 { float: left; padding: 8px 8px 0 0; font-size: 14px; line-height: 24px; font-weight: bold; text-shadow: #bfcad2 1px 1px 0; max-width: 400px; margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; } +.cms-content-header .backlink { float: left; margin-top: 7px; } +.cms-content-header h2 { float: left; padding: 8px 8px 0 8px; font-size: 14px; line-height: 24px; font-weight: bold; text-shadow: #bfcad2 1px 1px 0; max-width: 400px; margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; } .cms-content-header > div { width: 9999em; overflow: hidden; } .cms-content-header .cms-content-header-tabs { position: fixed; right: 40px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav li a { font-weight: bold; line-height: 16px; padding: 12px 20px 11px; text-indent: -9999em; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav li a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px 0px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav li a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px 0px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav li a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px 0px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-state-default, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-default { border-top: none; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-state-active, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active { border-top: none; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-treeview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-treeview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px -40px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-galleryview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-galleryview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px -40px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-listview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-listview, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px -40px; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-all, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-top, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-right, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-tr { border-radius: 0; } +.cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-all, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-top, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-left, .cms-content-header .cms-content-header-tabs .ui-tabs-nav .ui-corner-tl { border-radius: 0; } + +.cms-edit-form .cms-content-header-tabs .ui-tabs-nav li a { text-indent: 0; } +.cms-edit-form .cms-content-header-tabs .ui-tabs-nav .ui-state-default a, .cms-edit-form .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-default a, .cms-edit-form .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-default a { color: #1f1f1f; } /** -------------------------------------------- Tabs -------------------------------------------- */ .ui-tabs .cms-content-header .ui-tabs-nav li, .cms-dialog .ui-tabs-nav li { margin: 0; } .ui-tabs .cms-content-header .ui-tabs-nav li a, .cms-dialog .ui-tabs-nav li a { font-weight: bold; line-height: 16px; padding: 12px 20px 11px; } -.ui-tabs .cms-content-header .ui-tabs-nav li a.content-treeview, .cms-dialog .ui-tabs-nav li a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px 0px; } -.ui-tabs .cms-content-header .ui-tabs-nav li a.content-galleryview, .cms-dialog .ui-tabs-nav li a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px 0px; } -.ui-tabs .cms-content-header .ui-tabs-nav li a.content-listview, .cms-dialog .ui-tabs-nav li a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px 0px; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-default, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-default, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-default, .cms-dialog .ui-tabs-nav .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-default { 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(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-right-color: #a6a6a6; border-left-color: #d9d9d9; border-top: none; border-bottom: none; text-shadow: white 0 1px 0; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active, .cms-dialog .ui-tabs-nav .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active { background: #eceff1; border-right-color: #a6a6a6; border-left-color: #a6a6a6; border-top: none; margin-right: -1px; margin-left: -1px; z-index: 2; } +.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-default, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-default, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-default, .cms-dialog .ui-tabs-nav .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-default { 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(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-right-color: #a6a6a6; border-left-color: #d9d9d9; border-bottom: none; text-shadow: white 0 1px 0; } +.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active, .cms-dialog .ui-tabs-nav .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active { background: #eceff1; border-right-color: #a6a6a6; border-left-color: #a6a6a6; margin-right: -1px; margin-left: -1px; z-index: 2; } .ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active a, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active a, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active a { border-bottom: none; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active a.content-treeview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active a.content-treeview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active a.content-treeview, .cms-dialog .ui-tabs-nav .ui-state-active a.content-treeview, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active a.content-treeview, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px -40px; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active a.content-galleryview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active a.content-galleryview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active a.content-galleryview, .cms-dialog .ui-tabs-nav .ui-state-active a.content-galleryview, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active a.content-galleryview, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px -40px; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-state-active a.content-listview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active a.content-listview, .ui-tabs .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active a.content-listview, .cms-dialog .ui-tabs-nav .ui-state-active a.content-listview, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active a.content-listview, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px -40px; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-all, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-top, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-right, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-tr, .cms-dialog .ui-tabs-nav .ui-corner-all, .cms-dialog .ui-tabs-nav .ui-corner-top, .cms-dialog .ui-tabs-nav .ui-corner-right, .cms-dialog .ui-tabs-nav .ui-corner-tr { border-radius: 0; } -.ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-all, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-top, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-left, .ui-tabs .cms-content-header .ui-tabs-nav .ui-corner-tl, .cms-dialog .ui-tabs-nav .ui-corner-all, .cms-dialog .ui-tabs-nav .ui-corner-top, .cms-dialog .ui-tabs-nav .ui-corner-left, .cms-dialog .ui-tabs-nav .ui-corner-tl { border-radius: 0; } /** ------------------------------------------------------- Loading Interface ------------------------------------------------------- */ .cms-content-loading-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 9998; } @@ -308,7 +308,7 @@ body.cms { overflow: hidden; } /** -------------------------------------------- Content toolbar -------------------------------------------- */ .cms-content-toolbar { display: block; margin: 0 0 15px 0; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -o-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); *zoom: 1; /* smaller treedropdown */ } .cms-content-toolbar:after { content: "\0020"; display: block; height: 0; clear: both; overflow: hidden; visibility: hidden; } -.cms-content-toolbar > * { float: right; } +.cms-content-toolbar .cms-tree-view-modes { float: right; padding-top: 5px; } .cms-content-toolbar .cms-tree-view-modes * { display: inline-block; } .cms-content-toolbar .cms-tree-view-modes * label { color: #1556b2; } .cms-content-toolbar .chzn-container-single .chzn-single { height: 26px; line-height: 26px; padding-left: 25px; color: #576468; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e6e6e6), color-stop(100%, #cdcdcd)); background-image: -webkit-linear-gradient(#e6e6e6, #cdcdcd); background-image: -moz-linear-gradient(#e6e6e6, #cdcdcd); background-image: -o-linear-gradient(#e6e6e6, #cdcdcd); background-image: -ms-linear-gradient(#e6e6e6, #cdcdcd); background-image: linear-gradient(#e6e6e6, #cdcdcd); font-size: 13px; font-weight: bold; text-shadow: #e6e6e6 0 -1px 1px; box-shadow: none; } @@ -320,9 +320,9 @@ body.cms { overflow: hidden; } /* -------------------------------------------------------- Content Tools is the sidebar on the left of the main content panel */ .cms-content-tools { background-color: #dde3e7; width: 192px; border-right: 1px solid #bfcad2; overflow-y: auto; overflow-x: hidden; z-index: 70; -moz-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; -o-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; float: left; position: relative; } -.cms-content-tools .cms-panel-header { padding: 0; margin: 0 0 7px; line-height: 24px; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -moz-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -o-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); } -.cms-content-tools .cms-panel-content { width: 176px; padding: 8px 8px; overflow: auto; } -.cms-content-tools .cms-content-header { background-color: #748d9d; border-bottom: 2px solid #5c7382; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #748d9d)); background-image: -webkit-linear-gradient(#b0bec7, #748d9d); background-image: -moz-linear-gradient(#b0bec7, #748d9d); background-image: -o-linear-gradient(#b0bec7, #748d9d); background-image: -ms-linear-gradient(#b0bec7, #748d9d); background-image: linear-gradient(#b0bec7, #748d9d); } +.cms-content-tools .cms-panel-header { margin: 0 0 7px; line-height: 24px; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -moz-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -o-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); } +.cms-content-tools .cms-panel-content { width: 176px; padding: 8px 8px; overflow: auto; height: 100%; } +.cms-content-tools .cms-content-header { background-color: #748d9d; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #748d9d)); background-image: -webkit-linear-gradient(#b0bec7, #748d9d); background-image: -moz-linear-gradient(#b0bec7, #748d9d); background-image: -o-linear-gradient(#b0bec7, #748d9d); background-image: -ms-linear-gradient(#b0bec7, #748d9d); background-image: linear-gradient(#b0bec7, #748d9d); } .cms-content-tools .cms-content-header h2 { text-shadow: #5c7382 -1px -1px 0; width: 176px; color: white; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; } .cms-content-tools h3, .cms-content-tools h4, .cms-content-tools h5 { font-weight: bold; line-height: 16px; } .cms-content-tools h3 { font-size: 13px; } @@ -382,6 +382,9 @@ form.member-profile-form .formattingHelpText li { font-size: 11px; color: #333; form.member-profile-form #Groups .middleColumn { margin-left: 0; width: 100%; } form.member-profile-form #Groups .middleColumn .TreeDropdownField { width: 90%; max-width: 90%; } form.member-profile-form #Permissions .optionset li { float: none; width: auto; } +form.member-profile-form .ui-tabs-nav li { margin: 0 0 -1px 0; } +form.member-profile-form .ui-corner-all, form.member-profile-form .ui-corner-top, form.member-profile-form .ui-corner-right, form.member-profile-form .ui-corner-tr { border-radius: 0; } +form.member-profile-form .ui-corner-all, form.member-profile-form .ui-corner-top, form.member-profile-form .ui-corner-left, form.member-profile-form .ui-corner-tl { border-radius: 0; } .cms .cms-content { border-right: 1px solid rgba(201, 205, 206, 0.8); -moz-box-shadow: 3px 0 4px rgba(0, 0, 0, 0.15); -webkit-box-shadow: 3px 0 4px rgba(0, 0, 0, 0.15); -o-box-shadow: 3px 0 4px rgba(0, 0, 0, 0.15); box-shadow: 3px 0 4px rgba(0, 0, 0, 0.15); -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; } .cms .cms-content-fields { /* always show a y scroll bar as popups like TreeDropdowns can trigger longer pages and the extra scroll bar doesn't fire our sizing bar */ overflow-y: auto; overflow-x: auto; background: none; width: 100%; } @@ -396,8 +399,12 @@ form.member-profile-form #Permissions .optionset li { float: none; width: auto; .cms-panel.collapsed .cms-panel-header * { display: none; } .cms-panel.collapsed .cms-panel-content { display: none; } .cms-panel .cms-panel-header { width: 100%; } +.cms-panel#cms-content-tools-CMSPageEditController .cms-panel-content-collapsed { width: 40px; display: none; } +.cms-panel#cms-content-tools-CMSPageEditController .cms-panel-content-collapsed h2, .cms-panel#cms-content-tools-CMSPageEditController .cms-panel-content-collapsed h3 { border-bottom: 0; margin-left: 8px; -moz-transform-origin: bottom right; -webkit-transform-origin: bottom right; -o-transform-origin: bottom right; -ms-transform-origin: bottom right; transform-origin: bottom right; -moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -o-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } +.cms-panel#cms-content-tools-CMSPageEditController .cms-panel-content-collapsed .cms-panel-header { width: 600px; position: relative; top: 24px; right: 577px; text-align: right; } .cms-panel .cms-panel-content-collapsed { width: 40px; display: none; } -.cms-panel .cms-panel-content-collapsed h2, .cms-panel .cms-panel-content-collapsed h3 { border-bottom: 0; margin-left: 8px; -moz-transform-origin: bottom left; -webkit-transform-origin: bottom left; -o-transform-origin: bottom left; -ms-transform-origin: bottom left; transform-origin: bottom left; -moz-transform: rotate(90deg); -webkit-transform: rotate(90deg); -o-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } +.cms-panel .cms-panel-content-collapsed h2, .cms-panel .cms-panel-content-collapsed h3 { border-bottom: 0; margin-left: 8px; -moz-transform-origin: bottom right; -webkit-transform-origin: bottom right; -o-transform-origin: bottom right; -ms-transform-origin: bottom right; transform-origin: bottom right; -moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -o-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } +.cms-panel .cms-panel-content-collapsed .cms-panel-header { width: 600px; position: relative; right: 577px; text-align: right; } .cms-panel .child-flyout-indicator { width: 0; height: 0; border-right: 3px dashed #1f1f1f; border-top: 3px solid transparent; border-left: 3px solid transparent; border-bottom: 3px dashed #1f1f1f; position: absolute; right: 1px; margin-top: -8px; display: none; /* To be shown by javascript, see LeftAndMain.Panel.js */ } .cms-panel .collapsed-flyout { display: block !important; left: 41px; margin-top: -40px; position: fixed; width: 191px; } .cms-panel .collapsed-flyout li a span { display: block !important; } @@ -452,102 +459,108 @@ body.cms-dialog { overflow: auto; background: url("../images/textures/bg_cms_mai .step-label .title { height: 18px; padding: 4px; } /** -------------------------------------------- Item Edit Form -------------------------------------------- */ -#Form_ItemEditForm .field { width: 100%; } -#Form_ItemEditForm .field .fieldgroup { height: 230px; float: left; } -#Form_ItemEditForm .field .fieldgroup .fieldgroup-field.first { position: relative; margin-left: 0px; } -#Form_ItemEditForm .field .fieldgroup .fieldgroup-field { clear: both; width: 500px; margin-left: 420px; } -#Form_ItemEditForm .field .fieldgroup .fieldgroup-field img { -moz-border-radius: 8px; -webkit-border-radius: 8px; -o-border-radius: 8px; -ms-border-radius: 8px; -khtml-border-radius: 8px; border-radius: 8px; border-width: 3px; border-style: dashed; border-color: #8c99a1; position: absolute; top: 8px; } -#Form_ItemEditForm .field .fieldgroup .fieldgroup-field label { font-weight: bold; float: left; padding-top: 8px; line-height: 16px; text-shadow: white 1px 1px 0; } -#Form_ItemEditForm .field .fieldgroup .fieldgroup-field span { float: left; padding-left: 8px; font-style: italic; color: #777777; } +.cms-file-info { overflow: auto; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -o-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); margin-bottom: 8px; } +.cms-file-info .cms-file-info-preview { float: left; width: 176px; margin-right: 8px; } +.cms-file-info .cms-file-info-preview img { max-width: 176px; } +.cms-file-info .cms-file-info-data { float: left; } +.cms-file-info .cms-file-info-data .field { margin-bottom: 0; padding-bottom: 8px; border: none; box-shadow: none; } +.cms-file-info .cms-file-info-data .field label, .cms-file-info .cms-file-info-data .field span { padding: 0; } + +form.small .cms-file-info-preview { width: 112px; } +form.small .cms-file-info-preview img { max-width: 112px; } +form.small .cms-file-info-data { max-width: 350px; } +form.small .cms-file-info-data .field { padding-bottom: 0; } +form.small .cms-file-info-data .field label { width: 112px; } +form.small .cms-file-info-data .field .middleColumn { margin-left: 120px; } /** 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. */ -.cms .jstree ul { display: block; margin: 0; padding: 0; background: none; list-style-type: none; } -.cms .jstree li { display: block; margin: 0; padding: 0; list-style-type: none; display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; } -.cms .jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; float: left; } -.cms .jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; border: 1px solid #fff; } -.cms .jstree a:focus, .cms .jstree a:active, .cms .jstree a:hover { outline: none; text-decoration: none; cursor: pointer; text-shadow: none; } -.cms .jstree a > ins { height: 16px; width: 16px; } -.cms .jstree a > .jstree-icon { margin-right: 3px; } -.cms .jstree li.jstree-open > ul { display: block; } -.cms .jstree li.jstree-closed > ul { display: none; } -.cms .jstree li.disabled a { color: #aaaaaa; } -.cms .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; } -.cms .jstree-rtl li { margin-left: 0; margin-right: 18px; } -.cms .jstree-rtl > ul > li { margin-right: 0px; } -.cms .jstree > ul > li { margin-left: 0px; } -.cms #vakata-dragged { display: block; margin: 0 0 0 0; padding: 4px 4px 4px 24px; position: absolute; top: -2000px; line-height: 16px; z-index: 10000; } -.cms #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; } -.cms #vakata-contextmenu ul { min-width: 180px; *width: 180px; } -.cms #vakata-contextmenu ul, .cms #vakata-contextmenu li { margin: 0; padding: 0; list-style-type: none; display: block; } -.cms #vakata-contextmenu li { line-height: 20px; min-height: 20px; position: relative; padding: 0px; } -.cms #vakata-contextmenu li a { padding: 1px 6px; line-height: 17px; display: block; text-decoration: none; margin: 1px 1px 0 1px; } -.cms #vakata-contextmenu li ins { float: left; width: 16px; height: 16px; text-decoration: none; margin-right: 2px; } -.cms #vakata-contextmenu li a:hover, .cms #vakata-contextmenu li.vakata-hover > a { background: gray; color: white; } -.cms #vakata-contextmenu li ul { display: none; position: absolute; top: -2px; left: 100%; background: #ebebeb; border: 1px solid gray; } -.cms #vakata-contextmenu .right { right: 100%; left: auto; } -.cms #vakata-contextmenu .bottom { bottom: -1px; top: auto; } -.cms #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; } -.cms .jstree ul, .cms .jstree li { display: block; margin: 0 0 0 0; padding: 0 0 0 0; list-style-type: none; } -.cms .jstree li { display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; } -.cms .jstree-rtl li { margin-left: 0; margin-right: 18px; } -.cms .jstree > ul > li { margin-left: 0px; } -.cms .jstree-rtl > ul > li { margin-right: 0px; } -.cms .jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; } -.cms .jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; } -.cms .jstree a:focus { outline: none; } -.cms .jstree a > ins { height: 16px; width: 16px; } -.cms .jstree a > .jstree-icon { margin-right: 3px; } -.cms .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; } -.cms li.jstree-open > ul { display: block; margin-left: -13px; } -.cms li.jstree-open > ul li ul { margin-left: 2px; } -.cms li.jstree-closed > ul { display: none; } -.cms #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; } -.cms #vakata-dragged .jstree-ok { background: green; } -.cms #vakata-dragged .jstree-invalid { background: red; } -.cms #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; } -.cms #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; } -.cms .jstree .jstree-real-checkbox { display: none; } -.cms .jstree-themeroller .ui-icon { overflow: visible; } -.cms .jstree-themeroller a { padding: 0 2px; } -.cms .jstree-themeroller .jstree-no-icon { display: none; } -.cms .jstree .jstree-wholerow-real { position: relative; z-index: 1; } -.cms .jstree .jstree-wholerow-real li { cursor: pointer; } -.cms .jstree .jstree-wholerow-real a { border-left-color: transparent !important; border-right-color: transparent !important; } -.cms .jstree .jstree-wholerow { position: relative; z-index: 0; height: 0; } -.cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li { width: 100%; } -.cms .jstree .jstree-wholerow, .cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li, .cms .jstree .jstree-wholerow a { margin: 0 !important; padding: 0 !important; } -.cms .jstree .jstree-wholerow, .cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li { background: transparent !important; } -.cms .jstree .jstree-wholerow ins, .cms .jstree .jstree-wholerow span, .cms .jstree .jstree-wholerow input { display: none !important; } -.cms .jstree .jstree-wholerow a, .cms .jstree .jstree-wholerow a:hover { text-indent: -9999px !important; width: 100%; padding: 0 !important; border-right-width: 0px !important; border-left-width: 0px !important; } -.cms .jstree .jstree-wholerow-span { position: absolute; left: 0; margin: 0px; padding: 0; height: 18px; border-width: 0; padding: 0; z-index: 0; } -.cms .jstree-apple.jstree-focused { background: none; } -.cms .jstree-apple.jstree-focused .jstree-apple > ul { background: none; } -.cms .jstree li { line-height: 25px; } +.cms .jstree ul, .TreeDropdownField .treedropdownfield-panel .jstree ul { display: block; margin: 0; padding: 0; background: none; list-style-type: none; } +.cms .jstree li, .TreeDropdownField .treedropdownfield-panel .jstree li { display: block; margin: 0; padding: 0; list-style-type: none; display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; } +.cms .jstree ins, .TreeDropdownField .treedropdownfield-panel .jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; float: left; } +.cms .jstree a, .TreeDropdownField .treedropdownfield-panel .jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; border: 1px solid #fff; } +.cms .jstree a:focus, .cms .jstree a:active, .cms .jstree a:hover, .TreeDropdownField .treedropdownfield-panel .jstree a:focus, .TreeDropdownField .treedropdownfield-panel .jstree a:active, .TreeDropdownField .treedropdownfield-panel .jstree a:hover { outline: none; text-decoration: none; cursor: pointer; text-shadow: none; } +.cms .jstree a > ins, .TreeDropdownField .treedropdownfield-panel .jstree a > ins { height: 16px; width: 16px; } +.cms .jstree a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree a > .jstree-icon { margin-right: 3px; } +.cms .jstree li.jstree-open > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-open > ul { display: block; } +.cms .jstree li.jstree-closed > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-closed > ul { display: none; } +.cms .jstree li.disabled a, .TreeDropdownField .treedropdownfield-panel .jstree li.disabled a { color: #aaaaaa; } +.cms .jstree-rtl a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; } +.cms .jstree-rtl li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl li { margin-left: 0; margin-right: 18px; } +.cms .jstree-rtl > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl > ul > li { margin-right: 0px; } +.cms .jstree > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree > ul > li { margin-left: 0px; } +.cms #vakata-dragged, .TreeDropdownField .treedropdownfield-panel #vakata-dragged { display: block; margin: 0 0 0 0; padding: 4px 4px 4px 24px; position: absolute; top: -2000px; line-height: 16px; z-index: 10000; } +.cms #vakata-contextmenu, .TreeDropdownField .treedropdownfield-panel #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; } +.cms #vakata-contextmenu ul, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu ul { min-width: 180px; *width: 180px; } +.cms #vakata-contextmenu ul, .cms #vakata-contextmenu li, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu ul, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li { margin: 0; padding: 0; list-style-type: none; display: block; } +.cms #vakata-contextmenu li, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li { line-height: 20px; min-height: 20px; position: relative; padding: 0px; } +.cms #vakata-contextmenu li a, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li a { padding: 1px 6px; line-height: 17px; display: block; text-decoration: none; margin: 1px 1px 0 1px; } +.cms #vakata-contextmenu li ins, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li ins { float: left; width: 16px; height: 16px; text-decoration: none; margin-right: 2px; } +.cms #vakata-contextmenu li a:hover, .cms #vakata-contextmenu li.vakata-hover > a, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li a:hover, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li.vakata-hover > a { background: gray; color: white; } +.cms #vakata-contextmenu li ul, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu li ul { display: none; position: absolute; top: -2px; left: 100%; background: #ebebeb; border: 1px solid gray; } +.cms #vakata-contextmenu .right, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu .right { right: 100%; left: auto; } +.cms #vakata-contextmenu .bottom, .TreeDropdownField .treedropdownfield-panel #vakata-contextmenu .bottom { bottom: -1px; top: auto; } +.cms #vakata-contextmenu li.vakata-separator, .TreeDropdownField .treedropdownfield-panel #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; } +.cms .jstree ul, .cms .jstree li, .TreeDropdownField .treedropdownfield-panel .jstree ul, .TreeDropdownField .treedropdownfield-panel .jstree li { display: block; margin: 0 0 0 0; padding: 0 0 0 0; list-style-type: none; } +.cms .jstree li, .TreeDropdownField .treedropdownfield-panel .jstree li { display: block; min-height: 18px; line-height: 18px; white-space: nowrap; margin-left: 18px; min-width: 18px; } +.cms .jstree-rtl li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl li { margin-left: 0; margin-right: 18px; } +.cms .jstree > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree > ul > li { margin-left: 0px; } +.cms .jstree-rtl > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl > ul > li { margin-right: 0px; } +.cms .jstree ins, .TreeDropdownField .treedropdownfield-panel .jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; } +.cms .jstree a, .TreeDropdownField .treedropdownfield-panel .jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; } +.cms .jstree a:focus, .TreeDropdownField .treedropdownfield-panel .jstree a:focus { outline: none; } +.cms .jstree a > ins, .TreeDropdownField .treedropdownfield-panel .jstree a > ins { height: 16px; width: 16px; } +.cms .jstree a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree a > .jstree-icon { margin-right: 3px; } +.cms .jstree-rtl a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; } +.cms li.jstree-open > ul, .TreeDropdownField .treedropdownfield-panel li.jstree-open > ul { display: block; margin-left: -13px; } +.cms li.jstree-open > ul li ul, .TreeDropdownField .treedropdownfield-panel li.jstree-open > ul li ul { margin-left: 2px; } +.cms li.jstree-closed > ul, .TreeDropdownField .treedropdownfield-panel li.jstree-closed > ul { display: none; } +.cms #vakata-dragged ins, .TreeDropdownField .treedropdownfield-panel #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; } +.cms #vakata-dragged .jstree-ok, .TreeDropdownField .treedropdownfield-panel #vakata-dragged .jstree-ok { background: green; } +.cms #vakata-dragged .jstree-invalid, .TreeDropdownField .treedropdownfield-panel #vakata-dragged .jstree-invalid { background: red; } +.cms #jstree-marker, .TreeDropdownField .treedropdownfield-panel #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; } +.cms #jstree-marker-line, .TreeDropdownField .treedropdownfield-panel #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; } +.cms .jstree .jstree-real-checkbox, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-real-checkbox { display: none; } +.cms .jstree-themeroller .ui-icon, .TreeDropdownField .treedropdownfield-panel .jstree-themeroller .ui-icon { overflow: visible; } +.cms .jstree-themeroller a, .TreeDropdownField .treedropdownfield-panel .jstree-themeroller a { padding: 0 2px; } +.cms .jstree-themeroller .jstree-no-icon, .TreeDropdownField .treedropdownfield-panel .jstree-themeroller .jstree-no-icon { display: none; } +.cms .jstree .jstree-wholerow-real, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow-real { position: relative; z-index: 1; } +.cms .jstree .jstree-wholerow-real li, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow-real li { cursor: pointer; } +.cms .jstree .jstree-wholerow-real a, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow-real a { border-left-color: transparent !important; border-right-color: transparent !important; } +.cms .jstree .jstree-wholerow, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow { position: relative; z-index: 0; height: 0; } +.cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow ul, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow li { width: 100%; } +.cms .jstree .jstree-wholerow, .cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li, .cms .jstree .jstree-wholerow a, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow ul, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow li, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow a { margin: 0 !important; padding: 0 !important; } +.cms .jstree .jstree-wholerow, .cms .jstree .jstree-wholerow ul, .cms .jstree .jstree-wholerow li, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow ul, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow li { background: transparent !important; } +.cms .jstree .jstree-wholerow ins, .cms .jstree .jstree-wholerow span, .cms .jstree .jstree-wholerow input, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow ins, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow span, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow input { display: none !important; } +.cms .jstree .jstree-wholerow a, .cms .jstree .jstree-wholerow a:hover, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow a, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow a:hover { text-indent: -9999px !important; width: 100%; padding: 0 !important; border-right-width: 0px !important; border-left-width: 0px !important; } +.cms .jstree .jstree-wholerow-span, .TreeDropdownField .treedropdownfield-panel .jstree .jstree-wholerow-span { position: absolute; left: 0; margin: 0px; padding: 0; height: 18px; border-width: 0; padding: 0; z-index: 0; } +.cms .jstree-apple.jstree-focused, .TreeDropdownField .treedropdownfield-panel .jstree-apple.jstree-focused { background: none; } +.cms .jstree-apple.jstree-focused .jstree-apple > ul, .TreeDropdownField .treedropdownfield-panel .jstree-apple.jstree-focused .jstree-apple > ul { background: none; } +.cms .jstree li, .TreeDropdownField .treedropdownfield-panel .jstree li { line-height: 25px; } .jstree-apple li, .jstree-apple .jstree-apple ins { background: none; } .jstree-apple .jstree-unchecked > a > .jstree-checkbox { margin-right: 3px; } .jstree-apple .jstree-checked > a > .jstree-checkbox { margin-right: 3px; } .jstree-apple .jstree-undetermined > a > .jstree-checkbox { margin-right: 3px; } -.cms-tree.jstree-apple { /* comment speech bubble - ccs3 only - source: http://nicolasgallagher.com/pure-css-speech-bubbles/demo/ */ } -.cms-tree.jstree-apple li.Root strong { font-weight: bold; padding-left: 1px; } -.cms-tree.jstree-apple li.Root > a .jstree-icon { background-position: -56px -36px; } -.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; } -.cms-tree.jstree-apple span.badge { 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; } -.cms-tree.jstree-apple span.badge.modified { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; } -.cms-tree.jstree-apple span.badge.addedtodraft { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; } -.cms-tree.jstree-apple span.badge.deletedonlive { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; } -.cms-tree.jstree-apple span.badge.removedfromdraft { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; } -.cms-tree.jstree-apple span.badge.workflow-approval { color: #56660C; border: 1px solid #7C8816; background-color: #DAE79A; } -.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; } -.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; } -.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; } -.cms-tree.jstree-apple .jstree-hovered { text-shadow: none; text-decoration: none; } -.cms-tree.jstree-apple li { padding: 0px; clear: left; } -.cms-tree.jstree-apple ins { background-color: transparent; background-image: url(../images/sitetree_ss_default_icons.png); } -.cms-tree.jstree-apple li.jstree-checked a, .cms-tree.jstree-apple li.jstree-checked a:link { background-color: #efe999; } -.cms-tree.jstree-apple .jstree-closed > ins { background-position: 0 0; } -.cms-tree.jstree-apple .jstree-open > ins { background-position: -20px 0; } +.tree-holder.jstree-apple, .cms-tree.jstree-apple { /* comment speech bubble - ccs3 only - source: http://nicolasgallagher.com/pure-css-speech-bubbles/demo/ */ } +.tree-holder.jstree-apple li.Root strong, .cms-tree.jstree-apple li.Root strong { font-weight: bold; padding-left: 1px; } +.tree-holder.jstree-apple li.Root > a .jstree-icon, .cms-tree.jstree-apple li.Root > a .jstree-icon { background-position: -56px -36px; } +.tree-holder.jstree-apple a, .tree-holder.jstree-apple a:link, .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; } +.tree-holder.jstree-apple span.badge, .cms-tree.jstree-apple span.badge { 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; } +.tree-holder.jstree-apple span.badge.modified, .cms-tree.jstree-apple span.badge.modified { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; } +.tree-holder.jstree-apple span.badge.addedtodraft, .cms-tree.jstree-apple span.badge.addedtodraft { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; } +.tree-holder.jstree-apple span.badge.deletedonlive, .cms-tree.jstree-apple span.badge.deletedonlive { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; } +.tree-holder.jstree-apple span.badge.removedfromdraft, .cms-tree.jstree-apple span.badge.removedfromdraft { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; } +.tree-holder.jstree-apple span.badge.workflow-approval, .cms-tree.jstree-apple span.badge.workflow-approval { color: #56660C; border: 1px solid #7C8816; background-color: #DAE79A; } +.tree-holder.jstree-apple span.comment-count, .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; } +.tree-holder.jstree-apple span.comment-count:before, .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; } +.tree-holder.jstree-apple span.comment-count:after, .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; } +.tree-holder.jstree-apple .jstree-hovered, .cms-tree.jstree-apple .jstree-hovered { text-shadow: none; text-decoration: none; } +.tree-holder.jstree-apple li, .cms-tree.jstree-apple li { padding: 0px; clear: left; } +.tree-holder.jstree-apple ins, .cms-tree.jstree-apple ins { background-color: transparent; background-image: url(../images/sitetree_ss_default_icons.png); } +.tree-holder.jstree-apple li.jstree-checked a, .tree-holder.jstree-apple li.jstree-checked a:link, .cms-tree.jstree-apple li.jstree-checked a, .cms-tree.jstree-apple li.jstree-checked a:link { background-color: #efe999; } +.tree-holder.jstree-apple .jstree-closed > ins, .cms-tree.jstree-apple .jstree-closed > ins { background-position: 0 0; } +.tree-holder.jstree-apple .jstree-open > ins, .cms-tree.jstree-apple .jstree-open > ins { background-position: -20px 0; } .jstree-apple #record-0.jstree-open > ins { display: none; } @@ -571,7 +584,7 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; } .cms-logo { border-bottom: 1px solid #03090c; height: 31px; overflow: hidden; padding: 0 0 0 4px; vertical-align: middle; font-size: 12px; } .cms-logo .version { display: none; } .cms-logo a { display: inline-block; height: 24px; width: 24px; float: left; margin-right: 8px; background: url("../images/logo_small.png") no-repeat; text-indent: -9999em; padding-right: 7px; border-right: 1px solid #19435c; } -.cms-logo span { font-weight: bold; font-size: 14px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; } +.cms-logo span { font-weight: bold; font-size: 14px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; padding-top: 1px; } .cms-login-status { border-top: 1px solid #19435c; height: 24px; padding: 7px 4px 0 4px; overflow: hidden; line-height: 16px; font-size: 11px; } .cms-login-status .logout-link { display: inline-block; height: 16px; width: 16px; float: left; margin: 0 8px 0 3px; background: url('../images/sprites-32x32-sa4e142f7f0.png') 0 -669px no-repeat; text-indent: -9999em; } @@ -588,7 +601,7 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; } .cms-menu.collapsed.cms-panel .cms-panel-content { display: block; } .cms-menu-list li { /* Style applied to the menu flyout only when the collapsed setting */ } -.cms-menu-list li a { display: block; height: 24px; line-height: 24px; font-size: 12px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-shadow: #bfcad2 1px 1px 0; color: #1f1f1f; padding: 7px 5px 7px 8px; background-color: #b0bec7; cursor: pointer; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-top: 1px solid #ced7dc; border-bottom: 1px solid #748d9d; } +.cms-menu-list li a { display: block; height: 24px; line-height: 24px; font-size: 12px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-shadow: #bfcad2 1px 1px 0; color: #1f1f1f; padding: 7px 5px 7px 8px; background-color: #8ca1ae; cursor: pointer; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); 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, 50% 0%, 50% 100%, color-stop(0%, #bfcad2), color-stop(100%, #b0bec7)); background-image: -webkit-linear-gradient(#bfcad2, #b0bec7); background-image: -moz-linear-gradient(#bfcad2, #b0bec7); background-image: -o-linear-gradient(#bfcad2, #b0bec7); background-image: -ms-linear-gradient(#bfcad2, #b0bec7); background-image: linear-gradient(#bfcad2, #b0bec7); } .cms-menu-list li a:focus, .cms-menu-list li a:active { 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(#92a5b2, #a1b2bc); background-image: -moz-linear-gradient(#92a5b2, #a1b2bc); background-image: -o-linear-gradient(#92a5b2, #a1b2bc); background-image: -ms-linear-gradient(#92a5b2, #a1b2bc); background-image: linear-gradient(#92a5b2, #a1b2bc); } .cms-menu-list li a .icon { display: inline-block; float: left; margin: 4px 10px 0 4px; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); opacity: 0.7; } @@ -596,7 +609,6 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; } .cms-menu-list li a .toggle-children { display: inline-block; float: right; width: 20px; height: 100%; cursor: pointer; } .cms-menu-list li a .toggle-children .toggle-children-icon { display: inline-block; width: 8px; height: 8px; background: url('../images/sprites-32x32-sa4e142f7f0.png') 0 -695px no-repeat; vertical-align: middle; } .cms-menu-list li a .toggle-children.opened .toggle-children-icon { background: url('../images/sprites-32x32-sa4e142f7f0.png') 0 -711px no-repeat; } -.cms-menu-list li ul { display: none; } .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(#338dc1, #287099); background-image: -moz-linear-gradient(#338dc1, #287099); background-image: -o-linear-gradient(#338dc1, #287099); background-image: -ms-linear-gradient(#338dc1, #287099); background-image: linear-gradient(#338dc1, #287099); } .cms-menu-list li.current a .toggle-children .toggle-children-icon { background: url('../images/sprites-32x32-sa4e142f7f0.png') 0 -727px no-repeat; } .cms-menu-list li.current a .toggle-children.opened .toggle-children-icon { background: url('../images/sprites-32x32-sa4e142f7f0.png') 0 -743px no-repeat; } @@ -607,6 +619,11 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; } .cms-menu-list li.current li a:focus { background: #236184; border-top: 1px solid #1e5270; color: white; } .cms-menu-list li.current li.current a { font-weight: bold; color: white; } .cms-menu-list li.current li.first a { border-top: none; } +.cms-menu-list li ul { display: none; } +.cms-menu-list li ul #Menu-CMSPagesController a { background-image: none; font-size: 11px; padding: 0 10px 0 40px; height: 32px; line-height: 32px; } +.cms-menu-list li ul #Menu-CMSPageAddController a { background-image: none; font-size: 11px; padding: 0 10px 0 40px; height: 32px; line-height: 32px; } +.cms-menu-list li ul #Menu-AssetAdmin a { background-image: none; font-size: 11px; padding: 0 10px 0 40px; height: 32px; line-height: 32px; } +.cms-menu-list li ul #Menu-CMSFileAddController a { background-image: none; font-size: 11px; padding: 0 10px 0 40px; height: 32px; line-height: 32px; } .cms-menu-list li ul.collapsed-flyout { display: block; } .cms-menu-list li ul.collapsed-flyout li a { font-size: 11px; padding: 0 10px 0 40px; height: 32px; line-height: 32px; } .cms-menu-list li ul.collapsed-flyout li a.current, .cms-menu-list li ul.collapsed-flyout li a:hover { font-weight: bold; } @@ -631,4 +648,4 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; } .ModelAdmin .cms-content-tools #SearchForm_holder div.tab form .Actions button.ss-ui-action-minor { display: none; } .SecurityAdmin .cms-edit-form .cms-content-header h2 { display: none; } -.SecurityAdmin .permissioncheckboxset .optionset li { float: none; width: auto; } +.SecurityAdmin .permissioncheckboxset .optionset li, .SecurityAdmin .permissioncheckboxsetfield_readonly .optionset li { float: none; width: auto; } diff --git a/admin/images/arrows.png b/admin/images/arrows.png new file mode 100644 index 000000000..69f48c5e9 Binary files /dev/null and b/admin/images/arrows.png differ diff --git a/admin/images/btn_icons-sb716480a9a.png b/admin/images/btn_icons-sb716480a9a.png new file mode 100644 index 000000000..a914d6757 Binary files /dev/null and b/admin/images/btn_icons-sb716480a9a.png differ diff --git a/admin/images/btn_icons/document--pencil.png b/admin/images/btn_icons/document--pencil.png new file mode 100755 index 000000000..775dfcd76 Binary files /dev/null and b/admin/images/btn_icons/document--pencil.png differ diff --git a/admin/images/spinner.gif b/admin/images/spinner.gif index 8dc348a4b..14c8d5189 100644 Binary files a/admin/images/spinner.gif and b/admin/images/spinner.gif differ diff --git a/admin/images/spinner.psd b/admin/images/spinner.psd new file mode 100644 index 000000000..f151eb1ad Binary files /dev/null and b/admin/images/spinner.psd differ diff --git a/admin/javascript/LeftAndMain.Content.js b/admin/javascript/LeftAndMain.Content.js index 2c98be0a8..32a9cb426 100644 --- a/admin/javascript/LeftAndMain.Content.js +++ b/admin/javascript/LeftAndMain.Content.js @@ -194,7 +194,7 @@ var form = this.replaceForm(oldForm, data); if(typeof(Behaviour) != 'undefined') Behaviour.apply(); // refreshes ComplexTableField - + this.trigger('reloadeditform', {form: form, origData: origData, xmlhttp: xmlhttp}); } diff --git a/admin/javascript/LeftAndMain.Tree.js b/admin/javascript/LeftAndMain.Tree.js index c72395b84..215f76353 100644 --- a/admin/javascript/LeftAndMain.Tree.js +++ b/admin/javascript/LeftAndMain.Tree.js @@ -154,7 +154,7 @@ }); }); - $('.cms-edit-form').bind('reloadeditform', function(e, data) { + this.parents('.cms-content:first').bind('reloadeditform', function(e, data) { self._onLoadNewPage(e, data); }); }, @@ -192,7 +192,7 @@ */ _onLoadNewPage: function(e, eventData) { var self = this; - + // finds a certain value in an array generated by jQuery.serializeArray() var findInSerializedArray = function(arr, name) { for(var i=0; i * { - float: right; - } - .cms-tree-view-modes * { - display: inline-block; - label { - color:$color-text-blue-link; + .cms-tree-view-modes { + float:right; + padding-top:$grid-y - 3; + * { + display: inline-block; + label { + color:$color-text-blue-link; + } } } @@ -502,7 +544,6 @@ body.cms { position: relative; .cms-panel-header { - padding: 0; margin: 0 0 $grid-y - 1; line-height: $grid-y * 3; @@ -513,12 +554,11 @@ body.cms { width: ($grid-x * 22); padding: $grid-y $grid-x; overflow: auto; + height:100%; } .cms-content-header { background-color: darken($color-widget-bg, 40%); - border-bottom: 2px solid darken($color-widget-bg, 50%); - @include background-image( linear-gradient(darken($color-widget-bg, 20%), darken($color-widget-bg, 40%)) ); @@ -814,6 +854,19 @@ form.member-profile-form { } } } + + .ui-tabs-nav { + li { + margin:0 0 -1px 0; + } + } + .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { + border-radius:0; + } + + .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { + border-radius:0; + } } .cms { @@ -896,6 +949,27 @@ form.member-profile-form { width: 100%; } + &#cms-content-tools-CMSPageEditController { + .cms-panel-content-collapsed { + width: 40px; + display: none; // Avoids FOUC + + h2, h3 { + border-bottom: 0; + margin-left: $grid-y; + @include transform-origin(bottom, right); + @include rotate(270deg); + } + .cms-panel-header { + width: 600px; + position:relative; + top:24px; + right:577px; + text-align:right; + } + } + } + .cms-panel-content-collapsed { width: 40px; display: none; // Avoids FOUC @@ -903,8 +977,14 @@ form.member-profile-form { h2, h3 { border-bottom: 0; margin-left: $grid-y; - @include transform-origin(bottom, left); - @include rotate(90deg); + @include transform-origin(bottom, right); + @include rotate(270deg); + } + .cms-panel-header { + width: 600px; + position:relative; + right:577px; + text-align:right; } } @@ -1156,44 +1236,63 @@ body.cms-dialog { * Item Edit Form * -------------------------------------------- */ -#Form_ItemEditForm { - .field { - width:100%; - .fieldgroup { - height:230px; - float:left; - .fieldgroup-field.first { - position:relative; - margin-left:0px; - } - .fieldgroup-field { - clear:both; - width:500px; - margin-left:420px; - img { - @include border-radius (8px); - border: { - width:3px; - style:dashed; - color:$color-menu-border; - } - position:absolute; - top:8px; - } - label { - font-weight:bold; - float:left; - padding-top:8px; - line-height:16px; - text-shadow: $color-text-light 1px 1px 0; - } - span { - float:left; - padding-left:8px; - font-style:italic; - color:lighten($color-text, 20%); - } - } +.cms-file-info { + overflow: auto; + // Emulate .field bottom border styling without applying .field class, + // as it messes up the nested .field element styling (blocklevel labels) + border-bottom: 1px solid $color-shadow-light; + @include box-shadow(0 1px 0 lighten($color-shadow-light, 95%)); + margin-bottom: $grid-x; + + // Preview might not always be available + .cms-file-info-preview { + float: left; + width: $grid-x * 22; // Same as ".field label" + margin-right: $grid-x; + + img { + max-width: $grid-x * 22; // Same as ".field label" } - } + } + .cms-file-info-data { + float: left; + + .field { + // Unsetting styles from .field, make it more compact visually + margin-bottom: 0; + padding-bottom: $grid-x; + border: none; + box-shadow: none; + label, span { + padding: 0; + } + } + } } + +form.small { + .cms-file-info-preview { + width: $grid-x*14; + + img { + max-width: $grid-x*14; + } + } + + .cms-file-info-data { + // Ensure it fits beside the image preview + max-width: 350px; + + // Reduced label widths to fit everything in smaller space + .field { + padding-bottom: 0; + + label { + width: $grid-x*14; + } + .middleColumn { + margin-left: $grid-x*15; + } + } + } +} \ No newline at end of file diff --git a/admin/scss/_tree.scss b/admin/scss/_tree.scss index 316aa9d91..dfa5e1f56 100644 --- a/admin/scss/_tree.scss +++ b/admin/scss/_tree.scss @@ -6,7 +6,7 @@ * but we need it earlier in order to correctly display the uninitialized tree. */ -.cms { +.cms, .TreeDropdownField .treedropdownfield-panel { .jstree { ul { display: block; @@ -397,7 +397,7 @@ } } -.cms-tree.jstree-apple { +.tree-holder.jstree-apple, .cms-tree.jstree-apple { & li.Root { & strong { diff --git a/admin/scss/_typography.scss b/admin/scss/_typography.scss index 8060bc774..7d95fca21 100644 --- a/admin/scss/_typography.scss +++ b/admin/scss/_typography.scss @@ -3,6 +3,12 @@ * * Contains the basic typography related styles for the admin interface. */ +body, html { + font-size: $font-base-size; + line-height: $grid-y * 2; + font-family: $font-family; + color: $color-text; +} .cms { h2, h3, h4, h5 { diff --git a/admin/scss/_uitheme.scss b/admin/scss/_uitheme.scss index 4dfc109b4..adc8efc94 100644 --- a/admin/scss/_uitheme.scss +++ b/admin/scss/_uitheme.scss @@ -55,10 +55,9 @@ background-color: darken($color-widget-bg, 20%); padding: 8px 8px 6px 8px; border-bottom: 2px solid darken($color-widget-bg, 35%); - @include linear-gradient(color-stops( - darken($color-widget-bg, 5%), - darken($color-widget-bg, 30%) - )); + @include background-image( + linear-gradient(darken($color-widget-bg, 5%), darken($color-widget-bg, 30%)) + ); border-bottom: 3px solid darken($color-widget-bg, 50%); padding: 8px; @include border-radius(0); diff --git a/admin/scss/ie7.scss b/admin/scss/ie7.scss index 92fd79e76..00788b594 100644 --- a/admin/scss/ie7.scss +++ b/admin/scss/ie7.scss @@ -51,4 +51,18 @@ html { // fix jstree themeroller plugin bug: tree disappear in IE7 .jstree li a .ui-icon { text-indent: 0px !important; +} + +.cms { + table.ss-gridfield-table { + tbody { + td { + button { + span.ui-button-text { + zoom:1; + } + } + } + } + } } \ No newline at end of file diff --git a/admin/templates/Includes/LeftAndMain_EditForm.ss b/admin/templates/Includes/LeftAndMain_EditForm.ss index d86dae7bf..92dccd0a0 100644 --- a/admin/templates/Includes/LeftAndMain_EditForm.ss +++ b/admin/templates/Includes/LeftAndMain_EditForm.ss @@ -3,6 +3,13 @@ <% end_if %>
+ + <% if Backlink %> + + <% _t('Back', 'Back') %> + + <% end_if %> +

<% control Controller %> <% include CMSBreadcrumbs %> @@ -22,12 +29,6 @@ - <% if Backlink %> - - <% _t('Back', 'Back') %> - - <% end_if %> -

diff --git a/admin/templates/Includes/LeftAndMain_Menu.ss b/admin/templates/Includes/LeftAndMain_Menu.ss index 0cbffd492..91350638b 100644 --- a/admin/templates/Includes/LeftAndMain_Menu.ss +++ b/admin/templates/Includes/LeftAndMain_Menu.ss @@ -12,7 +12,7 @@ <% control CurrentMember %> <% _t('Hello','Hi') %> - + <% if FirstName && Surname %>$FirstName $Surname<% else_if FirstName %>$FirstName<% else %>$Email<% end_if %> diff --git a/css/AssetUploadField.css b/css/AssetUploadField.css index ea297020b..75de568af 100644 --- a/css/AssetUploadField.css +++ b/css/AssetUploadField.css @@ -30,7 +30,7 @@ .ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel { position: absolute; top: 7px; right: 7px; } .ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel button { display: block; overflow: hidden; text-indent: -9999px; padding: 0; margin: 0; border: 0; width: 16px; height: 16px; cursor: pointer; -moz-box-shadow: none; -webkit-box-shadow: none; -o-box-shadow: none; box-shadow: none; } .ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform { /* don't use display none, for it will break jQuery('iframe').contents().height() */ height: 0; overflow: hidden; clear: both; } -.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe { width: 100%; } +.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe { margin: 16px; width: 100%; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-item-info { float: left; margin: 19px 0 0; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-fromcomputer { position: relative; overflow: hidden; display: block; margin: 0 10px 0 0; } .ss-assetuploadfield .ss-uploadfield-addfile .ss-uploadfield-item-uploador { float: left; font-weight: bold; font-size: 22px; padding: 0 20px; line-height: 70px; display: none; } diff --git a/css/GridField.css b/css/GridField.css index 1f92e5941..26a7f227b 100644 --- a/css/GridField.css +++ b/css/GridField.css @@ -7,20 +7,24 @@ .cms table.ss-gridfield-table tbody { background: #FFF; } .cms table.ss-gridfield-table tbody td { /* Emulate a link by default */ } .cms table.ss-gridfield-table tbody td button { border: none; background: none; margin: 0 0 0 2px; padding: 0; width: auto; text-shadow: none; } +.cms table.ss-gridfield-table tbody td button.ui-state-hover { background: none; border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } +.cms table.ss-gridfield-table tbody td button span.ui-button-text { text-indent: -9999em; background: url(../images/icons/decline.png) no-repeat 0 2px; padding: 0; width: 20px; height: 20px; } +.cms table.ss-gridfield-table tbody td a.edit-link { display: inline-block; height: 20px; width: 20px; text-indent: -9999em; background: url(../images/icons/document--pencil.png) no-repeat 0 1px; } .cms table.ss-gridfield-table tfoot { color: #1d2224; } .cms table.ss-gridfield-table tfoot tr td { background: #95a5ab; padding: .7em; border-bottom: 1px solid rgba(0, 0, 0, 0.1); } .cms table.ss-gridfield-table tr.title { -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; } .cms table.ss-gridfield-table tr.title th { position: relative; background: #7f9198; border-top: 1px solid rgba(0, 0, 0, 0.1); padding: 5px; min-height: 40px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b1c0c5), color-stop(100%, #7f9198)); background-image: -webkit-linear-gradient(#b1c0c5, #7f9198); background-image: -moz-linear-gradient(#b1c0c5, #7f9198); background-image: -o-linear-gradient(#b1c0c5, #7f9198); background-image: -ms-linear-gradient(#b1c0c5, #7f9198); background-image: linear-gradient(#b1c0c5, #7f9198); -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; } -.cms table.ss-gridfield-table tr.title th h2 { padding: 0px; font-size: 16px; color: #fff; margin: 0; display: inline; } -.cms table.ss-gridfield-table tr.title th .new { font-size: 14px; border-color: rgba(0, 0, 0, 0.1); float: right; } +.cms table.ss-gridfield-table tr.title th h2 { padding: 0px; font-size: 16.8px; color: #fff; margin: 3px 8px 0; display: inline-block; } +.cms table.ss-gridfield-table tr.title th .new { font-size: 14.4px; border-color: rgba(0, 0, 0, 0.1); float: right; } .cms table.ss-gridfield-table tr.sortable-header { background: #bac8ce; } +.cms table.ss-gridfield-table tr.sortable-header th { padding: 0px; } .cms table.ss-gridfield-table tr:hover { background: #FFFAD6 !important; } .cms table.ss-gridfield-table tr:first-child { background: transparent; } .cms table.ss-gridfield-table tr.ss-gridfield-even { background: #f0f4f7; } .cms table.ss-gridfield-table tr.ss-gridfield-even.ss-gridfield-last { border-bottom: none; } .cms table.ss-gridfield-table tr.even { background: #f0f4f7; } .cms table.ss-gridfield-table tr th { font-weight: bold; font-size: 12px; color: #FFF; padding: 5px; border-right: 1px solid rgba(0, 0, 0, 0.1); } -.cms table.ss-gridfield-table tr th div.fieldgroup, .cms table.ss-gridfield-table tr th div.fieldgroup-field { width: auto; } +.cms table.ss-gridfield-table tr th div.fieldgroup, .cms table.ss-gridfield-table tr th div.fieldgroup-field { width: 100%; position: relative; } .cms table.ss-gridfield-table tr th div.fieldgroup { min-width: 200px; padding-right: 0; } .cms table.ss-gridfield-table tr th.extra, .cms table.ss-gridfield-table tr th.action { padding: 0; cursor: default; } .cms table.ss-gridfield-table tr th.extra button.ss-ui-button, .cms table.ss-gridfield-table tr th.extra button:hover.ss-ui-button, .cms table.ss-gridfield-table tr th.action button.ss-ui-button, .cms table.ss-gridfield-table tr th.action button:hover.ss-ui-button { margin-left: .9em; color: #222; } @@ -28,16 +32,27 @@ .cms table.ss-gridfield-table tr th.main span { text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; } .cms table.ss-gridfield-table tr th.extra { background: #bac8ce; padding: 5px; border-top: rgba(0, 0, 0, 0.3); } .cms table.ss-gridfield-table tr th.extra span { width: auto; display: inline; position: static; } +.cms table.ss-gridfield-table tr th.extra span input { height: 28px; } .cms table.ss-gridfield-table tr th.extra button.ss-ui-button { padding: .3em; line-height: 1; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; position: relative; border-bottom-width: 0; -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; } .cms table.ss-gridfield-table tr th.action { border-right: 0; } .cms table.ss-gridfield-table tr th.first { -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; } .cms table.ss-gridfield-table tr th.last { -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; } .cms table.ss-gridfield-table tr th button:hover { color: #ccc !important; /* Not sure why IE think it needs this */ } .cms table.ss-gridfield-table tr th button.ss-gridfield-sort:hover { color: #fff !important; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.cms table.ss-gridfield-table tr th button.ss-gridfield-sort { background: transparent url(../images/arrows-01.png) no-repeat right 2px; border: none; width: 100%; text-align: left; padding: 4px 0; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; color: #fff; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; } +.cms table.ss-gridfield-table tr th button.ss-gridfield-sort { background: transparent url(../images/arrows.png) no-repeat right 6px; border: none; width: 100%; text-align: left; padding: 4px 0; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; color: #fff; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; } +.cms table.ss-gridfield-table tr th button.ss-gridfield-sort:hover { background-position: right -34px; } +.cms table.ss-gridfield-table tr th button.ss-gridfield-sort.ss-gridfield-sorted-desc { background-position: right -72px; } +.cms table.ss-gridfield-table tr th button.ss-gridfield-sort.ss-gridfield-sorted-asc { background-position: right -116px; } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-filter.ss-ui-button { position: absolute; right: 7px; top: -28px; display: block; text-indent: -9999em; width: 30px; height: 28px; border-top-left-radius: 0px; border-bottom-left-radius: 0px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-width: 1px; border-color: #9a9a9a; background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, -webkit-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, -moz-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, -o-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, -ms-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat -40px 6px, linear-gradient(#ffffff, #d9d9d9); } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-filter.ss-ui-button:hover { background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4199cd), color-stop(100%, #2e7ead)); background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, -webkit-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, -moz-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, -o-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, -ms-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px 6px, linear-gradient(#4199cd, #2e7ead); } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-filter.ss-ui-button:active { background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4199cd), color-stop(100%, #2e7ead)); background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, -webkit-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, -moz-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, -o-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, -ms-linear-gradient(#4199cd, #2e7ead); background: url(../images/icons/filter-icons.png) no-repeat -16px -17px, linear-gradient(#4199cd, #2e7ead); -moz-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); -webkit-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); -o-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-reset.ss-ui-button { position: absolute; right: 36px; top: -28px; display: block; text-indent: -9999em; width: 30px; height: 28px; float: right; border-radius: 0px; border-bottom-width: 1px; border-color: #9a9a9a; background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, -webkit-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, -moz-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, -o-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, -ms-linear-gradient(#ffffff, #d9d9d9); background: url(../images/icons/filter-icons.png) no-repeat 8px 5px, linear-gradient(#ffffff, #d9d9d9); } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-reset.ss-ui-button:hover { background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ff0000), color-stop(100%, #cc0000)); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -webkit-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -moz-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -o-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -ms-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, linear-gradient(#ff0000, #cc0000); } +.cms table.ss-gridfield-table tr th button.ss-gridfield-button-reset.ss-ui-button:active { background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ff0000), color-stop(100%, #cc0000)); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -webkit-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -moz-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -o-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, -ms-linear-gradient(#ff0000, #cc0000); background: url(../images/icons/filter-icons.png) no-repeat 8px -17px, linear-gradient(#ff0000, #cc0000); -moz-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); -webkit-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); -o-box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); box-shadow: inset 0 1px 3px #17181a, 0 1px 0 rgba(255, 255, 255, 0.6); } .cms table.ss-gridfield-table tr th input.ss-gridfield-sort { padding: 2px; } .cms table.ss-gridfield-table tr th input.ss-gridfield-sort:focus { -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.cms table.ss-gridfield-table tr td { border-right: 1px solid rgba(0, 0, 0, 0.1); padding: 7px 12px; color: #666666; } +.cms table.ss-gridfield-table tr th span.non-sortable { padding: .4em 1em; } +.cms table.ss-gridfield-table tr td { border-right: 1px solid rgba(0, 0, 0, 0.1); padding: 6.4px 12px; color: #666666; } .cms table.ss-gridfield-table tr td.bottom-all { -moz-border-radius-bottomleft: 7px; -webkit-border-bottom-left-radius: 7px; -o-border-bottom-left-radius: 7px; -ms-border-bottom-left-radius: 7px; -khtml-border-bottom-left-radius: 7px; border-bottom-left-radius: 7px; -moz-border-radius-bottomright: 7px; -webkit-border-bottom-right-radius: 7px; -o-border-bottom-right-radius: 7px; -ms-border-bottom-right-radius: 7px; -khtml-border-bottom-right-radius: 7px; border-bottom-right-radius: 7px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b1c0c5), color-stop(100%, #7f9198)); background-image: -webkit-linear-gradient(#b1c0c5, #7f9198); background-image: -moz-linear-gradient(#b1c0c5, #7f9198); background-image: -o-linear-gradient(#b1c0c5, #7f9198); background-image: -ms-linear-gradient(#b1c0c5, #7f9198); background-image: linear-gradient(#b1c0c5, #7f9198); } .cms table.ss-gridfield-table tr.last td { border-bottom: 0 none; } .cms table.ss-gridfield-table td:first-child, .cms table.ss-gridfield-table th:first-child { border-left: 1px solid rgba(0, 0, 0, 0.1); } diff --git a/css/UploadField.css b/css/UploadField.css index e3946f47b..618c6ba2f 100644 --- a/css/UploadField.css +++ b/css/UploadField.css @@ -28,11 +28,9 @@ .ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel, .ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start { position: absolute; top: 10px; right: 0; } .ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-cancel button, .ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start button { display: block; overflow: hidden; text-indent: -9999px; padding: 0; margin: 0; border: 0; width: 16px; height: 16px; cursor: pointer; -moz-box-shadow: none; -webkit-box-shadow: none; -o-box-shadow: none; box-shadow: none; } .ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-start { right: 20px; } -.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform { /* don't use display none, for it will break jQuery('iframe').contents().height() */ height: 0; overflow: hidden; clear: both; margin-top: 8px; } -.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe { width: 100%; } +.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform { /* don't use display none, for it will break jQuery('iframe').contents().height() */ height: 0; overflow: hidden; clear: both; } +.ss-uploadfield .ss-uploadfield-files .ss-uploadfield-item-editform iframe { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(201, 205, 206, 0.8); width: 100%; } .ss-uploadfield .ss-uploadfield-addfile.borderTop { border-top: 1px solid #b3b3b3; } -body.ss-uploadfield-edit-iframe { padding: 16px 16px; } - .ss-upload .clear { clear: both; } .ss-upload .ss-uploadfield-fromcomputer input { /* since we can't really style the file input, we use this hack to make it as big as the button and hide it */ position: absolute; top: 0; right: 0; margin: 0; border: solid #000; border-width: 0 0 100px 200px; opacity: 0; filter: alpha(opacity=0); -o-transform: translate(250px, -50px) scale(1); -moz-transform: translate(-300px, 0) scale(4); direction: ltr; cursor: pointer; } diff --git a/docs/en/changelogs/3.0.0.md b/docs/en/changelogs/3.0.0.md index bbea24630..fb3b43c93 100644 --- a/docs/en/changelogs/3.0.0.md +++ b/docs/en/changelogs/3.0.0.md @@ -128,6 +128,13 @@ included through `translatable/_config.php`: Object::add_extension('SiteTree', 'Translatable'); Object::add_extension('SiteConfig', 'Translatable'); + +### Moved Group->IPRestrictions into a new 'securityextras' module + +IP restrictions for group memberships in the "Security" section were a rarely used feature, +and cluttered up the interface. We've decided to move it to a separate module +called [securityextras](https://github.com/silverstripe-labs/silverstripe-securityextras). +To continue using these restrictions, just install the module - no data migration required. ### Removed "auto-merging" of member records from `Member->onBeforeWrite()` @@ -174,3 +181,4 @@ BreadcrumbsTemplate.ss from cms/template to your theme or application. * `XML`: Use PHP's built-in SimpleXML instead * `DataObjectLog`: There is no replacement for this. * `GeoIP`: Moved to separate ["geoip" module](https://github.com/silverstripe-labs/silverstripe-geoip) + * `NZGovtPasswordValidator`: Moved to ["securityextras" module](https://github.com/silverstripe-labs/silverstripe-securityextras) diff --git a/docs/en/topics/grid-field.md b/docs/en/topics/grid-field.md index 790348c4a..7739c7627 100644 --- a/docs/en/topics/grid-field.md +++ b/docs/en/topics/grid-field.md @@ -51,7 +51,7 @@ If we wanted to make a simpler grid without pagination or filtering, we could do A `GridFieldConfig` is made up of a new of `GridFieldComponent` objects. `GridFieldComponent` is a family of interfaces. -## Build-in components +## Built-in components SilverStripe Framework comes with the following components that you can use out of the box. @@ -117,6 +117,18 @@ It's common for a component to implement several of these interfaces in order to * `GridField_ActionProvider`, to define the sortasc and sortdesc actions that add sort column and direction to the state. * `GridField_DataManipulator`, to alter the sorting of the data list based on the sort column and direction values in the state. + ### GridFieldRelationAdd + +A GridFieldRelationAdd is responsible for adding objects to another object's `has_many` and `many_many` relation, +as defined by the `[api:RelationList]` passed to the GridField constructor. +Objects can be searched through an input field (partially matching one or more fields). +Selecting from the results will add the object to the relation. + + :::php + $group = DataObject::get_one('Group'); + $config = GridFieldConfig::create()->addComponent(new GridFieldRelationAdd(array('FirstName', 'Surname', 'Email')); + $gridField = new GridField('Members', 'Members', $group->Members(), $config); + ## Component interfaces ### GridField_HTMLProvider diff --git a/filesystem/File.php b/filesystem/File.php index 0546ab92d..4aa32ee90 100644 --- a/filesystem/File.php +++ b/filesystem/File.php @@ -120,8 +120,28 @@ class File extends DataObject { 'xml','pdf', ); - protected static $labelSeparator = ':'; - + /** + * @var array Category identifiers mapped to commonly used extensions. + */ + static $app_categories = array( + 'audio' => array( + "aif" ,"au" ,"mid" ,"midi" ,"mp3" ,"ra" ,"ram" ,"rm","mp3" ,"wav" ,"m4a" ,"snd" ,"aifc" ,"aiff" ,"wma" ,"apl", + "avr" ,"cda" ,"mp4" ,"ogg" + ), + 'mov' => array( + "mpeg" ,"mpg" ,"m1v" ,"mp2" ,"mpa" ,"mpe" ,"ifo" ,"vob","avi" ,"wmv" ,"asf" ,"m2v" ,"qt" + ), + 'zip' => array( + "arc" ,"rar" ,"tar" ,"gz" ,"tgz" ,"bz2" ,"dmg" ,"jar","ace" ,"arj" ,"bz" ,"cab" + ), + 'image' => array( + "bmp" ,"gif" ,"jpg" ,"jpeg" ,"pcx" ,"tif" ,"png" ,"alpha","als" ,"cel" ,"icon" ,"ico" ,"ps" + ), + 'flash' => array( + 'swf', 'fla' + ) + ); + /** * @var If this is true, then restrictions set in {@link $allowed_max_file_size} and * {@link $allowed_extensions} will be applied to users with admin privileges as @@ -294,57 +314,63 @@ class File extends DataObject { return $this->canEdit($member); } - /* - * Generate and return the preview image / file upload / replace field for this File - * @return FormField + /** + * Returns the fields to power the edit screen of files in the CMS + * @return FieldList */ - protected function getFilePreview() { - //file upload + function getCMSFields() { + // Preview + if($this instanceof Image) { + $formattedImage = $this->getFormattedImage('SetWidth', Image::$asset_preview_width); + $thumbnail = $formattedImage ? $formattedImage->URL : ''; + $previewField = new LiteralField("ImageFull", + "{$this->Name}\n" + ); + } else { + $previewField = new LiteralField("ImageFull", $this->CMSThumbnail()); + } + + // Upload $uploadField = new UploadField('UploadField','Upload Field'); $uploadField->setConfig('previewMaxWidth', 40); $uploadField->setConfig('previewMaxHeight', 30); + $uploadField->setConfig('allowedMaxFileNumber', 1); //$uploadField->setTemplate('FileEditUploadField'); if ($this->ParentID) { $parent = $this->Parent(); if ($parent) { //set the parent that the Upload field should use for uploads $uploadField->setFolderName($parent->getFilename()); $uploadField->setRecord($parent); - //TODO: make the uploadField replace the existing file } } - return $uploadField; - } - - /** - * Returns the fields to power the edit screen of files in the CMS - * @return FieldList - */ - function getCMSFields() { - $urlLink = "
"; - $urlLink .= ""; - $urlLink .= "{$this->RelativeLink()}"; - $urlLink .= "
"; - //create the file attributes in a FieldGroup - $filePreview = new FieldGroup( - $this->getFilePreview(), - new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type').self::$labelSeparator), - new ReadonlyField("Filename", _t('AssetTableField.FILENAME','File name').self::$labelSeparator), - new ReadonlyField("Size", _t('AssetTableField.SIZE','File size').self::$labelSeparator, $this->getSize()), - new DateField_Disabled("Created", _t('AssetTableField.CREATED','First uploaded').self::$labelSeparator), - new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT','Last changed').self::$labelSeparator) - ); - $filePreview->setTitle("File preview"); - $filePreview->setName("FilePreview"); + $filePreview = FormField::create('CompositeField', + FormField::create('CompositeField', + $previewField + )->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'), + FormField::create('CompositeField', + FormField::create('CompositeField', + new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':'), + new ReadonlyField("Size", _t('AssetTableField.SIZE','File size') . ':', $this->getSize()), + $urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'), + sprintf('%s', $this->Link(), $this->RelativeLink()) + ), + new DateField_Disabled("Created", _t('AssetTableField.CREATED','First uploaded') . ':'), + new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT','Last changed') . ':') + ) + )->setName("FilePreviewData")->addExtraClass('cms-file-info-data') + )->setName("FilePreview")->addExtraClass('cms-file-info'); + $urlField->dontEscape = true; return new FieldList( new TabSet('Root', new Tab('Main', $filePreview, + //TODO: make the uploadField replace the existing file + // $uploadField, new TextField("Title", _t('AssetTableField.TITLE','Title')), new TextField("Name", _t('AssetTableField.FILENAME','Filename')), - new LiteralField("AbsoluteURL", $urlLink), //TODO: replace this is a proper preview new DropdownField("OwnerID", _t('AssetTableField.OWNER','Owner'), Member::mapInCMSGroups()) ) ) @@ -361,27 +387,10 @@ class File extends DataObject { */ public function appCategory() { $ext = strtolower($this->Extension); - switch($ext) { - case "aif": case "au": case "mid": case "midi": case "mp3": case "ra": case "ram": case "rm": - case "mp3": case "wav": case "m4a": case "snd": case "aifc": case "aiff": case "wma": case "apl": - case "avr": case "cda": case "mp4": case "ogg": - return "audio"; - - case "mpeg": case "mpg": case "m1v": case "mp2": case "mpa": case "mpe": case "ifo": case "vob": - case "avi": case "wmv": case "asf": case "m2v": case "qt": - return "mov"; - - case "arc": case "rar": case "tar": case "gz": case "tgz": case "bz2": case "dmg": case "jar": - case "ace": case "arj": case "bz": case "cab": - return "zip"; - - case "bmp": case "gif": case "jpg": case "jpeg": case "pcx": case "tif": case "png": case "alpha": - case "als": case "cel": case "icon": case "ico": case "ps": - return "image"; - - case "swf": - return "flash"; + foreach(self::$app_categories as $category => $exts) { + if(in_array($ext, $exts)) return $category; } + return false; } function CMSThumbnail() { @@ -804,46 +813,6 @@ class File extends DataObject { return 0; } } - - /** - * We've overridden the DataObject::get function for File so that the very large content field - * is excluded! - * - * @todo Admittedly this is a bit of a hack; but we need a way of ensuring that large - * TEXT fields don't stuff things up for the rest of us. Perhaps a separate search table would - * be a better way of approaching this? - * @deprecated alternative_instance_get() - */ - public function instance_get($filter = "", $sort = "", $join = "", $limit="", $containerClass = "DataObjectSet", $having="") { - Deprecation::notice('2.5', 'Use alternative_instance_get() instead.'); - - $query = $this->extendedSQL($filter, $sort, $limit, $join, $having); - $baseTable = reset($query->from); - - $excludeDbColumns = array('Content'); - - // Work out which columns we're actually going to select - // In short, we select everything except File.Content - $dataobject_select = array(); - foreach($query->select as $item) { - /* - if($item == "\"File\".*") { - $fileColumns = DB::query("SHOW FIELDS IN \"File\"")->column(); - $columnsToAdd = array_diff($fileColumns, $excludeDbColumns); - foreach($columnsToAdd as $otherItem) $dataobject_select[] = '"File".' . $otherItem; - } else { - */ - $dataobject_select[] = $item; - //} - } - - $query->select = $dataobject_select; - - $records = $query->execute(); - $ret = $this->buildDataObjectSet($records, $containerClass); - - return $ret; - } public function flushCache() { parent::flushCache(); @@ -895,23 +864,6 @@ class File extends DataObject { return new ValidationResult(true); } - - /** - * Allow custom fields for uploads in {@link AssetAdmin}. - * Similar to {@link getCMSFields()}, but a more restricted - * set of fields which can be reliably set on any file type. - * - * Needs to be enabled through {@link AssetAdmin::$metadata_upload_enabled} - * - * @return FieldList - */ - function uploadMetadataFields() { - $fields = new FieldList(); - $fields->push(new TextField('Title', $this->fieldLabel('Title'))); - $this->extend('updateUploadMetadataFields', $fields); - - return $fields; - } /** * @var Array Only use lowercase extensions in here. diff --git a/filesystem/Folder.php b/filesystem/Folder.php index 319e5daf8..b9796078f 100644 --- a/filesystem/Folder.php +++ b/filesystem/Folder.php @@ -408,7 +408,12 @@ class Folder extends File { */ function getCMSFields() { // Hide field on root level, which can't be renamed - $titleField = (!$this->ID || $this->ID === "root") ? new HiddenField("Name") : new TextField("Name", _t('Folder.NAME')); + if(!$this->ID || $this->ID === "root") { + $titleField = new HiddenField("Name"); + } else { + $titleField = new TextField("Name", $this->fieldLabel('Name')); + } + $fields = new FieldList( $titleField, new HiddenField('ParentID') diff --git a/forms/AjaxUniqueTextField.php b/forms/AjaxUniqueTextField.php index ece33ce03..ffdadde24 100644 --- a/forms/AjaxUniqueTextField.php +++ b/forms/AjaxUniqueTextField.php @@ -29,6 +29,8 @@ class AjaxUniqueTextField extends TextField { } function Field() { + Requirements::javascript(THIRDPARTY_DIR . "/prototype/prototype.js"); + Requirements::javascript(THIRDPARTY_DIR . "/behaviour/behaviour.js"); Requirements::add_i18n_javascript(SAPPHIRE_DIR . '/javascript/lang'); Requirements::javascript(SAPPHIRE_DIR . "/javascript/UniqueFields.js"); @@ -87,7 +89,7 @@ Behaviour.register({ else { Element.addClassName(self, 'inuse'); } - } + }, error: function(response) { } diff --git a/forms/CheckboxSetField.php b/forms/CheckboxSetField.php index 07e6d100d..2c0a44bed 100644 --- a/forms/CheckboxSetField.php +++ b/forms/CheckboxSetField.php @@ -184,10 +184,16 @@ class CheckboxSetField extends OptionsetField { $fieldname = $this->name ; if($fieldname && $record && ($record->has_many($fieldname) || $record->many_many($fieldname))) { $idList = array(); - if($this->value) foreach($this->value as $id => $bool) { - if($bool) { - $idList[] = $id; - } + // Works for both style - array('val1' => true, 'val2' => true). + // The element, move "filter" and "reset" buttons and display next to the current element - * ToDo ensure filter-button state is maintained after filtering (see resetState param) - * ToDo get working in IE 6-7 - */ - $('.ss-gridfield input.ss-gridfield-sort').entwine({ - onfocusin: function(e) { - // Dodgy results in IE <=7 & ignore if only one filter-field - countfields = $('.ss-gridfield input.ss-gridfield-sort').length; - if(($.browser.msie && $.browser.version <= 7) || countfields == 1) { - return false; - } - var eleInput = $(this); - - // Remove existing
and