workplan_edit.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:17k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html; charset=utf-8"%>
  2. <%@ page import = "java.net.URLEncoder"%>
  3. <%@ page import = "java.util.*"%>
  4. <%@ page import = "cn.js.fan.util.*"%>
  5. <%@ page import = "cn.js.fan.web.*"%>
  6. <%@ page import = "com.redmoon.oa.workplan.*"%>
  7. <%@ page import = "com.redmoon.oa.kernel.*"%>
  8. <%@ page import = "com.redmoon.oa.dept.*"%>
  9. <%@ page import = "com.redmoon.oa.person.*"%>
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  11. <html>
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  14. <title>工作计划编辑</title>
  15. <link href="../common.css" rel="stylesheet" type="text/css">
  16. <script src="../inc/common.js"></script>
  17. <script language="JavaScript" type="text/JavaScript">
  18. <!--
  19. function findObj(theObj, theDoc)
  20. {
  21.   var p, i, foundObj;
  22.   
  23.   if(!theDoc) theDoc = document;
  24.   if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  25.   {
  26.     theDoc = parent.frames[theObj.substring(p+1)].document;
  27.     theObj = theObj.substring(0,p);
  28.   }
  29.   if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  30.   for (i=0; !foundObj && i < theDoc.forms.length; i++) 
  31.     foundObj = theDoc.forms[i][theObj];
  32.   for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
  33.     foundObj = findObj(theObj,theDoc.layers[i].document);
  34.   if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  35.   
  36.   return foundObj;
  37. }
  38. var selUserNames = "";
  39. var selUserRealNames = "";
  40. function getSelUserNames() {
  41. return selUserNames;
  42. }
  43. function getSelUserRealNames() {
  44. return selUserRealNames;
  45. }
  46. function setUsers(users, userRealNames) {
  47. if (doWhat=="users") {
  48. form1.users.value = users;
  49. form1.userRealNames.value = userRealNames;
  50. }
  51. if (doWhat=="principal") {
  52. form1.principal.value = users;
  53. form1.principalRealNames.value = userRealNames;
  54. }
  55. }
  56. var doWhat = "";
  57. function openWinUsers() {
  58. doWhat = "users";
  59. selUserNames = form1.users.value;
  60. selUserRealNames = form1.userRealNames.value;
  61. showModalDialog('../user_multi_sel.jsp',window.self,'dialogWidth:600px;dialogHeight:480px;status:no;help:no;')
  62. }
  63. function openWinPrincipal() {
  64. doWhat = "principal";
  65. selUserNames = form1.principal.value;
  66. selUserRealNames = form1.principalRealNames.value;
  67. showModalDialog('../user_multi_sel.jsp',window.self,'dialogWidth:600px;dialogHeight:480px;status:no;help:no;')
  68. }
  69. function openWinDepts() {
  70. var ret = showModalDialog('../dept_multi_sel.jsp',window.self,'dialogWidth:480px;dialogHeight:320px;status:no;help:no;')
  71. if (ret==null)
  72. return;
  73. form1.deptNames.value = "";
  74. form1.depts.value = "";
  75. for (var i=0; i<ret.length; i++) {
  76. if (form1.deptNames.value=="") {
  77. form1.depts.value += ret[i][0];
  78. form1.deptNames.value += ret[i][1];
  79. }
  80. else {
  81. form1.depts.value += "," + ret[i][0];
  82. form1.deptNames.value += "," + ret[i][1];
  83. }
  84. }
  85. if (form1.depts.value.indexOf("<%=DeptDb.ROOTCODE%>")!=-1) {
  86. form1.depts.value = "<%=DeptDb.ROOTCODE%>";
  87. form1.deptNames.value = "全部";
  88. }
  89. }
  90. function getDepts() {
  91. return form1.depts.value;
  92. }
  93. //-->
  94. </script>
  95. <script src="../inc/calendar.js"></script>
  96. <style type="text/css">
  97. <!--
  98. .style2 {font-size: 14px}
  99. -->
  100. </style>
  101. </head>
  102. <body background="" leftmargin="0" topmargin="5" marginwidth="0" marginheight="0">
  103. <jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
  104. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  105. <%
  106. String priv="read";
  107. if (!privilege.isUserPrivValid(request, priv)) {
  108. out.print(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  109. return;
  110. }
  111. int id = ParamUtil.getInt(request, "id");
  112. WorkPlanMgr wpm = new WorkPlanMgr();
  113. WorkPlanDb wpd = null;
  114. // 由这里来检查权限
  115. try {
  116. wpd = wpm.getWorkPlanDb(request, id, "edit");
  117. }
  118. catch (ErrMsgException e) {
  119. out.print(StrUtil.Alert_Back(e.getMessage()));
  120. return;
  121. }
  122. String beginDate = DateUtil.format(wpd.getBeginDate(), "yyyy-MM-dd");
  123. String endDate = DateUtil.format(wpd.getEndDate(), "yyyy-MM-dd");
  124. %>
  125. <%@ include file="workplan_inc_menu_top.jsp"%>
  126. <br>
  127. <table class="main" cellSpacing="1" cellPadding="2" width="600" align="center" border="0">
  128. <form action="workplan_do.jsp?op=modify&id=<%=id%>" name="form1" method="post" enctype="multipart/form-data">
  129.   <tbody>
  130.     <tr>
  131.       <td colspan="2" noWrap class="right-title">修改计划</td>
  132.     </tr>
  133.     <tr>
  134.       <td class="TableContent" noWrap>计划名称:</td>
  135.       <td class="TableData"><input name="title" id="title" size="36" maxLength="200" value="<%=wpd.getTitle()%>">
  136.   <input type=hidden name="id" value="<%=wpd.getId()%>">
  137.   </td>
  138.     </tr>
  139.     <tr>
  140.       <td class="TableContent" noWrap>计划内容:</td>
  141.       <td class="TableData"><textarea name="content" cols="45" rows="5" wrap="yes" id="content"><%=wpd.getContent()%></textarea></td>
  142.     </tr>
  143.     <tr>
  144.       <td class="TableContent" noWrap>有效期:</td>
  145.       <td class="TableData">开始日期:
  146. <input readonly type="text" id="beginDate" name="beginDate" size="10" onClick="showcalendar(event, this)" onFocus="showcalendar(event, this);if(this.value=='0000-00-00') this.value=''" value="<%=beginDate%>">
  147.            为空则立即生效<br>
  148.         结束日期: 
  149. <input readonly type="text" id="endDate" name="endDate" size="10" onClick="showcalendar(event, this)" onFocus="showcalendar(event, this);if(this.value=='0000-00-00') this.value=''" value="<%=endDate%>"></td>
  150.     </tr>
  151.     <tr>
  152.       <td class="TableContent" noWrap>计划类型:</td>
  153.       <td class="TableData">
  154.   <%
  155.   WorkPlanTypeDb wptd = new WorkPlanTypeDb();
  156.   String opts = "";
  157.   Iterator ir = wptd.list().iterator();
  158.   while (ir.hasNext()) {
  159.    wptd = (WorkPlanTypeDb)ir.next();
  160.    opts += "<option value='" + wptd.getId() + "'>" + wptd.getName() + "</option>";
  161.   }
  162.   %>
  163.   <select name="typeId" id="typeId">
  164.   <%=opts%>
  165.       </select>
  166.   <script>
  167.   form1.typeId.value = "<%=wpd.getTypeId()%>";
  168.   </script>   </td>
  169.     </tr>
  170.     <tr>
  171.       <td class="TableContent" noWrap>发布范围(部门):</td>
  172.       <td class="TableData">
  173.   <%
  174.   String[] arydepts = wpd.getDepts();
  175.   String[] aryusers = wpd.getUsers();
  176.   String depts = "";
  177.   String deptNames = "";
  178.   String users = "";
  179.   String userRealNames = "";
  180.   String principal = "";
  181.   String principalRealNames = "";
  182.   
  183.   int len = 0;
  184.   if (arydepts!=null) {
  185.    len = arydepts.length;
  186. DeptDb dd = new DeptDb();
  187.    for (int i=0; i<len; i++) {
  188. if (depts.equals("")) {
  189. depts = arydepts[i];
  190. dd = dd.getDeptDb(arydepts[i]);
  191. deptNames = dd.getName();
  192. }
  193. else {
  194. depts += "," + arydepts[i];
  195. dd = dd.getDeptDb(arydepts[i]);
  196. deptNames += "," + dd.getName();
  197. }
  198. }
  199.   }
  200.   
  201.   if (aryusers!=null) {
  202.    len = aryusers.length;
  203. //DeptDb dd = new DeptDb();
  204.    for (int i=0; i<len; i++) {
  205. if (users.equals("")) {
  206. users = aryusers[i];
  207. UserDb ud = new UserDb();
  208. ud = ud.getUserDb(aryusers[i]);
  209. userRealNames = ud.getRealName();
  210. }
  211. else {
  212. users += "," + aryusers[i];
  213. UserDb ud = new UserDb();
  214. ud = ud.getUserDb(aryusers[i]);
  215. userRealNames += "," + ud.getRealName();
  216. }
  217. }
  218.   }
  219.   %>
  220.      <input type="hidden" name="depts" value="<%=depts%>">
  221.           <textarea name="deptNames" cols="45" rows="5" readOnly wrap="yes" id="deptName"><%=deptNames%></textarea>
  222.         &nbsp;
  223.         <input class="SmallButton" title="添加部门" onClick="openWinDepts()" type="button" value="添 加" name="button">
  224.         &nbsp;
  225.         <input class="SmallButton" title="清空部门" onClick="form1.deptNames.value='';form1.depts.value=''" type="button" value="清 空" name="button"></td>
  226.     </tr>
  227.     <tr>
  228.       <td class="TableContent" noWrap>参与人:</td>
  229.       <td class="TableData">
  230.           <textarea name="userRealNames" cols="45" rows="3" readOnly wrap="yes" id="userRealNames"><%=userRealNames%></textarea>
  231.   <input name="users" id="users" type="hidden" value="<%=users%>">
  232.         &nbsp;
  233.         <input class="SmallButton" title="添加收件人" onClick="openWinUsers()" type="button" value="添 加" name="button">
  234.         &nbsp;
  235.         <input class="SmallButton" title="清空收件人" onClick="form1.users.value='';form1.userRealNames.value=''" type="button" value="清 空" name="button"></td>
  236.     </tr>
  237.     <tr>
  238.       <td class="TableContent" noWrap>负责人:</td>
  239.       <td class="TableData">
  240.   <%    
  241.  if(StrUtil.getNullStr(wpd.getPrincipal()).equals("")){
  242.     principalRealNames = "";
  243.  }else{
  244.     String[] principalArray = wpd.getPrincipal().split(",");
  245. if(principalArray == null){
  246.    UserDb ud = new UserDb();
  247.        ud = ud.getUserDb(principal);
  248.    principalRealNames = ud.getRealName();
  249. }else{
  250.    len = principalArray.length;    
  251.    for (int i=0; i<len; i++) {
  252.       if(principal.equals("")){  
  253.     principal = principalArray[i]; 
  254. UserDb ud = new UserDb();
  255.             ud = ud.getUserDb(principalArray[i]);
  256.         principalRealNames = ud.getRealName();
  257.   }else{
  258.     principal += "," + principalArray[i] ; 
  259. UserDb ud = new UserDb();
  260.             ud = ud.getUserDb(principalArray[i]);
  261.         principalRealNames += "," + ud.getRealName();
  262.   }
  263.    }
  264. }
  265.  }
  266.   %>
  267.   <textarea name="principalRealNames" cols="45" rows="3" readOnly wrap="virtual" id="principalRealNames"><%=principalRealNames%></textarea>
  268.                         <input name="principal" type="hidden" id="principal" value="<%=principal%>">
  269.         &nbsp;
  270.         <input class="SmallButton" title="添加收件人" onClick="openWinPrincipal()" type="button" value="添 加" name="button">
  271.         &nbsp;
  272.         <input class="SmallButton" title="清空收件人" onClick="form1.principal.value='';form1.principalRealNames.value=''" type="button" value="清 空" name="button"></td>
  273.     </tr>
  274.     
  275.     <tr>
  276.       <td class="TableContent" noWrap>附件上传:</td>
  277.       <td class="TableData"><input title="选择附件文件" type="file" size="30" name="attachment"></td>
  278.     </tr>
  279.     
  280.     <tr>
  281.       <td class="TableContent" noWrap>备注:</td>
  282.       <td class="TableData"><textarea name="remark" cols="45" rows="3" wrap="yes" id="remark"><%=wpd.getRemark()%></textarea></td>
  283.     </tr>
  284.     <tr>
  285.       <td class="TableData" noWrap>提醒:</td>
  286.       <td class="TableData"><input id="smsRemind" type="checkbox" CHECKED name="isMessageRemind" value="true">
  287.           <label for="SMS_REMIND">使用内部短信提醒用户
  288.           <%
  289. if (com.redmoon.oa.sms.SMSFactory.isUseSMS()) {
  290. %>
  291.           <input name="isToMobile" value="true" type="checkbox" checked />
  292. 短讯提醒
  293. <%}%>
  294. </label></td>
  295.     </tr>
  296.     <tr class="TableControl" align="middle">
  297.       <td colSpan="2" align="left" noWrap>
  298. 附件:
  299.                       <%
  300.   java.util.Iterator attir = wpd.getAttachments().iterator();
  301.   while (attir.hasNext()) {
  302.    Attachment att = (Attachment)attir.next();
  303.   %>
  304.                         <li><img src="../images/attach.gif" width="17" height="17">&nbsp;<a target="_blank" href="workplan_getfile.jsp?workPlanId=<%=wpd.getId()%>&attachId=<%=att.getId()%>"><%=att.getName()%></a>&nbsp;&nbsp;&nbsp;<a href="workplan_do.jsp?op=delattach&workPlanId=<%=wpd.getId()%>&attachId=<%=att.getId()%>">删除</a></li>
  305.                         <%}%>   
  306.   </td>
  307.     </tr>
  308.     <tr class="TableControl" align="middle">
  309.       <td colSpan="2" align="center" noWrap><input name="submit" type="submit" value=" 提 交 ">
  310.         &nbsp;&nbsp;
  311.           <input name="button" type="reset" value=" 重 填 ">
  312.         &nbsp;&nbsp;</td>
  313.     </tr>
  314.   </tbody>
  315.   </form>
  316. </table>
  317. <%
  318. JobUnitDb ju = new JobUnitDb();
  319. int jobId = ju.getJobId("com.redmoon.oa.job.WorkplanJob", "" + id);
  320. if (jobId!=-1) {
  321. ju = (JobUnitDb)ju.getQObjectDb(new Integer(jobId));
  322. %>
  323. <table width="81%" border="0" align="center" class="main">
  324.   <form name="form2" action="workplan_do.jsp?op=editJob" method="post" onsubmit="return form2_onsubmit()">
  325.     <tr>
  326.       <td align="left"><strong>调度计划&nbsp;&nbsp;<a href="workplan_do.jsp?op=delJob&id=<%=ju.get("id")%>&planId=<%=id%>">删除</a></strong></td>
  327.     </tr>
  328.     <tr>
  329.       <td align="left"><input name="job_class" type="hidden" value="com.redmoon.oa.job.WorkplanJob">
  330.           <input name="map_data" type="hidden" value="<%=id%>">
  331.         名称:
  332.         <input name="job_name" value="<%=ju.getString("job_name")%>">
  333.         &nbsp;每月:
  334.         <input name="month_day" size="2" value="<%=ju.getString("month_day")%>">
  335.       号</td>
  336.     </tr>
  337.     <tr>
  338.       <td align="left"> 开始时间
  339.         <%
  340. String cron = ju.getString("cron");
  341. String[] ary = cron.split(" ");
  342. if (ary[0].length()==1)
  343. ary[0] = "0" + ary[0];
  344. if (ary[1].length()==1)
  345. ary[1] = "0" + ary[1];
  346. if (ary[2].length()==1)
  347. ary[2] = "0" + ary[2];
  348. String t = ary[2] + ":" + ary[1] + ":" + ary[0];
  349. %>
  350.           <input style="WIDTH: 50px" name="time" size="20" value="<%=t%>">
  351.         &nbsp;<img style="CURSOR: hand" onclick="SelectDateTime('time')" src="../images/form/clock.gif" align="absMiddle" width="18" height="18"> 在
  352.         <input name="weekDay" type="checkbox" value="1">
  353.         星期日
  354.         <input name="weekDay" type="checkbox" value="2">
  355.         星期一
  356.         <input name="weekDay" type="checkbox" value="3">
  357.         星期二
  358.         <input name="weekDay" type="checkbox" value="4">
  359.         星期三
  360.         <input name="weekDay" type="checkbox" value="5">
  361.         星期四
  362.         <input name="weekDay" type="checkbox" value="6">
  363.         星期五
  364.         <input name="weekDay" type="checkbox" value="7">
  365.         星期六
  366.         <input name="submit3" type="submit" value=" 确 定 ">
  367.         <input name="planId" type="hidden" value="<%=id%>">
  368.         <input name="id" type="hidden" value="<%=ju.getInt("id")%>">
  369.         <input name="cron" type="hidden">
  370.         <input name="data_map" type="hidden">
  371. <input name="user_name" value="<%=privilege.getUser(request)%>" type="hidden">
  372.         <%
  373. String[] w = ary[5].split(",");
  374. for (int i=0; i<w.length; i++) {
  375. %>
  376.         <script>
  377. setCheckboxChecked("weekDay", "<%=w[i]%>");
  378. </script>
  379.         <%
  380. }
  381. %>
  382.       </td>
  383.     </tr>
  384.   </form>
  385. </table>
  386. <%}
  387. else {
  388. %>
  389. <table class="main" width="600" border="0" align="center">
  390. <form name="form2" action="workplan_do.jsp?op=addJob" method="post" onsubmit="return form2_onsubmit()">
  391.   <tr>
  392.     <td align="left"><strong>调度计划</strong></td>
  393.   </tr>
  394.   <tr>
  395.     <td align="left"><input name="job_class" type="hidden" value="com.redmoon.oa.job.WorkplanJob">
  396.       &nbsp;每月:
  397.       <input name="month_day" size="2">
  398.       号<input name="job_name" type="hidden" value="<%=wpd.getTitle()%>"></td>
  399.   </tr>
  400.   <tr>
  401.     <td align="left"> 开始时间
  402.       <input style="WIDTH: 50px" value="12:00:00" name="time" size="20">
  403.       &nbsp;<img style="CURSOR: hand" onClick="SelectDateTime('time')" src="../images/form/clock.gif" align="absMiddle" width="18" height="18"> 在
  404.       <input name="weekDay" type="checkbox" value="1">
  405.       星期日
  406.       <input name="weekDay" type="checkbox" value="2">
  407.       星期一
  408.       <input name="weekDay" type="checkbox" value="3">
  409.       星期二
  410.       <input name="weekDay" type="checkbox" value="4">
  411.       星期三
  412.       <input name="weekDay" type="checkbox" value="5">
  413.       星期四
  414.       <input name="weekDay" type="checkbox" value="6">
  415.       星期五
  416.       <input name="weekDay" type="checkbox" value="7">
  417.       星期六
  418.       <input name="submit2" type="submit" value=" 确 定 ">
  419.       <input name="id" type="hidden" value="<%=id%>">
  420.       <input name="cron" type="hidden">
  421.       <input name="data_map" type="hidden">
  422.       <input name="user_name" value="<%=privilege.getUser(request)%>" type="hidden"></td>
  423.   </tr>
  424. </form>
  425. </table>
  426. <%}%>
  427. </body>
  428. <script>
  429. function getDept() {
  430. return form1.depts.value;
  431. }
  432. function SelectDateTime(objName) {
  433. var dt = showModalDialog("../util/calendar/time.htm", "" ,"dialogWidth:266px;dialogHeight:125px;status:no;help:no;");
  434. if (dt!=null)
  435. findObj(objName).value = dt;
  436. }
  437. function form2_onsubmit() {
  438. var t = form2.time.value;
  439. var ary = t.split(":");
  440. var weekDay = getCheckboxValue("weekDay");
  441. var dayOfMonth = form2.month_day.value;
  442. if (weekDay=="" && dayOfMonth=="") {
  443. alert("请填写每月几号或者星期几!");
  444. return false;
  445. }
  446. if (weekDay=="")
  447. weekDay = "?";
  448. if (ary[2].indexOf("0")==0 && ary[2].length>1)
  449. ary[2] = ary[2].substring(1, ary[2].length);
  450. if (ary[1].indexOf("0")==0 && ary[1].length>1)
  451. ary[1] = ary[1].substring(1, ary[1].length);
  452. if (ary[0].indexOf("0")==0 && ary[0].length>1)
  453. ary[0] = ary[0].substring(1, ary[0].length);
  454. if (dayOfMonth=="")
  455. dayOfMonth = "?";
  456. var cron = ary[2] + " " + ary[1] + " " + ary[0] + " " + dayOfMonth + " * " + weekDay;
  457. form2.cron.value = cron;
  458. form2.data_map.value = "<%=id%>";
  459. }
  460. function trimOptionText(strValue) 
  461. {
  462. // 注意option中有全角的空格,所以不直接用trim
  463. var r = strValue.replace(/^ *|s*|s*$/g,"");
  464. return r;
  465. }
  466. </script>
  467. </html>