Get nextmatch-customfields working

This commit is contained in:
nathangray 2020-02-12 11:16:34 -07:00
parent fe4eb42fca
commit c3350c8114
4 changed files with 32 additions and 24 deletions

View File

@ -39,7 +39,6 @@ var et2_customfields_list = /** @class */ (function (_super) {
function et2_customfields_list(_parent, _attrs, _child) { function et2_customfields_list(_parent, _attrs, _child) {
var _this = _super.call(this, _parent, _attrs, et2_core_inheritance_1.ClassWithAttributes.extendAttributes(et2_customfields_list._attributes, _child || {})) || this; var _this = _super.call(this, _parent, _attrs, et2_core_inheritance_1.ClassWithAttributes.extendAttributes(et2_customfields_list._attributes, _child || {})) || this;
_this.legacyOptions = ["type_filter", "private", "fields"]; // Field restriction & private done server-side _this.legacyOptions = ["type_filter", "private", "fields"]; // Field restriction & private done server-side
_this.prefix = '#';
_this.rows = {}; _this.rows = {};
_this.widgets = {}; _this.widgets = {};
_this.detachedNodes = []; _this.detachedNodes = [];
@ -89,7 +88,6 @@ var et2_customfields_list = /** @class */ (function (_super) {
for (var i = 0; i < types.length; i++) { for (var i = 0; i < types.length; i++) {
if (jQuery.inArray(types[i], _this.options.type_filter) > -1) { if (jQuery.inArray(types[i], _this.options.type_filter) > -1) {
_this.options.fields[field_name] = true; _this.options.fields[field_name] = true;
} }
} }
} }
@ -606,6 +604,7 @@ var et2_customfields_list = /** @class */ (function (_super) {
"description": "JS code which is executed when the value changes." "description": "JS code which is executed when the value changes."
} }
}; };
et2_customfields_list.prefix = '#';
et2_customfields_list.DEFAULT_ID = "custom_fields"; et2_customfields_list.DEFAULT_ID = "custom_fields";
return et2_customfields_list; return et2_customfields_list;
}(et2_core_valueWidget_1.et2_valueWidget)); }(et2_core_valueWidget_1.et2_valueWidget));

View File

@ -66,7 +66,7 @@ export class et2_customfields_list extends et2_valueWidget implements et2_IDetac
legacyOptions = ["type_filter","private", "fields"]; // Field restriction & private done server-side legacyOptions = ["type_filter","private", "fields"]; // Field restriction & private done server-side
prefix = '#'; public static readonly prefix = '#';
public static readonly DEFAULT_ID = "custom_fields"; public static readonly DEFAULT_ID = "custom_fields";
private tbody: JQuery; private tbody: JQuery;

View File

