/**
* Created by quvsoftware on 2019-07-25.
*/
/**
* Created by Gram.Sim on 2018-03-07.
*/
/* WRITE FORM */
function initWriteForm(bid, callback) {
var arr_auth = auth.split(',');
if ($.inArray('1', arr_auth) >= 0
|| $.inArray('2', arr_auth) >= 0
|| $.inArray('30', arr_auth) >= 0) {
var html = '
';
html += '';
html += '' + lang.notice +'';
html += '
';
$(CKEDITOR.instances['write-content-textarea'].getSelection().getStartElement().$).after(html);
}
else {
var html = CKEDITOR.instances['write-content-textarea'].getData();
html += '
';
CKEDITOR.instances['write-content-textarea'].setData(html);
}
/* 2020.02.11 재헌
* 첨부 이미지 프로세스 변경
*/
var imageItem = '
');
if (content.find('img').length > 0) {
$.each(content.find('img'), function () {
var id = qv_func.randomId();
this.id = id;
if ($(this).hasClass('board-thumbnail')) {
var imageItem = '
' +
'
' +
'
';
} else {
var imageItem = '
' +
'
' +
'
';
}
$('.write-upload-images-list').append(imageItem);
});
$('.write-upload-images').show();
}
CKEDITOR.instances['write-content-textarea'].setData(content.html());
if (data.category == null || data.category == '' || data.category == undefined) {
$('.write-category-select option[value="0"]').prop('selected',true);
}
else {
$('.write-category-select option[value=' + data.category + ']').prop('selected',true);
}
// 댓글은 공지로 지정할 수 없음
if (data.reply.length > 0) {
$('#write-title-options-notice').prop('disabled', true);
}
}
function setCategory(callback) {
qvjax_direct(
"select_board_category",
"/module/board/board.php",
'bid=' + __BID,
function (data) {
if (data.length > 0) {
$('.write-category-select option').remove();
$.each(data, function() {
var html = '';
$('.write-category-select').append(html);
});
}
callback();
},
function (xhr) {}
);
}
function setAttachments(bid, aid, callback) {
qvjax_direct(
"select_board_file",
"/module/board/board.php",
'bid=' + bid + '&aid=' + aid,
function (data) {
$('.write-attachments-list ul li').remove();
if (data.length > 0) {
var html = '
' + lang.attachment +'
';
$.each(data, function() {
html += '
' +
'
' + this.file_name + '
' +
'
' + bytesToSize(this.file_size) + '
' +
'
clear
' +
'
';
});
$('.write-attachments-list ul').children('li').remove();
$('.write-attachments-list ul').find('.write-attatchments-title').remove();
$('.write-attachments-list ul').append(html);
}
callback();
},
function (xhr) {}
);
}
function bytesToSize(bytes) {
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
if (bytes == 0) return '0 Byte';
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
}
function generateRandomId() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 6; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
$('.write-body').delegate('.write-attachments-delete', 'click', function() {
var fid = $(this).parents('li')[0].id;
var ftype = $(this).parents('li').data('type');
var result = confirm(lang.remove_attachment);
if(result) {
$.ajax({
type: "POST",
url: "//" + QV_BASE_OBJ.dev + "g" + QV_BASE_OBJ.svid + "m.quv.kr" + "/aws/board_remove_file.php",
data: 'stid=' + QV_BASE_OBJ.stid + '&bid=' + __BID + '&fid=' + fid + '&ftype=' + ftype,
dataType: "json",
success: function (data) {
if (data) {
setAttachments(__BID, __AID, function() {
alert(lang.remove_complete);
});
}
},
error: function (xhr) {
}
});
}
});
$('#main_container').delegate('.write-button-confirm', 'click', function() {
var result = [];
var obj = new Object();
if ($('.write-service input').length > 0 || __SERVICE == 1) {
if (!$('.write-service input').prop('checked')) {
alert(lang.agree_privacy_info);
return;
}
}
// 수정
if (__W.toLowerCase() == 'u' &&(__AID != '' && __AID != undefined)) {
obj.bid = __BID;
obj.aid = __AID;
obj.category = $('.write-category-select option:selected').val();
obj.subject = $('#write-title-input').val();
obj.content = CKEDITOR.instances['write-content-textarea'].getData();
obj.password = $('#write-nonmember-options-password').val();
obj.is_secret = $('#write-title-options-secret').prop('checked') ? 1 : 0;
if ($('#write-title-options-notice').length > 0) {
obj.is_notice = $('#write-title-options-notice').prop('checked') ? 1 : 0;
if ($('.write-body').data('article').reply.length > 0) {
obj.is_notice = 0;
}
}
if (obj.subject.trim() == '') {
alert(lang.enter_subject); return;
}
else if (obj.content.trim() == '') {
alert(lang.enter_contents); return;
}
$('#loading-mask').addClass('loading-mask-show');
result.push(obj);
// 게시글 업데이트 시 권한을 다시 한 번 확인한다.
checkAuth(obj.bid, obj.aid,
function() {
qvjax_direct(
"update_board_article",
"/module/board/board.php",
'json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data) {
$('#loading-mask').removeClass('loading-mask-show');
if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
alert(lang.complete_modify);
location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + __AID + "&pn=" + __PN;
}
$('#loading-mask').removeClass('loading-mask-show');
}
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
);
},
function() { $('#loading-mask').removeClass('loading-mask-show'); alert(lang.no_permission); },
function() {
var password = $('.write-body').data('password');
var article_array = [];
var article_obj = new Object();
article_obj.aid = obj.aid;
article_obj.bid = obj.bid;
article_obj.password = password;
article_array.push(article_obj);
checkArticlePassword(
article_array,
function() {
qvjax_direct(
"update_board_article",
"/module/board/board.php",
'json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data) {
$('#loading-mask').removeClass('loading-mask-show');
if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
alert(lang.complete_modify);
location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + __AID + "&pn=" + __PN;
}
$('#loading-mask').removeClass('loading-mask-show');
}
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
);
},
function() {
alert(lang.invalid_password);
parent.history.back();
}
);
}
);
}
// 답글
else if (__W.toLowerCase() == 'r' &&(__AID != '' && __AID != undefined)) {
// 회원
if ($('.write-body').data('type') == 'member') {
var aid = generateRandomId();
obj.bid = __BID;
obj.aid = aid;
obj.category = $('.write-body').data('article').category;
obj.subject = $('#write-title-input').val();
obj.content = CKEDITOR.instances['write-content-textarea'].getData();
obj.is_secret = $('#write-title-options-secret').prop('checked') ? 1 : 0;
if (obj.subject.trim() == '') {
alert(lang.enter_subject); return;
}
else if (obj.content.trim() == '') {
alert(lang.enter_contents); return;
}
$('#loading-mask').addClass('loading-mask-show');
result.push(obj);
qvjax_direct(
"insert_board_reply",
"/module/board/board.php",
'pid=' + __AID + '&json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data) {
$('#loading-mask').removeClass('loading-mask-show');
if (data.message == 'ERROR' && data.code == 1355) {
alert(lang.no_more_reply);
}
else if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
pushNotification('', obj.subject, 'board');
alert(lang.complete_regist);
location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + aid + "&pn=" + __PN;
}
$('#loading-mask').removeClass('loading-mask-show');
}
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
);
}
// 비회원
else {
var aid = generateRandomId();
obj.bid = __BID;
obj.aid = aid;
obj.category = $('.write-body').data('article').category;
obj.subject = $('#write-title-input').val();
//obj.content = encodeURIComponent(CKEDITOR.instances['write-content-textarea'].getData());
obj.content = CKEDITOR.instances['write-content-textarea'].getData();
obj.writer = $('#write-nonmember-options-writer').val();
obj.password = $('#write-nonmember-options-password').val();
obj.is_secret = $('#write-title-options-secret').prop('checked') ? 1 : 0;
if (obj.subject.trim() == '') {
alert(lang.enter_subject); return;
}
else if (obj.writer.trim() == '') {
alert(lang.enter_writer); return;
}
else if (obj.content.trim() == '') {
alert(lang.enter_contents); return;
}
$('#loading-mask').addClass('loading-mask-show');
result.push(obj);
qvjax_direct(
"insert_board_reply_nonmember",
"/module/board/board.php",
'pid=' + __AID + '&json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data) {
$('#loading-mask').removeClass('loading-mask-show');
if (data.message == 'ERROR' && data.code == 1355) {
alert(lang.no_more_reply);
}
else if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
pushNotification('', obj.subject, 'board');
alert(lang.complete_regist);
//location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + aid;
// 비회원 글 작성 완료 시 목록으로 이동하도록 수정
redirectPrevPage();
}
$('#loading-mask').removeClass('loading-mask-show');
}
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
);
}
}
// 신규
else {
// 회원upload
if ($('.write-body').data('type') == 'member') {
obj.aid = __AID;
obj.bid = __BID;
obj.category = $('.write-category-select option:selected').val();
obj.subject = $('#write-title-input').val();
obj.content = CKEDITOR.instances['write-content-textarea'].getData();
obj.views = 0;
obj.hits = 0;
obj.is_secret = $('#write-title-options-secret').prop('checked') ? 1 : 0;
obj.is_notice = $('#write-title-options-notice').prop('checked') ? 1 : 0;
obj.parent = 1;
obj.is_comment = 0;
obj.comment = 0;
if (obj.subject.trim() == '') {
alert(lang.enter_subject); return;
}
else if (obj.content.trim() == '') {
alert(lang.enter_contents); return;
}
$('#loading-mask').addClass('loading-mask-show');
result.push(obj);
qvjax_direct(
"insert_board_article",
"/module/board/board.php",
'json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
pushNotification('', obj.subject, 'board');
qv_func.conversion('board', function() {
alert(lang.complete_regist);
location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + __AID + "&pn=" + __PN;
});
}
$('#loading-mask').removeClass('loading-mask-show');
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
);
}
// 비회원
else {
obj.aid = __AID;
obj.bid = __BID;
obj.category = $('.write-category-select option:selected').val();
obj.subject = $('#write-title-input').val();
//obj.content = encodeURIComponent(CKEDITOR.instances['write-content-textarea'].getData());
obj.content = CKEDITOR.instances['write-content-textarea'].getData();
obj.views = 0;
obj.hits = 0;
obj.writer = $('#write-nonmember-options-writer').val();
obj.password = $('#write-nonmember-options-password').val();
obj.is_secret = $('#write-title-options-secret').prop('checked') ? 1 : 0;
obj.parent = 1;
obj.is_comment = 0;
obj.comment = 0;
if (obj.subject.trim() == '') {
alert(lang.enter_subject); return;
}
else if (obj.writer.trim() == '') {
alert(lang.enter_writer); return;
}
else if (obj.content.trim() == '') {
alert(lang.enter_contents); return;
}
else if (obj.password.trim() == '') {
alert(lang.enter_password); return;
}
else if (obj.password.length > 20) {
alert(lang.invalid_password_limit); return;
}
$('#loading-mask').addClass('loading-mask-show');
result.push(obj);
qvjax_direct(
"insert_board_article_nonmember",
"/module/board/board.php",
'json_result=' + encodeURIComponent(JSON.stringify(result)),
function (data) {
if (data.message == 'ERROR') {
alert(lang.no_permission);
}
else {
pushNotification('', obj.subject, 'board');
qv_func.conversion('board', function() {
alert(lang.complete_regist);
//location.href = "/module/board/read_form.html?bid=" + __BID + "&aid=" + __AID + "&pn=" + __PN;
// 비회원 글 작성 완료 시 목록으로 이동하도록 수정
redirectPrevPage();
});
}
$('#loading-mask').removeClass('loading-mask-show');
},
function (xhr) {
$('#loading-mask').removeClass('loading-mask-show');
}
)
}
}
});
// $('#write-title-options-secret').change(function() {
// if($(this).is(":checked")) {
// $('#write-nonmember-options-password').show();
// }
// else {
// $('#write-nonmember-options-password').hide();
// }
// });
$("#WritePasswordCheckModal").delegate("#WritePasswordCheckModalBtnSave", "click", function(e) {
var password = $('#WritePasswordCheck').val();
var array = [];
var obj = new Object();
obj.aid = __AID;
obj.bid = __BID;
obj.password = password;
array.push(obj);
checkArticlePassword(
array,
function() {
initModifyForm($('.write-body').data('article'));
$('.write-body').data('password', obj.password);
$('#WritePasswordCheckModal').data('certification', true);
$('#WritePasswordCheckModal').modal('hide');
},
function() {
$('#WritePasswordCheckModal').data('certification', false);
alert(lang.invalid_password);
parent.history.back();
});
// qvjax_direct(
// "check_board_article_password",
// "/module/board/board.php",
// 'json_result=' + encodeURIComponent(JSON.stringify(array)),
// function (data) {
// if (data > 0) {
// initModifyForm($('.write-body').data('article'));
// $('.write-body').data('password', obj.password);
// $('#WritePasswordCheckModal').data('certification', true);
// $('#WritePasswordCheckModal').modal('hide');
// }
// else {
// $('#WritePasswordCheckModal').data('certification', false);
// alert(lang.invalid_password);
// parent.history.back();
// }
// },
// function (xhr) { }
// );
});
$("#WritePasswordCheckModal").on('hide.bs.modal', function () {
if (!$('#WritePasswordCheckModal').data('certification')) {
parent.history.back();
}
});
// 비디오 클립
$('.write-videos').on('click', function() {
$('#WriteVideoModal').modal('show');
});
$(".modal").delegate("#WriteVideoModalBtnSave", "click", function(e) {
// url 변경
var videoUrl = $('#video-url').val();
if (videoUrl.trim() != "") {
var pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
var pattern2 = /(?:http?s?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g;
var pattern3 = /([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))/gi;
var videoId = '';
// youtube
if (pattern2.test(videoUrl) && (videoUrl.indexOf('//www.youtube.com/watch') > -1 || videoUrl.indexOf('//youtu.be/') > -1)) {
var replacement = 'https://www.youtube.com/embed/$1';
var replacementUrl = videoUrl.replace(pattern2, replacement);
videoId = videoUrl.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
videoId = videoId[1];
var videoType = 'youtube';
}
// vimeo
else if (pattern1.test(videoUrl) && videoUrl.indexOf('//vimeo.com/') > -1) {
var replacement = 'https://player.vimeo.com/video/$1';
var replacementUrl = videoUrl.replace(pattern1, replacement);
videoId = videoUrl.match(/(?:https?:\/{2})?(?:w{3}\.)?vimeo.com\/(\d+)($|\/)/);
videoId = videoId[1];
var videoType = 'vimeo';
}
// etc
else if (pattern3.test(videoUrl)) {
var replacement = '$1';
var replacementUrl = videoUrl.replace(pattern3, replacement);
var videoType = 'etc';
}
replacementUrl = typeof(replacementUrl) == "undefined" ? videoUrl : replacementUrl;
replacementUrl += '?frameborder=0&autoplay=1';
var iframeHtml = '';
// ckeditor에 커서가 활성화 되어있을 때
if (CKEDITOR.instances['write-content-textarea'].getSelection().getStartElement() != null) {
$(CKEDITOR.instances['write-content-textarea'].getSelection().getStartElement().$).after(iframeHtml);
}
else {
var html = CKEDITOR.instances['write-content-textarea'].getData();
html += iframeHtml;
CKEDITOR.instances['write-content-textarea'].setData(html);
}
$('#WriteVideoModal').modal('hide');
}
});
$('#WritePasswordCheckModal').keyup(function(event){
// press enter in modal
if(event.keyCode == 13) { $('#WritePasswordCheckModalBtnSave').trigger( "click" ); }
});
$('.write-close, .write-button-cancel').on('click', function() {
redirectPrevPage();
});
function redirectPrevPage() {
var query = qv_func.getUrlParams();
var prevUrl = query.prev;
if (prevUrl == undefined || prevUrl == '') {
parent.history.back();
}
else {
location.href = decodeURIComponent(prevUrl);
}
}
/* 2020.02.11 재헌
* 첨부 이미지 프로세스 변경
*/
$('.write-body').delegate('.write-upload-image-item', 'click', function(e) {
if ($(e.target).is('.write-upload-image-item-delete') ||
$(e.target).parents('.write-upload-image-item-delete').length > 0) return;
var id = $(this).attr('data-id');
var data = $('
');
if ($(this).hasClass('active')) {
data.find('img').removeClass('board-thumbnail');
$(this).removeClass('active');
CKEDITOR.instances['write-content-textarea'].setData(data.html());
}
else {
data.find('img').removeClass('board-thumbnail');
data.find('img#' + id).addClass('board-thumbnail');
$('.write-upload-image-item.active').removeClass('active');
$(this).addClass('active');
CKEDITOR.instances['write-content-textarea'].setData(data.html());
}
});
$('.write-body').delegate('.write-upload-image-item-delete', 'click', function(e) {
var result = confirm('해당 이미지를 삭제하시겠습니까?');
if (result) {
var target = $(this).parent('.write-upload-image-item');
var id = target.attr('data-id');
var data = $('