From e8268d5aef0b8f9c1ba417b214d89aec4f491c2d Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 17 Mar 2014 12:52:12 +0530 Subject: [PATCH] Expand Content Block to 12 cols, when sidebar has no content, remove style and script tags if present in jinja template blocks of style and script respectively. --- frappe/website/js/website.js | 46 +++++++++++++++++++++++------------- frappe/website/template.py | 2 ++ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/frappe/website/js/website.js b/frappe/website/js/website.js index 1d67d5e33a..5075da0490 100644 --- a/frappe/website/js/website.js +++ b/frappe/website/js/website.js @@ -269,10 +269,11 @@ $.extend(frappe, { $('[data-html-block]').each(function(i, section) { var $section = $(section); var stype = $section.attr("data-html-block"); + var block_data = data[stype] || ""; if(stype==="script") { $section.remove(); $("") - .html(data[stype] || "") + .html(block_data) .appendTo("body"); } else if(stype==="script_lib") { // render once @@ -282,7 +283,7 @@ $.extend(frappe, { .appendTo("body"); } } else { - $section.html(data[stype] || ""); + $section.html(block_data); } }); if(data.title) $("title").html(data.title); @@ -328,6 +329,32 @@ $.extend(frappe, { } } }) + }, + toggle_template_blocks: function() { + // this assumes frappe base template + $(".page-header").toggleClass("hidden", !!!$("[data-html-block='header']").text().trim()); + $(".page-footer").toggleClass("hidden", !!!$(".page-footer").text().trim()); + + // hide breadcrumbs if no breadcrumb content or if it is same as the header + $("[data-html-block='breadcrumbs'] .breadcrumb").toggleClass("hidden", + !$("[data-html-block='breadcrumbs']").text().trim() || + $("[data-html-block='breadcrumbs']").text().trim()==$("[data-html-block='header']").text().trim()); + + // to show full content width, when no sidebar content + $(".page-sidebar").toggleClass("hidden", !!!$("[data-html-block='sidebar']").text().trim()); + $(".page-sidebar").toggleClass("col-sm-push-9", !!$("[data-html-block='sidebar']").text().trim()); + $(".page-content").toggleClass("col-sm-12", !!!$("[data-html-block='sidebar']").text().trim()); + $(".page-content").toggleClass("col-sm-9 col-sm-pull-3", !!$("[data-html-block='sidebar']").text().trim()); + + // collapse sidebar in mobile view on page change + if(!$(".page-sidebar").hasClass("hidden-xs")) { + $(".toggle-sidebar").trigger("click"); + } + + // TODO add private pages to sidebar + // if(website.private_pages && $(".page-sidebar").length) { + // $(website.private_pages).prependTo(".page-sidebar"); + // } } }); @@ -471,20 +498,7 @@ $(document).ready(function() { }); $(document).on("page_change", function() { - $(".page-header").toggleClass("hidden", !!!$("[data-html-block='header']").text().trim()); - $(".page-footer").toggleClass("hidden", !!!$(".page-footer").text().trim()); - $("[data-html-block='breadcrumbs'] .breadcrumb").toggleClass("hidden", - $("[data-html-block='breadcrumbs']").text().trim()==$("[data-html-block='header']").text().trim()); - - if(!$(".page-sidebar").hasClass("hidden-xs")) { - $(".toggle-sidebar").trigger("click"); - } - - // add prive pages to sidebar - if(website.private_pages && $(".page-sidebar").length) { - $(data.private_pages).prependTo(".page-sidebar"); - } - + frappe.toggle_template_blocks(); $(document).trigger("apply_permissions"); frappe.datetime.refresh_when(); frappe.trigger_ready(); diff --git a/frappe/website/template.py b/frappe/website/template.py index 5a9fcf608c..bf79a71294 100644 --- a/frappe/website/template.py +++ b/frappe/website/template.py @@ -47,5 +47,7 @@ def render_blocks(context): frappe.get_template("templates/includes/sidebar.html").render(context)) out["title"] = strip_html(out.get("title") or "") + out["style"] = strip_html(out.get("style") or "") + out["script"] = strip_html(out.get("script") or "") return out