Skip to content

Commit 39317ef

Browse files
committed
Merge remote-tracking branch 'origin/6.2' into 6.2-PaidSubscriptionUserListPage-to-grid-view
# Conflicts: # wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php
2 parents 39ddf8e + 225c6cd commit 39317ef

File tree

64 files changed

+1736
-758
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1736
-758
lines changed

ts/WoltLabSuite/Core/Component/GridView.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export class GridView {
8282
dropdown?.querySelectorAll<HTMLButtonElement>("[data-interaction]").forEach((element) => {
8383
element.addEventListener("click", () => {
8484
row.dispatchEvent(
85-
new CustomEvent("interaction", {
85+
new CustomEvent("interaction:execute", {
8686
detail: element.dataset,
8787
bubbles: true,
8888
}),
@@ -98,25 +98,25 @@ export class GridView {
9898
void this.#loadRows(StateChangeCause.Change);
9999
});
100100

101-
this.#table.addEventListener("refresh", (event) => {
101+
this.#table.addEventListener("interaction:invalidate", (event) => {
102102
void this.#refreshRow(event.target as HTMLElement);
103103
});
104104

105-
this.#table.addEventListener("remove", (event) => {
105+
this.#table.addEventListener("interaction:remove", (event) => {
106106
(event.target as HTMLElement).remove();
107107
});
108108

109-
this.#table.addEventListener("reset-selection", () => {
109+
this.#table.addEventListener("interaction:reset-selection", () => {
110110
this.#state.resetSelection();
111111
});
112112
}
113113

114114
#setupState(gridId: string, pageNo: number, baseUrl: string, sortField: string, sortOrder: string): State {
115115
const state = new State(gridId, this.#table, pageNo, baseUrl, sortField, sortOrder);
116-
state.addEventListener("change", (event) => {
116+
state.addEventListener("grid-view:change", (event) => {
117117
void this.#loadRows(event.detail.source);
118118
});
119-
state.addEventListener("getBulkInteractions", (event) => {
119+
state.addEventListener("grid-view:get-bulk-interactions", (event) => {
120120
void this.#loadBulkInteractions(event.detail.objectIds);
121121
});
122122

ts/WoltLabSuite/Core/Component/GridView/Filter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,19 @@ export class Filter extends EventTarget {
111111
if (ok) {
112112
this.#filters = new Map(Object.entries(result as ArrayLike<string>));
113113

114-
this.dispatchEvent(new CustomEvent("change"));
114+
this.dispatchEvent(new CustomEvent("grid-view:change"));
115115
}
116116
}
117117

118118
#removeFilter(filter: string): void {
119119
this.#filters.delete(filter);
120120

121-
this.dispatchEvent(new CustomEvent("change"));
121+
this.dispatchEvent(new CustomEvent("grid-view:change"));
122122
}
123123
}
124124

125125
interface FilterEventMap {
126-
change: CustomEvent<void>;
126+
"grid-view:change": CustomEvent<void>;
127127
}
128128

129129
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging

ts/WoltLabSuite/Core/Component/GridView/Selection.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,9 @@ export class Selection extends EventTarget {
184184
return;
185185
}
186186

187-
this.dispatchEvent(new CustomEvent("getBulkInteractions", { detail: { objectIds: this.getSelectedIds() } }));
187+
this.dispatchEvent(
188+
new CustomEvent("grid-view:get-bulk-interactions", { detail: { objectIds: this.getSelectedIds() } }),
189+
);
188190

189191
if (this.#bulkInteractionsLoadingDelay !== undefined) {
190192
window.clearTimeout(this.#bulkInteractionsLoadingDelay);
@@ -281,7 +283,7 @@ export class Selection extends EventTarget {
281283
}
282284

283285
interface SelectionEventMap {
284-
getBulkInteractions: CustomEvent<{ objectIds: number[] }>;
286+
"grid-view:get-bulk-interactions": CustomEvent<{ objectIds: number[] }>;
285287
}
286288

287289
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging

ts/WoltLabSuite/Core/Component/GridView/Sorting.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export class Sorting extends EventTarget {
7878

7979
this.#renderActiveSorting();
8080

81-
this.dispatchEvent(new CustomEvent("change"));
81+
this.dispatchEvent(new CustomEvent("grid-view:change"));
8282
}
8383

8484
#renderActiveSorting(): void {
@@ -93,7 +93,7 @@ export class Sorting extends EventTarget {
9393
}
9494

9595
interface SortingEventMap {
96-
change: CustomEvent<void>;
96+
"grid-view:change": CustomEvent<void>;
9797
}
9898

9999
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging

ts/WoltLabSuite/Core/Component/GridView/State.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,20 @@ export class State extends EventTarget {
4545
});
4646

4747
this.#filter = new Filter(gridId);
48-
this.#filter.addEventListener("change", () => {
48+
this.#filter.addEventListener("grid-view:change", () => {
4949
this.#switchPage(1, StateChangeCause.Change);
5050
});
5151

5252
this.#sorting = new Sorting(table, sortField, sortOrder);
53-
this.#sorting.addEventListener("change", () => {
53+
this.#sorting.addEventListener("grid-view:change", () => {
5454
this.#switchPage(1, StateChangeCause.Change);
5555
});
5656

