SPMNW17000.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. /**
  2. * @desc : 게시판 화면 초기화
  3. * @
  4. * @param :
  5. * @return :
  6. * @author :
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize(){
  10. // 게시판 리스트를 조회
  11. fgetHelpList();
  12. }
  13. /**
  14. * @desc :게시판을 조회한다.
  15. * @date :20110818
  16. * @param :
  17. * @return :
  18. * @author :김병국
  19. * @---------------------------------------------------
  20. */
  21. function fgetHelpList(){
  22. model.copyNode("/root/send","/root/main/cond");
  23. //조회시에 수정및 삭제를 할수 없음
  24. btn_new.disabled = false;
  25. btn_cancel.visible = false;
  26. ipt_content.disabled = true;
  27. btn_fileadd.visible = false;
  28. btn_filedel.visible = false;
  29. btn_down.visible = false;
  30. btn_preview.visible = false;
  31. cmb_gubun2.disabled=true;
  32. btn_mod.disabled = true;
  33. btn_save.disabled = true;
  34. btn_del.disabled = true;
  35. ipt_scrncd2.disabled = true;
  36. ipt_attfilenm.disabled = true;
  37. model.makeValue("/root/main/iteminfo/status","e");
  38. // 조회 조건을 셋팅 한다.
  39. var fromdd = model.getValue("/root/main/cond/fromdd");
  40. var todd = model.getValue("/root/main/cond/todd");
  41. model.removeNodeset("/root/main/helpinfo/helplist");
  42. model.resetInstanceNode("/root/main/iteminfo");
  43. // 게시판 리스트를 조회
  44. submit("TRMNW17000");
  45. model.refresh();
  46. }
  47. /**
  48. * @desc : 상세보기
  49. * @
  50. * @param :
  51. * @return :
  52. * @author :
  53. * @---------------------------------------------------
  54. */
  55. function fgetHelpDetail(row){
  56. // 행번호가 없다면 바로 리턴 (버튼클릭하여 공지차을 띄운경우)
  57. if (row == "" || row > grd_help.rows) return;
  58. // 이미 신규작성되거나 수정된 게시판이 존재하면 메시지 창 띄우면서 리턴
  59. var status = model.getValue("/root/main/iteminfo/status");
  60. if (status == "i" || status == "u"){
  61. messageBox("작성한 글이 저장되지 않았습니다. 저장버튼이나 작성취소 버튼을 눌러주세요.", "I999");
  62. return;
  63. }
  64. // 해당 게시글을 뿌려줌
  65. model.copyNode("/root/main/iteminfo", "/root/main/helpinfo/helplist["+ row + "]");
  66. // 사용자정보를 가지고와서 글작성자가 아니면 수정/삭제할수 없도록 함
  67. /*
  68. var userid = getUserId();
  69. var writerid = model.getValue("/root/main/iteminfo/fstrgstrid");
  70. if (userid == writerid) {
  71. btn_mod.disabled = false;
  72. btn_del.disabled = false;
  73. }else{
  74. btn_mod.disabled = true;
  75. btn_del.disabled = true;
  76. }
  77. */
  78. btn_mod.disabled = false;
  79. btn_del.disabled = false;
  80. // 각종 컨트롤 보여주기 설정
  81. ipt_scrncd2.disabled = true;
  82. cmb_gubun2.disabled= true;
  83. ipt_content.attribute("editable") = false;
  84. btn_fileadd.visible = false;
  85. btn_filedel.visible = false;
  86. btn_down.visible = true;
  87. if (fCheckFileExt())
  88. btn_preview.visible = true;
  89. else
  90. btn_preview.visible = false;
  91. model.refresh();
  92. }
  93. /**
  94. * @desc : 파일다운로드 이벤트시.(파일명을 가지고 파일을 다운받음.)
  95. * @date :20110818
  96. * @param :
  97. * @return :
  98. * @author :김병국
  99. * @---------------------------------------------------
  100. */
  101. function fFileDown() {
  102. //파일명를 받아옴
  103. var getfilenm = model.getValue("/root/main/iteminfo/attfilenm");
  104. //파일명이 있는 경우 다운로드
  105. if(getfilenm != ""){
  106. //파일명을 받아옴
  107. var filenm = model.getValue("/root/main/iteminfo/attfilenm");
  108. //파일명의 확장자만 받아옴
  109. var fileext = filenm.lastIndexOf(".");
  110. var ext = filenm.substring(fileext +1);
  111. //파일을 다운로드 하기 위해 저장할 창을 띄움
  112. var filesave = window.fileDialog("save","|",false,filenm,ext,"All Files(*.*)|*.*");
  113. //키값을 받아옴
  114. var gubun = model.getValue("/root/main/iteminfo/gubun");
  115. var seqno = model.getValue("/root/main/iteminfo/seqno");
  116. //키값을 가지고 DB에 저장된 데이타를 조회하러 간다
  117. if (filesave != "") {
  118. model.download(getActionURL("TRMNW17001")+"&gubun="+gubun+"&seqno="+seqno ,filesave);
  119. }
  120. }
  121. }
  122. /**
  123. * @desc : 파일 미리보기 버튼 클릭시 이벤트
  124. * @
  125. * @param :
  126. * @return :
  127. * @author :
  128. * @---------------------------------------------------
  129. */
  130. function fFilePreview() {
  131. var fso, folder;
  132. var temp_path = "C:\\temp2";
  133. FSO = new ActiveXObject("Scripting.FileSystemObject");
  134. // 객체 생성 실패하면 리턴
  135. if (FSO == null){
  136. return;
  137. }
  138. // 시스템 드라이브가 없다면..
  139. if (FSO.DriveExists("C") == false){
  140. return;
  141. }
  142. // 임시디렉토리가 없으면 생성
  143. if (FSO.FolderExists(temp_path) == false){
  144. folder = FSO.CreateFolder(temp_path);
  145. }
  146. //파일명를 받아옴
  147. var getfilenm = model.getValue("/root/main/iteminfo/attfilenm");
  148. //파일명이 있는 경우 다운로드
  149. if(getfilenm == ""){
  150. return;
  151. }
  152. //파일명을 받아옴
  153. var filenm = model.getValue("/root/main/iteminfo/attfilenm");
  154. //키값을 받아옴
  155. var gubun = model.getValue("/root/main/iteminfo/gubun");
  156. var seqno = model.getValue("/root/main/iteminfo/seqno");
  157. //키값을 가지고 DB에 저장된 데이타를 조회하러 간다
  158. model.download(getActionURL("TRMNW17001")+"&gubun="+gubun+"&seqno="+seqno ,temp_path+"\\"+filenm, false);
  159. window.exec(temp_path+"\\"+filenm, "");
  160. }
  161. function ManipFiles()
  162. {
  163. var fso, f1, f2, s;
  164. fso = new ActiveXObject("Scripting.FileSystemObject");
  165. f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  166. Response.Write("파일 쓰는 중 <br>");
  167. // 줄을 씁니다.
  168. f1.Write("텍스트입니다.");
  169. // 파일을 닫습니다.
  170. f1.Close();
  171. Response.Write("파일을 c:\\tmp로 이동하는 중 <br>");
  172. // C:\ 루트에 있는 파일에 대한 핸들을 가져옵니다.
  173. f2 = fso.GetFile("c:\\testfile.txt");
  174. // 파일을 \tmp 디렉터리로 옮깁니다.
  175. f2.Move ("c:\\tmp\\testfile.txt");
  176. Response.Write("파일을 c:\\temp로 복사하는 중 <br>");
  177. // 파일을 \temp로 복사합니다.
  178. f2.Copy ("c:\\temp\\testfile.txt");
  179. Response.Write("파일 삭제 중 <br>");
  180. // 파일의 현재 위치에 대한 핸들을 가져옵니다.
  181. f2 = fso.GetFile("c:\\tmp\\testfile.txt");
  182. f3 = fso.GetFile("c:\\temp\\testfile.txt");
  183. // 파일을 삭제합니다.
  184. f2.Delete();
  185. f3.Delete();
  186. Response.Write("완료되었습니다!");
  187. }
  188. /**
  189. * @desc : 파일첨부버튼 클릭시 이벤트
  190. * @
  191. * @param :
  192. * @return :
  193. * @author :
  194. * @---------------------------------------------------
  195. */
  196. function fFileAdd() {
  197. //******파일을 첨부하기 위해 파일열기가 open 되게 한다.
  198. //파일의 크기를 측정한다.
  199. var maxsize = upload1.attribute("filesize");
  200. var name = model.getValue("/root/main/iteminfo/attfilenm");
  201. if(name != '' || name == '-'){
  202. var fileupdata = messageBox(name + " 파일 수정을" , "S001");
  203. if(fileupdata == '6'){
  204. //파일 삭제
  205. //input박스에 나타난 명을 제거
  206. ipt_attfilenm.value = "";
  207. //파일 저장
  208. //파일을 받아오기 위해 파일열기 팝업창을 띄운다.
  209. var fileopen = window.fileDialog("open","|","false");
  210. //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  211. model.makeValue("/root/main/iteminfo/attfilenm", fileopen);
  212. var name = model.getValue("/root/main/iteminfo/attfilenm");
  213. //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  214. var filename = name.lastIndexOf("\\");
  215. //open 파일명를 input박스에 넣는다.
  216. ipt_attfilenm.value = fileopen.substring(filename + 1);
  217. //선택한 파일이 저장버튼을 눌렀을때 저장이 되게 하기 위해 파일 저장 인스턴스에 파일주소를 저장해 둔다.
  218. model.makeValue("/root/send/file/filename", name);
  219. model.refresh();
  220. //파일 크기가 너무 큰경우 메세지를 띄운다.
  221. if (!checkFileSize(upload1)){
  222. ipt_attfilenm.value = "";
  223. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  224. model.resetInstanceNode("/root/send/file");
  225. }
  226. model.makeValue("/root/main/iteminfo/fileyn", 'Y');
  227. }else if(fileupdata == '7'){
  228. messageBox(name + " 파일 수정을 하지", "E007");
  229. model.makeValue("/root/main/iteminfo/fileyn", 'N');
  230. }else{
  231. }
  232. }else{
  233. //파일을 받아오기 위해 파일열기 팝업창을 띄운다.
  234. var fileopen = window.fileDialog("open","|","false");
  235. //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  236. model.makeValue("/root/main/iteminfo/attfilenm", fileopen);
  237. var name = model.getValue("/root/main/iteminfo/attfilenm");
  238. //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  239. var filename = name.lastIndexOf("\\");
  240. //open 파일명를 input박스에 넣는다.
  241. ipt_attfilenm.value = fileopen.substring(filename + 1);
  242. //선택한 파일이 저장버튼을 눌렀을때 저장이 되게 하기 위해 파일 저장 인스턴스에 파일주소를 저장해 둔다.
  243. model.makeValue("/root/send/file/filename", name);
  244. model.refresh();
  245. //파일 크기가 너무 큰경우 메세지를 띄운다.
  246. if (!checkFileSize(upload1)){
  247. ipt_attfilenm.value = "";
  248. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  249. model.resetInstanceNode("/root/send/file");
  250. }
  251. model.makeValue("/root/main/iteminfo/fileyn", 'Y');
  252. }
  253. }
  254. /**
  255. * @desc : 삭제시 발생하는 이벤트
  256. * @
  257. * @param :
  258. * @return :
  259. * @author :
  260. * @---------------------------------------------------
  261. */
  262. function fFileDel() {
  263. var name = model.getValue("/root/main/iteminfo/attfilenm");
  264. if((name != '')){
  265. var fileupdata = messageBox(name + " 파일 삭제를" , "S001");
  266. if(fileupdata == '6'){
  267. //파일 삭제
  268. ipt_attfilenm.value = "";
  269. model.resetInstanceNode("/root/send/file");
  270. }
  271. }
  272. model.refresh();
  273. }
  274. /**
  275. * @desc : 게시판 내용 삭제
  276. * @
  277. * @param :
  278. * @return :
  279. * @author :
  280. * @---------------------------------------------------
  281. */
  282. function fNoticeDel() {
  283. var seqno = model.getValue("/root/main/iteminfo/seqno");
  284. if (seqno == ""){
  285. return;
  286. }
  287. var rtn = messageBox("게시글을 삭제 하시겠습니까? ", "Q");
  288. if(rtn == "6") {
  289. // 사용자정보를 가지고와서 글작성자가 아니면 삭제할 수 없도록 함
  290. var userid = getUserId();
  291. var writerid = model.getValue("/root/main/iteminfo/fstrgstrid");
  292. if (userid == writerid) {
  293. model.makeValue("/root/main/iteminfo/status","d"); // 삭제표시
  294. fExeSave(); // 저장
  295. } else {
  296. messageBox("작성자만 삭제 ","I006");
  297. }
  298. } else {
  299. return;
  300. }
  301. model.refresh();
  302. }
  303. /**
  304. * @desc : 게시판 신규 /수정 후 저장
  305. * @
  306. * @param :
  307. * @return :
  308. * @author :
  309. * @---------------------------------------------------
  310. */
  311. function fExeSave() {
  312. var status = model.getValue("/root/main/iteminfo/status");
  313. var noteInfoHeader = "status▦seqno▦gubun▦scrncd▦content▦attfilenm▦attfilepath▩";
  314. var noteInfoData = model.getValue("/root/main/iteminfo/status") +"▦"
  315. + model.getValue("/root/main/iteminfo/seqno") +"▦"
  316. + model.getValue("/root/main/iteminfo/gubun") +"▦"
  317. + model.getValue("/root/main/iteminfo/scrncd") +"▦"
  318. + model.getValue("/root/main/iteminfo/content") +"▦"
  319. + model.getValue("/root/main/iteminfo/attfilenm") +"▦"
  320. + model.getValue("/root/main/iteminfo/attfilepath") +"▩";
  321. model.makeValue("/root/send/savedata", noteInfoHeader+noteInfoData);
  322. // 서브밋한다.
  323. var retvalue = submit("TXMNW17000");
  324. // 저장시 에러난 경우 목록을 재로딩함
  325. if(retvalue == false)
  326. {
  327. if (status == "i"){
  328. messageBox("새 게시글 작성에", "E009");
  329. }else if (status == "u"){
  330. messageBox("새 게시글 수정에", "E009");
  331. }else{
  332. messageBox("새 게시글 삭제에", "E009");
  333. }
  334. }else{
  335. if (status == "i"){
  336. messageBox("새 게시글이 작성이", "I001");
  337. }else if (status == "u"){
  338. messageBox("게시글이 수정이", "I001");
  339. }else{
  340. messageBox("게시글이 삭제", "I001");
  341. }
  342. fgetHelpList(); // 재조회
  343. }
  344. }
  345. function fCheckFileExt() {
  346. retvalue = false;
  347. var filename = model.getValue("/root/main/iteminfo/attfilenm");
  348. var IMG_FORMAT = "\\.(bmp|gif|jpg|jpeg|png|doc|xls|cvs|txt|ppt|hwp|pptx)$";
  349. if( (new RegExp(IMG_FORMAT, "i")).test(filename)){
  350. retvalue = true;
  351. }else{
  352. retvalue = false;
  353. }
  354. return retvalue;
  355. }
  356. function fNewHelp() {
  357. //**********초기화
  358. //제목, 첨부, 내용에 data 제거
  359. ipt_scrncd2.value = "";
  360. ipt_content.value = "";
  361. ipt_attfilenm.value = "";
  362. cmb_gubun2.value="";
  363. // 첨부파일 초기화
  364. model.resetInstanceNode("/root/send/file");
  365. model.refresh();
  366. }
  367. function fScrnCdSearch(scrncd){
  368. var btn_scrncd = scrncd;
  369. modal("SPZSA20500_화면및보고서관리", "", "200", "200", "SPZSA20500");
  370. var iProperties = getParameter("SPZSA20500_");
  371. var iSplit_Value = iProperties.split("|");
  372. if(iSplit_Value.length > 0 && iSplit_Value[0] != "" && iSplit_Value[0] != undefined){
  373. if(btn_scrncd == "scrncd1"){
  374. model.setValue("/root/main/cond/scrncd", iSplit_Value[0]);
  375. }else if(btn_scrncd == "scrncd2"){
  376. model.setValue("/root/main/iteminfo/scrncd", iSplit_Value[0]);
  377. }
  378. }
  379. model.refresh();
  380. }
  381. // 프로그램 도움말 조회
  382. function fgetHelpList2(){
  383. model.copyNode("/root/send","/root/main/cond");
  384. model.removeNodeset("/root/main/helpinfo/helplist");
  385. // 게시판 리스트를 조회
  386. submit("TRMNW17000");
  387. model.refresh();
  388. }