@quandis/qbo4.configuration 4.0.1-CI-20241017-003408 → 4.0.1-CI-20241017-182709
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/package.json +2 -2
- package/src/qbo-config-editor.d.ts +2 -0
- package/src/qbo-config-editor.js +36 -14
- package/src/qbo-config-editor.js.map +1 -1
- package/src/qbo-config-editor.ts +40 -14
- package/wwwroot/js/esm/qbo4.configuration.js +37 -15
- package/wwwroot/js/esm/qbo4.configuration.min.js +10 -10
- package/wwwroot/js/esm/qbo4.configuration.min.js.map +1 -1
- package/wwwroot/js/qbo4.configuration.js +37 -15
- package/wwwroot/js/qbo4.configuration.min.js +12 -12
- package/wwwroot/js/qbo4.configuration.min.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quandis/qbo4.configuration",
|
|
3
|
-
"version": "4.0.1-CI-20241017-
|
|
3
|
+
"version": "4.0.1-CI-20241017-182709",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./src/Program.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"mini-css-extract-plugin": "^2.9.1",
|
|
36
36
|
"postcss-cli": "^11.0.0",
|
|
37
37
|
"postcss-loader": "^8.1.1",
|
|
38
|
-
"sass": "^1.80.
|
|
38
|
+
"sass": "^1.80.1",
|
|
39
39
|
"sass-loader": "^16.0.2",
|
|
40
40
|
"style-loader": "^4.0.0",
|
|
41
41
|
"typescript": "^5.6.3",
|
|
@@ -12,6 +12,8 @@ export declare class QboConfigEditor extends LitElement {
|
|
|
12
12
|
addKeyValuePair(event: any): void;
|
|
13
13
|
deleteKeyValuePair(key: any, event: any): Promise<void>;
|
|
14
14
|
saveChanges(event: any): Promise<void>;
|
|
15
|
+
clearNotifications(): void;
|
|
16
|
+
alertError(error: any): void;
|
|
15
17
|
alertUpdated(): void;
|
|
16
18
|
alertClear(alert: Element): void;
|
|
17
19
|
cancelChanges(event: any): Promise<void>;
|
package/src/qbo-config-editor.js
CHANGED
|
@@ -45,19 +45,21 @@ export class QboConfigEditor extends LitElement {
|
|
|
45
45
|
}
|
|
46
46
|
async deleteKeyValuePair(key, event) {
|
|
47
47
|
event.preventDefault();
|
|
48
|
+
this.clearNotifications();
|
|
48
49
|
try {
|
|
49
50
|
await fetch(`${this.apiEndpoint}/delete/${key}`, {
|
|
50
51
|
method: 'GET'
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
catch (err) {
|
|
54
|
-
|
|
55
|
+
this.alertError(err);
|
|
55
56
|
}
|
|
56
57
|
await this.search();
|
|
57
58
|
this.alertUpdated();
|
|
58
59
|
}
|
|
59
60
|
async saveChanges(event) {
|
|
60
61
|
event.preventDefault();
|
|
62
|
+
this.clearNotifications();
|
|
61
63
|
try {
|
|
62
64
|
await fetch(`${this.apiEndpoint}/save`, {
|
|
63
65
|
method: 'POST',
|
|
@@ -65,13 +67,31 @@ export class QboConfigEditor extends LitElement {
|
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
69
|
catch (err) {
|
|
68
|
-
|
|
70
|
+
this.alertError(err);
|
|
69
71
|
}
|
|
70
72
|
await this.search();
|
|
71
73
|
this.alertUpdated();
|
|
72
74
|
}
|
|
75
|
+
clearNotifications() {
|
|
76
|
+
this.renderRoot.querySelector(`div.error`)?.classList.add("hidden");
|
|
77
|
+
this.renderRoot.querySelector(`div.success`)?.classList.add("hidden");
|
|
78
|
+
}
|
|
79
|
+
alertError(error) {
|
|
80
|
+
dispatchEvent(new CustomEvent('qbo-error', { detail: error }));
|
|
81
|
+
var alert = this.renderRoot.querySelector(`div.error`);
|
|
82
|
+
if (alert) {
|
|
83
|
+
alert.classList.remove("hidden");
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
alert = document.createElement("div");
|
|
87
|
+
alert.className = "error";
|
|
88
|
+
alert.innerHTML = error;
|
|
89
|
+
var form = this.renderRoot.querySelector(`form`);
|
|
90
|
+
form?.insertBefore(alert, form?.querySelector(`div.${this.buttonClass}`));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
73
93
|
alertUpdated() {
|
|
74
|
-
var alert = this.renderRoot.querySelector(`div.
|
|
94
|
+
var alert = this.renderRoot.querySelector(`div.success`);
|
|
75
95
|
if (alert) {
|
|
76
96
|
alert.classList.remove("hidden");
|
|
77
97
|
}
|
|
@@ -97,6 +117,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
97
117
|
await this.search();
|
|
98
118
|
}
|
|
99
119
|
async search() {
|
|
120
|
+
this.clearNotifications();
|
|
100
121
|
var input = this.renderRoot.querySelector(`div.${this.searchClass}`)?.querySelector('input');
|
|
101
122
|
if (input instanceof HTMLInputElement) {
|
|
102
123
|
if (input.value.trim() == '') {
|
|
@@ -111,7 +132,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
111
132
|
this.configData = await response.json();
|
|
112
133
|
}
|
|
113
134
|
catch (err) {
|
|
114
|
-
|
|
135
|
+
this.alertError(err);
|
|
115
136
|
}
|
|
116
137
|
}
|
|
117
138
|
}
|
|
@@ -121,20 +142,22 @@ export class QboConfigEditor extends LitElement {
|
|
|
121
142
|
}
|
|
122
143
|
render() {
|
|
123
144
|
const source = new JsonConfigurationSource(this.configData);
|
|
124
|
-
|
|
125
|
-
<form @submit="${this.handleSubmit}" class="${this.formClass}" data-bs-theme="${this.theme}">
|
|
126
|
-
<div class="${this.searchClass}">
|
|
127
|
-
<input type="text" @keydown="${this.filter}">
|
|
128
|
-
<button type="button" @click="${this.filter}">Search</button>
|
|
129
|
-
</div>
|
|
145
|
+
const header = Array.from(source.getValues()).length == 0 ? html `` : html `
|
|
130
146
|
<div class="${this.rowClass}">
|
|
131
147
|
<div>
|
|
132
|
-
<
|
|
148
|
+
<strong>Name</strong>
|
|
133
149
|
</div>
|
|
134
150
|
<div>
|
|
135
|
-
<
|
|
151
|
+
<strong>Value</strong>
|
|
136
152
|
</div>
|
|
153
|
+
</div>`;
|
|
154
|
+
return html `
|
|
155
|
+
<form @submit="${this.handleSubmit}" class="${this.formClass}" data-bs-theme="${this.theme}">
|
|
156
|
+
<div class="${this.searchClass}">
|
|
157
|
+
<input type="text" @keydown="${this.filter}">
|
|
158
|
+
<button type="button" @click="${this.filter}">Search</button>
|
|
137
159
|
</div>
|
|
160
|
+
${header}
|
|
138
161
|
${Array.from(source.getValues()).map(({ key, value }) => html `
|
|
139
162
|
<div class="${this.rowClass}">
|
|
140
163
|
<div>
|
|
@@ -154,8 +177,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
154
177
|
<button type="button" class="cancel" @click="${this.cancelChanges}">Cancel</button>
|
|
155
178
|
</div>
|
|
156
179
|
</div>
|
|
157
|
-
</form
|
|
158
|
-
</slot>`;
|
|
180
|
+
</form>`;
|
|
159
181
|
}
|
|
160
182
|
}
|
|
161
183
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qbo-config-editor.js","sourceRoot":"","sources":["qbo-config-editor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,GAAQ,MAAM,KAAK,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAA/C;;QAGI,gBAAW,GAAG,IAAI,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAGhE,gBAAW,GAAG,SAAS,CAAC;QAGxB,eAAU,GAAW,EAAE,CAAC;QAGxB,cAAS,GAAG,mBAAmB,CAAC;QAGhC,aAAQ,GAAG,SAAS,CAAC;QAGrB,gBAAW,GAAG,QAAQ,CAAC;QAGvB,UAAK,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"qbo-config-editor.js","sourceRoot":"","sources":["qbo-config-editor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,GAAQ,MAAM,KAAK,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAA/C;;QAGI,gBAAW,GAAG,IAAI,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAGhE,gBAAW,GAAG,SAAS,CAAC;QAGxB,eAAU,GAAW,EAAE,CAAC;QAGxB,cAAS,GAAG,mBAAmB,CAAC;QAGhC,aAAQ,GAAG,SAAS,CAAC;QAGrB,gBAAW,GAAG,QAAQ,CAAC;QAGvB,UAAK,GAAG,OAAO,CAAC;IA6KpB,CAAC;aA3KU,WAAM,GAAG;QACZ,gBAAgB;KACnB,AAFY,CAEX;IAEF,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;QACtD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,KAAK;QACjB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,WAAW,GAAG,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAK;QACnB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,OAAO,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/D,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;YAC1B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAExB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,YAAY;QACR,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,6BAA6B,CAAC;YAEhD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,KAAc;QACrB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAK;QACrB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;YAAE,OAAO;QACtE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7F,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;gBAE3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YAEzB,CAAC;iBAAM,CAAC;gBAEJ,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,WAAW,KAAK,CAAC,KAAK,EAAE,EAAE;wBACtE,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;qBAC5C,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YAEL,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAY;QACrB,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;kBAC/D,IAAI,CAAC,QAAQ;;;;;;;WAOpB,CAAC;QAEJ,OAAO,IAAI,CAAA;iBACF,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,SAAS,oBAAoB,IAAI,CAAC,KAAK;kBACxE,IAAI,CAAC,WAAW;uCACK,IAAI,CAAC,MAAM;wCACV,IAAI,CAAC,MAAM;;MAE7C,MAAM;MACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;kBAC/C,IAAI,CAAC,QAAQ;;yCAEU,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;;;;6CAItE,KAAK,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;+DACpD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;;;WAG1F,CAAC;kBACM,IAAI,CAAC,WAAW;oDACkB,IAAI,CAAC,eAAe;;yDAEf,IAAI,CAAC,WAAW;2DACd,IAAI,CAAC,aAAa;;;QAGrE,CAAC;IACL,CAAC;;AA9LD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;;oDACwC;AAGhE;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACH;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8BACf,MAAM;mDAAM;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDACK;AAGhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iDACN;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACJ;AAGvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8CACX;AA+KpB,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC"}
|
package/src/qbo-config-editor.ts
CHANGED
|
@@ -51,12 +51,13 @@ export class QboConfigEditor extends LitElement {
|
|
|
51
51
|
|
|
52
52
|
async deleteKeyValuePair(key, event) {
|
|
53
53
|
event.preventDefault();
|
|
54
|
+
this.clearNotifications();
|
|
54
55
|
try {
|
|
55
56
|
await fetch(`${this.apiEndpoint}/delete/${key}`, {
|
|
56
57
|
method: 'GET'
|
|
57
58
|
});
|
|
58
59
|
} catch (err) {
|
|
59
|
-
|
|
60
|
+
this.alertError(err);
|
|
60
61
|
}
|
|
61
62
|
await this.search();
|
|
62
63
|
this.alertUpdated();
|
|
@@ -64,20 +65,42 @@ export class QboConfigEditor extends LitElement {
|
|
|
64
65
|
|
|
65
66
|
async saveChanges(event) {
|
|
66
67
|
event.preventDefault();
|
|
68
|
+
this.clearNotifications();
|
|
67
69
|
try {
|
|
68
70
|
await fetch(`${this.apiEndpoint}/save`, {
|
|
69
71
|
method: 'POST',
|
|
70
72
|
body: JSON.stringify(this.configData)
|
|
71
73
|
});
|
|
72
74
|
} catch (err) {
|
|
73
|
-
|
|
75
|
+
this.alertError(err);
|
|
74
76
|
}
|
|
75
77
|
await this.search();
|
|
76
78
|
this.alertUpdated();
|
|
77
79
|
}
|
|
78
80
|
|
|
81
|
+
clearNotifications() {
|
|
82
|
+
this.renderRoot.querySelector(`div.error`)?.classList.add("hidden");
|
|
83
|
+
this.renderRoot.querySelector(`div.success`)?.classList.add("hidden");
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
alertError(error) {
|
|
87
|
+
dispatchEvent(new CustomEvent('qbo-error', { detail: error }));
|
|
88
|
+
|
|
89
|
+
var alert = this.renderRoot.querySelector(`div.error`);
|
|
90
|
+
if (alert) {
|
|
91
|
+
alert.classList.remove("hidden");
|
|
92
|
+
} else {
|
|
93
|
+
alert = document.createElement("div");
|
|
94
|
+
alert.className = "error";
|
|
95
|
+
alert.innerHTML = error;
|
|
96
|
+
|
|
97
|
+
var form = this.renderRoot.querySelector(`form`);
|
|
98
|
+
form?.insertBefore(alert, form?.querySelector(`div.${this.buttonClass}`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
79
102
|
alertUpdated() {
|
|
80
|
-
var alert = this.renderRoot.querySelector(`div.
|
|
103
|
+
var alert = this.renderRoot.querySelector(`div.success`);
|
|
81
104
|
if (alert) {
|
|
82
105
|
alert.classList.remove("hidden");
|
|
83
106
|
} else {
|
|
@@ -106,6 +129,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
106
129
|
}
|
|
107
130
|
|
|
108
131
|
async search() {
|
|
132
|
+
this.clearNotifications();
|
|
109
133
|
var input = this.renderRoot.querySelector(`div.${this.searchClass}`)?.querySelector('input');
|
|
110
134
|
if (input instanceof HTMLInputElement) {
|
|
111
135
|
|
|
@@ -122,7 +146,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
122
146
|
});
|
|
123
147
|
this.configData = await response.json();
|
|
124
148
|
} catch (err) {
|
|
125
|
-
|
|
149
|
+
this.alertError(err);
|
|
126
150
|
}
|
|
127
151
|
|
|
128
152
|
}
|
|
@@ -135,20 +159,23 @@ export class QboConfigEditor extends LitElement {
|
|
|
135
159
|
|
|
136
160
|
render() {
|
|
137
161
|
const source = new JsonConfigurationSource(this.configData);
|
|
138
|
-
|
|
139
|
-
<form @submit="${this.handleSubmit}" class="${this.formClass}" data-bs-theme="${this.theme}">
|
|
140
|
-
<div class="${this.searchClass}">
|
|
141
|
-
<input type="text" @keydown="${this.filter}">
|
|
142
|
-
<button type="button" @click="${this.filter}">Search</button>
|
|
143
|
-
</div>
|
|
162
|
+
const header = Array.from(source.getValues()).length == 0 ? html`` : html`
|
|
144
163
|
<div class="${this.rowClass}">
|
|
145
164
|
<div>
|
|
146
|
-
<
|
|
165
|
+
<strong>Name</strong>
|
|
147
166
|
</div>
|
|
148
167
|
<div>
|
|
149
|
-
<
|
|
168
|
+
<strong>Value</strong>
|
|
150
169
|
</div>
|
|
170
|
+
</div>`;
|
|
171
|
+
|
|
172
|
+
return html`
|
|
173
|
+
<form @submit="${this.handleSubmit}" class="${this.formClass}" data-bs-theme="${this.theme}">
|
|
174
|
+
<div class="${this.searchClass}">
|
|
175
|
+
<input type="text" @keydown="${this.filter}">
|
|
176
|
+
<button type="button" @click="${this.filter}">Search</button>
|
|
151
177
|
</div>
|
|
178
|
+
${header}
|
|
152
179
|
${Array.from(source.getValues()).map(({ key, value }) => html`
|
|
153
180
|
<div class="${this.rowClass}">
|
|
154
181
|
<div>
|
|
@@ -168,8 +195,7 @@ export class QboConfigEditor extends LitElement {
|
|
|
168
195
|
<button type="button" class="cancel" @click="${this.cancelChanges}">Cancel</button>
|
|
169
196
|
</div>
|
|
170
197
|
</div>
|
|
171
|
-
</form
|
|
172
|
-
</slot>`;
|
|
198
|
+
</form>`;
|
|
173
199
|
}
|
|
174
200
|
}
|
|
175
201
|
|