Преглед на файлове

Merge pull request #15738 from resilient-tech/custom-columns-for-multi-select-dialog

feat: custom columns for `MultiSelectDialog`
version-14
mergify[bot] преди 3 години
committed by GitHub
родител
ревизия
ba60d44402
No known key found for this signature in database GPG ключ ID: 4AEE18F83AFDEB23
променени са 1 файла, в които са добавени 12 реда и са изтрити 13 реда
  1. +12
    -13
      frappe/public/js/frappe/form/multi_select_dialog.js

+ 12
- 13
frappe/public/js/frappe/form/multi_select_dialog.js Целия файл

@@ -1,6 +1,6 @@
frappe.ui.form.MultiSelectDialog = class MultiSelectDialog { frappe.ui.form.MultiSelectDialog = class MultiSelectDialog {
constructor(opts) { constructor(opts) {
/* Options: doctype, target, setters, get_query, action, add_filters_group, data_fields, primary_action_label */
/* Options: doctype, target, setters, get_query, action, add_filters_group, data_fields, primary_action_label, columns */
Object.assign(this, opts); Object.assign(this, opts);
this.for_select = this.doctype == "[Select]"; this.for_select = this.doctype == "[Select]";
if (!this.for_select) { if (!this.for_select) {
@@ -400,23 +400,22 @@ frappe.ui.form.MultiSelectDialog = class MultiSelectDialog {
return this.results.filter(res => checked_values.includes(res.name)); return this.results.filter(res => checked_values.includes(res.name));
} }


get_datatable_columns() {
if (this.get_query && this.get_query().query && this.columns) return this.columns;

if (Array.isArray(this.setters))
return ["name", ...this.setters.map(df => df.fieldname)];

return ["name", ...Object.keys(this.setters)];
}

make_list_row(result = {}) { make_list_row(result = {}) {
var me = this; var me = this;
// Make a head row by default (if result not passed) // Make a head row by default (if result not passed)
let head = Object.keys(result).length === 0; let head = Object.keys(result).length === 0;


let contents = ``; let contents = ``;
let columns = ["name"];

if ($.isArray(this.setters)) {
for (let df of this.setters) {
columns.push(df.fieldname);
}
} else {
columns = columns.concat(Object.keys(this.setters));
}

columns.forEach(function (column) {
this.get_datatable_columns().forEach(function (column) {
contents += `<div class="list-item__content ellipsis"> contents += `<div class="list-item__content ellipsis">
${ ${
head ? `<span class="ellipsis text-muted" title="${__(frappe.model.unscrub(column))}">${__(frappe.model.unscrub(column))}</span>` head ? `<span class="ellipsis text-muted" title="${__(frappe.model.unscrub(column))}">${__(frappe.model.unscrub(column))}</span>`
@@ -486,7 +485,7 @@ frappe.ui.form.MultiSelectDialog = class MultiSelectDialog {


get_filters_from_setters() { get_filters_from_setters() {
let me = this; let me = this;
let filters = this.get_query ? this.get_query().filters : {} || {};
let filters = (this.get_query ? this.get_query().filters : {}) || {};
let filter_fields = []; let filter_fields = [];


if ($.isArray(this.setters)) { if ($.isArray(this.setters)) {


Зареждане…
Отказ
Запис