| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // 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.
- 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();
- $(function () {
- // 사이드 바 토글 유지
- let isHidden = aside.isHidden();
- if (isHidden) {
- aside.hideAside();
- } else {
- aside.showAside();
- }
- });
- document.getElementById("btnAsideToggle").addEventListener("click", (e) => aside.toggleAside(e));
- // 화면이 작아지면
- window.addEventListener("resize", function () {
- if (window.innerWidth > 768) {
- aside.showAside(0);
- } else {
- aside.hideAside(1);
- }
- });
- // 메뉴 토글 유지
- const collapseElementList = document.querySelectorAll('.collapse');
- collapseElementList.forEach(collapseEl => {
- const collapseID = collapseEl.id;
- const collapseState = getCookie(collapseID);
- if (collapseState === 'open') {
- new bootstrap.Collapse(collapseEl, { show: true });
- } else if (collapseState === 'closed') {
- new bootstrap.Collapse(collapseEl, { toggle: false });
- }
- collapseEl.addEventListener('show.bs.collapse', () => {
- setCookie(collapseID, 'open', 7);
- });
- collapseEl.addEventListener('hide.bs.collapse', () => {
- setCookie(collapseID, 'closed', 7);
- });
- });
- // 드롭박스 적용
- const dropdownElementList = document.querySelectorAll('.dropdown-toggle');
- const dropdownList = [...dropdownElementList].map(dropdownToggleEl => new bootstrap.Dropdown(dropdownToggleEl));
- // 삭제 처리
- $(document).on("click", ".btn-delete-row", function (e) {
- e.preventDefault();
- if (confirm("삭제하시겠습니까?")) {
- location.href = e.target.closest("a").href;
- }
- });
|