Alphabetical sorting of cronjobs
authorMarcel Werk <burntime@woltlab.com>
Sat, 6 Jun 2020 20:00:16 +0000 (22:00 +0200)
committerMarcel Werk <burntime@woltlab.com>
Sat, 6 Jun 2020 20:00:16 +0000 (22:00 +0200)
Closes #3361

wcfsetup/install/files/acp/templates/cronjobList.tpl
wcfsetup/install/files/lib/acp/page/CronjobListPage.class.php
wcfsetup/install/files/lib/acp/page/CronjobLogListPage.class.php
wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php [new file with mode: 0644]

index 762a4c15267b5a0b86f43e966d7517450235719b..7c3e6dd5ed2017bca26427af98d9c8bacc27b758 100644 (file)
@@ -41,7 +41,7 @@
                                        <th class="columnDate columnStartDom{if $sortField == 'startDom'} active {@$sortOrder}{/if}" title="{lang}wcf.acp.cronjob.startDom{/lang}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=startDom&sortOrder={if $sortField == 'startDom' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.startDomShort{/lang}</a></th>
                                        <th class="columnDate columnStartMonth{if $sortField == 'startMonth'} active {@$sortOrder}{/if}" title="{lang}wcf.acp.cronjob.startMonth{/lang}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=startMonth&sortOrder={if $sortField == 'startMonth' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.startMonthShort{/lang}</a></th>
                                        <th class="columnDate columnStartDow{if $sortField == 'startDow'} active {@$sortOrder}{/if}" title="{lang}wcf.acp.cronjob.startDow{/lang}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=startDow&sortOrder={if $sortField == 'startDow' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.startDowShort{/lang}</a></th>
-                                       <th class="columnText columnDescription">{lang}wcf.acp.cronjob.description{/lang}</th>
+                                       <th class="columnText columnDescription{if $sortField == 'descriptionI18n'} active {@$sortOrder}{/if}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=descriptionI18n&sortOrder={if $sortField == 'descriptionI18n' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.description{/lang}</a></th>
                                        <th class="columnDate columnNextExec{if $sortField == 'nextExec'} active {@$sortOrder}{/if}"><a href="{link controller='CronjobList'}pageNo={@$pageNo}&sortField=nextExec&sortOrder={if $sortField == 'nextExec' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.cronjob.nextExec{/lang}</a></th>
                                        
                                        {event name='columnHeads'}
index 8f3239d3c473bbdeea43a1453783e9476ec2d910..efc22200eee1ad28d2d3f7f1430b6c8e6ac17965 100755 (executable)
@@ -1,6 +1,6 @@
 <?php
 namespace wcf\acp\page;
-use wcf\data\cronjob\CronjobList;
+use wcf\data\cronjob\I18nCronjobList;
 use wcf\page\SortablePage;
 
 /**
@@ -11,7 +11,7 @@ use wcf\page\SortablePage;
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @package    WoltLabSuite\Core\Acp\Page
  * 
- * @property   CronjobList     $objectList
+ * @property   I18nCronjobList $objectList
  */
 class CronjobListPage extends SortablePage {
        /**
@@ -27,7 +27,7 @@ class CronjobListPage extends SortablePage {
        /**
         * @inheritDoc
         */
-       public $defaultSortField = 'cronjobID';
+       public $defaultSortField = 'descriptionI18n';
        
        /**
         * @inheritDoc
@@ -37,12 +37,12 @@ class CronjobListPage extends SortablePage {
        /**
         * @inheritDoc
         */
-       public $validSortFields = ['cronjobID', 'nextExec', 'startMinute', 'startHour', 'startDom', 'startMonth', 'startDow'];
+       public $validSortFields = ['cronjobID', 'nextExec', 'startMinute', 'startHour', 'startDom', 'startMonth', 'startDow', 'descriptionI18n'];
        
        /**
         * @inheritDoc
         */
-       public $objectListClassName = CronjobList::class;
+       public $objectListClassName = I18nCronjobList::class;
        
        /**
         * @inheritDoc
index 4c7dfea87d71aedbd7a15a80c49959c258bb142a..05df8b3e3a9381e332694d1f9f6cf66018fd4e36 100755 (executable)
@@ -1,6 +1,7 @@
 <?php
 namespace wcf\acp\page;
 use wcf\data\cronjob\CronjobList;
+use wcf\data\cronjob\I18nCronjobList;
 use wcf\data\cronjob\log\CronjobLogList;
 use wcf\page\SortablePage;
 use wcf\system\WCF;
@@ -108,8 +109,8 @@ class CronjobLogListPage extends SortablePage {
        public function readData() {
                parent::readData();
                
-               $this->availableCronjobs = new CronjobList();
-               $this->availableCronjobs->sqlOrderBy = 'cronjobID';
+               $this->availableCronjobs = new I18nCronjobList();
+               $this->availableCronjobs->sqlOrderBy = 'descriptionI18n';
                $this->availableCronjobs->readObjects();
        }
        
diff --git a/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php b/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php
new file mode 100644 (file)
index 0000000..8e59a9d
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+namespace wcf\data\cronjob;
+use wcf\data\I18nDatabaseObjectList;
+
+/**
+ * I18n implementation of cronjob list.
+ *
+ * @author     Marcel Werk
+ * @copyright  2001-2020 WoltLab GmbH
+ * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package    WoltLabSuite\Core\Data\Cronjob
+ * @since       5.3
+ *
+ * @method     Cronjob         current()
+ * @method     Cronjob[]       getObjects()
+ * @method     Cronjob|null    search($objectID)
+ * @property   Cronjob[]       $objects
+ */
+class I18nCronjobList extends I18nDatabaseObjectList {
+       /**
+        * @inheritDoc
+        */
+       public $i18nFields = ['description' => 'descriptionI18n'];
+       
+       /**
+        * @inheritDoc
+        */
+       public $className = Cronjob::class;
+}