CRM-14483 - crmCaseType - Implement row addition for activity sets
authorTim Otten <totten@civicrm.org>
Thu, 8 May 2014 23:46:59 +0000 (16:46 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 20 May 2014 03:15:26 +0000 (20:15 -0700)
This abstracts some of the code used for addition of activity types

js/angular-crmCaseType.js
partials/crmCaseType/activityTypesTable.html
partials/crmCaseType/addName.html [new file with mode: 0644]
partials/crmCaseType/pipelineTable.html
partials/crmCaseType/timelineTable.html

index c7b48bc355ba9d4a875602eb506682f698a573f1..6873223b2f02852e4e01ae5ced22ac679ae23228 100644 (file)
     }
   ]);
 
+  // Add a new record by name.
+  // Ex: <crmAddName crm-options="['Alpha','Beta','Gamma']" crm-var="newItem" crm-on-add="callMyCreateFunction(newItem)" />
+  crmCaseType.directive('crmAddName', function(){
+    return {
+      restrict: 'AE',
+      scope: {
+        crmOptions: '=',
+        crmVar: '=',
+        crmOnAdd: '&'
+      },
+      templateUrl: partialUrl('addName.html')
+    };
+  });
+
   crmCaseType.controller('CaseTypeCtrl', function($scope) {
     $scope.partialUrl = partialUrl;
 
index a2299e3ff1a0bbf3416f250938c80733d5df5547..27ae5b12851a4b292051673e5de556d11eacdf7c 100644 (file)
@@ -27,19 +27,11 @@ Required vars: caseType
   </tr>
   <tr class="addRow">
     <td colspan="3">
-      Add:
-        <input
-                ui-jq="autocomplete"
-                ui-options="{source:activityTypeNames}"
-                ng-model="newTimelineActivity"
-                class="add-activity"
-                />
-        <button
-                ng-class="{disabled: (newTimelineActivity == '' || newTimelineActivity == null)}"
-                ng-disabled="newTimelineActivity == '' || newTimelineActivity == null"
-                ng-click="addActivityType(newTimelineActivity); newTimelineActivity = ''"
-                >Add</button>
-      <!-- ng-click="addActivity(activitySet, newTimelineActivity); newTimelineActivity = ''" -->
+      <div crm-add-name
+           crm-options="activityTypeNames"
+           crm-var="newActivity"
+           crm-on-add="addActivityType(newActivity)"
+              />
     </td>
   </tr>
   </tbody>
diff --git a/partials/crmCaseType/addName.html b/partials/crmCaseType/addName.html
new file mode 100644 (file)
index 0000000..5850ef6
--- /dev/null
@@ -0,0 +1,17 @@
+<!--
+Directive: crmAddName
+-->
+Add:
+<input
+        ui-jq="autocomplete"
+        ui-options="{source:crmOptions}"
+        ng-model="crmVar"
+        class="add-activity"
+        />
+
+<button
+        ng-class="{disabled: (crmVar == '' || crmVar == null)}"
+        ng-disabled="crmVar == '' || crmVar == null"
+        ng-click="crmOnAdd(); crmVar = ''"
+        >Add
+</button>
index 05db80c49f89f160f5b062cb94f8c243c1510e83..87abca204c21d5b0c85fd53874782d773e8a5a32 100644 (file)
@@ -19,5 +19,14 @@ Required vars: activitySet
       </a>
     </td>
   </tr>
+  <tr class="addRow">
+    <td colspan="3">
+      <div crm-add-name
+           crm-options="activityTypeNames"
+           crm-var="newActivity"
+           crm-on-add="addActivity(activitySet, newActivity)"
+              />
+    </td>
+  </tr>
   </tbody>
 </table>
index c44e41253cd4adc8d5f99e4db5a7f8e9a6b9e6c8..743c3fa4e217e4e4834f89f9f2e8802b763c899d 100644 (file)
@@ -44,5 +44,14 @@ Required vars: activitySet
       </a>
     </td>
   </tr>
+  <tr class="addRow">
+    <td colspan="6">
+      <div crm-add-name
+           crm-options="activityTypeNames"
+           crm-var="newActivity"
+           crm-on-add="addActivity(activitySet, newActivity)"
+              />
+    </td>
+  </tr>
   </tbody>
 </table>