From dafd2d75beba9fc45e4afc85ecf1f2c8e2d1f637 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 6 Feb 2014 16:56:18 -0800 Subject: [PATCH] CRM-14165 - Improve lookup and styling of options edit link --- CRM/Core/Form.php | 8 ++++---- CRM/Core/Form/Renderer.php | 14 ++++++-------- css/civicrm.css | 24 ++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/CRM/Core/Form.php b/CRM/Core/Form.php index 028af24379..77af71cc84 100644 --- a/CRM/Core/Form.php +++ b/CRM/Core/Form.php @@ -919,11 +919,12 @@ class CRM_Core_Form extends HTML_QuickForm_Page { if (!isset($props['data-api-field'])) { $props['data-api-field'] = strrpos($name, '[') ? rtrim(substr($name, 1 + strrpos($name, '[')), ']') : $name; } - $options = civicrm_api3($props['data-api-entity'], 'getoptions', array( + $info = civicrm_api3($props['data-api-entity'], 'getoptions', array( 'field' => $props['data-api-field'], + 'options' => array('metadata' => array('fields')) ) ); - $options = $options['values']; + $options = $info['values']; if (!array_key_exists('placeholder', $props)) { $props['placeholder'] = $required ? ts('- select -') : ts('- none -'); } @@ -939,8 +940,7 @@ class CRM_Core_Form extends HTML_QuickForm_Page { } // Core field else { - $getFields = civicrm_api3($props['data-api-entity'], 'getfields'); - foreach($getFields['values'] as $uniqueName => $fieldSpec) { + foreach($info['metadata']['fields'] as $uniqueName => $fieldSpec) { if ( $uniqueName === $props['data-api-field'] || CRM_Utils_Array::value('name', $fieldSpec) === $props['data-api-field'] || diff --git a/CRM/Core/Form/Renderer.php b/CRM/Core/Form/Renderer.php index fdfa8758aa..0f86236723 100644 --- a/CRM/Core/Form/Renderer.php +++ b/CRM/Core/Form/Renderer.php @@ -137,9 +137,9 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty { * * @access private * - * @param object An HTML_QuickForm_element object - * @param bool Whether an element is required - * @param string Error associated with the element + * @param $element HTML_QuickForm_element object + * @param $required bool Whether an element is required + * @param $error string Error associated with the element * * @return array * @static @@ -164,14 +164,12 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty { if ($type == 'text') { $size = $element->getAttribute('size'); if (!empty($size)) { - if (array_key_exists($size, self::$_sizeMapper)) { - $class .= ' ' . self::$_sizeMapper[$size]; - } + $class = CRM_Utils_Array::value($size, self::$_sizeMapper); } } } - $class .= ($class ? ' ' : '') . 'crm-form-' . $type; + $class = ($class ? "$class " : '') . 'crm-form-' . $type; if ($required) { $class .= ' required'; @@ -216,7 +214,7 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty { */ function addOptionsEditLink(&$el, $field) { if (CRM_Core_Permission::check('administer CiviCRM')) { - $el['html'] .= '   '; + $el['html'] .= ' '; } } } diff --git a/css/civicrm.css b/css/civicrm.css index 2c410e4cd6..6594ffdd25 100644 --- a/css/civicrm.css +++ b/css/civicrm.css @@ -2622,6 +2622,30 @@ div.grippie { background-position: -32px -32px; } +/* Icon hover-buttons */ +.crm-container .crm-hover-button { + display: inline-block; +} +.crm-container .crm-hover-button:hover, +.crm-container .crm-hover-button:active { + background: #ccc; + background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #ccc)); + background-image: -webkit-linear-gradient(center bottom, #eee 0%, #ccc 100%); + background-image: -moz-linear-gradient(center bottom, #eee 0%, #ccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0); + background-image: linear-gradient(top, #eee 0%, #ccc 100%); + border: 1px solid #AAAAAA; + border-radius: 4px; +} +.crm-container .crm-hover-button .icon { + margin-left: 3px; + margin-top: 2px; + vertical-align: middle; +} +.crm-container .crm-hover-button:hover .icon, +.crm-container .crm-hover-button:active .icon { + background-image: url("../i/icons/jquery-ui-2786C2.png"); +} /* accordion styles */ .crm-container .crm-accordion-header { -- 2.25.1