$(document).ready(function () { // Page Preloader $('#status').fadeOut(); $('#preloader').delay(200).fadeOut(function () { $('body').delay(200).css({'overflow': 'visible'}); }); // 좌측메뉴 스토리지 let leftMenuType = localStorage.getItem("leftMenuType"); if(leftMenuType=='close'){ $('.menutoggle').addClass('menu-collapsed'); $('body').addClass('leftpanel-collapsed'); $('ul.children').css("display",""); }else{ $('.menutoggle').removeClass('menu-collapsed'); $('body').removeClass('leftpanel-collapsed'); $('ul.children').css("display","block"); }; // 로딩바 제거 // 상단 스케쥴 - 이동 $('.headSchedule,.headSchedule-mobile').click(function (e) { location.href="/html/dashboard.html"; }); // Toggle Left Menu $('.leftpanel .nav-parent > a').live('click', function () { var parent = $(this).parent(); var sub = parent.find('> ul'); // Dropdown works only when leftpanel is not collapsed if (!$('body').hasClass('leftpanel-collapsed')) { if (sub.is(':visible')) { sub.slideUp(200, function () { parent.removeClass('nav-active'); $('.mainpanel').css({height: ''}); adjustmainpanelheight(); }); } else { closeVisibleSubMenu(); parent.addClass('nav-active'); sub.slideDown(200, function () { adjustmainpanelheight(); }); } } return false; }); function closeVisibleSubMenu() { $('.leftpanel .nav-parent').each(function () { var t = $(this); if (t.hasClass('nav-active')) { t.find('> ul').slideUp(200, function () { t.removeClass('nav-active'); }); } }); } function adjustmainpanelheight() { // Adjust mainpanel height var docHeight = $(document).height(); if (docHeight > $('.mainpanel').height()) $('.mainpanel').height(docHeight); } adjustmainpanelheight(); // Tooltip $('.tooltips').tooltip({container: 'body'}); // Popover $('.popovers').popover(); // Close Button in Panels $('.panel .panel-close').click(function () { $(this).closest('.panel').fadeOut(200); return false; }); // Form Toggles $('.toggle').toggles({on: true}); $('.toggle-chat1').toggles({on: false}); // Sparkline $('#sidebar-chart').sparkline([4, 3, 3, 1, 4, 3, 2, 2, 3, 10, 9, 6], { type: 'bar', height: '30px', barColor: '#428BCA' }); $('#sidebar-chart2').sparkline([1, 3, 4, 5, 4, 10, 8, 5, 7, 6, 9, 3], { type: 'bar', height: '30px', barColor: '#D9534F' }); $('#sidebar-chart3').sparkline([5, 9, 3, 8, 4, 10, 8, 5, 7, 6, 9, 3], { type: 'bar', height: '30px', barColor: '#1CAF9A' }); $('#sidebar-chart4').sparkline([4, 3, 3, 1, 4, 3, 2, 2, 3, 10, 9, 6], { type: 'bar', height: '30px', barColor: '#428BCA' }); $('#sidebar-chart5').sparkline([1, 3, 4, 5, 4, 10, 8, 5, 7, 6, 9, 3], { type: 'bar', height: '30px', barColor: '#F0AD4E' }); // Minimize Button in Panels $('.minimize').click(function () { var t = $(this); var p = t.closest('.panel'); if (!$(this).hasClass('maximize')) { p.find('.panel-body, .panel-footer').slideUp(200); t.addClass('maximize'); t.html('+'); } else { p.find('.panel-body, .panel-footer').slideDown(200); t.removeClass('maximize'); t.html('−'); } return false; }); // Add class everytime a mouse pointer hover over it $('.nav-bracket > li').hover(function () { $(this).addClass('nav-hover'); }, function () { $(this).removeClass('nav-hover'); }); // Menu Toggle $('.menutoggle').click(function () { var body = $('body'); var bodypos = body.css('position'); if (bodypos != 'relative') { if (!body.hasClass('leftpanel-collapsed')) { body.addClass('leftpanel-collapsed'); $('.nav-bracket ul').attr('style', ''); $(this).addClass('menu-collapsed'); localStorage.setItem("leftMenuType", 'close'); } else { body.removeClass('leftpanel-collapsed chat-view'); $('.nav-bracket li.active ul').css({display: 'block'}); $(this).removeClass('menu-collapsed'); localStorage.removeItem("leftMenuType"); } } else { if (body.hasClass('leftpanel-show')) body.removeClass('leftpanel-show'); else body.addClass('leftpanel-show'); adjustmainpanelheight(); } }); // Chat View $('#chatview').click(function () { var body = $('body'); var bodypos = body.css('position'); if (bodypos != 'relative') { if (!body.hasClass('chat-view')) { body.addClass('leftpanel-collapsed chat-view'); $('.nav-bracket ul').attr('style', ''); } else { body.removeClass('chat-view'); if (!$('.menutoggle').hasClass('menu-collapsed')) { $('body').removeClass('leftpanel-collapsed'); $('.nav-bracket li.active ul').css({display: 'block'}); } else { } } } else { if (!body.hasClass('chat-relative-view')) { body.addClass('chat-relative-view'); body.css({left: ''}); } else { body.removeClass('chat-relative-view'); } } }); reposition_topnav(); reposition_searchform(); $(window).resize(function () { if ($('body').css('position') == 'relative') { $('body').removeClass('leftpanel-collapsed chat-view'); } else { $('body').removeClass('chat-relative-view'); $('body').css({left: '', marginRight: ''}); } reposition_searchform(); reposition_topnav(); }); /* This function will reposition search form to the left panel when viewed * in screens smaller than 767px and will return to top when viewed higher * than 767px */ function reposition_searchform() { if ($('.searchform').css('position') == 'relative') { $('.searchform').insertBefore('.leftpanelinner .userlogged'); } else { $('.searchform').insertBefore('.header-right'); } } /* This function allows top navigation menu to move to left navigation menu * when viewed in screens lower than 1024px and will move it back when viewed * higher than 1024px */ function reposition_topnav() { if ($('.nav-horizontal').length > 0) { // top navigation move to left nav // .nav-horizontal will set position to relative when viewed in screen below 1024 if ($('.nav-horizontal').css('position') == 'relative') { if ($('.leftpanel .nav-bracket').length == 2) { $('.nav-horizontal').insertAfter('.nav-bracket:eq(1)'); } else { // only add to bottom if .nav-horizontal is not yet in the left panel if ($('.leftpanel .nav-horizontal').length == 0) $('.nav-horizontal').appendTo('.leftpanelinner'); } $('.nav-horizontal').css({display: 'block'}) .addClass('nav-pills nav-stacked nav-bracket'); $('.nav-horizontal .children').removeClass('dropdown-menu'); $('.nav-horizontal > li').each(function () { $(this).removeClass('open'); $(this).find('a').removeAttr('class'); $(this).find('a').removeAttr('data-toggle'); }); if ($('.nav-horizontal li:last-child').has('form')) { $('.nav-horizontal li:last-child form').addClass('searchform').appendTo('.topnav'); $('.nav-horizontal li:last-child').hide(); } } else { // move nav only when .nav-horizontal is currently from leftpanel // that is viewed from screen size above 1024 if ($('.leftpanel .nav-horizontal').length > 0) { $('.nav-horizontal').removeClass('nav-pills nav-stacked nav-bracket') .appendTo('.topnav'); $('.nav-horizontal .children').addClass('dropdown-menu').removeAttr('style'); $('.nav-horizontal li:last-child').show(); $('.searchform').removeClass('searchform').appendTo('.nav-horizontal li:last-child .dropdown-menu'); $('.nav-horizontal > li > a').each(function () { $(this).parent().removeClass('nav-active'); if ($(this).parent().find('.dropdown-menu').length > 0) { $(this).attr('class', 'dropdown-toggle'); $(this).attr('data-toggle', 'dropdown'); } }); } } } } // Sticky Header if ($.cookie('sticky-header')) $('body').addClass('stickyheader'); // Sticky Left Panel if ($.cookie('sticky-leftpanel')) { $('body').addClass('stickyheader'); $('.leftpanel').addClass('sticky-leftpanel'); } // Left Panel Collapsed if ($.cookie('leftpanel-collapsed')) { $('body').addClass('leftpanel-collapsed'); $('.menutoggle').addClass('menu-collapsed'); } // Changing Skin var c = $.cookie('change-skin'); if (c) { $('head').append(''); } // Changing Font var fnt = $.cookie('change-font'); if (fnt) { $('head').append(''); } // Check if leftpanel is collapsed if ($('body').hasClass('leftpanel-collapsed')) $('.nav-bracket .children').css({display: ''}); // Handles form inside of dropdown $('.dropdown-menu').find('form').click(function (e) { e.stopPropagation(); }); }); (function ($, window) { $.fn.contextMenu = function (settings) { return this.each(function () { // Open context menu $(this).on("contextmenu", function (e) { // return native menu if pressing control if (e.ctrlKey) return; var user_no = $(this).data("id"); $("#user_no").val(user_no); //open menu var $menu = $(settings.menuSelector) .data("invokedOn", $(e.target)) .show() .css({ position: "absolute", left: getMenuPosition(e.clientX, 'width', 'scrollLeft'), top: getMenuPosition(e.clientY, 'height', 'scrollTop') }) .off('click') .on('click', 'a', function (e) { $menu.hide(); var $invokedOn = $menu.data("invokedOn"); var $selectedMenu = $(e.target); settings.menuSelected.call(this, $invokedOn, $selectedMenu); }); return false; }); //make sure menu closes on any click $('body').click(function () { $(settings.menuSelector).hide(); }); }); function getMenuPosition(mouse, direction, scrollDir) { var win = $(window)[direction](), scroll = $(window)[scrollDir](), menu = $(settings.menuSelector)[direction](), position = mouse + scroll; // opening menu would pass the side of the page if (mouse + menu > win && menu < mouse) position -= menu; return position; } }; })($, window); $(".table td.member-id").contextMenu({ menuSelector: "#contextMenu", menuSelected: function (invokedOn, selectedMenu) { var msg = "You selected the menu item '" + selectedMenu.text() + "' on the value '" + invokedOn.text() + "'"; } }); // 회원아이디 오른쪽 클릭 메뉴 링크 function popSelMenu(menuMode) { var user_no = $("#user_no").val(); switch (menuMode) { case "memInfo" : popUserInfo(user_no) break; case "addHistory" : popUserHistory(user_no); break; case "useStore" : popUserStore(user_no); break; case "smsSend" : popUserSMS(user_no); break; case "mailSend" : popUserMail(user_no); break; default: break; } } // 구글시트 이동 function popGoogleSheet(sheetId, sheet) { if(sheetId && sheet) { //window.open('https://docs.google.com/spreadsheets/d/' + spreadSheetId + '/edit#gid=' + sheetId + '&range=B' + sheet, 'GoogleSheet'); } } // 노션페이지 팝업 function popNotion(url) { window.open(url, 'Notion'); event.stopImmediatePropagation(); } // 업무 등록 function popWorkTask(task_no) { let options = popSize(550,750); let uri = '/html/plan/work_reg.html?task_no=' + task_no; window.open(uri, 'WorkTask', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } // 업무 확인 function popWorkTaskView(task_no) { let options = popSize(550,750); let uri = '/html/plan/work_view.html?task_no=' + task_no; window.open(uri, 'WorkTask', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } // 업무 복사 (등록) function popWorkTaskDuplicate(task_no) { let options = popSize(550,750); let uri = '/html/plan/work_reg.html?duplicate_no=' + task_no; window.open(uri, 'WorkTask_' + task_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } // 완료처리 팝업 function popWorkCompTask(task_no) { let options = popSize(530,340); let uri = '/html/plan/work_comp.html?task_no=' + task_no; window.open(uri, 'WorkTaskComp_' + task_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } /* 업무 등록*/ $('#work-complete').on("click",function(){ var formData = $("#dailyTaskInput").serialize(); let breakChk = false; $(".memberTime").each(function(){ if(!$(this).val() || $(this).val() == 0 || $(this).val()=='0.0'){ $(this).val(''); $(this).focus(); breakChk = true; return false; } }); if(breakChk) { alert("작업시간은 필수 입니다."); return; } let banner = $('#banner').val() == 0 || !$('#banner').val() ? false : true; let detail = $('#detail').val() == 0 || !$('#detail').val() ? false : true; if($('#designYn').val() == 'Y' && !banner && !detail ){ alert("디자이너가 포함된경우 디자안(배너, 상세)값을 입력해 주세요."); return; } if($('#designYn').val() == 'N' && (banner || detail) ){ if(!confirm("디자이너가 포함되지 않았는데 이미지 작업건이 있습니다. 이대로 처리 하시겠습니까?")) return; }else{ if(!confirm('해당건을 처리 하시겠습니까?')) return; } $.ajax({ cache : false, url : "/html/process.html", // 요기에 type : 'POST', data : formData, success : function(data) { if(data=='Success' || data == 'Auth'){ top.opener.location.reload(); self.close(); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /* 업무 완료 복구*/ $('.work-restore').on("click",function(e){ e.stopPropagation(); let task_idx = $(this).data('idx'); let refpage = '/plan/work_reg.html'; if(!task_idx){ alert('업무관리번호가 없습니다.'); return; } if(!confirm('해당건을 복구 하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", // 요기에 type : 'POST', data : {task_idx:task_idx,mod:'restore',refpage:refpage }, success : function(data) { if(data=='Success' || data == 'Auth'){ location.reload(); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); }) // 업무일지 등록 function popPlanTask(pt_no,month) { let options = popSize(600,550); let uri = '/html/plan/daily_reg.html?pt_no=' + pt_no; if(month) uri += '&month=' + month; window.open(uri, 'PlanTask', options + ', toolbar=no, menubar=no, scrollbars=Yes, resizable=no'); } // 회원 회원정보 function popUserInfo(user_no) { window.open('/html/member/member_detail.html?user_no=' + user_no, '회원정보_' + user_no, 'width=800, height=700, toolbar=no, menubar=no, scrollbars=no, resizable=yes'); } // 회원 회원등록/수정 function popUserMember(user_no) { let options = popSize(800,510); window.open('/html/member/member_Add.html?user_no=' + user_no, '회원등록/수정', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } // 업체정보 function popCompanyInfo(com_no) { let options = popSize(800,510); window.open('/html/company/company_detail.html?com_no=' + com_no, '업체정보_' + com_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=yes'); } $('.company-id').on("click",function() { let com_no = $(this).data('idx'); if(com_no) popCompanyInfo(com_no); }) // 업체등록/수정 function popCompany(user_no) { let options = popSize(800,510); window.open('/html/company/company_add.html?com_no=' + user_no, '회원등록/수정', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no'); } // 화면중간에 팝업 띄우기 function popSize(width,height){ let left = (screen.width - width) / 2; // 가로 가운데 정렬을 위한 왼쪽 위치 계산 let top = (screen.height - height) / 2; // 세로 가운데 정렬을 위한 상단 위치 계산 let options = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top; return options; } $(document).ready(function () { //최상단 체크박스 클릭 $(".checkall").click(function () { //클릭되었으면 if ($(".checkall").prop("checked")) { //input태그의 name이 chk인 태그들을 찾아서 checked옵션을 true로 정의 $("input[name=chk]").prop("checked", true); //클릭이 안되있으면 } else { //input태그의 name이 chk인 태그들을 찾아서 checked옵션을 false로 정의 $("input[name=chk]").prop("checked", false); } }) $('.btn-toggle').click(function () { $(this).find('.btn').toggleClass('active'); if ($(this).find('.btn-primary').length > 0) { $(this).find('.btn').toggleClass('btn-primary'); } if ($(this).find('.btn-danger').length > 0) { $(this).find('.btn').toggleClass('btn-danger'); } if ($(this).find('.btn-success').length > 0) { $(this).find('.btn').toggleClass('btn-success'); } if ($(this).find('.btn-info').length > 0) { $(this).find('.btn').toggleClass('btn-info'); } $(this).find('.btn').toggleClass('btn-default'); }); /* 창 닫기 */ $('#btn-close').on("click",function(){ self.close(); }) /* 이전페이지로 */ $('#btn-back').on("click",function(){ history.go(-1); }) }); /* 게시판 관리버튼 기능 [E] */ // datepicker $(document).ready(function () { $(function () { $("#sdate").datepicker({dateFormat: 'yy-mm-dd', maxDate: ''}); $(".datepicker").datepicker({dateFormat: 'yy-mm-dd'}); }); }); // 날자 설정 function SetDate(O, S, E) { let n = new Date(); let strF = O.charAt(0); // 첫글자 let strFP = O.slice(1) * 1; // 나머지글자 let strL = O.slice(-1); // 마지막글자 let strLP = O.slice(0,-1) * 1; // 마지막글자를 제외한 let stDate, enDate = n, last; // 지난 월도 선택 if(strF=='B'){ stDate = new Date(n.getFullYear(), n.getMonth() - strFP, 1); last = (new Date(stDate.getFullYear(), stDate.getMonth() + 1, 0)).getDate(); enDate = new Date(stDate.getFullYear(), stDate.getMonth() , last); } // 지금으로 부터 몇개월 전 else if(strL=='M'){ strLP = (strLP) ? strLP - 1 : 0; stDate = new Date(n.getFullYear(), n.getMonth() - strLP, 1); } // 지난 년도 else if(strF=='Y'){ stDate = new Date(n.getFullYear() - strFP, 0, 1); enDate = new Date(stDate.getFullYear(), 11, 31); } else { switch (O) { case 'T': stDate = n; break; case '1': stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 1); enDate = stDate; break; case '7': stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 7); break; case '30': stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 30); break; } } let sdate = getDateFormat(stDate); let edate = getDateFormat(enDate); $("#"+S).val(sdate); $("#"+E).val(edate); // option : 리포트에서 클릭시 리포트로 이동 기능 report(sdate, edate, O); } function getDateFormat(currentDate) { var year = currentDate.getFullYear(); var month = ("0" + (currentDate.getMonth() + 1)).slice(-2); var day = ("0" + currentDate.getDate()).slice(-2); // YYYY-mm-dd 형식으로 날짜 구성 var formattedDate = year + "-" + month + "-" + day; return formattedDate; } function report(sdate, edate, searDateType) { if(sdate && edate) { let f=document.scform; f.searDateType.value=searDateType; f.submit(); } } // 테이블 정렬 $(document).ready(function() { // 테이블을 tablesorter로 초기화 $("#myTable").tablesorter(); }); // 엑셀다운로드 $(document).ready(function() { $('.excelDown').on('click', function(){ let targetTable = $(this).data('target'); if(!targetTable){ return '엑셀전환 테이블이 없습니다.'; } var datatodisplay = $("
").append($("#"+targetTable).clone().eq(0)).html(); $("#datatodisplay").val( $("
").append($("#"+targetTable).clone().eq(0)).html()); frm_excel_down.action = "/html/make_excel.php"; frm_excel_down.target = "ifr_pro"; frm_excel_down.submit(); }) $('.excelDownForm').on('click', function(){ let targetUrl = $(this).data('target'); if(!targetUrl){ return '엑셀파일이 없습니다.'; } var datatodisplay = $("
").append($("#"+targetUrl).clone().eq(0)).html(); $("#datatodisplay").val( $("
").append($("#"+targetUrl).clone().eq(0)).html()); location.href="/html/excelFile/"+targetUrl+'.php' /* frm_excel_down.action = "/html/excelFile/"+targetUrl+'.php'; frm_excel_down.target = "ifr_pro"; frm_excel_down.submit();*/ }) }); // cell merge function mergeCell(tableId) { // variable 정의 var first = true; var prevRowspan1 = 1; var prevCell1 = null; var prevRowspan2 = 1; var prevCell2 = null; // tr 모두 추출 var rows = $("#" + tableId + " > tbody").children(); for (var i = 0; i < rows.length; i++ ) { // first row if (first) { prevRow = rows[i]; prevCell1 = $(prevRow).find("td").eq(0); // 기간 prevCell2 = $(prevRow).find("td").eq(1); // 성별 // console.log("#############################################"); // console.log("## first row process"); // console.log("#############################################"); // console.log(prevCell1); // console.log(prevCell2); first = false; continue; } var row = rows[i]; // row var tdList = $(row).find("td"); // row > td 리스트 var firstCell = $(tdList).eq(0); // 첫 번째 행 var secondCell = $(tdList).eq(1); // 두 번째 행 var firstCellText = $(firstCell).text(); // 첫 번째 행 text 추출 var secondCellText = $(secondCell).text() // 두 번째 행 text 추출 // 두 번째 row 부터 텍스트 비교 if (prevCell1.text() == firstCellText) { if (prevCell2.text() == secondCellText) { // 성별 값 비교 prevRowspan2++; // 중복되는 값이 있으므로 rowspan +1 $(prevCell2).attr("rowspan", prevRowspan2); // 첫 번째 row의 두 번째 cell에 rowspan 추가 (성별) $(secondCell).remove(); // 중복 cell element 삭제 } else { prevRowspan2 = 1; prevCell2 = secondCell; } prevRowspan1++; $(prevCell1).attr("rowspan", prevRowspan1); $(firstCell).remove(); } else { prevRowspan1 = 1; prevRowspan2 = 1; prevCell1 = firstCell; prevCell2 = secondCell; } } } function mergeCell3(tableId) { // variable 정의 var first = true; var prevRowspan1 = 1; var prevCell1 = null; var prevRowspan2 = 1; var prevCell2 = null; var prevRowspan3 = 1; var prevCell3 = null; // tr 모두 추출 var rows = $("#" + tableId + " > tbody").children(); for (var i = 0; i < rows.length; i++ ) { // first row if (first) { prevRow = rows[i]; prevCell1 = $(prevRow).find("td").eq(0); // 1열 prevCell2 = $(prevRow).find("td").eq(1); // 2열 prevCell3 = $(prevRow).find("td").eq(2); // 3열 first = false; continue; } var row = rows[i]; // row var tdList = $(row).find("td"); // row > td 리스트 var firstCell = $(tdList).eq(0); // 첫 번째 행 var firstCellText = $(firstCell).text(); // 첫 번째 행 text 추출 var secondCell = $(tdList).eq(1); // 두 번째 행 var secondCellText = $(secondCell).text() // 두 번째 행 text 추출 var thirdCell = $(tdList).eq(2); // 두 번째 행 var thirdCellText = $(thirdCell).text() // 두 번째 행 text 추출 // 두 번째 row 부터 텍스트 비교 if (prevCell1.text() == firstCellText) { // 1열 값 비교 if (prevCell2.text() == secondCellText) { // 2열 값 비교 if (prevCell3.text() == thirdCellText) { // 3열 값 비교 prevRowspan3++; // 중복되는 값이 있으므로 rowspan +1 $(prevCell3).attr("rowspan", prevRowspan3); // 첫 번째 row의 두 번째 cell에 rowspan 추가 $(thirdCell).remove(); // 중복 cell element 삭제 } else { prevRowspan3 = 1; prevCell3 = thirdCell; } prevRowspan2++; // 중복되는 값이 있으므로 rowspan +1 $(prevCell2).attr("rowspan", prevRowspan2); // 첫 번째 row의 두 번째 cell에 rowspan 추가 $(secondCell).remove(); // 중복 cell element 삭제 } else { prevRowspan2 = 1; prevRowspan3 = 1; prevCell2 = secondCell; prevCell3 = thirdCell; } prevRowspan1++; $(prevCell1).attr("rowspan", prevRowspan1); $(firstCell).remove(); } else { prevRowspan1 = 1; prevRowspan2 = 1; prevRowspan3 = 1; prevCell1 = firstCell; prevCell2 = secondCell; prevCell3 = thirdCell; } } } /* 업무 등록/수정 팝업*/ $('.work-reg').on("click",function(e){ e.stopPropagation(); let task_idx = $(this).data('idx'); popWorkTask(task_idx); }) /* 업무 등록/수정 팝업*/ $('.work-view').on("click",function(e){ e.stopPropagation(); let task_idx = $(this).data('idx'); popWorkTaskView(task_idx); }) /* 업무 복사 팝업*/ $('.work-duplicate').on("click",function(e){ e.stopPropagation(); let task_idx = $(this).data('idx'); popWorkTaskDuplicate(task_idx); }) /* 업무 등록*/ $('#work-register').on("click",function(){ var formData = new FormData($('#dailyTaskInput')[0]); let title; $(".required").each(function(){ if(!$(this).val()){ title = $(this).parents('td').prev().text().replace(/\*/,''); $(this).focus(); return; } }); if(title){ alert(title+"의 값은 필수 입니다."); return } let channal = false; $(".channal").each(function(){ if($(this).is(':checked') == true ){ channal = true; } }); let worker = false; $(".worker").each(function(){ if($(this).is(':checked') == true ){ worker = true; } }); // 파일첨부 for (var i = 0; i < filesArr.length; i++) { // 삭제되지 않은 파일만 폼데이터에 담기 if (!filesArr[i].is_delete) { formData.append("attach_file[]", filesArr[i]); } } // 로딩바 $('#status').fadeIn(); $('#preloader').delay(200).fadeIn(); $.ajax({ cache : false, url : "/html/process.html", // 요기에 type : 'POST', async: true, data : formData, contentType: false, processData: false, headers: {'cache-control': 'no-cache', 'pragma': 'no-cache'}, success : function(data) { if(data=='Success' || data == 'Auth'){ top.opener.location.reload(); self.close(); } else { alert(data); $('#status').fadeOut(); $('#preloader').delay(200).fadeOut(); } }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /* 업무 삭제*/ $('.work-delete').on("click",function(e){ e.stopPropagation(); let task_no = $(this).data('idx') let refpage = '/plan/work_reg.html'; if(!task_no){ alert('업무관리번호가 없습니다.'); return; } if(!confirm('해당 업무를 삭제 하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : {task_no:task_no,mod:'del',refpage:refpage }, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /* 업무 작업 현황 수정 - 작업자*/ $('.work-modify-worker').on("click",function(e){ e.stopPropagation(); var formData = $("#dailyTaskInput").serialize(); if(!confirm('해당 내용으로 수정 하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : formData, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /* 업무 등록/수정 팝업*/ $('.work-complete').on("click",function(e){ e.stopPropagation(); let task_idx = $(this).data('idx'); popWorkCompTask(task_idx); }) /* 업무 완료처리*/ $('.set-complete').on("click",function(){ let task_idx = $(this).data('idx') let refpage = '/plan/work_reg.html'; if(!task_idx){ alert('업무관리번호가 없습니다.'); return; } if(!confirm('해당업무를 완료 하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : {task_idx:task_idx,PLN_STATUS:'01',mod:'complete',refpage:refpage }, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /**** 첨부파일 기능 [S] ****/ var fileNo = 0; var filesArr = new Array(); /* 첨부파일 추가 */ function addFile(obj){ var maxFileCnt = 10; // 첨부파일 최대 개수 var attFileCnt = document.querySelectorAll('.filebox').length; // 기존 추가된 첨부파일 개수 var remainFileCnt = maxFileCnt - attFileCnt; // 추가로 첨부가능한 개수 var curFileCnt = obj.files.length; // 현재 선택된 첨부파일 개수 // 첨부파일 개수 확인 if (curFileCnt > remainFileCnt) { alert("첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다."); } for (var i = 0; i < Math.min(curFileCnt, remainFileCnt); i++) { const file = obj.files[i]; // 첨부파일 검증 if (validation(file)) { // 파일 배열에 담기 var reader = new FileReader(); reader.onload = function () { filesArr.push(file); }; reader.readAsDataURL(file); // 목록 추가 let htmlData = ''; htmlData += '
'; htmlData += '

' + file.name + '

'; htmlData += ' '; htmlData += '
'; $('.file-list').append(htmlData); fileNo++; } else { continue; } } // 초기화 document.querySelector("input[type=file]").value = ""; } /* 첨부파일 검증 */ function validation(obj){ const fileTypes = [ 'application/pdf', 'image/gif', 'image/jpeg', 'image/png', 'image/bmp', 'image/tif', 'application/haansofthwp', 'application/x-hwp' , 'application/vnd.openxmlformats-officedocument.presentationml.presentation' , 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' , 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ]; if (obj.name.length > 100) { alert("파일명이 100자 이상인 파일은 제외되었습니다."); return false; } else if (obj.size > (100 * 1024 * 1024)) { alert("최대 파일 용량인 100MB를 초과한 파일은 제외되었습니다."); return false; } else if (obj.name.lastIndexOf('.') == -1) { alert("확장자가 없는 파일은 제외되었습니다."); return false; } /*else if (!fileTypes.includes(obj.type)) { alert("첨부가 불가능한 파일은 제외되었습니다."); return false; }*/ else { return true; } } /* 첨부파일 삭제 */ function deleteFile(num) { document.querySelector("#file" + num).remove(); filesArr[num].is_delete = true; } /* 첨부파일 삭제 및 DB */ $(document).on("click",'.file-delete',function(){ let f_id = $(this).data('idx'); let parent = $(this).parent(); let refpage = $('input[name=refpage]:eq(1)').val(); if(!f_id){ alert('파일번호가 없습니다.'); return; } if(!confirm('해당 파일을 삭제 하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : {f_id:f_id,mod:'file-del',refpage:refpage }, success : function(data) { if(data=='Success') { parent.remove(); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) /**** 첨부파일 기능 [E] ****/ /**** 대쉬보드 모달 기능 [S] ****/ // 스케듈 신규등록 화면 function openModal(date) { if(date) $("#SET_DTTM").val(date); $('#sidx').val(''); $('.modal-btn-del').css('display','none'); document.getElementById('myModal').style.display = 'block'; } // 스케쥴 수정 화면 var titleORG=''; $(document).on("click",'.view-modal',function(e){ let refpage = "/html/dashboard.html"; let idx = $(this).data('idx'); $.ajax({ cache : false, url : "/html/process.html", type : 'POST', dataType: 'json', data : {sidx:idx,mod:'view',refpage:refpage }, success : function(data) { if(data.response=='Success') { // 일자, 구분, 제목, 내용 $('#SET_DTTM').val(data.SET_DTTM); $('#SET_TIME').val(data.SET_TIME).prop("selected",true); $('#SS_TYPE').val(data.SS_TYPE); $('#TITLE').val(data.TITLE); titleORG = data.TITLE; $('#CONTENTS').val(data.CONTENTS); if(idx) $('#modal-btn').text('수정'); $('.sidx').val(idx); if(data.DEL=='Y') $('#modal-btn-del').css('display',''); $('#myModal').css('display','block'); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) function nl2br(str) { return str.replace(/\n/g, '
'); } $(document).on("click",'.view-modal2',function(e){ let refpage = "/html/dashboard.html"; let idx = $(this).data('idx'); $.ajax({ cache : false, url : "/html/process.html", type : 'POST', dataType: 'json', data : {sidx:idx,mod:'view',refpage:refpage }, success : function(data) { if(data.response=='Success') { console.log(data); // 구분 let ssType = ''; switch(data.SS_TYPE){ case '01' : ssType = '공휴일'; break; case '02' : ssType = '전체일정'; break; case '03' : ssType = '개인일정'; break; case '001' : ssType = '연차'; break; case '002' : ssType = '오전반차'; break; case '003' : ssType = '오후반차'; break; case '004' : ssType = '기타휴가'; break; } // 초기 셋팅 $('#SET_TIME_AREA').css("display","none"); $('#USER_NM_AREA').css("display","none"); $('#CONTENTS_AREA').css("display","none"); $('#TITLE2').text(data.TITLE); $('#SET_DTTM2').text(data.SET_DTTM); $('#SS_TYPE2').text(ssType); if(data.SET_TIME) { $('#SET_TIME_AREA').css("display",""); $('#SET_TIME2').text(data.SET_TIME); } if(data.SET_TIME) { $('#SET_TIME_AREA').css("display",""); $('#SET_TIME2').text(data.SET_TIME); } if(data.USER_NM && data.SS_TYPE != '01'&& data.SS_TYPE != '02') { $('#USER_NM_AREA').css("display",""); $('#USER_NM2').text(data.USER_NM); } if(data.CONTENTS) { $('#CONTENTS_AREA').css("display",""); $('#CONTENTS2').html(nl2br(data.CONTENTS)); } $('#myModal-view').css('display','block'); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) // 스케쥴 승인취소 $(document).on("click",'.btn-agree-cancel',function(e){ e.stopPropagation(); let sidx = $(this).data('idx'); let refpage = "/html/member/member_leave.html"; let $this = $(this); if(!confirm('승인을 취소하시겠습니까?')) return; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : {sidx:sidx,mod:'cancel',refpage:refpage }, success : function(data) { if(data=='Success') { $this.removeClass('btn-danger btn-agree-cancel'); $this.addClass('btn-warning btn-agree-set'); $this.text('숭인대기'); $this.parent().parent().addClass('sch-table-bg'); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ }) // 스케쥴 승인 $(document).on("click",'#modal-btn-agree',function(e){ var formData = $("#leave-agree").serialize(); let $this = $(this); $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : formData, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ // 모달 닫기 closeModal(); }) // 스케쥴 수정 화면 $(document).on("click",'.btn-agree-set',function(e){ e.stopPropagation(); let sidx = $(this).data('idx'); agreeModal(sidx); }) function agreeModal(idx) { let refpage = "/html/member/member_leave.html"; $.ajax({ cache : false, url : "/html/process.html", type : 'POST', dataType: 'json', data : {sidx:idx,mod:'view',refpage:refpage }, success : function(data) { if(data.response=='Success') { // 일자, 구분, 제목, 내용 $('#leave-date').text(data.SET_DTTM); $('#leave-user').text(data.USER_NM); $('#leave-type').text(data.TITLE); $('#leave-count').val(data.LEAVE_COUNT); $('#leave-contents').text(data.CONTENTS); $('#sidx').val(idx); if(data.DEL=='Y') $('#modal-btn-del').css('display',''); $('#myModalAgree').css('display','block'); } else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ } // 모달창 닫기 function closeModal() { document.getElementById("leave-register").reset(); $('.modal').css('display','none'); } // 스케쥴 구분에 따른 설정 변경 function changeTitle() { var typeSelect = document.getElementById('SS_TYPE'); let titleInput = document.getElementById('TITLE'); let pattern = /00/g; // 구분값이 연차가 아닐때 if (pattern.test(typeSelect.value) === false) { titleInput.value = titleORG; titleInput.readOnly = false; $('#sch-member').css('display','none'); $('#sch-time').css('display',''); } // 구분값이 연차일때 else { titleInput.value = typeSelect.options[typeSelect.selectedIndex].text; titleInput.readOnly = true; $('#sch-member').css('display',''); $('#sch-time').css('display','none'); } } // 스케쥴 등록 function submitSchedule() { var formData = $("#leave-register").serialize(); let setDate = $("#SET_DTTM").val(); let setTitle = $("#TITLE").val(); if(!setDate){ alert('날짜를 입력해 주세요.'); return; } if(!setTitle){ alert('제목을 입력해 주세요.'); return; } $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : formData, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ // 모달 닫기 closeModal(); } // 스케쥴 삭제 function submitFormDel() { let refpage = "/html/dashboard.html"; let idx = $('#sidx').val(); $.ajax({ cache : false, url : "/html/process.html", type : 'POST', data : {sidx:idx,mod:'del',refpage:refpage }, success : function(data) { if(data=='Success') location.reload(); else alert(data); }, // success error : function(xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ // 모달 닫기 closeModal(); } /**** 대쉬보드 모달 기능 [E] ****/ /**** 회원 로그인 - 최고관리자 [S] ****/ $('.member-id').on("click",function(){ let refpage = "/getAdmin"; let midx = $(this).data('id'); if(midx) { $.ajax({ cache: false, url: "/html/process.html", type: 'POST', data: {midx: midx, refpage: refpage}, success: function (data) { if (data == 'Success') location.href = "/"; else alert(data); }, // success error: function (xhr, status) { alert(xhr + " : " + status); } }); // $.ajax */ } }); /**** 회원 로그인 - 최고관리자 [E] ****/ /* ------------------------------ SCREENFULL JS ------------------------------ */ $('.screenfull-btn').on('click', function(){ if (screenfull.enabled) { screenfull.toggle(); } return false; });