diff --git a/com.woltlab.wcf/templates/shared_gridView.tpl b/com.woltlab.wcf/templates/shared_gridView.tpl index d6980f170d9..19369ff10d0 100644 --- a/com.woltlab.wcf/templates/shared_gridView.tpl +++ b/com.woltlab.wcf/templates/shared_gridView.tpl @@ -92,6 +92,8 @@ '{unsafe:$view->getBaseUrl()|encodeJS}', '{unsafe:$view->getSortField()|encodeJS}', '{unsafe:$view->getSortOrder()|encodeJS}', + '{unsafe:$view->getDefaultSortField()|encodeJS}', + '{unsafe:$view->getDefaultSortOrder()|encodeJS}', '{unsafe:$view->getBulkInteractionProviderClassName()|encodeJS}', new Map([ {foreach from=$view->getParameters() key='name' item='value'} diff --git a/ts/WoltLabSuite/Core/Component/GridView.ts b/ts/WoltLabSuite/Core/Component/GridView.ts index fdc56267297..4484b641aea 100644 --- a/ts/WoltLabSuite/Core/Component/GridView.ts +++ b/ts/WoltLabSuite/Core/Component/GridView.ts @@ -32,6 +32,8 @@ export class GridView { baseUrl: string = "", sortField = "", sortOrder = "ASC", + defaultSortField = "", + defaultSortOrder = "ASC", bulkInteractionProviderClassName: string, gridViewParameters?: Map, ) { @@ -42,7 +44,7 @@ export class GridView { this.#gridViewParameters = gridViewParameters; this.#initInteractions(); - this.#state = this.#setupState(gridId, pageNo, baseUrl, sortField, sortOrder); + this.#state = this.#setupState(gridId, pageNo, baseUrl, sortField, sortOrder, defaultSortField, defaultSortOrder); this.#initEventListeners(); } @@ -117,8 +119,25 @@ export class GridView { }); } - #setupState(gridId: string, pageNo: number, baseUrl: string, sortField: string, sortOrder: string): State { - const state = new State(gridId, this.#table, pageNo, baseUrl, sortField, sortOrder); + #setupState( + gridId: string, + pageNo: number, + baseUrl: string, + sortField: string, + sortOrder: string, + defaultSortField: string, + defaultSortOrder: string, + ): State { + const state = new State( + gridId, + this.#table, + pageNo, + baseUrl, + sortField, + sortOrder, + defaultSortField, + defaultSortOrder, + ); state.addEventListener("grid-view:change", (event) => { void this.#loadRows(event.detail.source); }); diff --git a/ts/WoltLabSuite/Core/Component/GridView/Sorting.ts b/ts/WoltLabSuite/Core/Component/GridView/Sorting.ts index b75b3a83d69..eda5171d7eb 100644 --- a/ts/WoltLabSuite/Core/Component/GridView/Sorting.ts +++ b/ts/WoltLabSuite/Core/Component/GridView/Sorting.ts @@ -15,13 +15,19 @@ export class Sorting extends EventTarget { #sortOrder: string; #table: HTMLTableElement; - constructor(table: HTMLTableElement, sortField: string, sortOrder: string) { + constructor( + table: HTMLTableElement, + sortField: string, + sortOrder: string, + defaultSortField: string, + defaultSortOrder: string, + ) { super(); this.#sortField = sortField; - this.#defaultSortField = sortField; + this.#defaultSortField = defaultSortField; this.#sortOrder = sortOrder; - this.#defaultSortOrder = sortOrder; + this.#defaultSortOrder = defaultSortOrder; this.#table = table; this.#table @@ -49,6 +55,14 @@ export class Sorting extends EventTarget { return []; } + if (this.#sortField === this.#defaultSortField) { + if (this.#sortOrder !== this.#defaultSortOrder) { + return [["sortOrder", this.#sortOrder]]; + } else { + return []; + } + } + return [ ["sortField", this.#sortField], ["sortOrder", this.#sortOrder], diff --git a/ts/WoltLabSuite/Core/Component/GridView/State.ts b/ts/WoltLabSuite/Core/Component/GridView/State.ts index 9003fb5b00c..25336b920da 100644 --- a/ts/WoltLabSuite/Core/Component/GridView/State.ts +++ b/ts/WoltLabSuite/Core/Component/GridView/State.ts @@ -34,6 +34,8 @@ export class State extends EventTarget { baseUrl: string, sortField: string, sortOrder: string, + defaultSortField: string, + defaultSortOrder: string, ) { super(); @@ -52,7 +54,7 @@ export class State extends EventTarget { this.#switchPage(1, StateChangeCause.Change); }); - this.#sorting = new Sorting(table, sortField, sortOrder); + this.#sorting = new Sorting(table, sortField, sortOrder, defaultSortField, defaultSortOrder); this.#sorting.addEventListener("grid-view:change", () => { this.#switchPage(1, StateChangeCause.Change); }); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js index e455b3e51e9..8f8530da505 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView.js @@ -20,14 +20,14 @@ define(["require", "exports", "tslib", "../Api/Gridviews/GetRow", "../Api/Gridvi #noItemsNotice; #bulkInteractionProviderClassName; #gridViewParameters; - constructor(gridId, gridClassName, pageNo, baseUrl = "", sortField = "", sortOrder = "ASC", bulkInteractionProviderClassName, gridViewParameters) { + constructor(gridId, gridClassName, pageNo, baseUrl = "", sortField = "", sortOrder = "ASC", defaultSortField = "", defaultSortOrder = "ASC", bulkInteractionProviderClassName, gridViewParameters) { this.#gridClassName = gridClassName; this.#table = document.getElementById(`${gridId}_table`); this.#noItemsNotice = document.getElementById(`${gridId}_noItemsNotice`); this.#bulkInteractionProviderClassName = bulkInteractionProviderClassName; this.#gridViewParameters = gridViewParameters; this.#initInteractions(); - this.#state = this.#setupState(gridId, pageNo, baseUrl, sortField, sortOrder); + this.#state = this.#setupState(gridId, pageNo, baseUrl, sortField, sortOrder, defaultSortField, defaultSortOrder); this.#initEventListeners(); } async #loadRows(cause) { @@ -80,8 +80,8 @@ define(["require", "exports", "tslib", "../Api/Gridviews/GetRow", "../Api/Gridvi this.#state.resetSelection(); }); } - #setupState(gridId, pageNo, baseUrl, sortField, sortOrder) { - const state = new State_1.State(gridId, this.#table, pageNo, baseUrl, sortField, sortOrder); + #setupState(gridId, pageNo, baseUrl, sortField, sortOrder, defaultSortField, defaultSortOrder) { + const state = new State_1.State(gridId, this.#table, pageNo, baseUrl, sortField, sortOrder, defaultSortField, defaultSortOrder); state.addEventListener("grid-view:change", (event) => { void this.#loadRows(event.detail.source); }); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/Sorting.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/Sorting.js index 85191431dae..65e07fd7043 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/Sorting.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/Sorting.js @@ -17,12 +17,12 @@ define(["require", "exports"], function (require, exports) { #sortField; #sortOrder; #table; - constructor(table, sortField, sortOrder) { + constructor(table, sortField, sortOrder, defaultSortField, defaultSortOrder) { super(); this.#sortField = sortField; - this.#defaultSortField = sortField; + this.#defaultSortField = defaultSortField; this.#sortOrder = sortOrder; - this.#defaultSortOrder = sortOrder; + this.#defaultSortOrder = defaultSortOrder; this.#table = table; this.#table .querySelectorAll('.gridView__headerColumn[data-sortable="1"]') @@ -44,6 +44,14 @@ define(["require", "exports"], function (require, exports) { if (this.#sortField === "") { return []; } + if (this.#sortField === this.#defaultSortField) { + if (this.#sortOrder !== this.#defaultSortOrder) { + return [["sortOrder", this.#sortOrder]]; + } + else { + return []; + } + } return [ ["sortField", this.#sortField], ["sortOrder", this.#sortOrder], diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/State.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/State.js index 0b7f39f3329..2dd5748574f 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/State.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/GridView/State.js @@ -22,7 +22,7 @@ define(["require", "exports", "tslib", "./Filter", "./Selection", "./Sorting"], #sorting; #gridViewFooter; #pageNo; - constructor(gridId, table, pageNo, baseUrl, sortField, sortOrder) { + constructor(gridId, table, pageNo, baseUrl, sortField, sortOrder, defaultSortField, defaultSortOrder) { super(); this.#baseUrl = baseUrl; this.#pageNo = pageNo; @@ -35,7 +35,7 @@ define(["require", "exports", "tslib", "./Filter", "./Selection", "./Sorting"], this.#filter.addEventListener("grid-view:change", () => { this.#switchPage(1, 0 /* StateChangeCause.Change */); }); - this.#sorting = new Sorting_1.default(table, sortField, sortOrder); + this.#sorting = new Sorting_1.default(table, sortField, sortOrder, defaultSortField, defaultSortOrder); this.#sorting.addEventListener("grid-view:change", () => { this.#switchPage(1, 0 /* StateChangeCause.Change */); }); diff --git a/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php b/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php index 96a1496240f..f69d2bff5fa 100644 --- a/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php @@ -54,6 +54,8 @@ abstract class AbstractGridView private GridViewRowLink $rowLink; private int $rowsPerPage = 20; private string $baseUrl = ''; + private string $defaultSortField = ''; + private string $defaultSortOrder = ''; private string $sortField = ''; private string $sortOrder = 'ASC'; private int $pageNo = 1; @@ -456,6 +458,44 @@ public function getBaseUrl(): string return $this->baseUrl; } + /** + * Sets the default sort field of the grid view. + */ + public function setDefaultSortField(string $sortField): void + { + $this->defaultSortField = $sortField; + $this->setSortField($sortField); + } + + /** + * Sets the default sort order of the grid view. + */ + public function setDefaultSortOrder(string $sortOrder): void + { + if ($sortOrder !== 'ASC' && $sortOrder !== 'DESC') { + throw new \InvalidArgumentException("Invalid value '{$sortOrder}' as default sort order given."); + } + + $this->defaultSortOrder = $sortOrder; + $this->setSortOrder($sortOrder); + } + + /** + * Returns the default sort field of the grid view. + */ + public function getDefaultSortField(): string + { + return $this->defaultSortField; + } + + /** + * Returns the sort order of the grid view. + */ + public function getDefaultSortOrder(): string + { + return $this->defaultSortOrder; + } + /** * Sets the sort field of the grid view. */ @@ -648,6 +688,10 @@ protected function fireInitializedEvent(): void */ protected function validate(): void { + if ($this->getDefaultSortField() === '') { + throw new \InvalidArgumentException("Undefined default sort field."); + } + if ($this->getSortField()) { if (!\in_array($this->getSortField(), \array_map(fn($column) => $column->getID(), $this->getSortableColumns()))) { if (\ENABLE_DEBUG_MODE) { diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionGridView.class.php index ed604e9c091..26bdad15666 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionGridView.class.php @@ -68,8 +68,8 @@ public function __construct(private readonly int $sessionLogID) ), ]); - $this->setSortField('time'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('time'); + $this->setDefaultSortOrder('DESC'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionLogGridView.class.php index 6ba3666718e..a1e77fbfa2a 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ACPSessionLogGridView.class.php @@ -75,8 +75,8 @@ public function __construct() ]); $this->addRowLink(new GridViewRowLink(ACPSessionLogPage::class)); - $this->setSortField('lastActivityTime'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('lastActivityTime'); + $this->setDefaultSortOrder('DESC'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/AdGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/AdGridView.class.php index c8b586ffa54..7616115f6af 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/AdGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/AdGridView.class.php @@ -71,7 +71,7 @@ public function __construct() ) ); - $this->setSortField("showOrder"); + $this->setDefaultSortField("showOrder"); $this->addRowLink(new GridViewRowLink(AdEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ArticleGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ArticleGridView.class.php index ace70697827..9c8740a745f 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ArticleGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ArticleGridView.class.php @@ -186,8 +186,8 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($provider); $this->setBulkInteractionProvider(new ArticleBulkInteractions()); - $this->setSortField('time'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('time'); + $this->setDefaultSortOrder('DESC'); $this->addRowLink(new GridViewRowLink(ArticleEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/AttachmentGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/AttachmentGridView.class.php index 9323110a346..e079d30d442 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/AttachmentGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/AttachmentGridView.class.php @@ -150,9 +150,8 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($interaction); $this->setBulkInteractionProvider(new AttachmentBulkInteractions()); $this->addRowLink(new GridViewRowLink(isLinkableObject: true)); - - $this->setSortOrder('DESC'); - $this->setSortField('uploadTime'); + $this->setDefaultSortField('uploadTime'); + $this->setDefaultSortOrder('DESC'); } /** diff --git a/wcfsetup/install/files/lib/system/gridView/admin/BBCodeGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/BBCodeGridView.class.php index d68b1b16c60..86012a47f46 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/BBCodeGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/BBCodeGridView.class.php @@ -64,7 +64,7 @@ public function render(mixed $value, DatabaseObject $row): string ]); $this->setInteractionProvider($provider); - $this->setSortField('bbcodeTag'); + $this->setDefaultSortField('bbcodeTag'); $this->addRowLink(new GridViewRowLink(BBCodeEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/BBCodeMediaProviderGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/BBCodeMediaProviderGridView.class.php index 915a14144c1..c8dad65e855 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/BBCodeMediaProviderGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/BBCodeMediaProviderGridView.class.php @@ -62,7 +62,7 @@ public function __construct() ); $this->addRowLink(new GridViewRowLink(BBCodeMediaProviderEditForm::class)); - $this->setSortField('title'); + $this->setDefaultSortField('title'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/BoxGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/BoxGridView.class.php index 4a50aaa4878..d9454671da0 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/BoxGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/BoxGridView.class.php @@ -110,7 +110,7 @@ public function applyFilter(DatabaseObjectList $list, string $id, string $value) $this->addQuickInteraction(new ToggleInteraction('enable', 'core/boxes/%s/enable', 'core/boxes/%s/disable')); - $this->setSortField('name'); + $this->setDefaultSortField('name'); $this->addRowLink(new GridViewRowLink(BoxEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/CaptchaQuestionGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/CaptchaQuestionGridView.class.php index bcdd8254f25..73fb2820b1b 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/CaptchaQuestionGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/CaptchaQuestionGridView.class.php @@ -69,7 +69,7 @@ public function __construct() new ToggleInteraction('enable', 'core/captchas/questions/%s/enable', 'core/captchas/questions/%s/disable') ); - $this->setSortField('questionID'); + $this->setDefaultSortField('questionID'); $this->addRowLink(new GridViewRowLink(CaptchaQuestionEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ContactOptionGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ContactOptionGridView.class.php index 95a842dd3f3..f2d96080841 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ContactOptionGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ContactOptionGridView.class.php @@ -77,8 +77,8 @@ public function __construct() $this->addRowLink(new GridViewRowLink(ContactOptionEditForm::class)); - $this->setSortField("showOrder"); - $this->setSortOrder("ASC"); + $this->setDefaultSortField("showOrder"); + $this->setDefaultSortOrder("ASC"); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ContactRecipientGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ContactRecipientGridView.class.php index b4a139b5b1e..cafc06f61ad 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ContactRecipientGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ContactRecipientGridView.class.php @@ -75,8 +75,8 @@ public function __construct() $this->addRowLink(new GridViewRowLink(ContactRecipientEditForm::class)); - $this->setSortField("showOrder"); - $this->setSortOrder("ASC"); + $this->setDefaultSortField("showOrder"); + $this->setDefaultSortOrder("ASC"); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/CronjobGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/CronjobGridView.class.php index 5e79bd08150..59343ca0c0a 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/CronjobGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/CronjobGridView.class.php @@ -118,7 +118,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->setBulkInteractionProvider(new CronjobBulkInteractions()); $this->addRowLink(new GridViewRowLink(CronjobEditForm::class)); - $this->setSortField('description'); + $this->setDefaultSortField('description'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/CronjobLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/CronjobLogGridView.class.php index c64818197d5..b3ff0c611eb 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/CronjobLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/CronjobLogGridView.class.php @@ -91,8 +91,8 @@ public function render(mixed $value, DatabaseObject $row): string ]); $this->addQuickInteraction($this->getShowDetailsInteraction()); - $this->setSortField('execTime'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('execTime'); + $this->setDefaultSortOrder('DESC'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/EmailLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/EmailLogGridView.class.php index d817e2f6cc0..d4355f1c685 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/EmailLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/EmailLogGridView.class.php @@ -158,8 +158,8 @@ public function render(mixed $value, DatabaseObject $row): string ]); $this->addQuickInteraction($this->getShowDetailsInteraction()); - $this->setSortField('time'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('time'); + $this->setDefaultSortOrder('DESC'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ExceptionLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ExceptionLogGridView.class.php index e73e821a41d..a38162b4b72 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ExceptionLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ExceptionLogGridView.class.php @@ -55,8 +55,8 @@ public function __construct(bool $applyDefaultFilter = false) ]); $this->addRowLink(new GridViewRowLink(cssClass: 'jsExceptionLogEntry')); - $this->setSortField('date'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('date'); + $this->setDefaultSortOrder('DESC'); if ($applyDefaultFilter && $this->getDefaultLogFile() !== null) { $this->setActiveFilters([ diff --git a/wcfsetup/install/files/lib/system/gridView/admin/LabelGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/LabelGridView.class.php index f1e1391f910..f857f67fd0c 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/LabelGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/LabelGridView.class.php @@ -114,7 +114,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($provider); $this->setBulkInteractionProvider(new LabelBulkInteractions()); - $this->setSortField("label"); + $this->setDefaultSortField("label"); $this->addRowLink(new GridViewRowLink(LabelEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/LabelGroupGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/LabelGroupGridView.class.php index d05d592ebe9..1753ec00461 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/LabelGroupGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/LabelGroupGridView.class.php @@ -73,7 +73,7 @@ public function __construct() ]); $this->setInteractionProvider($provider); - $this->setSortField('showOrder'); + $this->setDefaultSortField('showOrder'); $this->addRowLink(new GridViewRowLink(LabelGroupEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/LanguageGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/LanguageGridView.class.php index b6ea1509a8f..a7f92a5d1bb 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/LanguageGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/LanguageGridView.class.php @@ -142,7 +142,7 @@ public function render(mixed $value, DatabaseObject $row): string ); $this->addRowLink(new GridViewRowLink(LanguageEditForm::class)); - $this->setSortField('languageName'); + $this->setDefaultSortField('languageName'); } private function subSelectUsers(): string diff --git a/wcfsetup/install/files/lib/system/gridView/admin/LanguageItemGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/LanguageItemGridView.class.php index 4975dcb7b91..37cc524a8f1 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/LanguageItemGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/LanguageItemGridView.class.php @@ -158,7 +158,7 @@ public function applyFilter(DatabaseObjectList $list, string $id, string $value) ]); $this->setInteractionProvider($provider); - $this->setSortField('languageItem'); + $this->setDefaultSortField('languageItem'); if ($defaultLanguage !== null) { $this->setActiveFilters(['languageID' => $defaultLanguage->languageID]); diff --git a/wcfsetup/install/files/lib/system/gridView/admin/MenuGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/MenuGridView.class.php index a9f83ed4430..b39b05d2bd5 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/MenuGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/MenuGridView.class.php @@ -91,7 +91,7 @@ public function render(mixed $value, DatabaseObject $row): string ]); $this->setInteractionProvider($provider); - $this->setSortField("title"); + $this->setDefaultSortField("title"); $this->addRowLink(new GridViewRowLink(MenuEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ModificationLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ModificationLogGridView.class.php index 33fae532f0a..ae3ae05accd 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ModificationLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ModificationLogGridView.class.php @@ -155,8 +155,8 @@ public function render(mixed $value, DatabaseObject $row): string ->filter(new TimeFilter()), ]); - $this->setSortField('time'); - $this->setSortOrder('DESC'); + $this->setDefaultSortField('time'); + $this->setDefaultSortOrder('DESC'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/NoticeGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/NoticeGridView.class.php index cb13266672e..39feb92a3cf 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/NoticeGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/NoticeGridView.class.php @@ -66,7 +66,7 @@ public function __construct() ) ); - $this->setSortField("showOrder"); + $this->setDefaultSortField("showOrder"); $this->addRowLink(new GridViewRowLink(NoticeEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PackageGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PackageGridView.class.php index 6cb58f047cd..a5d27d82ebe 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PackageGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PackageGridView.class.php @@ -112,7 +112,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($provider); $this->setRowsPerPage(50); - $this->setSortField('packageID'); + $this->setDefaultSortField('packageID'); $this->addRowLink(new GridViewRowLink(PackagePage::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PackageUpdateServerGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PackageUpdateServerGridView.class.php index b2ff3e45f43..f8d0e5a83ff 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PackageUpdateServerGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PackageUpdateServerGridView.class.php @@ -110,7 +110,7 @@ public function render(mixed $value, DatabaseObject $row): string ) ); - $this->setSortField('serverURL'); + $this->setDefaultSortField('serverURL'); $this->addRowLink(new GridViewRowLink(PackageUpdateServerEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PageGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PageGridView.class.php index 6c3b2da8c9d..76230c32dd6 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PageGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PageGridView.class.php @@ -146,7 +146,7 @@ public function applyFilter(DatabaseObjectList $list, string $id, string $value) ) ); - $this->setSortField('name'); + $this->setDefaultSortField('name'); $this->addRowLink(new GridViewRowLink(PageEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionGridView.class.php index 34fa477449c..421e5fde436 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionGridView.class.php @@ -120,7 +120,7 @@ public function render(mixed $value, DatabaseObject $row): string ) ); - $this->setSortField('showOrder'); + $this->setDefaultSortField('showOrder'); $this->addRowLink(new GridViewRowLink(PaidSubscriptionEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionTransactionLogGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionTransactionLogGridView.class.php index afcab303ba4..ee6fd5fb188 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionTransactionLogGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionTransactionLogGridView.class.php @@ -118,8 +118,8 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($this->getInteractions()); $this->addRowLink(new GridViewRowLink(PaidSubscriptionTransactionLogPage::class)); - $this->setSortField("logTime"); - $this->setSortOrder("DESC"); + $this->setDefaultSortField("logTime"); + $this->setDefaultSortOrder("DESC"); } /** diff --git a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionUserGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionUserGridView.class.php index 0f10fc21a18..0379bbcd4aa 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionUserGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/PaidSubscriptionUserGridView.class.php @@ -73,7 +73,7 @@ public function __construct() $this->setInteractionProvider($provider); - $this->setSortField("userID"); + $this->setDefaultSortField("userID"); } /** diff --git a/wcfsetup/install/files/lib/system/gridView/admin/ReactionTypeGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/ReactionTypeGridView.class.php index 9d91c155075..5b9b1460772 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/ReactionTypeGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/ReactionTypeGridView.class.php @@ -94,7 +94,7 @@ public function getClasses(): string ) ); - $this->setSortField("showOrder"); + $this->setDefaultSortField("showOrder"); $this->addRowLink(new GridViewRowLink(ReactionTypeEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/SmileyGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/SmileyGridView.class.php index ce9788e3f14..177e9c9c6ff 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/SmileyGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/SmileyGridView.class.php @@ -137,8 +137,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->addRowLink(new GridViewRowLink(SmileyEditForm::class)); - $this->setSortField("showOrder"); - $this->setSortOrder("ASC"); + $this->setDefaultSortField("showOrder"); } /** diff --git a/wcfsetup/install/files/lib/system/gridView/admin/StyleGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/StyleGridView.class.php index 4a39f91e62f..d1ef585e649 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/StyleGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/StyleGridView.class.php @@ -122,7 +122,7 @@ public function render(mixed $value, DatabaseObject $row): string ) ); $this->addRowLink(new GridViewRowLink(StyleEditForm::class)); - $this->setSortField('styleName'); + $this->setDefaultSortField('styleName'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/TagGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/TagGridView.class.php index c3ce4c9beb6..b54621be5fb 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/TagGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/TagGridView.class.php @@ -96,7 +96,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->setBulkInteractionProvider(new TagBulkInteractions()); $this->setInteractionProvider($provider); - $this->setSortField('name'); + $this->setDefaultSortField('name'); $this->addRowLink(new GridViewRowLink(TagEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/TemplateGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/TemplateGridView.class.php index 5cea2a8fe46..a95b982d091 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/TemplateGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/TemplateGridView.class.php @@ -83,7 +83,7 @@ public function __construct(?int $templateGroupID = null) $this->setInteractionProvider($provider); $this->addRowLink(new GridViewRowLink(TemplateEditForm::class)); - $this->setSortField("templateName"); + $this->setDefaultSortField("templateName"); if ($templateGroupID !== null) { $this->setActiveFilters([ diff --git a/wcfsetup/install/files/lib/system/gridView/admin/TemplateGroupGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/TemplateGroupGridView.class.php index 40f3e79546f..02cf6004d8c 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/TemplateGroupGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/TemplateGroupGridView.class.php @@ -68,7 +68,7 @@ public function __construct() $this->setInteractionProvider($provider); $this->addRowLink(new GridViewRowLink(TemplateGroupEditForm::class)); - $this->setSortField("templateGroupName"); + $this->setDefaultSortField("templateGroupName"); } private function subQueryTemplates(): string diff --git a/wcfsetup/install/files/lib/system/gridView/admin/TrophyGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/TrophyGridView.class.php index b82a9d4efc0..384cb6c787b 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/TrophyGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/TrophyGridView.class.php @@ -88,7 +88,7 @@ public function getClasses(): string new ToggleInteraction("enable", "core/trophies/%s/enable", "core/trophies/%s/disable") ); - $this->setSortField("showOrder"); + $this->setDefaultSortField("showOrder"); $this->addRowLink(new GridViewRowLink(TrophyEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserAuthenticationFailureGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserAuthenticationFailureGridView.class.php index 00b930e9d3e..aa8b5843d10 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserAuthenticationFailureGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserAuthenticationFailureGridView.class.php @@ -107,8 +107,8 @@ public function render(mixed $value, DatabaseObject $row): string ->sortable(), ]); - $this->setSortField("time"); - $this->setSortOrder("DESC"); + $this->setDefaultSortField("time"); + $this->setDefaultSortOrder("DESC"); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserGroupAssignmentGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserGroupAssignmentGridView.class.php index 35aad185f7f..97d12e5fa3b 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserGroupAssignmentGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserGroupAssignmentGridView.class.php @@ -84,7 +84,7 @@ public function render(mixed $value, DatabaseObject $row): string ) ); - $this->setSortField("title"); + $this->setDefaultSortField("title"); $this->addRowLink(new GridViewRowLink(UserGroupAssignmentEditForm::class)); } diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserGroupGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserGroupGridView.class.php index 07cf3c51fcd..edb0c5d4ded 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserGroupGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserGroupGridView.class.php @@ -114,7 +114,7 @@ public function render(mixed $value, DatabaseObject $row): string UserGroupEditForm::class, isAvailableCallback: static fn(UserGroup $group) => $group->isEditable() )); - $this->setSortField("groupName"); + $this->setDefaultSortField("groupName"); } private function subSelectMembers(): string diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserOptionGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserOptionGridView.class.php index 34f74330780..f29677974fe 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserOptionGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserOptionGridView.class.php @@ -89,7 +89,7 @@ public function render(mixed $value, DatabaseObject $row): string new ToggleInteraction('enable', 'core/users/options/%s/enable', 'core/users/options/%s/disable') ); $this->addRowLink(new GridViewRowLink(UserOptionEditForm::class)); - $this->setSortField('showOrder'); + $this->setDefaultSortField('showOrder'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserRankGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserRankGridView.class.php index 8bc801036f4..7e8766efbda 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserRankGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserRankGridView.class.php @@ -117,7 +117,7 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($provider); $this->setBulkInteractionProvider(new UserRankBulkInteractions()); $this->addRowLink(new GridViewRowLink(UserRankEditForm::class)); - $this->setSortField('rankTitle'); + $this->setDefaultSortField('rankTitle'); } #[\Override] diff --git a/wcfsetup/install/files/lib/system/gridView/admin/UserTrophyGridView.class.php b/wcfsetup/install/files/lib/system/gridView/admin/UserTrophyGridView.class.php index ad7ceea14cb..6fa6d0ba64e 100644 --- a/wcfsetup/install/files/lib/system/gridView/admin/UserTrophyGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/admin/UserTrophyGridView.class.php @@ -113,8 +113,8 @@ public function render(mixed $value, DatabaseObject $row): string ) ); - $this->setSortField("time"); - $this->setSortOrder("DESC"); + $this->setDefaultSortField("time"); + $this->setDefaultSortOrder("DESC"); } private function getTrophySelectFilter(): SelectFilter diff --git a/wcfsetup/install/files/lib/system/gridView/user/ModerationQueueGridView.class.php b/wcfsetup/install/files/lib/system/gridView/user/ModerationQueueGridView.class.php index 489f6ec4618..4655ce17559 100644 --- a/wcfsetup/install/files/lib/system/gridView/user/ModerationQueueGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/user/ModerationQueueGridView.class.php @@ -212,8 +212,8 @@ public function render(mixed $value, DatabaseObject $row): string $this->setInteractionProvider($provider); $this->setBulkInteractionProvider(new ModerationQueueBulkInteractions()); - $this->setSortField("lastChangeTime"); - $this->setSortOrder("DESC"); + $this->setDefaultSortField("lastChangeTime"); + $this->setDefaultSortOrder("DESC"); $this->addRowLink(new GridViewRowLink(isLinkableObject: true)); if ($status !== null) {