diff --git a/frappe/app.py b/frappe/app.py index 8d97dae8e7..1f0c969432 100644 --- a/frappe/app.py +++ b/frappe/app.py @@ -119,6 +119,10 @@ def make_form_dict(request): frappe.local.form_dict = frappe._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \ for k, v in (request.form or request.args).iteritems() }) + if "_" in frappe.local.form_dict: + # _ is passed by $.ajax so that the request is not cached by the browser. So, remove _ from form_dict + frappe.local.form_dict.pop("_") + application = local_manager.make_middleware(application) def serve(port=8000, profile=False, site=None, sites_path='.'): diff --git a/frappe/public/css/common.css b/frappe/public/css/common.css index a782566648..764860d825 100644 --- a/frappe/public/css/common.css +++ b/frappe/public/css/common.css @@ -111,10 +111,11 @@ a.badge-hover:active .badge { text-align: left; } .centered { - position: relative; + position: absolute; + top: 50%; left: 50%; - transform: translate(-50%, 0); - -webkit-transform: translate(-50%, 0); + transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); } .border-top { border-top: 1px solid #d1d8dd; diff --git a/frappe/public/css/desk.css b/frappe/public/css/desk.css index 06dcf9bada..44add6c2b8 100644 --- a/frappe/public/css/desk.css +++ b/frappe/public/css/desk.css @@ -111,10 +111,11 @@ a.badge-hover:active .badge { text-align: left; } .centered { - position: relative; + position: absolute; + top: 50%; left: 50%; - transform: translate(-50%, 0); - -webkit-transform: translate(-50%, 0); + transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); } .border-top { border-top: 1px solid #d1d8dd; diff --git a/frappe/public/css/form.css b/frappe/public/css/form.css index 528fcf8de4..3dfe152fb8 100644 --- a/frappe/public/css/form.css +++ b/frappe/public/css/form.css @@ -140,10 +140,14 @@ cursor: pointer; } @media (min-width: 768px) { - .form-column.col-sm-12 > form > .input-max-width { + .layout-main .form-column.col-sm-12 > form > .input-max-width { max-width: 50%; padding-right: 15px; } + .col-sm-6 .form-grid .form-column.col-sm-12 > form > .input-max-width { + max-width: none; + padding-right: 0px; + } } select.form-control { -webkit-appearance: none; diff --git a/frappe/public/css/website.css b/frappe/public/css/website.css index e074149655..926954e8db 100644 --- a/frappe/public/css/website.css +++ b/frappe/public/css/website.css @@ -111,10 +111,11 @@ a.badge-hover:active .badge { text-align: left; } .centered { - position: relative; + position: absolute; + top: 50%; left: 50%; - transform: translate(-50%, 0); - -webkit-transform: translate(-50%, 0); + transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); } .border-top { border-top: 1px solid #d1d8dd; @@ -286,13 +287,6 @@ body { margin-top: 20px; padding: 0px 20px; } -.missing-image { - background-color: #f7fafc; - padding: 40px; - width: 112px; - font-size: 32px; - color: #8d99a6; -} .no-border { border: none !important; } diff --git a/frappe/public/less/common.less b/frappe/public/less/common.less index cf449be9a3..10de35f02f 100644 --- a/frappe/public/less/common.less +++ b/frappe/public/less/common.less @@ -121,10 +121,11 @@ a.badge-hover& { } .centered { - position: relative; + position: absolute; + top: 50%; left: 50%; - transform: translate(-50%, 0); - -webkit-transform: translate(-50%, 0); + transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); } .border-(@position) { diff --git a/frappe/public/less/form.less b/frappe/public/less/form.less index e350f0cf2d..dbc4d9dee7 100644 --- a/frappe/public/less/form.less +++ b/frappe/public/less/form.less @@ -181,10 +181,16 @@ } @media (min-width: 768px) { - .form-column.col-sm-12 > form > .input-max-width { + .layout-main .form-column.col-sm-12 > form > .input-max-width { max-width: 50%; padding-right: 15px; } + + // don't max-width when in form-grid with half width + .col-sm-6 .form-grid .form-column.col-sm-12 > form > .input-max-width { + max-width: none; + padding-right: 0px; + } } select.form-control { diff --git a/frappe/public/less/website.less b/frappe/public/less/website.less index d981b4036f..118438c2b8 100644 --- a/frappe/public/less/website.less +++ b/frappe/public/less/website.less @@ -13,14 +13,6 @@ padding: 0px 20px; } -.missing-image { - background-color: @panel-bg; - padding: 40px; - width: 112px; - font-size: 32px; - color: @text-muted; -} - .no-border { border: none !important; } diff --git a/frappe/templates/includes/list/list.css b/frappe/templates/includes/list/list.css index ff95c03ce5..5bd71c5b70 100644 --- a/frappe/templates/includes/list/list.css +++ b/frappe/templates/includes/list/list.css @@ -1,10 +1,10 @@ .website-list .result { - border: 1px solid {{ border_color or "#d1d8dd" }}; + border: 1px solid {{ theme.border_color or "#d1d8dd" }}; } .website-list-row { display: block; - border-bottom: 1px solid {{ border_color or "#d1d8dd" }}; + border-bottom: 1px solid {{ theme.border_color or "#d1d8dd" }}; padding: 15px; } @@ -14,7 +14,7 @@ .website-list-filters { padding: 15px; - border: 1px solid {{ border_color or "#d1d8dd" }}; + border: 1px solid {{ theme.border_color or "#d1d8dd" }}; border-bottom: none; } diff --git a/frappe/templates/includes/website_theme/footer.css b/frappe/templates/includes/website_theme/footer.css index 3b17c05bf8..8a368bb979 100644 --- a/frappe/templates/includes/website_theme/footer.css +++ b/frappe/templates/includes/website_theme/footer.css @@ -1,7 +1,6 @@ -{%- set footer_border_color = get_shade(theme.footer_color, 10) -%} .web-footer { background-color: {{ theme.footer_color }}; - border-top: 1px solid {{ footer_border_color }}; + border-top: 1px solid {{ theme.footer_border_color }}; } .web-footer, @@ -16,5 +15,5 @@ } .web-footer input { - border: 1px solid {{ footer_border_color }}; + border: 1px solid {{ theme.footer_border_color }}; } diff --git a/frappe/templates/pages/website_theme.css b/frappe/templates/pages/website_theme.css index ab55a743d1..4bc206fa16 100644 --- a/frappe/templates/pages/website_theme.css +++ b/frappe/templates/pages/website_theme.css @@ -2,7 +2,6 @@ {%- set font_family_sans_serif = '"Helvetica Neue", Helvetica, Arial, sans-serif' -%} {%- set heading_selectors = "h1, h2, h3, h4, h5, h6" -%} -{%- set border_color = get_shade(theme.background_color, 10) -%} {{ theme.webfont_import or "" }} diff --git a/frappe/templates/pages/website_theme.py b/frappe/templates/pages/website_theme.py index 0c0989d667..789f814820 100644 --- a/frappe/templates/pages/website_theme.py +++ b/frappe/templates/pages/website_theme.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import re import frappe +from frappe.website.utils import get_shade from frappe.website.doctype.website_theme.website_theme import get_active_theme no_sitemap = 1 @@ -35,6 +36,9 @@ def prepare(theme): if not theme.get(d): theme.set(d, default_properties[d]) + theme.footer_border_color = get_shade(theme.footer_color, 10) + theme.border_color = get_shade(theme.background_color, 10) + webfonts = list(set(theme.get(key) for key in ("heading_webfont", 'text_webfont') if theme.get(key))) diff --git a/frappe/website/doctype/website_settings/website_settings.py b/frappe/website/doctype/website_settings/website_settings.py index 3a588b2234..131369eff4 100644 --- a/frappe/website/doctype/website_settings/website_settings.py +++ b/frappe/website/doctype/website_settings/website_settings.py @@ -113,8 +113,8 @@ def get_website_settings(): context.encoded_title = quote(encode(context.title or ""), str("")) - for update_website_params in hooks.update_website_params or []: - frappe.get_attr(update_website_params)(context) + for update_website_context in hooks.update_website_context or []: + frappe.get_attr(update_website_context)(context) context.web_include_js = hooks.web_include_js or [] diff --git a/frappe/website/doctype/website_theme/website_theme.py b/frappe/website/doctype/website_theme/website_theme.py index 12a389bc6e..756dde3fb3 100644 --- a/frappe/website/doctype/website_theme/website_theme.py +++ b/frappe/website/doctype/website_theme/website_theme.py @@ -64,7 +64,7 @@ def add_website_theme(context): bootstrap = frappe.get_hooks("bootstrap")[0] website_theme = get_active_theme() if website_theme: - context.website_theme = website_theme + context.theme = website_theme if website_theme.bootstrap: bootstrap = website_theme.bootstrap