mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-23 15:09:20 +00:00
[webshop] [addresses] address selector, my addresses list
This commit is contained in:
@@ -5,14 +5,15 @@
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="index">Home</a> <span class="divider">/</span></li>
|
||||
<li><a href="index">Home</a></li>
|
||||
<li class="active">My Account</li>
|
||||
</ul>
|
||||
<h3>My Account</h3>
|
||||
<p><a href="profile"><i class="icon-user"></i> Change my name, password</a></p>
|
||||
<p><a href="orders"><i class="icon-list"></i> My Orders</a></p>
|
||||
<p><a href="tickets"><i class="icon-tags"></i> My Tickets</a></p>
|
||||
<p><a href="server.py?cmd=web_logout"><i class="icon-signout"></i> Logout</a></p>
|
||||
<p><a href="profile"><i class="icon-user icon-fixed-width"></i> Change my name, password</a></p>
|
||||
<p><a href="addresses"><i class="icon-map-marker icon-fixed-width"></i> My Addresses</a></p>
|
||||
<p><a href="orders"><i class="icon-list icon-fixed-width"></i> My Orders</a></p>
|
||||
<p><a href="tickets"><i class="icon-tags icon-fixed-width"></i> My Tickets</a></p>
|
||||
<p><a href="server.py?cmd=web_logout"><i class="icon-signout icon-fixed-width"></i> Logout</a></p>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
||||
123
website/templates/pages/address.html
Normal file
123
website/templates/pages/address.html
Normal file
@@ -0,0 +1,123 @@
|
||||
{% extends "app/website/templates/html/page.html" %}
|
||||
|
||||
{% set title=doc and doc.name or "New Address" %}
|
||||
{% set docname=(doc and doc.name or "") %}
|
||||
|
||||
{% macro render_fields(docfields) -%}
|
||||
{% for df in docfields -%}
|
||||
{% if df.fieldtype in ["Data", "Link"] -%}
|
||||
<fieldset>
|
||||
<label>{{ df.label }}</label>
|
||||
<input type="text" placeholder="Type {{ df.label }}"
|
||||
data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}"
|
||||
{% if doc and doc.fields.get(df.fieldname) -%} value="{{ doc.fields[df.fieldname] }}" {%- endif %}>
|
||||
</fieldset>
|
||||
{% elif df.fieldtype == "Check" -%}
|
||||
<fieldset class="checkbox">
|
||||
<label><input type="checkbox" data-fieldname="{{ df.fieldname }}"
|
||||
data-fieldtype="{{ df.fieldtype }}"
|
||||
{% if doc and cint(doc.fields.get(df.fieldname)) -%} checked="checked" {%- endif %}>
|
||||
{{ df.label }}</label>
|
||||
</fieldset>
|
||||
{% elif df.fieldtype == "Select" -%}
|
||||
<fieldset>
|
||||
<label>{{ df.label }}</label>
|
||||
<select data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}">
|
||||
{% for value in df.options.split("\n") -%}
|
||||
{% if doc and doc.fields.get(df.fieldname) == value -%}
|
||||
<option selected="selected">{{ value }}</option>
|
||||
{% else -%}
|
||||
<option>{{ value }}</option>
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
</select>
|
||||
</fieldset>
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="index">Home</a></li>
|
||||
<li><a href="account">My Account</a></li>
|
||||
<li><a href="addresses">My Addresses</a></li>
|
||||
<li class="active">{{ title }}</li>
|
||||
</ul>
|
||||
<h3><i class="icon-map-marker"></i> {{ title }}</h3>
|
||||
<button type="button" class="btn btn-primary pull-right" id="address-save"><i class="icon-ok"></i>
|
||||
{{ doc and "Save" or "Insert" }}</button>
|
||||
<div class="clearfix"></div>
|
||||
<hr>
|
||||
<div id="address-error" class="alert alert-danger" style="display: none;"></div>
|
||||
<form autocomplete="on">
|
||||
<div class="row">
|
||||
<section class="col col-lg-6">
|
||||
{{ render_fields(meta.left_fields) }}
|
||||
</section>
|
||||
<section class="col col-lg-6">
|
||||
{{ render_fields(meta.right_fields) }}
|
||||
</section>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
;(function() {
|
||||
$(document).ready(function() {
|
||||
bind_save();
|
||||
});
|
||||
|
||||
var bind_save = function() {
|
||||
$("#address-save").on("click", function() {
|
||||
var fields = {
|
||||
name: "{{ docname }}"
|
||||
};
|
||||
|
||||
$("form").find("[data-fieldname]").each(function(i, input) {
|
||||
var $input = $(input);
|
||||
var fieldname = $(input).attr("data-fieldname");
|
||||
var fieldtype = $(input).attr("data-fieldtype");
|
||||
|
||||
if(fieldtype == "Check") {
|
||||
fields[fieldname] = $input.is(":checked") ? 1 : 0;
|
||||
} else {
|
||||
fields[fieldname] = $input.val();
|
||||
}
|
||||
});
|
||||
|
||||
wn.call({
|
||||
btn: $(this),
|
||||
type: "POST",
|
||||
method: "website.helpers.cart.save_address",
|
||||
args: { fields: fields, address_fieldname: get_url_arg("address_fieldname") },
|
||||
callback: function(r) {
|
||||
if(r.exc) {
|
||||
var msg = "";
|
||||
if(r._server_messages) {
|
||||
msg = JSON.parse(r._server_messages || []).join("<br>");
|
||||
}
|
||||
|
||||
$("#address-error")
|
||||
.html(msg || "Something went wrong!")
|
||||
.toggle(true);
|
||||
} else if(get_url_arg("address_fieldname")) {
|
||||
window.location.href = "cart";
|
||||
} else {
|
||||
window.location.href = "address?name=" + encodeURIComponent(r.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
})();
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block css %}
|
||||
<style>
|
||||
fieldset {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
54
website/templates/pages/addresses.html
Normal file
54
website/templates/pages/addresses.html
Normal file
@@ -0,0 +1,54 @@
|
||||
{% extends "app/website/templates/html/page.html" %}
|
||||
|
||||
{% set title="My Addresses" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="index">Home</a></li>
|
||||
<li><a href="account">My Account</a></li>
|
||||
<li class="active">My Addresses</li>
|
||||
</ul>
|
||||
<h3><i class="icon-map-marker icon-fixed-width"></i> My Addresses</h3>
|
||||
<hr>
|
||||
<p><a class="btn btn-default" href="address"><i class="icon-plus"> New Address</i></a></p>
|
||||
<hr>
|
||||
<div id="address-list">
|
||||
<div class="progress progress-striped active">
|
||||
<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
;(function() {
|
||||
$(document).ready(function() {
|
||||
fetch_addresses();
|
||||
});
|
||||
|
||||
var fetch_addresses = function() {
|
||||
wn.call({
|
||||
method: "website.helpers.cart.get_addresses",
|
||||
callback: function(r) {
|
||||
$("#address-list .progress").remove();
|
||||
var $list = $("#address-list");
|
||||
|
||||
if(!(r.message && r.message.length)) {
|
||||
$list.html("<div class='alert'>No Addresses Found</div>");
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(r.message, function(i, address) {
|
||||
address.url_name = encodeURIComponent(address.name);
|
||||
$(repl('<div> \
|
||||
<p><a href="address?name=%(url_name)s">%(name)s</a></p> \
|
||||
<p>%(display)s</p> \
|
||||
<hr> \
|
||||
</div>', address)).appendTo($list);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
})();
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<h2><i class="icon-shopping-cart"></i> Shopping Cart</h2>
|
||||
<h2><i class="icon-shopping-cart"></i> {{ title }}</h2>
|
||||
<div class="progress progress-striped active">
|
||||
<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
|
||||
</div>
|
||||
@@ -20,17 +20,35 @@
|
||||
<div class="col col-lg-9 col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col col-lg-3"></div>
|
||||
<div class="col col-lg-9"><strong>Item Details</strong></div>
|
||||
<div class="col col-lg-9"><h4>Item Details</h4></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-lg-3 col-sm-3"><strong>Qty</strong></div>
|
||||
<div class="col col-lg-3 col-sm-3"><h4>Qty</h4></div>
|
||||
</div><hr>
|
||||
<div id="cart-items">
|
||||
</div>
|
||||
<hr>
|
||||
<div id="cart-taxes">
|
||||
</div>
|
||||
<hr>
|
||||
<div id="cart-addresses">
|
||||
<div class="row">
|
||||
<div class="col col-lg-6">
|
||||
<h4>Shipping Address</h4>
|
||||
<div id="cart-shipping-address" class="accordion"
|
||||
data-fieldname="shipping_address_name"></div>
|
||||
<button class="btn btn-default" type="button" id="cart-add-shipping-address">
|
||||
<span class="icon icon-plus"></span> New Address</button>
|
||||
</div>
|
||||
<div class="col col-lg-6">
|
||||
<h4>Billing Address</h4>
|
||||
<div id="cart-billing-address" class="accordion"
|
||||
data-fieldname="customer_address"></div>
|
||||
<button class="btn btn-default" type="button" id="cart-add-billing-address">
|
||||
<span class="icon icon-plus"></span> New Address</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
<button class="btn btn-success pull-right" type="button">Place Order</button>
|
||||
</div>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="index">Home</a> <span class="divider">/</span></li>
|
||||
<li><a href="account">My Account</a> <span class="divider">/</span></li>
|
||||
<li><a href="orders">My Orders</a> <span class="divider">/</span></li>
|
||||
<li><a href="index">Home</a></li>
|
||||
<li><a href="account">My Account</a></li>
|
||||
<li><a href="orders">My Orders</a></li>
|
||||
<li class="active">{{ doc.name }}</li>
|
||||
</ul>
|
||||
<h3><i class="icon-file"></i> {{ doc.name }}</h3>
|
||||
|
||||
@@ -14,7 +14,7 @@ wn.currency_symbols = {{ currency_symbols }};
|
||||
<li><a href="account">My Account</a> <span class="divider">/</span></li>
|
||||
<li class="active">My Orders</li>
|
||||
</ul>
|
||||
<h3><i class="icon-list"></i> My Orders</h3>
|
||||
<h3><i class="icon-list icon-fixed-width"></i> My Orders</h3>
|
||||
<hr>
|
||||
<div id="order-list" style="font-size: 13px;">
|
||||
<div class="progress progress-striped active">
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{% extends "app/website/templates/html/page.html" %}
|
||||
|
||||
{% set title="Sales Partners" %}
|
||||
{% set title="Partners" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<h2 id="blog-title">Partners</h2>
|
||||
<h2 id="blog-title">{{ title }}</h2>
|
||||
<hr>
|
||||
{% for partner_info in partners %}
|
||||
<div class="row">
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<button id="update_profile" type="submit" class="btn">Update</button>
|
||||
<button id="update_profile" type="submit" class="btn btn-default">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
{% block content %}
|
||||
<div class="col col-lg-12">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="index">Home</a> <span class="divider">/</span></li>
|
||||
<li><a href="account">My Account</a> <span class="divider">/</span></li>
|
||||
<li><a href="index">Home</a></li>
|
||||
<li><a href="account">My Account</a></li>
|
||||
<li class="active">My Tickets</li>
|
||||
</ul>
|
||||
<h3><i class="icon-tags"></i> My Tickets</h3>
|
||||
<h3><i class="icon-tags icon-fixed-width"></i> My Tickets</h3>
|
||||
<hr>
|
||||
<div id="ticket-list" style="font-size: 13px;">
|
||||
<div class="progress progress-striped active">
|
||||
|
||||
Reference in New Issue
Block a user