Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,17 @@ public function applyFilter(DatabaseObjectList $list, string $columnName, mixed
public function renderFilterValue(string $value, array $configuration = []): string
{
$values = $this->parseFilterValue($value);
$suffix = $this->getSuffix($configuration);
if ($suffix !== '') {
$suffix = ' ' . $suffix;
}

if ($values['from'] && $values['to']) {
return $values['from'] . ' ‐ ' . $values['to'];
return $values['from'] . ' ‐ ' . $values['to'] . $suffix;
} else if ($values['from']) {
return '>= ' . $values['from'];
return '>= ' . $values['from'] . $suffix;
} else if ($values['to']) {
return '<= ' . $values['to'];
return '<= ' . $values['to'] . $suffix;
}

return '';
Expand All @@ -74,4 +78,12 @@ protected function parseFilterValue(string $value): array
'to' => $to,
];
}

/**
* @param array<string, mixed> $configuration
*/
protected function getSuffix(array $configuration): string
{
return '';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use wcf\system\form\builder\field\CurrencyFormField;
use wcf\system\form\option\formatter\CurrencyFormatter;
use wcf\system\form\option\formatter\IFormOptionFormatter;
use wcf\util\StringUtil;

/**
* Implementation of a form field for currency values.
Expand Down Expand Up @@ -82,4 +83,14 @@ public function getDatabaseTableColumn(string $name): AbstractDatabaseTableColum
{
return IntDatabaseTableColumn::create($name);
}

#[\Override]
protected function getSuffix(array $configuration): string
{
if (!empty($configuration['currency'])) {
return StringUtil::encodeHTML($configuration['currency']);
}

return '';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use wcf\system\form\builder\field\FloatFormField;
use wcf\system\form\option\formatter\FloatFormatter;
use wcf\system\form\option\formatter\IFormOptionFormatter;
use wcf\util\StringUtil;

/**
* Implementation of a form field for float values.
Expand Down Expand Up @@ -42,7 +43,7 @@ public function getFormField(string $id, array $configuration = []): AbstractFor
#[\Override]
public function getConfigurationFormFields(): array
{
return ['minFloatValue', 'maxFloatValue', 'required'];
return ['unit', 'minFloatValue', 'maxFloatValue', 'required'];
}

#[\Override]
Expand All @@ -62,4 +63,14 @@ public function getDatabaseTableColumn(string $name): AbstractDatabaseTableColum
{
return FloatDatabaseTableColumn::create($name);
}

#[\Override]
protected function getSuffix(array $configuration): string
{
if (!empty($configuration['unit'])) {
return StringUtil::encodeHTML($configuration['unit']);
}

return '';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use wcf\system\form\builder\field\NumericRangeFormField;
use wcf\system\form\option\formatter\IFormOptionFormatter;
use wcf\system\form\option\formatter\IntegerFormatter;
use wcf\util\StringUtil;

/**
* Implementation of a form field for integer values.
Expand Down Expand Up @@ -51,7 +52,7 @@ public function getFilterFormField(string $id, array $configuration = []): Abstr
#[\Override]
public function getConfigurationFormFields(): array
{
return ['minIntegerValue', 'maxIntegerValue', 'required'];
return ['unit', 'minIntegerValue', 'maxIntegerValue', 'required'];
}

#[\Override]
Expand All @@ -71,4 +72,14 @@ public function getDatabaseTableColumn(string $name): AbstractDatabaseTableColum
{
return IntDatabaseTableColumn::create($name);
}

#[\Override]
protected function getSuffix(array $configuration): string
{
if (!empty($configuration['unit'])) {
return StringUtil::encodeHTML($configuration['unit']);
}

return '';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ private function getDefaultFormFields(): array
'required' => BooleanFormField::create('required')
->label('wcf.form.option.shared.required')
->value(false),
'unit' => TextFormField::create('unit')
->label('wcf.form.option.shared.unit')
->addFieldClass('short')
];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ final class FloatFormatter implements IFormOptionFormatter
#[\Override]
public function format(string $value, int $languageID, array $configuration): string
{
return StringUtil::formatNumeric(\floatval($value));
$suffix = '';
if (!empty($configuration['unit'])) {
$suffix = ' ' . StringUtil::encodeHTML($configuration['unit']);
}

return StringUtil::formatNumeric(\floatval($value)) . $suffix;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ final class IntegerFormatter implements IFormOptionFormatter
#[\Override]
public function format(string $value, int $languageID, array $configuration): string
{
return StringUtil::formatNumeric(\intval($value));
$suffix = '';
if (!empty($configuration['unit'])) {
$suffix = ' ' . StringUtil::encodeHTML($configuration['unit']);
}

return StringUtil::formatNumeric(\intval($value)) . $suffix;
}
}
1 change: 1 addition & 0 deletions wcfsetup/install/lang/de.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4176,6 +4176,7 @@ Dateianhänge:
<item name="wcf.form.option.shared.maxValue"><![CDATA[Maximum]]></item>
<item name="wcf.form.option.shared.selectOptions"><![CDATA[Auswahloptionen]]></item>
<item name="wcf.form.option.shared.required"><![CDATA[Das Feld muss zwingend ausgefüllt werden.]]></item>
<item name="wcf.form.option.shared.unit"><![CDATA[Einheit]]></item>
<item name="wcf.form.option.optionType"><![CDATA[Feldtyp]]></item>
</category>
<category name="wcf.image">
Expand Down
1 change: 1 addition & 0 deletions wcfsetup/install/lang/en.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4122,6 +4122,7 @@ Attachments:
<item name="wcf.form.option.shared.maxValue"><![CDATA[Maximum]]></item>
<item name="wcf.form.option.shared.selectOptions"><![CDATA[Options]]></item>
<item name="wcf.form.option.shared.required"><![CDATA[This is a required field]]></item>
<item name="wcf.form.option.shared.unit"><![CDATA[Unit]]></item>
<item name="wcf.form.option.optionType"><![CDATA[Option Type]]></item>
</category>
<category name="wcf.image">
Expand Down