// global socketio $(document).ready(function(){ ResizeTextArea(); }); $(document).ready(function(){ $('.loading').hide(); }) .ajaxStart(function(){ $('.loading').show(); }) .ajaxStop(function(){ $('.loading').hide(); }); var protocol = window.location.protocol; var frameSocket = io.connect(protocol + "//" + document.domain + ":" + location.port + "/framework"); console.log(frameSocket); frameSocket.on('notify', function(data){ $.notify({ message : data['msg'], url: data['url'], target: '_self' },{ type: data['type'], z_index: 2000, }); }); frameSocket.on('modal', function(data){ m_modal(data.data, data.title, false); }); frameSocket.on('loading_hide', function(data){ $('#loading').hide(); }); frameSocket.on('refresh', function(data){ console.log('data') window.location.reload(); }); $('#command_modal').on('hide.bs.modal', function (e) { //e.preventDefault(); 있으면 동작 안함. console.log("ff global command_modal hide.bs.modal CATCH") $.ajax({ url: `/global/ajax/command_modal_hide`, type: 'POST', cache: false, data: {}, dataType: 'json' }); }); /////////////////////////////////////// // Global - 버튼 /////////////////////////////////////// $("body").on('click', '#globalOpenBtn', function(e) { e.preventDefault(); url = $(this).data('url') window.open(url, "_blank"); }); $("body").on('click', '#globalLinkBtn', function(e) { e.preventDefault(); url = $(this).data('url') window.location.href = url; }); // global_link_btn 모두 찾아 변경 $("body").on('click', '#globalSettingSaveBtn', function(e){ e.preventDefault(); globalSettingSave(); }); function globalSettingSave() { var formData = getFormdata('#setting'); $.ajax({ url: '/' + PACKAGE_NAME + '/ajax/setting_save', type: "POST", cache: false, data: formData, dataType: "json", success: function (ret) { if (ret) { $.notify('설정을 저장하였습니다.', { type: 'success' }); } else { $.notify('설정 저장에 실패하였습니다.', { type: 'warning' }); } } }); } $("body").on('click', '#globalEditBtn', function(e) { e.preventDefault(); file = $(this).data('file'); console.log(file); $.ajax({ url: '/global/ajax/is_available_edit', type: "POST", cache: false, data: {}, dataType: "json", success: function (ret) { if (ret.ret) { window.open('/flaskcode?open=' + file, ret.target); } else { notify('편집기 플러그인을 설치해야 합니다.', 'warning'); } } }); }); $("body").on('click', '#globalCliboardBtn', function(e) { e.preventDefault(); window.navigator.clipboard.writeText($(this).data('text')); notify("클립보드에 복사하였습니다.", "success"); }); // 사용 on / off $("body").on('change', '#globalSchedulerSwitchBtn', function(e) { e.preventDefault(); var ret = $(this).prop('checked'); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/scheduler', type: "POST", cache: false, data: {scheduler : ret}, dataType: "json", success: function () {} }); }); $("body").on('change', '#globalSchedulerSwitchPageBtn', function(e) { var ret = $(this).prop('checked'); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/' + PAGE_NAME + '/scheduler', type: "POST", cache: false, data: {scheduler : ret}, dataType: "json", success: function () {} }); }); $("body").on('click', '#globalOneExecuteBtn', function(e) { e.preventDefault(); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/one_execute', type: "POST", cache: false, data: {}, dataType: "json", success: function (ret) { if (ret=='scheduler' || ret=='thread') { $.notify('작업을 시작하였습니다. ('+ret+')', { type: 'success' }); } else if (ret == 'is_running') { $.notify('작업중입니다.', { type: 'warning' }); } else { $.notify('작업 시작에 실패하였습니다.', { type: 'warning' }); } } }); }); $("body").on('click', '#globalOneExecutePageBtn', function(e) { e.preventDefault(); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/' + PAGE_NAME + '/one_execute', type: "POST", cache: false, data: {sub:sub}, dataType: "json", success: function (ret) { if (ret=='scheduler' || ret=='thread') { $.notify('작업을 시작하였습니다. ('+ret+')', { type: 'success' }); } else if (ret == 'is_running') { $.notify('작업중입니다.', { type: 'warning' }); } else { $.notify('작업 시작에 실패하였습니다.', { type: 'warning' }); } } }); }); $("body").on('click', '#globalImmediatelyExecuteBtn', function(e){ e.preventDefault(); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/immediately_execute', type: "POST", cache: false, data: {}, dataType: "json", success: function (ret) { if (ret.msg != null) notify(ret.msg, ret.ret); } }); }); $("body").on('click', '#globalImmediatelyExecutePageBtn', function(e){ e.preventDefault(); $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/' + PAGE_NAME + '/immediately_execute', type: "POST", cache: false, data: {}, dataType: "json", success: function (ret) { if (ret.msg != null) notify(ret.msg, ret.ret); } }); }); $("body").on('click', '#globalDbDeleteBtn', function(e){ e.preventDefault(); document.getElementById("confirm_title").innerHTML = "DB 삭제"; document.getElementById("confirm_body").innerHTML = "전체 목록을 삭제 하시겠습니까?"; $('#confirm_button').attr('onclick', "globalDbDelete();"); $("#confirm_modal").modal(); return; }); function globalDbDelete() { $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/reset_db', type: "POST", cache: false, data: {}, dataType: "json", success: function (data) { if (data) { $.notify('삭제하였습니다.', { type: 'success' }); } else { $.notify('삭제에 실패하였습니다.',{ type: 'warning' }); } } }); } $("body").on('click', '#globalDbDeletePageBtn', function(e){ e.preventDefault(); document.getElementById("confirm_title").innerHTML = "DB 삭제"; document.getElementById("confirm_body").innerHTML = "전체 목록을 삭제 하시겠습니까?"; $('#confirm_button').attr('onclick', "globalDbDeletePage();"); $("#confirm_modal").modal(); return; }); function globalDbDeletePage() { $.ajax({ url: '/'+PACKAGE_NAME+'/ajax/' + MODULE_NAME + '/' + PAGE_NAME + '/reset_db', type: "POST", cache: false, data: {sub:sub}, dataType: "json", success: function (data) { if (data) { $.notify('삭제하였습니다.', { type: 'success' }); } else { $.notify('삭제에 실패하였습니다.',{ type: 'warning' }); } } }); } /////////////////////////////////////// // Global - 함수 /////////////////////////////////////// function globalSendCommand(command, arg1, arg2, arg3, modal_title, callback) { console.log("globalSendCommand [" + command + '] [' + arg1 + '] [' + arg2 + '] [' + arg3 + '] [' + modal_title + '] [' + callback + ']'); console.log('/' + PACKAGE_NAME + '/ajax/' + MODULE_NAME + '/command'); $.ajax({ url: '/' + PACKAGE_NAME + '/ajax/' + MODULE_NAME + '/command', type: "POST", cache: false, data:{command:command, arg1:arg1, arg2:arg2, arg3}, dataType: "json", success: function (ret) { if (ret.msg != null) notify(ret.msg, ret.ret); if (ret.modal != null) showModal(ret.modal, modal_title, false); if (ret.json != null) showModal(ret.json, modal_title, true); if (callback != null) callback(ret); } }); } function globalSendCommandPage(command, arg1, arg2, arg3, modal_title, callback) { console.log("globalSendCommandPage [" + command + '] [' + arg1 + '] [' + arg2 + '] [' + arg3 + '] [' + modal_title + '] [' + callback + ']'); console.log('/' + PACKAGE_NAME + '/ajax/' + MODULE_NAME + '/command'); $.ajax({ url: '/' + PACKAGE_NAME + '/ajax/' + MODULE_NAME + '/' + PAGE_NAME + '/command', type: "POST", cache: false, data:{command:command, arg1:arg1, arg2:arg2, arg3}, dataType: "json", success: function (ret) { if (ret.msg != null) notify(ret.msg, ret.ret); if (ret.modal != null) m_modal(ret.modal, modal_title, false); if (ret.json != null) m_modal(ret.json, modal_title, true); if (callback != null) callback(ret); } }); } function shutdown_confirm() { $("#confirm_title").html("종료 확인"); $("#confirm_body").html("종료 하시겠습니까?"); $('#confirm_button').attr('onclick', 'window.location.href = "/system/shutdown";'); $("#confirm_modal").modal(); } /////////////////////////////////////// // 리스트 화면 기본 /////////////////////////////////////// function globalRequestSearch(page, move_top=true) { var formData = getFormdata('#form_search') formData += '&page=' + page; $.ajax({ url: '/' + PACKAGE_NAME + '/ajax/' + MODULE_NAME + '/web_list', type: "POST", cache: false, data: formData, dataType: "json", success: function (data) { current_data = data; if (move_top) window.scrollTo(0,0); make_list(data.list) make_page_html(data.paging) } }); } function make_page_html(data) { str = ' \
\