diff --git a/wagtail/wagtailadmin/edit_handlers.py b/wagtail/wagtailadmin/edit_handlers.py index 2d5490984..175c63225 100644 --- a/wagtail/wagtailadmin/edit_handlers.py +++ b/wagtail/wagtailadmin/edit_handlers.py @@ -140,6 +140,10 @@ def extract_panel_definitions_from_model_class(model, exclude=None): return panels +def set_page_edit_handler(page_class, handlers): + page_class.handlers = handlers + + class EditHandler(object): """ Abstract class providing sensible default behaviours for objects implementing @@ -326,10 +330,11 @@ class BaseObjectList(BaseCompositeEditHandler): template = "wagtailadmin/edit_handlers/object_list.html" -def ObjectList(children, heading=""): +def ObjectList(children, heading="", classes=""): return type('_ObjectList', (BaseObjectList,), { 'children': children, 'heading': heading, + 'classes': classes }) diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/forms.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/forms.scss index 3a14a17ae..5a870fbcf 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/forms.scss +++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/forms.scss @@ -6,9 +6,6 @@ form { margin:0; padding:0; } - li{ - @include row(); - } } fieldset{ @@ -451,6 +448,7 @@ li.focused > .help{ } .fields li{ + @include row(); padding-top:0.5em; padding-bottom:1.2em; } diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/icons.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/icons.scss index 92e83bbe5..30a089a18 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/icons.scss +++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/icons.scss @@ -96,7 +96,6 @@ .icon-unlocked:before { content: "p"; } - .icon-doc-full-inverse:before { content: "r"; } diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/tabs.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/tabs.scss index 2c85d24e8..af0c496b1 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/tabs.scss +++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/tabs.scss @@ -1,32 +1,31 @@ .tab-nav{ - @include clearfix(); + @include row(); padding:0; + background:$color-grey-4; + overflow:hidden; li{ list-style-type:none; - width:48%; + width:33%; float:left; padding:0; position:relative; - - &:before,&:after{ - display:none; - } + margin-right:1px; } a{ @include transition(border-color 0.2s ease); background-color:lighten($color-teal-darker, 3%); outline:none; - line-height:3em; text-transform:uppercase; font-weight:700; font-size:1.2em; text-decoration:none; display:block; - padding:0 20px; + padding:0.7em; + padding-bottom:1em; + margin-bottom:-0.3em; color:white; border-top:0.3em solid lighten($color-teal-darker, 3%); - border-bottom:1px solid transparent; &:hover{ color:white; @@ -45,7 +44,6 @@ min-width:0.9em; color:white; background:$color-red; - content:attr(data-count); padding:0 0.3em; line-height:1.4em; @@ -61,10 +59,21 @@ border-top:0.3em solid $color-grey-1; } + li.settings a{ + &:before{ + font-family:wagtail; + vertical-align:middle; + text-transform:none; + content:"w"; + margin-right:0.5em; + font-size:1.2em; + } + } + /* For cases where tab-nav should merge with header */ &.merged{ - background-color:$color-header-bg; margin-top:0; + background-color:$color-header-bg; } } .tab-content{ @@ -79,14 +88,32 @@ } @media screen and (min-width: $breakpoint-mobile){ - .tab-nav li{ - width:auto; - padding:0; - margin-left:0.7em; - } + .tab-nav{ + /* For cases where tab-nav should merge with header */ + &.merged{ + background-color:$color-header-bg; + } - .tab-nav a{ - padding:0 50px; + li{ + width:auto; + padding:0; + margin-left:0.7em; + + &.tab-right{ + float:right; + margin-right:0.7em; + } + } + + a{ + padding-left:$desktop-nice-padding - 10; + padding-right:$desktop-nice-padding - 10; + } + + li.settings a{ + padding-left:2em; + padding-right:2em; + } } .modal-content .tab-nav li{ diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/tabbed_interface.html b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/tabbed_interface.html index 5bbccb03b..813e40f53 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/tabbed_interface.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/tabbed_interface.html @@ -1,12 +1,12 @@
{% for child in self.children %} -
+
{{ child.render_as_object }}
{% endfor %} diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index bb53a9688..b91776e7f 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -581,7 +581,8 @@ def get_page_edit_handler(page_class): if page_class not in PAGE_EDIT_HANDLERS: PAGE_EDIT_HANDLERS[page_class] = TabbedInterface([ ObjectList(page_class.content_panels, heading='Content'), - ObjectList(page_class.promote_panels, heading='Promote') + ObjectList(page_class.promote_panels, heading='Promote'), + ObjectList(page_class.settings_panels, heading='Settings', classes="tab-right settings") ]) return PAGE_EDIT_HANDLERS[page_class]