From 7a4193ffde22afb0d7c394c6423a779b92969a83 Mon Sep 17 00:00:00 2001 From: Jaap Jansma <jaap@edeveloper.nl> Date: Wed, 7 Mar 2018 17:38:21 +0100 Subject: [PATCH] added output handler and specification of fields in output handler --- .../config/crmFormProcessorSpecification.html | 35 ++++++++++++------- .../config/crmFormProcessorSpecification.js | 9 +++++ .../crmFormProcessorTypeConfiguration.html | 3 +- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ang/form_processor/config/crmFormProcessorSpecification.html b/ang/form_processor/config/crmFormProcessorSpecification.html index c6d813e..5defdc2 100644 --- a/ang/form_processor/config/crmFormProcessorSpecification.html +++ b/ang/form_processor/config/crmFormProcessorSpecification.html @@ -1,24 +1,34 @@ <div ng-if="specification.type == 'specification'"> - <input - crm-ui-field="{name: 'specification.name', title: specification.title, required: specification.required}" + <div ng-if="!noLabel" class="label"> + <label crm-ui-for="specification.name" crm-depth="1" crm-ui-force-required="specification.required">{{specification.title}}</label> + </div> + <div ng-attr-class="{{!noLabel ? 'content' : ''}}"> + <input type="text" name="{{specification.name}}" ng-model="configuration[specification.name]" class="big crm-form-text" ng-required="specification.required" /> + </div> + <div ng-if="!noLabel" class="clear"></div> </div> <div ng-if="specification.type == 'fields'"> - <select - crm-ui-id="{name: 'specification.name', title: specification.title, required: specification.required}" - name="{{specification.name}}" - ui-jq="select2" - ui-options="{allowClear: true}" - ng-model="configuration[specification.name]" - ng-required="specification.required" - ng-options="field.name as field.label for field in fields"> - <option value=""> - {{specification.title}} - </option> - </select> + <div ng-if="!noLabel" class="label"> + <label crm-ui-for="specification.name" crm-depth="1" crm-ui-force-required="specification.required">{{specification.title}}</label> + </div> + <div ng-attr-class="{{!noLabel ? 'content' : ''}}"> + <select + name="{{specification.name}}" + ui-jq="select2" + ui-options="{allowClear: true}" + ng-model="configuration[specification.name]" + ng-required="specification.required" + ng-options="field.name as field.label for field in fields"> + <option value=""> - {{specification.title}} - </option> + </select> + </div> + <div ng-if="!noLabel" class="clear"></div> </div> <div ng-if="specification.type == 'collection'"> <table> @@ -35,6 +45,7 @@ specification="collection_spec" configuration="collection_config" fields="fields" + no-label="true" > </crm-form-processor-specification> </td> diff --git a/ang/form_processor/config/crmFormProcessorSpecification.js b/ang/form_processor/config/crmFormProcessorSpecification.js index 09aeeaa..fcf456e 100644 --- a/ang/form_processor/config/crmFormProcessorSpecification.js +++ b/ang/form_processor/config/crmFormProcessorSpecification.js @@ -8,6 +8,7 @@ specification: '=specification', fields: '=fields', configuration: '=configuration', + noLabel: '@', }, templateUrl: '~/form_processor/config/crmFormProcessorSpecification.html', // Code below is from: https://stackoverflow.com/a/19172067/3853493 @@ -19,6 +20,14 @@ var compiledContents; return function(scope, iElement, iAttr) { scope.ts = CRM.ts(null); + + scope.uiField = { + name: scope.specification.name, + }; + if (!scope.noLabel) { + scope.uiField['title'] = scope.specification.title; + scope.uiField['required'] = scope.specification.required; + } scope.addItemToCollection = function addItemToCollection(specificationBag) { var item_config = angular.copy(specificationBag.default_configuration); diff --git a/ang/form_processor/crmFormProcessorTypeConfiguration.html b/ang/form_processor/crmFormProcessorTypeConfiguration.html index 92f478f..c5512a5 100644 --- a/ang/form_processor/crmFormProcessorTypeConfiguration.html +++ b/ang/form_processor/crmFormProcessorTypeConfiguration.html @@ -1,4 +1,5 @@ -<ng-repeat ng-repeat="spec in type.configuration_spec"> + +<ng-repeat ng-repeat="spec in type.configuration_spec.parameter_specifications"> <div crm-ui-field="{name: 'spec.name', title: spec.title, required: spec.required}"> <input type="text" -- GitLab