This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, master has been updated
via 0bd0ec1194263c87b03f76bd6dda244b2d2559c4 (commit)
via 1491d0c053cdda2a00378d26810d03eacffe629a (commit)
from 77678810b6f354ff145bb151294d967f34885838 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=0bd0ec1194263c87b03f76bd6dda244b2d2559c4
commit 0bd0ec1194263c87b03f76bd6dda244b2d2559c4
Author: Stéphane-Eymeric Bredthauer <[email protected]>
Date: Mon Oct 24 20:26:14 2016 +0200
Tracker: Extra fields default value
diff --git a/src/common/tracker/ArtifactExtraField.class.php
b/src/common/tracker/ArtifactExtraField.class.php
index c7215fa..c875c11 100644
--- a/src/common/tracker/ArtifactExtraField.class.php
+++ b/src/common/tracker/ArtifactExtraField.class.php
@@ -43,6 +43,12 @@ define('ARTIFACT_EXTRAFIELDTYPE_DATETIME',12);
/* reserved */
define('ARTIFACT_EXTRAFIELDTYPE_USER',14);
+define ("ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE", serialize (array
(ARTIFACT_EXTRAFIELDTYPE_SELECT, ARTIFACT_EXTRAFIELDTYPE_RADIO,
ARTIFACT_EXTRAFIELDTYPE_STATUS)));
+define ("ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE", serialize (array
(ARTIFACT_EXTRAFIELDTYPE_CHECKBOX, ARTIFACT_EXTRAFIELDTYPE_MULTISELECT)));
+define ("ARTIFACT_EXTRAFIELDTYPE_CHOICETYPE", serialize
(array_merge(unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE),
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE))));
+define ("ARTIFACT_EXTRAFIELDTYPE_SPECALCHOICETYPE", serialize(array(
ARTIFACT_EXTRAFIELDTYPE_USER )));
+define ("ARTIFACT_EXTRAFIELDTYPE_VALUETYPE", serialize (array
(ARTIFACT_EXTRAFIELDTYPE_TEXT,ARTIFACT_EXTRAFIELDTYPE_TEXTAREA,ARTIFACT_EXTRAFIELDTYPE_RELATION,ARTIFACT_EXTRAFIELDTYPE_INTEGER,ARTIFACT_EXTRAFIELDTYPE_FORMULA,ARTIFACT_EXTRAFIELDTYPE_DATETIME)));
+
class ArtifactExtraField extends FFError {
/**
@@ -476,6 +482,158 @@ class ArtifactExtraField extends FFError {
}
/**
+ * setDefaultValues - set default value(s) for this field.
+ *
+ * @param string|integer|array $default default value,
default id value, or array of default values.
+ * @return boolean
+ */
+ function setDefaultValues($default) {
+ $type = $this->getType();
+ $return = true;
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE))) {
+ if (is_array($default)) {
+ $efValues = $this->getAvailableValues();
+ foreach ($efValues as $efValue) {
+ if
(isset($default[$efValue['element_id']]) && $default[$efValue['element_id']] &&
$efValue['is_default']==0) {
+ $efe = new
ArtifactExtraFieldElement($this, $efValue['element_id']);
+ if (!$efe || !is_object($efe)) {
+ if (is_object($efe)) {
+
$this->setError(_('Unable to create extra field element').'
'.$efValue['element_name'].' '._(':').$efe->getErrorMessage());
+ } else {
+
$this->setError(_('Unable to create extra field element').'
'.$efValue['element_name']);
+ }
+ $return = false;
+ } elseif
(!$efe->update($efValue['element_name'], $efValue['status_id'],
$efValue['auto_assign_to'], true)) {
+
$this->setError(_('Unable to update extra field element').'
'.$efValue['element_name'].' '._(':').$efe->getErrorMessage());
+ $return = false;
+ }
+ } elseif
(((isset($default[$efValue['element_id']]) &&
!$default[$efValue['element_id']]) || !isset($default[$efValue['element_id']]))
&& $efValue['is_default']==1) {
+ $efe = new
ArtifactExtraFieldElement($this, $efValue['element_id']);
+ if (!$efe || !is_object($efe)) {
+ if (is_object($efe)) {
+
$this->setError(_('Unable to create extra field element').'
'.$efValue['element_name'].' '._(':').$efe->getErrorMessage());
+ } else {
+
$this->setError(_('Unable to create extra field element'.'
'.$efValue['element_name']));
+ }
+ $return = false;
+ } elseif
(!$efe->update($efValue['element_name'], $efValue['status_id'],
$efValue['auto_assign_to'], false)) {
+
$this->setError(_('Unable to update extra field element').'
'.$efValue['element_name'].' '._(':').$efe->getErrorMessage());
+ $return = false;
+ }
+ }
+ }
+ } elseif (is_integer($default)) {
+ $efe = new ArtifactExtraFieldElement($this,
$default);
+ if (!$efe || !is_object($efe)) {
+ if (is_object($efe)) {
+ $this->setError(_('Unable to
create extra field element').' (id='.$default.')
'._(':').$efe->getErrorMessage());
+ } else {
+ $this->setError(_('Unable to
create extra field element'.' (id='.$default.')'));
+ }
+ $return = false;
+ } elseif (!$efe->update($efe->getName(),
$efe->getStatusID(), $efe->getAutoAssignto(), true)) {
+ $this->setError(_('Unable to update
extra field element').' '.$efe->getName().' '._(':').$efe->getErrorMessage());
+ $return = false;
+ }
+ } else {
+ $this->setError(_('Unable to set default
value')._(':').$default);
+ $return = false;
+ }
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ if (is_integer($default)) {
+ $efe = new ArtifactExtraFieldElement($this,
$default);
+ if (!$efe || !is_object($efe)) {
+ if (is_object($efe)) {
+ $this->setError(_('Unable to
create extra field element').' (id='.$default.')
'._(':').$efe->getErrorMessage());
+ } else {
+ $this->setError(_('Unable to
create extra field element'.' (id='.$default.')'));
+ }
+ $return = false;
+ } elseif (!$efe->update($efe->getName(),
$efe->getStatusID(), $efe->getAutoAssignto(), true)) {
+ $this->setError(_('Unable to update
extra field element').' '.$efe->getName().' '._(':').$efe->getErrorMessage());
+ $return = false;
+ }
+ } else {
+ $this->setError(_('Unable to set default
value')._(':').$default);
+ $return = false;
+ }
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_VALUETYPE)) || $type ==
ARTIFACT_EXTRAFIELDTYPE_USER) {
+ $efID = $this->getID();
+ $res = db_query_params ('SELECT default_value FROM
artifact_extra_field_default WHERE extra_field_id=$1',
+ array ($efID)) ;
+ if (db_numrows($res) > 0) {
+ $res = db_query_params ('UPDATE
artifact_extra_field_default SET default_value = $1 WHERE extra_field_id=$2',
+ array ($default, $efID));
+ } else {
+ $res = db_query_params ('INSERT INTO
artifact_extra_field_default (extra_field_id, default_value) VALUES ($1,$2)',
+ array ($efID, $default)) ;
+ }
+ if (!$res) {
+ $this->setError(db_error());
+ $return = false;
+ }
+ }
+ return $return;
+ }
+
+ /**
+ * resetDefaultValues - reset default value(s) for this field.
+ *
+ * @return boolean
+ */
+ function resetDefaultValues() {
+ $type = $this->getType();
+ $return = true;
+ if (in_array($type, ARTIFACT_EXTRAFIELDTYPE_SPECALCHOICETYPE)) {
+ //drop fake artifact_extra_field_elements set with
is_default = 1
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE)) || in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $result = db_query_params ('DELETE FROM
artifact_extra_field_default WHERE extra_field_id = $1',
+ array ($this->getID()));
+ if (!$result) {
+ $this->setError(db_error());
+ $return = false;
+ }
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_VALUETYPE))) {
+ //drop fake artifact_extra_field_elements set with
is_default = 1
+ }
+ return $return;
+ }
+
+ /**
+ * getDefaultValues - Get default value, id of default value or list of
id of default values for this extra field
+ *
+ * @return string|integer|array
+ */
+ function getDefaultValues() {
+ $res = db_query_params ('SELECT default_value FROM
artifact_extra_field_default WHERE extra_field_id=$1',
+ array ($this->getID()));
+ $type = $this->getType();
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_VALUETYPE))) {
+ $row = db_fetch_array($res);
+ $return = $row['default_value'];
+ if ($type == ARTIFACT_EXTRAFIELDTYPE_INTEGER &&
is_null($return)) {
+ $return = 0;
+ }
+ } elseif ($type == ARTIFACT_EXTRAFIELDTYPE_USER) {
+ $row = db_fetch_array($res);
+ if (!$row) {
+ $return = 100;
+ } else {
+ $return = (integer)$row['default_value'];
+ }
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $row = db_fetch_array($res);
+ $return = (integer)$row['default_value'];
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE))) {
+ $return = array();
+ while ($row = db_fetch_array($res)) {
+ $return[] = $row['default_value'];
+ }
+ }
+ return $return;
+ }
+
+ /**
* getAvailableTypes - the types of text fields and their names
available.
*
* @return array types.
@@ -510,11 +668,46 @@ class ArtifactExtraField extends FFError {
* @return array
*/
function getAvailableValues() {
- $res = db_query_params ('SELECT * FROM
artifact_extra_field_elements WHERE extra_field_id=$1',
- array ($this->getID()));
- $return = array();
- while ($row = db_fetch_array($res)) {
- $return[] = $row;
+ $type = $this->getType();
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_VALUETYPE))) {
+ $return = array();;
+ } else {
+ $res = db_query_params ('SELECT *, 0 AS is_default
+ FROM
artifact_extra_field_elements
+ WHERE extra_field_id=$1
+ ORDER BY element_pos ASC,
element_id ASC',
+ array ($this->getID()));
+ $default = $this->getDefaultValues();
+ $return = array();
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ while ($row = db_fetch_array($res)) {
+ if ($row['element_id']==$default) {
+ $row['is_default']=1;
+ }
+ $return[] = $row;
+ }
+ } elseif (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE))) {
+ while ($row = db_fetch_array($res)) {
+ if
(in_array($row['element_id'],$default)) {
+ $row['is_default']=1;
+ }
+ $return[] = $row;
+ }
+ } elseif ($type == ARTIFACT_EXTRAFIELDTYPE_USER) {
+ while ($row = db_fetch_array($res)) {
+ if ($row['element_id']==$default) {
+ $row['is_default']=1;
+ }
+ $return[] = $row;
+ }
+ } else {
+ while ($row = db_fetch_array($res)) {
+ if
(in_array($row['element_id'],$default)) {
+ $row['is_default']=1;
+ }
+ $return[] = $row;
+ }
+ }
}
return $return;
}
diff --git a/src/common/tracker/ArtifactExtraFieldElement.class.php
b/src/common/tracker/ArtifactExtraFieldElement.class.php
index 616d2a6..1a18ba2 100644
--- a/src/common/tracker/ArtifactExtraFieldElement.class.php
+++ b/src/common/tracker/ArtifactExtraFieldElement.class.php
@@ -101,7 +101,7 @@ class ArtifactExtraFieldElement extends FFError {
* @param int $status_id Id the box that contains the
choice (optional).
* @return bool true on success / false on failure.
*/
- function create($name,$status_id=0,$auto_assign_to=100) {
+ function create($name,$status_id=0,$auto_assign_to=100,$is_default=0) {
//
// data validation
//
@@ -137,6 +137,26 @@ class ArtifactExtraFieldElement extends FFError {
if ($result && db_affected_rows($result) > 0) {
$this->clearError();
$id=db_insertid($result,'artifact_extra_field_elements','element_id');
+
+ if ($is_default) {
+ $type = $this->ArtifactExtraField->getType();
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $result = db_query_params ('DELETE FROM
artifact_extra_field_default WHERE extra_field_id = $1',
+ array
($this->ArtifactExtraField->getID()));
+ if (!$result) {
+ $this->setError(db_error());
+ db_rollback();
+ return false;
+ }
+ }
+ $result = db_query_params ('INSERT INTO
artifact_extra_field_default (extra_field_id, default_value) VALUES ($1,$2)',
+ array
($this->ArtifactExtraField->getID(),$id));
+ if (!$result) {
+ $this->setError(db_error());
+ db_rollback();
+ return false;
+ }
+ }
//
// Now set up our internal data structures
//
@@ -167,7 +187,7 @@ class ArtifactExtraFieldElement extends FFError {
* @return boolean success.
*/
function fetchData($id) {
- $res = db_query_params ('SELECT * FROM
artifact_extra_field_elements WHERE element_id=$1',
+ $res = db_query_params ('SELECT *, 0 AS is_default FROM
artifact_extra_field_elements WHERE element_id=$1',
array ($id)) ;
if (!$res || db_numrows($res) < 1) {
$this->setError('ArtifactExtraField: Invalid
ArtifactExtraFieldElement ID');
@@ -175,6 +195,16 @@ class ArtifactExtraFieldElement extends FFError {
}
$this->data_array = db_fetch_array($res);
db_free_result($res);
+ $default = db_query_params ('SELECT 1 FROM
artifact_extra_field_default WHERE default_value=$1',
+ array ($id)) ;
+ if (!$default) {
+ $this->setError('ArtifactExtraField: Invalid
ArtifactExtraFieldElement ID');
+ return false;
+ }
+ if (db_numrows($default) >= 1) {
+ $this->data_array['is_default'] = true;
+ }
+ db_free_result($default);
return true;
}
@@ -250,6 +280,15 @@ class ArtifactExtraFieldElement extends FFError {
}
/**
+ * isDefault - whether this field element is default value or not.
+ *
+ * @return boolean
+ */
+ function isDefault() {
+ return $this->data_array['is_default'];
+ }
+
+ /**
* getChildrenElements - return the array of the elements of children
fields who depend on current element
*
* @return array of parent elements
@@ -347,9 +386,10 @@ class ArtifactExtraFieldElement extends FFError {
*
* @param string $name Name of the choice in a box.
* @param int $status_id Optional for status box - maps
to either open/closed.
+ * @param boolean $is_default Set this element as default
value
* @return bool success.
*/
- function update($name, $status_id=0, $auto_assign_to=100) {
+ function update($name, $status_id=0, $auto_assign_to=100,
$is_default=false) {
if (!forge_check_perm ('tracker_admin',
$this->ArtifactExtraField->ArtifactType->Group->getID())) {
$this->setPermissionDeniedError();
return false;
@@ -381,12 +421,43 @@ class ArtifactExtraFieldElement extends FFError {
$status_id,
$auto_assign_to,
$this->getID())) ;
- if ($result && db_affected_rows($result) > 0) {
- return true;
- } else {
+ if (!$result || db_affected_rows($result) == 0) {
$this->setError(db_error());
return false;
}
+
+ $default = db_query_params ('SELECT 1 FROM
artifact_extra_field_default WHERE default_value=$1',
+ array ($this->getID())) ;
+ if (!$default) {
+ $this->setError('ArtifactExtraField: Invalid
ArtifactExtraFieldElement ID');
+ return false;
+ }
+ if (db_numrows($default) >= 1 && !$is_default) {
+ $result = db_query_params ('DELETE FROM
artifact_extra_field_default WHERE extra_field_id = $1 AND default_value = $2',
+ array
($this->ArtifactExtraField->getID(), $this->getID()));
+ if (!$result) {
+ $this->setError(db_error());
+ return false;
+ }
+ }
+ if (db_numrows($default) == 0 && $is_default) {
+ if (in_array($this->ArtifactExtraField->getType(),
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $result = db_query_params ('DELETE FROM
artifact_extra_field_default WHERE extra_field_id = $1',
+ array
($this->ArtifactExtraField->getID()));
+ if (!$result) {
+ $this->setError(db_error());
+ $return = false;
+ }
+ }
+ $result = db_query_params ('INSERT INTO
artifact_extra_field_default (extra_field_id, default_value) VALUES ($1,$2)',
+ array
($this->ArtifactExtraField->getID(), $this->getID()));
+ if (!$result) {
+ $this->setError(db_error());
+ return false;
+ }
+ }
+ db_free_result($default);
+ return true;
}
/**
diff --git a/src/common/tracker/ArtifactType.class.php
b/src/common/tracker/ArtifactType.class.php
index b784921..7cb2198 100644
--- a/src/common/tracker/ArtifactType.class.php
+++ b/src/common/tracker/ArtifactType.class.php
@@ -611,11 +611,15 @@ class ArtifactType extends FFError {
*/
function getExtraFields($types = array(), $get_is_disabled = false,
$get_is_hidden_on_submit = true) {
$where ='';
+ $use_cache = true;
if (!$get_is_disabled) {
$where = ' AND is_disabled = 0';
+ } else {
+ $use_cache = false;
}
if (!$get_is_hidden_on_submit) {
$where = ' AND is_hidden_on_submit = 0';
+ $use_cache = false;
}
if (count($types)) {
$filter = implode(',', $types);
@@ -623,8 +627,8 @@ class ArtifactType extends FFError {
} else {
$filter = '';
}
- if (!isset($this->extra_fields[$filter])) {
- $this->extra_fields[$filter] = array();
+ if (!isset($this->extra_fields[$filter]) || !$use_cache) {
+ $extra_fields = array();
if (count($types)) {
$res = db_query_params('SELECT *
FROM artifact_extra_field_list
@@ -643,11 +647,41 @@ class ArtifactType extends FFError {
array($this->getID()));
}
while ($arr = db_fetch_array($res)) {
-
$this->extra_fields[$filter][$arr['extra_field_id']] = $arr;
+ $extra_fields[$arr['extra_field_id']] = $arr;
}
}
+ if (!isset($this->extra_fields[$filter])) {
+ $this->extra_fields[$filter] = $extra_fields;
+ }
+ if ($use_cache) {
+ $extra_fields = $this->extra_fields[$filter];
+ }
+ return $extra_fields;
+ }
- return $this->extra_fields[$filter];
+ /**
+ * getExtraFieldsDefaultValue - Get array of extra fields default value
+ *
+ * @param array $types
+ * @param bool $get_is_disabled
+ * @param bool $get_is_hidden_on_submit
+ * @return array arrays of data;
+ */
+ function getExtraFieldsDefaultValue($types = array(), $get_is_disabled
= false, $get_is_hidden_on_submit = true) {
+ $extra_fields = $this->getExtraFields($types, $get_is_disabled,
$get_is_hidden_on_submit);
+ $efDefaultValue = array();
+ foreach ($extra_fields as $efID=>$efArr) {
+ $ef = new ArtifactExtraField($this, $efID);
+ $defaultValue = $ef->getDefaultValues();
+ if (!is_null($defaultValue)) {
+ $efDefaultValue [$efID] = $defaultValue;
+ } else {
+ if
(in_array($efArr['field_type'],unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE)))
{
+ $efDefaultValue [$efID] = '';
+ }
+ }
+ }
+ return $efDefaultValue;
}
/**
@@ -708,11 +742,6 @@ class ArtifactType extends FFError {
}
$newEFIds[$ef['extra_field_id']] = $nef->getID();
$newEFElIds[$ef['extra_field_id']] = array();
- //
- // Iterate the elements
- //
- $resel = db_query_params('SELECT * FROM
artifact_extra_field_elements WHERE extra_field_id=$1',
- array($ef['extra_field_id']));
//by default extrafield status is created with default
values: 'Open' & 'Closed'
if ($nef->getType() == ARTIFACT_EXTRAFIELDTYPE_STATUS) {
@@ -722,21 +751,79 @@ class ArtifactType extends FFError {
$existingElement->delete();
}
}
- while ($el = db_fetch_array($resel)) {
- //new element
- $nel = new ArtifactExtraFieldElement($nef);
- if
(!$nel->create(util_unconvert_htmlspecialchars($el['element_name']),
$el['status_id'])) {
- db_rollback();
- $this->setError(_('Error Creating New
Extra Field Element')._(':').' '.$nel->getErrorMessage());
- return false;
+
+ //
+ // Iterate the elements
+ //
+ if (in_array($ef['field_type'],
unserialize(ARTIFACT_EXTRAFIELDTYPE_CHOICETYPE))) {
+ $elements =
$this->getExtraFieldElements($ef['extra_field_id']);
+ foreach ($elements as $el) {
+ //new element
+ $nel = new
ArtifactExtraFieldElement($nef);
+ if
(!$nel->create(util_unconvert_htmlspecialchars($el['element_name']),
$el['status_id'], $el['auto_assign_to'], $el['is_default'])) {
+ db_rollback();
+ $this->setError(_('Error
Creating New Extra Field Element')._(':').' '.$nel->getErrorMessage());
+ return false;
+ }
+
$newEFElIds[$ef['extra_field_id']][$el['element_id']] = $nel->getID();
+ }
+ } elseif ($ef['field_type'] ==
ARTIFACT_EXTRAFIELDTYPE_USER) {
+ $elements =
$this->getExtraFieldElements($ef['extra_field_id']);
+ $newRoles = $this->getGroup()->getRoles();
+ foreach ($elements as $el) {
+ $oldRole =
RBACEngine::getInstance()->getRoleById($el['element_name']);
+ if ($oldRole && is_object($oldRole)) {
+ if ($oldRole->isPublic()) {
+ foreach ($newRoles as
$newRole) {
+ if
($oldRole->getID() == $newRole->getID()) {
+ if
(!$nel->create($el['element_name'])) {
+
db_rollback();
+
$this->setError(_('Error Creating New Extra Field Element')._(':').'
'.$nel->getErrorMessage());
+
return false;
+ }
+
$newEFElIds[$ef['extra_field_id']][$el['element_id']] = $nel->getID();
+ break;
+ }
+ }
+ } else {
+ foreach ($newRoles as
$newRole) {
+ if
($oldRole->getName() == $newRole->getName()) {
+ if
(!$nel->create($newRole->getID())) {
+
db_rollback();
+
$this->setError(_('Error Creating New Extra Field Element')._(':').'
'.$nel->getErrorMessage());
+
return false;
+ }
+
$newEFElIds[$ef['extra_field_id']][$el['element_id']] = $nel->getID();
+ break;
+ }
+ }
+ }
+ }
}
-
$newEFElIds[$ef['extra_field_id']][$el['element_id']] = $nel->getID();
}
}
-
foreach ($newEFIds as $oldEFId => $newEFId) {
$oef = new ArtifactExtraField($at, $oldEFId);
$nef = new ArtifactExtraField($this, $newEFId);
+ // clone default value
+ $type = $oef->getType();
+ if (in_array($type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_VALUETYPE)) || $type ==
ARTIFACT_EXTRAFIELDTYPE_USER) {
+ $default = $oef->getDefaultValues();
+ if (($type==ARTIFACT_EXTRAFIELDTYPE_INTEGER &&
$default != 0)) {
+ $nef->setDefaultValues($default);
+ } elseif ($type==ARTIFACT_EXTRAFIELDTYPE_USER
&& $default != 100) {
+ $roleEls =
$this->getExtraFieldElements($newEFId);
+ $defaultUser =
UserManager::instance()->getUserById($default);
+ foreach ($roleEls as $roleEl) {
+ $role =
RBACEngine::getInstance()->getRoleById($roleEl['element_name']);
+ if (
$role->hasUser($defaultUser)) {
+
$nef->setDefaultValues($default);
+ }
+ }
+ } else {
+ $nef->setDefaultValues($default);
+ }
+ }
// update Dependency between extrafield
if ($oef->getParent() != 100) {
if (!$nef->update($nef->getName(),
$nef->getAttribute1(), $nef->getAttribute2(), $nef->isRequired(),
$nef->getAlias(), $nef->getShow100(), $nef->getShow100label(),
$nef->getDescription(), $nef->getPattern(), $newEFIds[$oef->getParent()],
$nef->isAutoAssign(), $nef->isHiddenOnSubmit(), $nef->isDisabled())) {
@@ -744,7 +831,6 @@ class ArtifactType extends FFError {
$this->setError(_('Error Updating New
Extra Field Parent')._(':').' '.$nef->getErrorMessage());
return false;
}
-
foreach ($newEFElIds[$oldEFId] as $oldEFElId =>
$newEFElId) {
$oel = new
ArtifactExtraFieldElement($oef,$oldEFElId);
if ($oel->isError()) {
@@ -840,18 +926,12 @@ class ArtifactType extends FFError {
}
if (!isset($this->extra_field[$id])) {
$this->extra_field[$id] = array();
- $res = db_query_params('SELECT element_id,
element_name, status_id
- FROM artifact_extra_field_elements
- WHERE extra_field_id = $1
- ORDER BY element_pos ASC, element_id ASC',
- array($id));
- $i = 0;
- while ($arr = db_fetch_array($res)) {
- $this->extra_field[$id][$i++] = $arr;
+ $ef = new ArtifactExtraField($this,$id);
+ if (!$ef || $ef->isError()) {
+ return false;
}
-// if (count($this->extra_field[$id]) == 0) {
-// return;
-// }
+ $efValues = $ef->getAvailableValues();
+ $this->extra_field[$id] = $efValues;
}
return $this->extra_field[$id];
diff --git a/src/common/tracker/actions/admin-updates.php
b/src/common/tracker/actions/admin-updates.php
index e14c442..db5c1bf 100644
--- a/src/common/tracker/actions/admin-updates.php
+++ b/src/common/tracker/actions/admin-updates.php
@@ -245,6 +245,7 @@ if (getStringFromRequest('add_extrafield')) {
$autoassign = getStringFromRequest('autoassign');
$is_hidden_on_submit = getStringFromRequest('is_hidden_on_submit');
$is_disabled = getStringFromRequest('is_disabled');
+ $default = getStringFromRequest('default');
$ac = new ArtifactExtraField($ath, $id);
if (!$ac || !is_object($ac)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
@@ -260,8 +261,13 @@ if (getStringFromRequest('add_extrafield')) {
$error_msg .= _('Update failed')._(':
').$ac->getErrorMessage();
$ac->clearError();
} else {
- $feedback .= _('Custom Field updated');
- $next = 'add_extrafield';
+ if(!$ac->setDefaultValues($default)){
+ $error_msg .= _('Update failed')._(':
').$ac->getErrorMessage();
+ $ac->clearError();
+ } else {
+ $feedback .= _('Custom Field updated');
+ $next = 'add_extrafield';
+ }
}
}
@@ -270,6 +276,7 @@ if (getStringFromRequest('add_extrafield')) {
//
} elseif (getStringFromRequest('update_opt')) {
$boxid = getStringFromRequest('boxid');
+ $is_default = getStringFromRequest('is_default');
$ac = new ArtifactExtraField($ath,$boxid);
if (!$ac || !is_object($ac)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
@@ -286,7 +293,7 @@ if (getStringFromRequest('add_extrafield')) {
$name = getStringFromRequest('name');
$status_id = getIntFromRequest('status_id');
$autoAssignTo = getStringFromRequest('auto_assign_to');
- if (!$ao->update($name,$status_id,$autoAssignTo)) {
+ if
(!$ao->update($name,$status_id,$autoAssignTo,$is_default)) {
$error_msg .= _('Update failed')._(':
').$ao->getErrorMessage();
$ao->clearError();
} else {
@@ -613,6 +620,40 @@ if (getStringFromRequest('add_extrafield')) {
}
}
+} elseif (getStringFromRequest('post_changes_default')) {
+ $boxid = getStringFromRequest('boxid');
+ $ac = new ArtifactExtraField($ath,$boxid);
+ if (!$ac || !is_object($ac)) {
+ $error_msg .= _('Unable to create ArtifactExtraField Object');
+ } elseif ($ac->isError()) {
+ $error_msg .= $ac->getErrorMessage();
+ } else {
+ $updated_flag = 0;
+ if (in_array($ac->getType(),
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $id = getIntFromRequest('is_default');
+ if ($id == 100) {
+ if (!$ac->resetDefaultValues()) {
+ $feedback .= _('Tracker Updated');
+ } else {
+ $error_msg .= _('Update failed')._(':
').$ac->getErrorMessage();
+ }
+ } else {
+ if ($ac->setDefaultValues($id)) {
+ $feedback .= _('Tracker Updated');
+ } else {
+ $error_msg .= _('Update failed')._(':
').$ac->getErrorMessage();
+ }
+ }
+ } else {
+ $is_default = getArrayFromRequest('is_default');
+ if ($ac->setDefaultValues($is_default)) {
+ $feedback .= _('Tracker Updated');
+ } else {
+ $error_msg .= _('Update failed')._(':
').$ac->getErrorMessage();
+ }
+ }
+ }
+
//
// Configure workflow
//
diff --git a/src/common/tracker/include/ArtifactTypeHtml.class.php
b/src/common/tracker/include/ArtifactTypeHtml.class.php
index c38e885..c03ef5c 100644
--- a/src/common/tracker/include/ArtifactTypeHtml.class.php
+++ b/src/common/tracker/include/ArtifactTypeHtml.class.php
@@ -578,7 +578,11 @@ EOS;
* @return string HTML template.
*/
function generateRenderHTML($types=array(), $mode) {
- $efarr = $this->getExtraFields($types);
+ if ($mode == 'NEW') {
+ $efarr = $this->getExtraFields($types, false, false);
+ } else {
+ $efarr = $this->getExtraFields($types);
+ }
//each two columns, we'll reset this and start a new row
$return = '
diff --git a/src/common/tracker/include/build_submission_form.php
b/src/common/tracker/include/build_submission_form.php
index ccb5b12..9186a17 100644
--- a/src/common/tracker/include/build_submission_form.php
+++ b/src/common/tracker/include/build_submission_form.php
@@ -50,6 +50,10 @@ function artifact_submission_form($ath, $group, $summary='',
$details='', $assig
$cells[] = array(html_e('input', array('type'=>'submit',
'name'=>'submit', 'value'=>_('Submit'))), 'class'=>'top');
echo $HTML->multiTableRow(array(), $cells);
+ if (empty($extra_fields)) {
+ $extra_fields = $ath->getExtraFieldsDefaultValue();
+ }
+
$ath->renderExtraFields($extra_fields,true,'none',false,'Any',array(),false,'NEW');
if (forge_check_perm ('tracker', $ath->getID(), 'manager')) {
diff --git a/src/common/tracker/views/form-addextrafield.php
b/src/common/tracker/views/form-addextrafield.php
index 780e630..fb7855e 100644
--- a/src/common/tracker/views/form-addextrafield.php
+++ b/src/common/tracker/views/form-addextrafield.php
@@ -251,6 +251,10 @@ echo html_e('label', array('for'=>'attribute2'),
_('Maxlength')._(':'));
echo html_e('input', array('type'=>'text', 'name'=>'attribute2',
'value'=>'80', 'size'=>'2', 'maxlength'=>'2')).html_e('br');
echo html_ac(html_ap() - 1);
+echo html_ao('p', array('class'=>'for-text for-textarea for-integer'));
+
+echo html_ac(html_ap() - 1);
+
echo html_ao('p', array('class'=>'for-text'));
echo _('Pattern');
echo html_e('input', array('type'=>'text', 'name'=>'pattern', 'value'=>'',
'size'=>'50', 'maxlength'=>'255')).html_e('br');
diff --git a/src/common/tracker/views/form-addextrafieldoption.php
b/src/common/tracker/views/form-addextrafieldoption.php
index 06e1e4d..41a15fb 100644
--- a/src/common/tracker/views/form-addextrafieldoption.php
+++ b/src/common/tracker/views/form-addextrafieldoption.php
@@ -35,7 +35,8 @@ if (!$ac || !is_object($ac)) {
} elseif ($ac->isError()) {
exit_error($ac->getErrorMessage(),'tracker');
} else {
- $efearr=$ath->getExtraFieldElements($boxid);
+// $efearr=$ath->getExtraFieldElements($boxid);
+ $efearr=$ac->getAvailableValues();
$title = sprintf(_('Add/Update Custom Field Elements in %s'),
$ath->getName());
$ath->adminHeader(array('title'=>$title, 'modal'=>1));
echo html_e('h2', array(), _('Custom Field Name')._(':
').$ac->getName());
@@ -51,8 +52,25 @@ if (!$ac || !is_object($ac)) {
}
$title_arr[]=_('Up/Down positions');
$title_arr[]=_('Elements Defined');
+ if (in_array($efType,
unserialize(ARTIFACT_EXTRAFIELDTYPE_CHOICETYPE))) {
+ $title_arr[]=_('Default');
+ }
$title_arr[]='';
echo $HTML->listTableTop ($title_arr,false, ' ');
+ if (in_array($efType,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $row_attrs =
array('class'=>$HTML->boxGetAltRowStyle(-1,true));
+ $cells = array();
+ $cells[] = array('', 'class'=>'align-right');
+ if ($efType == ARTIFACT_EXTRAFIELDTYPE_STATUS) {
+ $cells[] = array('');
+ }
+ $cells[] = array('', 'class'=>'align-center');
+ $cells[] = array(_('None'));
+ $content =
html_build_radio_button('is_default', 100, true);
+ $cells[] = array($content,
'class'=>'align-center');
+ $cells[] = array('', 'class'=>'align-center');
+ echo $HTML->multiTableRow($row_attrs, $cells);
+ }
for ($i=0; $i < $rows; $i++) {
$row_attrs =
array('class'=>$HTML->boxGetAltRowStyle($i,true));
$cells = array();
@@ -65,6 +83,15 @@ if (!$ac || !is_object($ac)) {
$content .=
util_make_link('/tracker/admin/?group_id='.$group_id.'&atid='.$ath->getID().'&boxid='.$boxid.'&id='.$efearr[$i]['element_id'].'&updownorder_opt=1&new_pos='.(($i
== $rows - 1)? $i + 1 : $i + 2),
html_image('ic/btn_down.png','19','18',array('alt'=>'Down', 'title'=>_('Move
Down this custom field element'))));
$cells[] = array($content,
'class'=>'align-center');
$cells[] = array($efearr[$i]['element_name']);
+
+ if (in_array($efType,
unserialize(ARTIFACT_EXTRAFIELDTYPE_MULTICHOICETYPE))) {
+ $content =
html_build_checkbox('is_default['. $efearr[$i]['element_id'] .']', false,
$efearr[$i]['is_default']);
+ $cells[] = array($content,
'class'=>'align-center');
+ } elseif (in_array($efType,
unserialize(ARTIFACT_EXTRAFIELDTYPE_SINGLECHOICETYPE))) {
+ $content =
html_build_radio_button('is_default', $efearr[$i]['element_id'],
$efearr[$i]['is_default']);
+ $cells[] = array($content,
'class'=>'align-center');
+ }
+
$content =
util_make_link('/tracker/admin/?update_opt=1&id='.$efearr[$i]['element_id'].'&boxid='.$boxid.'&group_id='.$group_id.'&atid='.
$ath->getID(), html_image('ic/configure.png','22','22',array('alt'=>_('Edit'),
'title'=>_('Edit custom field element'))));
$cells[] = array($content,
'class'=>'align-center');
echo $HTML->multiTableRow($row_attrs, $cells);
@@ -79,6 +106,10 @@ if (!$ac || !is_object($ac)) {
}
$content = html_e('input', array('type'=>'submit',
'name'=>'post_changes_alphaorder', 'value'=>_('Alphabetical order')));
$cells[] = array($content, 'class'=>'align-left');
+ if (in_array($efType,
unserialize(ARTIFACT_EXTRAFIELDTYPE_CHOICETYPE))) {
+ $content = html_e('input',
array('type'=>'submit', 'name'=>'post_changes_default', 'value'=>_('Update
default')));
+ $cells[] = array($content,
'class'=>'align-center');
+ }
echo $HTML->multiTableRow($row_attrs, $cells);
echo $HTML->listTableBottom();
echo $HTML->closeForm();
@@ -105,7 +136,9 @@ if (!$ac || !is_object($ac)) {
$g=$ath->getGroup();
$roles = $g->getRoles();
foreach ($roles as $role) {
- $vals[$role->getID()]=$role->getName();
+ if (!in_array(get_class($role),
array('RoleLoggedIn','RoleAnonymous'))){
+ $vals[$role->getID()]=$role->getName();
+ }
}
// end
asort($vals,SORT_FLAG_CASE);
diff --git a/src/common/tracker/views/form-updateextrafield.php
b/src/common/tracker/views/form-updateextrafield.php
index 81048f8..9bca1e7 100644
--- a/src/common/tracker/views/form-updateextrafield.php
+++ b/src/common/tracker/views/form-updateextrafield.php
@@ -152,6 +152,62 @@ if (!$ac || !is_object($ac)) {
echo html_e('input', array('type'=>'hidden',
'name'=>'autoassign', 'value'=>0));
}
+ switch ($efType) {
+ case ARTIFACT_EXTRAFIELDTYPE_TEXT:
+ echo html_ao('p');
+ echo html_e('label', array('for'=>'default'),_('Default
value'));
+ $attrs = array('type'=>'text', 'id'=>'default',
'name'=>'default', 'value'=>$ac->getDefaultValues(),
'size'=>$ac->getAttribute1(), 'maxlength'=>$ac->getAttribute2());
+ if ($ac->getPattern() != '') {
+ $attrs['pattern'] = $ac->getPattern();
+ }
+ echo html_e('input', $attrs);
+ echo html_ac(html_ap() - 1);
+ break;
+ case ARTIFACT_EXTRAFIELDTYPE_TEXTAREA:
+ echo html_ao('p');
+ echo html_e('label', array('for'=>'default'),_('Default
value'));
+ echo html_e('textarea', array('id'=>'default',
'name'=>'default', 'value'=>$ac->getDefaultValues(),
'rows'=>$ac->getAttribute1(), 'cols'=>$ac->getAttribute2()));
+ echo html_ac(html_ap() - 1);
+ break;
+ case ARTIFACT_EXTRAFIELDTYPE_INTEGER:
+ echo html_ao('p');
+ echo html_e('label', array('for'=>'default'),_('Default
value'));
+ $attrs = array('type'=>'number', 'id'=>'default',
'name'=>'default', 'value'=>$ac->getDefaultValues(),
'size'=>$ac->getAttribute1(), 'maxlength'=>$ac->getAttribute2(), 'min'=>0);
+ if ($ac->getPattern() != '') {
+ $attrs['pattern'] = $ac->getPattern();
+ }
+ echo html_e('input', $attrs);
+ echo html_ac(html_ap() - 1);
+ break;
+// case ARTIFACT_EXTRAFIELDTYPE_DATETIME:
+ case ARTIFACT_EXTRAFIELDTYPE_USER:
+ echo html_ao('p');
+ echo html_e('label', array('for'=>'default'),_('Default
value'));
+ $arr = $ac->getAvailableValues();
+ $selectedRolesId = array();
+ for ($i=0; $i<count($arr); $i++) {
+ $selectedRolesId[$i]=$arr[$i]['element_name'];
+ }
+ $roles = $ac->getArtifactType()->getGroup()->getRoles();
+ $userArray = array();
+ foreach ($roles as $role) {
+ if (in_array($role->getID(), $selectedRolesId))
{
+ foreach ($role->getUsers() as $user) {
+ $userArray[$user->getID()] =
$user->getRealName().(($user->getStatus()=='S') ? ' '._('[SUSPENDED]') : '');
+ }
+ }
+ }
+ $default = $ac->getDefaultValues();
+ if (is_integer($default) &&
!isset($userArray[$default]) && $default!=100) {
+ $checkedUser = user_get_object($default);
+ $userArray[$checkedUser->getID()] =
$checkedUser->getRealName().' '._('[DELETED]');
+ }
+ asort($userArray,SORT_FLAG_CASE | SORT_STRING);
+ $keys = array_keys($userArray);
+ $vals = array_values($userArray);
+ echo html_build_select_box_from_arrays
($keys,$vals,'default',$default,true,'nobody');
+ echo html_ac(html_ap() - 1);
+ }
echo $HTML->warning_msg(_('It is not recommended that you change the
custom field name because other things are dependent upon it. When you change
the custom field name, all related items will be changed to the new name.'));
diff --git a/src/common/tracker/views/form-updateextrafieldelement.php
b/src/common/tracker/views/form-updateextrafieldelement.php
index b8b04d1..744396d 100644
--- a/src/common/tracker/views/form-updateextrafieldelement.php
+++ b/src/common/tracker/views/form-updateextrafieldelement.php
@@ -33,6 +33,7 @@ global $HTML;
*/
$boxid = getIntFromRequest('boxid');
$ac = new ArtifactExtraField($ath,$boxid);
+$ef_type = $ac->getType();
if (!$ac || !is_object($ac)) {
exit_error(_('Unable to create ArtifactExtraField Object'),'tracker');
} elseif ($ac->isError()) {
@@ -55,6 +56,10 @@ if (!$ac || !is_object($ac)) {
echo html_ao('p');
echo html_e('label', array('for'=>'name'), html_e('strong',
array(), _('Element')._(':')).html_e('br'));
echo html_e('input', array('type'=>'text', 'id'=>'name',
'name'=>'name', 'value'=>$ao->getName()));
+ if (in_array($ef_type,
unserialize(ARTIFACT_EXTRAFIELDTYPE_CHOICETYPE))) {
+ echo html_build_checkbox('is_default', false,
$ao->isDefault());
+ echo html_e('label', array('for'=>'is_default'),
_('Default value'));
+ }
echo html_ac(html_ap()-1);
// Show a pop-up box to choose the possible statuses that this
element will map to
if ($ac->getType() == ARTIFACT_EXTRAFIELDTYPE_STATUS) {
diff --git a/src/db/20161018-tracker-field-default-values.sql
b/src/db/20161018-tracker-field-default-values.sql
new file mode 100644
index 0000000..56de0c1
--- /dev/null
+++ b/src/db/20161018-tracker-field-default-values.sql
@@ -0,0 +1,9 @@
+CREATE TABLE artifact_extra_field_default (
+ default_id serial NOT NULL,
+ extra_field_id integer NOT NULL,
+ default_value text NOT NULL,
+ CONSTRAINT artifact_extra_field_default_pkey PRIMARY KEY (default_id),
+ CONSTRAINT artifact_extra_field_default_extra_field_id_fkey FOREIGN KEY
(extra_field_id)
+ REFERENCES artifact_extra_field_list (extra_field_id) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE CASCADE
+);
\ No newline at end of file
diff --git a/src/www/include/html.php b/src/www/include/html.php
index 5b2de59..ed9e28a 100644
--- a/src/www/include/html.php
+++ b/src/www/include/html.php
@@ -289,6 +289,27 @@ function html_build_select_box_from_array($vals,
$select_name, $checked_val = 'x
}
/**
+ * html_build_radio_button() - Render radio button control
+ *
+ * @param string $name name of control
+ * @param bool|string $value value of control (if false then
no attribute value)
+ * @param bool $checked true if control should be
selected
+ * @param array $attrs Array of other attributes for
this element
+ * @return html code for radio button control
+ */
+function html_build_radio_button($name, $value, $checked, $attrs=array()) {
+ if ($value === false) {
+ $attrs = array_merge(array('id' => $name, 'name' => $name,
'type' => 'radio'), $attrs);
+ } else {
+ $attrs = array_merge(array('id' => $name, 'name' => $name,
'value' => $value, 'type' => 'radio'), $attrs);
+ }
+ if ($checked) {
+ $attrs['checked'] = 'checked';
+ }
+ return html_e('input', $attrs);
+}
+
+/**
* html_build_radio_buttons_from_arrays() - Takes two arrays, with the first
array being the "id" or value and the other
* array being the text you want displayed.
*
diff --git a/src/www/tracker/admin/index.php b/src/www/tracker/admin/index.php
index 152edc4..cd1779d 100644
--- a/src/www/tracker/admin/index.php
+++ b/src/www/tracker/admin/index.php
@@ -80,6 +80,7 @@ if ($group_id && $atid) {
if (getStringFromRequest('post_changes') ||
getStringFromRequest('updownorder_opt') ||
getStringFromRequest('post_changes_order') ||
+ getStringFromRequest('post_changes_default') ||
getStringFromRequest('post_changes_alphaorder')) {
include $gfcommon.'tracker/actions/admin-updates.php';
@@ -116,7 +117,7 @@ if ($group_id && $atid) {
$action = $next;
} else {
$actions = array('add_extrafield', 'customize_list',
'workflow', 'workflow_roles', 'workflow_required_fields', 'add_opt',
- 'updownorder_opt', 'post_changes_order',
'post_changes_alphaorder', 'copy_opt', 'add_canned',
+ 'updownorder_opt', 'post_changes_order',
'post_changes_alphaorder', 'post_changes_default', 'copy_opt', 'add_canned',
'clone_tracker', 'edittemplate',
'update_canned', 'delete_canned', 'update_box',
'update_opt', 'delete', 'delete_opt', 'deleteextrafield','update_type');
$action = '';
@@ -155,6 +156,7 @@ if ($group_id && $atid) {
} elseif ($action == 'add_opt' ||
$action == 'updownorder_opt' ||
$action == 'post_changes_order' ||
+ $action == 'post_changes_default' ||
$action == 'post_changes_alphaorder') {
include $gfcommon.'tracker/views/form-addextrafieldoption.php';
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=1491d0c053cdda2a00378d26810d03eacffe629a
commit 1491d0c053cdda2a00378d26810d03eacffe629a
Author: Stéphane-Eymeric Bredthauer <[email protected]>
Date: Tue Oct 18 09:38:51 2016 +0200
Tracker: methods naming convention
diff --git a/src/common/tracker/ArtifactExtraField.class.php
b/src/common/tracker/ArtifactExtraField.class.php
index 3b5cf4d..c7215fa 100644
--- a/src/common/tracker/ArtifactExtraField.class.php
+++ b/src/common/tracker/ArtifactExtraField.class.php
@@ -426,20 +426,20 @@ class ArtifactExtraField extends FFError {
}
/**
- * is_hidden_on_submit - whether this field is hidden on a new
submission or not.
+ * isHiddenOnSubmit - whether this field is hidden on a new submission
or not.
*
* @return boolean required.
*/
- function is_hidden_on_submit() {
+ function isHiddenOnSubmit() {
return $this->data_array['is_hidden_on_submit'];
}
/**
- * is_disabled - whether this field is disabled or not.
+ * isDisabled - whether this field is disabled or not.
*
* @return boolean required.
*/
- function is_disabled() {
+ function isDisabled() {
return $this->data_array['is_disabled'];
}
diff --git a/src/common/tracker/ArtifactType.class.php
b/src/common/tracker/ArtifactType.class.php
index 910bda3..b784921 100644
--- a/src/common/tracker/ArtifactType.class.php
+++ b/src/common/tracker/ArtifactType.class.php
@@ -739,7 +739,7 @@ class ArtifactType extends FFError {
$nef = new ArtifactExtraField($this, $newEFId);
// update Dependency between extrafield
if ($oef->getParent() != 100) {
- if (!$nef->update($nef->getName(),
$nef->getAttribute1(), $nef->getAttribute2(), $nef->isRequired(),
$nef->getAlias(), $nef->getShow100(), $nef->getShow100label(),
$nef->getDescription(), $nef->getPattern(), $newEFIds[$oef->getParent()],
$nef->isAutoAssign(), $nef->is_hidden_on_submit(), $nef->is_disabled())) {
+ if (!$nef->update($nef->getName(),
$nef->getAttribute1(), $nef->getAttribute2(), $nef->isRequired(),
$nef->getAlias(), $nef->getShow100(), $nef->getShow100label(),
$nef->getDescription(), $nef->getPattern(), $newEFIds[$oef->getParent()],
$nef->isAutoAssign(), $nef->isHiddenOnSubmit(), $nef->isDisabled())) {
db_rollback();
$this->setError(_('Error Updating New
Extra Field Parent')._(':').' '.$nef->getErrorMessage());
return false;
diff --git a/src/common/tracker/views/form-updateextrafield.php
b/src/common/tracker/views/form-updateextrafield.php
index 9d64679..81048f8 100644
--- a/src/common/tracker/views/form-updateextrafield.php
+++ b/src/common/tracker/views/form-updateextrafield.php
@@ -65,7 +65,7 @@ if (!$ac || !is_object($ac)) {
echo html_ac(html_ap() - 1);
echo html_ao('p');
- echo html_build_checkbox('is_disabled', false, $ac->is_disabled());
+ echo html_build_checkbox('is_disabled', false, $ac->isDisabled());
echo html_e('label', array('for'=>'is_disabled'), _('Field is
disabled'));
echo html_ac(html_ap() - 1);
@@ -75,7 +75,7 @@ if (!$ac || !is_object($ac)) {
echo html_ac(html_ap() - 1);
echo html_ao('p');
- echo html_build_checkbox('is_hidden_on_submit', false,
$ac->is_hidden_on_submit());
+ echo html_build_checkbox('is_hidden_on_submit', false,
$ac->isHiddenOnSubmit());
echo html_e('label', array('for'=>'is_hidden_on_submit'), _('Hide this
Field on a new submission'));
echo html_ac(html_ap() - 1);
-----------------------------------------------------------------------
Summary of changes:
src/common/tracker/ArtifactExtraField.class.php | 211 ++++++++++++++++++++-
.../tracker/ArtifactExtraFieldElement.class.php | 83 +++++++-
src/common/tracker/ArtifactType.class.php | 142 +++++++++++---
src/common/tracker/actions/admin-updates.php | 47 ++++-
.../tracker/include/ArtifactTypeHtml.class.php | 6 +-
.../tracker/include/build_submission_form.php | 4 +
src/common/tracker/views/form-addextrafield.php | 4 +
.../tracker/views/form-addextrafieldoption.php | 37 +++-
src/common/tracker/views/form-updateextrafield.php | 60 +++++-
.../tracker/views/form-updateextrafieldelement.php | 5 +
src/db/20161018-tracker-field-default-values.sql | 9 +
src/www/include/html.php | 21 ++
src/www/tracker/admin/index.php | 4 +-
13 files changed, 578 insertions(+), 55 deletions(-)
create mode 100644 src/db/20161018-tracker-field-default-values.sql
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits