-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathprepare_project.php
97 lines (83 loc) · 3.24 KB
/
prepare_project.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
require('../include/session.inc.php');
/*
This file is part of CoDev-Timetracking.
CoDev-Timetracking is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CoDev-Timetracking is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with CoDev-Timetracking. If not, see <http://www.gnu.org/licenses/>.
*/
require('../path.inc.php');
class PrepareProjectController extends Controller {
/**
* @var Logger The logger
*/
private static $logger;
/**
* Initialize complex static variables
* @static
*/
public static function staticInit() {
self::$logger = Logger::getLogger(__CLASS__);
}
protected function display() {
if(Tools::isConnectedUser()) {
// Admins only
$session_user = UserCache::getInstance()->getUser($_SESSION['userid']);
if ($session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId))) {
if (isset($_POST['projects']) && !empty($_POST['projects'])) {
$selectedProjects = $_POST['projects'];
$result = array();
foreach ($selectedProjects as $projectid) {
$project = ProjectCache::getInstance()->getProject($projectid);
$result[$projectid] = $project->getName();
Project::prepareProjectToCodev($projectid);
}
$this->smartyHelper->assign('result', $result);
}
$this->smartyHelper->assign('projects', $this->getProjectList());
}
}
}
/**
* get all existing projects, except ExternalTasksProject & SideTasksProjects
* @return string[int] : name[id]
*/
private function getProjectList() {
$projects = Project::getProjects();
if($projects != NULL) {
$extproj_id = Config::getInstance()->getValue(Config::id_externalTasksProject);
$smartyProjects = array();
foreach($projects as $id => $name) {
if ($extproj_id != $id) {
try {
$p = ProjectCache::getInstance()->getProject($id);
if (!$p->isSideTasksProject()) {
$smartyProjects[$id] = $name;
}
} catch (Exception $e) {
// could not determinate, so the project should be included in the list
if(self::$logger->isDebugEnabled()) {
self::$logger->debug("project $id: Unknown type, project included anyway.");
}
// nothing to do.
}
}
}
return $smartyProjects;
} else {
return NULL;
}
}
}
// ========== MAIN ===========
PrepareProjectController::staticInit();
$controller = new PrepareProjectController('../', 'CodevTT Administration : Prepare Projects','Admin');
$controller->execute();
?>