From ea7f1631b87a6ade7401e933e764f4e5b4be6e3d Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Mon, 17 Jul 2006 20:08:15 +0000 Subject: [PATCH] r896: Adding and implementing the StatusAPI --- admin/status.php | 42 +++++++++++++++++-------- includes/api_status.php | 68 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 includes/api_status.php diff --git a/admin/status.php b/admin/status.php index 582743e..1350859 100755 --- a/admin/status.php +++ b/admin/status.php @@ -21,6 +21,7 @@ require_once('./global.php'); require_once('./includes/functions_datastore.php'); +require_once('./includes/api_status.php'); if (!can_perform('canadminfields')) { @@ -38,7 +39,11 @@ if (empty($_REQUEST['do'])) if ($_REQUEST['do'] == 'kill') { - $db->query("DELETE FROM " . TABLE_PREFIX . "status WHERE statusid = " . $bugsys->input_clean('statusid', TYPE_UINT)); + $status = new StatusAPI($bugsys); + $status->set('statusid', $bugsys->in['statusid']); + $status->set_condition(); + $status->delete(); + build_statuses(); $admin->redirect('status.php?do=modify'); } @@ -54,7 +59,12 @@ if ($_REQUEST['do'] == 'delete') if ($_POST['do'] == 'insert') { - $db->query("INSERT INTO " . TABLE_PREFIX . "status (status, displayorder, color) VALUES ('" . $bugsys->in['status'] . "', " . $bugsys->input_clean('displayorder', TYPE_UINT) . ", '" . $bugsys->in['color'] . "')"); + $status = new StatusAPI($bugsys); + $status->set('status', $bugsys->in['status']); + $status->set('color', $bugsys->in['color']); + $status->set('displayorder', $bugsys->in['displayorder']); + $status->insert(); + build_statuses(); $admin->redirect('status.php?do=modify'); } @@ -82,7 +92,14 @@ if ($_REQUEST['do'] == 'add') if ($_POST['do'] == 'update') { - $db->query("UPDATE " . TABLE_PREFIX . "status SET status = '" . $bugsys->in['status'] . "', displayorder = " . $bugsys->input_clean('displayorder']) . ", color = '" . $bugsys->in['color'] . "' WHERE statusid = " . intval1($bugsys->in['statusid', TYPE_UINT)); + $status = new StatusAPI($bugsys); + $status->set('statusid', $bugsys->in['statusid']); + $status->set_condition(); + $status->set('status', $bugsys->in['status']); + $status->set('color', $bugsys->in['color']); + $status->set('displayorder', $bugsys->in['displayorder']); + $status->update(); + build_statuses(); $admin->redirect('status.php?do=modify'); } @@ -91,21 +108,20 @@ if ($_POST['do'] == 'update') if ($_REQUEST['do'] == 'edit') { - $status = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "status WHERE statusid = " . $bugsys->input_clean('statusid', TYPE_UINT)); - if (!is_array($status)) - { - $admin->error($lang->getlex('error_invalid_id')); - } + $status = new StatusAPI($bugsys); + $status->set('statusid', $bugsys->in['statusid']); + $status->set_condition(); + $status->fetch(); $admin->page_start($lang->string('Edit Status')); $admin->form_start('status.php', 'update'); - $admin->form_hidden_field('statusid', $status['statusid']); + $admin->form_hidden_field('statusid', $status->objdata['statusid']); $admin->table_start(); - $admin->table_head(sprintf($lang->string('Edit Status - %1$s (id: %2$s)'), $status['status'], $status['statusid']), 2, 'standard_bug_fields'); - $admin->row_input($lang->string('Status Title
The title of this status flag (eg: `Confirmed` or `Closed (Fixed)`)
'), 'status', $status['status']); - $admin->row_input($lang->string('Display Order
The order in which the statuses ar displayed.
'), 'displayorder', $status['displayorder']); - $admin->row_input($lang->string('Status Colour
The colour of the status. This will be displayed on bug listings page to make viewing easier. Note: you must enter the # sign if you are using HEX values.
'), 'color', $status['color']); + $admin->table_head(sprintf($lang->string('Edit Status - %1$s (id: %2$s)'), $status->objdata['status'], $status->objdata['statusid']), 2, 'standard_bug_fields'); + $admin->row_input($lang->string('Status Title
The title of this status flag (eg: `Confirmed` or `Closed (Fixed)`)
'), 'status', $status->objdata['status']); + $admin->row_input($lang->string('Display Order
The order in which the statuses ar displayed.
'), 'displayorder', $status->objdata['displayorder']); + $admin->row_input($lang->string('Status Colour
The colour of the status. This will be displayed on bug listings page to make viewing easier. Note: you must enter the # sign if you are using HEX values.
'), 'color', $status->objdata['color']); $admin->row_submit(); $admin->table_end(); $admin->form_end(); diff --git a/includes/api_status.php b/includes/api_status.php new file mode 100644 index 0000000..6858c00 --- /dev/null +++ b/includes/api_status.php @@ -0,0 +1,68 @@ +load('api', null); + +/** +* API: Status +* +* @author Iris Studios, Inc. +* @copyright Copyright ©2002 - [#]year[#], Iris Studios, Inc. +* @version $Revision$ +* @package Bugdar +* +*/ +class StatusAPI extends API +{ + /** + * Fields + * @var array + * @access private + */ + var $fields = array( + 'statusid' => array(TYPE_UINT, REQ_AUTO, 'verify_nozero'), + 'status' => array(TYPE_STR, REQ_YES, 'verify_noempty'), + 'color' => array(TYPE_STR, REQ_NO), + 'displayorder' => array(TYPE_INT, REQ_NO) + ); + + /** + * Database table + * @var string + * @access private + */ + var $table = 'status'; + + /** + * Table prefix + * @var string + * @access private + */ + var $prefix = TABLE_PREFIX; +} + +/*=====================================================================*\ +|| ################################################################### +|| # $HeadURL$ +|| # $Id$ +|| ################################################################### +\*=====================================================================*/ +?> \ No newline at end of file -- 2.22.5