1/* 2 * ê³µíµëª¨ë 기본í 3 */ 4$(function() { 5 var $M = CommonModuleFactory(); 6 $M.init({ 7 // isUseTest: true, 8 moduleMode: "private", 9 moduleName: "ms01_1600_0000", 10 }); 11 12 // ë³ì 13 $M.def.vars = function() { 14 $M.vars.actUser = "admin"; 15 $M.vars.actBase = { 16 admin: "/ktoipadmin/ps/calendar", 17 user: "/mySchedule", 18 }; 19 } 20 21 // ë°ì´í° ê°ì²´ 22 $M.def.vo = function() { 23 24 } 25 26 // í¨ì, íë¡ìì ë± 27 $M.def.proc = function() { 28 $M.func.dateText = function(year, month, date) { 29 var dt = new Date(year, month-1, date); 30 var dayStr = ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "]; 31 return month+"ì "+date+"ì¼ ("+dayStr[dt.getDay()]+")"; 32 } 33 $M.func.calendarData = function(opt) { 34 if (!opt) { 35 var dt = new Date(); 36 opt = { 37 year: dt.getFullYear(), 38 month: dt.getMonth()+1, 39 date: 1, 40 }; 41 } 42 43 var ret = { 44 map: [ 45 [0, 0, 0, 0, 0, 0, 0], 46 [0, 0, 0, 0, 0, 0, 0], 47 [0, 0, 0, 0, 0, 0, 0], 48 [0, 0, 0, 0, 0, 0, 0], 49 [0, 0, 0, 0, 0, 0, 0], 50 [0, 0, 0, 0, 0, 0, 0], 51 ], 52 data: {}, 53 }; 54 55 var data = {}; 56 var isPrvNx = true; 57 if (typeof(opt.isPrvNx) == "boolean") { 58 isPrvNx = opt.isPrvNx; 59 } 60 var dt = $M.func.numDate(opt.year, opt.month, opt.date); 61 62 ret.data.curYear = dt.getFullYear(); 63 ret.data.curMonth = dt.getMonth()+1; 64 65 ret.data.curStartDate = dt.getDate(); 66 ret.data.curStartDay = dt.getDay(); 67 68 dt.setMonth(dt.getMonth() + 1); 69 dt.setDate(0); 70 71 ret.data.curEndDate = dt.getDate(); 72 ret.data.curEndDay = dt.getDay(); 73 74 dt.setDate(0); 75 ret.data.prevEndDate = dt.getDate(); 76 ret.data.prevEndDay = dt.getDay(); 77 78 ret.data.finish = false; 79 ret.data.calcDate = 1; 80 ret.data.calcShift = ret.data.prevEndDay+1; 81 82 for (var y = 0; y < ret.map.length; y++) { 83 var row = ret.map[y]; 84 for (var x = 0; x < row.length; x++) { 85 if (ret.data.calcShift > 0) { 86 if (isPrvNx) { 87 row[x] = ret.data.prevEndDate-ret.data.calcShift+1; 88 } 89 ret.data.calcShift--; 90 continue; 91 } 92 row[x] = ret.data.calcDate; 93 ret.data.calcDate++; 94 95 if (ret.data.curEndDate < ret.data.calcDate) { 96 ret.data.calcDate = 1; 97 if (!isPrvNx) { 98 ret.data.finish = true; 99 break; 100 } 101 } 102 } 103 if (!isPrvNx && ret.data.finish) break; 104 } 105 106 delete ret.data.calcDate; 107 delete ret.data.calcShift; 108 delete ret.data.finish; 109 110 return ret; 111 } 112 $M.func.schedFilter = function(opt) { 113 var ret = []; 114 var tCur = dateStr(new Date(opt.year, opt.month-1, opt.date, 0, 0, 0)); 115 116 for (var i = opt.listSched.length-1; i >= 0; i--) { 117 var isSched = false; 118 var sched = opt.listSched[i]; 119 var tSched = dateStr(new Date(new Date(sched.bgng_dt * 1000))); 120 121 if (tCur == tSched) isSched = true; 122 123 if (isSched) { 124 var is_type = false; 125 if (opt.listBucket) { 126 for (var j = 0; j < opt.listBucket.length; j++) { 127 var _bucket = opt.listBucket[j]; 128 if (!_bucket.selected) continue; 129 if (_bucket.cd != sched.rls_cd) continue; 130 for (var k = 0;
130 k < sched.group_id.length; k++) { 131 var groupId = sched.group_id[k]; 132 if (groupId.indexOf("_") > -1) { 133 var sptGroupId = groupId.split("_"); 134 groupId = sptGroupId[0]; 135 } 136 if (groupId == _bucket.groupId) { 137 is_type = true; 138 break; 139 } 140 } 141 if (is_type) break; 142 } 143 } else { 144 is_type = true; 145 } 146 147 var is_cate = false; 148 if (opt.listCate) { 149 for (var j = 0; j < opt.listCate.length; j++) { 150 var _cate = opt.listCate[j]; 151 if (_cate.groupId == sched.ctgry_cd && _cate.selected) { 152 is_cate = true; 153 break; 154 } 155 } 156 } else { 157 is_cate = true; 158 } 159 160 if (is_type && is_cate) { 161 ret.push(sched); 162 } 163 } 164 } 165 return ret; 166 } 167 168 $M.func.schedTimeText = function(bgngTs, endTs, mode) { 169 var ret = ""; 170 171 var sDt = new Date(bgngTs * 1000); 172 var eDt = new Date(endTs * 1000); 173 174 var ymdBgng = [sDt.getFullYear(), sDt.getMonth()+1, sDt.getDate()]; 175 var ymdEnd = [eDt.getFullYear(), eDt.getMonth()+1, eDt.getDate()]; 176 var hmBgng = [sDt.getHours(), sDt.getMinutes()]; 177 var hmEnd = [eDt.getHours(), eDt.getMinutes()]; 178 179 var sYmd = [ 180 ["0000"+ymdBgng[0], "00"+ymdBgng[1], "00"+ymdBgng[2]], 181 ["0000"+ymdEnd[0], "00"+ymdEnd[1], "00"+ymdEnd[2]], 182 ]; 183 var sHm = [ 184 ["00"+hmBgng[0], "00"+hmBgng[1]], 185 ["00"+hmEnd[0], "00"+hmEnd[1]], 186 ]; 187 188 for (var i = 0; i < sYmd.length; i++) { 189 var arr = sYmd[i]; 190 for (var j = 0; j < arr.length; j++) { 191 if (j == 0) { 192 arr[j] = arr[j].substring(arr[j].length - 4); 193 } else { 194 arr[j] = arr[j].substring(arr[j].length - 2); 195 } 196 } 197 } 198 199 for (var i = 0; i < sHm.length; i++) { 200 var arr = sHm[i]; 201 for (var j = 0; j < arr.length; j++) { 202 arr[j] = arr[j].substring(arr[j].length - 2); 203 } 204 } 205 206 var sYmdBgng = sYmd[0].join("-"); 207 var sYmdEnd = sYmd[1].join("-"); 208 var sHmBgng = sHm[0].join(":"); 209 var sHmEnd = sHm[1].join(":"); 210 211 if (sYmdBgng == sYmdEnd && sHmBgng == "00:00" && sHmEnd == "23:59") { 212 ret = "ì¢ ì¼"; 213 } else if (mode == "full") { 214 if (sYmdBgng == sYmdEnd) { 215 if (sHmBgng == sHmEnd) { 216 ret = sYmdBgng + " " + sHmBgng; 217 } else { 218 ret = sYmdBgng + " " + sHmBgng + " ~ " + sHmEnd; 219 } 220 } else { 221 ret = sYmdBgng + " " + sHmBgng + " ~ " 222 + sYmdEnd + " " + sHmEnd; 223 } 224 } else if (mode == "simple") { 225 if (sYmdBgng != sYmdEnd) { 226 ret = '<small style="font-style:italic;">(~'+[ymdEnd[1], ymdEnd[2]].join("/")+')</small>'; 227 } else { 228 ret = sHmBgng; 229 } 230 } 231 return ret; 232 } 233 234 $M.prom.calendAction = function(form) { 235 var actBase = $M.vars.actBase[$M.vars.actUser]; 236 var url = actBase+"/calendAction"; 237 return $M.prom.request(url, form); 238 } 239 240 $M.prom.getListMySchedule = function(opt) { 241 return new Promise(function(resolve, reject) { 242 var form = {}; 243 form.actKey = "getListMySchedule"; 244 form.year = opt.year; 245 form.month = opt.month; 246 247 if (opt.myYn) form.myYn = opt.myYn; 248 if (opt.myWrksYn) form.myWrksYn = opt.myWrksYn; 249 if (opt.myWrksGrpYn) form.myWrksGrpYn = opt.myWrksGrpYn; 250 if (opt.portalYn) form.portalYn = opt.portalYn; 251 if (opt.wrksId) form.wrksId = opt.wrksId; 252 253 $M.prom.calendAction(form).then(function(res) { 254 resolve(res); 255 }).catch(function(e) { 256 reject(e); 257 }); 258 }); 259 } 260 261 $M.proc.setActUser = function(user) { 262 $M.vars.actUser = user; 263 } 264 265 /** (íì ) ì¼ì ìì¸ */ 266 $M.proc.popScheduleView = $.mods.common.proc.classPopup({ 267 vars: { 268 modalSize: "", 269 theme: "portal",
270 themeColor: "workspace", 271 tempId: "calendar/popScheduleView", 272 }, 273 proc: { 274 init: function($P) { 275 // 276 }, 277 load: function($P) { 278 // proc 279 if (true) { 280 $P.proc.bindView = function(dataset) { 281 var schedDet = dataset[0]; 282 var schedRls = dataset[1]; 283 284 var isAdmin = ($P.params.isAdmin == true); 285 var isWritten = schedDet.dataVO.rgtrId == schedDet.mberId; 286 287 if ($P.params.isAuthWrite && (isWritten || isAdmin)) { 288 // $P.$el.find(".sect_footer").removeAttr("style"); 289 $P.$el.find(".sect_footer > .btn_edit").removeAttr("style"); 290 $P.$el.find(".sect_footer > .btn_delete").removeAttr("style"); 291 $P.$el.find(".sect_footer").removeAttr("style"); 292 293 if (!$P.$el.find(".sect_footer > .btn_close").hasClass("width40 radius-right")) { 294 $P.$el.find(".sect_footer > .btn_close").addClass("width40 radius-right"); 295 } 296 } else { 297 // $P.$el.find(".sect_footer").remove(); 298 $P.$el.find(".sect_footer > .btn_edit").remove(); 299 $P.$el.find(".sect_footer > .btn_delete").remove(); 300 $P.$el.find(".sect_footer").removeAttr("style"); 301 302 if ($P.$el.find(".sect_footer > .btn_close").hasClass("width40 radius-right")) { 303 $P.$el.find(".sect_footer > .btn_close").removeClass("width40 radius-right"); 304 } 305 } 306 307 /* 308 if ($M.vars.preload.auth.isAuthWrite) { 309 $P.$el.find(".sect_footer > .btn_edit").removeAttr("style"); 310 $P.$el.find(".sect_footer > .btn_delete").removeAttr("style"); 311 $P.$el.find(".sect_footer").removeAttr("style"); 312 } else { 313 $P.$el.find(".sect_footer > .btn_edit").remove(); 314 $P.$el.find(".sect_footer > .btn_delete").remove(); 315 $P.$el.find(".sect_footer").removeAttr("style"); 316 } 317 */ 318 319 320 var title = "["+schedDet.dataVO.ctgryNm+"] "; 321 title += schedDet.dataVO.fxNm; 322 323 // $P.$el.find(".event-subject").html(title); 324 // $P.$el.find(".modal-title").html(title); 325 $P.$el.find(".event-subject").html(title); 326 // modal-title 327 // $P.$el.find(".txt_ctgryNm").html("["+schedDet.dataVO.ctgryNm+"]"); 328 // $P.$el.find(".txt_fxNm").html(schedDet.dataVO.fxNm); 329 $P.$el.find(".sched_data.loc").html(schedDet.dataVO.place); 330 $P.$el.find(".sched_data.descr").html(schedDet.dataVO.cn.replace(/\n/g, "<br>")); 331 332 /* 333 if (typeof(schedDet.dataVO.bgngDt) == "string") { 334 schedDet.dataVO.bgngDt = parseInt(schedDet.dataVO.bgngDt); 335 schedDet.dataVO.endDt = parseInt(schedDet.dataVO.endDt); 336 } 337 */ 338 339 // var bgngTs = (new Date(schedDet.dataVO.bgngDt)).getTime() / 1000; 340 // var endTs = (new Date(schedDet.dataVO.endDt)).getTime() / 1000; 341 // var bgngTs = (new Date(schedDet.dataVO.bgngDt)).getTime();
342 // var endTs = (new Date(schedDet.dataVO.endDt)).getTime(); 343 var bgngTs = $M.func.unixTimeDate(schedDet.dataVO.bgngDt).getTime(); 344 var endTs = $M.func.unixTimeDate(schedDet.dataVO.endDt).getTime(); 345 346 var timeStr = $M.func.schedTimeText(bgngTs, endTs, "full"); 347 $P.$el.find(".sched_data.time").html(timeStr); 348 349 if (schedDet.dataVO.ntcnYn == "Y") { 350 var mapMth = { 351 "TY01": "쪽ì§", 352 "TY02": "ì¹´ì¹´ì¤ì림", 353 }; 354 355 var mapTime = { 356 "t1440": "1ì¼ ì ", 357 "t60": "1ìê° ì ", 358 "t10": "10ë¶ ì ", 359 }; 360 361 var _alerts = [ 362 mapTime["t"+schedDet.dataVO.ntcnTime], 363 mapMth[schedDet.dataVO.ntcnMth], 364 ].join(" "); 365 366 $P.$el.find(".sched_data.alerts").html(_alerts); 367 } else { 368 $P.$el.find(".sect_alerts").css("display", "none"); 369 } 370 371 var $contRls = $P.$el.find(".sched_data.rls"); 372 $contRls.find("li").remove(); 373 374 for (var i = 0; i < schedRls.listMap.length; i++) { 375 var item = schedRls.listMap[i]; 376 var $li = $('<li></li>'); 377 var ttl = item.ttl; 378 $li.html(ttl); 379 $contRls.append($li); 380 } 381 } 382 } 383 384 // event 385 if (true) { 386 $P.$el.find(".btn_close").click(function(e) { 387 $P.$modal.modal("hide"); 388 e.preventDefault(); 389 }); 390 391 $P.$el.find(".btn_edit").click(function(e) { 392 $P.$modal.modal("hide"); 393 var _params = { 394 mode: "update", 395 fxSeq: $P.params.fxSeq, 396 }; 397 if ($P.params.fnEditCallback) { 398 _params.callback = $P.params.fnEditCallback; 399 } 400 if ($P.params.useCalendType) { 401 _params.useCalendType = $P.params.useCalendType; 402 } 403 $.mods.common.proc.popCalendForm(_params); 404 e.preventDefault(); 405 }); 406 407 $P.$el.find(".btn_delete").click(function(e) { 408 var msg = "ìì íìê² ìµëê¹?"; 409 $M.proc.confirm("", msg, function() { 410 $M.prom.calendAction({actKey:"deleteSched", fxSeq:$P.params.fxSeq}).then(function(res) { 411 if (res.isSuccess) { 412 $P.$modal.modal("hide"); 413 if ($P.params.fnDeleteCallback) { 414 $P.params.fnDeleteCallback(); 415 } 416 } 417 }).catch(function(e) { 418 console.log(e); 419 }); 420 }); 421 e.preventDefault(); 422 }); 423 } 424 425 // main 426 if (true) { 427 Promise.all([ 428 $M.prom.calendAction({actKey:"getSchedDetail", fxSeq:$P.params.fxSeq}), 429 $M.prom.calendAction({actKey:"getSchedRls", fxSeq:$P.params.fxSeq}), 430 ]).then(function(dataset) { 431 $P.proc.bindView(dataset); 432 }).catch(function(e) { 433 console.log(e); 434 }); 435 } 436 }, 437 destroy: function($P) { 438 // 439 }, 440 } 441 }); 442 443 /** (íì ) ì¼ì ì¹ì¸ */ 444 $M.proc.popScheduleAccept = $.mods.common.proc.classPopup({ 445 vars: { 446 modalSize: "", 447 theme: "portal",
448 themeColor: "workspace", 449 tempId: "calendar/popScheduleAccept", 450 }, 451 proc: { 452 init: function($P) { 453 // 454 }, 455 load: function($P) { 456 // init 457 if (true) { 458 $P.vars.preload = { 459 schedDet: null, 460 schedRls: null, 461 }; 462 } 463 464 // proc 465 if (true) { 466 $P.proc.bindData = function(dataset) { 467 var schedDet = dataset[0]; 468 var schedRls = dataset[1]; 469 470 $P.vars.preload.schedDet = schedDet; 471 $P.vars.preload.schedRls = schedRls; 472 } 473 $P.proc.bindView = function() { 474 var schedDet = $P.vars.preload.schedDet; 475 var schedRls = $P.vars.preload.schedRls; 476 477 var title = "["+schedDet.dataVO.ctgryNm+"] "; 478 title += schedDet.dataVO.fxNm; 479 480 // $P.$el.find(".event-subject").html(title); 481 $P.$el.find(".modal-title").html(title); 482 // $P.$el.find(".txt_ctgryNm").html("["+schedDet.dataVO.ctgryNm+"]"); 483 // $P.$el.find(".txt_fxNm").html(schedDet.dataVO.fxNm); 484 $P.$el.find(".sched_data.loc").html(schedDet.dataVO.place); 485 $P.$el.find(".sched_data.descr").html(schedDet.dataVO.cn.replace(/\n/g, "<br>")); 486 487 // var bgngTs = (new Date(schedDet.dataVO.bgngDt)).getTime() / 1000; 488 // var endTs = (new Date(schedDet.dataVO.endDt)).getTime() / 1000; 489 var bgngTs = $M.func.unixTimeDate(schedDet.dataVO.bgngDt).getTime(); 490 var endTs = $M.func.unixTimeDate(schedDet.dataVO.endDt).getTime(); 491 492 var timeStr = $M.func.schedTimeText(bgngTs, endTs, "full"); 493 $P.$el.find(".sched_data.time").html(timeStr); 494 495 if (schedDet.dataVO.ntcnYn == "Y") { 496 var mapMth = { 497 "TY01": "쪽ì§", 498 "TY02": "ì¹´ì¹´ì¤ì림", 499 }; 500 501 var mapTime = { 502 "t1440": "1ì¼ ì ", 503 "t60": "1ìê° ì ", 504 "t10": "10ë¶ ì ", 505 }; 506 507 var _alerts = [ 508 mapTime["t"+schedDet.dataVO.ntcnTime], 509 mapMth[schedDet.dataVO.ntcnMth], 510 ].join(" "); 511 512 $P.$el.find(".sched_data.alerts").html(_alerts); 513 } else { 514 $P.$el.find(".sect_alerts").css("display", "none"); 515 } 516 517 if ($P.params.actMode == "wrks") { 518 var $rdo = $P.$el.find("input[name=rdoAccept]"); 519 var $txt = $P.$el.find("#popSchedAcptTextReject").find("textarea"); 520 521 var wrksId = $.mods.wrks.vars.wrksId; 522 var _list = $P.vars.preload.schedRls.listMap.filter(function(obj, idx) { 523 return obj.group_id.indexOf(wrksId) > -1; 524 }); 525 526 var rls = _list[0]; 527 if (rls.prcs_stat_cd == "PR02") { 528 $rdo.eq(0).prop("checked", true); 529 } else if (rls.prcs_stat_cd == "PR03") { 530 $rdo.eq(1).prop("checked", true); 531 } 532 $txt.val(rls.prcs_stat_cn); 533 $txt.keyup(); 534 } else if ($P.params.actMode == "portal") { 535 var $rdo = $P.$el.find("input[name=rdoAccept]"); 536 var $txt = $P.$el.find("#popSchedAcptTextReject").find("textarea"); 537 538 var rls = $P.vars.preload.schedRls.listMap[0]; 539 if (rls.prcs_stat_cd == "PR02") { 540 $rdo.eq(0).prop("checked", true); 541 } else if (rls.prcs_stat_cd == "PR03") { 542 $rdo.eq(1).prop("checked", true); 543 } 544 $txt.val(rls.prcs_stat_cn); 545 $txt.keyup(); 546 } 547 } 548 } 549 550 // event 551 if (true) { 552 $.mods.common.proc.comInputText({ 553 mode: "textarea", 554 maxlength: 300, 555 placeholder: "ë°ë ¤ì¬ì 를 ì ë ¥íì¸ì.", 556 }).then(function(res) { 557 $("#popSchedAcptTextReject").append(res.$el); 558 }); 559 560 $P.$el.find(".btn_close").click(function() { 561 $P.$modal.modal("hide"); 562 }); 563 564 $P.$el.find(".btn_submit").click(function() { 565 var reqIdx = 0; 566 var listRls = []; 567 var params = {}; 568 569 var fn_request = function() { 570 var rls = listRls[reqIdx]; 571 572 $M.prom.calendAction({ 573 actKey: "updateAcptRls", 574 rlsSeq: rls.rls_seq, 575 acptYn: params.acptYn, 576 rjCn: params.rjCn, 577 }).then(function(res) { 578 reqIdx++; 579 if (listRls.length > reqIdx) { 580 fn_request(); 581 } else { 582 fn_complete(); 583 } 584 }).catch(function(e) { 585 console.log(e); 586 }); 587 } 588 589 var fn_complete = function() { 590 window.location.reload(); 591 } 592 593 if ($P.params.actMode == "wrks") { 594 var wrksId = $.mods.wrks.vars.wrksId; 595 var _list = $P.vars.preload.schedRls.listMap.filter(function(obj, idx) { 596 return obj.group_id.indexOf(wrksId) > -1; 597 }); 598 listRls.push(..._list); 599 } else if ($P.params.actMode == "portal") { 600 var rls = $P.vars.preload.schedRls.listMap[0]; 601 listRls.push(rls); 602 } 603 604 if (listRls.length == 0) { 605 var msg = "error"; 606 $M.proc.alert("", msg); 607 return; 608 } 609 610 var $rdo = $P.$el.find("input[name=rdoAccept]:checked"); 611 if ($rdo.length == 0) { 612 var msg = "error"; 613 $M.proc.alert("", msg); 614 return; 615 } 616 617 var cnfmsg = "ì ì¥ íìê² ìµëê¹?"; 618 $M.proc.confirm("", cnfmsg, function() { 619 params.acptYn = $rdo.val(); 620 params.rjCn = $P.$el.find("#popSchedAcptTextReject").find("textarea").val(); 621 fn_request(); 622 }); 623 }); 624 } 625 626 // main 627 if (true) { 628 Promise.all([ 629 $M.prom.calendAction({actKey:"getSchedDetail", fxSeq:$P.params.fxSeq}), 630 $M.prom.calendAction({actKey:"getSchedRls", fxSeq:$P.params.fxSeq}), 631 ]).then(function(dataset) { 632 $P.proc.bindData(dataset); 633 $P.proc.bindView(); 634 }).catch(function(e) { 635 console.log(e); 636 }); 637 } 638 }, 639 destroy: function($P) { 640 // 641 }, 642 } 643 }); 644 645 } 646 647 // ì´ë²¤í¸ 648 $M.def.event = function() { 649 650 } 651 652 // ì´ê¸° ìí 653 $M.def.status = function() { 654 655 } 656 657 // í ì¤í¸ ì¼ì´ì¤ 658 $M.def.test = function() { 659 660 } 661 662 $M.start(); 663});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.