$(function() { $('#supportersRequest').click(function() { if ($('select.domainList').val() != "false") { if (!$('input.requestUrl').val()) { alert('웹사이트 URL이 비어있습니다.'); $('input.requestUrl').focus(); return false; } var urlKeeper = $('input.requestUrl').val(); var request = $.ajax({ url: "/ajax/encode_url.php", type: "POST", dataType: "json", data: { url: urlKeeper } }); request.always(function(response) { var zone = $('select.domainList').val(); var message = ''; if (response.status == 'ok') { var request = $.ajax({ url: "/ajax/decode_url.php", type: "POST", dataType: "json", data: { url: zone } }); request.always(function(response2) { var url = response.message; var endPoint = url.indexOf('/',7); var compareString = ''; if (endPoint == -1 ) { compareString = url; } else { compareString = url.substring(0, endPoint); } if (compareString.search(zone) == -1 && compareString.search(response2.message) == -1) { alert(sprintf(LANG['request_url_need_correct_domain'], response2.message)); tr.find('input.requestUrl').focus(); return false; } var request = $.ajax({ url: "/ajax/request_supporters.php", type: "POST", data: { status: 'request', zone: $('select.domainList').val(), type: 'article', request_url: url } }); request.always(function(response) { var message = ''; if (response.status == 'done') { message = '서포터즈 신청을 완료했습니다.'; alert(message); window.location.reload(); } else if (response.status == 'fail' && response.message) { message = response.message; alert(message); } else { message = '서포터즈 신청에 실패했습니다.'; alert(message); } }); }); } else { alert('입력한 값이 웹사이트 주소 형식에 맞지 않습니다.'); $('input.requestUrl').focus(); } }); } }); $('.modifySupporters').click(function(e) { toggleUrlForm(e); }); $('.saveSupporters').click(function(e) { var target = e.target; var targetParentTr = $(target).parents('tr.supporters'); toggleUrlForm(e); }); $('.deleteSupporters').click(function(e) { deleteSupporters(e); }); $('.domainList').change(function(e) { var zone = $('select.domainList').val(); if (zone != 'false') { var request = $.ajax({ url: "/ajax/decode_url.php", type: "POST", dataType: "json", data: { url: 'http://www.' + zone } }); request.always(function(response) { $('input.requestUrl').val(response.message); }); } else { $('input.requestUrl').val(''); } }); }); function clearSupportersRow() { $('tr.supporters:not(.hiddenRow)').remove(); } function addSupportersRow(token) { var request = $.ajax({ url: "/ajax/decode_url.php", type: "POST", dataType: "json", data: { url: token.request_url } }); request.always(function(response) { var message = ''; if (response.status == 'ok') { $('tr.emptyRow').hide(); var row = $('tr.supporters.hiddenRow:first'); var targetDomain = $('select.domainList option[value="' + token.zone + '"]'); if ($('tr.supporters').length == 0) { $('tr.emptyRow').removeClass('hiddenRow'); } $('tr.supporters').parent().append('' + row.html() + ''); $('tr.supporters.hiddenRow:last').removeClass('hiddenRow'); if (token.idn == token.zone) { $('tr.supporters:last td.requestZone').html(token.idn); } else { $('tr.supporters:last td.requestZone').html(token.idn + '
(' + token.zone + ')-'); } $('tr.supporters:last td.requestType').html('' + response.message + ''); $('tr.supporters:last td.message span.message').html(token.message); $('tr.supporters:last td.button input.saveSupporters').data('zone', token.zone); $('tr.supporters:last td.button input.saveSupporters').data('type', token.type); $('tr.supporters:last td.button input.modifySupporters').data('url', token.request_url); $('tr.supporters:last td.button input.deleteSupporters').data('zone', token.zone); $('tr.supporters:last td.button input.modifySupporters').bind('click', function(e) { toggleUrlForm(e); }); $('tr.supporters:last td.button input.saveSupporters').bind('click', function(e) { var target = e.target; var targetParentTr = $(target).parents('tr.supporters'); toggleUrlForm(e); }); $('tr.supporters:last td.button input.deleteSupporters').bind('click', function(e) { deleteSupporters(e); }); disableOption(targetDomain); } }); } function disableOption(target) { $(target).addClass('disabledOption'); $(target).prop('disabled', true); } function enableOption(target) { $(target).removeClass('disabledOption'); $(target).prop('disabled', false); } function toggleUrlForm(e) { var target = e.target; var targetParentTr = $(target).parents('tr.supporters'); if ($(target).hasClass('modifySupporters')) { $(target).parents('tr.supporters').find('td.requestType span.request').toggle(); $(target).toggle(); $(target).parent().find('input.saveSupporters').toggle(); $(target).parent().find('input.deleteSupporters').toggleClass('hideBtn'); $(target).parents('tr.supporters').find('td.requestType').append(''); targetParentTr.find('td.requestType input.modify.url').val($(target).data('url')); targetParentTr.find('td.requestType input.modify.url').focus(); } else { if (!targetParentTr.find('input[type="text"]').val()) { alert('웹사이트 URL이 비어있습니다.'); $('input.requestUrl').focus(); return false; } var urlPrepare = targetParentTr.find('input[type="text"]').val(); var request = $.ajax({ url: "/ajax/encode_url.php", type: "POST", dataType: "json", data: { url: urlPrepare } }); request.always(function(response) { var message = ''; if (response.status == 'ok') { var request2 = $.ajax({ url: "/ajax/decode_url.php", type: "POST", dataType: "json", data: { url: targetParentTr.find('input.saveSupporters').data('zone') } }); request2.always(function(response2) { var zone = targetParentTr.find('input.saveSupporters').data('zone'); var requestUrl = targetParentTr.find('input.modify.url').val(); var endPoint = requestUrl.indexOf('/',7); var compareString = ''; if (endPoint == -1 ) { compareString = requestUrl; } else { compareString = requestUrl.substring(0, endPoint); } if (compareString.search(zone) == -1 && compareString.search(response2.message) == -1) { alert(sprintf(LANG['request_url_need_correct_domain'], response2.message)); targetParentTr.find('input.modify').focus(); return false; } targetParentTr.find('input.modifySupporters').data('url', response.message); targetParentTr.find('td.message input.modify.url').remove(); targetParentTr.find('td.message span.message').toggle(); targetParentTr.find('input.saveSupporters').toggle(); targetParentTr.find('input.modifySupporters').toggle(); targetParentTr.find('input.deleteSupporters').toggleClass('hideBtn'); // to save modifySupporters(targetParentTr); }); } else { alert('입력한 값이 웹사이트 주소 형식에 맞지 않습니다.'); targetParentTr.find('input[type="text"]').focus(); } }); } } function deleteSupporters(e) { var self = e.target var request = $.ajax({ url: "/ajax/request_supporters.php", type: "POST", data: { status: 'delete', zone: $(self).data('zone') } }); request.always(function(response) { var message = ''; if (response.status == 'done') { // $(self).parents('tr.supporters').remove(); enableOption($('select.domainList option[value="' + response.contents.zone + '"]')); message = '서포터즈 신청을 삭제했습니다.'; } else if (response.status == 'fail' && response.message) { message = '서포터즈 신청 삭제를 실패했습니다.\n\n' + response.message; } else { message = '서포터즈 신청 삭제를 실패했습니다.'; } alert(message); window.location.reload(); }); } function modifySupporters(tr) { var request = $.ajax({ url: "/ajax/request_supporters.php", type: "POST", data: { status: 'modify', type: tr.find('input.saveSupporters').data('type'), zone: tr.find('input.saveSupporters').data('zone'), request_url: tr.find('input.modifySupporters').data('url') } }); request.always(function(response) { var message = ''; if (response.status == 'done') { /* var zone = response; $(response.contents).each(function(idx, el) { addSupportersRow(el); }); */ message = '서포터즈 신청을 갱신했습니다.'; } else if (response.status == 'fail' && response.message) { message = '서포터즈 신청을 갱신하지 못했습니다.\n\n' + response.message; } else { message = '서포터즈 신청을 갱신하지 못했습니다.'; } alert(message); window.location.reload(); }); } function displayEmptyRow() { if ($('#supportersList tr.supporters:not(.emptyRow, .hiddenRow)').length > 0) { $('tr.emptyRow').hide(); } else { $('tr.emptyRow').show(); } } function changeDefaultSelect() { $($('select.domainList option.default')[0]).attr('selected', 'selected') $('input.requestUrl').val(''); }