Commit f969816fdfe077e0ec339ae560e4087fca144613

Authored by Carlos Alberto
1 parent be367201
Exists in master

Correções e melhorias no workflow

cit-esi-api/src/main/java/br/com/centralit/esi/api/document/dao/DocumentDao.java
@@ -25,4 +25,6 @@ public interface DocumentDao extends CitGenericDAO { @@ -25,4 +25,6 @@ public interface DocumentDao extends CitGenericDAO {
25 25
26 List<Document> findByProcessInstance(Long processInstanceId); 26 List<Document> findByProcessInstance(Long processInstanceId);
27 27
  28 + List<Document> findByWorkItem(Long workItemId);
  29 +
28 } 30 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/document/dao/impl/DocumentDaoHibernate.java
@@ -57,4 +57,17 @@ public class DocumentDaoHibernate extends CitGenericDAOImpl implements DocumentD @@ -57,4 +57,17 @@ public class DocumentDaoHibernate extends CitGenericDAOImpl implements DocumentD
57 57
58 return query.getResultList(); 58 return query.getResultList();
59 } 59 }
  60 +
  61 + @SuppressWarnings("unchecked")
  62 + @Override
  63 + public List<Document> findByWorkItem(Long workItemId) {
  64 + String queryString = "select document from Document as document"
  65 + + " where document.workItem.id = :workItemId"
  66 + + " and document.dataInativo is null ";
  67 +
  68 + Query query = em().createQuery(queryString);
  69 + query.setParameter("workItemId", workItemId);
  70 +
  71 + return query.getResultList();
  72 + }
60 } 73 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/document/service/DocumentService.java
@@ -28,4 +28,6 @@ public interface DocumentService extends GenericService&lt;Document, Long&gt; { @@ -28,4 +28,6 @@ public interface DocumentService extends GenericService&lt;Document, Long&gt; {
28 void buildDocument(String name, MultipartFile file, Long documentId, Long documentType, String documentDescription, Long processInstanceId, Long workItemId); 28 void buildDocument(String name, MultipartFile file, Long documentId, Long documentType, String documentDescription, Long processInstanceId, Long workItemId);
29 29
30 List<Document> findByProcessInstance(Long processInstanceId); 30 List<Document> findByProcessInstance(Long processInstanceId);
  31 +
  32 + List<Document> findByWorkItem(Long workItemId);
31 } 33 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/document/service/impl/DocumentServiceImpl.java
@@ -126,4 +126,9 @@ public class DocumentServiceImpl extends GenericServiceImpl&lt;Document, Long&gt; impl @@ -126,4 +126,9 @@ public class DocumentServiceImpl extends GenericServiceImpl&lt;Document, Long&gt; impl
126 return documentDao.findByProcessInstance(processInstanceId); 126 return documentDao.findByProcessInstance(processInstanceId);
127 } 127 }
128 128
  129 + @Override
  130 + public List<Document> findByWorkItem(Long workItemId) {
  131 + return documentDao.findByWorkItem(workItemId);
  132 + }
  133 +
129 } 134 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/ProcessInstanceServiceBase.java
@@ -52,5 +52,7 @@ public interface ProcessInstanceServiceBase extends GenericService&lt;ProcessInstan @@ -52,5 +52,7 @@ public interface ProcessInstanceServiceBase extends GenericService&lt;ProcessInstan
52 public void addMessage(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance, NotificationTemplate notificationTemplate, User[] users, Group[] groups, List<File> files); 52 public void addMessage(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance, NotificationTemplate notificationTemplate, User[] users, Group[] groups, List<File> files);
53 53
54 public void sendMessages(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance); 54 public void sendMessages(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance);
  55 +
  56 + void sendNotificationForAssignments(RuntimeEnvironment runtimeEnvironment, Long userTaskItemId, String notificationTemplateName, boolean sendAttachedFiles);
