|
From: Benjamin C. <bc...@us...> - 2002-09-16 19:39:37
|
Update of /cvsroot/phpbt/phpbt/admin
In directory usw-pr-cvs1:/tmp/cvs-serv8398/admin
Modified Files:
project.php
Log Message:
Fixes bug #602008 - Submitting a component or version with an error causes second submission to fail.
Index: project.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/admin/project.php,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- project.php 18 May 2002 03:00:00 -0000 1.42
+++ project.php 16 Sep 2002 19:39:34 -0000 1.43
@@ -28,39 +28,41 @@
function del_version($versionid, $projectid) {
global $db, $me;
-
+
if (!$db->getOne('select count(*) from '.TBL_BUG." where version_id = $versionid")) {
$db->query("delete from ".TBL_VERSION." where version_id = $versionid");
}
header("Location: $me?op=edit&id=$projectid&");
}
-function save_version($versionid = 0) {
- global $db, $me, $_pv, $STRING, $now, $u, $t;
+function save_version($version_id = 0) {
+ global $db, $me, $_pv, $STRING, $now, $u, $t;
$error = '';
- // Validation
- if (!$_pv['version_name'] = trim($_pv['version_name']))
- $error = $STRING['giveversion'];
- if ($error) { show_version($_pv['versionid'], $error); return; }
+ // Validation
+ if (!$_pv['version_name'] = trim($_pv['version_name']))
+ $error = $STRING['giveversion'];
+ if ($error) {
+ show_version($_pv['version_id'], $error); return;
+ }
extract($_pv);
- if (!isset($active)) $active = 0;
- if (!$versionid) {
- $db->query('insert into '.TBL_VERSION
- ." (version_id, project_id, version_name, active, created_by, created_date)
- values (".$db->nextId(TBL_VERSION).", $projectid, ".
- $db->quote(stripslashes($version_name)).", $active, $u, $now)");
- } else {
- $db->query('update '.TBL_VERSION
- ." set project_id = $projectid, version_name = ".
- $db->quote(stripslashes($version_name)).
- ", active = $active where version_id = '$versionid'");
- }
+ if (!isset($active)) $active = 0;
+ if (!$version_id) {
+ $db->query('insert into '.TBL_VERSION
+ ." (version_id, project_id, version_name, active, created_by, created_date)
+ values (".$db->nextId(TBL_VERSION).", $project_id, ".
+ $db->quote(stripslashes($version_name)).", $active, $u, $now)");
+ } else {
+ $db->query('update '.TBL_VERSION
+ ." set project_id = $project_id, version_name = ".
+ $db->quote(stripslashes($version_name)).
+ ", active = $active where version_id = '$version_id'");
+ }
if ($use_js) {
$t->display('admin/edit-submit.html');
} else {
- header("Location:$me?op=edit&id=$projectid");
+ header("Location:$me?op=edit&id=$project_id");
}
}
@@ -68,18 +70,12 @@
global $db, $t, $_pv, $STRING, $QUERY, $_gv;
foreach ($_pv as $k => $v) $$k = $v;
-
+
if ($versionid) {
$t->assign($db->getRow(sprintf($QUERY['admin-show-version'], $versionid)));
} else {
- if (!empty($_pv)) {
- $t->assign($_pv);
- } else {
- $t->assign(array(
- 'active' => 1,
- 'project_id' => $_gv['project_id']
- ));
- }
+ if (!empty($_gv['project_id'])) $t->assign('project_id', $_gv['project_id']);
+ $t->assign($_pv);
}
$t->assign('error', $error);
$t->wrap('admin/version-edit.html', ($versionid ? 'editversion' : 'addversion'));
@@ -87,32 +83,32 @@
function del_component($componentid, $projectid) {
global $db, $me;
-
+
if (!$db->getOne('select count(*) from '.TBL_BUG." where component_id = $componentid")) {
$db->query("delete from ".TBL_COMPONENT." where component_id = $componentid");
}
header("Location: $me?op=edit&id=$projectid&");
}
-function save_component($componentid = 0) {
+function save_component($component_id = 0) {
global $db, $me, $_pv, $u, $STRING, $now, $t;
-
+
$error = '';
// Validation
- if (!$_pv['component_name'] = trim($_pv['component_name']))
+ if (!$_pv['component_name'] = trim($_pv['component_name']))
$error = $STRING['givename'];
elseif (!$_pv['component_desc'] = trim($_pv['component_desc']))
$error = $STRING['givedesc'];
- if ($error) { show_component($_pv['componentid'], $error); return; }
-
+ if ($error) { show_component($_pv['component_id'], $error); return; }
+
foreach ($_pv as $k => $v) $$k = $v;
if (!$owner) $owner = 0;
if (!$active) $active = 0;
- if (!$componentid) {
+ if (!$component_id) {
$db->query('insert into '.TBL_COMPONENT
- ." (component_id, project_id, component_name, component_desc, owner,
- active, created_by, created_date, last_modified_by, last_modified_date)
- values (".$db->nextId(TBL_COMPONENT).", $projectid, ".
+ ." (component_id, project_id, component_name, component_desc, owner,
+ active, created_by, created_date, last_modified_by, last_modified_date)
+ values (".$db->nextId(TBL_COMPONENT).", $project_id, ".
$db->quote(stripslashes($component_name)).", ".
$db->quote(stripslashes($component_desc)).
", $owner, $active, $u, $now, $u, $now)");
@@ -120,30 +116,24 @@
$db->query('update '.TBL_COMPONENT
." set component_name = ".$db->quote(stripslashes($component_name)).
', component_desc = '.$db->quote(stripslashes($component_desc)).
- ", owner = $owner, active = $active, last_modified_by = $u, ".
- "last_modified_date = $now where component_id = $componentid");
+ ", owner = $owner, active = $active, last_modified_by = $u, ".
+ "last_modified_date = $now where component_id = $component_id");
}
if ($use_js) {
$t->display('admin/edit-submit.html');
} else {
- header("Location: $me?op=edit&id=$projectid");
+ header("Location: $me?op=edit&id=$project_id");
}
-}
+}
function show_component($componentid = 0, $error = '') {
global $db, $t, $_pv, $STRING, $QUERY, $_gv;
-
+
if ($componentid) {
$t->assign($db->getRow(sprintf($QUERY['admin-show-component'], $componentid)));
} else {
- if (!empty($_pv)) {
- $t->assign($_pv);
- } else {
- $t->assign(array(
- 'active' => 1,
- 'project_id' => $_gv['project_id']
- ));
- }
+ if (!empty($_gv['project_id'])) $t->assign('project_id', $_gv['project_id']);
+ $t->assign($_pv);
}
$t->assign('error', $error);
$t->wrap('admin/component-edit.html', ($componentid ? 'editcomponent' : 'addcomponent'));
@@ -155,18 +145,18 @@
$error = '';
// Validation
if (!$_pv['project_name'] = htmlspecialchars(trim($_pv['project_name']))) {
- $error = $STRING['givename'];
+ $error = $STRING['givename'];
} elseif (!$_pv['project_desc'] = htmlspecialchars(trim($_pv['project_desc']))) {
- $error = $STRING['givedesc'];
- } elseif (isset($_pv['usergroup']) and is_array($_pv['usergroup']) and
+ $error = $STRING['givedesc'];
+ } elseif (isset($_pv['usergroup']) and is_array($_pv['usergroup']) and
in_array('all', $_pv['usergroup']) and count($_pv['usergroup']) > 1) {
$error = $STRING['project_only_all_groups'];
}
if ($error) { show_project($projectid, $error); return; }
-
+
if (!$projectid) {
if (!$_pv['version_name'] = htmlspecialchars(trim($_pv['version_name']))) {
- $error['version_error'] = $STRING['giveversion'];
+ $error['version_error'] = $STRING['giveversion'];
} elseif (!$_pv['component_name'] = trim($_pv['component_name'])) {
$error['component_error'] = $STRING['givename'];
} elseif (!$_pv['component_desc'] = trim($_pv['component_desc'])) {
@@ -178,29 +168,29 @@
foreach ($_pv as $k => $v) $$k = $v;
if (!isset($active)) $active = 0;
if (!$projectid) {
- $projectid = $db->nextId(TBL_PROJECT);
- $db->query('insert into '.TBL_PROJECT
+ $projectid = $db->nextId(TBL_PROJECT);
+ $db->query('insert into '.TBL_PROJECT
." (project_id, project_name, project_desc, active, created_by, created_date)
- values ($projectid , ".$db->quote(stripslashes($project_name)).", ".
+ values ($projectid , ".$db->quote(stripslashes($project_name)).", ".
$db->quote(stripslashes($project_desc)).", $active, $u, $now)");
- $db->query('insert into '.TBL_VERSION
- ." (version_id, project_id, version_name, active, created_by, created_date)
+ $db->query('insert into '.TBL_VERSION
+ ." (version_id, project_id, version_name, active, created_by, created_date)
values (".$db->nextId(TBL_VERSION).", $projectid, ".
$db->quote(stripslashes($version_name)).", 1, $u, $now)");
$db->query('insert into '.TBL_COMPONENT
- ." (component_id, project_id, component_name, component_desc, owner,
- active, created_by, created_date, last_modified_by, last_modified_date)
+ ." (component_id, project_id, component_name, component_desc, owner,
+ active, created_by, created_date, last_modified_by, last_modified_date)
values (".$db->nextId(TBL_COMPONENT).", $projectid, ".
$db->quote(stripslashes($component_name)).", ".
$db->quote(stripslashes($component_desc)).
", $owner, 1, $u, $now, $u, $now)");
} else {
- $db->query('update '.TBL_PROJECT
+ $db->query('update '.TBL_PROJECT
." set project_name = ".$db->quote(stripslashes($project_name)).
", project_desc = ".$db->quote(stripslashes($project_desc)).
", active = $active where project_id = $projectid");
}
-
+
// Handle project -> group relationship
$old_usergroup = $db->getCol('select group_id from '.TBL_PROJECT_GROUP.
" where project_id = $projectid");
@@ -213,8 +203,8 @@
} else {
// Compute differences between old and new
$remove_from = array_diff($old_usergroup, $usergroup);
- $add_to = array_diff($usergroup, $old_usergroup);
-
+ $add_to = array_diff($usergroup, $old_usergroup);
+
if (count($remove_from)) {
foreach ($remove_from as $group) {
$db->query('delete from '.TBL_PROJECT_GROUP." where project_id = $projectid
@@ -222,18 +212,18 @@
}
}
if (count($add_to)) {
- foreach ($add_to as $group) {
- $db->query("insert into ".TBL_PROJECT_GROUP
- ." (project_id, group_id, created_by, created_date)
- values ('$projectid' ,'$group', $u, $now)");
- }
- }
+ foreach ($add_to as $group) {
+ $db->query("insert into ".TBL_PROJECT_GROUP
+ ." (project_id, group_id, created_by, created_date)
+ values ('$projectid' ,'$group', $u, $now)");
+ }
+ }
}
} elseif (count($old_usergroup)) {
// User selected nothing, so consider it 'All groups'
$db->query('delete from '.TBL_PROJECT_GROUP." where project_id = $projectid");
}
-
+
header("Location: $me?op=edit&id=$projectid");
}
@@ -246,12 +236,12 @@
TBL_PROJECT_GROUP." where project_id = $projectid"));
if ($projectid) {
- $t->assign($db->getRow('select * from '.TBL_PROJECT
+ $t->assign($db->getRow('select * from '.TBL_PROJECT
." where project_id = $projectid"));
$t->assign(array(
- 'components' => $db->getAll(sprintf($QUERY['admin-list-components'],
+ 'components' => $db->getAll(sprintf($QUERY['admin-list-components'],
$projectid)),
- 'versions' => $db->getAll(sprintf($QUERY['admin-list-versions'],
+ 'versions' => $db->getAll(sprintf($QUERY['admin-list-versions'],
$projectid))
));
@@ -264,7 +254,7 @@
}
$t->wrap('admin/project-add.html', 'addproject');
}
-
+
}
function list_projects() {
@@ -273,7 +263,7 @@
if (!isset($_gv['order'])) { $order = 'created_date'; $sort = 'asc'; }
else { $order = $_gv['order']; $sort = $_gv['sort']; }
$page = isset($_gv['page']) ? $_gv['page'] : 1;
-
+
$nr = $db->getOne("select count(*) from ".TBL_PROJECT);
list($selrange, $llimit) = multipages($nr, $page, "order=$order&sort=$sort");
@@ -282,16 +272,16 @@
"select * from ".TBL_PROJECT." order by $order $sort", $llimit, $selrange)));
$headers = array(
- 'projectid' => 'project_id',
- 'name' => 'project_name',
- 'description' => 'project_desc',
- 'active' => 'active',
- 'createdby' => 'created_by',
- 'createddate' => 'created_date'
- );
+ 'projectid' => 'project_id',
+ 'name' => 'project_name',
+ 'description' => 'project_desc',
+ 'active' => 'active',
+ 'createdby' => 'created_by',
+ 'createddate' => 'created_date'
+ );
sorting_headers($me, $headers, $order, $sort);
-
+
$t->wrap('admin/projectlist.html', 'project');
}
@@ -299,18 +289,18 @@
if (isset($_gv['op'])) {
switch($_gv['op']) {
- case 'add' : show_project(); break;
- case 'edit' : show_project($_gv['id']); break;
- case 'edit_component' : show_component($_gv['id']); break;
- case 'edit_version' : show_version($_gv['id']); break;
- case 'del_component' : del_component($_gv['id'], $_gv['project_id']); break;
- case 'del_version' : del_version($_gv['id'], $_gv['project_id']); break;
+ case 'add' : show_project(); break;
+ case 'edit' : show_project($_gv['id']); break;
+ case 'edit_component' : show_component($_gv['id']); break;
+ case 'edit_version' : show_version($_gv['id']); break;
+ case 'del_component' : del_component($_gv['id'], $_gv['project_id']); break;
+ case 'del_version' : del_version($_gv['id'], $_gv['project_id']); break;
}
} elseif (isset($_pv['do'])) {
switch($_pv['do']) {
- case 'project' : save_project($_pv['id']); break;
- case 'version' : save_version($_pv['versionid']); break;
- case 'component' : save_component($_pv['componentid']); break;
+ case 'project' : save_project($_pv['id']); break;
+ case 'version' : save_version($_pv['version_id']); break;
+ case 'component' : save_component($_pv['component_id']); break;
}
} else list_projects();
|