parent
45251749fd
commit
ca50943d00
8 changed files with 2390 additions and 1 deletions
@ -0,0 +1,347 @@ |
|||||||
|
/************************************************************************************************* |
||||||
|
* 프로그램명 : HttpDocRegist.java 프로그램설명 : 집계문서 등록자 작성자 : 강원중 작성일 : 2004.06.07 변경일 : 2003.11.30 |
||||||
|
**************************************************************************************************/ |
||||||
|
|
||||||
|
package kr.co.kihyun.beans.totsys.doc; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import java.net.URLDecoder; |
||||||
|
//import java.net.URLEncoder;
|
||||||
|
import java.text.ParseException; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.Iterator; |
||||||
|
//import java.util.List;
|
||||||
|
//import java.util.Map.Entry;
|
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
import javax.jdo.PersistenceManager; |
||||||
|
import javax.jdo.Transaction; |
||||||
|
import javax.servlet.ServletException; |
||||||
|
import javax.servlet.annotation.WebServlet; |
||||||
|
import javax.servlet.http.HttpServlet; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
import kr.co.kihyun.beans.entity.AcceptanceLimitStrategy; |
||||||
|
import kr.co.kihyun.beans.entity.AccessAuth; |
||||||
|
//import kr.co.kihyun.beans.entity.Board;
|
||||||
|
import kr.co.kihyun.beans.entity.Category; |
||||||
|
import kr.co.kihyun.beans.entity.ExecutionCode; |
||||||
|
import kr.co.kihyun.beans.entity.MDept; |
||||||
|
import kr.co.kihyun.beans.entity.MUser; |
||||||
|
import kr.co.kihyun.beans.entity.TotDoc; |
||||||
|
import kr.co.kihyun.beans.entity.TotDocAppendType; |
||||||
|
import kr.co.kihyun.beans.entity.TotDocProcess; |
||||||
|
import kr.co.kihyun.beans.entity.TotDocType; |
||||||
|
import kr.co.kihyun.beans.entity.TotItem; |
||||||
|
import kr.co.kihyun.beans.entity.TotReport; |
||||||
|
import kr.co.kihyun.beans.entity.TotReportProcess; |
||||||
|
import kr.co.kihyun.beans.entity.TotTable; |
||||||
|
import kr.co.kihyun.beans.entity.util.MPersistenceManager; |
||||||
|
import kr.co.kihyun.beans.entity.util.PMF; |
||||||
|
import kr.co.kihyun.beans.totsys.report.ReportUpdate; |
||||||
|
import kr.co.kihyun.beans.totsys.report.ReportUserUpdate; |
||||||
|
import kr.co.kihyun.beans.user.GroupView; |
||||||
|
import kr.co.kihyun.beans.user.HttpSSOLogin; |
||||||
|
import kr.co.kihyun.io.FileUtil; |
||||||
|
import kr.co.kihyun.lang.Encoder; |
||||||
|
import kr.co.kihyun.lang.MInteger; |
||||||
|
import kr.co.kihyun.lang.MLong; |
||||||
|
import kr.co.kihyun.lang.MString; |
||||||
|
import kr.co.kihyun.moumi.MoumiConfig; |
||||||
|
import kr.co.kihyun.text.html.ServletUtil; |
||||||
|
import kr.co.kihyun.text.html.TagFilter; |
||||||
|
import org.datanucleus.ObjectManager; |
||||||
|
import org.datanucleus.jdo.JDOPersistenceManager; |
||||||
|
|
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
@WebServlet("/servlet/kr.co.kihyun.beans.totsys.doc.HttpSubDocUserRegist") |
||||||
|
public class HttpSubDocUserRegist extends HttpServlet { |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
*/ |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(HttpSubDocUserRegist.class); |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { |
||||||
|
res.setContentType("text/html;charset=UTF-8"); |
||||||
|
if (req.getMethod().equals("HEAD")) |
||||||
|
return; |
||||||
|
PrintWriter out = res.getWriter(); |
||||||
|
|
||||||
|
/*********** User HttpLogin check ***********/ |
||||||
|
if (!HttpSSOLogin.isLogin(req)) { |
||||||
|
String connURL = "location='/totsys/login/login.jsp';"; |
||||||
|
out.println(ServletUtil.getJavaScript(connURL)); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
/********** session내의 userId **********/ |
||||||
|
String usID = HttpSSOLogin.getLoginID(req); |
||||||
|
String dpID = HttpSSOLogin.getDeptID(req); |
||||||
|
|
||||||
|
/********** parameter value **********/ |
||||||
|
String docName = Encoder.toJava(req.getParameter("docName")); |
||||||
|
String stDate = Encoder.toJava(req.getParameter("stDate")); |
||||||
|
String stTime = Encoder.toJava(req.getParameter("stTime")); |
||||||
|
String edDate = Encoder.toJava(req.getParameter("edDate")); |
||||||
|
String edTime = Encoder.toJava(req.getParameter("edTime")); |
||||||
|
int execNum = MInteger.parseInt(req.getParameter("execNum")); |
||||||
|
String execDate = MString.checkNull(req.getParameter("execDate")); |
||||||
|
String acceptanceLimitStrategy = Encoder.toJava(req.getParameter("acceptanceLimitStrategy")); |
||||||
|
String prss = Encoder.toJava(req.getParameter("prss")); |
||||||
|
Long submitLimit = MLong.parseLong(req.getParameter("submitLimit"), Long.MAX_VALUE); |
||||||
|
String title = Encoder.toJava(req.getParameter("title")); |
||||||
|
String contents = Encoder.toJava(req.getParameter("notify")); |
||||||
|
//String svrFilenames = URLDecoder.decode(MString.checkNull(req.getParameter("svrFilenames")), "UTF-8");
|
||||||
|
|
||||||
|
String svrFilenames=Encoder.toJava(MString.checkNull(req.getParameter("svrFilenames"))); |
||||||
|
svrFilenames = URLDecoder.decode(svrFilenames, "UTF-8"); |
||||||
|
|
||||||
|
|
||||||
|
String deptIDs = Encoder.toJava(req.getParameter("deptIDs")); |
||||||
|
int accAuth = MInteger.parseInt(req.getParameter("accAuth"), 0);// 집계문서 접근권한
|
||||||
|
// String docForm = Encoder.toJava(req.getParameter("docForm"));
|
||||||
|
String docForm = Encoder.toJava(TagFilter.convertSingle(req.getParameter("copyForm"))); |
||||||
|
|
||||||
|
Long reportID = new Long(MInteger.parseInt(req.getParameter("reportID"))); |
||||||
|
|
||||||
|
stDate += " " + stTime + ":00:00"; |
||||||
|
edDate += " " + edTime + ":00:00"; |
||||||
|
|
||||||
|
Date startDate, endDate; |
||||||
|
startDate = endDate = new Date(); |
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||||
|
try { |
||||||
|
startDate = sdf.parse(stDate); |
||||||
|
endDate = sdf.parse(edDate); |
||||||
|
} catch (ParseException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
|
||||||
|
String userIDs = Encoder.toJava(req.getParameter("userIDs")); |
||||||
|
String deptTypes = Encoder.toJava(req.getParameter("deptTypes")); |
||||||
|
|
||||||
|
String handyName = Encoder.toJava(MString.checkNull(req.getParameter("handyName"))); |
||||||
|
int totRange = MInteger.parseInt(MString.checkNull(req.getParameter("totRange")), 1); |
||||||
|
|
||||||
|
String[] deptIDList = deptIDs.split(","); |
||||||
|
String[] typeList = deptTypes.split(","); |
||||||
|
|
||||||
|
MDept userDept = null; |
||||||
|
MUser mUser = null; |
||||||
|
TotDoc repDoc = null; |
||||||
|
TotReport totReport = null; |
||||||
|
PersistenceManager pm = new MPersistenceManager(PMF.get().getPersistenceManager()); |
||||||
|
Transaction tx = pm.currentTransaction(); |
||||||
|
ObjectManager om = ((JDOPersistenceManager) tx.getPersistenceManager()).getObjectManager(); // jeus 6 proplem
|
||||||
|
try { |
||||||
|
tx.begin(); |
||||||
|
userDept = pm.getObjectById(MDept.class, dpID); |
||||||
|
mUser = pm.getObjectById(MUser.class, usID); |
||||||
|
totReport = pm.getObjectById(TotReport.class, reportID); |
||||||
|
repDoc = totReport.getTotDoc(); |
||||||
|
|
||||||
|
int all = typeList.length; |
||||||
|
StringBuilder dts = new StringBuilder(); |
||||||
|
StringBuilder uss = new StringBuilder(); |
||||||
|
|
||||||
|
for (int a = 0; a < all; a++) { |
||||||
|
if (typeList[a].equals("user")) { |
||||||
|
if (uss.toString().length() == 0) { |
||||||
|
uss.append(deptIDList[a]); |
||||||
|
} else { |
||||||
|
if (!uss.toString().contains(deptIDList[a])) { |
||||||
|
uss.append(","); |
||||||
|
uss.append(deptIDList[a]); |
||||||
|
} |
||||||
|
} |
||||||
|
} else if (typeList[a].equals("group")) { |
||||||
|
if (new GroupView().getUserUserDeptUserID(deptIDList[a]).length() != 0) { |
||||||
|
if (uss.toString().length() == 0) { |
||||||
|
uss.append(new GroupView().getUserUserDeptUserID(deptIDList[a])); |
||||||
|
} else { |
||||||
|
if (!uss.toString().contains(new GroupView().getUserUserDeptUserID(deptIDList[a]))) { |
||||||
|
uss.append(","); |
||||||
|
uss.append(new GroupView().getUserUserDeptUserID(deptIDList[a])); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (new GroupView().getUserDeptDeptID(deptIDList[a]).length() != 0) { |
||||||
|
if (dts.toString().length() == 0) { |
||||||
|
dts.append(new GroupView().getUserDeptDeptID(deptIDList[a])); |
||||||
|
} else { |
||||||
|
if (!dts.toString().contains(new GroupView().getUserDeptDeptID(deptIDList[a]))) { |
||||||
|
dts.append(","); |
||||||
|
dts.append(new GroupView().getUserDeptDeptID(deptIDList[a])); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
if (dts.toString().length() == 0) { |
||||||
|
dts.append(deptIDList[a]); |
||||||
|
} else { |
||||||
|
if (!dts.toString().contains(deptIDList[a])) { |
||||||
|
dts.append(","); |
||||||
|
dts.append(deptIDList[a]); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
deptIDs = dts.toString(); |
||||||
|
userIDs = uss.toString(); |
||||||
|
if (docForm == null) { |
||||||
|
out.println(ServletUtil.alert(TotDocType.FORM_DOC + MoumiConfig.getMessageBundle().getString("moumi.message.popup.notTableReConfirm"))); |
||||||
|
out.println(ServletUtil.redirect("/totsys/totper/mydocbox/regbox/sub_doc_regist.jsp?reportID=" |
||||||
|
+ reportID)); |
||||||
|
} else { |
||||||
|
} |
||||||
|
|
||||||
|
SimpleDateFormat execDateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
||||||
|
ExecutionCode execCode = null; |
||||||
|
if (execNum > 0 && !MString.isNull(execDate)) |
||||||
|
execCode = new ExecutionCode(mUser.getUpperDept(pm).getName(), execNum, execDateFormat.parse(execDate)); |
||||||
|
TotDoc newDoc = docRegist(pm, docName, execCode, handyName, mUser, startDate, endDate, |
||||||
|
AccessAuth.asAccessAuth(accAuth), TotDoc.TotRange.asTotRange(totRange), repDoc, userDept, |
||||||
|
acceptanceLimitStrategy, submitLimit, prss, repDoc.getAppendType()); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
title=docName; |
||||||
|
|
||||||
|
kr.co.kihyun.beans.entity.Board mBoard = new kr.co.kihyun.beans.entity.Board(title); |
||||||
|
mBoard.setUser(mUser); |
||||||
|
//mBoard.setContents(repDoc.getBoard().getContents());
|
||||||
|
mBoard.setContents(contents); |
||||||
|
mBoard.setTotDoc(newDoc); |
||||||
|
mBoard.setCategory(pm.getObjectById(Category.class, Category.ID_TOT_DOC_COMMENT)); |
||||||
|
LOG.debug("ID: {}, GROUP_ID: {}, REP_LEVEL: {}, STEP: {}, TITLE: {}, WRITE_DATE: {}", |
||||||
|
new Object[] {mBoard.getId(), mBoard.getCategory(), mBoard.getRepLevel(), mBoard.getStep(), |
||||||
|
mBoard.getTitle(), mBoard.getWriteDate()}); |
||||||
|
|
||||||
|
FileUtil.putInFiles(svrFilenames, mBoard); |
||||||
|
|
||||||
|
|
||||||
|
// 연계등록시 자료를 수정(요구사항) 하지만 아래 내용때문에 상위기관에서 입력요령을 그대로 받아와서 셋아기때문에 그것을 지우고 위에 파일을 새로 넣음
|
||||||
|
// for (Entry<String, List<Byte>> entry : repDoc.getAttachments().entrySet())
|
||||||
|
// mBoard.addAttachment(entry.getKey(), entry.getValue());
|
||||||
|
|
||||||
|
pm.makePersistent(mBoard); |
||||||
|
FileUtil.getBoardAttachmentsFileNames(mBoard.getId(), req,true); |
||||||
|
// succNum += new TableUpdate().insert(newDoc, repDoc);
|
||||||
|
LOG.debug("repDoc: {}", repDoc); |
||||||
|
LOG.debug("rep tables: {}", repDoc.getTotTables()); |
||||||
|
LOG.debug("rep items: {}", repDoc.getTotItems()); |
||||||
|
LOG.debug("rep reports: {}", repDoc.getTotReports()); |
||||||
|
TotTable masterTable = repDoc.getTotTables().iterator().next(); |
||||||
|
TotTable totTable = new TotTable(newDoc); |
||||||
|
totTable.setName(masterTable.getName()); |
||||||
|
totTable.setNote(masterTable.getNote()); |
||||||
|
totTable.setTypes(masterTable.getTypes()); |
||||||
|
totTable.setType(masterTable.getType()); |
||||||
|
pm.makePersistent(totTable); |
||||||
|
|
||||||
|
// succNum += tableRegist(newDocID, repDocID, docForm);
|
||||||
|
|
||||||
|
for(Iterator<TotItem> itemIter = repDoc.getTotItems().iterator(); itemIter.hasNext(); ) { |
||||||
|
TotItem sourceItem = itemIter.next(); |
||||||
|
TotItem targetItem = new TotItem(newDoc); |
||||||
|
|
||||||
|
targetItem.setNum(sourceItem.getNum()); |
||||||
|
targetItem.setTableNum(sourceItem.getTableNum()); |
||||||
|
targetItem.setName(sourceItem.getName()); |
||||||
|
targetItem.setDescription(sourceItem.getDescription()); |
||||||
|
targetItem.setInputSize(sourceItem.getInputSize()); |
||||||
|
targetItem.setExpr(sourceItem.getExpr()); |
||||||
|
targetItem.setType(sourceItem.getType()); |
||||||
|
targetItem.setColNum(sourceItem.getColNum()); |
||||||
|
targetItem.setRowNum(sourceItem.getRowNum()); |
||||||
|
|
||||||
|
pm.makePersistent(targetItem); |
||||||
|
} |
||||||
|
|
||||||
|
// 보고기관 입력
|
||||||
|
// succNum += reportRegist(newDocID, newTableNum, deptIDs);
|
||||||
|
String[] stringDeptIDArray = userIDs.split(","); |
||||||
|
|
||||||
|
//v2 23.정수형 오버플로우 (배열인덱스)_CWE-190 : Update by YOUNGJUN,CHO
|
||||||
|
if (stringDeptIDArray.length > 0) { |
||||||
|
String[] longDeptIDArray = new String[stringDeptIDArray.length]; |
||||||
|
System.arraycopy(stringDeptIDArray, 0, longDeptIDArray, 0, stringDeptIDArray.length); |
||||||
|
new ReportUserUpdate().deptUserInsert(pm, newDoc, totTable, longDeptIDArray); |
||||||
|
|
||||||
|
// 보고기관 업(집계된 문서의 상위 보고 기관)
|
||||||
|
totReport.setSlaveTotDoc(newDoc); |
||||||
|
totReport.setUser(mUser); |
||||||
|
totReport.setProcess(TotReportProcess.TEMP); |
||||||
|
//20110803 LJH
|
||||||
|
totReport.setDept(mUser.getUpperDept(pm)); |
||||||
|
totReport.setRepTotDoc(repDoc); |
||||||
|
|
||||||
|
pm.makePersistent(totReport); |
||||||
|
|
||||||
|
Set<TotReport> slaveReportList = newDoc.getTotReports(); |
||||||
|
for (TotReport slaveReport : slaveReportList) |
||||||
|
slaveReport.setRepTotDoc(repDoc); |
||||||
|
pm.makePersistentAll(slaveReportList); |
||||||
|
|
||||||
|
LOG.debug("commit"); |
||||||
|
om.postCommit(); // jeus 6 problem
|
||||||
|
tx.commit(); |
||||||
|
out.println(ServletUtil.alert(MoumiConfig.getMessageBundle().getString("moumi.message.popup.newSubdoc"))); |
||||||
|
// out.println(ServletUtil.redirect("/totsys/totper/mydocbox/prssbox/doc_list.jsp?docType=PRSS"));
|
||||||
|
out.println(ServletUtil.redirect("/totsys/repoper/mydocbox/tempbox/report_list.jsp?reportType=TEMP")); |
||||||
|
} |
||||||
|
//================================================
|
||||||
|
|
||||||
|
} catch (Exception e) { |
||||||
|
out.println(ServletUtil.alert(MoumiConfig.getMessageBundle().getString("moumi.message.popup.notRegistReConfirm"))); |
||||||
|
//v2. 9.크로스사이트 스크립트 (PrintWrier) : Update by KWON,HAN
|
||||||
|
// out.println(ServletUtil.redirect("/totsys/totper/mydocbox/regbox/sub_doc_regist.jsp?reportID=" + reportID));
|
||||||
|
|
||||||
|
// 수정 : 외부 입력값 필터링
|
||||||
|
String callbackFunc = "/totsys/totper/mydocbox/regbox/sub_doc_regist.jsp?reportID=" + reportID; |
||||||
|
String filtered_callbackFunc = callbackFunc.replaceAll("<","").replaceAll(">",""); |
||||||
|
LOG.debug("v2 9.크로스사이트 스크립트 (PrintWrier) : HttpSubDocRegist.doPost() filtered_callbackFunc={}, Not Test", filtered_callbackFunc); |
||||||
|
out.println(ServletUtil.redirect(filtered_callbackFunc)); |
||||||
|
//============================================================
|
||||||
|
|
||||||
|
e.printStackTrace(); |
||||||
|
} finally { |
||||||
|
if (tx.isActive()) { |
||||||
|
tx.rollback(); |
||||||
|
} |
||||||
|
pm.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private TotDoc docRegist(PersistenceManager pm, String docName, ExecutionCode execCode, String handyName, |
||||||
|
MUser mUser, Date stDate, Date edDate, AccessAuth accAuth, TotDoc.TotRange totRange, TotDoc repDoc, |
||||||
|
MDept mDept, String acceptanceLimitStrategy, Long submitLimit, String prss, TotDocAppendType appendType) { |
||||||
|
TotDoc newDoc = new TotDoc(docName, mDept, repDoc.getForm()); |
||||||
|
newDoc.setUser(mUser); |
||||||
|
newDoc.setExecutionCode(execCode); |
||||||
|
newDoc.setHandyName(handyName); |
||||||
|
newDoc.setStartDate(stDate); |
||||||
|
newDoc.setEndDate(edDate); |
||||||
|
newDoc.setAccessAuth(accAuth); |
||||||
|
newDoc.setTotRange(totRange); |
||||||
|
newDoc.setMasterTotDoc(repDoc); |
||||||
|
newDoc.setDept(mUser.getUpperDept(pm)); |
||||||
|
newDoc.setAppendType(appendType); |
||||||
|
AcceptanceLimitStrategy acptLimitStrategy = AcceptanceLimitStrategy.create(acceptanceLimitStrategy, submitLimit); |
||||||
|
acptLimitStrategy.setProcess(TotDocProcess.valueOf(prss)); |
||||||
|
newDoc.setAcceptanceLimitStrategy(acptLimitStrategy); |
||||||
|
pm.makePersistent(newDoc); |
||||||
|
|
||||||
|
return newDoc; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,187 @@ |
|||||||
|
package kr.co.kihyun.beans.totsys.report; |
||||||
|
|
||||||
|
import java.sql.ResultSet; |
||||||
|
import java.sql.SQLException; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
import javax.jdo.PersistenceManager; |
||||||
|
|
||||||
|
import kr.co.kihyun.beans.entity.AssignType; |
||||||
|
import kr.co.kihyun.beans.entity.MDept; |
||||||
|
import kr.co.kihyun.beans.entity.MUser; |
||||||
|
import kr.co.kihyun.beans.entity.MoumiEntity; |
||||||
|
import kr.co.kihyun.beans.entity.TotDoc; |
||||||
|
import kr.co.kihyun.beans.entity.TotReport; |
||||||
|
import kr.co.kihyun.beans.entity.TotReportType; |
||||||
|
import kr.co.kihyun.beans.entity.TotTable; |
||||||
|
import kr.co.kihyun.beans.entity.util.QueryImpl; |
||||||
|
import kr.co.kihyun.db.CommonDBManager; |
||||||
|
import kr.co.kihyun.db.DBManager; |
||||||
|
import kr.co.kihyun.lang.MString; |
||||||
|
|
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
public class ReportUserUpdate extends DBManager { |
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(ReportUserUpdate.class); |
||||||
|
|
||||||
|
private ResultSet rs = null; |
||||||
|
|
||||||
|
public int deptUserUpdate(PersistenceManager pm, TotDoc totDoc, String[] insertDeptList) |
||||||
|
throws Exception { |
||||||
|
int succNum = 0; |
||||||
|
succNum = allReportsDelTypeTrueConvert(pm, totDoc); |
||||||
|
succNum = deptUserInsert(pm, totDoc, totDoc.getTotTables().iterator().next(), insertDeptList); |
||||||
|
return succNum; |
||||||
|
} |
||||||
|
|
||||||
|
// FIXME: remove me
|
||||||
|
public int deptUserInsert(PersistenceManager pm, TotDoc totDoc, TotTable totTable, String[] deptIDList) |
||||||
|
throws Exception { |
||||||
|
int succNum = 0; |
||||||
|
|
||||||
|
TotReport totReport = null; |
||||||
|
List<TotReport> totReportDepts = null; |
||||||
|
QueryImpl q = null; |
||||||
|
try { |
||||||
|
q = new QueryImpl(pm, TotReport.class); |
||||||
|
q.setFilter("totDoc == tot_doc && assignType == AssignType.ASSIGN_TO_DEPT"); |
||||||
|
//q.setFilter("assignType == AssignType.ASSIGN_TO_DEPT");
|
||||||
|
q.declareImports("import kr.co.kihyun.beans.entity.*"); |
||||||
|
q.declareParameters("TotDoc tot_doc"); |
||||||
|
//v2. 6.SQL 삽입 : DO형식이므로 해결책에 따른 prepare SQL 문으로 변경할 수 없음
|
||||||
|
totReportDepts = (List<TotReport>) q.execute(totDoc); |
||||||
|
//===============
|
||||||
|
int currReportDeptCount = totReportDepts.size(); |
||||||
|
|
||||||
|
Long id = null; |
||||||
|
boolean isDeptAlreadyExist = false; |
||||||
|
|
||||||
|
LOG.debug("totReportDepts.size() - {}", totReportDepts.size()); |
||||||
|
LOG.debug("deptIDList.length : {}", deptIDList.length); |
||||||
|
LOG.debug("deptIDList : {}", deptIDList); |
||||||
|
if (deptIDList != null) { |
||||||
|
LOG.debug("deptIDList is not null"); |
||||||
|
for (int i = 0; i < deptIDList.length; i++) { |
||||||
|
LOG.debug("deptIDList[{}]: {}", i, deptIDList[i]); |
||||||
|
if (deptIDList.length == 1 && MString.isNull(deptIDList[0])) |
||||||
|
break; |
||||||
|
|
||||||
|
for (int j = 0; j < currReportDeptCount; j++) { |
||||||
|
LOG.debug("deptIDList[" + i + "] - {} totReportDepts.get(" + j + ") - {}", deptIDList[i], totReportDepts.get(j).getDept(pm).getId()); |
||||||
|
if (deptIDList[i].equals(totReportDepts.get(j).getDept(pm).getId())) { |
||||||
|
isDeptAlreadyExist = true; |
||||||
|
break; |
||||||
|
} else { |
||||||
|
isDeptAlreadyExist = false; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (isDeptAlreadyExist) { |
||||||
|
id = getID(totDoc.getId(), deptIDList[i], null); |
||||||
|
totReport = pm.getObjectById(TotReport.class, id); |
||||||
|
totReport.setDeleted("N"); |
||||||
|
totReport.setType(TotReportType.REPORT); |
||||||
|
totReport.setAssignType(AssignType.ASSIGN_TO_DEPT); |
||||||
|
} else { |
||||||
|
MUser user = pm.getObjectById(MUser.class, deptIDList[i]); |
||||||
|
MDept dept = user.getUpperDept(pm); |
||||||
|
totReport = new TotReport(totDoc, dept); |
||||||
|
totReport.setId(getDocID_Sequence()); |
||||||
|
totReport.setTableNum(totTable.getNum()); |
||||||
|
totReport.setAssignType(AssignType.ASSIGN_TO_DEPT); |
||||||
|
totReport.setUser(user); |
||||||
|
} |
||||||
|
pm.makePersistent(totReport); |
||||||
|
succNum = 1; |
||||||
|
} |
||||||
|
} |
||||||
|
return succNum; |
||||||
|
} catch (Exception ex) { |
||||||
|
LOG.debug("totReport :{}", totReport); |
||||||
|
LOG.error( |
||||||
|
"failed to regist report. del_type {}, recog {}, prss {}, id {}, appro {}, table_num {}, doc_id {}, type {}", |
||||||
|
new Object[] { totReport.isDeleted(), totReport.getRecog(), totReport.getProcess(), |
||||||
|
totReport.getId(), totReport.getAppro(), totReport.getTableNum(), totReport.getTotDoc(), |
||||||
|
totReport.getType() }); |
||||||
|
throw ex; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private int allReportsDelTypeTrueConvert(PersistenceManager pm, TotDoc totDoc) { |
||||||
|
try { |
||||||
|
Set<TotReport> reports = totDoc.getTotReports(); |
||||||
|
for (TotReport report : reports) |
||||||
|
report.setDeleted("Y"); |
||||||
|
// pm.makePersistentAll(reports.toArray());
|
||||||
|
return 1; |
||||||
|
} catch (Exception ex) { |
||||||
|
throw new RuntimeException(ex); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public Long getID(Long docID, String deptID, String userID) { |
||||||
|
StringBuilder sql = new StringBuilder(120); |
||||||
|
|
||||||
|
Long id = null; |
||||||
|
ArrayList<Object> paramList = new ArrayList<Object>(); |
||||||
|
|
||||||
|
try { |
||||||
|
if (userID == null) { |
||||||
|
sql.append("select id from ").append(MoumiEntity.getTableName(TotReport.class)) |
||||||
|
.append(" where doc_id=? and dept_id=?"); |
||||||
|
paramList.add(docID); |
||||||
|
paramList.add(deptID); |
||||||
|
} else { |
||||||
|
sql.append("select id from ").append(MoumiEntity.getTableName(TotReport.class)) |
||||||
|
.append(" where doc_id=? and dept_id=? and user_id=?"); |
||||||
|
paramList.add(docID); |
||||||
|
paramList.add(deptID); |
||||||
|
paramList.add(userID); |
||||||
|
} |
||||||
|
|
||||||
|
rs = execQuery(sql.toString(), paramList.toArray()); |
||||||
|
if (rs.next()) { |
||||||
|
id = rs.getLong(1); |
||||||
|
} |
||||||
|
return id; |
||||||
|
} catch (SQLException sqlEx) { |
||||||
|
LOG.error("\nSQLState - {}\nMySQL Error Code - {}\nmessage - {}\nsql - {}", |
||||||
|
new Object[] { sqlEx.getSQLState(), sqlEx.getErrorCode(), sqlEx.getMessage(), sql }); |
||||||
|
throw new RuntimeException(sqlEx); |
||||||
|
} catch (Exception ex) { |
||||||
|
throw new RuntimeException(ex); |
||||||
|
} finally { |
||||||
|
close(rs); |
||||||
|
execClose(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private long getDocID_Sequence(){ |
||||||
|
CommonDBManager cdb = new CommonDBManager(); |
||||||
|
ResultSet rs = null; |
||||||
|
long seqId = 0L; |
||||||
|
try{ |
||||||
|
rs = cdb.execQuery("SELECT SQ_MOUMI.NEXTVAL AS SEQ_MOUMI FROM DUAL"); |
||||||
|
if(rs.next()){ |
||||||
|
seqId = rs.getLong("SEQ_MOUMI"); |
||||||
|
} |
||||||
|
}catch(Exception e){ |
||||||
|
e.printStackTrace(); |
||||||
|
}finally{ |
||||||
|
if(null != rs) |
||||||
|
try { |
||||||
|
rs.close(); |
||||||
|
} catch (SQLException e) { |
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
cdb.execClose(); |
||||||
|
return seqId; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,189 @@ |
|||||||
|
/*********************************************************************************** |
||||||
|
* @@ Program Name : HttpUserShareList.java |
||||||
|
* @@ Description : 사용자공유 목록 |
||||||
|
* @@ Author : KWON,HAN |
||||||
|
* @@ Create Date : 2014.08.25 |
||||||
|
* @@ History : |
||||||
|
***********************************************************************************/ |
||||||
|
|
||||||
|
package kr.co.kihyun.beans.user; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import javax.servlet.ServletException; |
||||||
|
import javax.servlet.annotation.WebServlet; |
||||||
|
import javax.servlet.http.HttpServlet; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import kr.co.kihyun.lang.Encoder; |
||||||
|
import kr.co.kihyun.moumi.MoumiConfig; |
||||||
|
import kr.co.kihyun.lang.MString; |
||||||
|
|
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
@WebServlet("/servlet/kr.co.kihyun.beans.user.HttpUserDocList") |
||||||
|
public class HttpUserDocList extends HttpServlet { |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
*/ |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(HttpUserDocList.class); |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException, NumberFormatException { |
||||||
|
doPost(req, res); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException, NumberFormatException { |
||||||
|
res.setContentType("text/html;charset=UTF-8"); |
||||||
|
PrintWriter out = res.getWriter(); |
||||||
|
|
||||||
|
String idList = Encoder.toJava(req.getParameter("idList")); |
||||||
|
String typeList = Encoder.toJava(req.getParameter("typeList")); |
||||||
|
String nameList = Encoder.toJava(req.getParameter("nameList")); |
||||||
|
String deptNameList = Encoder.toJava(req.getParameter("deptNameList")); |
||||||
|
|
||||||
|
if (!MString.isNull(idList)) { |
||||||
|
//v2. 9.크로스사이트 스크립트 (PrintWrier) : Update by KWON,HAN
|
||||||
|
// out.println(getRightCheckList(idList, typeList, nameList, deptNameList));
|
||||||
|
|
||||||
|
// 수정 : 외부 입력값 필터링
|
||||||
|
String filtered_idList = idList.replaceAll("<","").replaceAll(">","").replaceAll("&",""); |
||||||
|
String filtered_typeList = typeList.replaceAll("<","").replaceAll(">","").replaceAll("&",""); |
||||||
|
String filtered_nameList = nameList.replaceAll("<","").replaceAll(">","").replaceAll("&",""); |
||||||
|
String filtered_deptNameList = deptNameList.replaceAll("<","").replaceAll(">","").replaceAll("&",""); |
||||||
|
//LOG.debug("v2 9.크로스사이트 스크립트 (PrintWrier) : HttpUserShareList.doPost() filtered_idList={}, Test Ok", filtered_idList);
|
||||||
|
//LOG.debug("v2 9.크로스사이트 스크립트 (PrintWrier) : HttpUserShareList.doPost() filtered_typeList={}, Test Ok", filtered_typeList);
|
||||||
|
//LOG.debug("v2 9.크로스사이트 스크립트 (PrintWrier) : HttpUserShareList.doPost() filtered_nameList={}, Test Ok", filtered_nameList);
|
||||||
|
//LOG.debug("v2 9.크로스사이트 스크립트 (PrintWrier) : HttpUserShareList.doPost() filtered_deptNameList={}, Test Ok", filtered_deptNameList);
|
||||||
|
out.println(getRightCheckList(filtered_idList, filtered_typeList, filtered_nameList, filtered_deptNameList)); |
||||||
|
//========================================
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private String getRightCheckList(String idList, String typeList, String nameList, String deptNameList) { |
||||||
|
StringBuilder strbuf = new StringBuilder(8192); |
||||||
|
|
||||||
|
int count = 0; |
||||||
|
String[] arrayId = idList.split(","); |
||||||
|
String[] arrayType = typeList.split(","); |
||||||
|
String[] arrayName = nameList.split(","); |
||||||
|
String[] arrayDeptName = nameList.split(","); |
||||||
|
|
||||||
|
count = arrayId.length; |
||||||
|
|
||||||
|
// System.out.println("HttpUserShareList.getRightCheckList() ============");
|
||||||
|
// for (int i = 0; i < arrayId.length; i++) {
|
||||||
|
// System.out.println("부서명 ="+arrayDeptName[i]+"/ 사용자명="+arrayName[i]+"(사용자ID="+arrayId[i]+")");
|
||||||
|
// }
|
||||||
|
// System.out.println("==================================================");
|
||||||
|
|
||||||
|
strbuf.append("<script language=\"javascript\">\n\n"); |
||||||
|
strbuf.append(" function setList() {\n"); |
||||||
|
strbuf.append(" parent.idList = \"").append(idList).append("\";\n"); |
||||||
|
strbuf.append(" parent.typeList = \"").append(typeList).append("\";\n"); |
||||||
|
strbuf.append(" parent.nameList = \"").append(nameList).append("\";\n"); |
||||||
|
strbuf.append(" parent.deptNameList = \"").append(deptNameList).append("\";\n"); |
||||||
|
strbuf.append(" }\n\n"); |
||||||
|
strbuf.append(" function movelist(){\n"); |
||||||
|
strbuf.append(" var id = '';\n"); |
||||||
|
strbuf.append(" var type = '';\n"); |
||||||
|
strbuf.append(" var name = '';\n"); |
||||||
|
strbuf.append(" var deptname = '';\n"); |
||||||
|
strbuf.append(" var addForm = document.AddrList;\n"); |
||||||
|
for (int i = 0; i < count; i++) { |
||||||
|
strbuf.append(" if(addForm.name"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".checked == false){\n"); |
||||||
|
strbuf.append(" id += addForm.id"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".value+',';\n"); |
||||||
|
strbuf.append(" type += addForm.type"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".value+',';\n"); |
||||||
|
strbuf.append(" name += addForm.name"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".value+',';\n"); |
||||||
|
strbuf.append(" deptname += addForm.deptname"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".value+',';\n"); |
||||||
|
strbuf.append(" }\n\n"); |
||||||
|
} |
||||||
|
strbuf.append(" parent.leftFrameDel(name, id, type, deptname);\n"); |
||||||
|
strbuf.append(" }\n\n"); |
||||||
|
strbuf.append(" function AllSelect() {\n"); |
||||||
|
strbuf.append(" var addForm = document.AddrList;\n"); |
||||||
|
for (int i = 0; i < count; i++) { |
||||||
|
strbuf.append(" addForm.name"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".checked = true;\n"); |
||||||
|
} |
||||||
|
strbuf.append(" }\n\n"); |
||||||
|
strbuf.append(" function AllCancel() {\n"); |
||||||
|
strbuf.append(" var addForm = document.AddrList;\n"); |
||||||
|
for (int i = 0; i < count; i++) { |
||||||
|
strbuf.append(" addForm.name"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(".checked = false;\n"); |
||||||
|
} |
||||||
|
strbuf.append(" }\n\n"); |
||||||
|
strbuf.append("</script>\n"); |
||||||
|
/******************** HTML 생성 ********************/ |
||||||
|
strbuf.append("<html>\n"); |
||||||
|
strbuf.append(" <head></head>\n"); |
||||||
|
strbuf.append("<link rel='stylesheet' href='/totsys/common/css/text.css' type='text/css'>\n"); |
||||||
|
strbuf.append(" <body bgcolor=\"#FFFFFF\" text=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" onload=\"setList()\">\n"); |
||||||
|
strbuf.append(" <form name=AddrList method=Post>\n"); |
||||||
|
strbuf.append(" <table border=0 cellpadding=5 cellspacing=2 width=100%>\n"); |
||||||
|
strbuf.append(" <tr><td><font size=2 face=\"돋움\">").append(MoumiConfig.getMessageBundle().getString("moumi.message.tot_report.submit")).append(MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.request")).append(MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.devision")).append("(").append(count).append(")</font></td></tr>\n"); |
||||||
|
strbuf.append(" <tr><td><font size=2 face=\"돋움\"><span style='cursor:hand' onclick='AllSelect()'>").append(MoumiConfig.getMessageBundle().getString("moumi.message.button_small.selectAll")).append("</span> | <span style='cursor:hand' onclick='AllCancel()'>").append(MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.all")).append(MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.cancel")).append("</span></font></td></tr>\n"); |
||||||
|
strbuf.append(" <tr>\n"); |
||||||
|
strbuf.append(" <td>\n"); |
||||||
|
for (int i = 0; i < count; i++) { |
||||||
|
strbuf.append(" "); |
||||||
|
strbuf.append("<font size=2 face=\"돋움\">"); |
||||||
|
strbuf.append(i+1); |
||||||
|
strbuf.append(".</font>"); |
||||||
|
strbuf.append(" <input type=checkbox name=name"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(" value=\""); |
||||||
|
strbuf.append(arrayName[i]); //사용자명
|
||||||
|
strbuf.append("\" onclick=\"\"> <font size=2 color=\"black\" face=\"돋움\">"); |
||||||
|
strbuf.append(arrayDeptName[i]); //부서명 / 사용자명(사용자ID)
|
||||||
|
strbuf.append(" / "); |
||||||
|
strbuf.append(arrayName[i]); |
||||||
|
strbuf.append("("); |
||||||
|
strbuf.append(arrayId[i]); |
||||||
|
strbuf.append(")"); |
||||||
|
strbuf.append("</font><br>\n"); |
||||||
|
strbuf.append(" <input type=hidden name=id"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(" value=\""); |
||||||
|
strbuf.append(arrayId[i]); //사용자ID
|
||||||
|
strbuf.append("\">\n"); |
||||||
|
strbuf.append(" <input type=hidden name=type"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(" value=\""); |
||||||
|
strbuf.append(arrayType[i]); //type
|
||||||
|
strbuf.append("\">\n"); |
||||||
|
strbuf.append(" <input type=hidden name=deptname"); |
||||||
|
strbuf.append(i); |
||||||
|
strbuf.append(" value=\""); |
||||||
|
strbuf.append(arrayDeptName[i]); //부서명
|
||||||
|
strbuf.append("\">\n"); |
||||||
|
} |
||||||
|
strbuf.append(" </td>\n"); |
||||||
|
strbuf.append(" </tr>\n"); |
||||||
|
strbuf.append(" </table>\n"); |
||||||
|
strbuf.append(" </form>\n"); |
||||||
|
strbuf.append(" </body>\n"); |
||||||
|
strbuf.append("</html>\n"); |
||||||
|
|
||||||
|
return strbuf.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,365 @@ |
|||||||
|
<%@ |
||||||
|
page contentType="text/html; charset=UTF-8" |
||||||
|
import="kr.co.kihyun.beans.user.HttpSSOLogin" |
||||||
|
import="kr.co.kihyun.moumi.Moumi" |
||||||
|
import="kr.co.kihyun.lang.MString" |
||||||
|
import="kr.co.kihyun.lang.MLong" |
||||||
|
import="kr.co.kihyun.beans.user.Dept" |
||||||
|
import="kr.co.kihyun.beans.user.PartList" |
||||||
|
%> |
||||||
|
|
||||||
|
<% |
||||||
|
String rootId = request.getParameter("rootID"); |
||||||
|
String userYN = "Y"; |
||||||
|
%> |
||||||
|
|
||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="ko"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>트리메뉴</title> |
||||||
|
<script src="/totsys/common/js/jquery-1.12.4.min.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.cookie.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.hotkeys.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.jstree.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.custom.indicator.js"></script> |
||||||
|
<style> |
||||||
|
#newTree { text-align: justify; font-size:9pt; vertical-align:middle; } |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<input type="button" class="button" value="Search" id="search" style="display:none" /> |
||||||
|
<input type="button" class="button" value="Search clear" id="searchClear" style="display:none" /> |
||||||
|
<input type="button" class="button" value="checked Id" id="checkbtn" style="display:none" /> |
||||||
|
<input type="button" class="button" value="focus Move" id="focusMove" style="display:none" /> |
||||||
|
<div id="searchType" style="display:none"></div> |
||||||
|
<div id="searchWord" style="display:none"></div> |
||||||
|
<div id="moveType" style="display:none"></div> |
||||||
|
<div id="newTree" class="newTree"></div> |
||||||
|
|
||||||
|
<script class="source"> |
||||||
|
var gSearchGubun = "DEPT"; //default=DEPT |
||||||
|
var gblSearched = false; |
||||||
|
|
||||||
|
$(function() { |
||||||
|
$("#newTree").jstree({ |
||||||
|
"plugins": ["themes", "json_data", "checkbox", "search", "types", "ui", "core"], |
||||||
|
"themes": { |
||||||
|
"theme": "classic", |
||||||
|
"dots": true, |
||||||
|
"icons": true, |
||||||
|
"url": "/totsys/common/js/themes/classic/style.css" |
||||||
|
}, |
||||||
|
"json_data": { |
||||||
|
"data": [ |
||||||
|
{ |
||||||
|
"data": "조직도", |
||||||
|
"state": "closed", |
||||||
|
"attr": {"id": "ROOT", "rel": "ROOT", "rootid": '<%=rootId%>'} |
||||||
|
} |
||||||
|
], |
||||||
|
"ajax": { |
||||||
|
"type": "POST", |
||||||
|
"url": "/servlet/kr.co.kihyun.tree.Tree", |
||||||
|
"data": function(n) { |
||||||
|
var data = {}; |
||||||
|
data.id = n.attr("id"); |
||||||
|
data.rootId = n.attr("rootId"); |
||||||
|
data.gubun = "ORGAN"; |
||||||
|
data.userYN = '<%=userYN%>'; |
||||||
|
return data; |
||||||
|
} |
||||||
|
}, |
||||||
|
"progressive_render": true |
||||||
|
}, |
||||||
|
"types": { |
||||||
|
"valid_children": ["ROOT", "DEPT", "USER"], |
||||||
|
"types": { |
||||||
|
"ROOT": { |
||||||
|
"icon": {"image": "/totsys/common/images/pc-user.gif"} |
||||||
|
}, |
||||||
|
"USER": { |
||||||
|
"icon": {"image": "/totsys/common/images/person.png"} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"checkbox": {state_type: "three-state"}, |
||||||
|
"search": { |
||||||
|
"case_insensitive": true, |
||||||
|
"ajax": { |
||||||
|
"type": "POST", |
||||||
|
"url": "/servlet/kr.co.kihyun.tree.TreeSearch", |
||||||
|
"data": function(str) { |
||||||
|
var data = {}; |
||||||
|
data.keyWord = str; |
||||||
|
data.startId = encodeURIComponent('<%=rootId%>'); |
||||||
|
return data; |
||||||
|
}, |
||||||
|
//"async": false, |
||||||
|
"async": true, |
||||||
|
"success": function(data) { |
||||||
|
//alert("data = " + data); |
||||||
|
if (data.length == 0 || data == "#" || data == ('#' + '<%=rootId%>')) { |
||||||
|
alert('<%=Moumi.getMessageBundle().getString("moumi.message.popup.notSearchGroupDept")%>'); //검색된 그룹명/부서명이 없습니다. |
||||||
|
gblSearched = false; |
||||||
|
} else { |
||||||
|
gblSearched = true; |
||||||
|
} |
||||||
|
}, |
||||||
|
"beforeSend" : function() { |
||||||
|
$.customIndicator.show(window.parent); |
||||||
|
}, |
||||||
|
"complete" : function() { |
||||||
|
$.customIndicator.hide(window.parent); |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"core": {'initially_open': ['ROOT']} |
||||||
|
}); |
||||||
|
|
||||||
|
$("#searchClear").click(function() { |
||||||
|
$("#newTree").jstree("clear_search"); |
||||||
|
$("#searchResult").empty(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#search").click(function() { |
||||||
|
gblSearched = false; |
||||||
|
$("#newTree").jstree("search", $('#searchWord').text()); |
||||||
|
}); |
||||||
|
|
||||||
|
//### 검색을 종료한 후에 실행된다. : 검색된 것이 있으면 최초로 포커스를 이동시킨다. |
||||||
|
$("#newTree").bind("search.jstree", function(e, data) { |
||||||
|
if (data.rslt.nodes.length > 0) { |
||||||
|
//1.이전에 선택된 모든 노드를 해제한다. |
||||||
|
$('#newTree').jstree('deselect_all'); |
||||||
|
|
||||||
|
//2.검색유형과 다른 것은 style를 제거한다. |
||||||
|
var tmpRel = ""; |
||||||
|
$("#newTree").find(".jstree-search").each(function() { |
||||||
|
tmpRel = $(this).parent("li").attr("rel"); |
||||||
|
//alert("rel = " + tmpRel ); |
||||||
|
if (gSearchGubun !== tmpRel) { |
||||||
|
try { |
||||||
|
$(this).removeClass("jstree-search"); |
||||||
|
} catch (e) { |
||||||
|
alert(e); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
//찾은 것이 있다면 ... |
||||||
|
if (gblSearched == true) { |
||||||
|
$("#moveType").text("down"); |
||||||
|
$("#focusMove").click(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//@@@ gblSearching = false; |
||||||
|
//alert("Found " + data.rslt.nodes.length + " nodes matching '" + data.rslt.str + "'."); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("#newTree").bind("check_node.jstree", function(e, data) { |
||||||
|
data.inst.open_node(data.rslt.obj, false, true); |
||||||
|
}); |
||||||
|
|
||||||
|
//체크된것이 추가버튼을 클릭하면 부서 리스트로 추가된다. |
||||||
|
$("#checkbtn").click(function() { |
||||||
|
iChkCnt = 0 |
||||||
|
|
||||||
|
$("#newTree").jstree("get_checked", null, true).each(function() { |
||||||
|
//alert(" this.id = " + this.id); |
||||||
|
//alert(" this.deptname = " + this.deptname); |
||||||
|
//alert(" this.organdeptname = " + this.organdeptname); |
||||||
|
//alert(" this.upperdeptname = " + this.upperdeptname); |
||||||
|
var testID = this.id; |
||||||
|
testID = testID.substring(1, 2); |
||||||
|
testID = testID.replace(" ", ""); |
||||||
|
if (testID == "9") { |
||||||
|
//alert("추가할 수 없습니다."); |
||||||
|
} else { |
||||||
|
iChkCnt = iChkCnt + 1; |
||||||
|
//parent.putSelId(this.id); |
||||||
|
//ie10,11 에서 undefined 문제 해결 |
||||||
|
var upperdeptname=$(this).attr('upperdeptname'); |
||||||
|
if(!upperdeptname)upperdeptname=''; |
||||||
|
parent.putSelId2(this.id, |
||||||
|
$(this).attr('deptname'), |
||||||
|
$(this).attr('organdeptname'), |
||||||
|
upperdeptname); |
||||||
|
} |
||||||
|
//parent.putSelId(this.id); |
||||||
|
}); |
||||||
|
if (iChkCnt == 0) { |
||||||
|
alert('<%=Moumi.getMessageBundle().getString("moumi.message.doc.SubmitDevision")%>'); //제출부서를 선택해주세요. |
||||||
|
} else { |
||||||
|
try { |
||||||
|
$.customIndicator.show(window.parent); // 2014.10.08 by youngjun cho. (loading indicator 추가) |
||||||
|
} catch(e) { |
||||||
|
alert(e); |
||||||
|
} |
||||||
|
|
||||||
|
//오른쪽의 부서 리스트에 표시된다. |
||||||
|
parent.document.list.submit(); |
||||||
|
|
||||||
|
try { |
||||||
|
$.customIndicator.hide(window.parent); // 2014.10.08 by youngjun cho. (loading indicator 추가) |
||||||
|
} catch(e) { |
||||||
|
alert(e); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
//조직도에서 검색된 노드로 포커스를 이동시킨다. strType : down, up |
||||||
|
$("#focusMove").click(function() { |
||||||
|
var moveType = $("#moveType").text(); //down,up |
||||||
|
//alert("moveType = " + moveType); |
||||||
|
|
||||||
|
//1.현재 선택된 object의 offset.top를 구한다. |
||||||
|
var NODE = $.jstree._focused().get_selected(); |
||||||
|
var nodeId = $(NODE).attr("id"); |
||||||
|
if (nodeId == undefined) { |
||||||
|
nodeId = ""; |
||||||
|
} |
||||||
|
|
||||||
|
var currentObj = $('#' + nodeId); |
||||||
|
var currentOffset = currentObj.offset(); |
||||||
|
var currentOffsetTop = -1; |
||||||
|
if (currentOffset != null) { |
||||||
|
currentOffsetTop = currentOffset.top; |
||||||
|
} |
||||||
|
|
||||||
|
//2.현재 currentOffsetTop 보다 큰 값에 존재하는 id를 찾아서 리턴한다. |
||||||
|
var currentNodeId = ""; |
||||||
|
currentNodeId = getDeptUserId(nodeId, currentOffsetTop, moveType); |
||||||
|
|
||||||
|
//3.리턴된 id가 없다면 메세지를 띄우고 리턴한다. |
||||||
|
if (currentNodeId === null || currentNodeId === "") { |
||||||
|
alert("더 이상 찾을 수 없습니다."); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
//4.이전에 선택된 모든 노드를 해제한다. |
||||||
|
$('#newTree').jstree('deselect_all'); |
||||||
|
|
||||||
|
//5.리턴된 id로 노드를 선택한다. |
||||||
|
$("#newTree").jstree("select_node", '#' + currentNodeId); //591 |
||||||
|
|
||||||
|
try { |
||||||
|
var selectedObj = $('#' + currentNodeId); |
||||||
|
var elementOffset = selectedObj.offset(); |
||||||
|
//alert("[offset.top] : " + elementOffset.top + "\n[offset.left] : " + elementOffset.left); |
||||||
|
//ie10,11 및 호환성 보기 까지 전부 동작하도록 수정 |
||||||
|
var verticalCenterPosition = $(window).height() / 2; |
||||||
|
//// 즉시이동 |
||||||
|
//$("html").scrollTop(elementOffset.top - verticalCenterPosition); |
||||||
|
|
||||||
|
// 부드럽게 이동(500ms) |
||||||
|
$("html").animate({ |
||||||
|
scrollTop: elementOffset.top - verticalCenterPosition |
||||||
|
}, 500); |
||||||
|
|
||||||
|
} catch (e) { |
||||||
|
alert(e); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
//더블클릭 시에 ... |
||||||
|
$("#newTree").bind("dblclick.jstree", function(e, data) { |
||||||
|
iChkCnt = 0 |
||||||
|
|
||||||
|
var NODE = $.jstree._focused().get_selected(); |
||||||
|
var nodeId = $(NODE).attr("id"); |
||||||
|
var deptname = $(NODE).attr("deptname"); |
||||||
|
var organdeptname = $(NODE).attr("organdeptname"); |
||||||
|
var upperdeptname = $(NODE).attr("upperdeptname"); |
||||||
|
|
||||||
|
if (deptname == undefined) { deptname = ""; } |
||||||
|
if (organdeptname == undefined) { organdeptname = ""; } |
||||||
|
if (upperdeptname == undefined) { upperdeptname = ""; } |
||||||
|
|
||||||
|
//alert(" nodeId = " + nodeId); |
||||||
|
//alert(" deptname = " + deptname); |
||||||
|
//alert(" organdeptname = " + organdeptname); |
||||||
|
//alert(" upperdeptname = " + upperdeptname); |
||||||
|
|
||||||
|
if (nodeId == undefined) { |
||||||
|
return; |
||||||
|
} |
||||||
|
if (nodeId.length > 10 || nodeId == 'ROOT') { // this.id == 'ROOT') |
||||||
|
return; |
||||||
|
} |
||||||
|
var testID = nodeId; |
||||||
|
testID = testID.substring(1, 2); |
||||||
|
testID = testID.replace(" ", ""); |
||||||
|
if (testID == "9") { |
||||||
|
} else { |
||||||
|
iChkCnt = iChkCnt + 1; |
||||||
|
//parent.putSelId(nodeId); |
||||||
|
parent.putSelId2(nodeId, deptname, organdeptname, upperdeptname); |
||||||
|
} |
||||||
|
//parent.putSelId(nodeId); |
||||||
|
if (iChkCnt == 0) { |
||||||
|
alert('<%=Moumi.getMessageBundle().getString("moumi.message.doc.SubmitDevision")%>'); //제출부서를 선택해주세요. |
||||||
|
} else { |
||||||
|
//오른쪽의 부서 리스트에 표시된다. |
||||||
|
parent.document.list.submit(); |
||||||
|
} |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
//다운,업 버튼 클릭 시 : 2.현재 currentOffsetTop 보다 큰 값에 존재하는 id를 찾아서 리턴한다. |
||||||
|
function getDeptUserId(strId, intTop, strType) { |
||||||
|
//alert("strId = " + strId + ", intTop = " + intTop + ", strType = " + strType); |
||||||
|
var id = ""; |
||||||
|
var idArray = new Array(); |
||||||
|
var returnId = ""; |
||||||
|
var blSearchOk = false; |
||||||
|
|
||||||
|
if (strType === "down") { |
||||||
|
$("#newTree").find(".jstree-search").each(function() { |
||||||
|
id = $(this).parent("li").attr("id"); |
||||||
|
|
||||||
|
if (blSearchOk === false && strId !== id) { |
||||||
|
var selectedObj = $('#' + id); |
||||||
|
var elementOffset = selectedObj.offset(); |
||||||
|
|
||||||
|
if (elementOffset.top > intTop) { |
||||||
|
//alert("[offset.top] : " + elementOffset.top + "\n[offset.left] : " + elementOffset.left); |
||||||
|
returnId = id |
||||||
|
blSearchOk = true; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
if (strType === "up") { |
||||||
|
$("#newTree").find(".jstree-search").each(function() { |
||||||
|
idArray.push($(this).parent("li").attr("id")); |
||||||
|
}); |
||||||
|
idArray.reverse(); |
||||||
|
|
||||||
|
for (var i = 0; i < idArray.length; i++) { |
||||||
|
id = idArray[i].toString(); |
||||||
|
|
||||||
|
if (blSearchOk === false && strId !== id) { |
||||||
|
var selectedObj = $('#' + id); |
||||||
|
var elementOffset = selectedObj.offset(); |
||||||
|
|
||||||
|
if (elementOffset.top < intTop) { |
||||||
|
//alert("[offset.top] : " + elementOffset.top + "\n[offset.left] : " + elementOffset.left); |
||||||
|
returnId = id |
||||||
|
blSearchOk = true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return returnId; |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,52 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="ko"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>섹션목록</title> |
||||||
|
<link rel="stylesheet" href="../css/kecttep.css" type="text/css"> |
||||||
|
<script> |
||||||
|
function bluring() { |
||||||
|
if (event.srcElement.tagName == "A" || event.srcElement.tagName == "IMG") |
||||||
|
document.body.focus(); |
||||||
|
} |
||||||
|
|
||||||
|
document.onfocusin = bluring; |
||||||
|
|
||||||
|
function swapIMG(num) { // 눌렸을 때 이미지 변경 |
||||||
|
//기본 이미지 셋팅 |
||||||
|
//document.all["img1"].src="./images/group_b.jpg"; |
||||||
|
document.all["img1"].src = "./images/group_common_b.jpg"; |
||||||
|
document.all["img2"].src = "./images/group_area_b.jpg"; |
||||||
|
document.all["img3"].src = "./images/group_dept_b.jpg"; |
||||||
|
document.all["img4"].src = "./images/all_b.jpg"; |
||||||
|
|
||||||
|
//해당 이미지 활성화 |
||||||
|
if (num == 1) { |
||||||
|
//document.all["img1"].src="./images/group_a.jpg"; |
||||||
|
document.all["img1"].src = "./images/group_common_a.jpg"; |
||||||
|
} else if (num == 2) { |
||||||
|
//document.all["img1"].src="./images/group_a.jpg"; |
||||||
|
document.all["img2"].src = "./images/group_area_a.jpg"; |
||||||
|
} else if (num == 3) { |
||||||
|
//document.all["img1"].src="./images/group_a.jpg"; |
||||||
|
document.all["img3"].src = "./images/group_dept_a.jpg"; |
||||||
|
} else if (num == 4) { |
||||||
|
document.all["img4"].src = "./images/all_a.jpg"; |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body style="overflow: hidden;padding: 0; margin: 0;"> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<a href="./newTreeUser.jsp" target="leftFrame"> |
||||||
|
<img alt="전체" src="./images/all_b.jpg" border="0" id="img4" onClick="swapIMG(4);"> |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
|
@ -0,0 +1,521 @@ |
|||||||
|
<!-- |
||||||
|
페이지 설명 : 연계등록에서 제출기관지정시 사용자 단위로 보여지는 팝업 메뉴 |
||||||
|
수정작업 : 2013년 6월 25일. 2022.12.14 |
||||||
|
수정자 : jskim |
||||||
|
--> |
||||||
|
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" |
||||||
|
import="java.net.URLDecoder" |
||||||
|
import="kr.co.kihyun.lang.MString" |
||||||
|
import="kr.co.kihyun.lang.MInteger" |
||||||
|
import="kr.co.kihyun.lang.Encoder" |
||||||
|
import="kr.co.kihyun.beans.user.User" |
||||||
|
import="kr.co.kihyun.moumi.Moumi"%> |
||||||
|
<%@ include file="/totsys/common/inc/sec/secure.inc.jsp"%> |
||||||
|
<% |
||||||
|
String deptIDs = clearXSS(Encoder.toJava(MString.checkNull(request.getParameter("deptIDs"))), ""); |
||||||
|
String deptTypes = clearXSS(Encoder.toJava(MString.checkNull(request.getParameter("deptTypes"))), ""); |
||||||
|
//String deptNames = clearXSS(Encoder.toJava(MString.checkNull(request.getParameter("deptNames"))), ""); |
||||||
|
String deptNames = clearXSS(URLDecoder.decode(MString.checkNull(request.getParameter("deptNames")), "UTF-8"),""); |
||||||
|
String formName = clearXSS(Encoder.toJava(MString.checkNull(request.getParameter("formName"))), ""); |
||||||
|
|
||||||
|
int totCount = 0; |
||||||
|
|
||||||
|
String[] deptIDsList = deptIDs.split(","); |
||||||
|
if(deptIDs == null || deptIDs == "") { |
||||||
|
totCount = 0; |
||||||
|
} else { |
||||||
|
totCount = deptIDsList.length; |
||||||
|
} |
||||||
|
|
||||||
|
//2014.11.07 : Add by KWON,HAN |
||||||
|
int deptCount = MInteger.parseInt(request.getParameter("deptCount"), 0); |
||||||
|
if(deptCount > 0) { |
||||||
|
totCount = deptCount; |
||||||
|
} |
||||||
|
//++++++++++++++++++++++++++++ |
||||||
|
|
||||||
|
%> |
||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="ko"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>제출부서 선택</title> |
||||||
|
<script src="/totsys/common/js/jquery-1.12.4.min.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.cookie.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.hotkeys.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.jstree.js"></script> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/text.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/kecttep.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/SquareButtons.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/popup.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/basic.css" type="text/css"> |
||||||
|
<script src="/totsys/common/js/org_search.js"></script> |
||||||
|
<script> |
||||||
|
var delstate = false; |
||||||
|
var userGroup = false; // 사용자정의 그룹인지 여부지정 변수 |
||||||
|
|
||||||
|
var selid = ''; // 지금 선택한 부서 |
||||||
|
var seltype = ''; |
||||||
|
var selname = ''; |
||||||
|
var idList = ''; // 선택되어진 부서 리스트 |
||||||
|
var typeList = ''; |
||||||
|
var nameList = ''; |
||||||
|
var orgSearch = new OrgSearch(onNodeCallback); |
||||||
|
var focusedButton = null; |
||||||
|
$(document).ready(function() { |
||||||
|
$("#search").focus(); |
||||||
|
}); |
||||||
|
|
||||||
|
// 부서 추가 |
||||||
|
function setDepts() { |
||||||
|
//2014.11.07 : Update by KWON,HAN |
||||||
|
//document.list.idList.value = idList = "<%=deptIDs%>"; |
||||||
|
//document.list.typeList.value = typeList = "<%=deptTypes%>"; |
||||||
|
//document.list.nameList.value = nameList = "<%=deptNames%>"; |
||||||
|
|
||||||
|
document.list.idList.value = idList = opener.<%= formName%>.deptIDs.value; |
||||||
|
document.list.typeList.value = typeList = opener.<%= formName%>.deptTypes.value ; |
||||||
|
document.list.nameList.value = nameList = opener.<%= formName%>.deptNames.value; |
||||||
|
//=============================== |
||||||
|
|
||||||
|
idList = idList + ""; |
||||||
|
typeList = typeList + ""; |
||||||
|
nameList = nameList + ""; |
||||||
|
|
||||||
|
if (idList != "") |
||||||
|
document.list.submit(); |
||||||
|
|
||||||
|
/* @@@ test |
||||||
|
document.getElementById('search').value = "강원도교육청"; |
||||||
|
*/ |
||||||
|
} |
||||||
|
|
||||||
|
//추가 버튼 |
||||||
|
function getDeptId() { |
||||||
|
var $ff = $("#leftFrame"); |
||||||
|
$ff[0].contentWindow.$("#checkbtn").click(); |
||||||
|
//top.document.leftFrame.location.reload(); //부서가 추가된후 체크박스들을 초기화 시켜준다.2012.09.28 |
||||||
|
} |
||||||
|
|
||||||
|
function putSelId(id) { |
||||||
|
selid = id; |
||||||
|
deptConfirm2(); |
||||||
|
} |
||||||
|
|
||||||
|
function putSelId2(sId, sDeptName, sOrganDeptName, sUpperDeptName) { |
||||||
|
//alert("id = " + sId + ", deptName = " + sDeptName + ", OrganDeptName = " + sOrganDeptName + ", UpperDeptName = " + sUpperDeptName) |
||||||
|
|
||||||
|
selid = sId; |
||||||
|
//selname = sOrganDeptName; |
||||||
|
//if(!sOrganDeptName.equals(sUpperDeptName)) { |
||||||
|
// selname = selname + "-" + sUpperDeptName; |
||||||
|
//} |
||||||
|
selname = sDeptName + "|" + selid; |
||||||
|
//selname = sOrganDeptName + "|" + sUpperDeptName + "|" + sDeptName; |
||||||
|
|
||||||
|
deptConfirm2(); |
||||||
|
} |
||||||
|
|
||||||
|
// 부서 추가 |
||||||
|
function deptConfirm() { |
||||||
|
if (selid == '') |
||||||
|
alert("<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptConfirm")%>"); |
||||||
|
else if (seltype == "group") |
||||||
|
modSelect(); |
||||||
|
else { |
||||||
|
id = selid; |
||||||
|
name = selname; |
||||||
|
type = seltype; |
||||||
|
if (idList == '') { |
||||||
|
document.list.idList.value = idList = id; |
||||||
|
document.list.typeList.value = typeList = type; |
||||||
|
idList = idList + ""; |
||||||
|
typeList = typeList + ""; |
||||||
|
} else { |
||||||
|
var isAdd = listAdd(idList, id, typeList, type); |
||||||
|
document.list.idList.value = idList; |
||||||
|
document.list.typeList.value = typeList; |
||||||
|
} |
||||||
|
document.list.submit(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function deptConfirm2(id) { |
||||||
|
if (selid == '') |
||||||
|
alert("<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptConfirm")%>"); |
||||||
|
else if (seltype == "group") |
||||||
|
modSelect(); |
||||||
|
else { |
||||||
|
var id = selid; |
||||||
|
//type=seltype; |
||||||
|
var type = 'user'; |
||||||
|
var name = selname; |
||||||
|
|
||||||
|
if (idList == '') { |
||||||
|
document.list.idList.value = idList = id; |
||||||
|
document.list.typeList.value = typeList = type; |
||||||
|
document.list.nameList.value = nameList = name; |
||||||
|
idList = idList + ""; |
||||||
|
typeList = typeList + ""; |
||||||
|
nameList = nameList + ""; |
||||||
|
} else { |
||||||
|
var isAdd = listAdd(idList, id, typeList, type); |
||||||
|
document.list.idList.value = idList; |
||||||
|
document.list.typeList.value = typeList; |
||||||
|
if (isAdd) { |
||||||
|
listAddn(nameList, name); |
||||||
|
} |
||||||
|
document.list.nameList.value = nameList; |
||||||
|
} |
||||||
|
//document.list.submit(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function openerdeptConfirm() { //구성원으로 추가 |
||||||
|
var gid = document.list.openeridList.value; |
||||||
|
var gname = document.list.openernameList.value; |
||||||
|
var gtype = document.list.openertypeList.value; |
||||||
|
|
||||||
|
var arrayID = gid.split(","); |
||||||
|
var arrayName = gname.split(","); |
||||||
|
var arrayType = gtype.split(","); |
||||||
|
|
||||||
|
var isChange = false; |
||||||
|
|
||||||
|
for (var i = 0; i < arrayID.length; i++) { |
||||||
|
selid = arrayID[i]; |
||||||
|
selname = arrayName[i]; |
||||||
|
seltype = arrayType[i]; |
||||||
|
|
||||||
|
if (selid == '') { |
||||||
|
alert("<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptConfirm")%>"); |
||||||
|
} else { |
||||||
|
id = selid; |
||||||
|
name = selname; |
||||||
|
type = seltype; |
||||||
|
if (idList == '') { |
||||||
|
document.list.idList.value = idList = id; |
||||||
|
document.list.typeList.value = typeList = type; |
||||||
|
idList = idList + ""; |
||||||
|
typeList = typeList + ""; |
||||||
|
|
||||||
|
} else { |
||||||
|
var isAdd = listAdd(idList, id, typeList, type); |
||||||
|
document.list.idList.value = idList; |
||||||
|
document.list.typeList.value = typeList; |
||||||
|
} |
||||||
|
|
||||||
|
isChange = true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (isChange) { |
||||||
|
document.list.submit(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function modSelect() { |
||||||
|
var height = screen.height; |
||||||
|
var width = screen.width; |
||||||
|
var leftpos = width / 2 - 235; |
||||||
|
var toppos = height / 2 - 235; |
||||||
|
|
||||||
|
if (seltype != "group") { |
||||||
|
alert("<%=Moumi.getMessageBundle().getString("moumi.message.popup.groupSelect")%>"); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
var urlname = "/totsys/common/web/report_dept/modifier.jsp?groupID=" + selid; |
||||||
|
post2 = window.open(urlname, "post2", "width=450, height=465, toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + leftpos + ",top=" + toppos); |
||||||
|
post2.focus(); |
||||||
|
} |
||||||
|
|
||||||
|
function listAdd(idList1, idList2, tList, tItem) { |
||||||
|
var arrayID1 = idList1.split(","); |
||||||
|
var arrayType = tList.split(","); |
||||||
|
|
||||||
|
var isEquals = true; |
||||||
|
|
||||||
|
if (idList1 == '') { |
||||||
|
idList = idList1; |
||||||
|
typeList = tList; |
||||||
|
return false; |
||||||
|
} |
||||||
|
for (var i = 0; i < arrayID1.length; i++) { |
||||||
|
if (idList2 == arrayID1[i] && tItem == arrayType[i]) { |
||||||
|
isEquals = false; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
if (isEquals) { |
||||||
|
idList1 += "," + idList2; |
||||||
|
tList += "," + tItem; |
||||||
|
} |
||||||
|
idList = idList1; |
||||||
|
typeList = tList; |
||||||
|
return isEquals; |
||||||
|
} |
||||||
|
|
||||||
|
//부서명을 더한다. |
||||||
|
function listAddn(nameList1, nameList2) { |
||||||
|
//var arrayName1 = nameList1.split(","); |
||||||
|
|
||||||
|
if (nameList1 == '') { |
||||||
|
nameList = nameList1; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
nameList1 += "," + nameList2; |
||||||
|
nameList = nameList1; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// 삭제 버튼 |
||||||
|
function deptDelete() { |
||||||
|
if (idList != '') { |
||||||
|
deptFrame.movelist(); |
||||||
|
document.list.submit(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function leftFrameDel(name, id, type) { |
||||||
|
id = lastStrDel(id, ","); |
||||||
|
type = lastStrDel(type, ","); |
||||||
|
name = lastStrDel(name, ","); |
||||||
|
|
||||||
|
if (idList == '') { |
||||||
|
document.list.idList.value = idList = id; |
||||||
|
document.list.typeList.value = typeList = type; |
||||||
|
document.list.nameList.value = nameList = name; |
||||||
|
} else { |
||||||
|
delList(id, type, name); |
||||||
|
document.list.idList.value = idList; |
||||||
|
document.list.typeList.value = typeList; |
||||||
|
document.list.nameList.value = nameList; |
||||||
|
} |
||||||
|
|
||||||
|
document.list.submit(); |
||||||
|
} |
||||||
|
|
||||||
|
function lastStrDel(str, delStr) { |
||||||
|
var lastStr = str.lastIndexOf(delStr); |
||||||
|
return str.substring(0, lastStr); |
||||||
|
} |
||||||
|
|
||||||
|
function delList(idList1, tyList1, naList1) { |
||||||
|
idList = idList1; |
||||||
|
typeList = tyList1; |
||||||
|
nameList = naList1; |
||||||
|
} |
||||||
|
|
||||||
|
// 부서 선택 시 유저 뽑아내기. |
||||||
|
function userList(id, name, type) { |
||||||
|
if (type != '') { |
||||||
|
idAll = id; |
||||||
|
selid = id; |
||||||
|
selname = name; |
||||||
|
} else { |
||||||
|
idAll = ''; |
||||||
|
selid = ''; |
||||||
|
selname = ''; |
||||||
|
} |
||||||
|
seltype = type; |
||||||
|
idUpper = false; |
||||||
|
userGroup = false; |
||||||
|
} |
||||||
|
|
||||||
|
function groupList(id, name, type) { |
||||||
|
idAll = id; |
||||||
|
selid = id; |
||||||
|
selname = name; |
||||||
|
seltype = type; |
||||||
|
idUpper = false; |
||||||
|
userGroup = false; |
||||||
|
} |
||||||
|
|
||||||
|
function ProcKeyDown() { |
||||||
|
keyPressed = String.fromCharCode(window.event.keyCode); |
||||||
|
if ((keyPressed == '\r') || (keyPressed == '\n')) { |
||||||
|
if (focusedButton == null) { |
||||||
|
document.getElementById('nextButton').focus(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function previous() { |
||||||
|
alert('prev'); |
||||||
|
try { |
||||||
|
var locationString = document.leftFrame.location + ''; |
||||||
|
if (locationString.indexOf('groupTree.jsp') !== -1) // onNodeCallback does not works for group_list.jsp yet. |
||||||
|
return; |
||||||
|
orgSearch.previous(document.searchForm.keyword.value); |
||||||
|
} catch (e) { |
||||||
|
alert(e); |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function next() { |
||||||
|
alert('next'); |
||||||
|
try { |
||||||
|
var locationString = document.leftFrame.location + ''; |
||||||
|
if (locationString.indexOf('groupTree.jsp') !== -1) // onNodeCallback does not works for group_list.jsp yet. |
||||||
|
return; |
||||||
|
orgSearch.next(document.searchForm.keyword.value); |
||||||
|
} catch (e) { |
||||||
|
alert(e); |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function onNodeCallback(node) { |
||||||
|
for (i = 0; i < node.pathList.length; i++) |
||||||
|
document.leftFrame.openF(node.pathList[i]); |
||||||
|
document.leftFrame.selectItem(node.id, node.type); |
||||||
|
userList(node.id, node.name, node.type); |
||||||
|
} |
||||||
|
|
||||||
|
function searchWord() { |
||||||
|
var word = $('#search').val(); |
||||||
|
word = $.trim(word); |
||||||
|
$('#search').val(word); |
||||||
|
if (word.length < 2) { |
||||||
|
alert("검색어는 2글자 이상이어야 합니다."); |
||||||
|
return; |
||||||
|
} |
||||||
|
var $ff = $("#leftFrame"); |
||||||
|
$ff[0].contentWindow.$("#searchWord").text(word); |
||||||
|
$ff[0].contentWindow.$("#search").click(); |
||||||
|
} |
||||||
|
|
||||||
|
//조직도에서 검색된 노드로 포커스를 이동시킨다. strType : down, up |
||||||
|
function focusMove(strType) { |
||||||
|
//alert("strType = " + strType); |
||||||
|
var $ff = $("#leftFrame"); |
||||||
|
$ff[0].contentWindow.$("#moveType").text(strType); //포커스이동타입 |
||||||
|
$ff[0].contentWindow.$("#focusMove").click(); |
||||||
|
} |
||||||
|
|
||||||
|
//확인 버튼 |
||||||
|
function deptComp() { |
||||||
|
if (<%=totCount%>==0 && document.list.idList.value == "") { |
||||||
|
alert('<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptComp")%>'); //제출요청 부서를 추가 해 주세요 |
||||||
|
return false; |
||||||
|
|
||||||
|
} else { |
||||||
|
//전체 삭제를 한 경우에 확인메세지를 띄운다. |
||||||
|
if (document.list.idList.value == "") { |
||||||
|
//정말로 삭제 하시겠습니까? |
||||||
|
if (!confirm('<%=Moumi.getMessageBundle().getString("moumi.message.popup.deletion")%>')) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//*** 선택된 부서는 부모창에 변수에 저장되지만 DB에는 저장하지 않는다. 즉, 문서생성 완료시에 DB에 저장된다. |
||||||
|
opener.<%= formName%>.deptIDs.value = document.list.idList.value; |
||||||
|
opener.<%= formName%>.deptTypes.value = document.list.typeList.value; |
||||||
|
opener.<%= formName%>.deptNames.value = document.list.nameList.value; |
||||||
|
// var deptTemp = document.list.idList.value.split(","); |
||||||
|
// deptCounter = deptTemp.length; |
||||||
|
// |
||||||
|
// opener.<%= formName%>.deptCountText.value = deptCounter + "<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptCounter")%>"; |
||||||
|
// |
||||||
|
var deptTemp = ''; |
||||||
|
var deptCounter = 0; |
||||||
|
|
||||||
|
if (document.list.idList.value != null && document.list.idList.value != "") { |
||||||
|
deptTemp = document.list.idList.value.split(","); |
||||||
|
} |
||||||
|
|
||||||
|
if (deptTemp != null && deptTemp != '') { |
||||||
|
deptCounter = deptTemp.length; |
||||||
|
} |
||||||
|
|
||||||
|
//2014.11.07 : Add by KWON,HAN |
||||||
|
opener.<%= formName%>.deptCount.value = deptCounter; |
||||||
|
//+++++++++++++++++++++++++++++++ |
||||||
|
|
||||||
|
if(deptCounter <= 0) { |
||||||
|
opener.<%= formName%>.deptCountText.value = '<%=Moumi.getMessageBundle().getString("moumi.message.tot_doc.submitDevision")%>'; //제출기관을 선택해주세요. |
||||||
|
} else { |
||||||
|
opener.<%= formName%>.deptCountText.value = deptCounter + '<%=Moumi.getMessageBundle().getString("moumi.message.popup.deptCounter")%>'; //개의 부서를 선택하였습니다. |
||||||
|
} |
||||||
|
window.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//취소 버튼 |
||||||
|
function deptCancel() { |
||||||
|
window.close(); |
||||||
|
} |
||||||
|
</script> |
||||||
|
</head> |
||||||
|
<body onload="setDepts();"> |
||||||
|
<form name="list" method="post" action="/servlet/kr.co.kihyun.beans.user.HttpUserDocList" target="deptFrame"> |
||||||
|
<input type="hidden" name="idList"> |
||||||
|
<input type="hidden" name="seltype"> |
||||||
|
<input type="hidden" name="typeList"> |
||||||
|
<input type="hidden" name="nameList"> |
||||||
|
<input type="hidden" name="deptNameList"> |
||||||
|
<input type="hidden" name="openeridList"> |
||||||
|
<input type="hidden" name="openernameList"> |
||||||
|
<input type="hidden" name="openertypeList"> |
||||||
|
</form> |
||||||
|
<!--타이틀 //--> |
||||||
|
<div class="title"> |
||||||
|
<div><%=Moumi.getMessageBundle().getString("moumi.message.button_large.submitDept")%></div> |
||||||
|
</div> |
||||||
|
<!--타이틀 //--> |
||||||
|
<div class="disFlex lv1"> |
||||||
|
<div class="deptListSide"> |
||||||
|
<img alt="말머리" src="/totsys/common/images/ico_3.gif"> |
||||||
|
<b><%=Moumi.getMessageBundle().getString("moumi.message.tot_doc.deptMap")%></b> |
||||||
|
</div> |
||||||
|
<div class="deptListCenter"></div> |
||||||
|
<div class="deptListSide"><img alt="말머리" src="/totsys/common/images/ico_3.gif"><b>제출기관(부서)<!--%=Moumi.getMessageBundle().getString("moumi.message.tot_doc.submitDept")%--></b></div> |
||||||
|
</div> |
||||||
|
<div class="disFlex ml_5"> |
||||||
|
<!-- 분류 선택 아이프레임 --> |
||||||
|
<iframe src="iframe/new_section_list4.html" width="300" height="21"></iframe> |
||||||
|
</div> |
||||||
|
<div class="disFlex"> |
||||||
|
<div class="deptListSide"> |
||||||
|
<!-- 부서 선택 아이프레임 --> |
||||||
|
<iframe id="leftFrame" name="leftFrame" src="./iframe/newTreeUser.jsp"></iframe> |
||||||
|
</div> |
||||||
|
<div class="deptListCenter center deptPt"> |
||||||
|
<div> |
||||||
|
<!--추가--> |
||||||
|
<a href="javascript:getDeptId();"><img alt="추가" src="./images/new_dept_add.gif"/></a> |
||||||
|
</div> |
||||||
|
<div class="mt_5"> |
||||||
|
<!--삭제--> |
||||||
|
<a href="javascript:deptDelete();"><img alt="삭제" src="./images/new_dept_del.gif"/></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="deptListSide"> |
||||||
|
<!-- 선택된 부서 리스트 아이프레임 --> |
||||||
|
<iframe name="deptFrame" src="./iframe/selected_list.jsp"></iframe> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td> 검 색 </td> |
||||||
|
<td><input id="search" name="search" type="text" class="inputtxt" value="" size="35" onkeyDown="if(event.keyCode === 13) { searchWord(); }" style="ime-mode:active;"> </td> |
||||||
|
<td><a href="#" onclick="searchWord();"><img alt="찾기" src="/totsys/common/images/bt_search_inquiry2.gif"></a> </td> |
||||||
|
<td><a href="#" onclick="focusMove('down');"><img alt="다음" src="/totsys/common/images/bt_down.jpg"></a> </td> |
||||||
|
<td><a href="#" onclick="focusMove('up');"><img alt="이전" src="/totsys/common/images/bt_up.jpg"></a></td> |
||||||
|
<td></td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
<!-- 확인, 취소 버튼 --> |
||||||
|
<div class="center mt_10" style="border-top: 1px solid #8ea6d6"> |
||||||
|
<div class="mt_10"> |
||||||
|
<a href="#" onclick="deptComp()"><img alt="확인" src="/totsys/common/images/bt_ok.gif"></a> |
||||||
|
<a href="#" onClick="deptCancel()"><img alt="취소" class="ml_5" src="/totsys/common/images/bt_cancle.gif"></a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</HTML> |
@ -0,0 +1,728 @@ |
|||||||
|
|
||||||
|
<% /** |
||||||
|
* **********************************************************@@ Program Name |
||||||
|
* sub_doc_user_regist.jsp Description : 접수자료/연계등록 |
||||||
|
* Author : jskim |
||||||
|
* Date : 2022.12.14 |
||||||
|
* History : 경북대학교 연계등록시 사용자단위 취합 |
||||||
|
* @@*********************************************************** |
||||||
|
*/ |
||||||
|
%> |
||||||
|
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" |
||||||
|
import="java.util.Calendar" |
||||||
|
import="java.net.URLEncoder" |
||||||
|
import="java.util.Date" |
||||||
|
import="java.text.SimpleDateFormat" |
||||||
|
import="kr.co.kihyun.beans.user.HttpSSOLogin" |
||||||
|
import="kr.co.kihyun.lang.Encoder" |
||||||
|
import="kr.co.kihyun.lang.MString" |
||||||
|
import="kr.co.kihyun.lang.MInteger" |
||||||
|
import="kr.co.kihyun.lang.MLong" |
||||||
|
import="kr.co.kihyun.moumi.MoumiConfig" |
||||||
|
import="kr.co.kihyun.moumi.doc.MDoc" |
||||||
|
import="kr.co.kihyun.lang.StringConverter" |
||||||
|
import="kr.co.kihyun.text.html.TagFilter" |
||||||
|
import="javax.jdo.PersistenceManager" |
||||||
|
import="javax.jdo.Transaction" |
||||||
|
import="kr.co.kihyun.beans.entity.util.*" |
||||||
|
import="kr.co.kihyun.beans.entity.*" |
||||||
|
import="kr.co.kihyun.beans.entity.TotDocType" |
||||||
|
%> |
||||||
|
<%@ page import="java.util.Map.Entry"%> |
||||||
|
<%@ page import="java.util.List"%> |
||||||
|
|
||||||
|
<%@ include file="/totsys/common/inc/sec/secure.inc.jsp" %> |
||||||
|
|
||||||
|
<% PersistenceManager pm = new MPersistenceManager(PMF.get().getPersistenceManager()); |
||||||
|
Transaction tx = pm.currentTransaction(); |
||||||
|
try { |
||||||
|
/** |
||||||
|
* ******** session내의 userId ********* |
||||||
|
*/ |
||||||
|
String usID = HttpSSOLogin.getLoginID(request); |
||||||
|
String deptID = HttpSSOLogin.getDeptID(request); |
||||||
|
|
||||||
|
/** |
||||||
|
* ********** Parameter values *********** |
||||||
|
*/ |
||||||
|
Long reportID = MLong.parseLong(request.getParameter("reportID"), null); |
||||||
|
String totType = clearXSS(request.getParameter("totType"), ""); |
||||||
|
Long downDocID = MLong.parseLong(request.getParameter("downDocID"), null); |
||||||
|
String boxName = MString.checkNull(request.getParameter("boxName")); |
||||||
|
if (MString.isNull(totType) || totType.equals("")) { |
||||||
|
totType = "1step"; |
||||||
|
} |
||||||
|
String tmpMagam = MString.checkNull(request.getParameter("tmpMagam")); |
||||||
|
String strPage = clearXSS(request.getParameter("strPage"),""); |
||||||
|
String findOption = clearXSS(request.getParameter("findOption"),null); |
||||||
|
String findWord = clearXSS(Encoder.toJava(request.getParameter("findWord")),null); |
||||||
|
|
||||||
|
TotReport totReport = pm.getObjectById(TotReport.class, reportID); |
||||||
|
|
||||||
|
String usrFilenames = ""; |
||||||
|
String svrFilenames = ""; |
||||||
|
int fileCount = 0; |
||||||
|
|
||||||
|
tx.begin(); |
||||||
|
|
||||||
|
/** |
||||||
|
* **** Doc list data get ***** |
||||||
|
*/ |
||||||
|
TotDoc totDoc = totReport.getTotDoc(); |
||||||
|
String docName = totDoc.getName(); |
||||||
|
String docForm = totDoc.getForm(); |
||||||
|
String regID = totDoc.getUser(pm).getId(); |
||||||
|
Date startDate = totDoc.getStartDate(); |
||||||
|
Date endDate = totDoc.getEndDate(); |
||||||
|
AccessAuth accAuth = totDoc.getAccessAuth(); |
||||||
|
TotDoc.TotRange totRange = totDoc.getTotRange(); |
||||||
|
|
||||||
|
Board board = totDoc.getBoard(); |
||||||
|
for (Entry<String, List<Byte>> entry : board.getAttachments().entrySet()) { |
||||||
|
usrFilenames += entry.getKey() + ";"; |
||||||
|
svrFilenames += entry.getKey() + ";"; |
||||||
|
} |
||||||
|
|
||||||
|
fileCount = board.getAttachments().size(); |
||||||
|
|
||||||
|
tx.rollback(); |
||||||
|
|
||||||
|
/** |
||||||
|
* ******** 시작, 종료 년, 월, 일 ********* |
||||||
|
*/ |
||||||
|
String stDate = startDate == null ? "" : new SimpleDateFormat("yyyy-MM-dd").format(startDate); |
||||||
|
String stTime = startDate == null ? "" : new SimpleDateFormat("HH").format(startDate); |
||||||
|
String edDate = new SimpleDateFormat("yyyy-MM-dd").format(endDate); |
||||||
|
String edTime = new SimpleDateFormat("HH").format(endDate); |
||||||
|
%> |
||||||
|
|
||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="ko"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title><%=MoumiConfig.getTitle()%></title> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/contentStyle.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/basic.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/text.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/kecttep.css" type="text/css"> |
||||||
|
<link rel="stylesheet" href="/totsys/common/css/tabs.css" type="text/css"> |
||||||
|
<link href="/totsys/common/css/SquareButtons.css" rel="stylesheet" type="text/css"> |
||||||
|
<script src="/totsys/common/js/rollover.js"></script> |
||||||
|
<script src="/totsys/common/js/util.js"></script> |
||||||
|
<script src="/totsys/common/js/calendar.js"></script> |
||||||
|
<script src="/totsys/common/js/drag.js"></script> |
||||||
|
<script src="/totsys/common/js/date.js"></script> |
||||||
|
<script src='/totsys/common/js/mouse.js'></script> |
||||||
|
<script src='/totsys/common/js/editor.js'></script> |
||||||
|
<script src="/totsys/common/js/jquery-1.12.4.min.js"></script> |
||||||
|
<script src="/totsys/common/js/jquery.custom.indicator.js"></script> |
||||||
|
<script> |
||||||
|
/* |
||||||
|
* 목록페이지로 이동처리하는 함수 |
||||||
|
*/ |
||||||
|
function fn_goToList() { |
||||||
|
document.listForm.submit(); |
||||||
|
} |
||||||
|
function setValue() { |
||||||
|
if ("<%= docName%>" != "") { |
||||||
|
dform.docName.value = "<%= docName%>"; |
||||||
|
dform.accAuth["<%= accAuth.ordinal()%>"].checked = true; |
||||||
|
dform.stDate.value = "<%= stDate%>"; |
||||||
|
dform.stTime.value = "<%= stTime%>"; |
||||||
|
dform.edDate.value = "<%= edDate%>"; |
||||||
|
dform.edTime.value = "<%= edTime%>"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function formSubmit() { |
||||||
|
//ban lower case var ext = fn.substring(fn.indexOf('.')+1,fn.length).toLowerCase(); |
||||||
|
if (dform.docName.value == '') { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.dataNameCheck")%>'); |
||||||
|
dform.docName.focus(); |
||||||
|
return; |
||||||
|
//}else if (containsChars(dform.docName,'₩/?"<>|!,*&^%$#@~;')) { |
||||||
|
} else if (containsChars(dform.docName, '₩/|^$#@')) { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.dataNameSymboleCheck")%>'); |
||||||
|
dform.docName.focus(); |
||||||
|
return; |
||||||
|
} else if (dform.accAuth[0].checked == false && dform.accAuth[1].checked == false && dform.accAuth[2].checked == false && dform.accAuth[3].checked == false) { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.docAuth")%>'); |
||||||
|
return; |
||||||
|
} else if ((dform.stDate.value == '') || (dform.stTime.value == '')) { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.startDateCheck")%>'); |
||||||
|
dform.stDate.focus(); |
||||||
|
return; |
||||||
|
} else if ((dform.edDate.value == '') || (dform.edTime.value == '')) { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.endDateCheck")%>'); |
||||||
|
dform.edDate.focus(); |
||||||
|
return; |
||||||
|
} else if (isDateTrue(dform.stDate.value, dform.stTime.value, dform.edDate.value, dform.edTime.value)) { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.startEndDateCheck")%>'); |
||||||
|
return; |
||||||
|
} else if (dform.stDate.value < '<%=stDate%>') { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notTotdocStartDate")%>'); |
||||||
|
return; |
||||||
|
} else if (dform.edDate.value > '<%=edDate%>') { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.notTotdocEndDate")%>'); |
||||||
|
return; |
||||||
|
} else if (dform.deptIDs.value.length == '') { |
||||||
|
alert('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.deptComp")%>'); |
||||||
|
deptSelect(); |
||||||
|
return; |
||||||
|
} else { |
||||||
|
dform.copyForm.value = EditCtrl.document.body.innerHTML; |
||||||
|
var messge = confirm('<%=MoumiConfig.getMessageBundle().getString("moumi.message.popup.confirmTocdocStartTrue")%>'); |
||||||
|
if (messge) { |
||||||
|
var cfm = confirm('<%= MoumiConfig.getMessageBundle().getString("moumi.message.popup.confirmTocdocStart")%>'); |
||||||
|
if (cfm) { |
||||||
|
dform.submit(); |
||||||
|
// 2014.10.21 By YoungJun Cho. (연계등록 집계시작시 indicator 띄우기) |
||||||
|
$.customIndicator.show(window.self); |
||||||
|
} |
||||||
|
} else { |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function isDateTrue(stDate, stTime, edDate, edTime) { |
||||||
|
if (stDate < edDate) { |
||||||
|
return false; |
||||||
|
} else if (stDate == edDate) { |
||||||
|
if (stTime < edTime) |
||||||
|
return false; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
function containsChars(input, chars) { |
||||||
|
for (var inx = 0; inx < input.value.length; inx++) { |
||||||
|
if (chars.indexOf(input.value.charAt(inx)) != -1) |
||||||
|
return true; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
function insertForm() { |
||||||
|
init(); |
||||||
|
EditCtrl.document.body.innerHTML = '<%=StringConverter.toOneLine(TagFilter.convertSingle(docForm))%>'; |
||||||
|
//ie10,11 호환성보기 수정 - 테두리 없어지는 문제 수정 |
||||||
|
$(EditCtrl.document.body).find('> table').attr({'border':'1','bo':'true'}).css('border','1px solid #000') |
||||||
|
.find('td').each(function(i,o){ |
||||||
|
if($(o).closest('table').attr('bo')=='true'){ |
||||||
|
$(this).css('border','1px solid #000'); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
function totRange1() { |
||||||
|
//alert(document.dform.totRange[0].value); |
||||||
|
document.dform.deptIDs.value = ""; |
||||||
|
document.dform.deptNames.value = ""; |
||||||
|
document.dform.deptTypes.value = ""; |
||||||
|
document.dform.handyName.value = ""; |
||||||
|
document.dform.handyName.readOnly = false; |
||||||
|
document.dform.deptCountText.value = "<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.submitDevision")%>"; |
||||||
|
} |
||||||
|
|
||||||
|
function totRange2() { |
||||||
|
//alert(document.dform.totRange[1].value); |
||||||
|
document.dform.deptIDs.value = ""; |
||||||
|
document.dform.deptNames.value = ""; |
||||||
|
document.dform.deptTypes.value = ""; |
||||||
|
document.dform.handyName.value = ""; |
||||||
|
document.dform.handyName.value = "<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.innerTot_doc")%>"; |
||||||
|
document.dform.handyName.readOnly = true; |
||||||
|
document.dform.deptCountText.value = "<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.submitDevision")%>"; |
||||||
|
} |
||||||
|
|
||||||
|
function showMsgAlert() { |
||||||
|
location.href = "/totsys/repoper/mydocbox/tempbox/<%if (downDocID == null) {%>report_regist.jsp<%} else {%>tot_report_regist.jsp<%}%>?reportID=<%= reportID%>&downDocID=<%= downDocID%>&deptID=<%=deptID%>&tmpMagam=<%=tmpMagam%>"; |
||||||
|
} |
||||||
|
|
||||||
|
function showAlert() { |
||||||
|
location.href = "/totsys/repoper/mydocbox/tempbox/<%if (downDocID == null) {%>report_regist.jsp<%} else {%>tot_report_regist.jsp<%}%>?reportID=<%= reportID%>&downDocID=<%= downDocID%>&deptID=<%=deptID%>&tmpMagam=<%=tmpMagam%>"; |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
* 자료입력페이지로 이동처리하는 함수 |
||||||
|
* @returns {undefined} |
||||||
|
*/ |
||||||
|
function fn_goToInputForm() { |
||||||
|
document.inputForm.submit(); |
||||||
|
} |
||||||
|
|
||||||
|
function inputText() { |
||||||
|
window.open('./popup_input_form.jsp', 'makepoll', 'width=900,height=550,scrollbars=yes,resizable=yes,statusbar=yes'); |
||||||
|
} |
||||||
|
|
||||||
|
function setStartNow() { |
||||||
|
dform.prss.value = 'PRSS'; |
||||||
|
document.dform.stDate.value = '<%= stDate%>'; |
||||||
|
document.dform.stTime.value = '<%= stTime%>'; |
||||||
|
document.getElementById('startDate').style.display = 'none'; |
||||||
|
} |
||||||
|
|
||||||
|
function setStartDate() { |
||||||
|
dform.prss.value = 'PRSS'; |
||||||
|
document.dform.stDate.value = '<%= stDate%>'; |
||||||
|
document.dform.stTime.value = '<%= stTime%>'; |
||||||
|
document.getElementById('startDate').style.display = 'inline'; |
||||||
|
} |
||||||
|
|
||||||
|
function setStartManually() { |
||||||
|
document.getElementById('startDate').style.display = 'none'; |
||||||
|
dform.prss.value = 'REG'; |
||||||
|
document.dform.stDate.value = '<%= stDate%>'; |
||||||
|
document.dform.stTime.value = '<%= stTime%>'; |
||||||
|
} |
||||||
|
|
||||||
|
function setEndDate() { |
||||||
|
document.getElementById('endDate').style.display = 'inline'; |
||||||
|
document.getElementById('submitLimit').style.display = 'none'; |
||||||
|
} |
||||||
|
|
||||||
|
function setSubmitLimit() { |
||||||
|
document.getElementById('endDate').style.display = 'none'; |
||||||
|
document.getElementById('submitLimit').style.display = 'inline'; |
||||||
|
dform.submitLimit.focus(); |
||||||
|
} |
||||||
|
|
||||||
|
function validateSubmitLimit() { |
||||||
|
if (isNaN(dform.submitLimit.value)) { |
||||||
|
alert('숫자만 입력하시기 바랍니다.'); |
||||||
|
dform.submitLimit.value = 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function setWriteLimit() { |
||||||
|
document.getElementById('endDate').style.display = 'none'; |
||||||
|
document.getElementById('submitLimit').style.display = 'none'; |
||||||
|
} |
||||||
|
|
||||||
|
function setEndManually() { |
||||||
|
document.getElementById('endDate').style.display = 'none'; |
||||||
|
document.getElementById('submitLimit').style.display = 'none'; |
||||||
|
} |
||||||
|
|
||||||
|
</script> |
||||||
|
<OBJECT class="blind" id=fleck classid=CLSID:F5BE8BD2-7DE6-11D0-91FE-00C04FD701A5></OBJECT> |
||||||
|
<script> |
||||||
|
function deptSelect() { |
||||||
|
var urlname = "/totsys/common/web/report_dept/new_user_list2.jsp?formName=dform§ion=1&deptIDs=" + dform.deptIDs.value + "&deptNames=" + dform.deptNames.value + "&deptTypes=" + dform.deptTypes.value; |
||||||
|
var height = screen.height; |
||||||
|
var width = screen.width; |
||||||
|
var leftpos = width / 2 - 350; |
||||||
|
var toppos = height / 2 - 350; |
||||||
|
alert('자신이 속한 교육지원청/직속기관의 자료를 입력할 경우 제출기관으로 지정하셔야 합니다'); |
||||||
|
post = window.open(urlname, "post", "width=900, height=600, toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + leftpos + ",top=" + toppos); |
||||||
|
post.focus(); |
||||||
|
} |
||||||
|
|
||||||
|
//2014.11.07 : Add by KWON,HAN |
||||||
|
function deptSelect2() { |
||||||
|
|
||||||
|
alert('자신이 속한 교육지원청/직속기관의 자료를 입력할 경우 제출기관으로 지정하셔야 합니다'); |
||||||
|
|
||||||
|
//2014.11.07 : Delete, Add by KWON,HAN |
||||||
|
//etc2.deptIDs.value=dform.deptIDs.value; |
||||||
|
//etc2.deptTypes.value=dform.deptTypes.value; |
||||||
|
////etc2.deptNames.value=dform.deptNames.value; |
||||||
|
//etc2.deptNames.value = encodeURL(dform.deptNames.value); |
||||||
|
etc2.deptCount.value = dform.deptCount.value; |
||||||
|
//=============================== |
||||||
|
|
||||||
|
var height = screen.height; |
||||||
|
var width = screen.width; |
||||||
|
var leftpos = width / 2 - 350; |
||||||
|
var toppos = height / 2 - 350; |
||||||
|
post2= window.open("","post2","width=900,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left="+leftpos+",top="+toppos); |
||||||
|
etc2.target="post2"; |
||||||
|
etc2.submit(); |
||||||
|
} |
||||||
|
|
||||||
|
</script> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body onload="setValue();dform.docName.focus();"> |
||||||
|
<form name="listForm" method="post" action="/totsys/repoper/mydocbox/returnbox/report_list.jsp"> |
||||||
|
<input type="hidden" name="strPage" value="<%= strPage %>"> |
||||||
|
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>"> |
||||||
|
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>"> |
||||||
|
</form> |
||||||
|
<form name="inputForm" method="post" action="/totsys/repoper/mydocbox/tempbox/report_regist.jsp""> |
||||||
|
<input type="hidden" name="reportID" value="<%= reportID %>"> |
||||||
|
<input type="hidden" name="totperInfo" value="true"> |
||||||
|
<input type="hidden" name="tmpMagam" value="<%= tmpMagam %>"> |
||||||
|
<input type="hidden" name="strPage" value="<%= strPage %>"> |
||||||
|
<input type="hidden" name="findOption" value="<%=MString.checkNull(findOption)%>"> |
||||||
|
<input type="hidden" name="findWord" value="<%=MString.checkNull(findWord)%>"> |
||||||
|
</form> |
||||||
|
<div> |
||||||
|
<table width="100%" border="0" cellpadding="0" cellspacing="0"> |
||||||
|
<jsp:include page="/totsys/common/inc/totper/top/top.jsp" flush="true" /> |
||||||
|
<jsp:include page="/totsys/common/inc/title/title.jsp" flush="true" /> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="header"> |
||||||
|
<ul id="primary"> |
||||||
|
<!-- ie10,11 에서 호환성 보기 문제 수정 a,span 태그에 스타일 추가 --> |
||||||
|
<!-- <li> |
||||||
|
<a style="padding: 0px; line-height: 25px;" |
||||||
|
href="/totsys/repoper/mydocbox/returnbox/report_view.jsp?reportID=<%= reportID%>&boxName=<%= boxName%>"><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.information")%> |
||||||
|
</a> |
||||||
|
</li>--> |
||||||
|
<li> |
||||||
|
<a href="#" onClick="fn_goToInputForm();" style="padding: 0px; line-height: 25px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.doc")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.input")%> |
||||||
|
</a> |
||||||
|
</li> |
||||||
|
<%if (MoumiConfig.is2Step()) {%> |
||||||
|
<li> |
||||||
|
<span style="padding: 0px; line-height: 25px;" class="kecttep_menu_focous"><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.subDocRegist")%></span> |
||||||
|
</li> |
||||||
|
<%}%> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="main"> |
||||||
|
<div id="contents"> |
||||||
|
<table> |
||||||
|
<tr style="vertical-align: middle;" class="toolbar"> |
||||||
|
<td colspan="4" style="text-align: left;"> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<!--<img src="/totsys/common/images/bt_list.gif" alt="목록" />--> |
||||||
|
<a href="#" onclick="fn_goToList();"> |
||||||
|
<img src="/totsys/common/images/bt_doc_list.gif" alt="<%= MoumiConfig.getMessageBundle().getString("moumi.message.doc")%><%= MoumiConfig.getMessageBundle().getString("moumi.message.button.boardList")%>" /> |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td style="height: 10px;"></td> |
||||||
|
</tr> |
||||||
|
<!-- 집계자 정보 시작 --> |
||||||
|
<jsp:include page="/totsys/common/inc/totper/totper.jsp" flush="true"> |
||||||
|
<jsp:param name="docID" value='<%= totReport.getTotDoc().getId()%>' /> |
||||||
|
</jsp:include> |
||||||
|
<!-- 집계자 정보 끝 --> |
||||||
|
|
||||||
|
<tr style="height: 10px;"> |
||||||
|
<td style="height: 10px;"></td> |
||||||
|
<td></td> |
||||||
|
<td></td> |
||||||
|
<td></td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td colspan="4"> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td style="width: 14px;"><img alt="글머리" src="/totsys/common/images/ico_3.gif"></td> |
||||||
|
<td class="kecttep_title" style="padding-left: 5px; text-align: left; width: 100%;"> |
||||||
|
<%= MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.doc")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.registrition")%> |
||||||
|
</td> |
||||||
|
<td> </td> |
||||||
|
<td> </td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td style="height: 3px;"></td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td colspan="4"> |
||||||
|
<form name="etc2" method="post2" action="/totsys/common/web/report_dept/new_user_list2.jsp"> |
||||||
|
<input type="hidden" name="formName" value="dform"> |
||||||
|
<input type="hidden" name="section" value="1"> |
||||||
|
<input type="hidden" name="deptTypes"> |
||||||
|
<input type="hidden" name="deptNames"> |
||||||
|
<input type="hidden" name="deptIDs"> |
||||||
|
<input type="hidden" name="deptCount"> |
||||||
|
</form> |
||||||
|
|
||||||
|
<!-- 문서등록 시작 --> |
||||||
|
<!--form name="dform" action="/totsys/common/web/report_dept/dept_list_subReg.jsp" method="post"--> |
||||||
|
<form name="dform" action="/servlet/kr.co.kihyun.beans.totsys.doc.HttpSubDocUserRegist" method="post"> |
||||||
|
<input type="hidden" name="docGroupID" value="<%= MDoc.TOT_DOC%>"> |
||||||
|
<input type="hidden" name="prss" value="PRSS"> |
||||||
|
<input type="hidden" name="copyForm"> |
||||||
|
<input type="hidden" name="deptIDs"> |
||||||
|
<input type="hidden" name="deptNames"> |
||||||
|
<input type="hidden" name="deptCount"> |
||||||
|
<input type="hidden" name="reportID" value="<%= reportID%>"> |
||||||
|
<input type="hidden" name="docForm" value='<%=StringConverter.toOneLine(TagFilter.convertSingle(docForm))%>'> |
||||||
|
<input type="hidden" name="stDate" value="<%=stDate%>"> |
||||||
|
<input type="hidden" name="stTime" value="<%=stTime%>"> |
||||||
|
<input type="hidden" name="choice"> |
||||||
|
<input type="hidden" name="userIDs"> |
||||||
|
<input type="hidden" name="deptTypes"> |
||||||
|
<input type="hidden" name="notify" value="<%= totDoc.getBoard().getContents()%>"> |
||||||
|
<input type="hidden" name="fileCount" value="<%=fileCount%>"> |
||||||
|
<input type="hidden" name="usrFilenames" value="<%=usrFilenames%>"> |
||||||
|
<input type="hidden" name="svrFilenames" value="<%=svrFilenames%>"> |
||||||
|
<input type="hidden" name="fileInfos"> <!--세미타이틀--> |
||||||
|
<table class="kecttep_list_table"> |
||||||
|
<tr> |
||||||
|
<td class="kecttep_tdmenu_middle" style="padding-left: 20px; width: 150px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.doc")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.name")%> |
||||||
|
</td> |
||||||
|
<td class="kecttep_last_graytd" style="padding-left: 10px; padding-right: 10px; width:100px;"> |
||||||
|
<input name="docName" type="text" class="inputtxt" size="100"> |
||||||
|
</td> |
||||||
|
<td class="kecttep_tdmenu_middle" style="padding-left: 20px; width: 150px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.executionCode")%> |
||||||
|
</td> |
||||||
|
<td class="kecttep_last_graytd" style="padding-left: 10px; "> |
||||||
|
<%= HttpSSOLogin.getDeptName(request)%>_ |
||||||
|
<input name="execNum" type="text" class="inputtxt" style="width: 60px"> |
||||||
|
(<input name="execDate" type="text" size="10" |
||||||
|
readonly onclick="showSetWin('dform.execDate');" |
||||||
|
style="cursor: hand;" class="inputtxt"><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.day")%> |
||||||
|
<a href="#" onclick="showSetWin('dform.execDate');"> |
||||||
|
<img src="/totsys/common/images/date.gif" align="middle"> |
||||||
|
</a>) |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td class="kecttep_tdmenu_middle" style="width: 150px; padding-left: 20px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.dataInputDevision")%> |
||||||
|
</td> |
||||||
|
<td class="kecttep_last_graytd" style="padding-left: 10px;"> |
||||||
|
<!-- Begin : 제출기관지정 버튼 //--> |
||||||
|
<a href="#" onclick="javascript:deptSelect2();"> |
||||||
|
<span style="width: 99px; cursor: pointer;"> |
||||||
|
<!--<img src="/totsys/common/images/person.png" height="12"> --> |
||||||
|
<img src="/totsys/common/images/bt_dept_select2.gif" height="24" alt="<%=MoumiConfig.getMessageBundle().getString("moumi.message.button_large.submitDept")%>"> |
||||||
|
</span> |
||||||
|
</a> |
||||||
|
<!--// End : 제출기관지정 버튼 --> |
||||||
|
<input name="deptCountText" |
||||||
|
type="text" |
||||||
|
style="width: 200px; border: 0; color: black; padding-top: 3px; padding-left: 2px;" |
||||||
|
value=" <%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.submitDevision")%>"> |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="kecttep_tdmenu_middle" style="width: 120px; padding-left: 20px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.input")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.trick")%> |
||||||
|
</td> |
||||||
|
<td class="kecttep_last_graytd" style="padding-left: 10px;"> |
||||||
|
<a href="#" onClick="javascript:inputText();"> |
||||||
|
<img src="/totsys/common/images/bt_psd.gif" alt="<%=MoumiConfig.getMessageBundle().getString("moumi.message.button_large.inputWrite")%>" /> |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<!--자료공유범위--> |
||||||
|
<tr> |
||||||
|
<td class="kecttep_tdmenu_middle" style="width: 120px; padding-left: 20px; vertical-align: middle;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.doc")%><%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.type.share")%> |
||||||
|
</td> |
||||||
|
<td colspan="3" class="kecttep_last_graytd" style="padding-left: 15px; border-bottom: 1px solid rgb(238, 238, 238); width: 500px;"> |
||||||
|
<label class="label-cotent1" onmouseover="balloon_on('문서를 생성한 담당자만 취합자료 관리',this,5,0)" onmouseout="balloon_off()"> |
||||||
|
<input name="accAuth" value="0" type="radio"<%= "0".equals(accAuth) ? " checked" : ""%>> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.personal")%> |
||||||
|
</label> |
||||||
|
<label class="label-cotent1" onmouseover="balloon_on('문서를 생성한 담당자와 동일 부서 사용자에게 취합자료 공유',this,5,0)" onmouseout="balloon_off()"> |
||||||
|
<input name="accAuth" value="1" type="radio"<%= "1".equals(accAuth) ? " checked" : ""%>> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.devision")%> |
||||||
|
</label> |
||||||
|
<label class="label-cotent1" onmouseover="balloon_on('문서를 생성한 담당자와 동일 기관 사용자에게 취합자료 공유',this,5,0)" onmouseout="balloon_off()"> |
||||||
|
<input name="accAuth" value="2" type="radio"<%= "2".equals(accAuth) ? " checked" : ""%>> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.coporation")%> |
||||||
|
</label> |
||||||
|
<label class="label-cotent1" onmouseover="balloon_on('전체 기관 사용자에게 취합 자료 공유(학교사용자 제외)',this,5,0)" onmouseout="balloon_off()"> |
||||||
|
<input name="accAuth" value="3" type="radio"<%= "3".equals(accAuth) ? " checked" : ""%>> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.all")%> |
||||||
|
</label> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td class="kecttep_tdmenu" style="width: 120px; padding-left: 20px;" > |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.endMethod")%> |
||||||
|
</td> |
||||||
|
<td colspan="3" class="kecttep_last_graytd_bottom" style="padding-left: 10px;"> |
||||||
|
|
||||||
|
<!--// 종료일지정 선택 --> |
||||||
|
<label> |
||||||
|
<input type="radio" name="acceptanceLimitStrategy" onclick="setEndDate();" value="<%= LimitByDeadlineStrategy.class.getSimpleName()%>" checked /> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.endScheduled")%> |
||||||
|
</label><!-- 종료일지정 선택 //--> |
||||||
|
|
||||||
|
<!--// 종료일지정 입력 --> |
||||||
|
<span id="endDate" style="display: inline; vertical-align: top;"> |
||||||
|
|
||||||
|
<input name="edDate" type="text" size="10" value="<%=edDate%>" readonly onclick="showSetWin('dform.edDate');" style="cursor: pointer;" class="inputtxt" /> |
||||||
|
<span style="display: inline-block; vertical-align: top; padding-top: 3px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.day")%> |
||||||
|
</span> |
||||||
|
<a href="#" onclick="showSetWin('dform.edDate');"> |
||||||
|
<img src="/totsys/common/images/date.gif" /> |
||||||
|
</a> |
||||||
|
<input name="edTime" type="text" size="3" maxlength="2" value="<%=edTime%>" onclick="this.focus(); this.select();" onBlur="checkNum(this, '2'); checkMaxNum(this, 00, 23);" class="inputtxt" /> |
||||||
|
<span style="display: inline-block; vertical-align: top; padding-top: 3px;"> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.time")%> |
||||||
|
</span> |
||||||
|
</span><!-- 종료일지정 입력 //--> |
||||||
|
|
||||||
|
<!--// 선착순종료 선택 --> |
||||||
|
<label> |
||||||
|
|
||||||
|
<input type="radio" name="acceptanceLimitStrategy" onclick="setSubmitLimit();" value="<%= LimitBySubmitDateStrategy.class.getSimpleName()%>" /> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.endBySubmitCount")%> |
||||||
|
</label><!-- 선착순종료 선택 //--> |
||||||
|
|
||||||
|
<!--// 선착순종료 입력 --> |
||||||
|
<label> |
||||||
|
<span id="submitLimit" style="display: none;"> |
||||||
|
|
||||||
|
<input type="text" name="submitLimit" onfocus="this.select();" onblur="checkNum(this, '2');" class="inputtxt" style="width: 2em; text-align: right;" value="0"/> |
||||||
|
<%= MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.coporation")%> |
||||||
|
</span> |
||||||
|
</label><!-- 선착순종료 입력 //--> |
||||||
|
|
||||||
|
<!--// 수동종료 선택 --> |
||||||
|
<label> |
||||||
|
|
||||||
|
<input type="radio" name="acceptanceLimitStrategy" onclick="setEndManually();" value="<%= UnlimitStrategy.class.getSimpleName()%>" /> |
||||||
|
<%=MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.endManually")%> |
||||||
|
</label><!-- 수동종료 선택 //--> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</form> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td style="height: 10px;"></td> |
||||||
|
</tr> |
||||||
|
<!-- 문서등록 끝--> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<%--파일취합일경우 붙여넣기 영역 표시안함 --%> |
||||||
|
<td colspan="4" style="height: 200px; border: 1px solid black;<%=totDoc.getAppendType()!=TotDocAppendType.FILE?"":"display:none;" %>"> |
||||||
|
<form name="gocomp0" action="/Mail-bin/send_mail.frame" method=post> |
||||||
|
<input type="hidden" name=What value=0> |
||||||
|
<input type="hidden" name=BODY> |
||||||
|
<input type="hidden" name=CMD value=''> |
||||||
|
<input type="hidden" name=MSGID value=''> |
||||||
|
<input type="hidden" name=TO> |
||||||
|
<input type="hidden" name=CC> |
||||||
|
<input type="hidden" name=BCC> |
||||||
|
<input type="hidden" name=SUBJECT> |
||||||
|
<input type="hidden" name=XSUBJECT value=''> |
||||||
|
<input type="hidden" name=PID value='11295'> |
||||||
|
</form> |
||||||
|
|
||||||
|
<FORM name=Mail_Form target=_parent method=post |
||||||
|
action="/Mail-bin/start_mail/simplehtml"> |
||||||
|
<input type="hidden" name=SENDACTION value=""> |
||||||
|
<input type="hidden" name=RESV_Y value=""> |
||||||
|
<input type="hidden" name=RESV_M value=""> |
||||||
|
<input type="hidden" name=RESV_D value=""> |
||||||
|
<input type="hidden" name=RESV_H value=""> |
||||||
|
<input type="hidden" name=ISLINEANS value=""> |
||||||
|
<input type="hidden" name=PID value="11295"> |
||||||
|
<input type="hidden" name=MSGID value=> |
||||||
|
<input type="hidden" name=LINKURL value=""> |
||||||
|
<input type="hidden" name=LINKCOMMENT value=""> |
||||||
|
<input type="hidden" name=KEYWORD value=""> |
||||||
|
<input type="hidden" name=KEYTYPE value=""> |
||||||
|
<input type="hidden" name=FOLDER value=""> |
||||||
|
<input type="hidden" name=mpage value=""> |
||||||
|
<input type="hidden" name=UseCompose value=""> |
||||||
|
<iframe id='i_fontcolor' |
||||||
|
style='background-color: #ffffff; border: 1px double #BFBFBF; cursor: hand; position: absolute; visibility: hidden;' |
||||||
|
scrolling=no frameborder=0 width=120 height=120></iframe> |
||||||
|
<iframe |
||||||
|
id='i_backcolor' |
||||||
|
style='background-color: #ffffff; border: 1px double #BFBFBF; cursor: hand; position: absolute; visibility: hidden;' |
||||||
|
scrolling=no frameborder=0 width=120 height=120></iframe> |
||||||
|
<iframe |
||||||
|
id='i_image' |
||||||
|
style='color: #000000; background-color: #efefef; border: 1px double #BFBFBF; cursor: default; position: absolute; visibility: hidden;' |
||||||
|
scrolling=no frameborder=0 width=325 height=85></iframe> |
||||||
|
<iframe |
||||||
|
id='i_link' |
||||||
|
style='color: #000000; background-color: #efefef; border: 1px double #BFBFBF; cursor: default; position: absolute; visibility: hidden;' |
||||||
|
scrolling=no frameborder=0 width=325 height=70></iframe> |
||||||
|
<iframe |
||||||
|
id='i_emoticon' |
||||||
|
style='background-color: #efefef; border: 1px double #BFBFBF; cursor: hand; position: absolute; visibility: hidden;' |
||||||
|
scrolling=no frameborder=0 width=125 height=125> |
||||||
|
</iframe> |
||||||
|
|
||||||
|
<div id='editctrl' style='display: block; width: auto; height: auto;'> |
||||||
|
<iframe |
||||||
|
name='EditCtrl' width='100%' height='100%' scrolling='YES' |
||||||
|
onfocus='layeroff();' onblur='nowkong.SaveSelection();' |
||||||
|
frameborder="0" disabled> |
||||||
|
</iframe> |
||||||
|
</div> |
||||||
|
<input type="hidden" name=FORSAVE |
||||||
|
value="<HEAD> |
||||||
|
<STYLE> |
||||||
|
P {margin-top:2px;margin-bottom:2px;} |
||||||
|
</STYLE> |
||||||
|
</HEAD> |
||||||
|
<BODY oncontextmenu='return false;' style='background-color: ; background-image: url(); ' topmargin=11 leftmargin=11> |
||||||
|
</BODY>"> |
||||||
|
<input type="hidden" name=BODY value=""> |
||||||
|
<input type="hidden" name=BODYBG value=""> |
||||||
|
<input type="hidden" name=BODYBGC value=""> |
||||||
|
</FORM> |
||||||
|
<script> |
||||||
|
init(); |
||||||
|
insertForm(); |
||||||
|
</script> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td colspan="4" style="padding-top: 11px; text-align: center; vertical-align: top;"> |
||||||
|
<!-- 이전, 다음단계 --> |
||||||
|
<table> |
||||||
|
<tr> |
||||||
|
<td> |
||||||
|
<a href="#" onclick="formSubmit();" name="bt_next"> |
||||||
|
<img src="/totsys/common/images/bt_input_write.gif" alt="<%= MoumiConfig.getMessageBundle().getString("moumi.message.button_large.startNow")%>"/> |
||||||
|
</a> |
||||||
|
<a href="#" onclick="history.go(-7);"> |
||||||
|
<img src="/totsys/common/images/bt_cancle.gif" alt="<%=MoumiConfig.getMessageBundle().getString("moumi.message.button_large.cancel")%>" /> |
||||||
|
</a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- top menu start --> |
||||||
|
<%@ include file="/totsys/common/inc/buttom/buttom.jsp"%> |
||||||
|
<!-- top menu end --> |
||||||
|
</body> |
||||||
|
<div id="SetWin" style="position: absolute; Visibility: hidden; width: 100px; height: 100px; background: silver; border: 1px #333333 solid; line-height: 1.4em; padding: 3px 3px"></div> |
||||||
|
</html> |
||||||
|
<% |
||||||
|
} catch (Exception ex) { |
||||||
|
ex.printStackTrace(); |
||||||
|
out.println(kr.co.kihyun.text.html.ServletUtil.getJavaScript("location='/servlet/kr.co.kihyun.beans.user.HttpSSOLogin?mode=logout';")); |
||||||
|
} finally { |
||||||
|
/** |
||||||
|
* ******** session내의 doc info reset ********* |
||||||
|
*/ |
||||||
|
MDoc.initSession(session); |
||||||
|
if (tx.isActive()) { |
||||||
|
tx.rollback(); |
||||||
|
} |
||||||
|
pm.close(); |
||||||
|
} |
||||||
|
%> |
Loading…
Reference in new issue