55 57
56 } 58 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/execution/service/impl/ProcessInstanceServiceBaseImpl.java
1 package br.com.centralit.esi.api.execution.service.impl; 1 package br.com.centralit.esi.api.execution.service.impl;
2 2
3 import java.io.File; 3 import java.io.File;
  4 +import java.io.FileOutputStream;
  5 +import java.io.IOException;
4 import java.util.ArrayList; 6 import java.util.ArrayList;
5 import java.util.Arrays; 7 import java.util.Arrays;
6 import java.util.Calendar; 8 import java.util.Calendar;
@@ -21,6 +23,8 @@ import br.com.centralit.esi.api.design.model.FlowVersion; @@ -21,6 +23,8 @@ import br.com.centralit.esi.api.design.model.FlowVersion;
21 import br.com.centralit.esi.api.design.model.event.Event; 23 import br.com.centralit.esi.api.design.model.event.Event;
22 import br.com.centralit.esi.api.design.service.FlowActionService; 24 import br.com.centralit.esi.api.design.service.FlowActionService;
23 import br.com.centralit.esi.api.design.service.FlowConnectionService; 25 import br.com.centralit.esi.api.design.service.FlowConnectionService;
  26 +import br.com.centralit.esi.api.document.model.Document;
  27 +import br.com.centralit.esi.api.document.service.DocumentService;
24 import br.com.centralit.esi.api.enumerated.ActorTypeEnum; 28 import br.com.centralit.esi.api.enumerated.ActorTypeEnum;
25 import br.com.centralit.esi.api.enumerated.EstimateTimeTypeEnum; 29 import br.com.centralit.esi.api.enumerated.EstimateTimeTypeEnum;
26 import br.com.centralit.esi.api.enumerated.ProcessInstanceStatusEnum; 30 import br.com.centralit.esi.api.enumerated.ProcessInstanceStatusEnum;
@@ -32,6 +36,7 @@ import br.com.centralit.esi.api.execution.model.ProcessInstance; @@ -32,6 +36,7 @@ import br.com.centralit.esi.api.execution.model.ProcessInstance;
32 import br.com.centralit.esi.api.execution.model.ProcessInstanceVariable; 36 import br.com.centralit.esi.api.execution.model.ProcessInstanceVariable;
33 import br.com.centralit.esi.api.execution.model.UserTaskItem; 37 import br.com.centralit.esi.api.execution.model.UserTaskItem;
34 import br.com.centralit.esi.api.execution.model.WorkItem; 38 import br.com.centralit.esi.api.execution.model.WorkItem;
  39 +import br.com.centralit.esi.api.execution.model.WorkItemAssignment;
35 import br.com.centralit.esi.api.execution.service.ProcessInstanceServiceBase; 40 import br.com.centralit.esi.api.execution.service.ProcessInstanceServiceBase;
36 import br.com.centralit.esi.api.execution.service.ProcessInstanceVariableService; 41 import br.com.centralit.esi.api.execution.service.ProcessInstanceVariableService;
37 import br.com.centralit.esi.api.execution.service.ProcessInstanceVariableValueService; 42 import br.com.centralit.esi.api.execution.service.ProcessInstanceVariableValueService;
@@ -43,6 +48,7 @@ import br.com.centralit.esi.api.notification.model.Message; @@ -43,6 +48,7 @@ import br.com.centralit.esi.api.notification.model.Message;
43 import br.com.centralit.esi.api.notification.model.Notification; 48 import br.com.centralit.esi.api.notification.model.Notification;
44 import br.com.centralit.esi.api.notification.model.NotificationTemplate; 49 import br.com.centralit.esi.api.notification.model.NotificationTemplate;
45 import br.com.centralit.esi.api.notification.service.NotificationService; 50 import br.com.centralit.esi.api.notification.service.NotificationService;
  51 +import br.com.centralit.esi.api.notification.service.NotificationTemplateService;
