/*-------------------------------------- 비즈마루 공통 스크립트 --------------------------------------*/ /* Article Manager Modal */ function close_modal_and_reload() { window.closeModal = function(){ $('.article-modal-edit').modal('hide'); }; document.location.reload(); } function article_modal_setting(obj) { var aid = $(obj).attr("article-id"); $('#modal_setting_'+aid).modal('show').on('hidden.bs.modal', function () { $('html').css({overflow: ''}); }); $('#modal_setting_'+aid).modal('show').on('shown.bs.modal', function () { $('html').css({overflow: 'hidden'}); }); return false; } function article_modal_editor(obj) { var aid = $(obj).attr("article-id"); $('#modal_editor_'+aid).modal('show').on('hidden.bs.modal', function () { $('html').css({overflow: ''}); }); $('#modal_editor_'+aid).modal('show').on('shown.bs.modal', function () { $('html').css({overflow: 'hidden'}); }); return false; } function article_modal_contact(obj) { var aid = $(obj).attr("article-id"); $("input[name=contact_article_id").val(aid); $("#contactform input[name=name]").val(""); $("#contactform input[name=email]").val(""); $("#contactform input[name=subject]").val(""); $("#contactform textarea[name=memo]").val(""); $('#modal_contact').modal('show').on('hidden.bs.modal', function () { $('html').css({overflow: ''}); }); $('#modal_contact').modal('show').on('shown.bs.modal', function () { $('html').css({overflow: 'hidden'}); }); return false; } window.closeModal = function(url){ $('.article-modal-edit').modal('hide'); document.location.href = url; }; function contact_submit() { //alert($("#contactform").attr("action")); var act = $("#contactform").attr("action"); $.post(act,$("#contactform").serialize(), function (result) { if(result.result == "OK") { alert("문의 접수 되었습니다"); //$('#modal_contact').closeModal(); $('.article-modal-contact').modal('hide'); //window.closeModal(); } },"json"); } function save_article_data(aid) { var post_data = new Array(); var post_url = $("#"+aid).attr("action-url"); post_data.push("act=article_save"); post_data.push("aid="+aid); $("#"+aid+" .editItem").each( function () { var dn = $(this).attr("data-name"); var dv = $(this).html(); post_data.push(dn+"="+encodeURIComponent(dv)); }); var dn = dv = dtype = ""; $("#"+aid+" .editImage").each( function () { dn = dv = ""; dtype = $(this).attr("data-type"); if(dtype == "imgsrc") { // 이미지 이름 저장 dn = $(this).attr("data-name"); dv = $(this).attr("data-value"); } else if(dtype == "imgsrc_edit") { // 업로드 이미지 저장 dn = $(this).attr("data-name")+"|img|"+$(this).attr("img-ext"); dv = $(this).attr("src"); } else if(dtype == "imgdiv") { // 기존 데이터 보존을 위해 기존정보 그대로 전달 if($(this).attr("data-name") == "partner-image") { dn = $(this).attr("data-name")+"[]"; } else { dn = $(this).attr("data-name"); } dv = $(this).attr("data-value"); } else if(dtype == "imgdiv_edit") { // 이미지 업로드 되었으므로 div 데이터는 저장하면 안됨 return; } else if(dtype == "img") { // div 안에 있는 업로드된 이미지 저장 if($(this).attr("data-name") == "partner-image") { if($(this).attr("data-idx") != "") { dn = $(this).attr("data-name")+'[change][idx]'; dv = $(this).attr("data-idx"); post_data.push(dn+"="+encodeURIComponent(dv)); dn = $(this).attr("data-name")+'[change][src]'; dv = $(this).attr("src"); } else { dn = $(this).attr("data-name")+'[new][seq]'; dv = $(this).attr("data-seq"); post_data.push(dn+"="+encodeURIComponent(dv)); dn = $(this).attr("data-name")+'[new][src]'; dv = $(this).attr("src"); } } else { var dname = $(this).attr("data-name"); dn = dname+"|img|"+$(this).attr("img-ext"); dv = $(this).attr("src"); } } else { // 일반 텍스트 dn = $(this).attr("data-name"); dv = $(this).html(); } if(dn != "") { post_data.push(dn+"="+encodeURIComponent(dv)); } }); $.post(post_url,post_data.join("&"), function (result) {}); } function set_article_edit_mode($article) { var aid = $article.attr("id"); var $editItem = $("#"+aid+" .editItem"); var $editImage = $("#"+aid+" .editImage"); var $btn = $("#"+aid+" .btn_edit"); $article.data("isEdit",true); $btn.html('편집완료'); $(".btn_edit_cancel[article-id="+aid+"]").removeClass("hide"); $editItem.each( function () { this.contentEditable = true; if($(this).data("org") == undefined) $(this).data("org",$(this).html()); //$(this).css("display","inline-block"); }); $editImage.each( function () { if($(this).attr("data-type") == "imgsrc") { if($(this).data("org") == undefined) $(this).data("org",$(this).attr("src")); } else { if($(this).data("org") == undefined) $(this).data("org",$(this).html()); } $(this).addClass("imgEditing"); //$(this).css("display","inline-block"); }); $("#"+aid+" .imgItem").addClass("active"); } function article_edit_exit($article,onlyChangeMode) { var aid = $article.attr("id"); var isEdit = $article.data("isEdit"); if(isEdit) { if(!confirm("변경내용을 취소 하시겠습니까 ?")) return false; // 편집모드이면 기존데이터를 불러와서 채움 $("#"+aid+" .editItem").each( function () { if($(this).data("org") != undefined) { $(this).html($(this).data("org")); } }); $("#"+aid+" .editImage").each( function () { if($(this).data("org") != undefined) if($(this).attr("data-type") == "imgsrc" || $(this).attr("data-type") == "rimg_edit") { $(this).attr("src",$(this).data("org")); $(this).attr("data-type","imgsrc"); } else { $(this).html($(this).data("org")); } }); } set_article_view_mode($article,onlyChangeMode); } function set_article_view_mode($article,onlyChangeMode) { var aid = $article.attr("id"); var $btn = $("#"+aid+" .btn_edit"); var $editItem = $("#"+aid+" .editItem"); var $editImage = $("#"+aid+" .editImage"); $article.data("isEdit",false); $btn.html('편집'); $(".btn_edit_cancel[article-id="+aid+"]").addClass("hide"); $editItem.each( function () { this.contentEditable = false; //$(this).css("display",""); }); $editImage.each( function () { $(this).removeClass("imgEditing"); //$(this).css("display",""); }); $("#"+aid+" .imgItem").removeClass("active"); if(!onlyChangeMode) { $article.removeClass("active"); // 아티클 매니저버튼 보이기 $(".article-manager-btn[article-id="+aid+"]").show(); } } function image_drop(e,$obj) { var aid = $obj.attr("article-id"); var isEdit = $("#"+aid).data("isEdit"); if(isEdit == undefined || isEdit == false) return; var dtype = $obj.attr("data-type"); // Stop the default action, which is to redirect the page // To the dropped file var files = e.dataTransfer.files; // For each file $.each(files, function(index, file) { // Some error messaging if (!files[index].type.match('image.*')) { alert('이미지 파일만 업로드 가능 합니다'); return false; } // Start a new instance of FileReader var fileReader = new FileReader(); var img = document.createElement("img"); // When the filereader loads initiate a function fileReader.onload = (function(file) { return function(e) { if(dtype=="imgsrc") { // img 태그에 드랍됨 $obj.attr("data-type","imgsrc_edit"); $obj.attr("img-ext",$(file.name.split(".")).get(-1)); $obj.attr("src",e.target.result); } else if(dtype == "imgdiv") { // img 태그의 부모 div에 드랍됨 img.src = e.target.result; $(img).attr("data-name",$obj.attr("data-name")); $(img).attr("data-type","img"); $(img).attr("img-ext",$(file.name.split(".")).get(-1)); $(img).addClass("editImage"); $obj.children("img").remove(); $obj.append(img); $obj.attr("data-type","imgdiv_edit"); } }; })(files[index]); // For data URI purposes fileReader.readAsDataURL(file); }); } $(document).ready( function () { $(".btn_edit").click( function () { var aid = $(this).attr("article-id"); var $article = $("#"+aid); if($article.data("isEdit") == "undefined" || !$article.data("isEdit")) { set_article_edit_mode($article); } else { set_article_view_mode($article,true); // save data save_article_data(aid); } }); $(".btn_edit_cancel").click( function () { var aid = $(this).attr("article-id"); var $article = $("#"+aid); article_edit_exit($article,true); }); $(".article-manager-btn").click( function () { var aid = $(this).attr("article-id"); var $article = $("#"+aid); $article.addClass("active"); // 아티클 매니저버튼 감추기 $(this).hide(); }); $(".btn_config").click( function (e) { e.preventDefault(); var aid = $(this).attr("article-id"); var post_url = $(this).attr("post-url"); var $fm = $("#fmc_"+aid); $.post(post_url,$fm.serialize(), function (result) { if(result.result == "OK") { alert("적용 되었습니다"); //close_modal(); location.reload(); } else { alert(result); } },"json") }); $(".btn_ac_editor").click( function (e) { e.preventDefault(); article_modal_editor(this); }); $(".btn_ac_setting").click( function (e) { e.preventDefault(); article_modal_setting(this); }); $(".btn_ac_contact").click( function (e) { e.preventDefault(); article_modal_contact(this); }); $(".btn_ac_close").click( function (e) { e.preventDefault(); var aid = $(this).attr("article-id"); var $article = $("#"+aid); article_edit_exit($article,false); }); $(".btn_modal_ac_close").click( function (e) { e.preventDefault(); var aid = $(this).attr("article-id"); var $article = $("#"+aid); article_edit_exit($article,false); }); });