3 * FusionForge Tracker Listing
5 * Copyright 1999-2000 (c) The SourceForge Crew
6 * Copyright 2010, FusionForge Team
7 * Copyright (C) 2012 Alain Peyrat - Alcatel-Lucent
8 * Copyright 2013, Franck Villaume - TrivialDev
9 * http://fusionforge.org
11 * This file is part of FusionForge. FusionForge is free software;
12 * you can redistribute it and/or modify it under the terms of the
13 * GNU General Public License as published by the Free Software
14 * Foundation; either version 2 of the Licence, or (at your option)
17 * FusionForge is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License along
23 * with FusionForge; if not, write to the Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27 require_once '../../env.inc.php';
28 require_once $gfcommon.'include/pre.php';
29 require_once $gfcommon.'tracker/Artifact.class.php';
30 require_once $gfcommon.'tracker/ArtifactFile.class.php';
31 require_once $gfcommon.'tracker/include/ArtifactFileHtml.class.php';
32 require_once $gfcommon.'tracker/ArtifactType.class.php';
33 require_once $gfcommon.'tracker/ArtifactTypeFactory.class.php';
34 require_once $gfcommon.'tracker/include/ArtifactTypeFactoryHtml.class.php';
35 require_once $gfcommon.'tracker/include/ArtifactTypeHtml.class.php';
36 require_once $gfcommon.'tracker/include/ArtifactHtml.class.php';
37 require_once $gfcommon.'tracker/ArtifactCanned.class.php';
38 require_once $gfcommon.'tracker/ArtifactExtraField.class.php';
39 require_once $gfcommon.'tracker/ArtifactExtraFieldElement.class.php';
41 $group_id = getIntFromRequest('group_id');
42 $atid = getIntFromRequest('atid');
46 $group = group_get_object($group_id);
47 if (!$group || !is_object($group)) {
50 if ($group->isError()) {
51 if($group->isPermissionDeniedError()) {
52 exit_permission_denied($group->getErrorMessage(),'tracker');
54 exit_error($group->getErrorMessage(),'tracker');
58 session_require_perm('tracker_admin', $group_id);
60 if ($group_id && $atid) {
62 // UPDATING A PARTICULAR ARTIFACT TYPE
66 // Create the ArtifactType object
68 $ath = new ArtifactTypeHtml($group,$atid);
69 if (!$ath || !is_object($ath)) {
70 exit_error(_('ArtifactType could not be created'),'tracker');
72 if ($ath->isError()) {
73 exit_error($ath->getErrorMessage(),'tracker');
77 if (getStringFromRequest('post_changes') ||
78 getStringFromRequest('updownorder_opt') ||
79 getStringFromRequest('post_changes_order') ||
80 getStringFromRequest('post_changes_alphaorder')) {
81 include $gfcommon.'tracker/actions/admin-updates.php';
83 } elseif (getStringFromRequest('edittemplate')) {
85 include $gfcommon.'tracker/views/form-edittemplate.php';
87 } elseif (getStringFromRequest('deletetemplate')) {
89 $confirm = getStringFromRequest('confirm');
90 $cancel = getStringFromRequest('cancel');
93 header ("Location: /tracker/admin/?group_id=$group_id&atid=$atid");
97 $ath->adminHeader(array ('title'=>_('Delete Layout Template')));
98 echo $HTML->confirmBox(_('You are about to delete your current Layout Template')
99 . '<br/><br/>' . _('Do you really want to do that?'),
100 array('group_id' => $group_id, 'atid' => $atid, 'deletetemplate' => 1),
101 array('confirm' => _('Delete'), 'cancel' => _('Cancel')));
102 $ath->footer(array());
106 db_query_params ('UPDATE artifact_group_list SET custom_renderer=$1 WHERE group_artifact_id=$2',
109 $feedback .= _('Layout Template Deleted');
110 $next = 'add_extrafield';
114 // FORMS TO ADD/UPDATE DATABASE
119 $actions = array('add_extrafield', 'customize_list', 'workflow', 'workflow_roles', 'add_opt',
120 'updownorder_opt', 'post_changes_order', 'post_changes_alphaorder', 'copy_opt', 'add_canned',
121 'clone_tracker', 'edittemplate',
122 'update_canned', 'delete_canned', 'update_box', 'update_opt', 'delete', 'delete_opt', 'deleteextrafield','update_type');
124 foreach ($actions as $a) {
125 if (getStringFromRequest($a)) {
132 if ($action == 'add_extrafield') {
134 include $gfcommon.'tracker/views/form-addextrafield.php';
136 } elseif ($action == 'customize_list') {
138 include $gfcommon.'tracker/views/form-customizelist.php';
140 } elseif ($action == 'workflow') {
142 include $gfcommon.'tracker/views/form-workflow.php';
144 } elseif ($action == 'workflow_roles') {
146 include $gfcommon.'tracker/views/form-workflow_roles.php';
148 } elseif ($action == 'add_opt' ||
149 $action == 'updownorder_opt' ||
150 $action == 'post_changes_order' ||
151 $action == 'post_changes_alphaorder') {
153 include $gfcommon.'tracker/views/form-addextrafieldoption.php';
155 } elseif ($action == 'copy_opt') {
157 include $gfcommon.'tracker/views/form-extrafieldcopy.php';
159 } elseif ($action == 'add_canned') {
161 include $gfcommon.'tracker/views/form-addcanned.php';
163 } elseif ($action == 'delete_canned') {
165 $confirm = getStringFromRequest('confirm');
166 $cancel = getStringFromRequest('cancel');
167 $id = getIntFromRequest('id');
170 header ("Location: /tracker/admin/?group_id=$group_id&atid=$atid&add_canned=1");
174 $ath->adminHeader(array ('title'=>_('Delete Canned Response'), 'modal' => 1));
175 echo $HTML->confirmBox(_('You are about to delete your canned response')
176 . '<br/><br/>' . _('Do you really want to do that?'),
177 array('group_id' => $group_id, 'atid' => $atid, 'delete_canned' => 1, 'id' => $id),
178 array('confirm' => _('Delete'), 'cancel' => _('Cancel')));
179 $ath->footer(array());
183 $acr = $acr = new ArtifactCanned($ath,$id);
184 if (!$acr || !is_object($acr)) {
185 $error_msg .= _('Unable to create ArtifactCanned Object');
187 if (!$acr->delete()) {
188 $error_msg .= _('Error') . _(': ') . $acr->getErrorMessage();
191 $feedback .= _('Canned Response Deleted');
194 include $gfcommon.'tracker/views/form-addcanned.php';
196 } elseif ($action == 'clone_tracker') {
198 include $gfcommon.'tracker/views/form-clonetracker.php';
200 } elseif ($action == 'update_canned') {
202 include $gfcommon.'tracker/views/form-updatecanned.php';
204 } elseif ($action == 'update_box') {
206 include $gfcommon.'tracker/views/form-updateextrafield.php';
208 } elseif ($action == 'update_opt') {
210 include $gfcommon.'tracker/views/form-updateextrafieldelement.php';
212 } elseif ($action == 'delete_opt') {
214 include $gfcommon.'tracker/views/form-deleteextrafieldelement.php';
216 } elseif ($action == 'delete') {
218 include $gfcommon.'tracker/views/form-deletetracker.php';
220 } elseif ($action == 'deleteextrafield') {
222 include $gfcommon.'tracker/views/form-deleteextrafield.php';
224 } elseif ($action == 'update_type') {
226 include $gfcommon.'tracker/views/form-updatetracker.php';
230 include $gfcommon.'tracker/actions/admin-tracker.php';
234 } elseif ($group_id) {
235 if (getStringFromRequest('tracker_deleted')) {
236 $feedback .= _('Successfully Deleted.');
239 if (getIntFromRequest('new_tracker')) {
241 include $gfcommon.'tracker/views/form-newtracker.php';
243 } elseif (getStringFromRequest('clone_tracker')) {
244 $ath = new ArtifactTypeFactoryHtml($group);
245 include $gfcommon.'tracker/views/form-clonetracker.php';
247 } elseif (getStringFromRequest('admin_roadmap')) {
248 include $gfcommon.'tracker/views/form-adminroadmap.php';
251 include $gfcommon.'tracker/actions/admin-ind.php';
257 // c-file-style: "bsd"