From d579cea70dff0bb6a2574e4346a9b3ce90766b1a Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 30 Dec 2016 12:39:01 +0530 Subject: [PATCH] Configurable Website Sidebar in Web Pages (#2530) * [wip] website fixes * [added] Website Sidebar --- frappe/config/website.py | 4 + frappe/model/db_query.py | 4 +- frappe/public/css/website.css | 9 +- .../public/js/frappe/form/footer/timeline.js | 1 + frappe/public/less/website.less | 10 +- frappe/templates/base.html | 11 +- frappe/templates/includes/footer/footer.html | 14 +- .../includes/footer/footer_items.html | 6 +- frappe/templates/includes/navbar/navbar.html | 2 - frappe/website/doctype/web_page/web_page.json | 210 ++++++++++-------- frappe/website/doctype/web_page/web_page.py | 5 + .../doctype/website_sidebar/__init__.py | 0 .../website_sidebar/test_website_sidebar.py | 12 + .../website_sidebar/website_sidebar.js | 8 + .../website_sidebar/website_sidebar.json | 119 ++++++++++ .../website_sidebar/website_sidebar.py | 10 + .../doctype/website_sidebar_item/__init__.py | 0 .../website_sidebar_item.json | 123 ++++++++++ .../website_sidebar_item.py | 10 + .../website_theme/standard/standard.json | 5 +- 20 files changed, 447 insertions(+), 116 deletions(-) create mode 100644 frappe/website/doctype/website_sidebar/__init__.py create mode 100644 frappe/website/doctype/website_sidebar/test_website_sidebar.py create mode 100644 frappe/website/doctype/website_sidebar/website_sidebar.js create mode 100644 frappe/website/doctype/website_sidebar/website_sidebar.json create mode 100644 frappe/website/doctype/website_sidebar/website_sidebar.py create mode 100644 frappe/website/doctype/website_sidebar_item/__init__.py create mode 100644 frappe/website/doctype/website_sidebar_item/website_sidebar_item.json create mode 100644 frappe/website/doctype/website_sidebar_item/website_sidebar_item.py diff --git a/frappe/config/website.py b/frappe/config/website.py index 03ab7f454a..de66ca0959 100644 --- a/frappe/config/website.py +++ b/frappe/config/website.py @@ -17,6 +17,10 @@ def get_data(): "name": "Web Form", "description": _("User editable form on Website."), }, + { + "type": "doctype", + "name": "Website Sidebar", + }, { "type": "doctype", "name": "Website Slideshow", diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 9517651bed..4e9485da32 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -461,7 +461,7 @@ class DatabaseQuery(object): args.order_by = get_order_by(self.doctype, meta) def check_sort_by_table(self, order_by_query): - for order_by in order_by_query.split(","): + for order_by in order_by_query.split(","): if "." in order_by: tbl = order_by.split('.')[0].strip() if tbl not in self.tables: @@ -517,5 +517,5 @@ def get_order_by(doctype, meta): # draft docs always on top if meta.is_submittable: order_by = "`tab{0}`.docstatus asc, {1}".format(doctype, order_by) - + return order_by \ No newline at end of file diff --git a/frappe/public/css/website.css b/frappe/public/css/website.css index 388242e8d1..2aab6ddde6 100644 --- a/frappe/public/css/website.css +++ b/frappe/public/css/website.css @@ -435,8 +435,10 @@ h6 a { max-width: 100%; } .banner { - margin-top: 20px; - padding: 0px 20px; + padding: 10px 0px; +} +.banner img { + max-height: 50px; } .no-border { border: none !important; @@ -827,11 +829,10 @@ a.active { padding-bottom: 20px; } .footer-group { - margin-bottom: 28px; + margin-bottom: 1em; } .footer-group-label { display: inline-block; - font-size: 11px; } li .footer-child-item { margin: 15px 0px !important; diff --git a/frappe/public/js/frappe/form/footer/timeline.js b/frappe/public/js/frappe/form/footer/timeline.js index 095a4b47d6..84c24847d1 100644 --- a/frappe/public/js/frappe/form/footer/timeline.js +++ b/frappe/public/js/frappe/form/footer/timeline.js @@ -309,6 +309,7 @@ frappe.ui.form.Timeline = Class.extend({ } docinfo.versions.forEach(function(version) { + if(!version.data) return; var data = JSON.parse(version.data); // comment diff --git a/frappe/public/less/website.less b/frappe/public/less/website.less index b63d94700d..aa7372b281 100644 --- a/frappe/public/less/website.less +++ b/frappe/public/less/website.less @@ -63,8 +63,11 @@ h1, h2, h3, h4, h5, h6 { } .banner { - margin-top: 20px; - padding: 0px 20px; + padding: 10px 0px; + + img { + max-height: 50px; + } } .no-border { @@ -556,12 +559,11 @@ a.active { } .footer-group { - margin-bottom: 28px; + margin-bottom: 1em; } .footer-group-label { display:inline-block; - font-size: 11px; } diff --git a/frappe/templates/base.html b/frappe/templates/base.html index 6262da5cfb..655d636df2 100644 --- a/frappe/templates/base.html +++ b/frappe/templates/base.html @@ -48,16 +48,23 @@
+
{%- block banner -%} - {% include "templates/includes/banner_extension.html" ignore missing %} + {% include "templates/includes/banner_extension.html" ignore missing %} {% if banner_html -%} -
{{ banner_html or "" }}
+
+ +
{%- endif %} {%- endblock -%} {%- block navbar -%} {% include "templates/includes/navbar/navbar.html" %} {%- endblock -%} +
+
{%- block hero -%}{%- endblock -%} diff --git a/frappe/templates/includes/footer/footer.html b/frappe/templates/includes/footer/footer.html index 35c23f3254..9d50a2d493 100644 --- a/frappe/templates/includes/footer/footer.html +++ b/frappe/templates/includes/footer/footer.html @@ -3,17 +3,17 @@
-
{% if footer_items -%} - - {% endif %} +
+ {% include "templates/includes/footer/footer_items.html" %}
+ {% endif %}
- {% block extension %}{% include "templates/includes/footer/footer_extension.html" %}{% endblock %} + {% block extension %} + {% include "templates/includes/footer/footer_extension.html" %} + {% endblock %}
diff --git a/frappe/templates/includes/footer/footer_items.html b/frappe/templates/includes/footer/footer_items.html index bd726395a2..7bf2403a95 100644 --- a/frappe/templates/includes/footer/footer_items.html +++ b/frappe/templates/includes/footer/footer_items.html @@ -1,7 +1,7 @@ {% for page in footer_items %} {%- endif -%}
{% endfor %} diff --git a/frappe/templates/includes/navbar/navbar.html b/frappe/templates/includes/navbar/navbar.html index d90246579a..7ac8d6193e 100644 --- a/frappe/templates/includes/navbar/navbar.html +++ b/frappe/templates/includes/navbar/navbar.html @@ -1,4 +1,3 @@ -
-
\ No newline at end of file diff --git a/frappe/website/doctype/web_page/web_page.json b/frappe/website/doctype/web_page/web_page.json index 7e42ae90a1..86de79c23c 100644 --- a/frappe/website/doctype/web_page/web_page.json +++ b/frappe/website/doctype/web_page/web_page.json @@ -206,34 +206,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "show_sidebar", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Show Sidebar", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, { "allow_on_submit": 0, "bold": 0, @@ -267,7 +239,7 @@ "bold": 0, "collapsible": 0, "columns": 0, - "description": "Content in markdown format that appears on the main side of your page", + "description": "", "fieldname": "main_section", "fieldtype": "Text Editor", "hidden": 0, @@ -303,7 +275,7 @@ "in_filter": 0, "in_list_view": 0, "in_standard_filter": 0, - "label": "Custom Javascript", + "label": "Script", "length": 0, "no_copy": 0, "permlevel": 0, @@ -387,7 +359,7 @@ "in_filter": 0, "in_list_view": 0, "in_standard_filter": 0, - "label": "Custom CSS", + "label": "Style", "length": 0, "no_copy": 0, "permlevel": 0, @@ -428,6 +400,34 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "text_align", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Text Align", + "length": 0, + "no_copy": 0, + "options": "Left\nCenter\nRight", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -488,7 +488,7 @@ { "allow_on_submit": 0, "bold": 0, - "collapsible": 0, + "collapsible": 1, "columns": 0, "fieldname": "section_break_17", "fieldtype": "Section Break", @@ -498,6 +498,91 @@ "in_filter": 0, "in_list_view": 0, "in_standard_filter": 0, + "label": "Sidebar and Comments", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "show_sidebar", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Show Sidebar", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "website_sidebar", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Website Sidebar", + "length": 0, + "no_copy": 0, + "options": "Website Sidebar", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_20", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -539,61 +624,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "text_align", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Text Align", - "length": 0, - "no_copy": 0, - "options": "Left\nCenter\nRight", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_20", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, { "allow_on_submit": 0, "bold": 0, @@ -625,7 +655,7 @@ { "allow_on_submit": 0, "bold": 0, - "collapsible": 0, + "collapsible": 1, "columns": 0, "depends_on": "eval:!doc.__islocal", "description": "", @@ -637,7 +667,7 @@ "in_filter": 0, "in_list_view": 0, "in_standard_filter": 0, - "label": "", + "label": "Header and Description", "length": 0, "no_copy": 0, "permlevel": 0, @@ -719,7 +749,7 @@ "issingle": 0, "istable": 0, "max_attachments": 20, - "modified": "2016-12-29 14:40:31.000917", + "modified": "2016-12-29 07:51:57.437822", "modified_by": "Administrator", "module": "Website", "name": "Web Page", diff --git a/frappe/website/doctype/web_page/web_page.py b/frappe/website/doctype/web_page/web_page.py index 45165b0b58..33234a8197 100644 --- a/frappe/website/doctype/web_page/web_page.py +++ b/frappe/website/doctype/web_page/web_page.py @@ -47,6 +47,11 @@ class WebPage(WebsiteGenerator): if not self.show_title: context["no_header"] = 1 + if self.show_sidebar and self.website_sidebar: + context.sidebar_items = frappe.get_all('Website Sidebar Item', + filters=dict(parent=self.website_sidebar), fields=['title', 'route', '`group`'], + order_by='idx asc') + self.set_metatags(context) self.set_breadcrumbs(context) self.set_title_and_header(context) diff --git a/frappe/website/doctype/website_sidebar/__init__.py b/frappe/website/doctype/website_sidebar/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/website/doctype/website_sidebar/test_website_sidebar.py b/frappe/website/doctype/website_sidebar/test_website_sidebar.py new file mode 100644 index 0000000000..d49ea84a35 --- /dev/null +++ b/frappe/website/doctype/website_sidebar/test_website_sidebar.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe Technologies and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +# test_records = frappe.get_test_records('Website Sidebar') + +class TestWebsiteSidebar(unittest.TestCase): + pass diff --git a/frappe/website/doctype/website_sidebar/website_sidebar.js b/frappe/website/doctype/website_sidebar/website_sidebar.js new file mode 100644 index 0000000000..708d912180 --- /dev/null +++ b/frappe/website/doctype/website_sidebar/website_sidebar.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe Technologies and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Website Sidebar', { + refresh: function(frm) { + + } +}); diff --git a/frappe/website/doctype/website_sidebar/website_sidebar.json b/frappe/website/doctype/website_sidebar/website_sidebar.json new file mode 100644 index 0000000000..605c82d7fb --- /dev/null +++ b/frappe/website/doctype/website_sidebar/website_sidebar.json @@ -0,0 +1,119 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 1, + "autoname": "field:title", + "beta": 0, + "creation": "2016-12-29 07:48:06.319665", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "title", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Title", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "sidebar_items", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Sidebar Items", + "length": 0, + "no_copy": 0, + "options": "Website Sidebar Item", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2016-12-29 07:50:05.633460", + "modified_by": "Administrator", + "module": "Website", + "name": "Website Sidebar", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "is_custom": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Website Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/frappe/website/doctype/website_sidebar/website_sidebar.py b/frappe/website/doctype/website_sidebar/website_sidebar.py new file mode 100644 index 0000000000..5065cd0196 --- /dev/null +++ b/frappe/website/doctype/website_sidebar/website_sidebar.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe Technologies and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class WebsiteSidebar(Document): + pass diff --git a/frappe/website/doctype/website_sidebar_item/__init__.py b/frappe/website/doctype/website_sidebar_item/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/website/doctype/website_sidebar_item/website_sidebar_item.json b/frappe/website/doctype/website_sidebar_item/website_sidebar_item.json new file mode 100644 index 0000000000..95b7daca23 --- /dev/null +++ b/frappe/website/doctype/website_sidebar_item/website_sidebar_item.json @@ -0,0 +1,123 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2016-12-29 07:42:26.246725", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "title", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Title", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "route", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Route", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "group", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Group", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2016-12-29 07:42:26.246725", + "modified_by": "Administrator", + "module": "Website", + "name": "Website Sidebar Item", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/frappe/website/doctype/website_sidebar_item/website_sidebar_item.py b/frappe/website/doctype/website_sidebar_item/website_sidebar_item.py new file mode 100644 index 0000000000..83e987ed09 --- /dev/null +++ b/frappe/website/doctype/website_sidebar_item/website_sidebar_item.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe Technologies and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class WebsiteSidebarItem(Document): + pass diff --git a/frappe/website/website_theme/standard/standard.json b/frappe/website/website_theme/standard/standard.json index 5fe51b7280..e610d82582 100644 --- a/frappe/website/website_theme/standard/standard.json +++ b/frappe/website/website_theme/standard/standard.json @@ -2,6 +2,7 @@ "apply_style": 0, "apply_text_styles": 0, "creation": "2015-02-19 13:37:33.925909", + "css": ".navbar-header {\n display: none;\n}", "custom": 0, "docstatus": 0, "doctype": "Website Theme", @@ -10,9 +11,9 @@ "footer_text_color": "", "heading_style": "", "heading_webfont": "", - "idx": 17, + "idx": 26, "link_color": "", - "modified": "2016-08-03 06:59:24.539564", + "modified": "2016-12-29 05:40:17.289226", "modified_by": "Administrator", "module": "Website", "name": "Standard",