@ -68,6 +68,7 @@ var et2_extension_nextmatch_rowProvider_1 = require("./et2_extension_nextmatch_r
var et2_extension_nextmatch_controller_1 = require("./et2_extension_nextmatch_controller"); var et2_extension_nextmatch_controller_1 = require("./et2_extension_nextmatch_controller");
var et2_dataview_1 = require("./et2_dataview"); var et2_dataview_1 = require("./et2_dataview");
var et2_dataview_model_columns_1 = require("./et2_dataview_model_columns"); var et2_dataview_model_columns_1 = require("./et2_dataview_model_columns");
var et2_extension_customfields_1 = require("./et2_extension_customfields");
var et2_INextmatchHeader = "et2_INextmatchHeader"; var et2_INextmatchHeader = "et2_INextmatchHeader";
function implements_et2_INextmatchHeader(obj) { function implements_et2_INextmatchHeader(obj) {
return implements_methods(obj, ["setNextmatch"]); return implements_methods(obj, ["setNextmatch"]);
@ -1055,8 +1056,11 @@ var et2_nextmatch = /** @class */ (function (_super) {
for (var i = 0; i < columnMgr.columns.length; i++) { for (var i = 0; i < columnMgr.columns.length; i++) {
var col = columnMgr.columns[i]; var col = columnMgr.columns[i];
var widget = this.columns[i].widget; var widget = this.columns[i].widget;
if (col.caption && col.visibility !== et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_ALWAYS_NOSELECT && if (col.visibility == et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_DISABLED ||
col.visibility !== et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_DISABLED) { col.visibility == et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_ALWAYS_NOSELECT) {
continue;
}
if (col.caption) {
columns[col.id] = col.caption; columns[col.id] = col.caption;
if (col.visibility == et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_VISIBLE) if (col.visibility == et2_dataview_model_columns_1.et2_dataview_column.ET2_COL_VISIBILITY_VISIBLE)
columns_selected.push(col.id); columns_selected.push(col.id);
@ -1072,7 +1076,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
columns[et2_nextmatch_customfields.prefix + field_name] = " - " + columns[et2_nextmatch_customfields.prefix + field_name] = " - " +
widget.customfields[field_name].label; widget.customfields[field_name].label;
if (widget.options.fields[field_name]) if (widget.options.fields[field_name])
columns_selected.push(et2_customfields_list.prefix + field_name); columns_selected.push(et2_extension_customfields_1.et2_customfields_list.prefix + field_name);
} }
} }
} }
@ -1158,7 +1162,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
} }
// Turn on selected custom fields - start from 0 in case they're not in order // Turn on selected custom fields - start from 0 in case they're not in order
for (var j = 0; j < value.length; j++) { for (var j = 0; j < value.length; j++) {
if (value[j].indexOf(et2_customfields_list.prefix) != 0) if (value[j].indexOf(et2_extension_customfields_1.et2_customfields_list.prefix) != 0)
continue; continue;
visible[value[j].substring(1)] = true; visible[value[j].substring(1)] = true;
i++; i++;
@ -1178,7 +1182,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
self.sortedColumnsList.push(col_widget.id); self.sortedColumnsList.push(col_widget.id);
for (var field_name_1 in col_widget.customfields) { for (var field_name_1 in col_widget.customfields) {
if (jQuery.isEmptyObject(col_widget.options.fields) || col_widget.options.fields[field_name_1] == true) { if (jQuery.isEmptyObject(col_widget.options.fields) || col_widget.options.fields[field_name_1] == true) {
self.sortedColumnsList.push(et2_customfields_list.prefix + field_name_1); self.sortedColumnsList.push(et2_extension_customfields_1.et2_customfields_list.prefix + field_name_1);
} }
} }
} }
@ -1301,7 +1305,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
} }
// Turn on selected custom fields - start from 0 in case they're not in order // Turn on selected custom fields - start from 0 in case they're not in order
for (var j = 0; j < column_list.length; j++) { for (var j = 0; j < column_list.length; j++) {
if (column_list[j].indexOf(et2_customfields_list.prefix) != 0) if (column_list[j].indexOf(et2_extension_customfields_1.et2_customfields_list.prefix) != 0)
continue; continue;
visible[column_list[j].substring(1)] = true; visible[column_list[j].substring(1)] = true;
} }
@ -2679,9 +2683,10 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
* @memberOf et2_nextmatch_customfields * @memberOf et2_nextmatch_customfields
*/ */
function et2_nextmatch_customfields(_parent, _attrs, _child) { function et2_nextmatch_customfields(_parent, _attrs, _child) {
return _super.call(this, _parent, _attrs, et2_core_inheritance_1.ClassWithAttributes.extendAttributes(et2_nextmatch_customfields._attributes, _child || {})) || this; var _this = _super.call(this, _parent, _attrs, et2_core_inheritance_1.ClassWithAttributes.extendAttributes(et2_nextmatch_customfields._attributes, _child || {})) || this;
// Specifically take the whole column // Specifically take the whole column
// this.table.css("width", "100%"); _this.table.css("width", "100%");
return _this;
} }
et2_nextmatch_customfields.prototype.destroy = function () { et2_nextmatch_customfields.prototype.destroy = function () {
this.nextmatch = null; this.nextmatch = null;
@ -2710,8 +2715,7 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
* Build widgets for header - sortable for numeric, text, etc., filterables for selectbox, radio * Build widgets for header - sortable for numeric, text, etc., filterables for selectbox, radio
*/ */
et2_nextmatch_customfields.prototype.loadFields = function () { et2_nextmatch_customfields.prototype.loadFields = function () {
// TODO if(this.nextmatch == null) if (this.nextmatch == null) {
{
// not ready yet // not ready yet
return; return;
} }
@ -2734,7 +2738,7 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
var apps = egw.link_app_list(); var apps = egw.link_app_list();
for (var field_name in this.options.customfields) { for (var field_name in this.options.customfields) {
var field = this.options.customfields[field_name]; var field = this.options.customfields[field_name];
var cf_id = et2_customfields_list.prefix + field_name; var cf_id = et2_extension_customfields_1.et2_customfields_list.prefix + field_name;
if (this.rows[field_name]) if (this.rows[field_name])
continue; continue;
// Table row // Table row
@ -2797,7 +2801,7 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
if (widget == self) if (widget == self)
return; return;
widget.set_visible(_fields); widget.set_visible(_fields);
}, this, et2_customfields_list); }, this, et2_extension_customfields_1.et2_customfields_list);
} }
}; };
/** /**
@ -2817,7 +2821,7 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
var visible = []; var visible = [];
for (var field_name in this.options.customfields) { for (var field_name in this.options.customfields) {
if (jQuery.isEmptyObject(this.options.fields) || this.options.fields[field_name] == true) { if (jQuery.isEmptyObject(this.options.fields) || this.options.fields[field_name] == true) {
visible.push(et2_customfields_list.prefix + field_name); visible.push(et2_extension_customfields_1.et2_customfields_list.prefix + field_name);
jQuery(this.rows[field_name]).show(); jQuery(this.rows[field_name]).show();
} }
else if (typeof this.rows[field_name] != "undefined") { else if (typeof this.rows[field_name] != "undefined") {
@ -2855,7 +2859,7 @@ var et2_nextmatch_customfields = /** @class */ (function (_super) {
} }
}; };
return et2_nextmatch_customfields; return et2_nextmatch_customfields;
}(et2_container)); }(et2_extension_customfields_1.et2_customfields_list));
exports.et2_nextmatch_customfields = et2_nextmatch_customfields; exports.et2_nextmatch_customfields = et2_nextmatch_customfields;
et2_core_widget_1.et2_register_widget(et2_nextmatch_customfields, ['nextmatch-customfields']); et2_core_widget_1.et2_register_widget(et2_nextmatch_customfields, ['nextmatch-customfields']);
/** /**

View File

@ -49,12 +49,13 @@ import {et2_DOMWidget} from "./et2_core_DOMWidget";
import {et2_baseWidget} from "./et2_core_baseWidget"; import {et2_baseWidget} from "./et2_core_baseWidget";
import {et2_inputWidget} from "./et2_core_inputWidget"; import {et2_inputWidget} from "./et2_core_inputWidget";
import {et2_selectbox} from "./et2_widget_selectbox"; import {et2_selectbox} from "./et2_widget_selectbox";
//import {et2_selectAccount} from "./et2_widget_SelectAccount";
import {et2_nextmatch_rowProvider} from "./et2_extension_nextmatch_rowProvider"; import {et2_nextmatch_rowProvider} from "./et2_extension_nextmatch_rowProvider";
import {et2_nextmatch_controller} from "./et2_extension_nextmatch_controller"; import {et2_nextmatch_controller} from "./et2_extension_nextmatch_controller";
import {et2_dataview} from "./et2_dataview"; import {et2_dataview} from "./et2_dataview";
import {et2_dataview_column} from "./et2_dataview_model_columns"; import {et2_dataview_column} from "./et2_dataview_model_columns";
import {et2_customfields_list} from "./et2_extension_customfields";
//import {et2_selectAccount} from "./et2_widget_SelectAccount";
/** /**
* Interface all special nextmatch header elements have to implement. * Interface all special nextmatch header elements have to implement.
@ -1493,8 +1494,12 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
var col = columnMgr.columns[i]; var col = columnMgr.columns[i];
const widget = this.columns[i].widget; const widget = this.columns[i].widget;
if(col.caption && col.visibility !== et2_dataview_column.ET2_COL_VISIBILITY_ALWAYS_NOSELECT && if(col.visibility == et2_dataview_column.ET2_COL_VISIBILITY_DISABLED ||
col.visibility !== et2_dataview_column.ET2_COL_VISIBILITY_DISABLED) col.visibility == et2_dataview_column.ET2_COL_VISIBILITY_ALWAYS_NOSELECT)
{
continue;
}
if(col.caption)
{ {
columns[col.id] = col.caption; columns[col.id] = col.caption;
if(col.visibility == et2_dataview_column.ET2_COL_VISIBILITY_VISIBLE) columns_selected.push(col.id); if(col.visibility == et2_dataview_column.ET2_COL_VISIBILITY_VISIBLE) columns_selected.push(col.id);
@ -3384,7 +3389,7 @@ et2_register_widget(et2_nextmatch_header, ['nextmatch-header']);
* *
* TODO This should extend customfield widget when it's ready, put the whole column in constructor() back too * TODO This should extend customfield widget when it's ready, put the whole column in constructor() back too
*/ */
export class et2_nextmatch_customfields extends et2_container implements et2_INextmatchHeader export class et2_nextmatch_customfields extends et2_customfields_list implements et2_INextmatchHeader
{ {
static readonly _attributes: any = { static readonly _attributes: any = {
'customfields': { 'customfields': {
@ -3407,7 +3412,7 @@ export class et2_nextmatch_customfields extends et2_container implements et2_INe
super(_parent, _attrs, ClassWithAttributes.extendAttributes(et2_nextmatch_customfields._attributes, _child || {})); super(_parent, _attrs, ClassWithAttributes.extendAttributes(et2_nextmatch_customfields._attributes, _child || {}));
// Specifically take the whole column // Specifically take the whole column
// this.table.css("width", "100%"); this.table.css("width", "100%");
} }
destroy( ) destroy( )
@ -3445,7 +3450,7 @@ export class et2_nextmatch_customfields extends et2_container implements et2_INe
*/ */
loadFields( ) loadFields( )
{ {
// TODO if(this.nextmatch == null) if(this.nextmatch == null)
{ {
// not ready yet // not ready yet
return; return;