mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-28 06:08:25 +00:00
Co-authored-by: diptanilsaha <diptanil@frappe.io>
This commit is contained in:
@@ -173,7 +173,9 @@ frappe.ui.form.on("BOM", {
|
|||||||
frm.set_intro(
|
frm.set_intro(
|
||||||
__("This is a Template BOM and will be used to make the work order for {0} of the item {1}", [
|
__("This is a Template BOM and will be used to make the work order for {0} of the item {1}", [
|
||||||
`<a class="variants-intro">variants</a>`,
|
`<a class="variants-intro">variants</a>`,
|
||||||
`<a href="/app/item/${frm.doc.item}">${frm.doc.item}</a>`,
|
`<a href="${frappe.utils.get_form_link("Item", frm.doc.item)}">${frappe.utils.escape_html(
|
||||||
|
frm.doc.item
|
||||||
|
)}</a>`,
|
||||||
]),
|
]),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -17,11 +17,11 @@
|
|||||||
<hr style="margin: 15px -15px;">
|
<hr style="margin: 15px -15px;">
|
||||||
<p>
|
<p>
|
||||||
{% if data.value && data.value != "BOM" %}
|
{% if data.value && data.value != "BOM" %}
|
||||||
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="/app/bom/{{ data.value }}">
|
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="/app/bom/{{ frappe.utils.escape_html(data.value) }}">
|
||||||
{{ __("Open BOM {0}", [data.value.bold()]) }}</a>
|
{{ __("Open BOM {0}", [data.value.bold()]) }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if data.item_code %}
|
{% if data.item_code %}
|
||||||
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="/app/item/{{ data.item_code }}">
|
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="/app/item/{{ frappe.utils.escape_html(data.item_code) }}">
|
||||||
{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
|
{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -20,11 +20,11 @@
|
|||||||
<hr style="margin: 15px -15px;">
|
<hr style="margin: 15px -15px;">
|
||||||
<p>
|
<p>
|
||||||
{% if data.value %}
|
{% if data.value %}
|
||||||
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="#Form/Work Order/{{ data.value }}">
|
<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="#Form/Work Order/{{ frappe.utils.escape_html(data.value) }}">
|
||||||
{{ __("Open Work Order {0}", [data.value.bold()]) }}</a>
|
{{ __("Open Work Order {0}", [data.value.bold()]) }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if data.item_code %}
|
{% if data.item_code %}
|
||||||
<a class="btn btn-default btn-xs" href="#Form/Item/{{ data.item_code }}">
|
<a class="btn btn-default btn-xs" href="#Form/Item/{{ frappe.utils.escape_html(data.item_code) }}">
|
||||||
{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
|
{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<div style = "max-height: 400px; overflow-y: auto;">
|
<div style = "max-height: 400px; overflow-y: auto;">
|
||||||
{% $.each(data, (idx, d) => { %}
|
{% $.each(data, (idx, d) => { %}
|
||||||
<div class="row form-dashboard-section job-card-link form-links border-gray-200" data-name="{{d.name}}">
|
<div class="row form-dashboard-section job-card-link form-links border-gray-200" data-name="{{ frappe.utils.escape_html(d.name) }}">
|
||||||
<div class="section-head section-head-job-card">
|
<div class="section-head section-head-job-card">
|
||||||
{{ d.operation }} - {{ d.production_item }}
|
{{ d.operation }} - {{ d.production_item }}
|
||||||
<span class="ml-2 collapse-indicator-job mb-1" style="">
|
<span class="ml-2 collapse-indicator-job mb-1" style="">
|
||||||
@@ -64,8 +64,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-column col-sm-2 text-center">
|
<div class="form-column col-sm-2 text-center">
|
||||||
<button style="width: 85px;" class="btn btn-default btn-start {% if(d.status !== "Open") { %} hide {% } %}" job-card="{{d.name}}"> {{__("Start")}} </button>
|
<button style="width: 85px;" class="btn btn-default btn-start {% if(d.status !== "Open") { %} hide {% } %}" job-card="{{ frappe.utils.escape_html(d.name) }}"> {{__("Start")}} </button>
|
||||||
<button style="width: 85px;" class="btn btn-default btn-complete {% if(d.status === "Open") { %} hide {% } %}" job-card="{{d.name}}" pending-qty="{{d.for_quantity - d.transferred_qty}}"> {{__("Complete")}} </button>
|
<button style="width: 85px;" class="btn btn-default btn-complete {% if(d.status === "Open") { %} hide {% } %}" job-card="{{ frappe.utils.escape_html(d.name) }}" pending-qty="{{d.for_quantity - d.transferred_qty}}"> {{__("Complete")}} </button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% if(d.make_material_request) { %}
|
{% if(d.make_material_request) { %}
|
||||||
<div class="form-column col-sm-10 text-right">
|
<div class="form-column col-sm-10 text-right">
|
||||||
<button class="btn btn-default btn-xs make-material-request" job-card="{{d.name}}">{{ __("Material Request") }}</button>
|
<button class="btn btn-default btn-xs make-material-request" job-card="{{ frappe.utils.escape_html(d.name) }}">{{ __("Material Request") }}</button>
|
||||||
</div>
|
</div>
|
||||||
{% } %}
|
{% } %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,10 @@ frappe.query_reports["Production Plan Summary"] = {
|
|||||||
|
|
||||||
if (column.fieldname == "item_code") {
|
if (column.fieldname == "item_code") {
|
||||||
var color = data.pending_qty > 0 ? "red" : "green";
|
var color = data.pending_qty > 0 ? "red" : "green";
|
||||||
value = `<a style='color:${color}' href="/app/item/${data["item_code"]}" data-doctype="Item">${data["item_code"]}</a>`;
|
value = `<a style='color:${color}' href="${frappe.utils.get_form_link(
|
||||||
|
"Item",
|
||||||
|
data["item_code"]
|
||||||
|
)}" data-doctype="Item">${frappe.utils.escape_html(data["item_code"])}</a>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{% for d in data %}
|
{% for d in data %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<a class="small time-sheet-link" data-activity_type="{{ d.activity_type || "" }}">
|
<a class="small time-sheet-link" data-activity_type="{{ frappe.utils.escape_html(d.activity_type || "") }}">
|
||||||
{{ d.activity_type || __("Unknown") }}</a>
|
{{ d.activity_type || __("Unknown") }}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-8">
|
<div class="col-xs-8">
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<span class="text-muted"> • {{ comment_when(creation) }}</span>
|
<span class="text-muted"> • {{ comment_when(creation) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span>
|
<span>
|
||||||
<a class="action-btn" href="/app/call-log/{{ name }}" title="{{ __("Open Call Log") }}">
|
<a class="action-btn" href="/app/call-log/{{ frappe.utils.escape_html(name) }}" title="{{ __("Open Call Log") }}">
|
||||||
<svg class="icon icon-sm">
|
<svg class="icon icon-sm">
|
||||||
<use href="#icon-link-url" class="like-icon"></use>
|
<use href="#icon-link-url" class="like-icon"></use>
|
||||||
</svg>
|
</svg>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<div class="margin-top">
|
<div class="margin-top">
|
||||||
<audio
|
<audio
|
||||||
controls
|
controls
|
||||||
src="{{ recording_url }}">
|
src="{{ frappe.utils.escape_html(recording_url) }}">
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|||||||
@@ -30,13 +30,13 @@
|
|||||||
<use href="#icon-small-message"></use>
|
<use href="#icon-small-message"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
<a href="/app/todo/{{ tasks[i].name }}" title="{{ __('Open Task') }}">
|
<a href="/app/todo/{{ frappe.utils.escape_html(tasks[i].name) }}" title="{{ __('Open Task') }}">
|
||||||
{%= tasks[i].description %}
|
{%= tasks[i].description %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="completion-checkbox"
|
<input type="checkbox" class="completion-checkbox"
|
||||||
name="{{tasks[i].name}}" title="{{ __('Mark As Closed') }}">
|
name="{{ frappe.utils.escape_html(tasks[i].name) }}" title="{{ __('Mark As Closed') }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if(tasks[i].date) { %}
|
{% if(tasks[i].date) { %}
|
||||||
@@ -73,13 +73,13 @@
|
|||||||
<use href="#icon-{{ icon_set[events[i].event_category] || 'calendar' }}"></use>
|
<use href="#icon-{{ icon_set[events[i].event_category] || 'calendar' }}"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
<a href="/app/event/{{ events[i].name }}" title="{{ __('Open Event') }}">
|
<a href="/app/event/{{ frappe.utils.escape_html(events[i].name) }}" title="{{ __('Open Event') }}">
|
||||||
{%= events[i].subject %}
|
{%= events[i].subject %}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="completion-checkbox"
|
<input type="checkbox" class="completion-checkbox"
|
||||||
name="{{ events[i].name }}" title="{{ __('Mark As Closed') }}">
|
name="{{ frappe.utils.escape_html(events[i].name) }}" title="{{ __('Mark As Closed') }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted ml-1">
|
<div class="text-muted ml-1">
|
||||||
|
|||||||
@@ -188,7 +188,10 @@ frappe.ui.form.on("Item", {
|
|||||||
if (frm.doc.variant_of) {
|
if (frm.doc.variant_of) {
|
||||||
frm.set_intro(
|
frm.set_intro(
|
||||||
__("This Item is a Variant of {0} (Template).", [
|
__("This Item is a Variant of {0} (Template).", [
|
||||||
`<a href="/app/item/${frm.doc.variant_of}" onclick="location.reload()">${frm.doc.variant_of}</a>`,
|
`<a href="${frappe.utils.get_form_link(
|
||||||
|
"Item",
|
||||||
|
frm.doc.variant_of
|
||||||
|
)}" onclick="location.reload()">${frappe.utils.escape_html(frm.doc.variant_of)}</a>`,
|
||||||
]),
|
]),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -174,7 +174,10 @@ frappe.ui.form.on("Shipment", {
|
|||||||
__("Email or Phone/Mobile of the Contact are mandatory to continue.") +
|
__("Email or Phone/Mobile of the Contact are mandatory to continue.") +
|
||||||
"</br>" +
|
"</br>" +
|
||||||
__("Please set Email/Phone for the contact") +
|
__("Please set Email/Phone for the contact") +
|
||||||
` <a href='/app/contact/${contact_name}'>${contact_name}</a>`
|
` <a href="${frappe.utils.get_form_link(
|
||||||
|
"Contact",
|
||||||
|
contact_name
|
||||||
|
)}">${frappe.utils.escape_html(contact_name)}</a>`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
let contact_display = r.message.contact_display;
|
let contact_display = r.message.contact_display;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
if((df.fieldname !== "description" && df.fieldname !== "item_name") && val) { %}
|
if((df.fieldname !== "description" && df.fieldname !== "item_name") && val) { %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-4 ellipsis">
|
<div class="col-xs-4 ellipsis">
|
||||||
<strong title="{%= __(df.label) %}">{%= __(df.label) %}:</strong>
|
<strong title="{%= frappe.utils.escape_html(__(df.label, null, df.parent)) %}">{%= frappe.utils.escape_html(__(df.label, null, df.parent)) %}:</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-8">
|
<div class="col-xs-8">
|
||||||
{%= doc.get_formatted(df.fieldname) %}
|
{%= doc.get_formatted(df.fieldname) %}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
} %}
|
} %}
|
||||||
<span class="pull-right" title="{%= title %}" style="margin-left: 10px;">
|
<span class="pull-right" title="{%= title %}" style="margin-left: 10px;">
|
||||||
<span class="indicator {{ color }}">
|
<span class="indicator {{ color }}">
|
||||||
{%= doc.warehouse %}
|
{%= frappe.utils.escape_html(doc.warehouse) %}
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
{% } %}
|
{% } %}
|
||||||
@@ -42,14 +42,14 @@
|
|||||||
doc.delivered_qty : doc.received_qty;
|
doc.delivered_qty : doc.received_qty;
|
||||||
var pending = flt(doc.qty) - flt(delivered);
|
var pending = flt(doc.qty) - flt(delivered);
|
||||||
%}
|
%}
|
||||||
<span class="indicator {%= pending>0 ? "orange" : "green" %}">{%= doc.item_code %}</span>
|
<span class="indicator {%= pending>0 ? "orange" : "green" %}">{%= frappe.utils.escape_html(doc.item_code) %}</span>
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
<strong>{%= doc.item_code %}</strong>
|
<strong>{%= frappe.utils.escape_html(doc.item_code) %}</strong>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|
||||||
{% if(doc.item_name != doc.item_code && in_list(visible_column_fieldnames, "item_name")) { %}
|
{% if(doc.item_name != doc.item_code && in_list(visible_column_fieldnames, "item_name")) { %}
|
||||||
{% if (doc.item_code) { %}<br>{% } %}
|
{% if (doc.item_code) { %}<br>{% } %}
|
||||||
{%= doc.item_name %}{% } %}
|
{%= frappe.utils.escape_html(doc.item_name) %}{% } %}
|
||||||
|
|
||||||
{% include "templates/form_grid/includes/visible_cols.html" %}
|
{% include "templates/form_grid/includes/visible_cols.html" %}
|
||||||
</div>
|
</div>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
<!-- qty -->
|
<!-- qty -->
|
||||||
<div class="col-sm-2 hidden-xs text-right">
|
<div class="col-sm-2 hidden-xs text-right">
|
||||||
{%= doc.get_formatted("qty") %}
|
{%= doc.get_formatted("qty") %}
|
||||||
<span class="small">{%= doc.uom || doc.stock_uom %}</span>
|
<span class="small">{%= frappe.utils.escape_html(doc.uom || doc.stock_uom) %}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- rate -->
|
<!-- rate -->
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
|
|
||||||
{% if (frappe.perm.is_visible("rate", doc, frm.perm)) { %}
|
{% if (frappe.perm.is_visible("rate", doc, frm.perm)) { %}
|
||||||
<div class="visible-xs text-muted">
|
<div class="visible-xs text-muted">
|
||||||
{%= doc.get_formatted("qty") %} <small>{%= doc.uom || doc.stock_uom %}</small>
|
{%= doc.get_formatted("qty") %} <small>{%= frappe.utils.escape_html(doc.uom || doc.stock_uom) %}</small>
|
||||||
x {%= doc.get_formatted("rate") %}
|
x {%= doc.get_formatted("rate") %}
|
||||||
</div>
|
</div>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
{% } else { %}
|
{% } else { %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<span class="indicator {%= (doc.qty<=doc.ordered_qty) ? "green" : "orange" %}">{%= doc.item_code %}</strong>
|
<span class="indicator {%= (doc.qty<=doc.ordered_qty) ? "green" : "orange" %}">{%= frappe.utils.escape_html(doc.item_code) %}</strong>
|
||||||
{% if(doc.item_name != doc.item_code) { %}
|
{% if(doc.item_name != doc.item_code) { %}
|
||||||
<br>{%= doc.item_name %}{% } %}
|
<br>{%= frappe.utils.escape_html(doc.item_name) %}{% } %}
|
||||||
<!-- {% if(doc.item_name != doc.description) { %}
|
<!-- {% if(doc.item_name != doc.description) { %}
|
||||||
<p>{%= doc.description %}</p>{% } %} -->
|
<p>{%= doc.description %}</p>{% } %} -->
|
||||||
{% include "templates/form_grid/includes/visible_cols.html" %}
|
{% include "templates/form_grid/includes/visible_cols.html" %}
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
{% if(doc.warehouse) { %}
|
{% if(doc.warehouse) { %}
|
||||||
<span class="label label-default" title="{%= __("For Warehouse") %}"
|
<span class="label label-default" title="{%= __("For Warehouse") %}"
|
||||||
style="margin-right: 10px;">
|
style="margin-right: 10px;">
|
||||||
{%= doc.warehouse %}
|
{%= frappe.utils.escape_html(doc.warehouse) %}
|
||||||
</span>
|
</span>
|
||||||
{% } %}
|
{% } %}
|
||||||
</div>
|
</div>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<!-- qty -->
|
<!-- qty -->
|
||||||
<div class="col-sm-2 text-right">
|
<div class="col-sm-2 text-right">
|
||||||
{%= doc.get_formatted("qty") %}
|
{%= doc.get_formatted("qty") %}
|
||||||
<span class="small">{%= doc.uom || doc.stock_uom %}</span>
|
<span class="small">{%= frappe.utils.escape_html(doc.uom || doc.stock_uom) %}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% } %}
|
{% } %}
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{% } else { %}
|
{% } else { %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-5 col-xs-4"><strong>{%= doc.item_code %}</strong>
|
<div class="col-sm-5 col-xs-4"><strong>{%= frappe.utils.escape_html(doc.item_code) %}</strong>
|
||||||
{% if(doc.item_name != doc.item_code) { %}
|
{% if(doc.item_name != doc.item_code) { %}
|
||||||
<br>{%= doc.item_name %}{% } %}
|
<br>{%= frappe.utils.escape_html(doc.item_name) %}{% } %}
|
||||||
{% include "templates/form_grid/includes/visible_cols.html" %}
|
{% include "templates/form_grid/includes/visible_cols.html" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -30,11 +30,11 @@
|
|||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
<span class="indicator {{ color }}" title="{{ title }}">
|
<span class="indicator {{ color }}" title="{{ title }}">
|
||||||
{%= doc.s_warehouse %}</span>
|
{%= frappe.utils.escape_html(doc.s_warehouse) %}</span>
|
||||||
{% }; %}
|
{% }; %}
|
||||||
{% if(doc.t_warehouse) { %}
|
{% if(doc.t_warehouse) { %}
|
||||||
<div><span class="indicator {{ doc.docstatus==1 ? "blue" : "grey" }}" title="{{ __("Target" ) }}">
|
<div><span class="indicator {{ doc.docstatus==1 ? "blue" : "grey" }}" title="{{ __("Target" ) }}">
|
||||||
{%= doc.t_warehouse %}</span>
|
{%= frappe.utils.escape_html(doc.t_warehouse) %}</span>
|
||||||
</div>
|
</div>
|
||||||
{% }; %}
|
{% }; %}
|
||||||
</div>
|
</div>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<!-- qty -->
|
<!-- qty -->
|
||||||
<div class="col-sm-2 col-xs-2 text-right">
|
<div class="col-sm-2 col-xs-2 text-right">
|
||||||
{%= doc.get_formatted("qty") %}
|
{%= doc.get_formatted("qty") %}
|
||||||
<br><small>{%= doc.uom || doc.stock_uom %}</small>
|
<br><small>{%= frappe.utils.escape_html(doc.uom || doc.stock_uom) %}</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- amount -->
|
<!-- amount -->
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{% if logo -%}
|
{% if logo -%}
|
||||||
<img itemprop="brand" src="{{ logo }}" class="partner-logo"
|
<img itemprop="brand" src="{{ logo | abs_url | e }}" class="partner-logo"
|
||||||
alt="{{ partner_name }}" title="{{ partner_name }}" />
|
alt="{{ partner_name | e }}" title="{{ partner_name | e }}" />
|
||||||
<br><br>
|
<br><br>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
<address>
|
<address>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="product-image product-image-square h-100 rounded
|
<div class="product-image product-image-square h-100 rounded
|
||||||
{% if not website_image -%} missing-image {%- endif %} {{ css_class }}"
|
{% if not website_image -%} missing-image {%- endif %} {{ css_class }}"
|
||||||
{% if website_image -%}
|
{% if website_image -%}
|
||||||
style="background-image: url('{{ frappe.utils.quoted(website_image) | abs_url }}');"
|
style="background-image: url('{{ (frappe.utils.quoted(website_image) | abs_url).replace("'", "%27") }}');"
|
||||||
{%- endif %}>
|
{%- endif %}>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
{% macro product_image(website_image, css_class="product-image", alt="", no_border=False) %}
|
{% macro product_image(website_image, css_class="product-image", alt="", no_border=False) %}
|
||||||
<div class="{{ 'border' if not no_border else ''}} text-center rounded {{ css_class }}" style="overflow: hidden;">
|
<div class="{{ 'border' if not no_border else ''}} text-center rounded {{ css_class }}" style="overflow: hidden;">
|
||||||
{% if website_image %}
|
{% if website_image %}
|
||||||
<img itemprop="image" class="website-image h-100 w-100" alt="{{ alt }}" src="{{ frappe.utils.quoted(website_image) | abs_url }}">
|
<img itemprop="image" class="website-image h-100 w-100" alt="{{ alt | e }}" src="{{ frappe.utils.quoted(website_image) | abs_url }}">
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="card-img-top no-image-item">
|
<div class="card-img-top no-image-item">
|
||||||
{{ frappe.utils.get_abbr(alt) or "NA" }}
|
{{ frappe.utils.get_abbr(alt) or "NA" }}
|
||||||
@@ -22,11 +22,11 @@
|
|||||||
{% macro media_image(website_image, name, css_class="") %}
|
{% macro media_image(website_image, name, css_class="") %}
|
||||||
<div class="product-image sidebar-image-wrapper {{ css_class }}">
|
<div class="product-image sidebar-image-wrapper {{ css_class }}">
|
||||||
{% if not website_image -%}
|
{% if not website_image -%}
|
||||||
<div class="sidebar-standard-image"> <div class="standard-image" style="background-color: rgb(250, 251, 252);">{{name}}</div> </div>
|
<div class="sidebar-standard-image"> <div class="standard-image" style="background-color: rgb(250, 251, 252);">{{ name | e }}</div> </div>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{% if website_image -%}
|
{% if website_image -%}
|
||||||
<a href="{{ frappe.utils.quoted(website_image) }}">
|
<a href="{{ frappe.utils.quoted(website_image) | abs_url | e }}">
|
||||||
<img itemprop="image" src="{{ frappe.utils.quoted(website_image) | abs_url }}"
|
<img itemprop="image" src="{{ frappe.utils.quoted(website_image) | abs_url | e }}"
|
||||||
class="img-responsive img-thumbnail sidebar-image" style="min-height:100%; min-width:100%;">
|
class="img-responsive img-thumbnail sidebar-image" style="min-height:100%; min-width:100%;">
|
||||||
</a>
|
</a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|||||||
@@ -33,11 +33,11 @@
|
|||||||
"full_name", "user_image"
|
"full_name", "user_image"
|
||||||
], as_dict = True) %}
|
], as_dict = True) %}
|
||||||
{% if user_details.user_image %}
|
{% if user_details.user_image %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<img src="{{ user_details.user_image | e }}">
|
<img src="{{ user_details.user_image | e }}">
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<div class='standard-image' style="background-color: #F5F4F4; color: #000;">
|
<div class='standard-image' style="background-color: #F5F4F4; color: #000;">
|
||||||
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -26,11 +26,11 @@
|
|||||||
["full_name", "user_image"],
|
["full_name", "user_image"],
|
||||||
as_dict = True)%}
|
as_dict = True)%}
|
||||||
{% if user_details.user_image %}
|
{% if user_details.user_image %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<img src="{{ user_details.user_image | e }}">
|
<img src="{{ user_details.user_image | e }}">
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<div class='standard-image' style='background-color: #F5F4F4; color: #000;'>
|
<div class='standard-image' style='background-color: #F5F4F4; color: #000;'>
|
||||||
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,11 +14,11 @@
|
|||||||
], as_dict = True)
|
], as_dict = True)
|
||||||
%}
|
%}
|
||||||
{% if user_details.user_image %}
|
{% if user_details.user_image %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<img src="{{ user_details.user_image | e }}">
|
<img src="{{ user_details.user_image | e }}">
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
|
<span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name | e }}">
|
||||||
<div class='standard-image' style='background-color: #F5F4F4; color: #000;'>
|
<div class='standard-image' style='background-color: #F5F4F4; color: #000;'>
|
||||||
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
{{ frappe.utils.get_abbr(user_details.full_name) }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ window.doc={{ doc.as_json() }};
|
|||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
new rfq();
|
new rfq();
|
||||||
doc.supplier = "{{ doc.supplier }}"
|
doc.supplier = {{ doc.supplier | tojson }}
|
||||||
doc.currency = "{{ doc.currency }}"
|
doc.currency = {{ doc.currency | tojson }}
|
||||||
doc.number_format = "{{ doc.number_format }}"
|
doc.number_format = {{ doc.number_format | tojson }}
|
||||||
doc.buying_price_list = "{{ doc.buying_price_list }}"
|
doc.buying_price_list = {{ doc.buying_price_list | tojson }}
|
||||||
});
|
});
|
||||||
|
|
||||||
rfq = class rfq {
|
rfq = class rfq {
|
||||||
|
|||||||
@@ -25,5 +25,5 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<a class="transaction-item-link" href="/{{ pathname }}/{{ doc.name }}">Link</a>
|
<a class="transaction-item-link" href="/{{ pathname | e }}/{{ doc.name | e }}">Link</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -17,12 +17,12 @@
|
|||||||
|
|
||||||
{% for section in get_started_sections %}
|
{% for section in get_started_sections %}
|
||||||
<div style="margin-bottom: 30px;">
|
<div style="margin-bottom: 30px;">
|
||||||
<h2>{{ section["name"] }}</h2>
|
<h2>{{ section["name"] | e }}</h2>
|
||||||
{% for item in section["items"] %}
|
{% for item in section["items"] %}
|
||||||
<div style="margin: 20px 0;">
|
<div style="margin: 20px 0;">
|
||||||
<a href="{{ item.link }}"><b>{{ item.title }}</b></a>
|
<a href="{{ item.link | e }}"><b>{{ item.title | e }}</b></a>
|
||||||
{% if item.description -%}
|
{% if item.description -%}
|
||||||
<p>{{ item.description }}</p>
|
<p>{{ item.description | e }}</p>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -35,15 +35,15 @@
|
|||||||
<h2>{{ _("Forum Activity") }}</h2>
|
<h2>{{ _("Forum Activity") }}</h2>
|
||||||
{% for topic in topics %}
|
{% for topic in topics %}
|
||||||
<div style="margin: 20px 0;">
|
<div style="margin: 20px 0;">
|
||||||
<a href="{{ topic[post_params.link] }}">
|
<a href="{{ topic[post_params.link] | e }}">
|
||||||
<b>{{ topic[post_params.title] }}</b>
|
<b>{{ topic[post_params.title] | e }}</b>
|
||||||
</a>
|
</a>
|
||||||
{% if topic[post_params.description] -%}
|
{% if topic[post_params.description] -%}
|
||||||
<p>{{ topic[post_params.description] }}</p>
|
<p>{{ topic[post_params.description] | e }}</p>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<p><a href="{{ forum_url }}">{{ _("Visit the forums") }}</a></p>
|
<p><a href="{{ forum_url | e }}">{{ _("Visit the forums") }}</a></p>
|
||||||
<hr>
|
<hr>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -151,7 +151,7 @@
|
|||||||
{% if doc.terms %}
|
{% if doc.terms %}
|
||||||
<div class="terms-and-condition text-muted small">
|
<div class="terms-and-condition text-muted small">
|
||||||
<hr>
|
<hr>
|
||||||
<p>{{ doc.terms }}</p>
|
<p>{{ frappe.sanitize_html(doc.terms) }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -10,14 +10,14 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
{% if partner_info.logo -%}
|
{% if partner_info.logo -%}
|
||||||
<a href="{{ partner_info.route }}">
|
<a href="{{ partner_info.route | abs_url | e }}">
|
||||||
<img itemprop="brand" src="{{ partner_info.logo }}" class="partner-logo"
|
<img itemprop="brand" src="{{ partner_info.logo | abs_url | e }}" class="partner-logo"
|
||||||
alt="{{ partner_info.partner_name }}" title="{{ partner_info.partner_name }}" />
|
alt="{{ partner_info.partner_name | e }}" title="{{ partner_info.partner_name | e }}" />
|
||||||
</a>
|
</a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<a href="{{ partner_info.route }}">
|
<a href="{{ partner_info.route | abs_url | e }}">
|
||||||
<h4>{{ partner_info.partner_name }}</h4>
|
<h4>{{ partner_info.partner_name }}</h4>
|
||||||
</a>
|
</a>
|
||||||
<p style="color: #999">{{ partner_info.territory }} - {{ partner_info.partner_type }}</p>
|
<p style="color: #999">{{ partner_info.territory }} - {{ partner_info.partner_type }}</p>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
<div class="row align-items-center">
|
<div class="row align-items-center">
|
||||||
<div class="col-sm-6 my-account-header"> <h4>{{ _("Tasks") }}</h4></div>
|
<div class="col-sm-6 my-account-header"> <h4>{{ _("Tasks") }}</h4></div>
|
||||||
<div class="col-sm-6 text-right">
|
<div class="col-sm-6 text-right">
|
||||||
<a class="btn btn-secondary btn-light btn-sm" href='/tasks/new?project={{ doc.project_name }}'>{{ _("New task") }}</a>
|
<a class="btn btn-secondary btn-light btn-sm" href='/tasks/new?project={{ doc.project_name | urlencode }}'>{{ _("New task") }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if doc.tasks %}
|
{% if doc.tasks %}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ frappe.ready(function () {
|
|||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: {
|
data: {
|
||||||
cmd: "erpnext.templates.pages.projects.get_" + item + "_html",
|
cmd: "erpnext.templates.pages.projects.get_" + item + "_html",
|
||||||
project: "{{ doc.name }}",
|
project: "{{ doc.name | e }}",
|
||||||
item_status: item_status,
|
item_status: item_status,
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
@@ -80,7 +80,7 @@ frappe.ready(function () {
|
|||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: {
|
data: {
|
||||||
cmd: "erpnext.templates.pages.projects.get_" + item + "_html",
|
cmd: "erpnext.templates.pages.projects.get_" + item + "_html",
|
||||||
project: "{{ doc.name }}",
|
project: "{{ doc.name | e }}",
|
||||||
start: start,
|
start: start,
|
||||||
item_status: item_status,
|
item_status: item_status,
|
||||||
},
|
},
|
||||||
@@ -96,7 +96,7 @@ frappe.ready(function () {
|
|||||||
|
|
||||||
var close_item = function (item, item_name) {
|
var close_item = function (item, item_name) {
|
||||||
var args = {
|
var args = {
|
||||||
project: "{{ doc.name }}",
|
project: "{{ doc.name | e }}",
|
||||||
item_name: item_name,
|
item_name: item_name,
|
||||||
};
|
};
|
||||||
frappe.call({
|
frappe.call({
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% if doc.in_format_data("image") and doc.get("image") and "image" in display_columns -%}
|
{% if doc.in_format_data("image") and doc.get("image") and "image" in display_columns -%}
|
||||||
<div class="pull-left" style="max-width: 40%; margin-right: 10px;">
|
<div class="pull-left" style="max-width: 40%; margin-right: 10px;">
|
||||||
<img class="print-item-image" src="{{ doc.image }}" alt="">
|
<img class="print-item-image" src="{{ doc.image | e }}" alt="">
|
||||||
</div>
|
</div>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<h3 class="card-title">{{ favorite_article['title'] }}</h3>
|
<h3 class="card-title">{{ favorite_article['title'] }}</h3>
|
||||||
<p class="card-text">{{ favorite_article['description'] }}</p>
|
<p class="card-text">{{ favorite_article['description'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{ favorite_article['route'] }}" class="stretched-link"></a>
|
<a href="{{ favorite_article['route'] | e }}" class="stretched-link"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
<h5>{{ item['category'].name }}</h5>
|
<h5>{{ item['category'].name }}</h5>
|
||||||
<div>
|
<div>
|
||||||
{% for article in item['articles'] %}
|
{% for article in item['articles'] %}
|
||||||
<a href="{{ article.route }}" class="mt-2 d-block">{{ article.title }}</a>
|
<a href="{{ article.route | e }}" class="mt-2 d-block">{{ article.title }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user