namirasoft-account-react 1.4.159 → 1.4.160
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CTFRow.d.ts +6 -0
- package/dist/CTFRow.js +2 -0
- package/dist/CTFRow.js.map +1 -0
- package/dist/layouts/CFTUtil.d.ts +5 -0
- package/dist/layouts/CFTUtil.js +15 -0
- package/dist/layouts/CFTUtil.js.map +1 -0
- package/dist/layouts/NSASectionEditTabPage.js +18 -16
- package/dist/layouts/NSASectionEditTabPage.js.map +1 -1
- package/dist/layouts/NSASectionTabs.d.ts +4 -2
- package/dist/layouts/NSASectionTabs.js +82 -48
- package/dist/layouts/NSASectionTabs.js.map +1 -1
- package/package.json +1 -1
- package/src/CTFRow.ts +8 -0
- package/src/layouts/CFTUtil.ts +19 -0
- package/src/layouts/NSASectionEditTabPage.tsx +20 -17
- package/src/layouts/NSASectionTabs.tsx +137 -86
- package/src/layouts/NSASectionTabs.module.css +0 -48
package/dist/CTFRow.d.ts
ADDED
package/dist/CTFRow.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CTFRow.js","sourceRoot":"","sources":["../src/CTFRow.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class CFTUtil {
|
|
2
|
+
static get(name, row) {
|
|
3
|
+
return {
|
|
4
|
+
categories: row[name + "_category"],
|
|
5
|
+
fields: row[name + "_field"],
|
|
6
|
+
tags: row[name + "_tag"],
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
static set(name, row, ctf) {
|
|
10
|
+
row[name + "_field"] = ctf.fields;
|
|
11
|
+
row[name + "_category"] = ctf.categories;
|
|
12
|
+
row[name + "_tag"] = ctf.tags;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=CFTUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CFTUtil.js","sourceRoot":"","sources":["../../src/layouts/CFTUtil.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,OAAO;IAEhB,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,GAAQ;QAE7B,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;YACnC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;SAC3B,CAAC;IACN,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,GAAQ,EAAE,GAAW;QAE1C,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;QACzC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { NSBox, NSBoxBooleans, NSBoxDynamic, NSColumn, NSRepeater, NSRow, NSTabPage, NSTag } from "namirasoft-site-react";
|
|
3
3
|
import { Component, createRef } from "react";
|
|
4
|
+
import { CFTUtil } from "./CFTUtil";
|
|
4
5
|
export class NSASectionEditTabPage extends Component {
|
|
5
6
|
constructor(props) {
|
|
7
|
+
var _a, _b;
|
|
6
8
|
super(props);
|
|
7
9
|
this.Fields_Refs = {};
|
|
8
10
|
this.Categories_Refs = {};
|
|
9
11
|
this.Tags_Refs = createRef();
|
|
10
12
|
this.state = { entity: null };
|
|
13
|
+
if (props.ctf.enabled) {
|
|
14
|
+
(_a = props.ctf.fields) === null || _a === void 0 ? void 0 : _a.forEach(field => this.Fields_Refs[field.name] = createRef());
|
|
15
|
+
(_b = props.ctf.categories) === null || _b === void 0 ? void 0 : _b.forEach(category => {
|
|
16
|
+
if (!this.Categories_Refs[category.group])
|
|
17
|
+
this.Categories_Refs[category.group] = createRef();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
11
20
|
this.getLoadedEntity = this.getLoadedEntity.bind(this);
|
|
12
21
|
this.setEntity = this.setEntity.bind(this);
|
|
13
22
|
this.getEntity = this.getEntity.bind(this);
|
|
@@ -19,21 +28,14 @@ export class NSASectionEditTabPage extends Component {
|
|
|
19
28
|
}
|
|
20
29
|
setEntity(entity) {
|
|
21
30
|
this.props.setEntity(entity);
|
|
22
|
-
if (this.props.ctf.enabled)
|
|
23
|
-
|
|
24
|
-
this.setFields(entity_fields[this.props.entity.name + "_field"], entity_fields[this.props.entity.name + "_category"], entity_fields[this.props.entity.name + "_tag"]);
|
|
25
|
-
}
|
|
31
|
+
if (this.props.ctf.enabled)
|
|
32
|
+
this.setFields(CFTUtil.get(this.props.entity.name, entity));
|
|
26
33
|
this.setState(prev => { return Object.assign(Object.assign({}, prev), { entity }); });
|
|
27
34
|
}
|
|
28
35
|
getEntity() {
|
|
29
36
|
let entity = this.props.getEntity(this.state.entity);
|
|
30
|
-
if (this.props.ctf.enabled)
|
|
31
|
-
|
|
32
|
-
let entity_fields = entity;
|
|
33
|
-
entity_fields[this.props.entity.name + "_field"] = fields;
|
|
34
|
-
entity_fields[this.props.entity.name + "_category"] = categories;
|
|
35
|
-
entity_fields[this.props.entity.name + "_tag"] = tags;
|
|
36
|
-
}
|
|
37
|
+
if (this.props.ctf.enabled)
|
|
38
|
+
CFTUtil.set(this.props.entity.name, entity, this.getFields());
|
|
37
39
|
return entity;
|
|
38
40
|
}
|
|
39
41
|
getFields() {
|
|
@@ -53,10 +55,10 @@ export class NSASectionEditTabPage extends Component {
|
|
|
53
55
|
}
|
|
54
56
|
if (this.Tags_Refs.current)
|
|
55
57
|
tags = this.Tags_Refs.current.getValue().map(x => { return { name: x.name, value: x.value }; });
|
|
56
|
-
return {
|
|
58
|
+
return { categories, fields, tags };
|
|
57
59
|
}
|
|
58
|
-
setFields(
|
|
59
|
-
for (let field of fields) {
|
|
60
|
+
setFields(ctf) {
|
|
61
|
+
for (let field of ctf.fields) {
|
|
60
62
|
let ref = this.Fields_Refs[field.field_id];
|
|
61
63
|
if (ref.current)
|
|
62
64
|
ref.current.setValue(field.value);
|
|
@@ -64,10 +66,10 @@ export class NSASectionEditTabPage extends Component {
|
|
|
64
66
|
for (let key of Object.keys(this.Categories_Refs)) {
|
|
65
67
|
let ref = this.Categories_Refs[key];
|
|
66
68
|
if (ref.current)
|
|
67
|
-
ref.current.setValues(categories.map(x => x.category_id));
|
|
69
|
+
ref.current.setValues(ctf.categories.map(x => x.category_id));
|
|
68
70
|
}
|
|
69
71
|
if (this.Tags_Refs.current)
|
|
70
|
-
this.Tags_Refs.current.setValue(tags.map(x => { var _a; return { name: x.name, value: (_a = x.value) !== null && _a !== void 0 ? _a : "" }; }));
|
|
72
|
+
this.Tags_Refs.current.setValue(ctf.tags.map(x => { var _a; return { name: x.name, value: (_a = x.value) !== null && _a !== void 0 ? _a : "" }; }));
|
|
71
73
|
}
|
|
72
74
|
componentDidMount() {
|
|
73
75
|
if (this.props.id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSASectionEditTabPage.js","sourceRoot":"","sources":["../../src/layouts/NSASectionEditTabPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG1H,OAAO,EAAE,SAAS,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NSASectionEditTabPage.js","sourceRoot":"","sources":["../../src/layouts/NSASectionEditTabPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,11 @@ export interface NSASectionTabsProps {
|
|
|
6
6
|
export interface NSASectionTabsItemsProps {
|
|
7
7
|
enabled: true;
|
|
8
8
|
items: {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
general?: boolean;
|
|
10
|
+
field?: boolean;
|
|
11
|
+
category?: boolean;
|
|
11
12
|
tag?: boolean;
|
|
13
|
+
history?: boolean;
|
|
12
14
|
};
|
|
13
15
|
}
|
|
14
16
|
export interface NSASectionTabsRef {
|
|
@@ -7,15 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
11
|
-
import Styles from "./NSASectionTabs.module.css";
|
|
10
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
12
11
|
import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
|
|
13
12
|
import { EnvService, FilterItem, FilterItemOperator } from "namirasoft-core";
|
|
14
|
-
import { BaseColumnFormatter, DateTimeFormatter, IDFormatter, NSLabel, NSLoading,
|
|
13
|
+
import { BaseColumnFormatter, DateTimeFormatter, IDFormatter, NSLabel, NSLoading, NSTable, NSTabPage, StringFormatter, StringFormatterSizeType } from "namirasoft-site-react";
|
|
15
14
|
import { NamirasoftHistoryMetaDatabase, NamirasoftHistoryServer } from "namirasoft-history";
|
|
15
|
+
import { CFTUtil } from "./CFTUtil";
|
|
16
16
|
export const NSASectionTabs = forwardRef((_props, ref) => {
|
|
17
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
17
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
18
18
|
let props = _props;
|
|
19
|
+
if (!((_b = (_a = props.tabs) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : true))
|
|
20
|
+
return _jsx(_Fragment, {});
|
|
19
21
|
const NSTabPage_Ref = useRef(null);
|
|
20
22
|
let [state, setState] = useState({ row: null });
|
|
21
23
|
useEffect(() => {
|
|
@@ -30,65 +32,97 @@ export const NSASectionTabs = forwardRef((_props, ref) => {
|
|
|
30
32
|
const tabs = [];
|
|
31
33
|
if (props.id) {
|
|
32
34
|
if (props.entity.server.get)
|
|
33
|
-
if ((
|
|
34
|
-
|
|
35
|
+
if ((_d = (_c = props.tabs) === null || _c === void 0 ? void 0 : _c.items.general) !== null && _d !== void 0 ? _d : true)
|
|
36
|
+
tabs.push({
|
|
37
|
+
title: 'General',
|
|
38
|
+
clicked: false,
|
|
39
|
+
getContent: () => {
|
|
40
|
+
if (state.row == null)
|
|
41
|
+
return _jsx(NSLoading, {});
|
|
42
|
+
return _jsx("div", { children: props.entity.client.getColumns().map((column, index) => {
|
|
43
|
+
let value = state.row[column.name];
|
|
44
|
+
let formatted = column.formatter.format(value, column, { index: 0, value: state.row }, false);
|
|
45
|
+
return _jsx(NSLabel, { title: column.text + ":", children: _jsx("div", { children: formatted }) }, `NSASectionTabs_NSLabel_key_${index}`);
|
|
46
|
+
}) });
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
if (props.entity.server.get) {
|
|
50
|
+
if ((_f = (_e = props.tabs) === null || _e === void 0 ? void 0 : _e.items.field) !== null && _f !== void 0 ? _f : true) {
|
|
51
|
+
let groups = Array.from(new Set((_h = (_g = props.ctf.fields) === null || _g === void 0 ? void 0 : _g.map(x => x.group)) !== null && _h !== void 0 ? _h : []));
|
|
52
|
+
groups.forEach(group => {
|
|
35
53
|
tabs.push({
|
|
36
|
-
title:
|
|
54
|
+
title: group,
|
|
37
55
|
clicked: false,
|
|
38
56
|
getContent: () => {
|
|
57
|
+
var _a;
|
|
39
58
|
if (state.row == null)
|
|
40
59
|
return _jsx(NSLoading, {});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return _jsx(NSLabel, { title: column.text + ":", classList: [Styles.nsa_section_tabs_information_item], children: _jsx("div", { children: formatted }) }, `NSASectionTabs_NSLabel_key_${index}`);
|
|
60
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
61
|
+
return _jsx("div", { children: (_a = props.ctf.fields) === null || _a === void 0 ? void 0 : _a.filter(x => x.group === group).map((field, index) => {
|
|
62
|
+
return _jsx(NSLabel, { title: field.name + ":", children: _jsx("div", { children: ctf.fields.filter(f => f.field_id == field.id).map(f => f.value).join(", ") }) }, `NSASectionTabs_NSLabel_key_${index}`);
|
|
45
63
|
}) });
|
|
46
64
|
}
|
|
47
65
|
});
|
|
48
|
-
if ((_f = (_e = props.tabs) === null || _e === void 0 ? void 0 : _e.enabled) !== null && _f !== void 0 ? _f : true)
|
|
49
|
-
if ((_h = (_g = props.tabs) === null || _g === void 0 ? void 0 : _g.items.history) !== null && _h !== void 0 ? _h : true)
|
|
50
|
-
tabs.push({
|
|
51
|
-
title: 'History',
|
|
52
|
-
clicked: false,
|
|
53
|
-
getContent: () => {
|
|
54
|
-
return _jsx(NSTable, { name: "History", checkbox: false, columns: [
|
|
55
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.id, new IDFormatter()),
|
|
56
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.user_id, new IDFormatter()),
|
|
57
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.session_id, new IDFormatter()),
|
|
58
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_name, new StringFormatter(StringFormatterSizeType.TwoWords)),
|
|
59
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, new IDFormatter()),
|
|
60
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.action, new StringFormatter(StringFormatterSizeType.Word)),
|
|
61
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.created_at, new DateTimeFormatter()),
|
|
62
|
-
], getRows: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
if (props.id) {
|
|
64
|
-
let REACT_APP_BASE_URL_HISTORY = new EnvService("REACT_APP_BASE_URL_HISTORY", true).getString();
|
|
65
|
-
let server = new NamirasoftHistoryServer(REACT_APP_BASE_URL_HISTORY, props.account.token_manager, props.notifier.onError);
|
|
66
|
-
let filters = [new FilterItem(NamirasoftHistoryMetaDatabase.main.tables.history, NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, false, FilterItemOperator.all.equals, props.id)];
|
|
67
|
-
return yield server.history.List(filters, null, null, [], null);
|
|
68
|
-
}
|
|
69
|
-
return { rows: [], count: 0 };
|
|
70
|
-
}), getRowKey: row => row.value.id, style: { width: "100%" } });
|
|
71
|
-
}
|
|
72
66
|
});
|
|
73
|
-
|
|
74
|
-
if ((
|
|
67
|
+
}
|
|
68
|
+
if ((_k = (_j = props.tabs) === null || _j === void 0 ? void 0 : _j.items.category) !== null && _k !== void 0 ? _k : true) {
|
|
69
|
+
let groups = Array.from(new Set((_m = (_l = props.ctf.categories) === null || _l === void 0 ? void 0 : _l.map(x => x.group)) !== null && _m !== void 0 ? _m : []));
|
|
70
|
+
groups.forEach(group => {
|
|
71
|
+
tabs.push({
|
|
72
|
+
title: group,
|
|
73
|
+
clicked: false,
|
|
74
|
+
getContent: () => {
|
|
75
|
+
var _a;
|
|
76
|
+
if (state.row == null)
|
|
77
|
+
return _jsx(NSLoading, {});
|
|
78
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
79
|
+
let ids = ctf.categories.map(c => c.category_id);
|
|
80
|
+
return _jsx("div", { children: (_a = props.ctf.categories) === null || _a === void 0 ? void 0 : _a.filter(x => x.group === group && ids.includes(x.id)).map((category, index) => {
|
|
81
|
+
return _jsx(NSLabel, { title: category.name }, `NSASectionTabs_NSLabel_key_${index}`);
|
|
82
|
+
}) });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if ((_p = (_o = props.tabs) === null || _o === void 0 ? void 0 : _o.items.tag) !== null && _p !== void 0 ? _p : true)
|
|
75
88
|
tabs.push({
|
|
76
89
|
title: 'Tag',
|
|
77
90
|
clicked: false,
|
|
78
91
|
getContent: () => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
item.setValue(value);
|
|
87
|
-
}, onValuesChanged: values => {
|
|
88
|
-
console.log(values);
|
|
89
|
-
} });
|
|
92
|
+
var _a;
|
|
93
|
+
if (state.row == null)
|
|
94
|
+
return _jsx(NSLoading, {});
|
|
95
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
96
|
+
return _jsx("div", { children: (_a = ctf.tags) === null || _a === void 0 ? void 0 : _a.map((tag, index) => {
|
|
97
|
+
return _jsx(NSLabel, { title: tag.name + ":", children: _jsx("div", { children: tag.value }) }, `NSASectionTabs_NSLabel_key_${index}`);
|
|
98
|
+
}) });
|
|
90
99
|
}
|
|
91
100
|
});
|
|
101
|
+
}
|
|
102
|
+
if ((_r = (_q = props.tabs) === null || _q === void 0 ? void 0 : _q.items.history) !== null && _r !== void 0 ? _r : true)
|
|
103
|
+
tabs.push({
|
|
104
|
+
title: 'History',
|
|
105
|
+
clicked: false,
|
|
106
|
+
getContent: () => {
|
|
107
|
+
return _jsx(NSTable, { name: "History", checkbox: false, columns: [
|
|
108
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.id, new IDFormatter()),
|
|
109
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.user_id, new IDFormatter()),
|
|
110
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.session_id, new IDFormatter()),
|
|
111
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_name, new StringFormatter(StringFormatterSizeType.TwoWords)),
|
|
112
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, new IDFormatter()),
|
|
113
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.action, new StringFormatter(StringFormatterSizeType.Word)),
|
|
114
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.created_at, new DateTimeFormatter()),
|
|
115
|
+
], getRows: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
116
|
+
if (props.id) {
|
|
117
|
+
let REACT_APP_BASE_URL_HISTORY = new EnvService("REACT_APP_BASE_URL_HISTORY", true).getString();
|
|
118
|
+
let server = new NamirasoftHistoryServer(REACT_APP_BASE_URL_HISTORY, props.account.token_manager, props.notifier.onError);
|
|
119
|
+
let filters = [new FilterItem(NamirasoftHistoryMetaDatabase.main.tables.history, NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, false, FilterItemOperator.all.equals, props.id)];
|
|
120
|
+
return yield server.history.List(filters, null, null, [], null);
|
|
121
|
+
}
|
|
122
|
+
return { rows: [], count: 0 };
|
|
123
|
+
}), getRowKey: row => row.value.id, style: { width: "100%" } });
|
|
124
|
+
}
|
|
125
|
+
});
|
|
92
126
|
}
|
|
93
127
|
useImperativeHandle(ref, () => ({
|
|
94
128
|
NSTabPage: NSTabPage_Ref.current
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSASectionTabs.js","sourceRoot":"","sources":["../../src/layouts/NSASectionTabs.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NSASectionTabs.js","sourceRoot":"","sources":["../../src/layouts/NSASectionTabs.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/CTFRow.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CTFRow } from "../CTFRow";
|
|
2
|
+
|
|
3
|
+
export class CFTUtil
|
|
4
|
+
{
|
|
5
|
+
static get(name: string, row: any): CTFRow
|
|
6
|
+
{
|
|
7
|
+
return {
|
|
8
|
+
categories: row[name + "_category"],
|
|
9
|
+
fields: row[name + "_field"],
|
|
10
|
+
tags: row[name + "_tag"],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
static set(name: string, row: any, ctf: CTFRow)
|
|
14
|
+
{
|
|
15
|
+
row[name + "_field"] = ctf.fields;
|
|
16
|
+
row[name + "_category"] = ctf.categories;
|
|
17
|
+
row[name + "_tag"] = ctf.tags;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -5,6 +5,8 @@ import { Component, createRef, ReactNode } from "react";
|
|
|
5
5
|
import { CategoryRow, FieldRow } from "namirasoft-field";
|
|
6
6
|
import { EntityCategoryInputRow, EntityFieldInputRow, EntityTagInputRow } from "namirasoft-field";
|
|
7
7
|
import { IEntityInfo } from "../IEntityInfo";
|
|
8
|
+
import { CFTUtil } from "./CFTUtil";
|
|
9
|
+
import { CTFRow } from "../CTFRow";
|
|
8
10
|
|
|
9
11
|
export interface NSASectionEditTabPageProps<EntityType, EntityTypeInput = EntityType> extends INSARouterProps
|
|
10
12
|
{
|
|
@@ -36,6 +38,16 @@ export class NSASectionEditTabPage<EntityType, EntityTypeInput = EntityType> ext
|
|
|
36
38
|
super(props);
|
|
37
39
|
this.state = { entity: null };
|
|
38
40
|
|
|
41
|
+
if (props.ctf.enabled)
|
|
42
|
+
{
|
|
43
|
+
props.ctf.fields?.forEach(field => this.Fields_Refs[field.name] = createRef<NSBoxDynamic>());
|
|
44
|
+
props.ctf.categories?.forEach(category =>
|
|
45
|
+
{
|
|
46
|
+
if (!this.Categories_Refs[category.group])
|
|
47
|
+
this.Categories_Refs[category.group] = createRef<NSBoxBooleans>()
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
39
51
|
this.getLoadedEntity = this.getLoadedEntity.bind(this);
|
|
40
52
|
this.setEntity = this.setEntity.bind(this);
|
|
41
53
|
this.getEntity = this.getEntity.bind(this);
|
|
@@ -50,27 +62,18 @@ export class NSASectionEditTabPage<EntityType, EntityTypeInput = EntityType> ext
|
|
|
50
62
|
{
|
|
51
63
|
this.props.setEntity(entity);
|
|
52
64
|
if (this.props.ctf.enabled)
|
|
53
|
-
|
|
54
|
-
let entity_fields = entity as any;
|
|
55
|
-
this.setFields(entity_fields[this.props.entity.name + "_field"], entity_fields[this.props.entity.name + "_category"], entity_fields[this.props.entity.name + "_tag"]);
|
|
56
|
-
}
|
|
65
|
+
this.setFields(CFTUtil.get(this.props.entity.name, entity));
|
|
57
66
|
this.setState(prev => { return { ...prev, entity } });
|
|
58
67
|
}
|
|
59
68
|
getEntity(): EntityTypeInput
|
|
60
69
|
{
|
|
61
70
|
let entity = this.props.getEntity(this.state.entity);
|
|
62
71
|
if (this.props.ctf.enabled)
|
|
63
|
-
|
|
64
|
-
let { fields, categories, tags } = this.getFields();
|
|
65
|
-
let entity_fields = entity as any;
|
|
66
|
-
entity_fields[this.props.entity.name + "_field"] = fields;
|
|
67
|
-
entity_fields[this.props.entity.name + "_category"] = categories;
|
|
68
|
-
entity_fields[this.props.entity.name + "_tag"] = tags;
|
|
69
|
-
}
|
|
72
|
+
CFTUtil.set(this.props.entity.name, entity, this.getFields());
|
|
70
73
|
return entity;
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
private getFields():
|
|
76
|
+
private getFields(): CTFRow
|
|
74
77
|
{
|
|
75
78
|
let fields: EntityFieldInputRow[] = [];
|
|
76
79
|
let categories: EntityCategoryInputRow[] = [];
|
|
@@ -91,11 +94,11 @@ export class NSASectionEditTabPage<EntityType, EntityTypeInput = EntityType> ext
|
|
|
91
94
|
if (this.Tags_Refs.current)
|
|
92
95
|
tags = this.Tags_Refs.current.getValue().map(x => { return { name: x.name, value: x.value } });
|
|
93
96
|
|
|
94
|
-
return {
|
|
97
|
+
return { categories, fields, tags };
|
|
95
98
|
}
|
|
96
|
-
private setFields(
|
|
99
|
+
private setFields(ctf: CTFRow)
|
|
97
100
|
{
|
|
98
|
-
for (let field of fields)
|
|
101
|
+
for (let field of ctf.fields)
|
|
99
102
|
{
|
|
100
103
|
let ref = this.Fields_Refs[field.field_id];
|
|
101
104
|
if (ref.current)
|
|
@@ -105,10 +108,10 @@ export class NSASectionEditTabPage<EntityType, EntityTypeInput = EntityType> ext
|
|
|
105
108
|
{
|
|
106
109
|
let ref = this.Categories_Refs[key];
|
|
107
110
|
if (ref.current)
|
|
108
|
-
ref.current.setValues(categories.map(x => x.category_id));
|
|
111
|
+
ref.current.setValues(ctf.categories.map(x => x.category_id));
|
|
109
112
|
}
|
|
110
113
|
if (this.Tags_Refs.current)
|
|
111
|
-
this.Tags_Refs.current.setValue(tags.map(x => { return { name: x.name, value: x.value ?? "" } }));
|
|
114
|
+
this.Tags_Refs.current.setValue(ctf.tags.map(x => { return { name: x.name, value: x.value ?? "" } }));
|
|
112
115
|
}
|
|
113
116
|
override componentDidMount()
|
|
114
117
|
{
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import Styles from "./NSASectionTabs.module.css";
|
|
2
1
|
import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
|
|
3
2
|
import { EnvService, FilterItem, FilterItemOperator } from "namirasoft-core";
|
|
4
|
-
import { BaseColumnFormatter, DateTimeFormatter, IDFormatter, NSLabel, NSLoading,
|
|
3
|
+
import { BaseColumnFormatter, DateTimeFormatter, IDFormatter, NSLabel, NSLoading, NSTable, NSTabPage, StringFormatter, NSTabPageTab, StringFormatterSizeType } from "namirasoft-site-react";
|
|
5
4
|
import { NamirasoftHistoryMetaDatabase, HistoryRow, NamirasoftHistoryServer } from "namirasoft-history";
|
|
6
5
|
import { IEntityInfo } from "../IEntityInfo";
|
|
7
6
|
import { INSARouterProps } from "../INSARouterProps";
|
|
8
7
|
import { CategoryRow, FieldRow } from "namirasoft-field";
|
|
8
|
+
import { CFTUtil } from "./CFTUtil";
|
|
9
9
|
|
|
10
10
|
export interface NSASectionTabsProps
|
|
11
11
|
{
|
|
@@ -17,9 +17,11 @@ export interface NSASectionTabsItemsProps
|
|
|
17
17
|
{
|
|
18
18
|
enabled: true;
|
|
19
19
|
items: {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
general?: boolean;
|
|
21
|
+
field?: boolean;
|
|
22
|
+
category?: boolean;
|
|
22
23
|
tag?: boolean;
|
|
24
|
+
history?: boolean;
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
|
|
@@ -49,6 +51,10 @@ export const NSASectionTabs = forwardRef<any, any>(<EntityType extends { id: str
|
|
|
49
51
|
) =>
|
|
50
52
|
{
|
|
51
53
|
let props: NSASectionTabsItemsInnerProps<EntityType, EntityTypeInput> = _props as any;
|
|
54
|
+
|
|
55
|
+
if (!(props.tabs?.enabled ?? true))
|
|
56
|
+
return <></>;
|
|
57
|
+
|
|
52
58
|
const NSTabPage_Ref = useRef<NSTabPage>(null);
|
|
53
59
|
|
|
54
60
|
let [state, setState] = useState<NSASectionTabsState>({ row: null });
|
|
@@ -67,121 +73,166 @@ export const NSASectionTabs = forwardRef<any, any>(<EntityType extends { id: str
|
|
|
67
73
|
// eslint-disable-next-line
|
|
68
74
|
}, [props.id]);
|
|
69
75
|
|
|
70
|
-
//todo
|
|
71
|
-
// let todo = () => <p>This is not impolemented yet.</p>;
|
|
72
76
|
const tabs: NSTabPageTab[] = [];
|
|
73
77
|
if (props.id)
|
|
74
78
|
{
|
|
75
|
-
//todo: check entity.get ? show information :remove information tab
|
|
76
79
|
if (props.entity.server.get)
|
|
77
|
-
if (props.tabs?.
|
|
78
|
-
|
|
80
|
+
if (props.tabs?.items.general ?? true)
|
|
81
|
+
tabs.push({
|
|
82
|
+
title: 'General',
|
|
83
|
+
clicked: false,
|
|
84
|
+
getContent: () =>
|
|
85
|
+
{
|
|
86
|
+
if (state.row == null)
|
|
87
|
+
return <NSLoading></NSLoading>;
|
|
88
|
+
return <div>
|
|
89
|
+
{
|
|
90
|
+
props.entity.client.getColumns().map((column, index) =>
|
|
91
|
+
{
|
|
92
|
+
let value = state.row[column.name];
|
|
93
|
+
let formatted = column.formatter.format(value, column, { index: 0, value: state.row }, false);
|
|
94
|
+
return <NSLabel
|
|
95
|
+
key={`NSASectionTabs_NSLabel_key_${index}`}
|
|
96
|
+
title={column.text + ":"}
|
|
97
|
+
>
|
|
98
|
+
<div>{formatted}</div>
|
|
99
|
+
</NSLabel>
|
|
100
|
+
})
|
|
101
|
+
}
|
|
102
|
+
</div>;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
if (props.entity.server.get)
|
|
107
|
+
{
|
|
108
|
+
if (props.tabs?.items.field ?? true)
|
|
109
|
+
{
|
|
110
|
+
let groups = Array.from(new Set(props.ctf.fields?.map(x => x.group) ?? []));
|
|
111
|
+
groups.forEach(group =>
|
|
112
|
+
{
|
|
79
113
|
tabs.push({
|
|
80
|
-
title:
|
|
114
|
+
title: group,
|
|
81
115
|
clicked: false,
|
|
82
116
|
getContent: () =>
|
|
83
117
|
{
|
|
84
118
|
if (state.row == null)
|
|
85
119
|
return <NSLoading></NSLoading>;
|
|
86
|
-
|
|
120
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
121
|
+
return <div>
|
|
87
122
|
{
|
|
88
|
-
props.
|
|
123
|
+
props.ctf.fields?.filter(x => x.group === group).map((field, index) =>
|
|
89
124
|
{
|
|
90
|
-
let value = state.row[column.name];
|
|
91
|
-
let formatted = column.formatter.format(value, column, { index: 0, value: state.row }, false);
|
|
92
125
|
return <NSLabel
|
|
93
126
|
key={`NSASectionTabs_NSLabel_key_${index}`}
|
|
94
|
-
title={
|
|
95
|
-
classList={[Styles.nsa_section_tabs_information_item]}
|
|
127
|
+
title={field.name + ":"}
|
|
96
128
|
>
|
|
97
|
-
<div>{
|
|
129
|
+
<div>{ctf.fields.filter(f => f.field_id == field.id).map(f => f.value).join(", ")}</div>
|
|
98
130
|
</NSLabel>
|
|
99
131
|
})
|
|
100
132
|
}
|
|
101
133
|
</div>;
|
|
102
134
|
}
|
|
103
135
|
});
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.user_id, new IDFormatter()),
|
|
122
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.session_id, new IDFormatter()),
|
|
123
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_name, new StringFormatter(StringFormatterSizeType.TwoWords)),
|
|
124
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, new IDFormatter()),
|
|
125
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.action, new StringFormatter(StringFormatterSizeType.Word)),
|
|
126
|
-
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.created_at, new DateTimeFormatter()),
|
|
127
|
-
]}
|
|
128
|
-
getRows={async () =>
|
|
129
|
-
{
|
|
130
|
-
if (props.id)
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (props.tabs?.items.category ?? true)
|
|
139
|
+
{
|
|
140
|
+
let groups = Array.from(new Set(props.ctf.categories?.map(x => x.group) ?? []));
|
|
141
|
+
groups.forEach(group =>
|
|
142
|
+
{
|
|
143
|
+
tabs.push({
|
|
144
|
+
title: group,
|
|
145
|
+
clicked: false,
|
|
146
|
+
getContent: () =>
|
|
147
|
+
{
|
|
148
|
+
if (state.row == null)
|
|
149
|
+
return <NSLoading></NSLoading>;
|
|
150
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
151
|
+
let ids = ctf.categories.map(c => c.category_id);
|
|
152
|
+
return <div>
|
|
131
153
|
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
154
|
+
props.ctf.categories?.filter(x => x.group === group && ids.includes(x.id)).map((category, index) =>
|
|
155
|
+
{
|
|
156
|
+
return <NSLabel
|
|
157
|
+
key={`NSASectionTabs_NSLabel_key_${index}`}
|
|
158
|
+
title={category.name}
|
|
159
|
+
>
|
|
160
|
+
</NSLabel>
|
|
161
|
+
})
|
|
136
162
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
style={{ width: "100%" }}
|
|
141
|
-
></NSTable>;
|
|
142
|
-
}
|
|
163
|
+
</div>;
|
|
164
|
+
}
|
|
165
|
+
});
|
|
143
166
|
});
|
|
144
|
-
|
|
145
|
-
// tabs.push({title: 'How It Works', getContent: todo });
|
|
146
|
-
// tabs.push({title: 'API', getContent: todo });
|
|
147
|
-
// tabs.push({title: 'Sample Code', getContent: todo });
|
|
148
|
-
if (props.tabs?.enabled ?? true)
|
|
167
|
+
}
|
|
149
168
|
if (props.tabs?.items.tag ?? true)
|
|
150
169
|
tabs.push({
|
|
151
170
|
title: 'Tag',
|
|
152
171
|
clicked: false,
|
|
153
172
|
getContent: () =>
|
|
154
173
|
{
|
|
155
|
-
|
|
156
|
-
|
|
174
|
+
if (state.row == null)
|
|
175
|
+
return <NSLoading></NSLoading>;
|
|
176
|
+
let ctf = CFTUtil.get(props.entity.name, state.row);
|
|
177
|
+
return <div>
|
|
157
178
|
{
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}}
|
|
170
|
-
/>;
|
|
171
|
-
}}
|
|
172
|
-
isEmpty={(_, value) => NSTag.isEmpty(value)}
|
|
173
|
-
getValue={(item, checkError) => item.getValue(checkError)}
|
|
174
|
-
setValue={(item, _, value) =>
|
|
175
|
-
{
|
|
176
|
-
item.setValue(value);
|
|
177
|
-
}}
|
|
178
|
-
onValuesChanged={values =>
|
|
179
|
-
{
|
|
180
|
-
console.log(values)
|
|
181
|
-
}}
|
|
182
|
-
/>;
|
|
179
|
+
ctf.tags?.map((tag, index) =>
|
|
180
|
+
{
|
|
181
|
+
return <NSLabel
|
|
182
|
+
key={`NSASectionTabs_NSLabel_key_${index}`}
|
|
183
|
+
title={tag.name + ":"}
|
|
184
|
+
>
|
|
185
|
+
<div>{tag.value}</div>
|
|
186
|
+
</NSLabel>
|
|
187
|
+
})
|
|
188
|
+
}
|
|
189
|
+
</div>;
|
|
183
190
|
}
|
|
184
191
|
});
|
|
192
|
+
}
|
|
193
|
+
//todo
|
|
194
|
+
// tabs.push({title: 'Price History', getContent: todo });
|
|
195
|
+
// tabs.push({title: 'Price Estimator', getContent: todo });
|
|
196
|
+
// tabs.push({title: 'Log', getContent: todo });
|
|
197
|
+
// tabs.push({title: 'Monitor', getContent: todo });
|
|
198
|
+
if (props.tabs?.items.history ?? true)
|
|
199
|
+
tabs.push({
|
|
200
|
+
title: 'History',
|
|
201
|
+
clicked: false,
|
|
202
|
+
getContent: () =>
|
|
203
|
+
{
|
|
204
|
+
return <NSTable<HistoryRow>
|
|
205
|
+
name="History"
|
|
206
|
+
checkbox={false}
|
|
207
|
+
columns={[
|
|
208
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.id, new IDFormatter()),
|
|
209
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.user_id, new IDFormatter()),
|
|
210
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.session_id, new IDFormatter()),
|
|
211
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_name, new StringFormatter(StringFormatterSizeType.TwoWords)),
|
|
212
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, new IDFormatter()),
|
|
213
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.action, new StringFormatter(StringFormatterSizeType.Word)),
|
|
214
|
+
BaseColumnFormatter.getColumn(NamirasoftHistoryMetaDatabase.main.tables.history.columns.created_at, new DateTimeFormatter()),
|
|
215
|
+
]}
|
|
216
|
+
getRows={async () =>
|
|
217
|
+
{
|
|
218
|
+
if (props.id)
|
|
219
|
+
{
|
|
220
|
+
let REACT_APP_BASE_URL_HISTORY = new EnvService("REACT_APP_BASE_URL_HISTORY", true).getString();
|
|
221
|
+
let server = new NamirasoftHistoryServer(REACT_APP_BASE_URL_HISTORY, props.account.token_manager, props.notifier.onError);
|
|
222
|
+
let filters = [new FilterItem(NamirasoftHistoryMetaDatabase.main.tables.history, NamirasoftHistoryMetaDatabase.main.tables.history.columns.entity_id, false, FilterItemOperator.all.equals, props.id)]
|
|
223
|
+
return await server.history.List(filters, null, null, [], null);
|
|
224
|
+
}
|
|
225
|
+
return { rows: [], count: 0 };
|
|
226
|
+
}}
|
|
227
|
+
getRowKey={row => row.value.id}
|
|
228
|
+
style={{ width: "100%" }}
|
|
229
|
+
></NSTable>;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
//todo
|
|
233
|
+
// tabs.push({title: 'How It Works', getContent: todo });
|
|
234
|
+
// tabs.push({title: 'API', getContent: todo });
|
|
235
|
+
// tabs.push({title: 'Sample Code', getContent: todo });
|
|
185
236
|
//todo
|
|
186
237
|
// tabs.push({title: 'Category', getContent: todo });
|
|
187
238
|
// tabs.push({title: 'Field', getContent: todo });
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
.nsa_section_tabs_information {
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-wrap: wrap;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
gap: 0px 64px;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.nsa_section_tabs_information_item {
|
|
9
|
-
color: black;
|
|
10
|
-
display: flex;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.nsa_section_tabs_information_item>span {
|
|
15
|
-
margin: 0px;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.nsa_section_tabs_information_item>div {
|
|
19
|
-
margin: 0px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@media only screen and (min-width: 480px) {
|
|
23
|
-
.nsa_section_tabs_information_item {
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: row;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.nsa_section_tabs_information_item>span {
|
|
29
|
-
min-width: 200px;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@media only screen and (min-width: 768px) {
|
|
34
|
-
.nsa_section_tabs_information {
|
|
35
|
-
gap: 16px 64px;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@media only screen and (min-width: 1024px) {
|
|
40
|
-
.nsa_section_tabs_information {
|
|
41
|
-
flex-direction: row;
|
|
42
|
-
gap: 16px 64px;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.nsa_section_tabs_information_item {
|
|
46
|
-
flex-direction: column;
|
|
47
|
-
}
|
|
48
|
-
}
|