feat: add html template for comparator
This commit is contained in:
parent
ef7af5e849
commit
c3d0ab5f9a
2 changed files with 109 additions and 0 deletions
|
|
@ -0,0 +1,74 @@
|
|||
<div>
|
||||
|
||||
<div class="p-2">
|
||||
{% if documents.length > 1 %}
|
||||
<p>Documents to Compare : <b>{{ documents.length }}</b></p>
|
||||
{% else %}
|
||||
<p>Documents to Compare : <b>{{ documents.length - 1 }}</b></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% var field_keys = Object.keys(changed).sort(); %}
|
||||
{% if field_keys.length > 0 %}
|
||||
<div class="p-2">
|
||||
<h5> Changes </h5>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<th> Fields </th>
|
||||
{% for doc in documents %}
|
||||
<th>{{ doc }}</th>
|
||||
{% endfor %}
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for fieldname in field_keys %}
|
||||
<tr>
|
||||
<td> {{ fieldname }} </td>
|
||||
{% var values = changed[fieldname] %}
|
||||
|
||||
{% for value in values %}
|
||||
<td>{{ value }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% var tables = Object.keys(row_changed).sort(); %}
|
||||
{% if tables.length > 0 %}
|
||||
<div class="p-2">
|
||||
<h5> Rows Updated </h5>
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<th> Fields </th>
|
||||
{% for doc in documents %}
|
||||
<th>{{ doc }}</th>
|
||||
{% endfor %}
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for table in tables %}
|
||||
<tr>
|
||||
<tr><td><b>{{ table }}</b></td></tr>
|
||||
{% var row_index = row_changed[table]["index"] %}
|
||||
<tr><td><b>idx : {{ row_index }}</b></td></tr>
|
||||
{% var fields = Object.keys(row_changed[table]).sort(); %}
|
||||
{% for field in fields %}
|
||||
{% if field != "index" %}
|
||||
<tr>
|
||||
<td>{{ field }}</td>
|
||||
{% var values = row_changed[table][field] %}
|
||||
{% for value in values %}
|
||||
<td> {{ value }} </td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
// Copyright (c) 2023, Frappe Technologies and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on("Document Comparator", {
|
||||
refresh(frm) {
|
||||
frm.disable_save();
|
||||
|
||||
frm.set_query("doctype_name", () => {
|
||||
return {
|
||||
filters: {
|
||||
track_changes: 1,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
frm.page.set_primary_action("Compare", () => {
|
||||
frm.call({
|
||||
doc: frm.doc,
|
||||
method: "compare_document",
|
||||
callback: function (r) {
|
||||
let document_names = r.message[0];
|
||||
let changed_fields = r.message[1];
|
||||
let render_dict = {
|
||||
documents: document_names,
|
||||
changed: changed_fields.changed,
|
||||
row_changed: changed_fields.row_changed,
|
||||
};
|
||||
$(frappe.render_template("document_comparator", render_dict)).appendTo(
|
||||
frm.fields_dict.version_table.$wrapper.empty()
|
||||
);
|
||||
},
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
||||
Loading…
Add table
Reference in a new issue