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