const TYPE_TEXT = 1; // A text field.
const TYPE_DROPDOWN = 2; // A dropdown field with pre-defined values.
- var $fields = array(); // Array of custom fields for team.
+ var $fields = array(); // Array of custom fields for group.
var $options = array(); // Array of options for a dropdown custom field.
// Constructor.
// If we have a dropdown obtain options for it.
if ((count($this->fields) > 0) && ($this->fields[0]['type'] == CustomFields::TYPE_DROPDOWN)) {
- $sql = "select id, value from tt_custom_field_options where field_id = ".$this->fields[0]['id']." order by value";
+ $sql = "select id, value from tt_custom_field_options where field_id = ".$this->fields[0]['id']." and status = 1 order by value";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
while ($val = $res->fetchRow()) {
}
function insert($log_id, $field_id, $option_id, $value) {
-
+ global $user;
$mdb2 = getConnection();
- $sql = "insert into tt_custom_field_log (log_id, field_id, option_id, value) values($log_id, $field_id, ".$mdb2->quote($option_id).", ".$mdb2->quote($value).")";
+
+ $group_id = $user->getActiveGroup();
+ $org_id = $user->org_id;
+
+ $sql = "insert into tt_custom_field_log (group_id, org_id, log_id, field_id, option_id, value)".
+ " values($group_id, $org_id, $log_id, $field_id, ".$mdb2->quote($option_id).", ".$mdb2->quote($value).")";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
}
// insertOption adds a new option to a custom field.
static function insertOption($field_id, $option_name) {
-
+ global $user;
$mdb2 = getConnection();
+ $group_id = $user->getActiveGroup();
+ $org_id = $user->org_id;
+
// Check if the option exists.
$id = 0;
$sql = "select id from tt_custom_field_options where field_id = $field_id and value = ".$mdb2->quote($option_name);
// Insert option.
if (!$id) {
- $sql = "insert into tt_custom_field_options (field_id, value) values($field_id, ".$mdb2->quote($option_name).")";
+ $sql = "insert into tt_custom_field_options (group_id, org_id, field_id, value)".
+ " values($group_id, $org_id, $field_id, ".$mdb2->quote($option_name).")";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error'))
return false;
return false;
// Delete the option.
- $sql = "delete from tt_custom_field_options where id = $id";
+ $sql = "update tt_custom_field_options set status = NULL where id = $id";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
}
return false;
// Get options.
- $sql = "select id, value from tt_custom_field_options where field_id = $field_id order by value";
+ $sql = "select id, value from tt_custom_field_options where field_id = $field_id and status = 1 order by value";
$res = $mdb2->query($sql);
if (!is_a($res, 'PEAR_Error')) {
while ($val = $res->fetchRow()) {
return false;
}
- // getFields returns an array of custom fields for team.
+ // getFields returns an array of custom fields for group.
static function getFields() {
global $user;
$mdb2 = getConnection();
return false;
}
- // The insertField inserts a custom field for team.
+ // The insertField inserts a custom field for group.
static function insertField($field_name, $field_type, $required) {
global $user;
$mdb2 = getConnection();
- $sql = "insert into tt_custom_fields (group_id, type, label, required, status) values($user->group_id, $field_type, ".$mdb2->quote($field_name).", $required, 1)";
+ $group_id = $user->getActiveGroup();
+ $org_id = $user->org_id;
+ $sql = "insert into tt_custom_fields (group_id, org_id, type, label, required, status)".
+ " values($group_id, $org_id, $field_type, ".$mdb2->quote($field_name).", $required, 1)";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
}
- // The updateField updates custom field for team.
+ // The updateField updates custom field for group.
static function updateField($id, $name, $type, $required) {
global $user;
$mdb2 = getConnection();
return (!is_a($affected, 'PEAR_Error'));
}
- // The deleteField deletes a custom field, its options and log entries for team.
+ // The deleteField deletes a custom field, its options and log entries for group.
static function deleteField($field_id) {
- // Our overall intention is to keep the code simple and manageable.
- // If a user wishes to delete a field, we will delete all its options and log entries.
- // Otherwise we have to do conditional queries depending on field status (this complicates things).
-
global $user;
$mdb2 = getConnection();
if (is_a($affected, 'PEAR_Error'))
return false;
- // Delete field options.
- $sql = "delete from tt_custom_field_options where field_id = $field_id";
+ // Mark field options as deleted.
+ $sql = "update tt_custom_field_options set status = NULL where field_id = $field_id";
$affected = $mdb2->exec($sql);
if (is_a($affected, 'PEAR_Error'))
return false;
- // Delete the field.
- $sql = "delete from tt_custom_fields where id = $field_id and group_id = $user->group_id";
+ // Mark custom field as deleted.
+ $sql = "update tt_custom_fields set status = NULL where id = $field_id and group_id = $user->group_id";
$affected = $mdb2->exec($sql);
return (!is_a($affected, 'PEAR_Error'));
}