CRM-14484 - crmCaseType - Make activity lists sortable
authorTim Otten <totten@civicrm.org>
Fri, 9 May 2014 01:01:13 +0000 (18:01 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 20 May 2014 03:15:26 +0000 (20:15 -0700)
CRM/Core/Page/Angular.php
css/angular-crmCaseType.css
partials/crmCaseType/activityTypesTable.html
partials/crmCaseType/pipelineTable.html
partials/crmCaseType/timelineTable.html

index 9d34287963f54e0f6ceae9b5065b6d11c2b940f7..6702e9117110466f6fadb01099ae7754ec9b456f 100644 (file)
@@ -54,6 +54,8 @@ class CRM_Core_Page_Angular extends CRM_Core_Page {
   public static function getAngularModules() {
     $angularModules = array();
     $angularModules['ui.utils'] = array('ext' => 'civicrm', 'js' => array('packages/bower_components/angular-ui-utils/ui-utils.min.js'));
+    $angularModules['ui.sortable'] = array('ext' => 'civicrm', 'js' => array('packages/bower_components/angular-ui-sortable/sortable.min.js'));
+
     foreach (CRM_Core_Component::getEnabledComponents() as $component) {
       $angularModules = array_merge($angularModules, $component->getAngularModules());
     }
index 21d928927c10fb6fdbd9840e0060466a31335097..8d6ee1ef3c43a8b7dcf6c5e4a747f65671a2996f 100644 (file)
@@ -1,3 +1,7 @@
+.crmCaseType .ui-icon-grip-dotted-vertical {
+    vertical-align: middle;
+    cursor: move;
+}
 .crmCaseType .ui-icon {
     margin: 0.4em 0.2em 0 0;
     cursor: pointer;
index 27ae5b12851a4b292051673e5de556d11eacdf7c..039f02bc11963af12517c56a50bc287c57df7539 100644 (file)
@@ -11,9 +11,10 @@ Required vars: caseType
   </tr>
   </thead>
 
-  <tbody>
+  <tbody ui-sortable ng-model="caseType.definition.activityTypes">
   <tr ng-repeat="activityType in caseType.definition.activityTypes">
     <td>
+      <span class="icon ui-icon-grip-dotted-vertical"></span>
       {{ activityType.name }}
     </td>
     <td>
@@ -25,6 +26,9 @@ Required vars: caseType
       </a>
     </td>
   </tr>
+  </tbody>
+
+  <tfoot>
   <tr class="addRow">
     <td colspan="3">
       <div crm-add-name
@@ -34,5 +38,5 @@ Required vars: caseType
               />
     </td>
   </tr>
-  </tbody>
+  </tfoot>
 </table>
index 87abca204c21d5b0c85fd53874782d773e8a5a32..02854d8142a51294654b2bff8049d5a9afe94ca6 100644 (file)
@@ -10,15 +10,21 @@ Required vars: activitySet
   </tr>
   </thead>
 
-  <tbody>
+  <tbody ui-sortable ng-model="activitySet.activityTypes">
   <tr ng-repeat="activity in activitySet.activityTypes">
-    <td>{{ activity.name }}</td>
+    <td>
+      <span class="icon ui-icon-grip-dotted-vertical"></span>
+      {{ activity.name }}
+    </td>
     <td>
       <a class="crm-hover-button" ng-click="removeItem(activitySet.activityTypes, activity)">
         <span class="icon delete-icon" title="Remove"></span>
       </a>
     </td>
   </tr>
+  </tbody>
+
+  <tfoot>
   <tr class="addRow">
     <td colspan="3">
       <div crm-add-name
@@ -28,5 +34,5 @@ Required vars: activitySet
               />
     </td>
   </tr>
-  </tbody>
+  </tfoot>
 </table>
index 743c3fa4e217e4e4834f89f9f2e8802b763c899d..8b8b3187babe942547d4de31618a9826c95d1ba3 100644 (file)
@@ -14,9 +14,10 @@ Required vars: activitySet
   </tr>
   </thead>
 
-  <tbody>
+  <tbody ui-sortable ng-model="activitySet.activityTypes">
   <tr ng-repeat="activity in activitySet.activityTypes">
     <td>
+      <span class="icon ui-icon-grip-dotted-vertical"></span>
       {{ activity.name }}
     </td>
     <td>
@@ -44,6 +45,9 @@ Required vars: activitySet
       </a>
     </td>
   </tr>
+  </tbody>
+
+  <tfoot>
   <tr class="addRow">
     <td colspan="6">
       <div crm-add-name
@@ -53,5 +57,5 @@ Required vars: activitySet
               />
     </td>
   </tr>
-  </tbody>
+  </tfoot>
 </table>