5757
this.#selection = new Selection(gridId, table);
58-
this.#selection.addEventListener("getBulkInteractions", (event) => {
59-
this.dispatchEvent(new CustomEvent("getBulkInteractions", { detail: { objectIds: event.detail.objectIds } }));
58+
this.#selection.addEventListener("grid-view:get-bulk-interactions", (event) => {
59+
this.dispatchEvent(
60+
new CustomEvent("grid-view:get-bulk-interactions", { detail: { objectIds: event.detail.objectIds } }),
61+
);
6062
});
6163

6264
window.addEventListener("popstate", () => {
@@ -98,7 +100,7 @@ export class State extends EventTarget {
98100
this.#pagination.page = pageNo;
99101
this.#pageNo = pageNo;
100102

101-
this.dispatchEvent(new CustomEvent("change", { detail: { source } }));
103+
this.dispatchEvent(new CustomEvent("grid-view:change", { detail: { source } }));
102104
}
103105

104106
#updateQueryString(): void {
@@ -157,8 +159,8 @@ export class State extends EventTarget {
157159
}
158160

159161
interface StateEventMap {
160-
change: CustomEvent<{ source: StateChangeCause }>;
161-
getBulkInteractions: CustomEvent<{ objectIds: number[] }>;
162+
"grid-view:change": CustomEvent<{ source: StateChangeCause }>;
163+
"grid-view:get-bulk-interactions": CustomEvent<{ objectIds: number[] }>;
162164
}
163165

164166
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging

ts/WoltLabSuite/Core/Component/Interaction/Bulk/FormBuilderDialog.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async function handleFormBuilderDialogAction(
2828
}
2929

3030
element.dispatchEvent(
31-
new CustomEvent("refresh", {
31+
new CustomEvent("interaction:invalidate", {
3232
bubbles: true,
3333
}),
3434
);
@@ -37,7 +37,7 @@ async function handleFormBuilderDialogAction(
3737
// TODO: This shows a generic success message and should be replaced with a more specific message.
3838
showNotification();
3939

40-
container.dispatchEvent(new CustomEvent("reset-selection"));
40+
container.dispatchEvent(new CustomEvent("interaction:reset-selection"));
4141
}
4242

4343
export function setup(identifier: string, container: HTMLElement): void {

ts/WoltLabSuite/Core/Component/Interaction/Bulk/Rpc.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ async function handleRpcInteraction(
5353
}
5454

5555
element.dispatchEvent(
56-
new CustomEvent("remove", {
56+
new CustomEvent("interaction:remove", {
5757
bubbles: true,
5858
}),
5959
);
@@ -67,7 +67,7 @@ async function handleRpcInteraction(
6767
}
6868

6969
element.dispatchEvent(
70-
new CustomEvent("refresh", {
70+
new CustomEvent("interaction:invalidate", {
7171
bubbles: true,
7272
}),
7373
);
@@ -77,7 +77,7 @@ async function handleRpcInteraction(
7777
showNotification();
7878
}
7979

80-
container.dispatchEvent(new CustomEvent("reset-selection"));
80+
container.dispatchEvent(new CustomEvent("interaction:reset-selection"));
8181
}
8282

8383
export function setup(identifier: string, container: HTMLElement): void {

ts/WoltLabSuite/Core/Component/Interaction/FormBuilderDialog.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ async function handleFormBuilderDialogAction(element: HTMLElement, endpoint: str
1818
}
1919

2020
element.dispatchEvent(
21-
new CustomEvent("refresh", {
21+
new CustomEvent("interaction:invalidate", {
2222
bubbles: true,
2323
}),
2424
);
@@ -28,7 +28,7 @@ async function handleFormBuilderDialogAction(element: HTMLElement, endpoint: str
2828
}
2929

3030
export function setup(identifier: string, container: HTMLElement): void {
31-
container.addEventListener("interaction", (event: CustomEvent) => {
31+
container.addEventListener("interaction:execute", (event: CustomEvent) => {
3232
if (event.detail.interaction === identifier) {
3333
void handleFormBuilderDialogAction(event.target as HTMLElement, event.detail.endpoint);
3434
}

ts/WoltLabSuite/Core/Component/Interaction/LegacyDboAction.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ async function handleDboAction(
3434
// TODO: This shows a generic success message and should be replaced with a more specific message.
3535
showNotification(undefined, () => {
3636
element.dispatchEvent(
37-
new CustomEvent("remove", {
37+
new CustomEvent("interaction:remove", {
3838
bubbles: true,
3939
}),
4040
);
4141
});
4242
} else {
4343
element.dispatchEvent(
44-
new CustomEvent("refresh", {
44+
new CustomEvent("interaction:invalidate", {
4545
bubbles: true,
4646
}),
4747
);
@@ -52,7 +52,7 @@ async function handleDboAction(
5252
}
5353

5454
export function setup(identifier: string, container: HTMLElement): void {
55-
container.addEventListener("interaction", (event: CustomEvent) => {
55+
container.addEventListener("interaction:execute", (event: CustomEvent) => {
5656
if (event.detail.interaction === identifier) {
5757
void handleDboAction(
5858
event.target as HTMLElement,

ts/WoltLabSuite/Core/Component/Interaction/Rpc.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async function handleRpcInteraction(
4545
// TODO: This shows a generic success message and should be replaced with a more specific message.
4646
showNotification(undefined, () => {
4747
element.dispatchEvent(
48-
new CustomEvent("remove", {
48+
new CustomEvent("interaction:remove", {
4949
bubbles: true,
5050
}),
5151
);
@@ -55,7 +55,7 @@ async function handleRpcInteraction(
5555
container.dispatchEvent(new CustomEvent("interaction:invalidate-all"));
5656
} else {
5757
element.dispatchEvent(
58-
new CustomEvent("refresh", {
58+
new CustomEvent("interaction:invalidate", {
5959
bubbles: true,
6060
}),
6161
);
@@ -67,7 +67,7 @@ async function handleRpcInteraction(
6767
}
6868

6969
export function setup(identifier: string, container: HTMLElement): void {
70-
container.addEventListener("interaction", (event: CustomEvent) => {
70+
container.addEventListener("interaction:execute", (event: CustomEvent) => {
7171
if (event.detail.interaction === identifier) {
7272
void handleRpcInteraction(
7373
container,

0 commit comments

Comments
 (0)