|
@@ -0,0 +1,562 @@
|
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
|
+<html lang="ko"
|
|
|
|
|
+ xmlns:th="http://www.thymeleaf.org">
|
|
|
|
|
+<!--
|
|
|
|
|
+ *******************************************************************************
|
|
|
|
|
+ * @source : MainMultiContentsPopupForm.html
|
|
|
|
|
+ * @desc : 메인전시 컨텐츠 멀티 팝업 Page
|
|
|
|
|
+ *============================================================================
|
|
|
|
|
+ * STYLE24
|
|
|
|
|
+ * Copyright(C) 2020 TSIT, All rights reserved.
|
|
|
|
|
+ *============================================================================
|
|
|
|
|
+ * VER DATE AUTHOR DESCRIPTION
|
|
|
|
|
+ * === =========== ========== =============================================
|
|
|
|
|
+ * 1.0 2021.2.24 bin2107 최초 작성
|
|
|
|
|
+ *******************************************************************************
|
|
|
|
|
+ -->
|
|
|
|
|
+ <div class="modalPopup" data-width="1400" >
|
|
|
|
|
+ <div class="panelStyle">
|
|
|
|
|
+ <div class="panelTitle">
|
|
|
|
|
+ <h2 id="multiPopTitle" th:text="${contentsLoc}">Multi</h2>
|
|
|
|
|
+ <button type="button" class="close" onclick="fnMainMultiContentsPopupFormClose()"><i class="fa fa-times"></i></button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="panelContent">
|
|
|
|
|
+ <ul class="panelBar">
|
|
|
|
|
+ <li class="aL">
|
|
|
|
|
+ <span class="cBlue">* 상단으로 드래그&드랍하여 순서 변경 가능합니다.</span>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ <li class="aR">
|
|
|
|
|
+ <button type="button" class="btn btn btn-base btn-sm" th:if="${contentsLoc == 'SMM007'}" onclick="fnAddBrand(this);">브랜드 추가</button> <!--id="btnBrandAddRow"-->
|
|
|
|
|
+ <button type="button" class="btn btn btn-base btn-sm" th:if="${contentsLoc == 'SMM010'}" id="btnContentsAddRow">컨텐츠 추가</button>
|
|
|
|
|
+ <button type="button" class="btn btn btn-dark btn-sm" id="btnMultiPopSave">임시저장</button>
|
|
|
|
|
+ <input type="hidden" name="uploadDefaultUrlMultiPop" id="uploadDefaultUrlMultiPop" th:value="${@environment.getProperty('upload.image.view') + '/display/contents/'}"/>
|
|
|
|
|
+ <input type="hidden" name="uploadDefaultBrandUrlPop" id="uploadDefaultBrandUrlPop" th:value="${@environment.getProperty('upload.image.view') + '/display/contents/brand/'}"/>
|
|
|
|
|
+ <input type="hidden" name="uploadDefaultPlanUrlPop" id="uploadDefaultPlanUrlPop" th:value="${@environment.getProperty('upload.image.view') + '/display/contents/plan/'}"/>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <form name="multiContentsTitleForm" id="multiContentsTitleForm" style="width:1170px; overflow:auto; display: none;">
|
|
|
|
|
+ <table class="frmStyle">
|
|
|
|
|
+ <colgroup>
|
|
|
|
|
+ <col style="width:10%;"/>
|
|
|
|
|
+ <col style="width:90%;"/>
|
|
|
|
|
+ </colgroup>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <th>컨텐츠 타이틀</th>
|
|
|
|
|
+ <td><input type="text" name="contentsTitle" style="width:50%;" maxlength="40" required="required" data-valid-name="컨텐츠타이틀" th:value="${contentsTitle}"></td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ <form style="height:600px; width:1370px; overflow:auto;" id="multiPopSortable">
|
|
|
|
|
+ <input type="hidden" name="mdTitle">
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+<script th:inline="javascript">
|
|
|
|
|
+/*<![CDATA[*/
|
|
|
|
|
+ var cateNo = [[${cateNo}]];
|
|
|
|
|
+ var contentsLoc = [[${contentsLoc}]];
|
|
|
|
|
+ var contentsTitle = [[${contentsTitle}]];
|
|
|
|
|
+ var contentsLocArr = gagajf.convertToArray([[${contentsLocList}]]);
|
|
|
|
|
+ var tdWidth = $("#sortable").find("td").width();
|
|
|
|
|
+ var tdDeleteWidth = parseInt(tdWidth/11, 10);
|
|
|
|
|
+ tdWidth = tdWidth - tdDeleteWidth;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 컨텐츠 미리보기 리스트
|
|
|
|
|
+ */
|
|
|
|
|
+ var fnGetMultiContentsPreviewList = function (){
|
|
|
|
|
+ $("#multiPopSortable").html('');
|
|
|
|
|
+ $("#multiPopSortable").html('');
|
|
|
|
|
+ var data = {cateNo : cateNo
|
|
|
|
|
+ ,contentsLoc : contentsLoc
|
|
|
|
|
+ };
|
|
|
|
|
+ var jsonData = JSON.stringify(data);
|
|
|
|
|
+ gagajf.ajaxJsonSubmit('/display/contents/preview/list', jsonData, fnCreatePopLayout);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var fnCreatePopLayout = function (result){
|
|
|
|
|
+ var html = '';
|
|
|
|
|
+ for(var i=0; i<result.length; i++){
|
|
|
|
|
+ var dispStdt = result[i].dispStdt.split(" ");
|
|
|
|
|
+ var dispEddt = result[i].dispEddt.split(" ");
|
|
|
|
|
+ var brandGroupImg = result[i].brandGroupImg;
|
|
|
|
|
+ html += '<table class="frmStyle" style="margin-bottom:30px">';
|
|
|
|
|
+ html += '<colgroup>';
|
|
|
|
|
+ html += '<col style="width:10%;"/>';
|
|
|
|
|
+ html += '<col style="width:55%;"/>';
|
|
|
|
|
+ html += '<col/>';
|
|
|
|
|
+ html += '</colgroup>';
|
|
|
|
|
+ html += '<thead><tr><th>전시일시</th><td><input name="dispStdt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출시작일" data-valid-type="calendar" value="'+dispStdt[0]+'"/>';
|
|
|
|
|
+ html += '<select name="stTimeHour" required="required" data-valid-name="노출기간 시작시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(24, dispStdt[1].split(":")[0]);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<select name="stTimeMin" required="required" data-valid-name="노출기간 시작시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(60, dispStdt[1].split(":")[1]);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<span> ~ </span>';
|
|
|
|
|
+ html += '<input name="dispEddt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출종료일" data-valid-type="calendar" value="'+dispEddt[0]+'"/>';
|
|
|
|
|
+ html += '<select name="edTimeHour" required="required" data-valid-name="노출기간 종료시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(24, dispEddt[1].split(":")[0]);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<select name="edTimeMin" required="required" data-valid-name="노출기간 종료시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(60, dispEddt[1].split(":")[1]);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<input name="dispOrd" type="text" class="w80"placeholder="전시순서" style="margin-left:5px; text-align:center"/>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '<td class="aL"><button type="button" class="btn btn-base btn-lg" onclick="fnAddPlanRow(this);">기획전/배너추가</button>';
|
|
|
|
|
+ //html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddGoodsRow(this);">상품추가</button>';
|
|
|
|
|
+ html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteBrandRow(this);">삭제</button></td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '<tr>';
|
|
|
|
|
+ html += '<th>브랜드코드</th>';
|
|
|
|
|
+ html += '<td colspan="3"><input type="text" name="brandGroupNo" style="width:30%;" value="'+result[i].brandGroupNo+'">';
|
|
|
|
|
+ html += '<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGetBrandGroup();">브랜드조회</button>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '<tr name="brandImgRow">';
|
|
|
|
|
+ html += '<th>브랜드이미지</th>';
|
|
|
|
|
+ html += '<td colspan="3">';
|
|
|
|
|
+ html += ' <div class="uFile w300">';
|
|
|
|
|
+ html += ' <input id="brandFile_'+i+'" name="file" type="file" class="uFileInput w300" onchange="fnBrandImgFileUpload(this, '+i+')">';
|
|
|
|
|
+ html += ' <label for="brandFile_'+i+'" class="uFileLabel">파일선택</label>';
|
|
|
|
|
+ html += ' <input type="hidden" name="brandImgPath" value="'+result[i].brandGroupImg+'">';
|
|
|
|
|
+ html += ' <input type="hidden" name="brandNewImgFile" value="">';
|
|
|
|
|
+ html += ' </div>';
|
|
|
|
|
+ html += ' <div id="brandImgViewPop_'+i+'" class=';
|
|
|
|
|
+ if (brandGroupImg != '') {
|
|
|
|
|
+ html += '"on">';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ html += '"off">';
|
|
|
|
|
+ }
|
|
|
|
|
+ html += ' <img id="brandPreViewUrlPop_'+i+'" src="" style="height:100px; max-width:500px;" onclick="cfnOpenImagePreViewPopup(\'brandPreViewUrlPop\',$(this).attr(\'src\'));"/>';
|
|
|
|
|
+ html += ' </div>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '</thead><tbody></tbody>';
|
|
|
|
|
+ for(var j=1; j<8; j++){
|
|
|
|
|
+ var imgPath = eval("result["+i+"].imgPath" + j);
|
|
|
|
|
+ if(imgPath!=null && imgPath!='null' && imgPath!='' ){
|
|
|
|
|
+ html += fnAddPlanRow(imgPath);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ html += '</tbody></table>';
|
|
|
|
|
+ }
|
|
|
|
|
+ $("#multiPopSortable").append(html);
|
|
|
|
|
+ $("#multiPopSortable").sortable();
|
|
|
|
|
+ $('.schDate').datepicker("destroy");
|
|
|
|
|
+ $('.schDate').datepicker({
|
|
|
|
|
+ changeMonth: true,
|
|
|
|
|
+ changeYear: true,
|
|
|
|
|
+ defaultDate: $('.schDate').val()
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 브랜드 추가 버튼
|
|
|
|
|
+ */
|
|
|
|
|
+ var brandIdx = 0;
|
|
|
|
|
+ var fnAddBrand = function (param) {
|
|
|
|
|
+ var src = '';
|
|
|
|
|
+ var imgPath = '';
|
|
|
|
|
+ if (typeof param != 'object') {
|
|
|
|
|
+ src = $("#uploadDefaultBrandUrlPop").val().replace('/contents/brand', '') + param;
|
|
|
|
|
+ imgPath = param;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var html = '<table class="frmStyle" style="margin-bottom:30px">';
|
|
|
|
|
+ html += '<colgroup>';
|
|
|
|
|
+ html += '<col style="width:10%;"/>';
|
|
|
|
|
+ html += '<col style="width:55%;"/>';
|
|
|
|
|
+ html += '<col/>';
|
|
|
|
|
+ html += '</colgroup>';
|
|
|
|
|
+ html += '<thead><tr><th>전시일시</th><td><input name="dispStdt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출시작일" data-valid-type="calendar"/>';
|
|
|
|
|
+ html += '<select name="stTimeHour" required="required" data-valid-name="노출기간 시작시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(24);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<select name="stTimeMin" required="required" data-valid-name="노출기간 시작시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(60);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<span> ~ </span>';
|
|
|
|
|
+ html += '<input name="dispEddt" type="text" class="w80 schDate" maxlength="10" required="required" data-valid-name="노출종료일" data-valid-type="calendar"/>';
|
|
|
|
|
+ html += '<select name="edTimeHour" required="required" data-valid-name="노출기간 종료시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(24, 23);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<select name="edTimeMin" required="required" data-valid-name="노출기간 종료시간">';
|
|
|
|
|
+ html += fnCreateTimeOption(60, 59);
|
|
|
|
|
+ html += '</select>';
|
|
|
|
|
+ html += '<input name="dispOrd" type="text" class="w80" placeholder="전시순서" style="margin-left:5px; text-align:center"/>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '<td class="aL"><button type="button" class="btn btn-base btn-lg" onclick="fnAddPlanRow(this);">기획전/배너추가</button>';
|
|
|
|
|
+ //html += '<button type="button" class="btn btn-base btn-lg" onclick="fnAddGoodsRow(this);">상품추가</button>';
|
|
|
|
|
+ html += '<button type="button" class="btn btn-danger btn-lg" onclick="fnDeleteBrandRow(this);">삭제</button></td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '<tr>';
|
|
|
|
|
+ html += '<th>브랜드코드</th>';
|
|
|
|
|
+ html += '<td colspan="3"><input type="text" name="brandGroupNo" style="width:30%;">';
|
|
|
|
|
+ html += '<button type="button" class="btn btnRight btn-success btn-lg" onclick="fnGetBrandGroup();">브랜드조회</button>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '<tr name="brandImgRow">';
|
|
|
|
|
+ html += '<th>브랜드이미지</th>';
|
|
|
|
|
+ html += '<td colspan="3">';
|
|
|
|
|
+ html += ' <div class="uFile w300">';
|
|
|
|
|
+ html += ' <input id="brandFile_' + brandIdx + '" name="file" type="file" class="uFileInput w300" onchange="fnBrandImgFileUpload(this, ' + brandIdx + ')">';
|
|
|
|
|
+ html += ' <label for="brandFile_' + brandIdx + '" class="uFileLabel">파일선택</label>';
|
|
|
|
|
+ html += ' <input type="hidden" name="brandImgPath" value="' + imgPath + '">';
|
|
|
|
|
+ html += ' <input type="hidden" name="brandNewImgFile" value="">';
|
|
|
|
|
+ html += ' </div>';
|
|
|
|
|
+ html += ' <div id="brandImgViewPop_' + brandIdx + '" class=';
|
|
|
|
|
+ if (src != '') {
|
|
|
|
|
+ html += '"on">';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ html += '"off">';
|
|
|
|
|
+ }
|
|
|
|
|
+ html += ' <img id="brandPreViewUrlPop_' + brandIdx + '" src="" style="height:100px; max-width:500px;" onclick="cfnOpenImagePreViewPopup(\'brandPreViewUrlPop\',$(this).attr(\'src\'));"/>';
|
|
|
|
|
+ html += ' </div>';
|
|
|
|
|
+ html += '</td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ html += '</thead><tbody></tbody></table>';
|
|
|
|
|
+
|
|
|
|
|
+ brandIdx++;
|
|
|
|
|
+ $("#multiPopSortable").prepend(html);
|
|
|
|
|
+ $("#multiPopSortable").sortable();
|
|
|
|
|
+ $('.schDate').datepicker("destroy");
|
|
|
|
|
+ $('.schDate').datepicker({
|
|
|
|
|
+ changeMonth: true,
|
|
|
|
|
+ changeYear: true,
|
|
|
|
|
+ defaultDate: $('.schDate').val()
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 브랜드 이미지 첨부
|
|
|
|
|
+ */
|
|
|
|
|
+ var fnBrandImgFileUpload = function (obj, ind){
|
|
|
|
|
+ var file = obj.files[0];
|
|
|
|
|
+ file.name = 'test';
|
|
|
|
|
+ if (typeof(file) == 'undefined'){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 파일 업로드
|
|
|
|
|
+ gagajf.ajaxFileUpload('/common/file/upload?subDir=/display/contents/brand/'
|
|
|
|
|
+ , file
|
|
|
|
|
+ , function(result) {
|
|
|
|
|
+ $(obj).closest('div').find('input:hidden[name=brandNewImgFile]').val(result.newFileName);
|
|
|
|
|
+ $("#brandPreViewUrlPop_"+ind).attr('src', $("#uploadDefaultBrandUrlPop").val()+result.newFileName);
|
|
|
|
|
+ $("#brandImgViewPop_"+ind).removeClass("off").addClass("on");
|
|
|
|
|
+ }
|
|
|
|
|
+ , 'image'
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 브랜드그룹 조회
|
|
|
|
|
+ */
|
|
|
|
|
+ var fnGetBrandGroup = function (){
|
|
|
|
|
+ console.log('fnGetBrandGroup');
|
|
|
|
|
+ cfnOpenBrandGroupListPopup("callBackBrandGroup", "S", "S");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var callBackBrandGroup = function (result){
|
|
|
|
|
+ $("#multiPopSortable input[name=brandGroupNo]").val(result[0].brandGroupNo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 기획전/배너 추가
|
|
|
|
|
+ */
|
|
|
|
|
+ var planImgIndex = 0;
|
|
|
|
|
+ var fnAddPlanRow = function (param){
|
|
|
|
|
+ var src = '';
|
|
|
|
|
+ var imgPath = '';
|
|
|
|
|
+ if(typeof param!='object'){
|
|
|
|
|
+ src = $("#uploadDefaultPlanUrlPop").val().replace('/contents/plan/', '')+param;
|
|
|
|
|
+ imgPath = param;
|
|
|
|
|
+ }
|
|
|
|
|
+ var html = '<tr name="planRow">';
|
|
|
|
|
+ html += '<th>기획전/배너<br>링크/이미지</th>';
|
|
|
|
|
+ html += '<td><input type="text" name="planLink" id="planLink'+planImgIndex+'"></td>';
|
|
|
|
|
+ html += '<td><div class="uFile w300">';
|
|
|
|
|
+ html += '<input id="planFile_'+planImgIndex+'" name="file" type="file" class="uFileInput w300" onchange="fnPlanFileUpload(this, '+planImgIndex+')"/>';
|
|
|
|
|
+ html += '<label for="planFile_'+planImgIndex+'" class="uFileLabel">파일선택</label>';
|
|
|
|
|
+ html += '<input type="hidden" name="planImgPath" value="'+imgPath+'"/>';
|
|
|
|
|
+ html += '<input type="hidden" name="planNewImgFile" value="" />';
|
|
|
|
|
+ html += '</div>';
|
|
|
|
|
+ html += '<div id="planImgViewPop_'+planImgIndex+'" class=';
|
|
|
|
|
+ if(src!=''){
|
|
|
|
|
+ html += '"on">';
|
|
|
|
|
+ }else{
|
|
|
|
|
+ html += '"off">';
|
|
|
|
|
+ }
|
|
|
|
|
+ html += '<img id="planPreViewUrlPop_'+planImgIndex+'" src="'+src+'" style="height:100px; max-width:500px;" onclick="cfnOpenImagePreViewPopup(\'planPreimgViewPop\',$(this).attr(\'src\'));"/>';
|
|
|
|
|
+ html += '</div></td>';
|
|
|
|
|
+ html += '<td class="aL"><button type="button" class="btn icn" onclick="fnDeleteTrRow(this);"><i class="fa fa-times" aria-hidden="true"></i></button></td>';
|
|
|
|
|
+ html += '</tr>';
|
|
|
|
|
+ if(typeof param == 'object'){
|
|
|
|
|
+ if($(param).closest("table").find("tbody").find("tr[name=planRow]").length>4){
|
|
|
|
|
+ mcxDialog.alert("기획전/배너는 5개까지 등록 가능합니다");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ planImgIndex++;
|
|
|
|
|
+ $(param).closest("table").find("tbody").append(html);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ planImgIndex++;
|
|
|
|
|
+ return html;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 기획전/배너 파일첨부
|
|
|
|
|
+ var fnPlanFileUpload = function (obj, ind){
|
|
|
|
|
+ var file = obj.files[0];
|
|
|
|
|
+ file.name = 'test';
|
|
|
|
|
+ if (typeof(file) == 'undefined'){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 파일 업로드
|
|
|
|
|
+ gagajf.ajaxFileUpload('/common/file/upload?subDir=/display/contents/plan'
|
|
|
|
|
+ , file
|
|
|
|
|
+ , function(result) {
|
|
|
|
|
+ $(obj).closest('div').find('input:hidden[name=planNewImgFile]').val(result.newFileName);
|
|
|
|
|
+ $("#planPreViewUrlPop_"+ind).attr('src', $("#uploadDefaultPlanUrlPop").val()+result.newFileName);
|
|
|
|
|
+ $("#planImgViewPop_"+ind).removeClass("off").addClass("on");
|
|
|
|
|
+ }
|
|
|
|
|
+ , 'image'
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 컨텐츠 행삭제
|
|
|
|
|
+ var fnDeleteBrandRow = function (obj){
|
|
|
|
|
+ $(obj).closest("table").remove();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 행삭제
|
|
|
|
|
+ var fnDeleteTrRow = function (obj){
|
|
|
|
|
+ $(obj).closest("tr").remove();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 컨텐츠 추가 날짜 설정
|
|
|
|
|
+ var fnCreateTimeOption = function(val, sel) {
|
|
|
|
|
+ var html = '';
|
|
|
|
|
+ for(var i=0; i<val; i++){
|
|
|
|
|
+ var time = 0;
|
|
|
|
|
+ if(i<10){
|
|
|
|
|
+ time = '0'+i;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ time = i;
|
|
|
|
|
+ }
|
|
|
|
|
+ var select = false;
|
|
|
|
|
+ if(sel==time){
|
|
|
|
|
+ select = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(val==24){
|
|
|
|
|
+ time += '시';
|
|
|
|
|
+ }else if(val==60){
|
|
|
|
|
+ time += '분';
|
|
|
|
|
+ }
|
|
|
|
|
+ html += '<option value="'+time+'"';
|
|
|
|
|
+ if(select){
|
|
|
|
|
+ html += 'selected="selected"';
|
|
|
|
|
+ }
|
|
|
|
|
+ html += '>'+time+'</option>';
|
|
|
|
|
+ }
|
|
|
|
|
+ return html;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 창닫기
|
|
|
|
|
+ var fnMainMultiContentsPopupFormClose = function (){
|
|
|
|
|
+ uifnPopupClose('popupMainMultiContents');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 임시저장
|
|
|
|
|
+ */
|
|
|
|
|
+ var dataArr = [];
|
|
|
|
|
+ $("#btnMultiPopSave").on("click", function(){
|
|
|
|
|
+ if(!gagajf.checkRequired("#multiPopSortable")){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!gagajf.checkRequired("#multiContentsTitleForm")){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ var titleBool = true;
|
|
|
|
|
+ $("#multiPopSortable").find('input[name=title]').each(function(idx, title) {
|
|
|
|
|
+ if ($(title).val()==''){
|
|
|
|
|
+ titleBool = false;
|
|
|
|
|
+ $(title).focus();
|
|
|
|
|
+ gagajf.alertMessage($(title), 'input');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if(!titleBool){
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ dataArr = [];
|
|
|
|
|
+ $("#multiPopSortable table").each(function(){
|
|
|
|
|
+ var newImgFileArr = [];
|
|
|
|
|
+ var imgPath1 = '';
|
|
|
|
|
+ var imgPath2 = '';
|
|
|
|
|
+ var imgPath3 = '';
|
|
|
|
|
+ var imgPath4 = '';
|
|
|
|
|
+ var imgPath5 = '';
|
|
|
|
|
+ var imgPath6 = '';
|
|
|
|
|
+ var imgPath7 = '';
|
|
|
|
|
+ var imgPath8 = '';
|
|
|
|
|
+ var strVar1 = '';
|
|
|
|
|
+ var strVar2 = '';
|
|
|
|
|
+ var strVar3 = '';
|
|
|
|
|
+ var strVar4 = '';
|
|
|
|
|
+ var strVar5 = '';
|
|
|
|
|
+ var strVar6 = '';
|
|
|
|
|
+ var strVar7 = '';
|
|
|
|
|
+ var strVar8 = '';
|
|
|
|
|
+ var strTitle1 = '';
|
|
|
|
|
+ var strTitle2 = '';
|
|
|
|
|
+ var strTitle3 = '';
|
|
|
|
|
+ var strTitle4 = '';
|
|
|
|
|
+ var subText1 = '';
|
|
|
|
|
+ var subText2 = '';
|
|
|
|
|
+ var subText3 = '';
|
|
|
|
|
+ var subText4 = '';
|
|
|
|
|
+ var i = 1;
|
|
|
|
|
+ $(this).find('input[name=planImgPath]').each(function(){
|
|
|
|
|
+ eval("imgPath" + i + "='"+$(this).val()+"'");
|
|
|
|
|
+ i++;
|
|
|
|
|
+ });
|
|
|
|
|
+ $(this).find('input[name=planNewImgFile]').each(function(){
|
|
|
|
|
+ newImgFileArr.push($(this).val());
|
|
|
|
|
+ });
|
|
|
|
|
+ i = 1;
|
|
|
|
|
+ $(this).find('input[name=planLink]').each(function(){
|
|
|
|
|
+ _mall = [[${@environment.getProperty('domain.front')}]];
|
|
|
|
|
+ var val = $(this).val();
|
|
|
|
|
+ val = val.replace('https:'+_mall, '');
|
|
|
|
|
+ val = val.replace('http:'+_mall, '');
|
|
|
|
|
+ val = val.replace(_mall, '');
|
|
|
|
|
+ eval("strVar" + i + "='"+val+"'");
|
|
|
|
|
+ i++;
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ var dispStdt = $(this).find("[name=dispStdt]").val().replace(/[^0-9]/g, '') + "" +$(this).find("[name=stTimeHour]").val().replace('시', '') + "" +$(this).find("[name=stTimeMin]").val().replace('분', '') + "00";
|
|
|
|
|
+ var dispEddt = $(this).find("[name=dispEddt]").val().replace(/[^0-9]/g, '') + "" +$(this).find("[name=edTimeHour]").val().replace('시', '') + "" +$(this).find("[name=edTimeMin]").val().replace('분', '') + "59";
|
|
|
|
|
+
|
|
|
|
|
+ var dispOrd = $(this).find("[name=dispOrd]").val();
|
|
|
|
|
+
|
|
|
|
|
+ var brandGroupNo = $(this).find("[name=brandGroupNo]").val();
|
|
|
|
|
+ var brandGroupImg = $(this).find("[name=brandNewImgFile]").val();
|
|
|
|
|
+ var mdTitle = $(this).find("[name=mdTitle]").val();
|
|
|
|
|
+
|
|
|
|
|
+ var data = {cateNo : cateNo
|
|
|
|
|
+ , contentsLoc : contentsLoc
|
|
|
|
|
+ , dispStdt : dispStdt
|
|
|
|
|
+ , dispEddt : dispEddt
|
|
|
|
|
+ , newImgFileArr : newImgFileArr
|
|
|
|
|
+ , imgPath1 : imgPath1
|
|
|
|
|
+ , imgPath2 : imgPath2
|
|
|
|
|
+ , imgPath3 : imgPath3
|
|
|
|
|
+ , imgPath4 : imgPath4
|
|
|
|
|
+ , imgPath5 : imgPath5
|
|
|
|
|
+ , imgPath6 : imgPath6
|
|
|
|
|
+ , imgPath7 : imgPath7
|
|
|
|
|
+ , imgPath8 : imgPath8
|
|
|
|
|
+ , strVar1 : strVar1
|
|
|
|
|
+ , strVar2 : strVar2
|
|
|
|
|
+ , strVar3 : strVar3
|
|
|
|
|
+ , strVar4 : strVar4
|
|
|
|
|
+ , strVar5 : strVar5
|
|
|
|
|
+ , strVar6 : strVar6
|
|
|
|
|
+ , strVar7 : strVar7
|
|
|
|
|
+ , strVar8 : strVar8
|
|
|
|
|
+ , strTitle1 : strTitle1
|
|
|
|
|
+ , strTitle2 : strTitle2
|
|
|
|
|
+ , strTitle3 : strTitle3
|
|
|
|
|
+ , strTitle4 : strTitle4
|
|
|
|
|
+ , subText1 : subText1
|
|
|
|
|
+ , subText2 : subText2
|
|
|
|
|
+ , subText3 : subText3
|
|
|
|
|
+ , subText4 : subText4
|
|
|
|
|
+ , brandGroupNo : brandGroupNo
|
|
|
|
|
+ , brandGroupImg : brandGroupImg
|
|
|
|
|
+ , mdTitle : mdTitle
|
|
|
|
|
+ , useYn : 'Y'
|
|
|
|
|
+ , dispOrd : dispOrd
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ dataArr.push(data);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if(dataArr.length==0){
|
|
|
|
|
+ var data = {cateNo : cateNo
|
|
|
|
|
+ , contentsLoc : contentsLoc
|
|
|
|
|
+ };
|
|
|
|
|
+ dataArr.push(data);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ var dataArrSort = [];
|
|
|
|
|
+ dataArr.forEach(function(item, index){
|
|
|
|
|
+ if(dataArr[index].dispOrd>0){
|
|
|
|
|
+ for(var i=1; i<dataArr.length; i++){
|
|
|
|
|
+ if(i>index){
|
|
|
|
|
+ if(dataArr[index].dispOrd==dataArr[i].dispOrd){
|
|
|
|
|
+ dataArr[i].dispOrd = Number(dataArr[i].dispOrd) + 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ dataArr.forEach(function(item, index){
|
|
|
|
|
+ if(dataArr[index].dispOrd != ''){
|
|
|
|
|
+ dataArrSort[dataArr[index].dispOrd-1] = item;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ dataArr.forEach(function(item, index){
|
|
|
|
|
+ if(dataArr[index].dispOrd == ''){
|
|
|
|
|
+ var empty = false;
|
|
|
|
|
+ for(var i=0; i<dataArrSort.length; i++){
|
|
|
|
|
+ if(typeof dataArrSort[i] == 'undefined'){
|
|
|
|
|
+ dataArrSort[i] = item;
|
|
|
|
|
+ empty = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ if(!empty){
|
|
|
|
|
+ dataArrSort.push(item);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ dataArr = dataArrSort;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var data = {
|
|
|
|
|
+ cateNo : cateNo
|
|
|
|
|
+ , contentsLoc : contentsLoc
|
|
|
|
|
+ , contentsTitle : $("#contentsTitleForm input[name=contentsTitle]").val()
|
|
|
|
|
+ }
|
|
|
|
|
+ dataArr.push(data);
|
|
|
|
|
+
|
|
|
|
|
+ var jsonData = JSON.stringify(dataArr);
|
|
|
|
|
+ mcxDialog.confirm('컨텐츠를 저장 하시겠습니까?', {
|
|
|
|
|
+ cancelBtnText: "취소",
|
|
|
|
|
+ sureBtnText: "확인",
|
|
|
|
|
+ sureBtnClick: function(){
|
|
|
|
|
+ gagajf.ajaxJsonSubmit('/display/contents/preview/save', jsonData, fnGetContentsPreviewList);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ $(document).ready(function() {
|
|
|
|
|
+ $("#multiPopTitle").text("["+contentsLoc+"] "+gagaAgGrid.lookupValue(contentsLocArr, contentsLoc));
|
|
|
|
|
+
|
|
|
|
|
+ if(contentsLoc=='SMM007'||contentsLoc=='SMM010'){
|
|
|
|
|
+ $("#multiContentsTitleForm").show();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $("#multiContentsTitleForm").hide();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $("#multiPopSortable").disableSelection();
|
|
|
|
|
+ fnGetMultiContentsPreviewList();
|
|
|
|
|
+ });
|
|
|
|
|
+/*]]>*/
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+</html>
|