Skip to content

Commit

Permalink
Improve optiongroups admin UI workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
mattwire committed Jul 14, 2018
1 parent bd8a24d commit 3aef92d
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 9 deletions.
19 changes: 12 additions & 7 deletions CRM/Admin/Form/OptionGroup.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public function buildQuickForm() {
CRM_Core_DAO::getAttribute('CRM_Core_DAO_OptionGroup', 'description')
);

$this->addSelect('data_type', array('options' => CRM_Utils_Type::dataTypes()), TRUE);
$this->addSelect('data_type', array('options' => CRM_Utils_Type::dataTypes()), empty($this->_values['is_reserved']));

$element = $this->add('checkbox', 'is_active', ts('Enabled?'));
if ($this->_action & CRM_Core_Action::UPDATE) {
Expand All @@ -96,8 +96,12 @@ public function buildQuickForm() {
$element->freeze();
}
}

$this->add('checkbox', 'is_reserved', ts('Reserved?'));
$this->freeze('is_reserved');

if (!empty($this->_values['is_reserved'])) {
$this->freeze(array('name', 'is_active'));
$this->freeze(array('name', 'is_active', 'data_type'));
}
}

Expand All @@ -118,12 +122,13 @@ public function postProcess() {
// store the submitted values in an array
$params = $this->exportValues();

// If we are adding option group via UI it should not be marked reserved.
if (!isset($params['is_reserved'])) {
$params['is_reserved'] = 0;
if ($this->_action & CRM_Core_Action::ADD) {
// If we are adding option group via UI it should not be marked reserved.
if (!isset($params['is_reserved'])) {
$params['is_reserved'] = 0;
}
}

if ($this->_action & CRM_Core_Action::UPDATE) {
elseif ($this->_action & CRM_Core_Action::UPDATE) {
$params['id'] = $this->_id;
}

Expand Down
4 changes: 4 additions & 0 deletions templates/CRM/Admin/Form/OptionGroup.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
<td class="label">{$form.is_active.label}</td>
<td>{$form.is_active.html}</td>
</tr>
<tr class="crm-admin-optiongroup-form-block-is_reserved">
<td class="label">{$form.is_reserved.label}</td>
<td>{$form.is_reserved.html}</td>
</tr>
</table>
{/if}
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
Expand Down
5 changes: 4 additions & 1 deletion templates/CRM/Admin/Page/OptionGroup.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@
<td class="crm-admin-optionGroup-name">{$row.name}</td>
<td class="crm-admin-optionGroup-is_reserved">{if $row.is_reserved eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td class="crm-admin-optionGroup-is_active" id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
<td><a href="{crmURL p="civicrm/admin/options" q="gid=`$row.id`&reset=1"}" title="{ts}View and Edit Options{/ts}">{ts}Options{/ts}</a></td>
<td>
<a href="{crmURL p="civicrm/admin/options" q="id=`$row.id`&action=update&reset=1"}" class="action-item crm-hover-button" title="{ts}OptionGroup settings{/ts}">{ts}Settings{/ts}</a>
<a href="{crmURL p="civicrm/admin/options" q="gid=`$row.id`&reset=1"}" class="action-item crm-hover-button" title="{ts}View and Edit Options{/ts}">{ts}Edit Options{/ts}</a>
</td>
</tr>
{/foreach}
</table>
Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Admin/Page/Options.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@
{if $isLocked ne 1}
{crmButton p="civicrm/admin/options/$gName" q='action=add&reset=1' class="new-option" icon="plus-circle"}{ts 1=$gLabel}Add %1{/ts}{/crmButton}
{/if}
{crmButton p="civicrm/admin" q="reset=1" class="cancel" icon="times"}{ts}Done{/ts}{/crmButton}
{crmButton p="civicrm/admin/options" q="action=browse&reset=1" class="next no-popup" icon="check"}{ts}Done{/ts}{/crmButton}
</div>
</div>
{/if}

0 comments on commit 3aef92d

Please sign in to comment.