46 import br.com.centralit.esi.api.parameter.model.Parameter; 52 import br.com.centralit.esi.api.parameter.model.Parameter;
47 import br.com.centralit.esi.api.parameter.service.ParameterService; 53 import br.com.centralit.esi.api.parameter.service.ParameterService;
48 import br.com.centralit.esi.api.runtime.RuntimeContext; 54 import br.com.centralit.esi.api.runtime.RuntimeContext;
@@ -53,6 +59,7 @@ import br.com.centralit.esi.api.security.model.User; @@ -53,6 +59,7 @@ import br.com.centralit.esi.api.security.model.User;
53 import br.com.centralit.esi.api.security.service.SecurityService; 59 import br.com.centralit.esi.api.security.service.SecurityService;
54 import br.com.centralit.esi.api.subscriber.model.Subscriber; 60 import br.com.centralit.esi.api.subscriber.model.Subscriber;
55 import br.com.centralit.esi.api.util.EsiAppUtils; 61 import br.com.centralit.esi.api.util.EsiAppUtils;
  62 +import br.com.centralit.esi.exception.EsiBusinessException;
56 import br.com.centralit.framework.exception.BusinessException; 63 import br.com.centralit.framework.exception.BusinessException;
57 import br.com.centralit.framework.mail.HTMLMail; 64 import br.com.centralit.framework.mail.HTMLMail;
58 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; 65 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
@@ -103,7 +110,13 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt; @@ -103,7 +110,13 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt;
103 private NotificationService notificationService; 110 private NotificationService notificationService;
104 111
105 @Autowired 112 @Autowired
  113 + private NotificationTemplateService notificationTemplateService;
  114 +
  115 + @Autowired
106 protected SecurityService securityService; 116 protected SecurityService securityService;
  117 +
  118 + @Autowired
  119 + protected DocumentService documentService;
107 120
108 protected ProcessInstanceDao processInstanceDao; 121 protected ProcessInstanceDao processInstanceDao;
109 122
@@ -177,6 +190,7 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt; @@ -177,6 +190,7 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt;
177 runtimeEnvironment.addOrUpdateObject("processInstanceService", this); 190 runtimeEnvironment.addOrUpdateObject("processInstanceService", this);
178 runtimeEnvironment.addOrUpdateObject("processInstance", processInstance); 191 runtimeEnvironment.addOrUpdateObject("processInstance", processInstance);
179 runtimeEnvironment.addOrUpdateObject("userTaskService", workItemUserTaskService); 192 runtimeEnvironment.addOrUpdateObject("userTaskService", workItemUserTaskService);
  193 + runtimeEnvironment.addOrUpdateObject("notificationTemplateService", notificationTemplateService);
180 } 194 }
181 195
182 196
@@ -373,11 +387,12 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt; @@ -373,11 +387,12 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt;
373 String HTMLText = runtimeEnvironment.parseString(message.getHTMLText()); 387 String HTMLText = runtimeEnvironment.parseString(message.getHTMLText());
374 String from = runtimeEnvironment.parseString(message.getFrom()); 388 String from = runtimeEnvironment.parseString(message.getFrom());
375 String subject = runtimeEnvironment.parseString(message.getSubject()); 389 String subject = runtimeEnvironment.parseString(message.getSubject());
  390 + subject = UtilString.isNullOrEmpty(subject) ? " " : subject;
