| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- // 쿠키 값 설정
- function setCookie(name, value, days) {
- let expires = "";
- if (days) {
- const date = new Date();
- date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); // 일(day) 단위로 유효 기간 설정
- expires = ("; expires=" + date.toUTCString());
- }
- document.cookie = (name + "=" + encodeURIComponent(value) + expires + "; path=/");
- }
- // 쿠키 값 조회
- function getCookie(name) {
- const nameEQ = name + "=";
- const cookies = document.cookie.split(';');
- for (let i = 0; i < cookies.length; i++) {
- let cookie = cookies[i];
- while (cookie.charAt(0) === ' ') {
- cookie = cookie.substring(1, cookie.length); // 공백 제거
- }
- if (cookie.indexOf(nameEQ) === 0) {
- return decodeURIComponent(cookie.substring(nameEQ.length, cookie.length));
- }
- }
- return null;
- }
- // 쿠키 삭제
- function deleteCookie(name) {
- document.cookie = (name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;");
- }
- // 이미지 미리보기
- function setupImagePreview(fileInputID, previewImageID) {
- const fileInput = document.getElementById(fileInputID);
- const previewImage = document.getElementById(previewImageID);
- if (!fileInput || !previewImage) {
- return;
- }
- fileInput.addEventListener("change", function (e) {
- const file = e.target.files[0];
- const image = previewImage.querySelector("img");
- if (file && file.type.startsWith("image/")) {
- const reader = new FileReader();
- reader.onload = function (e) {
- image.src = e.target.result;
- previewImage.removeAttribute("hidden");
- };
- reader.readAsDataURL(file);
- } else {
- image.src = "";
- previewImage.setAttribute("hidden", "hidden");
- }
- });
- // 미리보기 삭제
- const removeBtn = previewImage.querySelector(".btn-remove-preview");
- if (removeBtn) {
- removeBtn.addEventListener("click", function () {
- const image = previewImage.querySelector("img");
- if (image) {
- image.src = "";
- }
- previewImage.hidden = true;
- fileInput.value = "";
- });
- }
- }
- $.validator.setDefaults({ // Bootstrap Required.
- ignore: [], // hidden
- debug: false,
- invalidHandler: function (event, validator) {
- },
- submitHandler: function (form, event) {
- const submitter = event?.originalEvent?.submitter;
- if (submitter?.getAttribute('formaction')) {
- form.action = submitter.getAttribute('formaction');
- }
- form.submit();
- },
- showErrors: function (errorMap, errorList) {
- $.each(this.successList, function (index, value) {
- let field = $(value);
- if (field.is(':hidden')) {
- field = field.parent();
- }
- if (typeof field.tooltip !== "undefined") { // 3.3.7은 destroy 4.0 이후 dispose
- field.tooltip('dispose');
- }
- });
- if (errorList.length <= 0) {
- $(".tooltip").tooltip("dispose");
- }
- $.each(errorList, function (index, value) {
- let field = $(value.element);
- if (field.is(':hidden')) {
- field = field.parent();
- }
- field.tooltip('dispose').tooltip({
- placement: 'bottom',
- title: value.message,
- trigger: 'manual'
- }).tooltip('show');
- });
- }
- });
|