fix: escape data in multiple templates (backport #57742) (#57769)

Co-authored-by: diptanilsaha <diptanil@frappe.io>
This commit is contained in:
mergify[bot]
2026-08-04 09:56:46 +00:00
committed by GitHub
parent 78a43833a0
commit 928f984198
4 changed files with 20 additions and 17 deletions

View File

@@ -2,9 +2,9 @@
<div class="row" style="border-bottom:1px solid var(--border-color); padding:4px 5px; margin-top: 3px;margin-bottom: 3px;"> <div class="row" style="border-bottom:1px solid var(--border-color); padding:4px 5px; margin-top: 3px;margin-bottom: 3px;">
<div class="col-sm-1"> <div class="col-sm-1">
{% if(row.image) { %} {% if(row.image) { %}
<img style="width:50px;height:50px;" src="{{row.image}}"> <img style="width:50px;height:50px;" src="{{frappe.utils.escape_html(row.image)}}">
{% } else { %} {% } else { %}
<div style="width:50px;height:50px;background-color:var(--control-bg);text-align:center;padding-top:15px">{{frappe.get_abbr(row.item_code, 2)}}</div> <div style="width:50px;height:50px;background-color:var(--control-bg);text-align:center;padding-top:15px">{{frappe.get_abbr(frappe.utils.escape_html(row.item_code), 2)}}</div>
{% } %} {% } %}
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
@@ -13,7 +13,7 @@
{% } else { %} {% } else { %}
{{row.item_link}} {{row.item_link}}
<p> <p>
{{row.item_name}} {{frappe.utils.escape_html(row.item_name)}}
</p> </p>
{% } %} {% } %}
@@ -52,10 +52,10 @@
</span> </span>
</div> </div>
<div class="col-sm-1"> <div class="col-sm-1">
<button style="margin-left: 7px;" class="btn btn-default btn-xs btn-add" data-item-code="{{ escape(row.item_code) }}">{{ __("Add") }}</button> <button style="margin-left: 7px;" class="btn btn-default btn-xs btn-add" data-item-code="{{ frappe.utils.escape_html(row.item_code) }}">{{ __("Add") }}</button>
</div> </div>
<div class="col-sm-1"> <div class="col-sm-1">
<button style="margin-left: 7px;" class="btn btn-default btn-xs btn-move" data-item-code="{{ escape(row.item_code) }}">{{ __("Move") }}</button> <button style="margin-left: 7px;" class="btn btn-default btn-xs btn-move" data-item-code="{{ frappe.utils.escape_html(row.item_code) }}">{{ __("Move") }}</button>
</div> </div>
</div> </div>
{% }); %} {% }); %}

View File

@@ -418,6 +418,6 @@ def get_workstations(**kwargs):
d.background_color = color_map.get(d.status, "var(--red-600)") d.background_color = color_map.get(d.status, "var(--red-600)")
d.workstation_link = get_url_to_form("Workstation", d.name) d.workstation_link = get_url_to_form("Workstation", d.name)
if d.status != "Production": if d.status != "Production":
d.status_image = d.off_status_image d.status_image = frappe.utils.escape_html(d.off_status_image)
return data return data

View File

@@ -1,17 +1,19 @@
<div class="app-listing item-list image-view-container item-selector"> <div class="app-listing item-list image-view-container item-selector">
{% for (var i=0; i < data.length; i++) { var item = data[i]; %} {% for (var i=0; i < data.length; i++) { var item = data[i]; %}
{% const item_name = frappe.utils.escape_html(item.name); %}
{% const item_title = frappe.utils.escape_html(item.item_name || item.name); %}
{% if (i % 4 === 0) { %}<div class="image-view-row">{% } %} {% if (i % 4 === 0) { %}<div class="image-view-row">{% } %}
<div class="image-view-item" data-name="{{ item.name }}"> <div class="image-view-item" data-name="{{ item_name }}">
<div class="image-view-header doclist-row"> <div class="image-view-header doclist-row">
<div class="list-value"> <div class="list-value">
<a class="grey list-id" data-name="{{item.name}}" <a class="grey list-id" data-name="{{ item_name }}"
title="{{ item.item_name || item.name}}"> title="{{ item_title }}">
{{item.item_name || item.name}}</a> {{ item_title }}</a>
</div> </div>
</div> </div>
<div class="image-view-body"> <div class="image-view-body">
<a data-item-code="{{ item.name }}" <a data-item-code="{{ item_name }}"
title="{{ item.item_name || item.name }}" title="{{ item_title }}"
> >
<div class="image-field" <div class="image-field"
style=" style="
@@ -22,11 +24,11 @@
> >
{% if (!item.image) { %} {% if (!item.image) { %}
<span class="placeholder-text"> <span class="placeholder-text">
{%= frappe.get_abbr(item.item_name || item.name) %} {%= frappe.get_abbr(item_title) %}
</span> </span>
{% } %} {% } %}
{% if (item.image) { %} {% if (item.image) { %}
<img src="{{ item.image }}" alt="{{item.item_name || item.name}}"> <img src="{{ frappe.utils.escape_html(item.image) }}" alt="{{ item_title }}">
{% } %} {% } %}
</div> </div>
</a> </a>

View File

@@ -1,4 +1,5 @@
{% $.each(workstations, (idx, row) => { %} {% $.each(workstations, (idx, row) => { %}
{% const row_workstation_name = frappe.utils.escape_html(row.name); %}
<div class="workstation-wrapper"> <div class="workstation-wrapper">
<div class="workstation-status text-right"> <div class="workstation-status text-right">
{% if(row.status == "Production") { %} {% if(row.status == "Production") { %}
@@ -17,14 +18,14 @@
{% if(row.status_image) { %} {% if(row.status_image) { %}
<img class="workstation-image-cls" src="{{row.status_image}}"> <img class="workstation-image-cls" src="{{row.status_image}}">
{% } else { %} {% } else { %}
<div class="workstation-image-cls workstation-abbr">{{frappe.get_abbr(row.name, 2)}}</div> <div class="workstation-image-cls workstation-abbr">{{frappe.get_abbr(row_workstation_name, 2)}}</div>
{% } %} {% } %}
</a> </a>
</div> </div>
</div> </div>
<div class="workstation-card" style="display: grid;"> <div class="workstation-card" style="display: grid;">
<span class="ellipsis" title="{{row.name}}"> <span class="ellipsis" title="{{row_workstation_name}}">
{{row.workstation_name}} {{row_workstation_name}}
</span> </span>
</div> </div>
</div> </div>