376 391
377 - if (EsiAppUtils.BPE_SEND_EMAIL) { 392 + if (EsiAppUtils.BPE_SEND_EMAIL && !UtilString.isNullOrEmpty(HTMLText)) {
378 htmlMail.sendMail(message.getEmails(runtimeEnvironment), from, subject, HTMLText, message.getFiles()); 393 htmlMail.sendMail(message.getEmails(runtimeEnvironment), from, subject, HTMLText, message.getFiles());
379 } 394 }
380 - if (EsiAppUtils.BPE_SEND_NOTIFICATION) { 395 + if (EsiAppUtils.BPE_SEND_NOTIFICATION && !UtilString.isNullOrEmpty(text)) {
381 Notification notification = new Notification(subject, text, message.getUsers() != null ? Arrays.asList(message.getUsers()) : null, message.getGroups() != null ? Arrays.asList(message.getGroups()) : null); 396 Notification notification = new Notification(subject, text, message.getUsers() != null ? Arrays.asList(message.getUsers()) : null, message.getGroups() != null ? Arrays.asList(message.getGroups()) : null);
382 notificationService.sendNotification(runtimeEnvironment, notification); 397 notificationService.sendNotification(runtimeEnvironment, notification);
383 } 398 }
@@ -689,7 +704,7 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt; @@ -689,7 +704,7 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt;
689 704
690 @Override 705 @Override
691 public void addMessage(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance, NotificationTemplate notificationTemplate, User[] users, Group[] groups, List<File> files) { 706 public void addMessage(RuntimeEnvironment runtimeEnvironment, ProcessInstance processInstance, NotificationTemplate notificationTemplate, User[] users, Group[] groups, List<File> files) {
692 - if (!UtilString.isNullOrEmpty(notificationTemplate.getText())) { 707 + if (!UtilString.isNullOrEmpty(notificationTemplate.getText()) || !UtilString.isNullOrEmpty(notificationTemplate.getHTMLText())) {
693 String text = runtimeEnvironment.parseString(notificationTemplate.getText()); 708 String text = runtimeEnvironment.parseString(notificationTemplate.getText());
694 String HTMLText = runtimeEnvironment.parseString(notificationTemplate.getHTMLText()); 709 String HTMLText = runtimeEnvironment.parseString(notificationTemplate.getHTMLText());
695 String from = runtimeEnvironment.parseString(EsiAppUtils.BPE_EMAIL_FROM); 710 String from = runtimeEnvironment.parseString(EsiAppUtils.BPE_EMAIL_FROM);
@@ -740,4 +755,83 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt; @@ -740,4 +755,83 @@ public abstract class ProcessInstanceServiceBaseImpl extends GenericServiceImpl&lt;
740 755
741 return processInstance; 756 return processInstance;
742 } 757 }
  758 +
  759 + public User[] getAssignedUsers(UserTaskItem userTask) {
  760 + List<User> list = new ArrayList<User>();
  761 + if (userTask.getAssignments() != null) {
  762 + for (WorkItemAssignment assignment : userTask.getAssignments()) {
  763 + if (assignment.getUser() != null) {
  764 + User user = securityService.getUser(assignment.getUser().getId());
  765 + if (user != null) {
  766 + list.add(user);
  767 + }
  768 + }
  769 + }
  770 +
  771 + User[] result = new User[list.size()];
  772 + list.toArray(result);
  773 +
  774 + return result;
  775 + }else{
  776 + return new User[0];
  777 + }
  778 + }
  779 +
  780 + public Group[] getAssignedGroups(UserTaskItem userTask) {
  781 + List<Group> list = new ArrayList<Group>();
  782 + if (userTask.getAssignments() != null) {
  783 + for (WorkItemAssignment assignment : userTask.getAssignments()) {
  784 + if (assignment.getGroup() != null) {
  785 + Group group = securityService.getGroup(assignment.getGroup().getId());
  786 + if (group != null) {
  787 + list.add(group);
  788 + }
  789 + }
  790 + }
  791 +
  792 + Group[] result = new Group[list.size()];
  793 + list.toArray(result);
  794 +
  795 + return result;
  796 + }else{
  797 + return new Group[0];
  798 + }
  799 + }
  800 +
  801 + @SuppressWarnings("resource")
  802 + @Override
  803 + public void sendNotificationForAssignments(RuntimeEnvironment runtimeEnvironment, Long userTaskItemId, String notificationTemplateName, boolean sendAttachedFiles) {
  804 + NotificationTemplate notificationTemplate = notificationTemplateService.findByName(notificationTemplateName);
  805 + if (notificationTemplate != null) {
  806 + UserTaskItem userTaskItem = workItemUserTaskService.getReference(userTaskItemId);
  807 + if (userTaskItem != null) {
  808 + ProcessInstance processInstance = userTaskItem.getProcessInstance();
  809 +
  810 + List<File> files = null;
  811 + if (sendAttachedFiles) {
  812 + List<Document> documents = documentService.findByProcessInstance(processInstance.getId());
  813 + if (documents != null) {
  814 + files = new ArrayList<File>();
  815 + for (Document document : documents) {
  816 + try {
  817 + if (document.getAttachedFile() != null && document.getAttachedFile().getFile() != null) {
  818 + File tempFile = File.createTempFile("temp", "");
  819 + FileOutputStream fos = new FileOutputStream(tempFile);
  820 + fos.write(document.getAttachedFile().getFile());
  821 +
  822 + files.add(tempFile);
  823 + }
  824 + } catch (IOException e) {
  825 + e.printStackTrace();
  826 + throw new EsiBusinessException(e);
  827 + }
  828 + }
  829 + }
  830 + }
  831 +
  832 + this.addMessage(runtimeEnvironment, processInstance, notificationTemplate, this.getAssignedUsers(userTaskItem), this.getAssignedGroups(userTaskItem), files);
  833 + this.sendMessages(runtimeEnvironment, processInstance);
  834 + }
  835 + }
  836 + }
743 } 837 }
744 \ No newline at end of file 838 \ No newline at end of file
cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java
@@ -175,7 +175,7 @@ public class PackServiceImpl extends GenericServiceImpl&lt;Pack, Long&gt; implements P @@ -175,7 +175,7 @@ public class PackServiceImpl extends GenericServiceImpl&lt;Pack, Long&gt; implements P
175 if (pack.getNotifications() != null) { 175 if (pack.getNotifications() != null) {
176 for (NotificationTemplate notification : pack.getNotifications()) { 176 for (NotificationTemplate notification : pack.getNotifications()) {
177 notification = notificationTemplateService.save(notification, pack.getReplaceElement()); 177 notification = notificationTemplateService.save(notification, pack.getReplaceElement());
178 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.NOTIFICATION, notification.getId(), notification.getName(), notification.getSubject())); 178 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.NOTIFICATION, notification.getId(), notification.getName(), notification.getDescription()));
179 } 179 }
180 } 180 }
181 if (pack.isNew()) { 181 if (pack.isNew()) {
cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ConvertUtilsESI.java
@@ -159,6 +159,18 @@ public class ConvertUtilsESI { @@ -159,6 +159,18 @@ public class ConvertUtilsESI {
159 return str.length() == 24 && str.charAt(4) == '-' && str.charAt(7) == '-' && str.charAt(10) == 'T' && str.charAt(13) == ':'; 159 return str.length() == 24 && str.charAt(4) == '-' && str.charAt(7) == '-' && str.charAt(10) == 'T' && str.charAt(13) == ':';
160 } 160 }
161 161
  162 + public static boolean isTimestamp(final String str) {
  163 + try {
  164 + if (str.length() >= 19 && str.charAt(4) == '-' && str.charAt(7) == '-' && str.charAt(10) == ' ' && str.charAt(13) == ':') {
  165 + Timestamp ts = Timestamp.valueOf(str);
  166 + return ts != null;
  167 + }
  168 +
  169 + } catch (Exception e) {
  170 + }
  171 + return false;
  172 + }
  173 +
162 /** 174 /**
163 * @param value 175 * @param value
164 * @return 176 * @return
@@ -173,6 +185,9 @@ public class ConvertUtilsESI { @@ -173,6 +185,9 @@ public class ConvertUtilsESI {
173 }else if (value instanceof Calendar) { 185 }else if (value instanceof Calendar) {
174 SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 186 SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
175 return dateFormat.format(((Calendar) value).getTime()); 187 return dateFormat.format(((Calendar) value).getTime());
  188 + }else if (value instanceof Timestamp) {
  189 + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
  190 + return dateFormat.format(((Timestamp) value).getTime());
176 }else if (value instanceof Date) { 191 }else if (value instanceof Date) {
177 SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 192 SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
178 return dateFormat.format(((Date) value).getTime()); 193 return dateFormat.format(((Date) value).getTime());
@@ -645,5 +660,5 @@ public class ConvertUtilsESI { @@ -645,5 +660,5 @@ public class ConvertUtilsESI {
645 660
646 return result; 661 return result;
647 } 662 }
648 - 663 +
649 } 664 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ParseUtilsESI.java
1 package br.com.centralit.esi.api.util; 1 package br.com.centralit.esi.api.util;
2 2
3 import java.lang.reflect.Method; 3 import java.lang.reflect.Method;
  4 +import java.sql.Timestamp;
4 import java.util.HashMap; 5 import java.util.HashMap;
5 6
6 import org.apache.commons.lang.text.StrSubstitutor; 7 import org.apache.commons.lang.text.StrSubstitutor;
@@ -69,6 +70,8 @@ public class ParseUtilsESI { @@ -69,6 +70,8 @@ public class ParseUtilsESI {
69 result = json.get(property); 70 result = json.get(property);
70 if (result instanceof String && ConvertUtilsESI.isJsonDate((String) result)) { 71 if (result instanceof String && ConvertUtilsESI.isJsonDate((String) result)) {
71 result = UtilDate.jsonToDate((String) result); 72 result = UtilDate.jsonToDate((String) result);
  73 + }else if (result instanceof String && ConvertUtilsESI.isTimestamp((String) result)) {
  74 + return Timestamp.valueOf((String) result);
72 } 75 }
73 } catch (Exception e) { 76 } catch (Exception e) {
74 } 77 }
cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
@@ -848,7 +848,8 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -848,7 +848,8 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
848 str.append("var parameterService = runtimeEnvironment.getObject(\"parameterService\");\n\n"); 848 str.append("var parameterService = runtimeEnvironment.getObject(\"parameterService\");\n\n");
849 str.append("var EnvironmentVariable = importNames.EnvironmentVariable;\n\n"); 849 str.append("var EnvironmentVariable = importNames.EnvironmentVariable;\n\n");
850 str.append("var VariableTypeEnum = importNames.VariableTypeEnum;\n"); 850 str.append("var VariableTypeEnum = importNames.VariableTypeEnum;\n");
851 - str.append("var HashMap = importNames.HashMap;\n\n"); 851 + str.append("var HashMap = importNames.HashMap;\n");
  852 + str.append("var StringBuilder = importNames.StringBuilder;\n\n");
852 853
853 str.append("addOrUpdateObject = function(name, value) {\n"); 854 str.append("addOrUpdateObject = function(name, value) {\n");
854 str.append(" runtimeEnvironment.addOrUpdateObject(name, value);\n"); 855 str.append(" runtimeEnvironment.addOrUpdateObject(name, value);\n");
@@ -930,6 +931,10 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -930,6 +931,10 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
930 str.append(" userTaskService.assign(runtimeEnvironment, userTask, "+uuid+".ActorTypeEnum.GROUP, type, group);\n"); 931 str.append(" userTaskService.assign(runtimeEnvironment, userTask, "+uuid+".ActorTypeEnum.GROUP, type, group);\n");
931 str.append("};\n\n"); 932 str.append("};\n\n");
932 933
  934 + str.append("sendNotificationForAssignments = function(userTaskId, templateName, sendAttachedFiles) {\n");
  935 + str.append(" processInstanceService.sendNotificationForAssignments(runtimeEnvironment, userTaskId, templateName, sendAttachedFiles);\n");
  936 + str.append("};\n\n");
  937 +
933 return str.toString(); 938 return str.toString();
934 } 939 }
935 940
cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/NotificationTemplateListController.js
@@ -9,6 +9,7 @@ citApp.controller(&#39;NotificationTemplateListController&#39;, [&quot;$scope&quot;, &quot;Notification @@ -9,6 +9,7 @@ citApp.controller(&#39;NotificationTemplateListController&#39;, [&quot;$scope&quot;, &quot;Notification
9 }; 9 };
10 10
11 $scope.headers = [ {title : $translate.instant('LABEL.NOME'), value : 'name', tamanho: 30 } , 11 $scope.headers = [ {title : $translate.instant('LABEL.NOME'), value : 'name', tamanho: 30 } ,
  12 + {title : $translate.instant('LABEL.DESCRICAO'), value : 'description' },
12 {title : $translate.instant('LABEL.ASSUNTO'), value : 'subject' }]; 13 {title : $translate.instant('LABEL.ASSUNTO'), value : 'subject' }];
13 14
14 $scope.filterCriteria = { 15 $scope.filterCriteria = {
@@ -16,8 +17,9 @@ citApp.controller(&#39;NotificationTemplateListController&#39;, [&quot;$scope&quot;, &quot;Notification @@ -16,8 +17,9 @@ citApp.controller(&#39;NotificationTemplateListController&#39;, [&quot;$scope&quot;, &quot;Notification
16 dir : 'asc', 17 dir : 'asc',
17 sort : 'name', 18 sort : 'name',
18 limit : 10, 19 limit : 10,
19 - fields: ['id', 'name', 'subject'], 20 + fields: ['id', 'name', 'description', 'subject'],
20 filters : [ {type : 'string', field : 'name' } , 21 filters : [ {type : 'string', field : 'name' } ,
  22 + {type : 'string', field : 'description' },
21 {type : 'string', field : 'subject' }] 23 {type : 'string', field : 'subject' }]
22 }; 24 };
23 25
cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/PackController.js
@@ -305,7 +305,7 @@ citApp.controller(&#39;PackController&#39;, [&quot;$scope&quot;, &quot;PackRepository&quot;, &quot;DataObjectRepo @@ -305,7 +305,7 @@ citApp.controller(&#39;PackController&#39;, [&quot;$scope&quot;, &quot;PackRepository&quot;, &quot;DataObjectRepo
305 305
306 $scope.setNotificationTemplate = function (item) { 306 $scope.setNotificationTemplate = function (item) {
307 if (item && item.id) { 307 if (item && item.id) {
308 - $scope.addElement('NOTIFICATION', item, 'subject'); 308 + $scope.addElement('NOTIFICATION', item, 'description');
309 } 309 }
310 $scope.clearNotificationTemplate(); 310 $scope.clearNotificationTemplate();
311 }; 311 };
cit-esi-web/src/main/webapp/html/businessProcess/businessProcessData.html
@@ -166,7 +166,7 @@ @@ -166,7 +166,7 @@
166 </div> 166 </div>
167 </div> 167 </div>
168 <div class="col-md-2" ng-if="processoNegocio.target == 'FLOW' && !processoNegocio.displayable"> 168 <div class="col-md-2" ng-if="processoNegocio.target == 'FLOW' && !processoNegocio.displayable">
169 - <label-input ng-type="text" ng-id="processoNegocio.cronExpression" ng-label="LABEL.EXPRESSAO_CRON" ng-obrigatorio="false" 169 + <label-input ng-type="text" ng-id="processoNegocio.cronExpression" ng-label="ESI.EXPRESSAO_CRON" ng-obrigatorio="false"
170 ng-disabled="!edit" ng-model="processoNegocio.cronExpression" ng-custom-maxlength="255" form="processoNegocioForm"/> 170 ng-disabled="!edit" ng-model="processoNegocio.cronExpression" ng-custom-maxlength="255" form="processoNegocioForm"/>
171 </div> 171 </div>
172 </div> 172 </div>
cit-esi-web/src/main/webapp/html/pack/packEdit.html
@@ -307,7 +307,7 @@ @@ -307,7 +307,7 @@
307 <auto-complete 307 <auto-complete
308 ng-find="findNotificationTemplate(value)" 308 ng-find="findNotificationTemplate(value)"
309 ng-acao-borracha="clearNotificationTemplate()" 309 ng-acao-borracha="clearNotificationTemplate()"
310 - ng-item="item.subject" 310 + ng-item="item.description"
311 ng-label="" 311 ng-label=""
312 ng-model="notificationTemplate" 312 ng-model="notificationTemplate"
313 ng-set-result="setNotificationTemplate(item)" 313 ng-set-result="setNotificationTemplate(item)"