diff --git a/src/main/resources/css/fims-login.css b/src/main/resources/css/fims-login.css deleted file mode 100644 index 3e6ba385..00000000 --- a/src/main/resources/css/fims-login.css +++ /dev/null @@ -1,233 +0,0 @@ -@charset "utf-8"; - -.login_bg { - background-color: white; - height: 100%; -} -.header_wrap .logo img{ - margin: 30px 0 0 45px; - display: inline-block; - width: 205px; -} -.login_text { - text-align: center; - max-width: 560px; - margin: 10px auto 0; -} -.login_text .l1 { - font-size: 70px; - color: #4d5769; - margin-top: 60px; - font-family: 'Public Sans'; -} -.login_text .l2 { - font-size: 18px; - color: #959595; - margin-top: 10px; - font-family: 'Public Sans'; -} -.login_text .l2 span{ - color: #006fbe; - font-weight: bold; -} -.login_text .input_wrap { - position: relative; - margin-top: 40px; - padding-right: 0px; -} -.login_text .input_wrap .typeText, -.login_text .input_wrap .typePassword { - display: inline-block; - padding: 0 0 0 30px; - height: 54px; - box-sizing: border-box; - border: 2px solid #828282; - background: #fff; - font-size: 20px; - font-family: 'Public Sans'; -} -.login_text .input_wrap input::placeholder { - color: rgba(205, 206, 206, 1); -} -.login_text .input_wrap input::-webkit-input-placeholder { - color: rgba(205, 206, 206, 1); -} -.login_text .input_wrap input:-ms-input-placeholder { - color: rgba(205, 206, 206, 1); -} - -.login_text .input_wrap .typeButton { - position: absolute; - top: 0; - right: 0; - width: 145px; - height: 100px; - color: #fff; - font-size: 17px; - background: #006fbe; - border: 1px solid #d9d9d9; - box-sizing: border-box; -} -.login_text .input_wrap2 { - text-align: right; - margin-top: 6px; - font-size: 13px; -} -.login_text .input_wrap2 label { - margin-right: 30px; -} -.login_text .input_wrap2 a{ - display: inline-block; - font-size: 14px; - font-family: 'Public Sans'; - font-weight: 700; - color: #959595; -} -.login_text .input_wrap2 a:hover { - text-decoration: underline; -} -.login_text .text_img img { - width : 160px; /* 2021.09.24 박소영 수정 as-is: width300px; */ -} -.login_text .main_img img { - width : 541px; - margin-top: 30px; -} -.login_bg a.line { - border-left: 2px solid #959595; - margin-left: 5px; - padding-left: 5px; - position: relative; -} -.login_bg a.line:before { - content: ''; - display: inline-block; - width: 2px; - height: 10px; - position: absolute; - left: -18px; - top: 2px; -} -.login_text .btn_wrap { - margin: 35px auto 40px; -} -.login_text .btn_wrap a{ - display: inline-block; - border: 1px solid #d9d9d9; - box-sizing: border-box; - background-color: #fff; - font-size: 17px; - height: 58px; - line-height: 58px; - width: 278px; -} -.login_text .btn_wrap a:hover { - background-color: #00a7ac; - border-color: #00a7ac; - color: #fff; -} -.login_text .btn_wrap .typeButton { - display: inline-block; - top: 0; - right: 0; - width: 80%; - height: 66px; - color: #fff; - font-size: 28px; - background: #004988; - border: 1px solid #d9d9d9; - box-sizing: border-box; - border-radius: 32px; - font-family: 'Public Sans'; - cursor: pointer; -} -/*2021.09.24 박소영 새로추가*/ -.login_text .btn_wrap .typeButton:hover{ - background: #0369c1; - transition: all 0.3s; -} - -.login_bg .footer_wrap { - background-color: #fff; - padding-top: 5px; - border-top: 1px solid #e5e5e4; -} -.login_bg .footer_inner { - max-width: 560px; - margin: 0 auto; - position: relative; -} -.login_bg .footer_inner strong { - position: absolute; - font-size: 15px; -} -.login_bg .login_info { - background-color: #4d5769; - padding-top: 18px; - box-sizing: border-box; - height: 60px; -} -.login_bg .login_info strong { - color: #fff; - line-height: 25px; -} -.login_bg .login_info .notice_slider{ - padding-left: 130px; - height: 25px; -} -.login_bg .login_info .notice_slider .bx-wrapper{ - background: none; - border: none; - box-shadow: none; - margin-bottom: 0; -} -.login_bg .login_info ul li { - color: #fff; - position: relative; - padding-right: 100px; - box-sizing: border-box; - height: 25px; - line-height: 25px; - font-size: 13px; -} -.login_bg .login_info ul li a { - color: #fff; - font-size: 13px; -} -.login_bg .login_info ul li span { - position: absolute; - right: 0; -} -.login_bg .login_info2 { - padding-top: 35px; - padding-bottom: 60px; -} -.login_bg .login_info2 strong{ - color: #2d2d2d; -} -.login_bg .login_info2 p { - padding-left: 130px; - font-size: 13px; - line-height: 20px; - margin-bottom: 15px; -} -.login_bg .login_info2 p span { - color: #008ef0; -} -.login_bg .login_info2 .info_link { - margin-top: 30px; -} -.login_bg .login_info2 .info_link a { - color: #2d2d2d; - padding-left: 25px; - background-repeat: no-repeat; - background-position: 0 0; - line-height: 18px; - font-weight: bold; - display: inline-block; -} - -.form-select.no-max-w { - max-width: none; -} - diff --git a/src/main/resources/css/fims.css b/src/main/resources/css/fims.css deleted file mode 100644 index a475f5d7..00000000 --- a/src/main/resources/css/fims.css +++ /dev/null @@ -1,555 +0,0 @@ -@charset "UTF-8"; - -:root{ - --bs-font-sans-serif: "Noto Sans Korean", "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -} - -.btn { - --bs-btn-font-family: "Noto Sans Korean"; -} - -kbd { - background-color: #eee; - border-radius: 3px; - border: 1px solid #b4b4b4; - box-shadow: - 0 1px 1px rgba(0, 0, 0, 0.2), - 0 2px 0 0 rgba(255, 255, 255, 0.7) inset; - color: #333; - display: inline-block; - font-weight: 700; - line-height: 1; - padding: 2px 4px; - white-space: nowrap; -} - -.bg-top-checkbox { - background-color: #d9dee3; -} - -/* 필수 항목 캡션 */ -label.required:after, -.form-label.required:after, -.col-form-label.required:after { - content: '*'; - color: red; -} - -table.compress-cell-w > :not(caption) > * > * { - padding-left: 7px !important; - padding-right: 7px !important; -} -table.compress-cell-h > :not(caption) > * > * { - padding-top: 4px !important; - padding-bottom: 4px !important; -} - -table.compress-cell > :not(caption) > * > * { - padding-left: 7px !important; - padding-right: 7px !important; - padding-top: 4px !important; - padding-bottom: 4px !important; -} - - -.border-default { - border : black solid 1px !important; -} - - -select { - --pdf-red : rgb(255,0,0); - --pdf-green : rgb(0,255,0); - --pdf-blue : rgb(0,0,255); - --pdf-yellow : rgb(255,255,0); - --pdf-orange : rgb(255,128,0); - --pdf-yellow-green : rgb(128,255,0); - --pdf-cyan : rgb(0,255,255); - --pdf-green-cyan : rgb(0,255,128); - --pdf-cyan-blue : rgb(0,128,255); - --pdf-magenta : rgb(255,0,255); - --pdf-violet : rgb(128,0,255); - --pdf-deep-pink : rgb(255,0,128); - --pdf-white : rgb(255,255,255); - --pdf-light-grey : rgb(192,192,192); - --pdf-grey : rgb(160,160,160); - --pdf-dark-grey : rgb(96,96,96); - --pdf-black : rgb(0,0,0); -} - -.task-theme-pvs { background : rgba(66,76,157,0.4) !important; } -.task-theme-bpv { background : rgba(117,123,74,0.4) !important; } -.task-theme-eca { background : rgba(173,215,115,0.4) !important; } -.task-theme-dpv { background : rgba(238,199,177,0.4) !important; } -.task-theme-pes { background : rgba(239,122,115,0.4) !important } -.task-theme-dvs { background : rgba(162,225,221,0.4) !important } - -.fieldset-legend .fieldset-legend-content { - padding: 1.5rem; - font-size: .875rem; - background-color: #fff; - border: 1px solid #bcc5cd; - position: relative -} - -.fieldset-legend .fieldset-legend-content::before { - content: attr(data-label); - display: block; - position: absolute; - top: -8px; - left: 12px; - font-size : 15px!important; - font-weight: 600; - text-transform: uppercase; - background-color: inherit; - color: #a1acb8; - padding: 0 5px -} - -.wrapper-dashboard { - display: flex; - flex-flow: row wrap; - justify-content:center; - max-width:1400px; - padding: 0px; -} - -.wrapper-dashboard .card { - font-weight: bold; - padding : 7px; - margin : 7px; - flex-grow: 1; - flex-shrink: 1; -} -.wrapper-dashboard .card-header { - margin: 0; - padding: 3px; -} -.wrapper-dashboard .card-body { - margin: 0; - padding: 3px; - padding-bottom: 20px; -} -.wrapper-dashboard .card-footer { - border-top: 1px solid #d9dee3; - padding: 3px; -} - -.dashboard-total { - min-width : 300px; - max-width : 400px; - max-height : 150px; -} - -.dashboard-chart { - min-width : 500px; - max-width : 650px; -} - -@keyframes skeleton-loading-fill { - 0% { fill: #f2f2f2; } - 25% { fill: #c1c1c1; } - 50% { fill: #a1a1a1; } - 75% { fill: #c1c1c1; } - 100% { fill: #f2f2f2; } -} - -@keyframes skeleton-loading-color { - 0% { color: #f2f2f2; } - 25% { color: #c1c1c1; } - 50% { color: #a1a1a1; } - 75% { color: #c1c1c1; } - 100% { color: #f2f2f2; } -} - -svg.skeleton { - fill: rgba(0, 0, 0, 1); -} - -svg.skeleton, path.skeleton { - animation: skeleton-loading-fill 1s infinite; -} - -span.skeleton { - animation: skeleton-loading-color 1s infinite; -} - -@keyframes highlight { - 0% { background-color: #ffff99; } - 100% { background-color: #ffffff; } -} - -.highlight-once { - animation: highlight 0.4s; -} - - -.wrapper-list { - min-height: 760px; - overflow-y: auto; - padding: 10px; -} - -.wrapper-pop { - padding: 5px 20px 5px 20px; -} - - - -/** 버튼 */ -.btn-red { - --bs-btn-color: #fff; - --bs-btn-bg:#e60012; - - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg:#e60012; -} - -.btn-green { - --bs-btn-color: #fff; - --bs-btn-bg: #107c41; - - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg:#107c41; -} - -.btn-blue { - --bs-btn-color : #fff; - --bs-btn-bg : #1a71ff; - - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg:#1a71ff; -} - -.btn-lightgray { - --bs-btn-color:#474747; - --bs-btn-bg: #eee; - - --bs-btn-hover-color: #474747; - --bs-btn-hover-bg:#eee; -} - -.btn-darkgray { - --bs-btn-color: #fff; - --bs-btn-bg: #676767; - - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg:#676767; -} - -.btn-square { - aspect-ratio: 1 / 1 !important; -} - - -.btn-pagination { - border:1px solid #e1e1e1; - line-height: 0px; - border-radius: 7px; - background:#F5F5F5; - --bs-btn-disabled-bg: #F5F5F5; -} - -/** 길이,높이 설정 */ -.w-form-select { - width: max-content !important; - min-width: 6.25rem !important; - max-width: 16.25rem !important; -} - -.w-form-date { - width: 7.5rem !important; -} - -.w-automin { - min-width: auto !important; -} - - - - -.min-w-px-50 { - min-width: 50px; -} - -.min-w-px-300 { - min-width: 300px; -} - -.min-w-px-320 { - min-width: 320px; -} - -.min-w-px-350 { - min-width: 350px; -} - -.min-w-px-380 { - min-width: 380px; -} - -.min-w-px-400 { - min-width: 400px; -} - -.min-w-px-550 { - min-width: 550px; -} - -.min-w-px-700 { - min-width: 700px; -} - -.min-w-px-1400 { - min-width: 1400px; -} - - -.mw-px-50 { - max-width: 50px; -} - -.mw-px-100 { - max-width: 100px; -} - -.mw-px-150 { - max-width: 150px; -} - -.mw-px-250 { - max-width: 250px; -} - -.mw-px-300 { - max-width: 300px; -} - -.mw-px-1000 { - max-width: 1000px; -} - -.mw-px-1100 { - max-width: 1100px; -} - -.mw-px-1200 { - max-width: 1200px; -} - -.mh-px-100 { - max-height: 100px; -} - -.mh-px-150 { - max-height: 150px; -} - -.mh-px-200 { - max-height: 200px; -} - -.mh-px-250 { - max-height: 250px; -} - -.mh-px-300 { - max-height: 300px; -} - -.mh-px-350 { - max-height: 350px; -} - -.mh-px-400 { - max-height: 400px; -} - -.mh-px-450 { - max-height: 450px; -} - -.mh-px-500 { - max-height: 500px; -} - -.mh-px-550 { - max-height: 550px; -} - -.mh-px-580 { - max-height: 580px; -} - -.mh-px-600 { - max-height: 600px; -} - -.mh-px-650 { - max-height: 650px; -} - -.mh-px-700 { - max-height: 700px; -} - -.mh-px-750 { - max-height: 750px; -} - -.mh-px-800 { - max-height: 800px; -} - - -.min-w-max-c { - min-width: max-content; -} - - -/* 배경색, 외곽선 */ -.traffic { - -} -.cleanparking { - --program-border : 1px solid #B5B9BB; - --program-border-shadow : 0 0 0 1px inset #FCFFFF; - - --program-bg : #E3E6E8; - --program-title-bg : #EEC575; - --program-btn-bg : #F0F0F0; - --program-popup-bg : #E2E6E9; -} - -.cleanparking.green { - --program-title-bg : #ADD773; -} - -.border-program { - box-shadow: var(--program-border-shadow) !important; - border : var(--program-border) !important; -} - -.bg-program { - background-color: var(--program-bg) !important; -} - -.bg-program-btn { - background-color: var(--program-btn-bg) !important; -} - -.bg-program-popup { - background-color: var(--program-popup-bg)!important; -} - -.bg-program-title { - background-color: var(--program-title-bg) !important; -} - - - -.no-bgi { - background-image: none !important; -} - -select.no-bgi { - padding-inline-end: calc(0.9375rem - var(--bs-border-width)); -} - -/* pdf출력 설정 */ -select.option-style-select[data-option-style='FILL_STROKE']{ font-weight: bold; } - -select.option-style-select > option[value='FILL_STROKE']{ font-weight: bold; } - -select.option-style-select[data-option-style='gulimche']{ font-family: gulimche; } -select.option-style-select[data-option-style='gulim']{ font-family: gulim; } -select.option-style-select[data-option-style='batangche']{ font-family: batangche; } -select.option-style-select[data-option-style='batang']{ font-family: batang; } -select.option-style-select[data-option-style='dotumche']{ font-family: dotumche; } -select.option-style-select[data-option-style='dotum']{ font-family: dotum; } -select.option-style-select[data-option-style='gungsuhche']{ font-family: gungsuhche; } -select.option-style-select[data-option-style='gungsuh']{ font-family: gungsuh; } - -select.option-style-select > option[value='gulimche']{ font-family: gulimche; } -select.option-style-select > option[value='gulim']{ font-family: gulim; } -select.option-style-select > option[value='batangche']{ font-family: batangche; } -select.option-style-select > option[value='batang']{ font-family: batang; } -select.option-style-select > option[value='dotumche']{ font-family: dotumche; } -select.option-style-select > option[value='dotum']{ font-family: dotum; } -select.option-style-select > option[value='gungsuhche']{ font-family: gungsuhche; } -select.option-style-select > option[value='gungsuh']{ font-family: gungsuh; } - -select.option-style-select[data-option-style='RED']{ color: var(--pdf-red);background-color: var(--pdf-red); } -select.option-style-select[data-option-style='GREEN']{ color: var(--pdf-green);background-color: var(--pdf-green); } -select.option-style-select[data-option-style='BLUE']{ color: var(--pdf-blue);background-color: var(--pdf-blue); } -select.option-style-select[data-option-style='YELLOW']{ color: var(--pdf-yellow);background-color: var(--pdf-yellow); } -select.option-style-select[data-option-style='ORANGE']{ color: var(--pdf-orange);background-color: var(--pdf-orange); } -select.option-style-select[data-option-style='YELLOW_GREEN']{ color: var(--pdf-yellow-green);background-color: var(--pdf-yellow-green); } -select.option-style-select[data-option-style='CYAN']{ color: var(--pdf-cyan);background-color: var(--pdf-cyan); } -select.option-style-select[data-option-style='GREEN_CYAN']{ color: var(--pdf-green-cyan);background-color: var(--pdf-green-cyan); } -select.option-style-select[data-option-style='CYAN_BLUE']{ color: var(--pdf-cyan-blue);background-color: var(--pdf-cyan-blue); } -select.option-style-select[data-option-style='MAGENTA']{ color: var(--pdf-magenta);background-color: var(--pdf-magenta); } -select.option-style-select[data-option-style='VIOLET']{ color: var(--pdf-violet);background-color: var(--pdf-violet); } -select.option-style-select[data-option-style='DEEP_PINK']{ color: var(--pdf-deep-pink);background-color: var(--pdf-deep-pink); } -select.option-style-select[data-option-style='WHITE']{ color: var(--pdf-white);background-color: var(--pdf-white); } -select.option-style-select[data-option-style='LIGHT_GREY']{ color: var(--pdf-light-grey);background-color: var(--pdf-light-grey); } -select.option-style-select[data-option-style='GREY']{ color: var(--pdf-grey);background-color: var(--pdf-grey); } -select.option-style-select[data-option-style='DARK_GREY']{ color: var(--pdf-dark-grey);background-color: var(--pdf-dark-grey); } -select.option-style-select[data-option-style='BLACK']{ color: var(--pdf-black);background-color: var(--pdf-black); } - -select.option-style-select > option[value='RED']{ color: var(--pdf-red);background-color: var(--pdf-red); } -select.option-style-select > option[value='GREEN']{ color: var(--pdf-green);background-color: var(--pdf-green); } -select.option-style-select > option[value='BLUE']{ color: var(--pdf-blue);background-color: var(--pdf-blue); } -select.option-style-select > option[value='YELLOW']{ color: var(--pdf-yellow);background-color: var(--pdf-yellow); } -select.option-style-select > option[value='ORANGE']{ color: var(--pdf-orange);background-color: var(--pdf-orange); } -select.option-style-select > option[value='YELLOW_GREEN']{ color: var(--pdf-yellow-green);background-color: var(--pdf-yellow-green); } -select.option-style-select > option[value='CYAN']{ color: var(--pdf-cyan);background-color: var(--pdf-cyan); } -select.option-style-select > option[value='GREEN_CYAN']{ color: var(--pdf-green-cyan);background-color: var(--pdf-green-cyan); } -select.option-style-select > option[value='CYAN_BLUE']{ color: var(--pdf-cyan-blue);background-color: var(--pdf-cyan-blue); } -select.option-style-select > option[value='MAGENTA']{ color: var(--pdf-magenta);background-color: var(--pdf-magenta); } -select.option-style-select > option[value='VIOLET']{ color: var(--pdf-violet);background-color: var(--pdf-violet); } -select.option-style-select > option[value='DEEP_PINK']{ color: var(--pdf-deep-pink);background-color: var(--pdf-deep-pink); } -select.option-style-select > option[value='WHITE']{ color: var(--pdf-white);background-color: var(--pdf-white); } -select.option-style-select > option[value='LIGHT_GREY']{ color: var(--pdf-light-grey);background-color: var(--pdf-light-grey); } -select.option-style-select > option[value='GREY']{ color: var(--pdf-grey);background-color: var(--pdf-grey); } -select.option-style-select > option[value='DARK_GREY']{ color: var(--pdf-dark-grey);background-color: var(--pdf-dark-grey); } -select.option-style-select > option[value='BLACK']{ color: var(--pdf-black);background-color: var(--pdf-black); } - - -.modal-body-min { - min-height:10em; - min-width:30%; -} - - -.border-separator-y { - border-top:1px solid #dfdfdf; - border-bottom:1px solid #dfdfdf; -} - -.border-separator-t { - border-top:1px solid #dfdfdf; -} - -.border-separator-b { - border-bottom:1px solid #dfdfdf; -} - -.fit-contain { - object-fit: contain; -} - -body:not(.root-privacy-on) td.privacy-cell span:nth-child(1){ - display:block; -} - -body:not(.root-privacy-on) td.privacy-cell span:nth-child(2){ - display:none; -} - -body.root-privacy-on td.privacy-cell span:nth-child(1){ - display:none; -} -body.root-privacy-on td.privacy-cell span:nth-child(2){ - display:block; -} \ No newline at end of file diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Black.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Black.eot deleted file mode 100644 index 7c274d92..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Black.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Black.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Black.otf deleted file mode 100644 index ee8f9db8..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Black.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff deleted file mode 100644 index 0cb85829..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff2 deleted file mode 100644 index 288a5841..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Black.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Bold.eot deleted file mode 100644 index a3a402a4..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Bold.otf deleted file mode 100644 index 936a25d5..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff deleted file mode 100644 index 5c994eec..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff2 deleted file mode 100644 index 8075f86c..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Bold.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.eot b/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.eot deleted file mode 100644 index 6087c592..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.otf b/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.otf deleted file mode 100644 index 97321713..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff b/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff deleted file mode 100644 index 117f89f2..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff2 deleted file mode 100644 index 5cd6b2cc..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-DemiLight.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Light.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Light.eot deleted file mode 100644 index 35e63faa..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Light.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Light.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Light.otf deleted file mode 100644 index ecd67fad..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Light.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff deleted file mode 100644 index 6608beca..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff2 deleted file mode 100644 index ff4d53d6..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Light.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Medium.eot deleted file mode 100644 index 37b4540e..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Medium.otf deleted file mode 100644 index 15c2009a..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff deleted file mode 100644 index 81b841aa..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff2 deleted file mode 100644 index c452c23a..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Medium.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Regular.eot deleted file mode 100644 index 8c6e3776..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Regular.otf deleted file mode 100644 index ce916b31..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff deleted file mode 100644 index 4c409263..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff2 deleted file mode 100644 index 838b3ce7..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Regular.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.eot b/src/main/resources/fonts/notoSansKr/NotoSans-Thin.eot deleted file mode 100644 index 7060a94a..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.eot and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.otf b/src/main/resources/fonts/notoSansKr/NotoSans-Thin.otf deleted file mode 100644 index 5cbef9b1..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.otf and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff b/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff deleted file mode 100644 index ef6a254f..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff2 b/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff2 deleted file mode 100644 index 672ba55b..00000000 Binary files a/src/main/resources/fonts/notoSansKr/NotoSans-Thin.woff2 and /dev/null differ diff --git a/src/main/resources/fonts/notoSansKr/fontface.css b/src/main/resources/fonts/notoSansKr/fontface.css deleted file mode 100644 index 001c0833..00000000 --- a/src/main/resources/fonts/notoSansKr/fontface.css +++ /dev/null @@ -1,93 +0,0 @@ -@charset "UTF-8"; - -/** Thin < Light < DemiLight < Regular < Medium < Black < Bold */ - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 100; - font-style: normal; - src: url("../notoSansKr/NotoSans-Thin.eot?") format("eot"), - url("../notoSansKr/NotoSans-Thin.otf") format("opentype"), - url("../notoSansKr/NotoSans-Thin.woff") format("woff"), - url("../notoSansKr/NotoSans-Thin.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 200; - font-style: normal; - src: url("../notoSansKr/NotoSans-Thin.eot?") format("eot"), - url("../notoSansKr/NotoSans-Thin.otf") format("opentype"), - url("../notoSansKr/NotoSans-Thin.woff") format("woff"), - url("../notoSansKr/NotoSans-Thin.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 300; - font-style: normal; - src: url("../notoSansKr/NotoSans-Light.eot?") format("eot"), - url("../notoSansKr/NotoSans-Light.otf") format("opentype"), - url("../notoSansKr/NotoSans-Light.woff") format("woff"), - url("../notoSansKr/NotoSans-Light.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 400; - font-style: normal; - src: url("../notoSansKr/NotoSans-DemiLight.eot?") format("eot"), - url("../notoSansKr/NotoSans-DemiLight.otf") format("opentype"), - url("../notoSansKr/NotoSans-DemiLight.woff") format("woff"), - url("../notoSansKr/NotoSans-DemiLight.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 500; - font-style: normal; - src: url("../notoSansKr/NotoSans-Regular.eot?") format("eot"), - url("../notoSansKr/NotoSans-Regular.otf") format("opentype"), - url("../notoSansKr/NotoSans-Regular.woff") format("woff"), - url("../notoSansKr/NotoSans-Regular.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 600; - font-style: normal; - src: url("../notoSansKr/NotoSans-Medium.eot?") format("eot"), - url("../notoSansKr/NotoSans-Medium.otf") format("opentype"), - url("../notoSansKr/NotoSans-Medium.woff") format("woff"), - url("../notoSansKr/NotoSans-Medium.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 700; - font-style: normal; - src: url("../notoSansKr/NotoSans-Medium.eot?") format("eot"), - url("../notoSansKr/NotoSans-Medium.otf") format("opentype"), - url("../notoSansKr/NotoSans-Medium.woff") format("woff"), - url("../notoSansKr/NotoSans-Medium.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 800; - font-style: normal; - src: url("../notoSansKr/NotoSans-Black.eot?") format("eot"), - url("../notoSansKr/NotoSans-Black.otf") format("opentype"), - url("../notoSansKr/NotoSans-Black.woff") format("woff"), - url("../notoSansKr/NotoSans-Black.woff2") format("woff2"); -} - -@font-face { - font-family: "Noto Sans Korean"; - font-weight: 900; - font-style: normal; - src: url("../notoSansKr/NotoSans-Black.eot?") format("eot"), - url("../notoSansKr/NotoSans-Black.otf") format("opentype"), - url("../notoSansKr/NotoSans-Black.woff") format("woff"), - url("../notoSansKr/NotoSans-Black.woff2") format("woff2"); -} \ No newline at end of file diff --git a/src/main/resources/fonts/xit-icon.css b/src/main/resources/fonts/xit-icon.css deleted file mode 100644 index 3767cfb3..00000000 --- a/src/main/resources/fonts/xit-icon.css +++ /dev/null @@ -1,102 +0,0 @@ -@charset "UTF-8"; - -.xit-twenty::before { - content: url("./xit-icon/7seg20m.svg"); -} -.xit-fifty::before { - content: url("./xit-icon/7seg50m.svg"); -} - -.xit-korea-post::before { - content: url("./xit-icon/korea-post.svg"); -} - -.xit-org::before { - content: url("./xit-icon/org.svg"); -} - -.xit-sa::before { - content: url("./xit-icon/sa.svg"); -} - -.svg-cctv-fixed:before { - --bs-origin : url("../../file/modifySvg/고정형cctv.svg"); - --bs-active : url("../../file/modifySvg/고정형cctv.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/고정형cctv.svg?modify=alert"); -} - -.svg-cctv-drive:before { - --bs-origin : url("../../file/modifySvg/이동형cctv.svg"); - --bs-active : url("../../file/modifySvg/이동형cctv.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/이동형cctv.svg?modify=alert"); -} - -.svg-crackdown-road:before { - --bs-origin : url("../../file/modifySvg/도보단속.svg"); - --bs-active : url("../../file/modifySvg/도보단속.svg?modify=active"); - --bs-alert : url("../../../../file/modifySvg/도보단속.svg?modify=alert"); -} - -.svg-crackdown-minwon:before { - --bs-origin : url("../../file/modifySvg/민원(즉시단속).svg"); - --bs-active : url("../../file/modifySvg/민원(즉시단속).svg?modify=active"); - --bs-alert : url("../../file/modifySvg/민원(즉시단속).svg?modify=alert"); -} - -.svg-target-lvy:before { - --bs-origin : url("../../file/modifySvg/등록대상.svg"); - --bs-active : url("../../file/modifySvg/등록대상.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/등록대상.svg?modify=alert"); -} - -.svg-target-transfer:before { - --bs-origin : url("../../file/modifySvg/이첩대상.svg"); - --bs-active : url("../../file/modifySvg/이첩대상.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/이첩대상.svg?modify=alert"); -} - -.svg-sendstat-guide:before { - --bs-origin : url("../../file/modifySvg/계도장 발송현황.svg"); - --bs-active : url("../../file/modifySvg/계도장 발송현황.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/계도장 발송현황.svg?modify=alert"); -} - -.svg-sendstat-before:before { - --bs-origin : url("../../file/modifySvg/사전통보 발송현황.svg"); - --bs-active : url("../../file/modifySvg/사전통보 발송현황.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/사전통보 발송현황.svg?modify=alert"); -} - -.svg-sendstat-nop:before { - --bs-origin : url("../../file/modifySvg/고지서 발송현황.svg"); - --bs-active : url("../../file/modifySvg/고지서 발송현황.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/고지서 발송현황.svg?modify=alert"); -} - -.svg-opn-rcp:before { - --bs-origin : url("../../file/modifySvg/접수.svg"); - --bs-active : url("../../file/modifySvg/접수.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/접수.svg?modify=alert"); -} - -.svg-opn-decision:before { - --bs-origin : url("../../file/modifySvg/수용_미수용.svg"); - --bs-active : url("../../file/modifySvg/수용_미수용.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/수용_미수용.svg?modify=alert"); -} - -.svg-opn-selfdrop:before { - --bs-origin : url("../../file/modifySvg/자진취하.svg"); - --bs-active : url("../../file/modifySvg/자진취하.svg?modify=active"); - --bs-alert : url("../../file/modifySvg/자진취하.svg?modify=alert"); -} - -[class^=svg-]:before { - content : var(--bs-origin); -} -[class^=svg-].active-svg:before { - content : var(--bs-active); -} -[class^=svg-].alert-svg:before { - content : var(--bs-alert); -} \ No newline at end of file diff --git a/src/main/resources/fonts/xit-icon/7seg20m.svg b/src/main/resources/fonts/xit-icon/7seg20m.svg deleted file mode 100644 index 2df729bb..00000000 --- a/src/main/resources/fonts/xit-icon/7seg20m.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/fonts/xit-icon/7seg50m.svg b/src/main/resources/fonts/xit-icon/7seg50m.svg deleted file mode 100644 index cd312d2c..00000000 --- a/src/main/resources/fonts/xit-icon/7seg50m.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/fonts/xit-icon/korea-post.svg b/src/main/resources/fonts/xit-icon/korea-post.svg deleted file mode 100644 index 7e8d2894..00000000 --- a/src/main/resources/fonts/xit-icon/korea-post.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/src/main/resources/fonts/xit-icon/org.svg b/src/main/resources/fonts/xit-icon/org.svg deleted file mode 100644 index f7e4e117..00000000 --- a/src/main/resources/fonts/xit-icon/org.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/fonts/xit-icon/sa.svg b/src/main/resources/fonts/xit-icon/sa.svg deleted file mode 100644 index 3a072535..00000000 --- a/src/main/resources/fonts/xit-icon/sa.svg +++ /dev/null @@ -1,935 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/html/inputRsnDialog.html b/src/main/resources/html/inputRsnDialog.html deleted file mode 100644 index 9c3f5d7e..00000000 --- a/src/main/resources/html/inputRsnDialog.html +++ /dev/null @@ -1,13 +0,0 @@ -
-
- -
-
\ No newline at end of file diff --git a/src/main/resources/html/searchAddr.html b/src/main/resources/html/searchAddr.html deleted file mode 100644 index bba47504..00000000 --- a/src/main/resources/html/searchAddr.html +++ /dev/null @@ -1,251 +0,0 @@ -
-
- - - - - - - -
-
- -
- -
- -
- - -
    -
-
-
-
-
-
- - - -
- - diff --git a/src/main/resources/img/login/loginDeco_02.png b/src/main/resources/img/login/loginDeco_02.png deleted file mode 100644 index bf82eada..00000000 Binary files a/src/main/resources/img/login/loginDeco_02.png and /dev/null differ diff --git a/src/main/resources/img/login/mainLogo_01.png b/src/main/resources/img/login/mainLogo_01.png deleted file mode 100644 index ef6c39b0..00000000 Binary files a/src/main/resources/img/login/mainLogo_01.png and /dev/null differ diff --git a/src/main/resources/img/login/mainLogo_02.png b/src/main/resources/img/login/mainLogo_02.png deleted file mode 100644 index 69b27527..00000000 Binary files a/src/main/resources/img/login/mainLogo_02.png and /dev/null differ diff --git a/src/main/resources/img/user-circle-solid-24.svg b/src/main/resources/img/user-circle-solid-24.svg deleted file mode 100644 index 84d3257e..00000000 --- a/src/main/resources/img/user-circle-solid-24.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/js/fims/cmmn/customElements.js b/src/main/resources/js/fims/cmmn/customElements.js deleted file mode 100644 index c4cec040..00000000 --- a/src/main/resources/js/fims/cmmn/customElements.js +++ /dev/null @@ -1,301 +0,0 @@ -/************************************************************************** -* doctx 탐지 -**************************************************************************/ -Element.prototype.detectDoctx = function(){ - - let parent = this.parentElement; - - if(parent == null){ - return null; - } - - if(parent.hasAttribute("data-doctx")){ - return parent.getAttribute("data-doctx"); - } - - return parent.detectDoctx(); -} - -/************************************************************************** -* 페이징 표시하는 SPAN -**************************************************************************/ -class PagingInfoSpan extends HTMLSpanElement { - constructor() { - super(); - } - - help(){ - PagingInfoSpan.help(); - } - static help(){ - console.log("클래스명 = PagingInfoSpan"); - console.log("is속성 = paging-info"); - console.log("PagingInfoSpan 페이징 정보를 표시하는 SPAN태그이다."); - } - - connectedCallback(){ - if(this.isConnected){ - let nm = this.getAttribute("name"); - let prefix = nm.substr(0,nm.indexOf("PagingInfo")) - - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - this.id = prefix+"--"+doctx+"PagingInfo"; - } - } - } -} - -customElements.define("paging-info", PagingInfoSpan, { extends: "span" }); - - -/************************************************************************** -* name으로 참조하는 label -**************************************************************************/ -class NameLabel extends HTMLLabelElement { - constructor() { - super(); - } - - help(){ - NameLabel.help(); - } - static help(){ - console.log("클래스명 = NameLabel"); - console.log("is속성 = name-label"); - console.log("id가 아닌 name으로 참조하는 LABEL태그이다."); - } - - connectedCallback(){ - if(this.isConnected){ - - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - if(this.getAttribute("for") != null && this.getAttribute("for").indexOf("--") == -1){ - this.htmlFor = this.getAttribute("for")+"--"+doctx; - } - } - } - } -} - -customElements.define("name-label", NameLabel, { extends: "label" }); - -/************************************************************************** -* name과 doctx로 id를 생성하는 SELECT -**************************************************************************/ -class IdSelect extends HTMLSelectElement { - constructor() { - super(); - } - - help(){ - IdSelect.help(); - } - static help(){ - console.log("클래스명 = IdSelect"); - console.log("is속성 = id-select"); - console.log("name과 doctx로 자신의 id를 생성하는 SELECT태그이다."); - } - - connectedCallback(){ - if(this.isConnected){ - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - this.id = this.getAttribute("name")+"--"+doctx; - } - } - } -} - -customElements.define("id-select", IdSelect, { extends: "select" }); - -/************************************************************************** -* name과 doctx로 id를 생성하는 TEXTAREA -**************************************************************************/ -class IdTextArea extends HTMLTextAreaElement { - constructor() { - super(); - } - - help(){ - IdTextArea.help(); - } - static help(){ - console.log("클래스명 = IdTextArea"); - console.log("is속성 = id-textArea"); - console.log("name과 doctx로 자신의 id를 생성하는 TEXTAREA태그이다."); - } - - connectedCallback(){ - if(this.isConnected){ - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - this.id = this.getAttribute("name")+"--"+doctx; - } - } - } -} - -customElements.define("id-textarea", IdTextArea, { extends: "textarea" }); - -/************************************************************************** -* name과 doctx로 id를 생성하는 INPUT -**************************************************************************/ -class IdInput extends HTMLInputElement { - constructor() { - super(); - } - - help(){ - IdInput.help(); - } - static help(){ - console.log("클래스명 = IdInput"); - console.log("is속성 = id-input"); - console.log("name과 doctx로 자신의 id를 생성하는 INPUT태그이다."); - } - - connectedCallback(){ - if(this.isConnected){ - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - this.id = this.getAttribute("name")+"--"+doctx; - if(this.hasAttribute("list") && this.getAttribute("list").indexOf("--") == -1){ - this.setAttribute("list",this.getAttribute("list")+"--"+doctx); - } - } - } - } -} - -customElements.define("id-input", IdInput, { extends: "input" }); - -/************************************************************************** -* name과 doctx로 id를 생성하는 DATALIST -**************************************************************************/ -class IdDataList extends HTMLDataListElement { - constructor() { - super(); - } - - help(){ - IdDataList.help(); - } - static help(){ - console.log("클래스명 = IdDataList"); - console.log("is속성 = id-datalist"); - console.log("name과 doctx로 자신의 id를 생성하는 DATALIST태그이다."); - } - - - connectedCallback(){ - if(this.isConnected){ - let doctx = this.getAttribute("data-ref-doctx"); - if(doctx == null){ - doctx = this.detectDoctx(); - } - if(doctx != null){ - this.setAttribute("data-ref-doctx", doctx); - this.id = this.getAttribute("name")+"--"+doctx; - } - } - } -} - -customElements.define("id-datalist", IdDataList, { extends: "datalist" }); - - - -/************************************************************************** -* 중괄호 자동 추가 템플릿 -**************************************************************************/ -class CurlyBrackets extends HTMLTemplateElement { - constructor() { - super(); - - let curlyBracketsOpen = String.fromCharCode(123); //중괄호시작 - - let thisCon = this.content; - - let trs = thisCon.querySelectorAll("tr"); - - trs.forEach(function(node) { - let key = node.getAttribute("data-key"); - if(key != null && key != "" && key.indexOf(curlyBracketsOpen) == -1){ - node.setAttribute("data-key","{"+key+"}"); - } - let index = node.getAttribute("data-index"); - if(index != null && index != "" && index.indexOf(curlyBracketsOpen) == -1){ - node.setAttribute("data-index","{"+index+"}"); - } - }); - - let tds = thisCon.querySelectorAll("td"); - tds.forEach(function(node) { - if(node.getAttribute("onclick") != null && node.getAttribute("onclick") == ""){ - node.setAttribute("onclick","{onclick}"); - } - - if(node.getAttribute("ondblclick") != null && node.getAttribute("ondblclick") == ""){ - node.setAttribute("ondblclick","{ondblclick}"); - } - - if(node.childElementCount == 0){ - if(node.textContent.trim() != "" && node.textContent.indexOf(curlyBracketsOpen) == -1){ - node.textContent = "{"+node.textContent.trim()+"}"; - } - } - }); - - let tdCheckboxes = thisCon.querySelectorAll("td>input[type='checkbox']"); - tdCheckboxes.forEach(function(node) { - if(node.getAttribute("value") != null && node.getAttribute("value") != "" && node.getAttribute("value") != "on"){ - node.setAttribute("value","{"+node.getAttribute("value")+"}"); - } - if(node.getAttribute("onchange") != null && node.getAttribute("onchange") == ""){ - node.setAttribute("onchange","{onchange}"); - } - }); - - let tdRadios = thisCon.querySelectorAll("td>input[type='radio']"); - tdRadios.forEach(function(node) { - if(node.getAttribute("value") != null && node.getAttribute("value") != "" && node.getAttribute("value") != "on"){ - node.setAttribute("value","{"+node.getAttribute("value")+"}"); - } - if(node.getAttribute("onchange") != null && node.getAttribute("onchange") == ""){ - node.setAttribute("onchange","{onchange}"); - } - }); - } - - help(){ - CurlyBrackets.help(); - } - static help(){ - console.log("클래스명 = CurlyBrackets"); - console.log("is속성 = curly-brackets"); - console.log("그리드 렌더링시 중괄호가 빠진 부분을 자동으로 추가하는 TEMPLATE태그이다."); - } -} -customElements.define("curly-brackets", CurlyBrackets, { extends: "template" }); diff --git a/src/main/resources/js/fims/cmmn/fims-base.js b/src/main/resources/js/fims/cmmn/fims-base.js deleted file mode 100644 index 2966b4a4..00000000 --- a/src/main/resources/js/fims/cmmn/fims-base.js +++ /dev/null @@ -1,519 +0,0 @@ -if(window.help !== undefined){ - help.prototype.list.push("FimsFormFields 클래스 : FormFields클래스를 상속받은 FIMS프로젝트 내에서 사용하는 FormFields클래스"); - help.prototype.list.push("pageObject 객체 : HTML화면별 스크립트 모음"); - help.prototype.list.push("DoctxFinder 클래스 : DomQuery를 상속받은 클래스. pageObject객체의 내부 요소는 해당 클래스의 인스턴스이다."); -} - -/************************************************************************** -* FimsFormFields -**************************************************************************/ -class FimsFormFields extends FormFields { - - help(){ - FimsFormFields.help(); - } - - static help(){ - console.log("FimsFormFields 클래스 : FormFields클래스를 상속받은 FIMS프로젝트 내에서 사용하는 FormFields클래스"); - } - - /** - * form 에 json data set - * element tag에 data-fmt-type 으로 데이타 format이 지정된 경우 해당 포맷으로 출력 - * @param {object} formObj document.querySelector('form') - * @param {object} jsonData json type data - */ - set(ctrl,obj){ - - document.querySelectorAll(this.children).forEach(input => { - - let prop = input.getAttribute("data-map") - || input.name - || input.id; - if (!prop) return; - - let dataItem = obj instanceof DataItem, - value = dataItem ? obj.getValue(prop) : obj[prop]; - - if ("radio" == input.type) { - if (value && value == input.value) - input.checked = true; - } else if("checkbox" == input.type) { - if (value && value == input.value) - input.checked = ("Y" === value); - } else if(input.tagName == "SELECT") { - for(let option of input.options) { - if(option.value == value){ - option.selected = true; - } else { - option.selected = false; - } - } - } else { - if(value == null){ - value = ""; - } - // element data-fmt-type에 정의된 format 적용 - // dt - yyyy-mm-dd HH:mm:ss, day - yyyy-mm-dd, time - HH:mm:ss, number - #,### - if(input.dataset.fmtType){ - const fmtType = input.dataset.fmtType; - switch (fmtType) { - case 'dt' : - value = datetimeFormat.parse(value); - value = datetimeFormat.format(value); - break; - case 'day' : - value = dateFormat.parse(value); - value = dateFormat.format(value); - break; - case 'time' : - value = timeFormat.parse(value); - value = timeFormat.format(value); - break; - case 'number' : - value = numberFormat.parse(value); - value = numberFormat.format(value); - break; - default: - break; - } - } - if(input.name){ - if($(input).hasClass('form-date')){ - $(input).datepicker("setDate", value); - } else { - input.value = value; - } - - //보안모드 마스킹 항목 - if(input.tagName === 'INPUT' && input.id && input.classList.contains("privacy")){ - let maskVal = value.replace(/./g, "*"); - document.getElementById("mask-"+input.id).value = maskVal; - } - } - - } - }); - - - } - - get() { - let obj = {}; - document.querySelectorAll(this.children).forEach(input => { - if(input.tagName == "INPUT" || input.tagName == "SELECT" || input.tagName == "TEXTAREA"){ - let property = input.name || input.id; - let value = input.value; - if("radio" == input.type) { - if(input.checked) - obj[property] = value; - } else if("checkbox" == input.type) { - if(input.checked){ - if(obj[property]){ - obj[property] += ","+value; - } else { - obj[property] = value; - } - } - } else { - if(input.dataset.fmtType){ - const fmtType = input.dataset.fmtType; - switch (fmtType) { - case 'dt' : - value = value.replaceAll("-","").replaceAll(":","").replaceAll(" ",""); - break; - case 'day' : - value = value.replaceAll("-",""); - break; - case 'time' : - value = value.replaceAll(":",""); - break; - case 'number' : - value = value.replaceAll(",",""); - break; - default: - break; - - } - } - obj[property] = value; - } - } - }); - return obj; - } -} - -function newFimsFormFields(conf){ - return new FimsFormFields(conf); -} - -/************************************************************************** -* data-doctx,name 어트리뷰트로 찾기 -**************************************************************************/ -function newDoctxFinder(doctx){ - let finder = new DoctxFinder(doctx); - return finder; -} - -class DoctxFinder extends DomQuery { - constructor(doctx) { - super(); - this.setContainers("[data-doctx='"+doctx+"']"); - this.doctx = doctx; - } - - help(){ - console.log("현재 doctx = "+this.doctx); - DoctxFinder.help(); - } - static help(){ - console.log("클래스명 = DoctxFinder"); - console.log("newDoctxFinder(doctx명)로 인스턴스를 생성할 수 있다."); - console.log("클래스 메서드 목록"); - console.log("selectorn(요소이름) : 문자열 [data-doctx='설정된doctx'] [name='요소이름'] 을 반환한다."); - console.log("findn(요소이름) : data-doctx속성이 설정된doctx인 요소 내에서 name속성이 요소이름인 HTML요소를 반환한다."); - console.log("$findn(요소이름) : data-doctx속성이 설정된doctx인 요소 내에서 name속성이 요소이름인 제이쿼리 객체를 반환한다."); - console.log("selfElement() : data-doctx속성이 설정된doctx인 HTML요소를 반환한다."); - console.log("selfDlgId() : data-doctx속성이 설정된doctx인 HTML요소를 갖는 모달창의 id를 반환한다."); - console.log("refDlgId(모달창이름) : data-ref-doctx속성이 설정된doctx이고 name속성이 모달창이름인 모달창의 id를 반환한다."); - } - - selectorn(name){ - return this.selector("[name='"+name+"']"); - } - findn(name){ - return this.find("[name='"+name+"']"); - } - $findn(name){ - return $(document.querySelector("[data-doctx='"+this.doctx+"']")).find("[name='"+name+"']"); - } - - selfElement(){ - return document.querySelector("[data-doctx='"+this.doctx+"']"); - } - selfDlgId(){ - if($(this.selfElement()).parents(".modal").length > 0){ - return $(this.selfElement()).parents(".modal")[0].id; - } else { - return ""; - } - } - refDlgId(dlgName){ - if($(".modal[data-ref-doctx='"+this.doctx+"'][name='"+dlgName+"']").length > 0){ - return $(".modal[data-ref-doctx='"+this.doctx+"'][name='"+dlgName+"']")[0].id; - } else { - return ""; - } - } - -} - - -/************************************************************************** -* jquery.fn 커스텀 - UI요소 값 세팅 -**************************************************************************/ -$.fn.set = function(value) { - return this.each(function(){ - if($(this).hasClass('form-date')){ - if(value != null && value.length == 8 && value.indexOf("-") == -1){ - value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6,8); - } - $(this).datepicker("setDate", value); - } else if($(this).hasClass('option-style-select')){ - $(this).val(value); - this.changeUI(); - } else if(this.type == "checkbox" || this.type == "radio"){ - if(this.value == value){ - $(this).prop("checked", true); - } else { - $(this).prop("checked", false); - } - } else { - if(this.dataset.fmtType == "number"){ - $(this).val(numberFormat.format(value)); - } else { - $(this).val(value); - } - } - }); -} - -/************************************************************************** -* Dataset 관련 적용 기능 -**************************************************************************/ -const Apply = { - fromDatasetControl : { - load : async function(control, pageNum){ - return new Promise((resolve, reject) => { - control.query.pageNum = pageNum; - if (!control.query.pageNum){ - control.query.pageNum = 1; - } - ajax.get({ - url:control.urls.load, - data:control.query, - success:(resp) => { - resolve(resp); - } - }); - }); - }, - reload : async function(control){ - return new Promise((resolve, reject) => { - var orgnQuery = Object.assign({}, control.query); - control.query.fetchSize = control.defaultFetchSize * control.query.pageNum; - control.query.pageNum = 1; - - ajax.get({ - url:control.urls.load, - data:control.query, - success:(resp) => { - control.query.pageNum = orgnQuery.pageNum; - control.query.fetchSize = orgnQuery.fetchSize; - resolve(resp); - } - }); - }); - } - }, - fromDataset : { - gridCheckbox : function(dataset, tbody, colIndex, checkedArr){ - - var keys = checkedArr.map(item => dataset.getKey(item)); - - $(tbody).find("tr").each(function() { - var cb = $(this).find("td").eq(colIndex).find(":checkbox"); - cb.prop("checked", keys.includes(cb.val())); - }); - - }, - gridButton : function(dataset, button, checkedArr){ - var keys = checkedArr.map(item => dataset.getKey(item)); - $(button).prop("disabled", keys.length < 1); - }, - currentRow : function(dataset, dataItem, tbody){ - if(!dataItem){ - return; - } - $(tbody).setCurrentRow(dataset.getKey(dataItem)); - }, - paging : function(dataset, resp, navUl, navSpan){ - - let id = navSpan.id; - let pf = id.substr(0,id.indexOf("PagingInfo")); - - $(navUl).setPagingInfo({ - list : dataset, - prefix : pf, - totalSize : resp["Total"] - }); - - }, - getTbody : function(dataset, found, notFound, replacer){ - var empty = dataset.empty; - var trs = empty ? notFound : dataset.inStrings(found, replacer); - return trs.join(); - }, - getTodoCurrent : function(dataset, beforeCurrent, columnName){ - - let di = null; - if(beforeCurrent == null){ - return null; - } - if(dataset.empty){ - return null; - } - - let filtered = dataset.getDataset("item").filter(item => item.data[columnName] == beforeCurrent.primaryKey); - if(filtered.length > 0){ - di = filtered[0]; - return di; - } - - let otherInfo; - if(beforeCurrent.arrayIndex > (dataset.length - 1)){ - di = dataset.getDataset("item")[dataset.length - 1]; - } else { - di = dataset.getDataset("item")[beforeCurrent.arrayIndex]; - } - - return di; - } - }, - toDataset : { - current : function(dataset, dataKey){ - dataset.setCurrent(dataKey, false); - }, - selection : function(dataset, checkbox, bool){ - - var parentEl = $(checkbox).parent()[0]; - var isTH = parentEl.tagName == "TH" ? true : false; - - if(isTH) { - var dataItems = dataset.getDataset("item"); - - for(var i=0; i < dataItems.length; i++){ - dataItems[i].select(bool); - } - } else { - var dataItem = dataset.getData(checkbox.value, "item"); - dataItem.select(bool); - } - }, - set : function(dataset, resp){ - dataset._byKeys = {}; - dataset._current = null; - resp = resp || {}; - var data = dataset._getDataItems(resp,{}); - - dataset._items = data.items; - dataset._byKeys = data.byKeys; - }, - add : function(dataset, resp){ - if (dataset.empty){ - this.set(dataset, resp); - return; - } - var state = dataset.state; - resp = resp || {}; - var data = dataset._getDataItems(resp,{}); - dataset._items = this._items.concat(data.items); - dataset._byKeys = { - ...this._byKeys, - ...data.byKeys - }; - } - } - -}; - -/************************************************************************** -* 그리드 관련 기능 -**************************************************************************/ -const GRID = { - fromResp : { - setPagingInfo : function(respList, respPaging, navUl, navSpan){ - let pagination = {}; - - let id = navSpan.id; - pagination.prefix = id.substr(0,id.indexOf("PagingInfo")); - - let dl = 0; - if(respList != null) { - dl = respList.length; - } - - let s = 0; - let ts = 0; - if(respPaging && respPaging.start) { - s = respPaging.start; - } - if(respPaging && respPaging.totalSize) { - ts = respPaging.totalSize; - } - pagination.totalSize = ts; - pagination.dataLength = s + dl; - - $(navUl).setPagingInfo(pagination); - } - }, - setCurrentRow : function(evTarget){ - if(evTarget instanceof HTMLTableCellElement){ - let tr = evTarget.parentElement; - let tbody = tr.parentElement; - - for (let sibling of tdElement.parentNode.children) { - sibling.classList.remove('current-row'); - } - tr.classList.add('current-row'); - } else if(evTarget instanceof HTMLTableRowElement){ - let tr = evTarget; - let tbody = tr.parentElement; - - for (let sibling of tdElement.parentNode.children) { - sibling.classList.remove('current-row'); - } - tr.classList.add('current-row'); - } - }, - checkbox : { - sync : function(checkboxElement, bool){ - var parentEl = $(checkboxElement).parent()[0]; - var isTH = parentEl.tagName == "TH" ? true : false; - var tr = $(checkboxElement).parents("tr"); - var siblingTag = isTH ? "TH" : "TD"; - var siblings = tr.find(siblingTag); - var checkboxColIndex = siblings.index(parentEl); - - var table = $(checkboxElement).parents("table"); - var thead = table.find("thead"); - var tbody = table.find("tbody"); - var trs = tbody.find("tr"); - - if(isTH) { - - trs.each(function(){ - $(this).find("td").eq(checkboxColIndex).find(":checkbox").prop("checked", bool); - }); - - } else { - var allChecked = false; - var cbLength = 0; - var checkedLength = 0; - - trs.each(function(){ - var cb = $(this).find("td").eq(checkboxColIndex).find(":checkbox"); - if(cb.length > 0){ - cbLength++; - if(cb.is(":checked")){ - checkedLength++; - }; - } - }); - - if(cbLength == checkedLength){ - allChecked = true; - } - - if(allChecked){ - thead.find(":checkbox").prop("checked", true); - } else { - thead.find(":checkbox").prop("checked", false); - } - - } - }, - countChecked : function(checkboxElement){ - - var parentEl = $(checkboxElement).parent()[0]; - var tr = $(checkboxElement).parents("tr").eq(0); - var table = $(checkboxElement).parents("table").eq(0); - - var checkboxColIndex = null; - if(parentEl.tagName == "TH"){ - var siblings = tr.find("TH"); - checkboxColIndex = siblings.index(parentEl); - } else if(parentEl.tagName == "TD"){ - var siblings = tr.find("TD"); - checkboxColIndex = siblings.index(parentEl); - } else { - return null; - } - - var tbody = table.find("tbody"); - var trs = tbody.find("tr"); - - var count = 0; - trs.each(function(){ - var cb = $(this).find("td").eq(checkboxColIndex).find(":checkbox"); - if(cb.length > 0){ - if(cb.is(":checked")) { - count++; - } - } - }); - return count; - } - } -}; diff --git a/src/main/resources/js/fims/cmmn/fims-componentization.js b/src/main/resources/js/fims/cmmn/fims-componentization.js deleted file mode 100644 index 426279f0..00000000 --- a/src/main/resources/js/fims/cmmn/fims-componentization.js +++ /dev/null @@ -1,230 +0,0 @@ -if(window.help !== undefined){ - help.prototype.list.push("FimsComponentization 클래스 : 특정 HTML요소에 기능을 추가할 수 있다."); -} - -class FimsComponentization { - - static help(){ - console.log("fnMakeSpinnerSelect(셀렉트박스,이전버튼,다음버튼) : 특정 셀렉트박스를 버튼클릭으로 옵션 선택 가능한 셀렉트박스로 만든다."); - console.log("fnMakeOptionStyleSelect(셀렉트박스) : 특정 셀렉트박스를 선택된 옵션의 스타일이 적용된 셀렉트박스로 만든다."); - console.log("fnMakeRowSpinner(테이블row,up버튼,down버튼,스크롤컨테이너,validator) : 특정 테이블을 행 위치 이동이 가능한 테이블로 만든다."); - console.log("fnMakeSingleImageViewer(img태그,fileInput태그,파일경로속성명,파일이름속성명) : 특정 이미지 태그를 단일 업로드 이미지 뷰어로 만든다."); - } - - /************************************************************************** - * 특정 셀렉트박스를 버튼클릭으로 옵션 선택 가능한 셀렉트박스로 만든다. - **************************************************************************/ - static fnMakeSpinnerSelect(selectEl, prevBtnEl, nextBtnEl){ - - $(selectEl).on("animationend", function(){ - $(selectEl).removeClass("highlight-once"); - }); - $(prevBtnEl).on("click", function(){ - var selected = $(selectEl).find("option:selected"); - var prev = selected.prev(); - if(prev.length >= 1){ - $(selectEl).val(prev.val()); - } else { - $(selectEl).addClass("highlight-once"); - } - }); - $(nextBtnEl).on("click", function(){ - var selected = $(selectEl).find("option:selected"); - var next = selected.next(); - if(next.length >= 1){ - $(selectEl).val(next.val()); - } else { - $(selectEl).addClass("highlight-once"); - } - }); - } - - /************************************************************************** - * 특정 셀렉트박스를 선택된 옵션의 스타일이 적용된 셀렉트박스로 만든다. - **************************************************************************/ - static fnMakeOptionStyleSelect(selectEl){ - $(selectEl).addClass("option-style-select"); - - selectEl.changeUI = function(){ - - var selected = $(this).find("option:selected"); - - if(selected.length <= 0){ - selectEl.dataset.optionStyle = ""; - selectEl.title = ""; - return; - } - - selectEl.dataset.optionStyle = selected.val(); - selectEl.title = selected[0].title; - }; - - $(selectEl).on("change", function(){ - selectEl.changeUI(); - }); - - selectEl.changeUI(); - } - - /************************************************************************** - * 특정 테이블을 행 위치 이동 가능한 테이블로 만든다. - **************************************************************************/ - static fnMakeRowSpinner(tableRowEl, upBtnEl, downBtnEl, scrollEl, validFunc){ - - if(validFunc != undefined && validFunc != null){ - tableRowEl.validForComponent = validFunc; - } else { - tableRowEl.validForComponent = function(eventInfo){ - return true; - }; - } - - $(upBtnEl).on("click", function(){ - var tbody = $(tableRowEl).parent(); - - var theadHeight = $(scrollEl).find("thead").outerHeight(); - var scrollElStart = $(scrollEl).offset().top + theadHeight; - var scrollElHeight = $(scrollEl).height() - theadHeight - VERTICAL_SCROLL_HEIGHT; - var scrollMiddle = scrollElStart + (scrollElHeight/2); - - if($(tableRowEl).index() == 0){ - return; - } - - var beforeIndex = $(tableRowEl).index() - 1; - var beforeTr = $(tbody).find("tr").eq(beforeIndex); - - - var eventInfo = { - clickedButtonType : "up", - currentRow : tableRowEl, - siblingRow : beforeTr - }; - if(!tableRowEl.validForComponent(eventInfo)){ - return; - } - - - var rowStart = beforeTr.offset().top; - var rowHeight = beforeTr.outerHeight(); - var rowMiddle = rowStart+(rowHeight/2); - - beforeTr.before(tableRowEl); - - if(rowMiddle < scrollMiddle){ - var move = scrollMiddle - rowMiddle; - $(scrollEl).scrollTop($(scrollEl).scrollTop() - move); - } - - $(tbody).find("tr").removeClass("current-row"); - $(tableRowEl).addClass("current-row"); - }); - - $(downBtnEl).on("click", function(){ - var tbody = $(tableRowEl).parent(); - - var theadHeight = $(scrollEl).find("thead").outerHeight(); - var scrollElStart = $(scrollEl).offset().top + theadHeight; - var scrollElHeight = $(scrollEl).height() - theadHeight - VERTICAL_SCROLL_HEIGHT; - var scrollMiddle = scrollElStart + (scrollElHeight/2); - - if($(tableRowEl).index() == ($(tbody).children().length) - 1){ - return; - } - - var afterIndex = $(tableRowEl).index() + 1; - var afterTr = $(tbody).find("tr").eq(afterIndex); - - - var eventInfo = { - clickedButtonType : "down", - currentRow : tableRowEl, - siblingRow : afterTr - }; - if(!tableRowEl.validForComponent(eventInfo)){ - return; - } - - - var rowStart = afterTr.offset().top; - var rowHeight = afterTr.outerHeight(); - var rowMiddle = rowStart+(rowHeight/2); - - afterTr.after(tableRowEl); - - if(rowMiddle > scrollMiddle){ - var move = rowMiddle - scrollMiddle; - $(scrollEl).scrollTop($(scrollEl).scrollTop() + move); - } - - $(tbody).find("tr").removeClass("current-row"); - $(tableRowEl).addClass("current-row"); - }); - - - } - - /************************************************************************** - * 특정 이미지 태그를 단일 업로드 이미지 뷰어로 만든다. - **************************************************************************/ - static fnMakeSingleImageViewer(imgEl, fileInputEl, dataAttributeForFilePath, dataAttributeForFileName){ - - $(imgEl).on("click", function(){ - $(fileInputEl).click(); - }); - - $(fileInputEl).on("change", function(){ - - if(this.files != null && this.files.length > 0){ - $(imgEl).attr("alt", this.files[0].name); - $(imgEl).attr("src", (window.URL || window.webkitURL).createObjectURL(this.files[0])); - - } else { - - var orgnName = $(imgEl).attr("data-"+dataAttributeForFileName); - var orgnPath = $(imgEl).attr("data-"+dataAttributeForFilePath); - - if(orgnPath != undefined && orgnPath != null && orgnPath != ""){ - $(imgEl).attr("alt", orgnName); - $(imgEl).attr("src", orgnPath); - } else { - $(imgEl).attr("alt", "파일이 없습니다."); - $(imgEl).attr("src", "/webjars/applib/img/no-image.svg"); - } - - } - - }); - } - - static getBrowserName() { - var agent = navigator.userAgent.toUpperCase(); - if (agent.indexOf('TRIDENT') >= 0) { - return 'IE'; - } else if (agent.indexOf('FIREFOX') >= 0) { - return 'FIREFOX'; - } else if (agent.indexOf('EDG') >= 0) { - return 'EDGE'; - } else if (agent.indexOf('CHROME') >= 0) { - return 'CHROME'; - } else if (agent.indexOf('SAFARI') >= 0) { - return 'SAFARI'; - } else { - return ''; - } - } -} - -const BROWSER_NAME = FimsComponentization.getBrowserName(); -var VERTICAL_SCROLL_HEIGHT = 14; -switch(BROWSER_NAME){ - case "EDGE" : - VERTICAL_SCROLL_HEIGHT = 14; - break; - case "FIREFOX" : - VERTICAL_SCROLL_HEIGHT = 15; - break; - case "CHROME" : - VERTICAL_SCROLL_HEIGHT = 15; - break; -} \ No newline at end of file diff --git a/src/main/resources/js/fims/cmmn/fims-support.js b/src/main/resources/js/fims/cmmn/fims-support.js deleted file mode 100644 index 1f1ad78d..00000000 --- a/src/main/resources/js/fims/cmmn/fims-support.js +++ /dev/null @@ -1,555 +0,0 @@ -if(window.help !== undefined){ - help.prototype.list.push("FimsSupport 클래스 : FIMS프로젝트 내에서 공통적으로 사용할 수 있는 기능 지원"); - help.prototype.list.push("FimsPagingSupport 클래스 : 스크롤 페이징 정보 표시 지원"); -} - -/************************************************************************** -* FimsSupport -**************************************************************************/ -class FimsSupport { - - static help(){ - console.log("메소드 목록"); - console.log("fnMenualDownload() : 메뉴얼 다운로드"); - console.log("mappingButtonAndMenu(버튼id, 메뉴이름) : 버튼과 메뉴를 매핑한다."); - console.log("fnDownsizeToggle(th객체) : 테이블 컬럼 축소 여부 변경"); - console.log("fnDownsizeCheck(html테이블객체) : 테이블 렌더링 후 축소 처리할 컬럼 확인"); - console.log("countCrdnByVhrno(차량번호, 업무구분코드, 시군구코드) : 차량번호로 단속 건수 조회"); - console.log("countCvlcptDscsnByVhrno(차량번호, 업무구분코드, 시군구코드) : 차량번호로 민원상담 건수 조회"); - console.log("getVhclInfo(시군구코드, 차량번호, 기준일자) : 시군구코드, 차량번호, 기준일자로 차적 조회"); - console.log("getVhclDisabledParkingInfo(차량번호) : 장애인 차량여부 조회"); - console.log("searchFromGridTitle(키워드영문명, 키워드한글명, 메인옵션, 추가옵션) : 그리드의 특정 열 값을 키워드로 자료 조회"); - console.log("renderForTask(렌더링영역객체, 업무class속성명) : 업무구분별 화면 렌더링"); - console.log("registShortcutKey() : 단축키 등록"); - console.log("getActiveRootTabArea() : 현재 활성화된 최상위 탭 영역을 반환한다."); - console.log("fnJsonToFormData(json,배열이름) : son객체 안의 jsonArray를 FormData형식의 키로 치환한다."); - console.log("fnJsonArrayToFormData(json배열,배열이름) : jsonArray를 FormData형식의 키를 갖는 json으로 치환한다."); - console.log("getCellDefsForPrivacyCell(TD태그의 제이쿼리 객체) : 엑셀다운로드시 개인정보 포함된 셀의 컬럼명을 추출하는 함수"); - console.log("openPDF(blob객체,새 창 이름) : PDF파일 미리보기 창 열기"); - console.log("fnProgress(sse키, progress팝업화면 내용, progress응답시 처리 메소드) : 프로그레스바 표시"); - } - - /************************************************************************** - * 메뉴얼 다운로드 - **************************************************************************/ - static fnMenualDownload(){ - var filenameInHeader = ""; - - fetch(wctx.url("/file/downloadMenual.do")) - .then((response) => { - var header = response.headers.get('Content-Disposition'); - console.log(header); - var parts = header.split(';'); - filenameInHeader = parts[1].split('=')[1]; - if(filenameInHeader.startsWith("\"") && filenameInHeader.endsWith("\"")){ - filenameInHeader = filenameInHeader.substring(1,filenameInHeader.length-1); - } - filenameInHeader = decodeURIComponent(filenameInHeader); - return response.blob(); - }) - .then((blob) => { - - var URL = window.URL || window.webkitURL; - var downloadUrl = URL.createObjectURL(blob); - - var a = document.createElement("a"); - a.href = downloadUrl; - a.download = filenameInHeader; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - - }); - - } - - /************************************************************************** - * 버튼과 메뉴를 매핑한다. - **************************************************************************/ - static mappingButtonAndMenu(buttonId, menuNm){ - $("#"+buttonId).on( "click", function() { - $("#menus").find("div[data-i18n='"+menuNm+"']").parent("a").trigger("click"); - }); - } - - /************************************************************************** - * 테이블 컬럼 축소 여부 변경 - **************************************************************************/ - static fnDownsizeToggle(thObj) { - - $(thObj).toggleClass("downsize"); - - var thIndex = $(thObj).index(); - - var setValue = ""; - if($(thObj).hasClass("downsize")){ - setValue = "160px"; - } - - var tbody = $(thObj).parent("tr").parent("thead").next("tbody"); - if(tbody.length < 1){ - return; - } - - var trs = tbody.find("tr"); - - if(trs.length < 1){ - return; - } - - if(trs.length == 1 && trs.find("td").length <= 1){ - return; - } - - trs.each(function(){ - $(this).find("td:eq("+thIndex+")").css("max-width",setValue); - }); - - } - - /************************************************************************** - * 테이블 렌더링 후 축소 처리할 컬럼 확인 - **************************************************************************/ - static fnDownsizeCheck(tableObj) { - $(tableObj).find("thead tr th").each(function(){ - var thIndex = $(this).index(); - if($(this).hasClass("downsize")){ - var trs = $(this).parent("tr").parent("thead").next("tbody").find("tr"); - trs.each(function(){ - $(this).find("td:eq("+thIndex+")").css("max-width","160px"); - }); - } - }); - } - - /************************************************************************** - * 차량번호로 단속 건수 조회 - **************************************************************************/ - static async countCrdnByVhrno(vhrno, taskSeCd, sggCd){ - return new Promise((resolve, reject) => { - json.get({ - url: wctx.url("/"+taskSeCd+"/crdn/crdn06/010/nocs.do"), - data: { - vhrno : vhrno, - taskSeCd : taskSeCd, - sggCd : sggCd - }, - success: function(resp, textStatus, jqXHR) { - resolve(resp); - }, - error: function(jqXHR, textStatus, error) { - } - }); - }); - } - - /************************************************************************** - * 차량번호로 민원상담 건수 조회 - **************************************************************************/ - static async countCvlcptDscsnByVhrno(vhrno, taskSeCd, sggCd){ - return new Promise((resolve, reject) => { - json.get({ - url: wctx.url("/"+taskSeCd+"/sprt/sprt04/010/nocs.do"), - data: { - vhrno : vhrno, - taskSeCd : taskSeCd, - sggCd : sggCd - }, - success: function(resp, textStatus, jqXHR) { - resolve(resp); - }, - error: function(jqXHR, textStatus, error) { - } - }); - }); - } - - /************************************************************************** - * 시군구코드, 차량번호, 기준일자로 차적 조회 - **************************************************************************/ - static async getVhclInfo(sggCd, vhrno, levy_stdde){ - return new Promise((resolve, reject) => { - json.post({ - url: wctx.url("/payer/vehicle.do"), - data: { - sggCd : sggCd, - vhrno : vhrno, - levy_stdde : levy_stdde - }, - success: function(resp, textStatus, jqXHR) { - resolve(resp); - }, - error: function(jqXHR, textStatus, error) { - } - }); - }); - }; - - /************************************************************************** - * 장애인 차량여부 조회 - **************************************************************************/ - static async getVhclDisabledParkingInfo(vhrno){ - return new Promise((resolve, reject) => { - json.get({ - url: wctx.url("/intf/disabledParking/parkingInfo"), - data: { - vehicleNo : vhrno - }, - success: function(resp, textStatus, jqXHR) { - resolve(resp); - }, - error: function(jqXHR, textStatus, error) { - } - }); - }); - } - - /************************************************************************** - * 그리드의 특정 열 값을 키워드로 자료 조회 - **************************************************************************/ - static searchFromGridTitle(byValue, byOutputValue, mainOption, subOption){ - var tr = event.target.parentElement; - - if($(tr).attr("data-search-target") == null || $(tr).attr("data-search-target") == ""){ - - var trDataset = tr.dataset; - - var byElementId = trDataset.by; - var byOutputElementId = trDataset.byOutput; - var mainOptionElementId = trDataset.mainOption; - var subOptionElementId = trDataset.subOption; - - document.getElementById(byElementId).value = StringSupport.snakeToCamel(byValue); - document.getElementById(byOutputElementId).value = byOutputValue; - - document.getElementById(mainOptionElementId).value = mainOption; - document.getElementById(subOptionElementId).value = subOption; - } else { - - let byEl = $($(tr).attr("data-search-target")).find("[name='by']")[0]; - let byOutputEl = $($(tr).attr("data-search-target")).find("[name='byOutput']")[0]; - let mainOptionEl = $($(tr).attr("data-search-target")).find("[name='mainOption']")[0]; - let subOptionEl = $($(tr).attr("data-search-target")).find("[name='subOption']")[0]; - - byEl.value = StringSupport.snakeToCamel(byValue); - byOutputEl.value = byOutputValue; - mainOptionEl.value = mainOption; - subOptionEl.value = subOption; - } - - } - - /************************************************************************** - * 업무구분별 화면 렌더링 - **************************************************************************/ - static renderForTask(areaId, taskClass){ - var slotAreas; - if(typeof areaId == "string"){ - slotAreas = $("#"+areaId).find("[slot]"); - } else { - slotAreas = $(areaId).find("[slot]"); - } - - slotAreas.each(function(){ - if($(this).hasClass("if-empty-col0")){ - if(!isEmpty($(this).attr("data-original-col-size"))){ - let colSize = $(this).attr("data-original-col-size"); - $(this).removeClass("col-0"); - $(this).addClass(colSize); - $(this).attr("data-original-col-size",""); - } - } - }); - - slotAreas.each(function(){ - var tempHtml = ""; - $(this).find("template").each(function(){ - tempHtml += this.cloneNode(true).outerHTML; - }); - - var taskTemplate = $(this).find("template."+taskClass); - if(taskTemplate.length < 1){ - this.innerHTML = tempHtml; - return; - } - - var inHtml = $(taskTemplate[0].content).find("slot")[0].innerHTML; - this.innerHTML = tempHtml + inHtml; - - }); - - slotAreas.each(function(){ - if($(this).hasClass("if-empty-col0")){ - if($(this).children().not("template").length == 0){ - let colSize = ""; - for(let col of BOOTSTRAP_COLS){ - if($(this).hasClass(col)){ - colSize = col; - break; - } - } - - $(this).attr("data-original-col-size", colSize); - $(this).removeClass(colSize); - $(this).addClass("col-0"); - } - } - }); - } - - /************************************************************************** - * 단축키 등록 - **************************************************************************/ - static registShortcutKey(){ - document.addEventListener('keydown', (event) => { - - var RESERVED_FUNCTION_KEYS = ["F1","F2","F3","F4","F6","F7","F8","F9","F10","F11","PageDown","PageUp"]; - var KEYS_FOR_GLOBAL = ["F9","F10","F11"]; - - if(RESERVED_FUNCTION_KEYS.includes(event.key)){ - - event.preventDefault(); - - var activeBasckdropYn = FimsSupport.isActiveBackdrop(); - - var curArea = FimsSupport.getCurrentAreaForShortcutKey(); - - if(KEYS_FOR_GLOBAL.includes(event.key)){ //전역 기능 - - if(event.key == "F9"){ - if($("#securityMode--top").is(":checked")){ - $("#securityMode--top").prop("checked", false); - fn_securityModeToggle(false); - } else { - $("#securityMode--top").prop("checked", true); - fn_securityModeToggle(true); - } - - } - - if(event.key == "F10"){ - if($("#photoMask--top").is(":checked")){ - $("#photoMask--top").prop("checked", false); - fn_photoMask(false); - } else { - $("#photoMask--top").prop("checked", true); - fn_photoMask(true); - } - - } - - if(!activeBasckdropYn){ - //TODO : do something - } - - } else { //페이지별,다이얼로그별 버튼 - - if(curArea != null){ - - var targetButton = $(curArea).find("button.btn-"+event.key); - - if(targetButton.length == 1){ - targetButton.click(); - } else { - if(targetButton.length > 1){ - debug('단축키 버튼 중복 : ' + targetButton.length + "개"); - } - } - - } - - } - - return false; - } - }); - } - - //단축키 기능이 사용될 영역을 반환한다. - static getCurrentAreaForShortcutKey(){ - - if(FimsSupport.isActiveBackdrop()){ - return AppSupport.getLastOpenDialog(); - } else { - return FimsSupport.getActiveRootTabArea(); - } - - return null; - } - - //현재 활성화된 최상위 탭 영역을 반환한다. - static getActiveRootTabArea(){ - return $("#main-tab-content").children(".active")[0]; - } - - - //백드롭 영역 활성화 여부를 반환한다. - static isActiveBackdrop(){ - - if($("div.modal-backdrop").length < 1){ - return false; - } - - var isActiveYn = false; - $("div.modal-backdrop").each(function(){ - if($(this).hasClass("show")){ - isActiveYn = true; - }; - }); - - return isActiveYn; - } - - - /** - * json객체 안의 jsonArray를 FormData형식의 키로 치환한다. - * @return FormData형식의 키를 갖는 json - */ - static fnJsonToFormData(originalJson, arrayName){ - if(originalJson[arrayName] == undefined){ - return originalJson; - } else { - var newObj = {}; - - var array = originalJson[arrayName]; - for(var i=0; i"+progressContent+"", - css: { backgroundColor: "lightgrey", padding : "10px" } - }); - }; - - eventSource.onerror = function(e) { - $.unblockUI(); - }; - - eventSource.onmessage = function(e) { - if (e.data == 'FIN'){ - eventSource.close(); - $.unblockUI(); - } else { - progressEvent(e.data); - } - }; - } -} - -const SSE_SUBSCRIBE_URL = wctx.url("/subscribe.do"); - -const BOOTSTRAP_COLS = [ - "col-1","col-2","col-3","col-4","col-5","col-6","col-7","col-8","col-9","col-10","col-11","col-12", - "col-sm-1","col-sm-2","col-sm-3","col-sm-4","col-sm-5","col-sm-6","col-sm-7","col-sm-8","col-sm-9","col-sm-10","col-sm-11","col-sm-12", - "col-md-1","col-md-2","col-md-3","col-md-4","col-md-5","col-md-6","col-md-7","col-md-8","col-md-9","col-md-10","col-md-11","col-md-12", - "col-lg-1","col-lg-2","col-lg-3","col-lg-4","col-lg-5","col-lg-6","col-lg-7","col-lg-8","col-lg-9","col-lg-10","col-lg-11","col-lg-12", - "col-xl-1","col-xl-2","col-xl-3","col-xl-4","col-xl-5","col-xl-6","col-xl-7","col-xl-8","col-xl-9","col-xl-10","col-xl-11","col-xl-12", - "col-xxl-1","col-xxl-2","col-xxl-3","col-xxl-4","col-xxl-5","col-xxl-6","col-xxl-7","col-xxl-8","col-xxl-9","col-xxl-10","col-xxl-11","col-xxl-12" -]; - - -/************************************************************************** -* FimsPagingSupport -**************************************************************************/ -class FimsPagingSupport extends PagingSupport { - constructor(conf) { - if(conf.ctrl == null){ - conf.ctrl = new DatasetControl({}); - } - super(conf); - - if(conf.doq != null){ - this._doq = conf.doq; - } - } - - setPagingInfo(option) { - - let pagination = {}; - let List; - let Paging; - if(this.prefix == null || this.prefix == ""){ - let c = this.linkContainer; - pagination.prefix = c.substr(7, c.length-15); - List = "List"; - Paging = "Paging"; - } else { - pagination.prefix = this.prefix; - List = pagination.prefix+"List"; - Paging = pagination.prefix+"Paging"; - } - - let dl = 0; - if(option && option[List]) { - dl = option[List].length; - } - - let s = 0; - let ts = 0; - if(option && option[Paging] && option[Paging].start) { - s = option[Paging].start; - } - if(option && option[Paging] && option[Paging].totalSize) { - ts = option[Paging].totalSize; - } - pagination.totalSize = ts; - pagination.dataLength = s + dl; - - $(this.doq.selector(this.linkContainer)).setPagingInfo(pagination); - } -} - -function newFimsPagingSupport(conf){ - return new FimsPagingSupport(conf); -} \ No newline at end of file diff --git a/src/main/resources/js/fims/ogdp/ogdp01010.js b/src/main/resources/js/fims/ogdp/ogdp01010.js deleted file mode 100644 index e69de29b..00000000 diff --git a/src/main/resources/js/fims/ogdp/ogdp02010.js b/src/main/resources/js/fims/ogdp/ogdp02010.js deleted file mode 100644 index 0606aa54..00000000 --- a/src/main/resources/js/fims/ogdp/ogdp02010.js +++ /dev/null @@ -1,16 +0,0 @@ -function newOgdp02020Control(page, doctx = ""){ - page.ctrl = new DatasetControl({ - dataGetter : obj => obj["List"], - appendData:true, - keys : ["DEPT_CD"], - urls : { - load : wctx.url("/ogdp/getDeptStngList.do"), - getInfo : wctx.url("/ogdp/getDeptStngInfo.do") - }, - formats: { - REG_DT : datetimeFormat, - MDFCN_DT : datetimeFormat - } - }); - return page.ctrl; -} \ No newline at end of file diff --git a/src/main/resources/js/fims/ogdp/ogdp02020.js b/src/main/resources/js/fims/ogdp/ogdp02020.js deleted file mode 100644 index ab54128e..00000000 --- a/src/main/resources/js/fims/ogdp/ogdp02020.js +++ /dev/null @@ -1,13 +0,0 @@ -function newOgdp02010Control(page, doctx = ""){ - page.ctrl = new DatasetControl({ - dataGetter : obj => obj["List"], appendData : true, - keymapper : info => info ? info.DEPT_CD : "", - urls : { - update : wctx.url("/ogdp/updateDeptStng.do") - }, - formats: { - - } - }); - return page.ctrl; -} \ No newline at end of file