From 729085b9fc84c0684fc4c997ff7514fdb123a1aa Mon Sep 17 00:00:00 2001 From: matthewarkin Date: Mon, 25 Nov 2013 01:16:06 -0800 Subject: [PATCH 1/2] Layout Inheritance Each view folder no longer has a copy of the site layout. Each folder has its on layout which inherits from `views\layout.jade` The "child" layout will then optionally decide to include `category-nav.jade` in the `category-nav` block --- shop/views/account/layout.jade | 51 ++------------------------------- shop/views/category-nav.jade | 9 ++++++ shop/views/category/layout.jade | 51 ++------------------------------- shop/views/checkout/layout.jade | 40 +------------------------- shop/views/layout.jade | 41 ++++++++++++++++++++++++++ shop/views/main/layout.jade | 51 ++------------------------------- shop/views/product/layout.jade | 51 ++------------------------------- 7 files changed, 63 insertions(+), 231 deletions(-) create mode 100644 shop/views/category-nav.jade create mode 100644 shop/views/layout.jade diff --git a/shop/views/account/layout.jade b/shop/views/account/layout.jade index e3f9007..3c79eb6 100644 --- a/shop/views/account/layout.jade +++ b/shop/views/account/layout.jade @@ -1,48 +1,3 @@ -doctype 5 -html(lang="en") - head - title #{store} | #{title} - link(href="/css/bootstrap.min.css", rel="stylesheet") - link(href="/css/main.css", rel="stylesheet") - body - .modal.hide.fade#modal - .navbar.navbar-static-top - .navbar-inner - .container - ul.nav - li - a(href="/") Home - li - a(href="/about") About - li - a(href="/contact") Contact - if (!locals.logged) - li - a(data-toggle="modal", data-target="#modal", href="/modals/register") Register - li - a(data-toggle="modal", data-target="#modal", href="/modals/login") Login - else - li - a(href="/account/home") Account - li - a(href="/account/logout") Logout - #cart - include ../cart/cart - .container - a(href="/") - img(src="/img/style/header.png") - .navbar - .navbar-inner - ul.nav - each category in categories - li - a(href="/category/#{category.seo}") #{category.name} - form.navbar-search.pull-right - input.search-query(type="text", placeholder="Search") - .main - block content - hr - script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") - script(src="/js/bootstrap.min.js", type="text/javascript") - script(src="/js/controller/main.js") - block scripts \ No newline at end of file +extends ..\layout +block category-nav + include ..\category-nav.jade \ No newline at end of file diff --git a/shop/views/category-nav.jade b/shop/views/category-nav.jade new file mode 100644 index 0000000..2a2b58c --- /dev/null +++ b/shop/views/category-nav.jade @@ -0,0 +1,9 @@ +block category-nav + .navbar + .navbar-inner + ul.nav + each category in categories + li + a(href="/category/#{category.seo}") #{category.name} + form.navbar-search.pull-right + input.search-query(type="text", placeholder="Search") \ No newline at end of file diff --git a/shop/views/category/layout.jade b/shop/views/category/layout.jade index e3f9007..3c79eb6 100644 --- a/shop/views/category/layout.jade +++ b/shop/views/category/layout.jade @@ -1,48 +1,3 @@ -doctype 5 -html(lang="en") - head - title #{store} | #{title} - link(href="/css/bootstrap.min.css", rel="stylesheet") - link(href="/css/main.css", rel="stylesheet") - body - .modal.hide.fade#modal - .navbar.navbar-static-top - .navbar-inner - .container - ul.nav - li - a(href="/") Home - li - a(href="/about") About - li - a(href="/contact") Contact - if (!locals.logged) - li - a(data-toggle="modal", data-target="#modal", href="/modals/register") Register - li - a(data-toggle="modal", data-target="#modal", href="/modals/login") Login - else - li - a(href="/account/home") Account - li - a(href="/account/logout") Logout - #cart - include ../cart/cart - .container - a(href="/") - img(src="/img/style/header.png") - .navbar - .navbar-inner - ul.nav - each category in categories - li - a(href="/category/#{category.seo}") #{category.name} - form.navbar-search.pull-right - input.search-query(type="text", placeholder="Search") - .main - block content - hr - script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") - script(src="/js/bootstrap.min.js", type="text/javascript") - script(src="/js/controller/main.js") - block scripts \ No newline at end of file +extends ..\layout +block category-nav + include ..\category-nav.jade \ No newline at end of file diff --git a/shop/views/checkout/layout.jade b/shop/views/checkout/layout.jade index d44ad76..c920461 100644 --- a/shop/views/checkout/layout.jade +++ b/shop/views/checkout/layout.jade @@ -1,39 +1 @@ -doctype 5 -html(lang="en") - head - title #{store} | #{title} - link(href="/css/bootstrap.min.css", rel="stylesheet") - link(href="/css/main.css", rel="stylesheet") - body - .modal.hide.fade#modal - .navbar.navbar-static-top - .navbar-inner - .container - ul.nav - li - a(href="/") Home - li - a(href="/about") About - li - a(href="/contact") Contact - if (!locals.logged) - li - a(data-toggle="modal", data-target="#modal", href="/modals/register") Register - li - a(data-toggle="modal", data-target="#modal", href="/modals/login") Login - else - li - a(href="/account/home") Account - li - a(href="/account/logout") Logout - .container - a(href="/") - img(src="/img/style/header.png") - .main - block content - hr - script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") - script(src="/js/bootstrap.min.js", type="text/javascript") - script(src="/js/plugins/jquery.validate.min.js", type="text/javascript") - script(src="/js/controller/main.js") - block scripts \ No newline at end of file +extends ..\layout \ No newline at end of file diff --git a/shop/views/layout.jade b/shop/views/layout.jade new file mode 100644 index 0000000..92c2d33 --- /dev/null +++ b/shop/views/layout.jade @@ -0,0 +1,41 @@ +doctype 5 +html(lang="en") + head + title #{store} | #{title} + link(href="/css/bootstrap.min.css", rel="stylesheet") + link(href="/css/main.css", rel="stylesheet") + body + .modal.hide.fade#modal + .navbar.navbar-static-top + .navbar-inner + .container + ul.nav + li + a(href="/") Home + li + a(href="/about") About + li + a(href="/contact") Contact + if (!locals.logged) + li + a(data-toggle="modal", data-target="#modal", href="/modals/register") Register + li + a(data-toggle="modal", data-target="#modal", href="/modals/login") Login + else + li + a(href="/account/home") Account + li + a(href="/account/logout") Logout + #cart + include cart/cart + .container + a(href="/") + img(src="/img/style/header.png") + block category-nav + .main + block content + hr + script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") + script(src="/js/bootstrap.min.js", type="text/javascript") + script(src="/js/controller/main.js") + block scripts \ No newline at end of file diff --git a/shop/views/main/layout.jade b/shop/views/main/layout.jade index e3f9007..3c79eb6 100644 --- a/shop/views/main/layout.jade +++ b/shop/views/main/layout.jade @@ -1,48 +1,3 @@ -doctype 5 -html(lang="en") - head - title #{store} | #{title} - link(href="/css/bootstrap.min.css", rel="stylesheet") - link(href="/css/main.css", rel="stylesheet") - body - .modal.hide.fade#modal - .navbar.navbar-static-top - .navbar-inner - .container - ul.nav - li - a(href="/") Home - li - a(href="/about") About - li - a(href="/contact") Contact - if (!locals.logged) - li - a(data-toggle="modal", data-target="#modal", href="/modals/register") Register - li - a(data-toggle="modal", data-target="#modal", href="/modals/login") Login - else - li - a(href="/account/home") Account - li - a(href="/account/logout") Logout - #cart - include ../cart/cart - .container - a(href="/") - img(src="/img/style/header.png") - .navbar - .navbar-inner - ul.nav - each category in categories - li - a(href="/category/#{category.seo}") #{category.name} - form.navbar-search.pull-right - input.search-query(type="text", placeholder="Search") - .main - block content - hr - script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") - script(src="/js/bootstrap.min.js", type="text/javascript") - script(src="/js/controller/main.js") - block scripts \ No newline at end of file +extends ..\layout +block category-nav + include ..\category-nav.jade \ No newline at end of file diff --git a/shop/views/product/layout.jade b/shop/views/product/layout.jade index e3f9007..3c79eb6 100644 --- a/shop/views/product/layout.jade +++ b/shop/views/product/layout.jade @@ -1,48 +1,3 @@ -doctype 5 -html(lang="en") - head - title #{store} | #{title} - link(href="/css/bootstrap.min.css", rel="stylesheet") - link(href="/css/main.css", rel="stylesheet") - body - .modal.hide.fade#modal - .navbar.navbar-static-top - .navbar-inner - .container - ul.nav - li - a(href="/") Home - li - a(href="/about") About - li - a(href="/contact") Contact - if (!locals.logged) - li - a(data-toggle="modal", data-target="#modal", href="/modals/register") Register - li - a(data-toggle="modal", data-target="#modal", href="/modals/login") Login - else - li - a(href="/account/home") Account - li - a(href="/account/logout") Logout - #cart - include ../cart/cart - .container - a(href="/") - img(src="/img/style/header.png") - .navbar - .navbar-inner - ul.nav - each category in categories - li - a(href="/category/#{category.seo}") #{category.name} - form.navbar-search.pull-right - input.search-query(type="text", placeholder="Search") - .main - block content - hr - script(src="http://code.jquery.com/jquery.min.js", type="text/javascript") - script(src="/js/bootstrap.min.js", type="text/javascript") - script(src="/js/controller/main.js") - block scripts \ No newline at end of file +extends ..\layout +block category-nav + include ..\category-nav.jade \ No newline at end of file From 1d2acea387916a0796ac062c4cfdeb3a54d84fc2 Mon Sep 17 00:00:00 2001 From: "vadiraj.a" Date: Wed, 27 Nov 2013 11:15:46 -0500 Subject: [PATCH 2/2] Admin areas product details page enhanced --- admin/routes/products.js | 5 +- admin/views/products/product.jade | 93 ++++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 4 deletions(-) diff --git a/admin/routes/products.js b/admin/routes/products.js index 84e4581..84056d5 100644 --- a/admin/routes/products.js +++ b/admin/routes/products.js @@ -1,7 +1,7 @@ // Require needed modules var db = require('../data'), config = require('../../shop/config.json'); - +var moment = require('moment'); // Export functions module.exports = { @@ -34,7 +34,8 @@ module.exports = { title: config.store.tagline, logged: req.isAuthenticated(), user: req.user, - product: product + product: product, + moment: moment }); }); }, diff --git a/admin/views/products/product.jade b/admin/views/products/product.jade index 62dc87e..67c90c3 100644 --- a/admin/views/products/product.jade +++ b/admin/views/products/product.jade @@ -1,4 +1,93 @@ extends layout block content - .page-header - h2 #{product.name} \ No newline at end of file + .row + .page-header + h2 #{product.name} + + form.row + .span6 + h3 Details + table.table.table-striped.table-bordered + tbody + tr.success + th.span3 Name + td.span9 #{product.name} + tr + th SKU + td #{product.sku} + tr + th Category + td #{product.category} + tr + th UPC + td #{product.upc} + tr + th SEO + td #{product.seo} + tr + th Date + td #{moment(product.date).format("YYYY-MM-DD HH:mm")} + tr + th Featured + td #{product.featured} + + h3 Pricing + table.table.table-bordered + tbody + tr + th.span3 Pricing + td.span9 + table.table.table-condensed + tr + td List + td Retail + td % Saving + tr + td #{product.pricing.list} + td #{product.pricing.retail} + td #{product.pricing.pct_savings} + + + h3 Shipping + table.table.table-bordered + tbody + tr + th.span3 Weight + td.span9 #{product.shipping.weight} + tr + th.span3 Dimensions + td.span9 + table.table.table-condensed + tr + td Width + td Height + td Depth + tr + td #{product.shipping.dimensions.width} + td #{product.shipping.dimensions.height} + td #{product.shipping.dimensions.depth} + + .span6 + h3 Images + img(src="http://placehold.it/450x350") + //- .row.center + ul.thumbnails + li + img.img-polaroid(src="http://placehold.it/100x60") + li + img.img-polaroid(src="http://placehold.it/100x60") + li + img.img-polaroid(src="http://placehold.it/100x60") + li + img.img-polaroid(src="http://placehold.it/100x60") + + + table.table.table-bordered + tbody + tr + th.span3 Details + td.span9 #{JSON.stringify(product.details)} + + + +