diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 0edaa92d2f..caa7093874 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -11,7 +11,7 @@ error_report_email = "support@erpnext.com" app_include_js = "assets/js/erpnext.min.js" app_include_css = "assets/css/erpnext.css" web_include_js = "assets/js/erpnext-web.min.js" -web_include_css = "assets/css/shopping-cart-web.css" +web_include_css = "assets/erpnext/css/website.css" after_install = "erpnext.setup.install.after_install" diff --git a/erpnext/public/css/erpnext.css b/erpnext/public/css/erpnext.css index e524a7c550..7259580b6a 100644 --- a/erpnext/public/css/erpnext.css +++ b/erpnext/public/css/erpnext.css @@ -1,120 +1,97 @@ .erpnext-footer { - margin: 11px auto; - text-align: center; + margin: 11px auto; + text-align: center; } - .show-all-reports { - margin-top: 5px; - font-size: 11px; + margin-top: 5px; + font-size: 11px; } - /* toolbar */ .toolbar-splash { - width: 32px; - height: 32px; - margin: -10px auto; + width: 32px; + height: 32px; + margin: -10px auto; } - /* pos */ -.pos { -} - .pos-item { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - cursor: pointer; - padding: 5px; - height: 0px; - padding-bottom: 38%; - width: 30%; - margin: 1.6%; - border: 1px solid #d1d8dd; -} - + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + padding: 5px; + height: 0px; + padding-bottom: 38%; + width: 30%; + margin: 1.6%; + border: 1px solid #d1d8dd; +} .pos-item-text { - padding: 0px 5px; + padding: 0px 5px; } - .pos-item .item-code { - margin-bottom: 0px; + margin-bottom: 0px; } - .pos-item .no-image { - background-color: #fafbfc; - border: 1px dashed #d1d8dd; + background-color: #fafbfc; + border: 1px dashed #d1d8dd; } - .pos-item-image { - padding-bottom: 100%; - background-size: cover; - border: 1px solid transparent; + padding-bottom: 100%; + background-size: cover; + border: 1px solid transparent; } - .pos-item-area { - border: 1px solid #d1d8dd; - border-top: none; + border: 1px solid #d1d8dd; + border-top: none; } - .pos-item-toolbar { - padding: 10px 0px; - border-bottom: 1px solid #d1d8dd; + padding: 10px 0px; + border-bottom: 1px solid #d1d8dd; } - .item-list-area { - padding: 15px 0px; + padding: 15px 0px; } - -.pos-toolbar, .pos-bill-toolbar { - padding: 10px 0px; - border-bottom: 1px solid #d1d8dd; - height: 51px; +.pos-toolbar, +.pos-bill-toolbar { + padding: 10px 0px; + border-bottom: 1px solid #d1d8dd; + height: 51px; } - .pos-item-toolbar .form-group { - margin-bottom: 0px; + margin-bottom: 0px; } - .pos-bill-wrapper { - border: 1px solid #d1d8dd; - border-top: none; - margin-right: -1px; + border: 1px solid #d1d8dd; + border-top: none; + margin-right: -1px; } - .pos-bill { - margin-left: -15px; - margin-right: -15px; + margin-left: -15px; + margin-right: -15px; } - .pos-bill-row { - margin: 0px; - padding: 7px 0px; - border-top: 1px solid #d1d8dd; + margin: 0px; + padding: 7px 0px; + border-top: 1px solid #d1d8dd; } - .pos-bill-header { - border: none !important; - background-color: #f5f7fa; + border: none !important; + background-color: #f5f7fa; } - .pos-item-qty { - display: inline-block; + display: inline-block; } - .pos-qty-row > div { - padding: 5px 0px; + padding: 5px 0px; } - .pos-qty-btn { - margin-top: 3px; - cursor: pointer; - font-size: 120%; + margin-top: 3px; + cursor: pointer; + font-size: 120%; } - .pos .search-area .form-group { - max-width: 100% !important; + max-width: 100% !important; } - .pos .tax-table { - margin-bottom: 10px; + margin-bottom: 10px; } diff --git a/erpnext/public/css/shopping_cart.css b/erpnext/public/css/shopping_cart.css deleted file mode 100644 index 5e869720b5..0000000000 --- a/erpnext/public/css/shopping_cart.css +++ /dev/null @@ -1,11 +0,0 @@ -.item-main-image { - max-width: 100%; - margin: auto; -} -.web-long-description { - font-size: 18px; - line-height: 200%; -} -.item-stock { - margin-bottom: 10px !important; -} diff --git a/erpnext/public/css/website.css b/erpnext/public/css/website.css new file mode 100644 index 0000000000..7d02940ba8 --- /dev/null +++ b/erpnext/public/css/website.css @@ -0,0 +1,50 @@ +.web-long-description { + font-size: 18px; + line-height: 200%; +} +.item-stock { + margin-bottom: 10px !important; +} +.product-link { + display: block; + text-align: center; +} +.product-image-wrapper { + max-width: 300px; + margin: auto; + border-radius: 4px; +} +@media (max-width: 767px) { + .product-image { + height: 0px; + padding: 0px 0px 100%; + overflow: hidden; + } +} +.product-image-square { + width: 100%; + height: 0; + padding: 50% 0px; + background-size: cover; + background-repeat: no-repeat; + background-position: center top; + border-radius: 0.5em; +} +.product-image.missing-image { + width: 100%; + height: 0; + padding: 50% 0px; + background-size: cover; + background-repeat: no-repeat; + background-position: center top; + border-radius: 0.5em; + border: 1px dashed #d1d8dd; + position: relative; +} +.product-image.missing-image .octicon { + font-size: 32px; + color: #d1d8dd; +} +.product-text { + padding: 15px 0px; +} diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js index 0c718b0065..f3852dfcd4 100644 --- a/erpnext/public/js/shopping_cart.js +++ b/erpnext/public/js/shopping_cart.js @@ -45,22 +45,16 @@ $.extend(shopping_cart, { set_cart_count: function() { var cart_count = getCookie("cart_count"); - var $cart = $("#website-post-login").find('[data-label="Cart"]'); + var $cart = $('.dropdown [data-label="Cart"]'); var $badge = $cart.find(".badge"); - var $cog = $("#website-post-login").find(".dropdown-toggle"); - var $cog_count = $cog.find(".cart-count"); if(cart_count) { if($badge.length === 0) { - var $badge = $('').prependTo($cart.find("a")); + var $badge = $('') + .prependTo($cart.find("a").addClass("badge-hover")); } $badge.html(cart_count); - if($cog_count.length === 0) { - var $cog_count = $('').insertAfter($cog.find(".icon-cog")); - } - $cog_count.html(cart_count); } else { $badge.remove(); - $cog_count.remove(); } } }); diff --git a/erpnext/public/less/erpnext.less b/erpnext/public/less/erpnext.less new file mode 100644 index 0000000000..dde04a4202 --- /dev/null +++ b/erpnext/public/less/erpnext.less @@ -0,0 +1,121 @@ +.erpnext-footer { + margin: 11px auto; + text-align: center; +} + +.show-all-reports { + margin-top: 5px; + font-size: 11px; +} + +/* toolbar */ +.toolbar-splash { + width: 32px; + height: 32px; + margin: -10px auto; +} + +/* pos */ +.pos { +} + +.pos-item { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + padding: 5px; + height: 0px; + padding-bottom: 38%; + width: 30%; + margin: 1.6%; + border: 1px solid #d1d8dd; +} + +.pos-item-text { + padding: 0px 5px; +} + +.pos-item .item-code { + margin-bottom: 0px; +} + +.pos-item .no-image { + background-color: #fafbfc; + border: 1px dashed #d1d8dd; +} + +.pos-item-image { + padding-bottom: 100%; + background-size: cover; + border: 1px solid transparent; +} + +.pos-item-area { + border: 1px solid #d1d8dd; + border-top: none; +} + +.pos-item-toolbar { + padding: 10px 0px; + border-bottom: 1px solid #d1d8dd; +} + +.item-list-area { + padding: 15px 0px; +} + +.pos-toolbar, .pos-bill-toolbar { + padding: 10px 0px; + border-bottom: 1px solid #d1d8dd; + height: 51px; +} + +.pos-item-toolbar .form-group { + margin-bottom: 0px; +} + +.pos-bill-wrapper { + border: 1px solid #d1d8dd; + border-top: none; + margin-right: -1px; +} + +.pos-bill { + margin-left: -15px; + margin-right: -15px; +} + +.pos-bill-row { + margin: 0px; + padding: 7px 0px; + border-top: 1px solid #d1d8dd; +} + +.pos-bill-header { + border: none !important; + background-color: #f5f7fa; +} + +.pos-item-qty { + display: inline-block; +} + +.pos-qty-row > div { + padding: 5px 0px; +} + +.pos-qty-btn { + margin-top: 3px; + cursor: pointer; + font-size: 120%; +} + +.pos .search-area .form-group { + max-width: 100% !important; +} + +.pos .tax-table { + margin-bottom: 10px; +} + diff --git a/erpnext/public/less/website.less b/erpnext/public/less/website.less new file mode 100644 index 0000000000..c42cb4cf6c --- /dev/null +++ b/erpnext/public/less/website.less @@ -0,0 +1,53 @@ +@border-color: #d1d8dd; + +.web-long-description { + font-size: 18px; + line-height: 200%; +} +.item-stock { + margin-bottom: 10px !important; +} + +.product-link { + display: block; + text-align: center; +} + +.product-image-wrapper { + max-width: 300px; + margin: auto; + border-radius: 4px; +} + +@media (max-width: 767px) { + .product-image { + height: 0px; + padding: 0px 0px 100%; + overflow: hidden; + } +} + +.product-image-square { + width: 100%; + height: 0; + padding: 50% 0px; + background-size: cover; + background-repeat: no-repeat; + background-position: center top; + border-radius: 0.5em; +} + +.product-image.missing-image { + .product-image-square; + border: 1px dashed @border-color; + position: relative; +} + +.product-image.missing-image .octicon { + font-size: 32px; + color: @border-color; +} + +.product-text { + padding: 15px 0px; +} diff --git a/erpnext/shopping_cart/utils.py b/erpnext/shopping_cart/utils.py index 67b6bc0352..6238fa2c74 100644 --- a/erpnext/shopping_cart/utils.py +++ b/erpnext/shopping_cart/utils.py @@ -25,7 +25,7 @@ def clear_cart_count(login_manager): if show_cart_count(): frappe.local.cookie_manager.delete_cookie("cart_count") -def update_website_params(context): +def update_website_context(context): cart_enabled = is_cart_enabled() context["shopping_cart_enabled"] = cart_enabled @@ -44,6 +44,6 @@ def update_my_account_context(context): {"label": _("Orders"), "url": "orders"}, {"label": _("Invoices"), "url": "invoices"}, {"label": _("Shipments"), "url": "shipments"}, - {"label": _("Issues"), "url": "tickets"}, + # {"label": _("Issues"), "url": "tickets"}, {"label": _("Addresses"), "url": "addresses"}, ]) diff --git a/erpnext/stock/doctype/item/item_list.js b/erpnext/stock/doctype/item/item_list.js index 8e96ce5765..168252ec12 100644 --- a/erpnext/stock/doctype/item/item_list.js +++ b/erpnext/stock/doctype/item/item_list.js @@ -1,6 +1,7 @@ frappe.listview_settings['Item'] = { add_fields: ["item_name", "stock_uom", "item_group", "image", "variant_of", "has_variants", "end_of_life", "is_sales_item"], + get_indicator: function(doc) { if(doc.end_of_life < frappe.datetime.get_today()) { return [__("Expired"), "grey", "end_of_life,<,Today"] diff --git a/erpnext/templates/generators/item.html b/erpnext/templates/generators/item.html index 8db39a3e3b..b6e1203c76 100644 --- a/erpnext/templates/generators/item.html +++ b/erpnext/templates/generators/item.html @@ -3,25 +3,19 @@ {% block header %}

{{ title }}

{% endblock %} {% block content %} +{% from "erpnext/templates/includes/macros.html" import product_image %}
{% include 'templates/includes/product_search_box.html' %}
-
+
{% if slideshow %} {% include "templates/includes/slideshow.html" %} {% else %} - {% if website_image %} - - {% else %} -
- {% include 'templates/includes/product_missing_image.html' %} -
- {% endif %} + {{ product_image(website_image, "product-full-image") }} {% endif %}
-
+
{{ web_long_description or description or _("No description given") }} diff --git a/erpnext/templates/generators/item_group.html b/erpnext/templates/generators/item_group.html index 6cc4212d98..348d330419 100644 --- a/erpnext/templates/generators/item_group.html +++ b/erpnext/templates/generators/item_group.html @@ -39,33 +39,12 @@ $(function() { {% block style %} {% endblock %} diff --git a/erpnext/templates/includes/cart.js b/erpnext/templates/includes/cart.js index c0b2f4613a..2495182fb4 100644 --- a/erpnext/templates/includes/cart.js +++ b/erpnext/templates/includes/cart.js @@ -105,8 +105,7 @@ $.extend(shopping_cart, { render_item_row: function($cart_items, doc) { doc.image_html = doc.website_image ? - '
' : - '{% include "templates/includes/product_missing_image.html" %}'; + '
': ""; if(doc.description === doc.item_name) doc.description = ""; @@ -265,7 +264,7 @@ $.extend(shopping_cart, { .html(msg || frappe._("Something went wrong!")) .toggle(true); } else { - window.location.href = "order?name=" + encodeURIComponent(r.message); + window.location.href = "/orders/" + encodeURIComponent(r.message); } } }); diff --git a/erpnext/templates/includes/macros.html b/erpnext/templates/includes/macros.html new file mode 100644 index 0000000000..aa44a1731b --- /dev/null +++ b/erpnext/templates/includes/macros.html @@ -0,0 +1,17 @@ +{% macro product_image_square(website_image, css_class="") %} +
+ {% if not website_image -%}{%- endif %} +
+{% endmacro %} + +{% macro product_image(website_image, css_class="") %} +
+ {% if website_image -%} + + {%- else -%} + + {%- endif %} +
+{% endmacro %} + diff --git a/erpnext/templates/includes/product_in_grid.html b/erpnext/templates/includes/product_in_grid.html index 27cc321d56..b670a7f425 100644 --- a/erpnext/templates/includes/product_in_grid.html +++ b/erpnext/templates/includes/product_in_grid.html @@ -1,8 +1,8 @@ +{% from "erpnext/templates/includes/macros.html" import product_image_square %} + -
-
-
+
+ {{ product_image_square(website_image) }}
{{ item_name }}
diff --git a/erpnext/templates/includes/product_missing_image.html b/erpnext/templates/includes/product_missing_image.html deleted file mode 100644 index 81b893533f..0000000000 --- a/erpnext/templates/includes/product_missing_image.html +++ /dev/null @@ -1 +0,0 @@ -
\ No newline at end of file