Skip to content

Commit 4dfacef

Browse files
committed
Refactor ConditionFormField to remove lastConditionIndex and adjust index handling
1 parent 5ec8c89 commit 4dfacef

File tree

4 files changed

+7
-19
lines changed

4 files changed

+7
-19
lines changed

com.woltlab.wcf/templates/shared_conditionFormContainer.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@
3131
'WoltLabSuite/Core/Form/Builder/Container/ConditionFormField',
3232
], (DefaultContainerDependency, { ConditionFormField }) => {
3333
new DefaultContainerDependency('{unsafe:$container->getPrefixedId()|encodeJS}Container');
34-
new ConditionFormField('{unsafe:$container->getPrefixedId()|encodeJS}', '{link controller="ConditionAdd" isACP=false provider=$container->getConditionProviderClass()}{/link}', {$container->getLastConditionIndex() + 1});
34+
new ConditionFormField('{unsafe:$container->getPrefixedId()|encodeJS}', '{link controller="ConditionAdd" isACP=false provider=$container->getConditionProviderClass()}{/link}');
3535
});
3636
</script>

ts/WoltLabSuite/Core/Form/Builder/Container/ConditionFormField.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ export class ConditionFormField {
2121
readonly #containerId: string;
2222
readonly #container: HTMLElement;
2323
readonly #button: HTMLButtonElement;
24-
#index: number;
24+
#index: number = 0;
2525

26-
constructor(containerId: string, endpoint: string, index: number) {
26+
constructor(containerId: string, endpoint: string) {
2727
this.#containerId = containerId;
28-
this.#index = index;
2928
this.#container = document.getElementById(`${containerId}Conditions`) as HTMLElement;
3029

3130
this.#button = document.getElementById(`${containerId}AddCondition`) as HTMLButtonElement;
@@ -62,7 +61,7 @@ export class ConditionFormField {
6261
async #showConditionAddDialog(endpoint: string) {
6362
const url = new URL(unescapeHTML(endpoint));
6463
url.searchParams.set("containerId", this.#containerId);
65-
url.searchParams.set("index", this.#index.toString());
64+
url.searchParams.set("index", (this.#index + 1).toString());
6665

6766
const { ok, result } = await dialogFactory().usingFormBuilder().fromEndpoint<ConditionAddResponse>(url.toString());
6867

wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Container/ConditionFormField.js

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wcfsetup/install/files/lib/system/form/builder/container/ConditionFormContainer.class.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ final class ConditionFormContainer extends FormContainer
2828
* @inheritDoc
2929
*/
3030
protected $templateName = 'shared_conditionFormContainer';
31-
private int $lastConditionIndex = 0;
3231

3332
/**
3433
* @var ConditionProvider
@@ -63,8 +62,6 @@ public function readValues(): static
6362

6463
foreach ($conditions as $index => $identifier) {
6564
$this->appendCondition($identifier, $index);
66-
67-
$this->lastConditionIndex = \max($this->lastConditionIndex, $index);
6865
}
6966
}
7067

@@ -82,8 +79,6 @@ public function updatedObject(array $data, IStorableObject $object, $loadValues
8279
$containers[] = $this->appendCondition($condition['identifier'], $index);
8380
$fieldId = $this->getConditionProvider()->getFieldId($this->getPrefixedId(), $condition['identifier'], $index);
8481
$data[$fieldId] = $condition['value'];
85-
86-
$this->lastConditionIndex = \max($this->lastConditionIndex, $index);
8782
}
8883

8984
foreach ($containers as $container) {
@@ -174,9 +169,4 @@ public function getConditionProviderClass(): string
174169

175170
return $this->conditionProvider::class;
176171
}
177-
178-
public function getLastConditionIndex(): int
179-
{
180-
return $this->lastConditionIndex;
181-
}
182172
}

0 commit comments

Comments
 (0)