front.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. $(function() {
  2. $('[data-bs-toggle="popover"]').popover({
  3. trigger: 'click',
  4. placement: "bottom",
  5. html: true
  6. });
  7. // const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
  8. // const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
  9. $.validator.setDefaults({
  10. ignore: [], // hidden
  11. invalidHandler: function (form, validator) { // 커스텀 포커스 핸들링
  12. if (validator.numberOfInvalids()) {
  13. if (typeof validator.containers[0] != "undefined") {
  14. let id = validator.containers[0].getAttribute("id");
  15. let target = document.getElementById(id);
  16. }
  17. setTimeout(function () {
  18. if (typeof target !== "undefined") {
  19. target.parentNode.scrollIntoView();
  20. } else {
  21. validator.currentForm.parentNode.parentNode.scrollIntoView();
  22. }
  23. }, 1);
  24. }
  25. }
  26. });
  27. $(".date-picker").datepicker({
  28. dayViewHeaderFormat: 'YYYY MMMM',
  29. format: 'YYYY-MM-DD',
  30. useCurrent: false,
  31. dateFormat: 'yy-mm-dd', // 날짜 포맷이다. 보통 yy-mm-dd 를 많이 사용하는것 같다.
  32. prevText: '이전 달', // 마우스 오버시 이전달 텍스트
  33. nextText: '다음 달', // 마우스 오버시 다음달 텍스트
  34. closeText: '닫기', // 닫기 버튼 텍스트 변경
  35. currentText: '오늘', // 오늘 텍스트 변경
  36. monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], //한글 캘린더중 월 표시를 위한 부분
  37. monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], //한글 캘린더 중 월 표시를 위한 부분
  38. dayNames: ['일', '월', '화', '수', '목', '금', '토'], // 한글 캘린더 요일 표시 부분
  39. dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'], // 한글 요일 표시 부분
  40. dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'], // 한글 요일 표시 부분
  41. showMonthAfterYear: true, // true : 년 월 false : 월 년 순으로 보여줌
  42. yearSuffix: '년',
  43. showButtonPanel: true, // 오늘로 가는 버튼과 달력 닫기 버튼 보기 옵션
  44. onClose: function(value) {
  45. let date = getOnlyDigit(value);
  46. if(date) {
  47. this.value = moment(date, "YYYY-MM-DD").format("YYYY-MM-DD");
  48. }else{
  49. this.value = "";
  50. }
  51. }
  52. });
  53. layerPopup.init();
  54. });
  55. // 회원 로그아웃
  56. $(document).on("click", "a#logout", function() {
  57. document.getElementById('logoutForm').submit();
  58. return false;
  59. });
  60. const layerPopup =
  61. {
  62. // 초기화
  63. init: function () {
  64. let layerPops = document.getElementsByClassName("layer-pops");
  65. for (let i in layerPops) {
  66. let pop = layerPops.item(i);
  67. if (pop !== null) {
  68. let isDisplay = Cookies.get('layerPop_' + pop.dataset.key);
  69. if (isDisplay !== 'Y') {
  70. pop.style.display = "block";
  71. $(pop).draggable({
  72. drag: function (e) {
  73. e.target.style.transform = "none";
  74. },
  75. });
  76. }
  77. }
  78. }
  79. },
  80. // 닫기
  81. close: function(e) {
  82. e.parentNode.parentNode.style.display = "none";
  83. },
  84. // 오늘 하루 안보기
  85. expire: function(e) {
  86. let layer = e.parentNode.parentNode;
  87. let key = layer.dataset.key;
  88. let second = (Number(layer.dataset.disableHours) / 86400);
  89. Cookies.set('layerPop_' + key, 'Y', {expires: second});
  90. layer.style.display = "none";
  91. }
  92. };
  93. // 팝업 - 오늘 하루 안보기
  94. $(document).on("click", "#layerPops .layer-pops .btn-closed", function () {
  95. layerPopup.expire(this);
  96. });
  97. // 팝업 - 닫기
  98. $(document).on("click", "#layerPops .layer-pops .btn-cancel", function () {
  99. layerPopup.close(this);
  100. });