@sealcode/sealgen 0.8.6 → 0.8.9
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/@types/forms/controls/big-radio-group.d.ts +3 -3
- package/@types/forms/controls/textarea.d.ts +2 -2
- package/@types/forms/controls/tickable.d.ts +1 -1
- package/@types/forms/fields/number.d.ts +1 -1
- package/@types/page/list.d.ts +4 -0
- package/lib/forms/controls/big-radio-group.js +2 -2
- package/lib/forms/controls/big-radio-group.js.map +1 -1
- package/lib/forms/controls/textarea.js.map +1 -1
- package/lib/forms/controls/tickable.js +2 -2
- package/lib/forms/controls/tickable.js.map +1 -1
- package/lib/page/list.js +13 -4
- package/lib/page/list.js.map +1 -1
- package/lib/templates/form.js +2 -2
- package/package.json +1 -1
- package/src/forms/controls/big-radio-group.ts +6 -3
- package/src/forms/controls/textarea.ts +1 -1
- package/src/forms/controls/tickable.ts +3 -2
- package/src/forms/fields/number.ts +1 -1
- package/src/page/list.ts +16 -6
- package/src/templates/form.ts +2 -2
|
@@ -6,10 +6,10 @@ import { FormFieldControl } from "./form-field-control";
|
|
|
6
6
|
export declare class BigRadioGroup extends FormFieldControl {
|
|
7
7
|
field: FormField;
|
|
8
8
|
options: Record<string, {
|
|
9
|
-
description: FlatTemplatable | ((ctx: Context, data: Record<string, FormDataValue>, messages: [], feld_name_prefix: string, form_id: string) => FlatTemplatable);
|
|
9
|
+
description: FlatTemplatable | ((ctx: Context, data: Record<string, FormDataValue>, messages: [], feld_name_prefix: string, form_id: string, show_field_errors: boolean) => FlatTemplatable);
|
|
10
10
|
}>;
|
|
11
11
|
constructor(field: FormField, options: Record<string, {
|
|
12
|
-
description: FlatTemplatable | ((ctx: Context, data: Record<string, FormDataValue>, messages: [], feld_name_prefix: string, form_id: string) => FlatTemplatable);
|
|
12
|
+
description: FlatTemplatable | ((ctx: Context, data: Record<string, FormDataValue>, messages: [], feld_name_prefix: string, form_id: string, show_field_errors: boolean) => FlatTemplatable);
|
|
13
13
|
}>);
|
|
14
|
-
render(ctx: Context, data: Record<string, FormDataValue>, messages: [], field_name_prefix: string, form_id: string): Promise<FlatTemplatable>;
|
|
14
|
+
render(ctx: Context, data: Record<string, FormDataValue>, messages: [], field_name_prefix: string, form_id: string, show_field_errors: boolean): Promise<FlatTemplatable>;
|
|
15
15
|
}
|
|
@@ -3,14 +3,14 @@ import { FormField } from "../fields/field";
|
|
|
3
3
|
import { FormDataValue } from "../form";
|
|
4
4
|
import { SimpleInput, SimpleInputOptions } from "./simple-input";
|
|
5
5
|
export declare class Textarea<Required extends boolean> extends SimpleInput<string | null> {
|
|
6
|
-
field: FormField<boolean, string>;
|
|
6
|
+
field: FormField<boolean, string | null>;
|
|
7
7
|
options: SimpleInputOptions & {
|
|
8
8
|
label?: string;
|
|
9
9
|
rows?: number;
|
|
10
10
|
cols?: number;
|
|
11
11
|
description?: string;
|
|
12
12
|
};
|
|
13
|
-
constructor(field: FormField<boolean, string>, options?: SimpleInputOptions & {
|
|
13
|
+
constructor(field: FormField<boolean, string | null>, options?: SimpleInputOptions & {
|
|
14
14
|
label?: string;
|
|
15
15
|
rows?: number;
|
|
16
16
|
cols?: number;
|
|
@@ -19,5 +19,5 @@ export declare abstract class Tickable<T extends unknown> extends FormFieldContr
|
|
|
19
19
|
abstract isChecked(ctx: Context, data: Record<string, FormDataValue>, value: T): boolean;
|
|
20
20
|
makeInputID(): string;
|
|
21
21
|
getWrapperClasses(ctx: Context, data: Record<string, FormDataValue>, value: T): string[];
|
|
22
|
-
render<Fields extends Record<string, FormField>>(ctx: Context, data: Record<string, FormDataValue>, _: unknown[], field_prefix: string, form_id: string): Promise<FlatTemplatable>;
|
|
22
|
+
render<Fields extends Record<string, FormField>>(ctx: Context, data: Record<string, FormDataValue>, _: unknown[], field_prefix: string, form_id: string, show_field_errors: boolean): Promise<FlatTemplatable>;
|
|
23
23
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context } from "koa";
|
|
2
2
|
import { FormDataValue } from "../form";
|
|
3
3
|
import { FieldParseResult, FormField } from "./field";
|
|
4
|
-
export declare class NumberField<DefaultValue extends number | null =
|
|
4
|
+
export declare class NumberField<DefaultValue extends number | null = number, Required extends boolean = boolean> extends FormField<Required, number | DefaultValue> {
|
|
5
5
|
default_value: DefaultValue;
|
|
6
6
|
options: Partial<{
|
|
7
7
|
max: number;
|
package/@types/page/list.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export declare abstract class ListPage<ItemType, F extends typeof BaseListPageFi
|
|
|
20
20
|
filterControls: FormControl[];
|
|
21
21
|
init(): void;
|
|
22
22
|
renderListContainer(_: Context, content: Templatable): FlatTemplatable;
|
|
23
|
+
getPaginationConfig(ctx: Context): Promise<{
|
|
24
|
+
page: number;
|
|
25
|
+
itemsPerPage: number;
|
|
26
|
+
}>;
|
|
23
27
|
renderItems(ctx: Context, values?: Record<string, FormDataValue>, items?: ItemType[]): Promise<FlatTemplatable>;
|
|
24
28
|
render(ctx: Context): Promise<FlatTemplatable>;
|
|
25
29
|
renderPagination(ctx: Context, values: Record<string, FormDataValue>): Promise<FlatTemplatable>;
|
|
@@ -9,7 +9,7 @@ class BigRadioGroup extends form_field_control_1.FormFieldControl {
|
|
|
9
9
|
this.field = field;
|
|
10
10
|
this.options = options;
|
|
11
11
|
}
|
|
12
|
-
async render(ctx, data, messages, field_name_prefix, form_id) {
|
|
12
|
+
async render(ctx, data, messages, field_name_prefix, form_id, show_field_errors) {
|
|
13
13
|
const { raw: current_value } = await this.field.getValue(ctx, data);
|
|
14
14
|
return tempstream_1.tempstream /* HTML */ `<div class="bigradios">
|
|
15
15
|
${Object.entries(this.options).map(([key, { description }]) => {
|
|
@@ -25,7 +25,7 @@ class BigRadioGroup extends form_field_control_1.FormFieldControl {
|
|
|
25
25
|
/>
|
|
26
26
|
<div class="bigradio">
|
|
27
27
|
${typeof description == "function"
|
|
28
|
-
? description(ctx, data, messages, field_name_prefix, form_id)
|
|
28
|
+
? description(ctx, data, messages, field_name_prefix, form_id, show_field_errors)
|
|
29
29
|
: description}
|
|
30
30
|
<label class="bigradio__cta" for="${id}">Wybierz</label>
|
|
31
31
|
</div>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"big-radio-group.js","sourceRoot":"","sources":["../../../src/forms/controls/big-radio-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,aAAc,SAAQ,qCAAgB;IAClD,YACQ,KAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"big-radio-group.js","sourceRoot":"","sources":["../../../src/forms/controls/big-radio-group.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAGzD,6DAAwD;AAExD,MAAa,aAAc,SAAQ,qCAAgB;IAClD,YACQ,KAAgB,EAChB,OAcN;QAED,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAjBR,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAcb;IAGF,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,QAAY,EACZ,iBAAyB,EACzB,OAAe,EACf,iBAA0B;QAE1B,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,uBAAU,CAAA,UAAU,CAAC;KACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;YAC7C,OAAO,uBAAU,CAAA,UAAU,CAAC;;cAElB,IAAI,CAAC,KAAK,CAAC,IAAI;eACd,GAAG;YACN,EAAE;;QAEN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACrC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;QAGrC,OAAO,WAAW,IAAI,UAAU;gBACjC,CAAC,CAAC,WAAW,CACX,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,iBAAiB,CAChB;gBACH,CAAC,CAAC,WAAW;0CACsB,EAAE;YAChC,CAAC;QACV,CAAC,CAAC;SACI,CAAC;IACT,CAAC;CACD;AA3DD,sCA2DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAOA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/forms/controls/textarea.ts"],"names":[],"mappings":";;;AAOA,iDAAiE;AAEjE,MAAa,QAAmC,SAAQ,0BAEvD;IACA,YACQ,KAAwC,EACxC,UAKH,EAAE;QAEN,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QARf,UAAK,GAAL,KAAK,CAAmC;QACxC,YAAO,GAAP,OAAO,CAKR;IAGP,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,UAAU,CAAC;OACT,IAAI,CAAC,OAAO,CAAC,WAAW;YACnB;YACT,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,GAAY,EACZ,UAAkB,EAClB,IAAmC;QAEnC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC,aAAa,UAAU,IAAI,KAAK,aAAa,CAAC;IACjE,CAAC;CACD;AA/BD,4BA+BC"}
|
|
@@ -22,7 +22,7 @@ class Tickable extends controls_1.FormFieldControl {
|
|
|
22
22
|
...(this.isChecked(ctx, data, value) ? ["checked"] : []),
|
|
23
23
|
];
|
|
24
24
|
}
|
|
25
|
-
async render(ctx, data, _, field_prefix, form_id) {
|
|
25
|
+
async render(ctx, data, _, field_prefix, form_id, show_field_errors) {
|
|
26
26
|
const id = this.makeInputID();
|
|
27
27
|
const label = this.options.label != undefined
|
|
28
28
|
? this.options.label
|
|
@@ -64,7 +64,7 @@ class Tickable extends controls_1.FormFieldControl {
|
|
|
64
64
|
})();
|
|
65
65
|
</script>
|
|
66
66
|
|
|
67
|
-
${~valid && !this.options.hide_errors
|
|
67
|
+
${~valid && !this.options.hide_errors && show_field_errors
|
|
68
68
|
? `<div class="input__error">${message}</div>`
|
|
69
69
|
: ""}
|
|
70
70
|
`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":";;;AAEA,6CAA2C;AAC3C,6DAA2E;AAG3E,yCAA8C;AAU9C,MAAsB,QAA4B,SAAQ,2BAAgB;IACzE,YACQ,KAA4B,EAC5B,UAA2B,EAAE;QAEpC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAHR,UAAK,GAAL,KAAK,CAAuB;QAC5B,YAAO,GAAP,OAAO,CAAsB;IAGrC,CAAC;IAgBD,WAAW;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAChB,GAAY,EACZ,IAAmC,EACnC,KAAQ;QAER,OAAO;YACN,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;YACtC,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,GAAY,EACZ,IAAmC,EACnC,CAAY,EACZ,YAAoB,EACpB,OAAe;
|
|
1
|
+
{"version":3,"file":"tickable.js","sourceRoot":"","sources":["../../../src/forms/controls/tickable.ts"],"names":[],"mappings":"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"}
|
package/lib/page/list.js
CHANGED
|
@@ -27,12 +27,17 @@ class ListPage extends page_1.Page {
|
|
|
27
27
|
renderListContainer(_, content) {
|
|
28
28
|
return tempstream_1.tempstream `<div>${content}</div>`;
|
|
29
29
|
}
|
|
30
|
+
async getPaginationConfig(ctx) {
|
|
31
|
+
const values = await this.extractRawValues(ctx);
|
|
32
|
+
const { parsed: page } = await this.fields.page.getValue(ctx, values);
|
|
33
|
+
const { parsed: itemsPerPage } = await this.fields.itemsPerPage.getValue(ctx, values);
|
|
34
|
+
return { page, itemsPerPage };
|
|
35
|
+
}
|
|
30
36
|
async renderItems(ctx, values, items) {
|
|
31
37
|
if (!values) {
|
|
32
38
|
values = await this.extractRawValues(ctx);
|
|
33
39
|
}
|
|
34
|
-
const {
|
|
35
|
-
const { parsed: itemsPerPage } = await this.fields.itemsPerPage.getValue(ctx, values);
|
|
40
|
+
const { itemsPerPage, page } = await this.getPaginationConfig(ctx);
|
|
36
41
|
const items_promise = this.getItems(ctx, page, itemsPerPage, values);
|
|
37
42
|
return tempstream_1.tempstream `${(items
|
|
38
43
|
? Promise.resolve(items)
|
|
@@ -45,8 +50,7 @@ class ListPage extends page_1.Page {
|
|
|
45
50
|
${this.renderListContainer(ctx, this.renderItems(ctx, values))}`;
|
|
46
51
|
}
|
|
47
52
|
async renderPagination(ctx, values) {
|
|
48
|
-
const {
|
|
49
|
-
const { parsed: itemsPerPage } = await this.fields.itemsPerPage.getValue(ctx, values);
|
|
53
|
+
const { itemsPerPage, page } = await this.getPaginationConfig(ctx);
|
|
50
54
|
const totalIems = await this.getTotalPages(ctx, itemsPerPage, values);
|
|
51
55
|
return tempstream_1.tempstream /* HTML */ `<center>
|
|
52
56
|
${page > 1 ? this.renderPageButton(ctx, 1, "Pierwsza strona") : ""}
|
|
@@ -123,6 +127,11 @@ class SealiousItemListPage extends ListPage {
|
|
|
123
127
|
}
|
|
124
128
|
async addFilter(ctx, list) {
|
|
125
129
|
const filters = await this.getFilterValues(ctx);
|
|
130
|
+
for (const key in filters) {
|
|
131
|
+
if (filters[key] === undefined || filters[key] == "") {
|
|
132
|
+
delete filters[key];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
126
135
|
if (Object.keys(filters).length) {
|
|
127
136
|
list.filter(filters);
|
|
128
137
|
}
|
package/lib/page/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/page/list.ts"],"names":[],"mappings":";;;AAGA,2CAAsE;AACtE,qDAAgD;AAChD,iCAA8B;AAG9B,iDAA+D;AAC/D,0CAAkE;AAElE,8DAAyD;AAE5C,QAAA,kBAAkB,GAAU,EAAE,CAAC;AAG/B,QAAA,kBAAkB,GAAU;IACxC,IAAI,EAAE,IAAI,mBAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,IAAI,mBAAW,CAAC,KAAK,EAAE,EAAE,CAAC;CACxC,CAAC;AAEF,MAAsB,QAGpB,SAAQ,WAAO;IAHjB;;QAmBC,iBAAY,GAA8B,EAAE,CAAC;QAC7C,mBAAc,GAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/page/list.ts"],"names":[],"mappings":"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"}
|
package/lib/templates/form.js
CHANGED
|
@@ -51,8 +51,8 @@ export default new (class ${action_name}Form extends Form<typeof fields, void> {
|
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
async render(ctx: Context, data: FormData) {
|
|
55
|
-
return html(ctx, "${action_name}", await super.render(ctx, data));
|
|
54
|
+
async render(ctx: Context, data: FormData, show_field_errors: boolean) {
|
|
55
|
+
return html(ctx, "${action_name}", await super.render(ctx, data, show_field_errors));
|
|
56
56
|
}
|
|
57
57
|
})();
|
|
58
58
|
`;
|
package/package.json
CHANGED
|
@@ -17,7 +17,8 @@ export class BigRadioGroup extends FormFieldControl {
|
|
|
17
17
|
data: Record<string, FormDataValue>,
|
|
18
18
|
messages: [],
|
|
19
19
|
feld_name_prefix: string,
|
|
20
|
-
form_id: string
|
|
20
|
+
form_id: string,
|
|
21
|
+
show_field_errors: boolean
|
|
21
22
|
) => FlatTemplatable);
|
|
22
23
|
}
|
|
23
24
|
>
|
|
@@ -30,7 +31,8 @@ export class BigRadioGroup extends FormFieldControl {
|
|
|
30
31
|
data: Record<string, FormDataValue>,
|
|
31
32
|
messages: [],
|
|
32
33
|
field_name_prefix: string,
|
|
33
|
-
form_id: string
|
|
34
|
+
form_id: string,
|
|
35
|
+
show_field_errors: boolean
|
|
34
36
|
): Promise<FlatTemplatable> {
|
|
35
37
|
const { raw: current_value } = await this.field.getValue(ctx, data);
|
|
36
38
|
return tempstream/* HTML */ `<div class="bigradios">
|
|
@@ -52,7 +54,8 @@ export class BigRadioGroup extends FormFieldControl {
|
|
|
52
54
|
data,
|
|
53
55
|
messages,
|
|
54
56
|
field_name_prefix,
|
|
55
|
-
form_id
|
|
57
|
+
form_id,
|
|
58
|
+
show_field_errors
|
|
56
59
|
)
|
|
57
60
|
: description}
|
|
58
61
|
<label class="bigradio__cta" for="${id}">Wybierz</label>
|
|
@@ -11,7 +11,7 @@ export class Textarea<Required extends boolean> extends SimpleInput<
|
|
|
11
11
|
string | null
|
|
12
12
|
> {
|
|
13
13
|
constructor(
|
|
14
|
-
public field: FormField<boolean, string>,
|
|
14
|
+
public field: FormField<boolean, string | null>,
|
|
15
15
|
public options: SimpleInputOptions & {
|
|
16
16
|
label?: string;
|
|
17
17
|
rows?: number;
|
|
@@ -59,7 +59,8 @@ export abstract class Tickable<T extends unknown> extends FormFieldControl {
|
|
|
59
59
|
data: Record<string, FormDataValue>,
|
|
60
60
|
_: unknown[],
|
|
61
61
|
field_prefix: string,
|
|
62
|
-
form_id: string
|
|
62
|
+
form_id: string,
|
|
63
|
+
show_field_errors: boolean
|
|
63
64
|
): Promise<FlatTemplatable> {
|
|
64
65
|
const id = this.makeInputID();
|
|
65
66
|
const label =
|
|
@@ -107,7 +108,7 @@ export abstract class Tickable<T extends unknown> extends FormFieldControl {
|
|
|
107
108
|
})();
|
|
108
109
|
</script>
|
|
109
110
|
|
|
110
|
-
${~valid && !this.options.hide_errors
|
|
111
|
+
${~valid && !this.options.hide_errors && show_field_errors
|
|
111
112
|
? `<div class="input__error">${message}</div>`
|
|
112
113
|
: ""}
|
|
113
114
|
`
|
|
@@ -4,7 +4,7 @@ import { FormDataValue } from "../form";
|
|
|
4
4
|
import { FieldParseResult, FormField } from "./field";
|
|
5
5
|
|
|
6
6
|
export class NumberField<
|
|
7
|
-
DefaultValue extends number | null =
|
|
7
|
+
DefaultValue extends number | null = number,
|
|
8
8
|
Required extends boolean = boolean
|
|
9
9
|
> extends FormField<Required, number | DefaultValue> {
|
|
10
10
|
constructor(
|
package/src/page/list.ts
CHANGED
|
@@ -52,6 +52,14 @@ export abstract class ListPage<
|
|
|
52
52
|
return tempstream`<div>${content}</div>`;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
async getPaginationConfig(ctx: Context) {
|
|
56
|
+
const values = await this.extractRawValues(ctx);
|
|
57
|
+
const { parsed: page } = await this.fields.page.getValue(ctx, values);
|
|
58
|
+
const { parsed: itemsPerPage } =
|
|
59
|
+
await this.fields.itemsPerPage.getValue(ctx, values);
|
|
60
|
+
return { page, itemsPerPage };
|
|
61
|
+
}
|
|
62
|
+
|
|
55
63
|
async renderItems(
|
|
56
64
|
ctx: Context,
|
|
57
65
|
values?: Record<string, FormDataValue>,
|
|
@@ -60,9 +68,7 @@ export abstract class ListPage<
|
|
|
60
68
|
if (!values) {
|
|
61
69
|
values = await this.extractRawValues(ctx);
|
|
62
70
|
}
|
|
63
|
-
const {
|
|
64
|
-
const { parsed: itemsPerPage } =
|
|
65
|
-
await this.fields.itemsPerPage.getValue(ctx, values);
|
|
71
|
+
const { itemsPerPage, page } = await this.getPaginationConfig(ctx);
|
|
66
72
|
const items_promise = this.getItems(ctx, page, itemsPerPage, values);
|
|
67
73
|
return tempstream`${(items
|
|
68
74
|
? Promise.resolve(items)
|
|
@@ -82,9 +88,7 @@ ${this.renderListContainer(ctx, this.renderItems(ctx, values))}`;
|
|
|
82
88
|
ctx: Context,
|
|
83
89
|
values: Record<string, FormDataValue>
|
|
84
90
|
): Promise<FlatTemplatable> {
|
|
85
|
-
const {
|
|
86
|
-
const { parsed: itemsPerPage } =
|
|
87
|
-
await this.fields.itemsPerPage.getValue(ctx, values);
|
|
91
|
+
const { itemsPerPage, page } = await this.getPaginationConfig(ctx);
|
|
88
92
|
const totalIems = await this.getTotalPages(ctx, itemsPerPage, values);
|
|
89
93
|
|
|
90
94
|
return tempstream/* HTML */ `<center>
|
|
@@ -174,6 +178,12 @@ export abstract class SealiousItemListPage<
|
|
|
174
178
|
|
|
175
179
|
protected async addFilter(ctx: Context, list: ItemList<C>): Promise<void> {
|
|
176
180
|
const filters = await this.getFilterValues(ctx);
|
|
181
|
+
|
|
182
|
+
for (const key in filters) {
|
|
183
|
+
if (filters[key] === undefined || filters[key] == "") {
|
|
184
|
+
delete filters[key];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
177
187
|
if (Object.keys(filters).length) {
|
|
178
188
|
list.filter(filters as Partial<ItemFields<C>>);
|
|
179
189
|
}
|
package/src/templates/form.ts
CHANGED
|
@@ -52,8 +52,8 @@ export default new (class ${action_name}Form extends Form<typeof fields, void> {
|
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
async render(ctx: Context, data: FormData) {
|
|
56
|
-
return html(ctx, "${action_name}", await super.render(ctx, data));
|
|
55
|
+
async render(ctx: Context, data: FormData, show_field_errors: boolean) {
|
|
56
|
+
return html(ctx, "${action_name}", await super.render(ctx, data, show_field_errors));
|
|
57
57
|
}
|
|
58
58
|
})();
|
|
59
59
|
`;
|