From 1714a2cf1eb6543bf0531990cd52b9fb8eb06dcf Mon Sep 17 00:00:00 2001 From: satish <satish.dvnk@vtiger.com> Date: Tue, 18 Apr 2017 22:50:50 +0530 Subject: [PATCH] Fixes #444 - vt7 dev release - picklist color in Edit / Create view --- layouts/v7/modules/Vtiger/resources/Field.js | 49 +++++++++++++++++++ .../modules/Vtiger/uitypes/MultiPicklist.tpl | 2 +- .../v7/modules/Vtiger/uitypes/Picklist.tpl | 2 +- modules/Vtiger/models/Field.php | 6 +++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/layouts/v7/modules/Vtiger/resources/Field.js b/layouts/v7/modules/Vtiger/resources/Field.js index c8fce927a..55043e606 100644 --- a/layouts/v7/modules/Vtiger/resources/Field.js +++ b/layouts/v7/modules/Vtiger/resources/Field.js @@ -245,14 +245,39 @@ Vtiger_Field_Js('Vtiger_Picklist_Field_Js',{},{ if(typeof pickListValues[' '] == 'undefined' || pickListValues[' '].length <= 0 || pickListValues[' '] != 'Select an Option') { html += '<option value="">Select an Option</option>'; } + + var data = this.getData(); + var picklistColors = data['picklistColors']; + + var fieldName = this.getName(); for(var option in pickListValues) { html += '<option value="'+option+'" '; + + var className = ''; + if (picklistColors[option]) { + className = 'picklistColor_'+fieldName+'_'+option.replace(' ', '_'); + html += 'class="'+className+'"'; + } + if(option == selectedOption) { html += ' selected '; } html += '>'+pickListValues[option]+'</option>'; } html +='</select>'; + + if (picklistColors) { + html +='<style type="text/css">'; + for(option in picklistColors) { + var picklistColor = picklistColors[option]; + if (picklistColor) { + className = '.picklistColor_'+fieldName+'_'+option.replace(' ', '_'); + html += className+'{background-color: '+picklistColor+' !important;}'; + } + } + html +='<\style>'; + } + var selectContainer = jQuery(html); this.addValidationToElement(selectContainer); return selectContainer; @@ -319,14 +344,38 @@ Vtiger_Field_Js('Vtiger_Multipicklist_Field_Js',{},{ var selectedOption = app.htmlDecode(this.getValue()); var selectedOptionsArray = this.getSelectedOptions(selectedOption); + var data = this.getData(); + var picklistColors = data['picklistColors']; + + var fieldName = this.getName(); for(var option in pickListValues) { html += '<option value="'+option+'" '; + + var className = ''; + if (picklistColors[option]) { + className = 'picklistColor_'+fieldName+'_'+option.replace(' ', '_'); + html += 'class="'+className+'"'; + } + if(jQuery.inArray(option,selectedOptionsArray) != -1){ html += ' selected '; } html += '>'+pickListValues[option]+'</option>'; } html +='</select>'; + + if (picklistColors) { + html +='<style type="text/css">'; + for(option in picklistColors) { + var picklistColor = picklistColors[option]; + if (picklistColor) { + className = '.picklistColor_'+fieldName+'_'+option.replace(' ', '_'); + html += className+'{background-color: '+picklistColor+' !important;}'; + } + } + html +='<\style>'; + } + var selectContainer = jQuery(html); this.addValidationToElement(selectContainer); return selectContainer; diff --git a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl index c9a94e8cb..2a35d33f8 100644 --- a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl @@ -14,7 +14,7 @@ {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} {assign var="FIELD_VALUE_LIST" value=explode(' |##| ',$FIELD_MODEL->get('fieldvalue'))} - {assign var=PICKLIST_COLORS value=$FIELD_MODEL->getPicklistColors()} + {assign var=PICKLIST_COLORS value=$FIELD_INFO['picklistColors']} <input type="hidden" name="{$FIELD_MODEL->getFieldName()}" value="" data-fieldtype="multipicklist"/> <select id="{$MODULE}_{$smarty.request.view}_fieldName_{$FIELD_MODEL->getFieldName()}" multiple class="select2" name="{$FIELD_MODEL->getFieldName()}[]" data-fieldtype="multipicklist" style='width:210px;height:30px;' {if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if} diff --git a/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl b/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl index 7eb5c880a..cceae5116 100644 --- a/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/Picklist.tpl @@ -11,7 +11,7 @@ {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} {assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()} {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} -{assign var=PICKLIST_COLORS value=$FIELD_MODEL->getPicklistColors()} +{assign var=PICKLIST_COLORS value=$FIELD_INFO['picklistColors']} <select data-fieldname="{$FIELD_MODEL->getFieldName()}" data-fieldtype="picklist" class="inputElement select2 {if $OCCUPY_COMPLETE_WIDTH} row {/if}" type="picklist" name="{$FIELD_MODEL->getFieldName()}" {if !empty($SPECIAL_VALIDATOR)}data-validator='{Zend_Json::encode($SPECIAL_VALIDATOR)}'{/if} data-selected-value='{$FIELD_MODEL->get('fieldvalue')}' {if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if} {if count($FIELD_INFO['validator'])} diff --git a/modules/Vtiger/models/Field.php b/modules/Vtiger/models/Field.php index c838a9b9b..e7ab867b9 100644 --- a/modules/Vtiger/models/Field.php +++ b/modules/Vtiger/models/Field.php @@ -538,6 +538,12 @@ class Vtiger_Field_Model extends Vtiger_Field { } else { $this->fieldInfo['picklistvalues'] = array(); } + + $this->fieldInfo['picklistColors'] = array(); + $picklistColors = $this->getPicklistColors(); + if ($picklistColors) { + $this->fieldInfo['picklistColors'] = $picklistColors; + } } if($fieldDataType === 'currencyList'){ -- GitLab