Overhaul of the user authentication system
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / acp / page / CronjobLogListPage.class.php
CommitLineData
11ade432
AE
1<?php
2namespace wcf\acp\page;
3use wcf\system\menu\acp\ACPMenu;
4use wcf\page\SortablePage;
5use wcf\system\package\PackageDependencyHandler;
6use wcf\system\WCF;
7
8/**
9 * Shows cron jobs log information.
10 *
11 * @author Marcel Werk
12 * @copyright 2001-2011 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package com.woltlab.wcf
15 * @subpackage acp.page
16 * @category Community Framework
17 */
18class CronjobLogListPage extends SortablePage {
19 /**
20 * @see wcf\page\AbstractPage::$templateName
21 */
22 public $templateName = 'cronjobLogList';
23
24 /**
25 * @see wcf\page\AbstractPage::$neededPermissions
26 */
27 public $neededPermissions = array('admin.system.cronjobs.canEditCronjob');
28
29 /**
30 * @see wcf\page\MultipleLinkPage::$itemsPerPage
31 */
32 public $itemsPerPage = 100;
33
34 /**
35 * @see wcf\page\SortablePage::$defaultSortField
36 */
37 public $defaultSortField = 'execTime';
38
39 /**
40 * @see wcf\page\SortablePage::$defaultSortOrder
41 */
42 public $defaultSortOrder = 'DESC';
e34164d2
MS
43
44 /**
45 * @see wcf\page\SortablePage::$validSortFields
46 */
47 public $validSortFields = array('cronjobID', 'classPath', 'description', 'execTime', 'success');
11ade432
AE
48
49 /**
50 * @see wcf\page\MultipleLinkPage::$objectListClassName
51 */
52 public $objectListClassName = 'wcf\data\cronjob\log\CronjobLogList';
53
54 /**
55 * @see wcf\page\MultipleLinkPage::initObjectList()
56 */
57 protected function initObjectList() {
58 parent::initObjectList();
59
60 $this->objectList->sqlSelects = "cronjob.*";
61 $this->objectList->sqlJoins = "LEFT JOIN wcf".WCF_N."_cronjob cronjob ON (cronjob.cronjobID = cronjob_log.cronjobID)";
62 $this->objectList->getConditionBuilder()->add("cronjob_log.cronjobID IN (SELECT cronjobID FROM wcf".WCF_N."_cronjob WHERE packageID IN (?))", array(PackageDependencyHandler::getDependencies()));
63 }
64
65 /**
66 * @see wcf\page\MultipleLinkPage::readObjects()
67 */
68 protected function readObjects() {
69 $this->sqlOrderBy = (($this->sortField == 'classPath' || $this->sortField == 'description') ? 'cronjob.' : 'cronjob_log.').$this->sortField." ".$this->sortOrder;
70
71 parent::readObjects();
72 }
73
74 /**
b522d4f1 75 * @see wcf\page\IPage::assignVariables()
11ade432
AE
76 */
77 public function assignVariables() {
78 parent::assignVariables();
79
80 WCF::getTPL()->assign(array(
81 'cronjobLogs' => $this->objectList->getObjects()
82 ));
83 }
84
11ade432 85 /**
b522d4f1 86 * @see wcf\page\IPage::show()
11ade432
AE
87 */
88 public function show() {
89 // set active menu item.
90 ACPMenu::getInstance()->setActiveMenuItem('wcf.acp.menu.link.cronjobs.showLog');
91
92 parent::show();
93 }
94}