| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
- // for details on configuring this project to bundle and minify static web assets.
- // Write your JavaScript code.
- $(function () {
- // 사이드 바 토글 유지
- let isHidden = aside.isHidden();
- if (isHidden) {
- aside.hideAside();
- } else {
- aside.showAside();
- }
- });
- // 좌측 메뉴 처리
- class Aside {
- constructor() {
- this.body = document.body;
- this.aside = document.getElementById("aside");
- this.btnAsideToggle = document.getElementById("btnAsideToggle");
- }
- // 사이드 바 토글 시
- toggleAside(e) {
- let isHidden = this.isHidden();
- if (isHidden) {
- aside.showAside();
- } else {
- aside.hideAside();
- }
- setCookie("hidden-aside", isHidden ? "visible" : "hidden", 7);
- }
- // 사이드 바 토글 시 아이콘 변경
- toggleAsideIcon (isHidden) {
- let icon = this.btnAsideToggle.querySelector("i");
- if (isHidden) {
- icon.classList.remove("bi-arrow-left");
- icon.classList.add("bi-arrow-right");
- } else {
- icon.classList.remove("bi-arrow-right");
- icon.classList.add("bi-arrow-left");
- }
- };
- // 숨김 여부 확인
- isHidden() {
- let isHidden = getCookie("hidden-aside") ;
- if (isHidden == "") {
- isHidden = this.body.classList.contains("hidden-aside");
- }
- return (isHidden === "hidden");
- }
- // 보이기
- showAside() {
- this.body.classList.remove("hidden-aside");
- this.toggleAsideIcon(0);
- setCookie("hidden-aside", "visible", 7);
- }
- // 숨기기
- hideAside() {
- this.body.classList.add("hidden-aside");
- this.toggleAsideIcon(1);
- setCookie("hidden-aside", "hidden", 7);
- }
- }
- const aside = new Aside();
- document.getElementById("btnAsideToggle").addEventListener("click", (e) => aside.toggleAside(e));
- // 화면이 작아지면
- window.addEventListener("resize", function () {
- if (window.innerWidth > 768) {
- aside.showAside(0);
- } else {
- aside.hideAside(1);
- }
- });
- // 메뉴 토글 유지
- document.querySelectorAll(".collapse").forEach(e => {
- const collapseID = e.id;
- const collapseState = getCookie(collapseID);
- if (collapseState === "open") {
- new bootstrap.Collapse(e, { show: true });
- } else if (collapseState === "closed") {
- new bootstrap.Collapse(e, { toggle: false });
- }
- e.addEventListener("show.bs.collapse", () => {
- setCookie(collapseID, "open", 7);
- });
- e.addEventListener("hide.bs.collapse", () => {
- setCookie(collapseID, "closed", 7);
- });
- });
- // 드롭박스 적용
- const dropdownList = [...document.querySelectorAll('.dropdown-toggle')].map(e => new bootstrap.Dropdown(e));
- // 목록 버튼상자
- class ActionButtons {
- constructor() {
- this.form = document.getElementById("fAdminList");
- }
- validate() {
- let checked = $("input:checkbox.list-check-box:checked");
- if (checked.length < 1) {
- alert("자료를 하나 이상 선택하세요.");
- return false;
- }
- return true;
- }
- checkout(e) {
- const action = (e.target.dataset.action || e.target.closest("a").href);
- if (!action) {
- alert("처리 주소를 확인하세요.");
- return false;
- }
- this.form.action = action;
- this.form.submit();
- }
- Update(e) {
- if (!this.validate()) {
- return false;
- }
- if (confirm("선택한 자료를 정말 수정 하시겠습니까?")) {
- this.checkout(e);
- }
- }
- Delete(e) {
- if (!this.validate()) {
- return false;
- }
- if (confirm("선택한 자료를 정말 삭제 하시겠습니까?")) {
- this.checkout(e);
- }
- }
- Recover(e) {
- if (!this.validate()) {
- return false;
- }
- if (confirm("선택한 자료를 정말 복원 하시겠습니까?")) {
- this.checkout(e);
- }
- }
- checkedAll(e) {
- let chk = document.getElementsByClassName("list-check-box");
- for (let i = 0; i < chk.length; i++) {
- if (e.target.getAttribute("form") == chk[i].getAttribute("form")) {
- chk[i].checked = e.target.checked;
- }
- }
- if(e.target.checked) {
- $("[data-action]").prop("disabled", false);
- } else {
- $("[data-action]").prop("disabled", true);
- }
- }
- }
- const actionButtons = new ActionButtons();
- $(document).on("click", "#btnListUpdate", (e) => actionButtons.Update(e));
- $(document).on("click", "#btnListDelete", (e) => actionButtons.Delete(e));
- $(document).on("click", "#btnListRecover", (e) => actionButtons.Recover(e));
- $(document).on("click", ".btn-row-delete", () => confirm("정말 삭제 하시겠습니까?"));
- // 모든 라디오, 체크박스 선택/해제
- $(document).on("click", "#checkedAll", (e) => actionButtons.checkedAll(e));
|