processProperties.jsp 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <script type="text/javascript">
  4. //流程对象
  5. var process = workflow.process;
  6. //属性表格定义
  7. rows = [
  8. { "name": "ID", "group": "流程", "value": process.id,"field": "id", "editor": "text" },
  9. { "name": "名称", "group": "流程", "value": process.name, "field": "name", "editor": "text" },
  10. { "name": "命名空间", "group": "流程", "value": process.category, "field": "category", "editor": "text" },
  11. { "name": "描述", "group": "流程", "value": process.documentation, "field": "documentation", "editor": "text" }
  12. ];
  13. //保存属性
  14. function saveProcessProperties(){
  15. process.id=rows[0].value;
  16. process.name=rows[1].value;
  17. process.category=rows[2].value;
  18. process.documentation=rows[3].value;
  19. }
  20. //构建属性表格数据
  21. function populateProcessProperites(){
  22. rows[0].value=process.id;
  23. rows[1].value=process.name;
  24. rows[2].value=process.category;
  25. rows[3].value=process.documentation;
  26. propertygrid();
  27. }
  28. //加载属性表格数据
  29. function propertygrid(){
  30. $('#general-properties').propertygrid('loadData', rows);
  31. }
  32. $(function(){
  33. //创建属性表格
  34. $('#general-properties').propertygrid({
  35. width: 'auto',
  36. height: 'auto',
  37. showGroup: false,
  38. scrollbarSize: 0,
  39. border:0,
  40. columns: [[
  41. { field: 'name', title: '<t:mutiLang langKey="bpm.designer.page.task.property.name"/>', width: 30, resizable: false },
  42. { field: 'value', title: '<t:mutiLang langKey="bpm.designer.page.task.property.value"/>', width: 100, resizable: false }
  43. ]],
  44. onAfterEdit:function(){
  45. saveProcessProperties();//自动保存
  46. }
  47. });
  48. propertygrid();
  49. });
  50. </script>
  51. <%--流程属性页面 --%>
  52. <script type="text/javascript">
  53. <!--
  54. //获取监听器id
  55. function getOldListenerIds(){
  56. var listeners=process.listeners;
  57. var listenersIds=new Array();
  58. for(var i=0;i<listeners.getSize();i++){
  59. var listener = listeners.get(i);
  60. listenersIds.push(listener.getId());
  61. }
  62. return listenersIds.join(",");
  63. }
  64. //添加监听器
  65. function addListener(id,event,serviceType,value){
  66. var ls=process.getListener(id);
  67. if(!ls){
  68. var listener = new draw2d.Process.Listener();
  69. listener.id=id;
  70. listener.event = event;
  71. listener.serviceType=serviceType;
  72. listener.serviceClass = value;
  73. listener.serviceExpression = value;
  74. process.addListener(listener);
  75. }
  76. }
  77. //删除监听器
  78. function removeListener(id){
  79. process.deleteListener(id);
  80. }
  81. //-->
  82. </script>
  83. <div id="process-properties-layout" class="easyui-layout" fit="true">
  84. <div id="process-properties-panel" region="center" border="true">
  85. <div id="task-properties-accordion" class="easyui-accordion" fit="true" border="false">
  86. <div id="general" style="padding:0px;border:0px" title="<t:mutiLang langKey="bpm.designer.page.panel"/>" class="properties-menu">
  87. <div id="task-properties-toolbar-panel" region="north" border="false" style="padding: 3px; height: 25px; background: #E1F0F2;">
  88. <t:mutiLang langKey="bpm.designer.page.type"/>:
  89. <select id="typeid" style="width: 150px; padding: 1px">
  90. <option value="0">
  91. --请选择类型--
  92. </option>
  93. <c:forEach items="${proTypeList}" var="type">
  94. <!-- update-begin--Author:chenxu Date:20130408 for:修改流程时,流程类型不能显示 -->
  95. <option value="${type.id}" <c:if test="${type.id==typeId}">selected="selected"</c:if>>
  96. <!-- update-end--Author:chenxu Date:20130408 for:修改流程时,流程类型不能显示 -->
  97. ${type.typename}
  98. </option>
  99. </c:forEach>
  100. </select>
  101. </div>
  102. <table id="general-properties">
  103. </table>
  104. </div>
  105. <div id="eventlisteners" title="<t:mutiLang langKey="bpm.designer.page.execute.monitor"/>" style="overflow: hidden; padding: 1px;">
  106. <t:datagrid name="listenerList" actionUrl="processController.do?listenerGridYouXiao" title="bpm.designer.page.listener.tipmsg" pagination="false" extendParams="queryParams:{ids:getOldListenerIds()}," idField="id">
  107. <t:dgCol title="id" hidden="true" field="id"></t:dgCol>
  108. <t:dgCol title="bpm.designer.page.listener.name" field="listenername" width="30"></t:dgCol>
  109. <t:dgCol title="bpm.designer.page.listener.even" field="listenereven" width="30"></t:dgCol>
  110. <t:dgCol title="bpm.designer.page.listener.type" field="listenertype" width="30" dictionary="listenertype"></t:dgCol>
  111. <t:dgCol title="bpm.designer.page.listener.value" field="listenervalue" width="50"></t:dgCol>
  112. <t:dgCol title="bpm.designer.page.listener.opt" field="opt" width="30"></t:dgCol>
  113. <t:dgFunOpt funname="delRow(id)" title="bpm.designer.page.listener.del"></t:dgFunOpt>
  114. </t:datagrid>
  115. <div id="eventlistenerListtb" style="padding: 3px; height: 25px">
  116. <div style="float: left;">
  117. <div class="form">
  118. <input name="listenerid" type="hidden" id="listenerid">
  119. <input name="listenername" type="hidden" id="listenername">
  120. <input name="listenereven" type="hidden" id="listenereven">
  121. <input name="listenertype" type="hidden" id="listenertype">
  122. <input name="listenervalue" type="hidden" id="listenervalue">
  123. <t:choose hiddenName="listenerid" hiddenid="id" fun="saveProcessListener" url="processController.do?chooseListener&typeid=1" textname="listenername,listenereven,listenertype,listenervalue" name="listenerList" icon="icon-add" title="执行监听器"></t:choose>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <script type="text/javascript">
  132. //保存监听
  133. function saveProcessListener() {
  134. var listenerid = $('#listenerid').val();
  135. var listenereven = $('#listenereven').val();
  136. var listenertype = $('#listenertype').val();
  137. var listenervalue = $('#listenervalue').val();
  138. var listenername = $('#listenername').val();
  139. var listenerids = listenerid.split(",");
  140. var listenerevens = listenereven.split(",");
  141. var listenertypes = listenertype.split(",");
  142. var listenervalues = listenervalue.split(",");
  143. var listenernames = listenername.split(",");
  144. for(var i=0;i<listenerids.length;i++){
  145. var ls = process.getListener(listenerids[i]);
  146. addListener(listenerids[i],listenerevens[i],listenertypes[i],listenervalues[i]);
  147. if(!ls){
  148. $('#listenerList').datagrid('appendRow',{
  149. id:listenerids[i],
  150. listenername:listenernames[i],
  151. listenereven:listenerevens[i],
  152. listenertype:listenertypes[i],
  153. listenervalue:listenervalues[i]
  154. });
  155. }
  156. }
  157. }
  158. function setProcessListener(index)
  159. {
  160. var row = $('#eventlistenerList').datagrid('getRows')[index];
  161. $.ajax({
  162. url : "processController.do?setProcessListener",
  163. type : 'POST',
  164. data : {
  165. id :row.id
  166. },
  167. dataType : 'json',
  168. success : function(data) {
  169. if (data.success) {
  170. var listener = new draw2d.Process.Listener();
  171. listener.event=row.TPListerer_listenereven;
  172. listener.id=row.id;
  173. listener.serviceType = row.TPListerer_listenertype;
  174. if(row.TPListerer_listenertype=="javaClass")
  175. {
  176. listener.serviceClass= row.TPListerer_listenervalue;
  177. }
  178. else
  179. {
  180. listener.serviceExpression=row.TPListerer_listenervalue;
  181. }
  182. process.listeners.add(listener);
  183. }
  184. else
  185. {
  186. process.deleteListener(row.id);
  187. }
  188. reloadeventlistenerList();
  189. }
  190. });
  191. }
  192. //删除流程监听
  193. function delRow(id){
  194. var rows=$('#listenerList').datagrid('getSelections');
  195. for(var i=0;i<rows.length;i++){
  196. var row=rows[i];
  197. var index=$('#listenerList').datagrid('getRowIndex',row);
  198. $('#listenerList').datagrid('deleteRow',index);
  199. removeListener(row.id);
  200. }
  201. }
  202. </script>