1if(typeof LANG == 'undefined') var LANG = getLanguage(); 2 3var normalizeMemberMenuLinkPage = function(value) { 4 if (typeof normalizeRenderMenuLinkPage == 'function') return normalizeRenderMenuLinkPage(value); 5 value = $.trim(String(value || '')); 6 try { 7 value = decodeURIComponent(value); 8 } catch(e) {} 9 value = value.replace(/^\/+/g, ''); 10 if (value.indexOf('#') === 0) value = value.replace(/^#+/g, ''); 11 else if (value.indexOf('#') > -1 && !/^https?:\/\//i.test(value)) value = value.split('#').pop(); 12 value = value.split('?')[0].split(',')[0]; 13 return value 14 .replace(/ /g, '-') 15 .replace(/\//g, 'ï¼') 16 .replace(/&/g, 'ï¼') 17 .replace(/\./g, 'ï¼') 18 .replace(/\+/g, 'ï¼') 19 .replace(/\(/g, 'ï¼') 20 .replace(/\)/g, 'ï¼'); 21}; 22 23$(window).load(function(data) { 24 setLanguage(LANG); 25 collectionSortable(); 26}); 27 28$(function() { 29 $('.pageIcon.nonpage a[href="#"]').click(function(e) { 30 e.preventDefault(); 31 }); 32 33 $.fheader = { 34 refreshFixedSub: function() { 35 // console.log('refreshFixedSub'); 36 //ver4 ( ver3 + menu height ) 37 38 var body_width = (PAGE_MODE == 'c') ? $('body').width() : window.innerWidth, 39 $fh = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 40 fh_type = $fh.attr('data-fh-type'), 41 fh_postion = (typeof $fh.attr('data-position') != 'undefined') ? $fh.attr('data-position') : '', 42 fh_transparent = ($fh.hasClass('transparent')) ? true : false, 43 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 44 45 if( $fh.find('#fixed-menu').length == 0 || 46 $fh.hasClass('sidebar') || 47 fh_type != 'right' || 48 $fh.find(' > .container[data-fh-align]').length == 0 49 ) { return false; } 50 51 var fixedSubOn = ($fh.find('.fh-container').css('display') == 'none') ? false : true; 52 53 if(!checkFixTypeMenu && window.innerWidth > 768) { 54 var collapse_w = $fh.find('.collapse').width(), 55 tpl_nav_w = $fh.find('#tpl-menu').outerWidth(), 56 fixed_nav_w = parseInt($fh.find('#fixed-menu').outerWidth()) + parseInt($fh.find('#fixed-menu').css('margin-left')) + parseInt($fh.find('#fixed-menu').css('margin-right')), 57 checkWidth = (parseInt(collapse_w) < parseInt(tpl_nav_w) + fixed_nav_w) ? true : false; 58 59 if(checkWidth) { 60 var checkOnepx = ((parseInt(tpl_nav_w) + fixed_nav_w) - parseInt(collapse_w) === 1) ? true : false; 61 if(checkOnepx) checkWidth = false; 62 } 63 64 var tpl_nav_cnt = $fh.find('#tpl-menu > li').length, 65 tpl_nav_th = (tpl_nav_cnt == 0) ? 0 : $fh.find('#tpl-menu > li').eq(0).position().top, 66 tpl_nav_h = (tpl_nav_cnt == 0) ? 0 : $fh.find('#tpl-menu > li').eq(tpl_nav_cnt-1).position().top, 67 checkHeight = (parseInt(tpl_nav_th) != parseInt(tpl_nav_h)) ? true : false; 68 69 if(fixedSubOn) { // aready fixed menu sub show
70 if(!checkWidth && !checkHeight) fixedSubOn = false; 71 } else { 72 if(checkWidth || checkHeight) fixedSubOn = true; 73 } 74 } 75 76 if(fixedSubOn) { 77 if($fh.hasClass('transparent')) { 78 $fh.find('#tpl-menu').addClass('overflow-menu'); 79 $fh.find('#fixed-menu').addClass('overflow-menu'); 80 $fh.find('#fixed-menu-sub').addClass('overflow-menu'); 81 } 82 var fh_nav_pdRight = parseInt($fh.find('#tpl-menu > li > a').css('padding-right')) + parseInt($fh.find('.collapse').css('padding-right')) - 10; 83 84 if($fh.find('.navbar-center').length==0) { 85 if(checkFixTypeMenu) return false; 86 $('#fixed-menu').hide(); 87 $('#fixed-menu-sub').closest('.fh-container').eq(0).show().addClass('active'); 88 } 89 90 $('#fixed-menu-sub').css('margin-right',fh_nav_pdRight+'px'); 91 } else { 92 $fh.find('#tpl-menu').removeClass('overflow-menu'); 93 $fh.find('#fixed-menu').removeClass('overflow-menu'); 94 $fh.find('#fixed-menu-sub').removeClass('overflow-menu'); 95 96 $('#fixed-menu').show(); 97 $('#fixed-menu-sub').closest('.fh-container').eq(0).hide().removeClass('active'); 98 } 99 100 if($fh.hasClass('transparent') && $fh.hasClass('overflow-menu') && !$fh.find('#tpl-menu').hasClass('overflow-menu')) { 101 $fh.find('#tpl-menu').addClass('overflow-menu'); 102 $fh.find('#fixed-menu').addClass('overflow-menu'); 103 $fh.find('#fixed-menu-sub').addClass('overflow-menu'); 104 } 105 106 107 if(PAGE_MODE == 'c') { 108 $('.addElementButton.addel-menu').css('top',$('header.navbar').outerHeight() + 'px'); 109 } 110 111 if($('.element[data-feature*=fixedscroll]').length > 0) gjs01SetFixedscroll($('.element[data-feature*=fixedscroll]').eq(0)); 112 }, 113 init: function(mode) { 114 // console.log('fheader init'); 115 var checkElviewer = ''; 116 if(window.parent && window.parent != this && $('.elviewhtml').length > 0) { 117 checkElviewer = $('#el-list-image .elgrid.active', window.parent.document).find('.blockname-str').text().trim(); 118 } 119 120 var s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 121 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE, 122 checkGabia = (s_service.indexOf('gabia') > -1) ? true : false, 123 checkEllist = (typeof mode != 'undefined' && mode == 'ellist') ? true : false, 124 checkTemplate = (typeof property != 'undefined' && property.TEMPLATE && property.TEMPLATE=='1') ? true : false, 125 sid = (PAGE_MODE == 'c') ? ((checkEllist) ? checkElviewer.replace(/menu-/gi,'') : SID) : property.SID, 126 $pc_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 127 pc_nav_name = (checkEllist) ? $pc_nav.attr('data-name') : 'menu-'+sid, 128 $mobile_nav = $pc_nav.find('#tpl-menu').closest('.navbar-'+pc_nav_name).clone(), 129 checkFixTypeMenu = (typeof $pc_nav.attr('data-fixtype') != 'undefined' && $pc_nav.attr('data-fixtype')) ? true : false; 130 131 if($pc_nav.find('.cl-menu-option').length > 0) $.moption.init(mode); 132 133 $mobile_nav.prop({id:'mobile-nav'}).removeAttr('class').removeAttr('style'); 134 135 if(!$pc_nav.hasClass('navbar-fheader') || (checkFixTypeMenu && $pc_nav.find('.cl-fixed-menu').length>0)) return false; 136 if(!checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 137 138 var fh_sub = '', 139 fh_type = $pc_nav.attr('data-fh-type'); 140 141 switch(s_validtype) { 142 case 'FR': 143 case 'BS': 144 fh_sub = '\ 145 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 146 '; 147 break; 148 case 'BN': 149 fh_sub = '\ 150 <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 151 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 152 '; 153 break; 154 case 'SM': 155 fh_sub = '\ 156 <li class="siteSEARCH"><a href="#"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a></li>\ 157 <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 158 <li class="siteCART"><a href="#"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a></li>\ 159 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 160 '; 161 162 163 /* Shopping Only KO Site */ 164 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 165 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 166 // fh_sub = '\ 167 // <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 168 // <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 169 // '; 170 // } 171 break; 172 default: 173 break; 174 } 175
176 if(fh_type == 'top') { 177 var menu_container = $pc_nav.find(' > .container').attr('class'), 178 fh_line = '<hr class="fh-line" style="display: none;"/>', 179 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 180 fh_content = '\ 181 <div class="' + menu_container +' fh-container" style="display: none;">\ 182 <div class="navbar-wrap">\ 183 <ul class="navbar-nav navbar-top" id="fixed-menu">\ 184 ' + fh_sub + '\ 185 </ul>\ 186 </div>\ 187 </div>\ 188 '; 189 190 if($pc_nav.find('.cl-drop-fixed-menu').length > 0) $pc_nav.find('.cl-drop-fixed-menu').remove(); 191 192 if($pc_nav.find('.fh-line').length > 0) $pc_nav.find('.fh-line').replaceWith(fh_line); 193 else $pc_nav.prepend(fh_line); 194 195 if($pc_nav.find('#fixed-menu').length > 0) $pc_nav.find('.fh-container').replaceWith(fh_content); 196 else $pc_nav.prepend(fh_content); 197 198 199 if(!checkEllist) { 200 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).find('#fixed-menu').clone()); 201 else $mobile_nav.prepend($(fh_content).find('#fixed-menu').clone()); 202 } 203 204 } else if(fh_type == 'right' || fh_type == 'sidebar') { 205 var fixed_menu_str = (fh_type == 'sidebar') ? '' : 'navbar-right', 206 fh_line = '<hr class="fh-line visible-xs" style="display: none;"/>', 207 fh_content = '\ 208 <ul class="navbar-nav ' + fixed_menu_str + '" id="fixed-menu" style="display: none;">\ 209 ' + fh_sub + '\ 210 </ul>\ 211 '; 212 213 if(checkEllist) { 214 if(fh_type == 'right' && $pc_nav.find('.mini-home').length > 0) { 215 $pc_nav.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 216 } 217 } else { 218 var fh_container = $pc_nav.find(' > .container[data-fh-align]'), 219 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 220 fh_content2 = ( fh_type == 'sidebar' || fh_container.length == 0 ) ? '' : '\ 221 <div class="' + fh_container.attr('class') +' fh-container" style="display: none;">\ 222 <div class="navbar-wrap">\ 223 <ul class="navbar-nav navbar-top" id="fixed-menu-sub" style="margin-right: '+fh_nav_pdRight+'px;">\ 224 ' + fh_sub + '\ 225 </ul>\ 226 </div>\ 227 </div>\ 228 '; 229 } 230 231 if($pc_nav.find('#fixed-menu').length > 0) $pc_nav.find('#fixed-menu').replaceWith(fh_content); 232 else $pc_nav.find('#tpl-menu').before(fh_content); 233 234 if($pc_nav.find('.fh-line').length > 0) $pc_nav.find('.fh-line').replaceWith(fh_line); 235 else $pc_nav.find('#tpl-menu').before(fh_line); 236 237 if(!checkEllist) { 238 if(fh_content2.length > 0) { 239 if($pc_nav.find('#fixed-menu-sub').length > 0) $pc_nav.find('.fh-container').replaceWith(fh_content2); 240 else $pc_nav.prepend(fh_content2); 241 } 242 243 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).removeAttr('style').clone()); 244 else $mobile_nav.prepend($(fh_content).removeAttr('style').clone()); 245 } 246 247 } 248 } 249 250 /* ë©ë´ ::: íì¥ê¸°ë¥ ë²í¼ ì¶ê° ë²ì (20220928) *********************************************************/ 251 if(checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 252 var fh_sub = '', 253 fixbtnData = $.menuFixBtn.getData($pc_nav), 254 parent_dsgnbody = (checkEllist && typeof PAGE_MODE!='undefined' && PAGE_MODE=='c') ? window.parent.document : '', 255 lang_txt = (checkEllist) ? $(parent_dsgnbody).find('header.navbar-fheader .siteLANG.cl-fixbtn').attr('data-fixlang') : '', 256 lang_code = (checkEllist) ? $(parent_dsgnbody).find('header.navbar-fheader .siteLANG.cl-fixbtn').attr('data-fixlangcode') : '', 257 lang_sidebar = (fixbtnData['fh-type']=='sidebar') ? false : true, 258 slang_html = '', 259 lang_str = LANG, 260 validArray = {}, 261 validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 262 validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN; 263 264 if(checkEllist && typeof SLANG == 'undefined') { 265 var slang_obj = { 266 use_language : 'off', 267 lists : {}, 268 select : lang_txt, 269 select_code : lang_code 270 } 271 SLANG = slang_obj; 272 } else SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 273 274 if((typeof SLANG != 'undefined' && typeof SLANG.select_code != 'undefined' && SLANG.select_code) 275 || (!$.isEmptyObject(SLANG) && SLANG.use_language == 'on' && SLANG.select_code)) { 276 lang_str = (SLANG['select_code'].toLowerCase()!='ko') ? 'en' : 'ko'; 277 } 278
279 var validArray = { 280 'validtype' : validtype, 281 'validplan' : validplan 282 } 283 284 $mobile_nav.attr('data-fixtype',fixbtnData['fixtype']) 285 .attr('data-fixlangtype',fixbtnData['fixlangtype']) 286 .attr('data-fixsize',fixbtnData['fixsize']) 287 .attr('data-fixlangsize',fixbtnData['fixlangsize']); 288 289 if(fixbtnData['fixtypeText']=='top') fh_sub += $.menuFixBtn.topSet(fixbtnData['fixtypeNum'],false,validArray,SLANG); 290 else fh_sub += $.menuFixBtn.sidebarSet(fixbtnData['fixtypeNum'],false,validArray,SLANG); 291 292 if(fixbtnData['fh-type'] == 'top') { 293 var menu_container = $pc_nav.find(' > .container').attr('class'), 294 /*fh_line = '<hr class="fh-line" style="display: none;"/>',*/ 295 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 296 fh_content = '\ 297 <div class="' + menu_container +' fh-container">\ 298 <div class="navbar-wrap">\ 299 <ul class="navbar-nav navbar-top cl-fixed-menu" id="fixed-menu">\ 300 ' + fh_sub + '\ 301 </ul>\ 302 </div>\ 303 </div>\ 304 '; 305 306 if($pc_nav.find('input[class*="cl-menu-"]').length > 0) $pc_nav.find('input[class*="cl-menu-"]').last().after(fh_content); 307 else $pc_nav.prepend(fh_content); 308 309 //if(!checkEllist) { 310 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).find('#fixed-menu').clone()); 311 else $mobile_nav.prepend($(fh_content).find('#fixed-menu').clone()); 312 //} 313 } else if(fixbtnData['fh-type'] == 'right' || fixbtnData['fh-type'] == 'sidebar') { 314 var fixed_menu_str = (fixbtnData['fh-type'] == 'sidebar') ? '' : 'navbar-right', 315 fh_line = '<hr class="fh-line visible-xs" style="display: none;"/>', 316 fh_content = '\ 317 <ul class="navbar-nav ' + fixed_menu_str + ' cl-fixed-menu" id="fixed-menu">\ 318 ' + fh_sub + '\ 319 </ul>\ 320 '; 321 322 if(checkEllist) { 323 if(fixbtnData['fh-type'] == 'right' && $pc_nav.find('.mini-home').length > 0) { 324 $pc_nav.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 325 } 326 } 327 328 $pc_nav.find('#fixed-menu').remove(); 329 $pc_nav.find('#tpl-menu').before(fh_content); 330 331 //if(!checkEllist) { 332 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).removeAttr('style').clone()); 333 else { 334 $(fh_content).removeAttr('style').clone(); 335 $mobile_nav.prepend($(fh_content).removeAttr('style').clone()); 336 } 337 //} 338 } 339 340 /* ë©ë´ ëìì¸ë³ê²½ :: slang make X => fheader init(pc_nav)ìì ì ì© ***/ 341 if(checkEllist) { 342 slang_html = $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],lang_sidebar,SLANG,'',validArray); 343 $pc_nav.find('.siteLANG.cl-fixbtn').remove(); 344 (fixbtnData['fh-type']=='sidebar') ? $pc_nav.find('.menu-inner').after(slang_html) : $pc_nav.find('#fixed-menu').append(slang_html); 345 346 $pc_nav.find('.siteLANG').removeClass('dropup').removeClass('dropdown'); 347 $pc_nav.find('.siteLANG .cl-lang').removeClass('dropdown-toggle'); 348 $pc_nav.find('.siteLANG .dropdown-menu').remove(); 349 } 350 } 351 352 // $mobile_nav.find('#fixed-menu').removeAttr('class'); 353 // $mobile_nav.find('#tpl-menu').prop({class:'nav navbar-nav'}).find('ul').prop({class:'',id:''}); 354 // $mobile_nav.find('#tpl-menu').removeAttr('class'); 355 $mobile_nav.find('#tpl-menu').removeClass('hide').removeClass('preloading'); 356 $mobile_nav.find('#tpl-menu').removeAttr('style'); 357 358 $mobile_nav.find('.dropdown').not('.siteUM.cl-fixbtn').each(function() { 359 $(this).addClass('menu-has-children').removeClass('dropdown'); 360 $(this).find('> a').removeClass('dropdown-toggle'); 361 $(this).find('> a i').remove(); 362 363 if(($(this).hasClass('active') || $(this).hasClass('open')) && $(this).find('li.active').length > 0) { 364 if($(this).find('li.active').length > 0) $(this).removeClass('active').addClass('open'); 365 $(this).find('> a').nextAll('ul').eq(0).slideToggle(); 366 $(this).prepend('<i class="fa fa-chevron-up"></i>'); 367 } else { 368 $(this).prepend('<i class="fa fa-chevron-down"></i>'); 369 } 370 }); 371 372 if(checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 373 $mobile_nav.find('#fixed-menu').wrap('<div class="mobilenav_top"></div>'); 374 375 /* ë©ë´ ëìì¸ë³ê²½ :: slang make X => fheader init(mobile_nav)ìì ì ì© ***/ 376 if(checkEllist) { 377 var psearch_ellist = `
378 <li class="siteSEARCH"> 379 <a href="javascript:;" class="psearch-btn"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a> 380 <div class="psearch-overlay"> 381 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 382 <div class="psearch-body"> 383 <span class="psearch-wrap"> 384 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 385 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 386 </span> 387 </div> 388 </div> 389 </li> 390 `; 391 var sitelangStr = $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false,'',true); 392 393 var hide_UM = (s_validtype=='BN' || s_validtype=='SM') ? '' : 'hide'; 394 $mobile_nav.find('.mobilenav_top').prepend('<div class="login-content siteUM"><a href="javascript:;" class="login '+hide_UM+'">' + $.lang[lang_str]['manager.site-um.mobile.login'] + clSVG('select_arrow',16,16) + '</a></div>'); 395 if(s_validtype=='SM') { 396 $mobile_nav.find('#fixed-menu .siteSEARCH').replaceWith(psearch_ellist); 397 } 398 if(s_validtype && sitelangStr) $mobile_nav.append(sitelangStr).find('.cl-fixbtn.siteLANG'); 399 } 400 //if(checkEllist) $mobile_nav.find('#fixed-menu .mobilenav_top').prepend(ellist_mobile_logincontent); 401 } 402 403 var fh_line = '<hr class="fh-line" />'; 404 (checkFixTypeMenu) ? $mobile_nav.find('.mobilenav_top').after(fh_line) : $mobile_nav.find('#fixed-menu').after(fh_line); 405 //$mobile_nav.find('#tpl-menu').after(fh_line); 406 407 var menu_selector = (checkEllist) ? '.elviewhtml .menu-'+sid : '.el-menu .menu-'+sid, 408 $checkMenuEL = $(menu_selector), 409 check_mobile_design = $checkMenuEL.hasClass('mobile-design-clear') ? false : true, 410 check_mnormal = ($checkMenuEL.find('.cl-menu-normal').length > 0) ? true : false, 411 check_msidebar = ($checkMenuEL.find('.cl-menu-sidebar').length > 0) ? true : false, 412 check_moption = ($checkMenuEL.find('.cl-menu-option').length > 0) ? true : false; 413 if(checkEllist) $mobile_nav.addClass('elview'); 414 if(check_moption) $mobile_nav.addClass('moption'); 415 else if(check_mnormal) $mobile_nav.addClass('mnormal'); 416 else if(check_msidebar) $mobile_nav.addClass('msidebar'); 417 if(!check_mobile_design) { 418 $mobile_nav.addClass('mobile-design-clear menu-'+sid); 419 $mobile_nav.find('.menu-has-children > ul').addClass('dropdown-menu'); 420 } 421 422 $('.dsgn-body').append($mobile_nav); 423 $('.dsgn-body').append('<div id="mobile-body-overly"><span class="pull-right hand" id="mobile-nav-toggle"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Menu"></span></div>'); 424 425 if(checkTemplate) { 426 $(document).find('#mobile-nav').find('.mobilenav_top').hide(); 427 $(document).find('#mobile-nav').find('.mobilenav_top').next('.fh-line').hide(); 428 } 429 430 var mobile_selector = (checkEllist) ? ['.elview','.elviewhtml'] : ['','.el-menu']; 431 if(check_moption || check_mnormal || check_msidebar) { 432 433 mobile_selector[0] += (check_moption) ? '.moption' : ((check_msidebar) ? '.msidebar' : '.mnormal'); 434 mobile_selector[1] += (check_moption) ? ' .cl-menu-option ~ .container' : ((check_msidebar) ? ' .cl-menu-sidebar ~ .container' : ' .cl-menu-normal ~ .container'); 435 436 var nav_font = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-fname'), 437 nav_color = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-color'), 438 nav_color_active = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-color-active'), 439 nav_fixed_key = (check_mobile_design) ? '--menu-fname' : '--fixed-menu-color', 440 fixed_color = (checkFixTypeMenu) ? getComputedStyle(document.querySelector(menu_selector)).getPropertyValue(nav_fixed_key) : ''; 441 } else { 442 var nav_font = (checkFixTypeMenu) ? $('.menu-' + sid + ' ul#tpl-menu > li > a').css('font-family') : $('.menu-' + sid + ' ul.navbar-nav > li > a').css('font-family'); 443 if(typeof nav_font != 'undefined' && nav_font) { 444 nav_font = nav_font.replace(/\'/gi,'').replace(/\"/gi,''); 445 446 var nav_color = $('.menu-' + sid + ' ul.navbar-nav > li > a:not(:hover)').css('color'), 447 nav_color_active = $('.menu-' + sid + ' ul.navbar-nav > li.active > a').css('color'), 448 fixed_color = ''; 449 if(checkFixTypeMenu) { 450 fixed_color = ($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? $('.menu-' + sid + ' ul.cl-fixed-menu >
450 li.cl-fixbtn a').css('color') : $('.el-menu .navbar-toggle .icon-bar').css('background-color'); 451 } 452 } 453 454 if(typeof nav_color_active == 'undefined' || nav_color_active == '') nav_color_active = nav_color; 455 var mcss_fixed = (checkFixTypeMenu) ? '\ 456 '+mobile_selector[1]+' .siteCART.micon {color : ' + fixed_color + '; }\ 457 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear .mobilenav_top a {color : ' + fixed_color + '; }\ 458 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear .mobilenav_top svg {fill : ' + fixed_color + '; }\ 459 ' : '', 460 mcss_more = '\ 461 @media only screen and (max-width:768px) {\ 462 #mobile-nav'+mobile_selector[0]+' { font-family: ' + nav_font + '; }\ 463 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children i,\ 464 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children i:focus { color: ' + nav_color + '; }\ 465 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children.active i { color: ' + nav_color_active + '; }\ 466 '+ mcss_fixed +'\ 467 }\ 468 '; 469 470 var menu_css_selector = (checkEllist) ? '.elviewcss' : '#menu-'+sid; 471 $(menu_css_selector).append(mcss_more); 472 } 473 474 $('.el-menu').removeClass('_ready'); 475 }, 476 set: function(mode) { 477 // console.log('fheader set'); 478 var checkEllist = (typeof mode != 'undefined' && mode=='ellist') ? true : false, 479 checkStorageCapture = (typeof isStoragebox != 'undefined' && isStoragebox && typeof isCapture != 'undefined' && isCapture) ? true : false, 480 $fh = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 481 fh_type = $fh.attr('data-fh-type'), 482 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 483 484 if($fh.find('#fixed-menu').children().length == 0) { 485 if(fh_type == 'top') $fh.find('.fh-container').remove(); 486 else if(fh_type == 'right' || fh_type == 'sidebar') $fh.find('#fixed-menu, .fh-line').remove(); 487 $('#mobile-nav #fixed-menu, #mobile-nav .fh-line').remove(); 488 } 489 490 if(!checkFixTypeMenu) { 491 if(checkStorageCapture) { 492 } else { 493 if(fh_type == 'top') { 494 $fh.find('.fh-container').eq(0).slideToggle(); 495 } else if(fh_type == 'right' || fh_type == 'sidebar') { 496 $fh.find('#fixed-menu').slideToggle(); 497 } 498 499 $fh.find('.fh-line').slideToggle(); 500 } 501 } 502 503 setTimeout(function() { 504 if(checkEllist) { 505 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 506 $fh.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 507 } else if(checkFixTypeMenu && fh_type == 'sidebar') { 508 $fh.find('#fixed-menu').css('overflow',''); 509 } 510 } else { 511 if($('#page-loading-css').length == 0) { 512 setTimeout(function() { 513 $.fheader.position(); 514 },400); 515 } 516 } 517 518 },400); 519 }, 520 position: function() { 521 if(!$('header.navbar').hasClass('navbar-fheader')) { 522 var parentDocument = $(window.parent.document), 523 $detail_modal = parentDocument.find('.product-detail-modal'); 524 if($detail_modal.length) { 525 ($('.openBandBanner').length) ? 526 $('.dsgn-body').css('padding-top','120px') : 527 $('.dsgn-body').css('padding-top','0px'); 528 } 529 return false; 530 } 531 532 // console.log('fheader position'); 533 // if(!$('header.navbar').hasClass('navbar-fheader')) return false; 534 535 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 536 $fh = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 537 fh_type = $fh.attr('data-fh-type'), 538 fh_postion = (typeof $fh.attr('data-position') != 'undefined') ? $fh.attr('data-position') : '', 539 fh_transparent = ($fh.hasClass('transparent')) ? true : false, 540 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 541 542 var body_width = (PAGE_MODE == 'c') ? $('body').width() : window.innerWidth; 543 544 if(body_width <= 768) { 545 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 546 $fh.find('.mini-home').parent().removeAttr('style'); 547 } 548 $fh.find('.psearch-overlay.open').removeClass('open'); 549 $('.cl-popupBanner').removeClass('zindex20'); 550 if(!checkFixTypeMenu) $fh.find('#fixed-menu-sub').closest('.fh-container').eq(0).hide(); 551 } else { 552 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 553 if(!checkFixTypeMenu) { 554 $fh.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 555 } 556 } 557 558 if(fh_type == 'right' && !$fh.hasClass('sidebar') && $fh.find(' > .container[data-fh-align]').length > 0) { 559 $.fheader.refreshFixedSub(); 560 } 561 562 $('#mobile-nav .psearch-overlay.open').removeClass('open'); 563 $('.cl-popupBanner').removeClass('zindex20'); 564 if($('.dsgn-body').hasClass('mobile-nav-active')) $fh.find('.navbar-toggle').click(); 565 } 566 567 if(fh_transparent) { 568 if($('.cl-bandBanner').length == 0) { 569 $('.dsgn-body').css('padding-top','0px'); 570 if(PAGE_MODE == 'c') $('.el-menu_ctrl .config-element').removeAttr('style'); 571 } 572 } else if(fh_postion != 'relative') { 573 if(fh_type == 'sidebar' && body_width > 768) { 574 var pt = '0px'; 575 if(typeof getComputedStyle(document.querySelector('body')).getPropertyValue('--bandBanner-height-pc') != 'undefined') { 576 pt = getComputedStyle(document.querySelector('body')).getPropertyValue('--bandBanner-height-pc'); 577 } 578 $('.dsgn-body').css('padding-top',pt); 579 return false;
580 } 581 } 582 583 if(PAGE_MODE == 'c') { 584 if($('.dsgn-body').get(0).scrollHeight > $('.dsgn-body').innerHeight()) { 585 var scrollbar_gap = window.innerWidth - $('.dsgn-body').get(0).clientWidth; 586 $('.navbar-fixed-top, .navbar-fixed-bottom').css('right',scrollbar_gap); 587 } else { 588 $('.navbar-fixed-top, .navbar-fixed-bottom').removeAttr('style'); 589 } 590 } 591 if(checkEllist) { 592 if(checkFixTypeMenu) setFixedMenuCss(true); 593 } else { 594 var delay_time = (PAGE_MODE == 'c') ? 800 : 0; 595 setTimeout(function() { 596 var header_h = (fh_transparent || ($fh.hasClass('sidebar') && $('.dsgn-body').width() > 767) ) ? 0 : $fh.outerHeight(), 597 band_h = $.siteBanner.getBandHeight(); 598 if($fh.find('.cl-menu-option.open:not(.single:not(.nfullDrop))').length > 0 && $fh.find('.cl-menu-option.open').is('[data-moption="nfull"], [data-moption="ntoggle"]')) { 599 var hide_h = $fh.find('.moption-container').outerHeight(); 600 header_h -= hide_h; 601 } 602 $('.dsgn-body').css('padding-top', (band_h + header_h)+'px'); 603 if($('.el_0.element').is('[data-type="gallery"][data-type2="premium"][data-feature*=fixedscroll]')) gjs01SetFixedscroll($('.el_0.element')); 604 }, delay_time); 605 606 if(PAGE_MODE == 'c') { 607 setTimeout(function() { 608 var btn_top = $('header.navbar').outerHeight(); 609 $('.addElementButton.addel-menu').css('top',btn_top + 'px'); 610 }, delay_time+200); 611 } 612 } 613 } 614 } 615 616 $.moption = { 617 getList: function(menu_selector) { 618 var checkEditList = (menu_selector.match(/^\.elmenu-color-edit/gi)) ? true : false, 619 moption_list = []; 620 621 $(menu_selector).find('#tpl-menu > li').each(function() { 622 var tmp_child = [], 623 tmp_main = $(this); 624 if(tmp_main.hasClass('dropdown')) { 625 tmp_main.find('.dropdown-menu > li').each(function() { 626 var tmp_sub = $(this); 627 tmp_child.push({ 628 'idx0': moption_list.length, 629 'idx1': tmp_child.length, 630 'name': tmp_sub.find(' > a').eq(0).text().trim(), 631 'active': (tmp_sub.hasClass('active')) ? 'active' : '', 632 'href': (checkEditList) ? 'javascript:;' : '', 633 'target': '', 634 'isbookmark': '', 635 'isflink': '', 636 'depth': 1, 637 'children': tmp_child, 638 }); 639 }); 640 } 641 642 moption_list.push({ 643 'idx0': moption_list.length, 644 'name': tmp_main.find(' > a').eq(0).text().trim(), 645 'active': (tmp_main.hasClass('active')) ? 'active' : '', 646 'href': (checkEditList) ? 'javascript:;' : '', 647 'target': '', 648 'isbookmark': '', 649 'isflink': '', 650 'depth': 0, 651 'children': tmp_child, 652 }); 653 }); 654 return moption_list; 655 }, 656 init: function(mode) { 657 // console.log('fh moption(mode: '+mode+')'); 658 659 var checkElviewer = ''; 660 if(window.parent && window.parent != this && $('.elviewhtml').length > 0) { 661 checkElviewer = $('#el-list-image .elgrid.active', window.parent.document).find('.blockname-str').text().trim(); 662 } 663 664 var s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 665 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE, 666 checkGabia = (s_service.indexOf('gabia') > -1) ? true : false, 667 checkEllist = (typeof mode != 'undefined' && mode == 'ellist') ? true : false, 668 checkMenuEdit = (typeof mode != 'undefined' && mode == 'menuedit') ? true : false, 669 checkTemplate = (typeof property != 'undefined' && property.TEMPLATE && property.TEMPLATE=='1') ? true : false, 670 sid = (PAGE_MODE == 'c') ? ((checkEllist) ? checkElviewer.replace(/menu-/gi,'') : SID) : property.SID, 671 pc_seletor = (checkEllist) ? '.elviewhtml header.navbar' : ((checkMenuEdit) ? '.elmenu-color-edit header.navbar' : '.el-menu header.navbar'), 672 $pc_nav = $(pc_seletor), 673 $mobile_nav = $pc_nav.find('#tpl-menu').closest('.navbar-menu-'+sid).clone(), 674 checkFixTypeMenu = (typeof $pc_nav.attr('data-fixtype') != 'undefined' && $pc_nav.attr('data-fixtype')) ? true : false; 675 676 var moption = $pc_nav.find('.cl-menu-option').attr('data-moption'), 677 checkDrawClmoption = ($.inArray(moption, ['nfull','ntoggle']) > -1) ? true : false; 678 if(checkDrawClmoption) { 679 var moption_table = '<ul class="cl-'+moption+' cl-moption"></ul>', 680 moption_col = '<li class="cl-moption-col"></li>', 681 moption_row = '<div class="cl-moption-row"></div>'; 682 683 if($pc_nav.find('.container.moption-container').length > 0) $pc_nav.find('.container.moption-container').html('<div class="moption-row"></div>'); 684 else $pc_nav.find('.container:not(:is(.fh-container, .moption-container))').after('<div class="container moption-container"><div class="moption-row"></div></div>'); 685 var $moptionContainer = $pc_nav.find('.container.moption-container'), 686 $moptionRow = $moptionContainer.find('.moption-row'); 687 if($pc_nav.find('.container:not(:is(.fh-container, .moption-container))').hasClass('full-width')) $moptionContainer.addClass('full-width'); 688 689 $moptionRow.append(moption_table); 690 var menu_option = (PAGE_MODE == 'c') ? MENUOPTION : property.MENUOPTION, 691 $moptionTable = $moptionContainer.find('.cl-moption'); 692 693 if(checkMenuEdit) menu_option = $.moption.getList(pc_seletor); 694 $.each(menu_option, function(idx0, obj0) { 695 var $tmpCol = $(moption_col), 696 tmp_row = moption_row.replace(/cl\-moption\-row\"\>\</g,'cl-moption-row '+obj0.active+'"><a href="' + obj0.href + '" ' + obj0.target + obj0.isbookmark + obj0.isflink + '>
696' + obj0.name + '</a><'); 697 if(obj0.children.length > 0) { 698 $.each(obj0.children, function(idx1, obj1) { 699 tmp_row += moption_row.replace(/cl\-moption\-row\"\>\</g,'cl-moption-row '+obj1.active+'" data-parent="'+obj1.idx0+'"><a href="' + obj1.href + '" ' + obj1.target + obj1.isbookmark + obj1.isflink + '>' + obj1.name + '</a><'); 700 }); 701 } 702 703 $tmpCol.append(tmp_row); 704 if($tmpCol.find('.cl-moption-row').length > 1) $tmpCol.addClass('has-sub'); 705 if(menu_option.length-1 == idx0) $tmpCol.addClass('last-sub'); 706 $moptionTable.append($tmpCol); 707 }); 708 } 709 710 switch(moption) { 711 case 'nfull': 712 713 var hasSubMenu = (PAGE_MODE == 'c') ? MENUCHECK.sub : property.MENUCHECK.sub; 714 if(hasSubMenu) $pc_nav.find('.cl-menu-option').removeClass('single'); 715 else $pc_nav.find('.cl-menu-option').addClass('single'); 716 717 $pc_nav.find('#tpl-menu > li, .moption-container').off('mouseover mouseleave').on({ 718 mouseover: function(e) { 719 if($(this).find('.cl-moption').is(':empty') || (PAGE_MODE == 'c' && $('#el-blockConfig').hasClass('open') && selectEL != 'el-menu')) return false; 720 721 $(this).closest('header').find('.cl-menu-option').addClass('open'); 722 }, 723 mouseleave: function(e) { 724 if($(this).find('.cl-moption').is(':empty')) return false; 725 726 if( $(this).closest('header').find('.cl-menu-option').hasClass('fixed') || 727 $(this).closest('header').find('.cl-menu-option').hasClass('nfullDrop') || 728 $('#el-blockConfig').is('.open') 729 ) { 730 return false; 731 } 732 733 $(this).closest('header').find('.cl-menu-option').removeClass('open'); 734 if($(this).closest('header').find('.cl-menu-option').is('[data-mwidth="all"]')) { 735 $.fheader.position(); 736 } 737 } 738 }); 739 break; 740 741 case 'ntoggle': 742 break; 743 744 default: 745 break; 746 } 747 748 $pc_nav.find('.cl-drop-fixed-menu ~ .navbar-toggle, .cl-menu-option ~ .container .navbar-toggle').off('click').on({ 749 click: function() { 750 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',true); 751 }, 752 }); 753 754 755 $pc_nav.ready(function() { 756 setTimeout(function() { 757 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) $.moption.checkNfullDrop(pc_seletor); 758 else if($pc_nav.find('.cl-menu-option[data-moption="ntoggle"]').length > 0 && $pc_nav.is('[data-fh-type="right"]')) $.moption.drawClDropFixedmenu($pc_nav); 759 }, 300); 760 }); 761 762 $(window).resize(function() { 763 if(this.moptionResizeTO) { 764 clearTimeout(this.moptionResizeTO); 765 } 766 this.moptionResizeTO = setTimeout(function() { 767 $(this).trigger('resizeMoptionEnd'); 768 }, 300); 769 }); 770 $(window).on('resizeMoptionEnd', function() { 771 $.fheader.position(); 772 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) $.moption.checkNfullDrop(pc_seletor); 773 else if($pc_nav.find('.cl-menu-option[data-moption="ntoggle"]').length > 0 && $pc_nav.is('[data-fh-type="right"]')) $.moption.drawClDropFixedmenu($pc_nav); 774 775 if($pc_nav.find('.cl-menu-option').length > 0 && $('body').width() < 767) { 776 $pc_nav.find('.cl-menu-option').removeClass('open'); 777 } else { 778 if ($('header #tpl-menu').children().length) $('header.navbar-fheader .navbar-toggle').css({ 'visibility': 'visible' }); 779 else $('header.navbar-fheader .navbar-toggle').css({ 'visibility': 'hidden' }); 780 $('.dsgn-body').removeClass('mobile-nav-active'); 781 $('#mobile-body-overly').removeClass('in'); 782 $('#mobile-nav .siteLANG.cl-fixbtn').hide(); 783 } 784 }); 785 }, 786 setRootBlock(thisBlock,root_key,usedtoggle) { 787 if( typeof thisBlock != 'undefined' && thisBlock.length > 0 && thisBlock.find('.cl-menu-option').length > 0) { 788 if(root_key == '--block-height') { 789 var h = thisBlock.outerHeight(); 790 document.querySelector('header').style.setProperty('--block-height', h + 'px', null); 791 792 if($('#el-blockConfig').hasClass('open')) { 793 if(!thisBlock.find('.cl-menu-option').hasClass('open')) thisBlock.find('.cl-menu-option').toggleClass('open'); 794 } else if(usedtoggle) { 795 thisBlock.find('.cl-menu-option').toggleClass('open'); 796 } else { 797 thisBlock.find('.cl-menu-option').removeClass('open'); 798 } 799 800 if(thisBlock.find('.cl-menu-option').is('.nfullDrop[data-mo
800ption="nfull"]')) { 801 var h_p_b = thisBlock.css('padding-bottom').replace(/[^0-9]/g,'') * 1; 802 document.querySelector('header').style.setProperty('--cl-nfull-top', h_p_b + 'px', null); 803 } 804 } 805 } 806 807 }, 808 drawClDropFixedmenu: function(pcNav) { 809 if($('header #fixed-menu').length > 0) { 810 var drop_fixed_menu = '<ul class="cl-drop-fixed-menu">' + $('header #fixed-menu').html() + '</ul>'; 811 if(pcNav.find('.cl-drop-fixed-menu').length > 0) pcNav.find('.cl-drop-fixed-menu').replaceWith(drop_fixed_menu); 812 else if(pcNav.find('.navbar-header .micon').length > 0) pcNav.find('.navbar-header .micon').before(drop_fixed_menu); 813 else pcNav.find('.navbar-header .navbar-toggle').before(drop_fixed_menu); 814 } 815 }, 816 checkNfullDrop: function(nav_selector) { 817 var $pc_nav = $(nav_selector), 818 isellist = (nav_selector.match(/^\.elviewhtml/gi)) ? true : false, 819 iselmenuedit = (nav_selector.match(/^\.elmenu-color-edit/gi)) ? true : false, 820 isparent = (typeof window.parent != 'undefined' && window.parent != this) ? true : false; 821 822 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) { 823 824 var checkBlockConfig = $('#el-blockConfig').hasClass('open'); 825 if(checkBlockConfig || isparent) { 826 $pc_nav.find('.cl-drop-fixed-menu').remove(); 827 $pc_nav.find('.cl-menu-option').removeAttr('data-nfull-drop').removeClass('nfullDrop'); 828 } 829 830 var delay = (checkBlockConfig) ? 500 : 0; 831 setTimeout(function() { 832 var checkMfullDrop = $pc_nav.find('.cl-menu-option').is('[data-nfull-drop]'), 833 // checkMenuOrg = ($pc_nav.find('.cl-menu-option').is('[data-mwidth]')) ? false : true, 834 // tpl_menu_selector = (checkMenuOrg) ? nav_selector+' #tpl-menu' : nav_selector+' .cl-moption', 835 tpl_menu_selector = nav_selector + ' #tpl-menu', 836 m_wrap = $(tpl_menu_selector).first().width(), 837 m_w = 0, 838 mdrop_onoff = (checkMfullDrop) ? $pc_nav.find('.cl-menu-option').hasClass('nfullDrop') : false; 839 840 var fixed_menu_w = $pc_nav.find('#fixed-menu').outerWidth(); 841 if($pc_nav.is('[data-fh-type="right"][data-fixtextalign="center"]')) { 842 $pc_nav.find(nav_selector+' #tpl-menu').css('padding-left',fixed_menu_w + 'px'); 843 } else { 844 document.querySelector(nav_selector+' #tpl-menu').style.removeProperty('padding-left'); 845 } 846 847 if(checkMfullDrop) { 848 var m_container = $pc_nav.find('.container:not(.moption-container, .fh-container)').eq(0).width(), 849 m_drop = $pc_nav.find('.cl-menu-option').attr('data-nfull-drop'); 850 if(Number(m_drop) > 0 && m_container > Number(m_drop)) { 851 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeClass('nfullDrop'); 852 } else { 853 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').addClass('nfullDrop'); 854 setFixedMenuCss(isellist); 855 } 856 } else { 857 $(tpl_menu_selector).first().children().each(function() { 858 m_w += $(this).outerWidth(); 859 }); 860 861 var m_top = $(tpl_menu_selector).first().children().first().offset().top, 862 m_last = $(tpl_menu_selector).first().children().last().offset().top; 863 if(m_top != m_last || m_w > m_wrap) { 864 var mcontainer = $pc_nav.find('.container:not(.moption-container, .fh-container)').eq(0).width(), 865 mdrop = mcontainer + (m_w - m_wrap); 866 867 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').attr('data-nfull-drop',mdrop).addClass('nfullDrop'); 868 setFixedMenuCss(isellist); 869 } else { 870 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeAttr('data-nfull-drop'); 871 } 872 } 873 874 if($pc_nav.is('[data-fh-type="right"]') && $pc_nav.find('.cl-menu-option').hasClass('nfullDrop')) { 875 $.moption.drawClDropFixedmenu($pc_nav); 876 } 877 878 // if(iselmenuedit) $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeClass('nfullDrop'); 879 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',false); 880 }, delay); 881 } else { 882 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',false); 883 } 884 885 }, 886 } 887 888 $.psearch = { 889 init: function() { 890 // console.log('psearch init');
891 if(!$('.el-menu header.navbar').hasClass('navbar-fheader')) return false; 892 893 // psearch - ì¼í몰 ìê¸ì ì¬ì©ì¬ë¶ ì²´í¬ í on/off 894 var s_validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN, 895 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 896 checkSM = (s_validplan && s_validtype == 'SM') ? true : false; 897 898 if(checkSM) $.psearch.set('on'); 899 else $.psearch.set('off'); 900 }, 901 set: function(onoff) { 902 // console.log('psearch set'); 903 if(!$('.el-menu header.navbar').hasClass('navbar-fheader')) return false; 904 905 if(onoff.match(/on/gi)) $.psearch.makeSiteSEARCH(); 906 else { 907 $('#fixed-menu, #fixed-menu-sub').find('.siteSEARCH').remove(); 908 } 909 }, 910 makeSiteSEARCH: function() { 911 // console.log('psearch makeSiteSearch'); 912 // ì°ì PC, MOBILE 구조 ëì¼íê² ì ì©í¨ => (menufixbtnì ì© ì ë©ë´ë¸ë) 913 914 /* Shopping Only KO Site */ 915 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 916 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 917 // $('#fixed-menu, #fixed-menu-sub').find('.siteSEARCH').remove(); 918 // return false; 919 // } 920 921 var pc_nav = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'); 922 var mobile_nav = $('#mobile-nav #fixed-menu'); 923 var checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false; 924 var checkLux = (PAGE_MODE == 'c') ? LUX : property.LUX; 925 var search_icon = (checkFixTypeMenu) ? clSVG('fixbtn_search4',28,28) : '<i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i>'; 926 927 var content = (checkFixTypeMenu) ? ` 928 <div class="psearch-overlay"> 929 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 930 <div class="psearch-body"> 931 <span class="psearch-wrap"> 932 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 933 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 934 </span> 935 </div> 936 </div> 937 ` : ` 938 <li class="siteSEARCH"> 939 <a href="javascript:;" class="psearch-btn"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a> 940 <div class="psearch-overlay"> 941 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 942 <div class="psearch-body"> 943 <span class="psearch-wrap"> 944 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 945 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 946 </span> 947 </div> 948 </div> 949 </li> 950 `; 951 var mobile_content = ` 952 <li class="siteSEARCH"> 953 <a href="javascript:;" class="psearch-btn">${search_icon}</a> 954 <div class="psearch-overlay"> 955 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 956 <div class="psearch-body"> 957 <span class="psearch-wrap"> 958 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 959 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 960 </span> 961 </div> 962 </div> 963 </li> 964 `; 965 966 if(pc_nav.find('.siteSEARCH').length > 0) { 967 if(checkFixTypeMenu){ 968 pc_nav.find('.siteSEARCH').find('a').addClass('psearch-btn'); 969 pc_nav.find('.siteSEARCH').append(content); 970 } else pc_nav.find('.siteSEARCH').replaceWith(content); 971 } else pc_nav.prepend(content); 972 973 if(mobile_nav.find('.siteSEARCH').length>0) { 974 if(checkFixTypeMenu) { 975 var regExp = new RegExp(/cl\-fixbtn|cl\-visible/, "gi"), 976 addClass = (mobile_nav.find('.siteSEARCH').attr('class').match(regExp)!==null) ? mobile_nav.find('.siteSEARCH').attr('class').match(regExp).join(" ") : '', 977 $site_search = mobile_nav.find('.siteSEARCH'); 978 979 mobile_nav.find('.siteSEARCH').find('a').addClass('psearch-btn'); 980 mobile_nav.find('.siteSEARCH').replaceWith(mobile_content); 981 mobile_nav.find('.siteSEARCH').addClass(addClass); 982 983 if(pc_nav.find('.siteSEARCH').css('display')=='none') mobile_nav.find('.siteSEARCH').hide(); 984 } else mobile_nav.find('.siteSEARCH').replaceWith(mobile_content); 985 } else mobile_nav.prepend(mobile_content); 986 987 // #fixed-menu-sub psearch not working 988 // pc_nav.each(function() { 989 // if($(this).attr('id') == 'fixed-menu-sub') { 990 // $(this).find('.psearch-overlay').remove(); 991 // } 992 // }); 993 }, 994 groupByTab: function(list) { 995 var groups = { 996 all: [], 997 shopping: [], 998 forum: [], 999 gallery: [], 1000 etc: [] 1001 }; 1002 1003 for (var i = 0; i < list.length; i++) { 1004 var o = list[i]; 1005 var tab = o.tab || 'etc'; 1006 1007 groups.all.push(o); 1008 1009 if (!groups[tab]) tab = 'etc'; 1010 groups[tab].push(o); 1011 } 1012 1013 return groups; 1014 }, 1015 initTabs: function($wrap){ 1016 var groups = $wrap.data('psearchGroups') || {}; 1017 var $tabs = $wrap.find('.psearch-tabs'); 1018 if($tabs.length==0) return; 1019 1020 var active = $tabs.attr('data-active') || 'all'; 1021 1022 // ì´ê¸° íì±í 1023 $wrap.find('.psearch-tab-nav .tab-item').removeClass('active'); 1024 $wrap.find('.psearch-tab-nav .tab-item[data-tab="'+active+'"]').addClass('active'); 1025 1026 $wrap.find('.psearch-panel').hide(); 1027 $wrap.find('.psearch-panel[data-tab="'+active+'"]').show(); 1028 1029 // í´ë¦ ì´ë²¤í¸ 1030 $wrap.find('.psearch-tab-nav .tab-item').live('click', function(e){ 1031 e.preventDefault(); 1032 var tab = $(this).attr('data-tab'); 1033 1034 var tabPages = $wrap.data('psearchTabPages') || {}; 1035 tabPages[tab] = 1; 1036 $wrap.data('psearchTabPages', tabPages); 1037 1038 $tabs.attr('data-active', tab); 1039 if($wrap.find('#psearch-tab').length) $wrap.find('#psearch-tab').val(tab); 1040 1041 $wrap.find('.psearch-tab-nav .tab-item').removeClass('active'); 1042 $(this).addClass('active'); 1043 1044 $wrap.find('.psearch-panel').hide(); 1045 $wrap.find('.psearch-panel[data-tab="'+tab+'"]').show(); 1046 1047 var cnt = groups[tab] ? groups[tab].length : 0, 1048 cnt_lang = (LANG == 'ko') ? 'ê°' : ''; 1049 $wrap.find('.psearch-total-count').html('<strong>'+cnt + cnt_lang +'</strong><span class="count-txt">' + $.lang[LANG]['fheader.psearch.result'] + '</span>'); 1050 }); 1051 }, 1052 view: function() { 1053 // console.log('psearch view'); 1054 // var deferred = $.Deferred(); 1055 1056 var check_p = (property.PAGE == 'psearch') ? true : false;
1057 if(check_p) { 1058 var p_stx = property.PARENT?.psearch_stx ?? ''; 1059 var p_total = property.PARENT?.psearch_total ?? 0; 1060 var p_list = property.PARENT['psearch_list']; 1061 var p_page_num = property.PARENT['psearch_num']; 1062 var p_view = property.PARENT['psearch_view']; 1063 var p_selector = (property.LUX) ? 'psearch-block' : 'psearch-view'; 1064 1065 let psearch_view = ''; 1066 if(property.LUX) { 1067 //lux search view 1068 psearch_view = property.PARENT['psearch_eltag']; 1069 if($('style#psearchblockcss').length == 0) { 1070 $('body').append('<link rel="stylesheet" type="text/css" id="psearchblockcss" href="/css/block/psearch_block.css">'); 1071 } 1072 if($('script#psearchblockjs').length == 0) { 1073 var psearchJS = document.createElement('script'); 1074 psearchJS.setAttribute('src', '/js/block/psearch_block.js'); 1075 psearchJS.setAttribute('id', 'psearchblockjs'); 1076 document.body.appendChild(psearchJS); 1077 1078 psearchJS.onload = function() { 1079 $('body').append('<input type="hidden" id="psearchblockjs" data-src="/js/block/psearch_block.js">'); 1080 $(`.${p_selector}`).fadeIn().removeAttr('style'); 1081 1082 if($('.psearch-block .pfilter-fbox .fcol-c-ul:not([data-key="psearch"]) > li.active').length > 0) { 1083 if($('.psearch-block .pfilter-fbox .fcol-c-ul[data-key="brand"] > li.active').length > 0) { 1084 $('.psearch-block .pfilter-fbox .fcol-c-ul[data-key="brand"]').closest('.frow').addClass('open'); 1085 } 1086 var cancel_svg = clSVG('close',10,10,true,'pick-cancel-btn'); 1087 $('.psearch-block .pfilter-fbox .fcol-c-ul:not([data-key="psearch"]) > li.active').each(function() { 1088 var isOnly = $(this).closest('ul').is('[data-only="true"]'); 1089 var pfilter_key = $(this).closest('ul').attr('data-key'); 1090 var pfilter_name = $(this).text().trim(); 1091 var pfilter_val = $(this).attr('data-val'); 1092 var pfilter_input = (isOnly) ? pfilter_key : pfilter_key+'[]'; 1093 if(isOnly) $('#psearchForm .psearch-pick.'+pfilter_key+'').remove(); 1094 $('#psearchForm').append('<input type="hidden" class="psearch-pick '+pfilter_key+'" name="'+pfilter_input+'" value="'+pfilter_val+'" />'); 1095 $('.psearch-block .pfilter-fbox .frow.last .fcol-c-ul[data-key="psearch"]').append('<li data-key="'+pfilter_key+'" data-val="'+pfilter_val+'"><div class="fcol-c-label"><span class="fcol-c-name">'+pfilter_name+'</span>'+cancel_svg+'</div></li>'); 1096 }); 1097 $('.psearch-block .pfilter-fbox .frow.last').removeClass('hide'); 1098 } else { 1099 $('.psearch-block .pfilter-fbox .frow.last').addClass('hide'); 1100 } 1101 } 1102 } 1103 1104 } else { 1105 //shopping search view 1106 var wrap = ($('header.navbar .container').hasClass('full-width')) ? 'full-width' : ''; 1107 psearch_view = '\ 1108 <div class="psearch-view" data-sid="'+property.SID+'" style="height:' + ($(document).height() * 0.2) + 'px; display: none;">\ 1109 <input type="hidden" id="psearch-stx" value="' + p_stx + '" />\ 1110 <input type="hidden" id="psearch-total" value="' + p_total + '" />\ 1111 <input type="hidden" id="psearch-tab" value="all" />\ 1112 <div class="container ' + wrap + '">\ 1113 <div class="psearch-body">\ 1114 <div class="row">\ 1115 <div class="col-sm-offset-2 col-md-offset-4 col-xs-12 col-sm-8 col-md-4">\ 1116 <span class="psearch-wrap">\ 1117 <input class="psearch-input" type="text" name="" placeholder="' + $.lang[LANG]['fheader.psearch'] + '" value="' + p_stx + '">\ 1118 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a>\ 1119 </span>\ 1120 </div>\ 1121 </div>\ 1122 '; 1123 1124 // í ë¶ë¥ 1125 var groups = $.psearch.groupByTab(p_list); 1126 1127 var PAGE_SIZE = 8; 1128 var PAGE_VIEW = 5; 1129 var $pEL = $('.'+p_selector); 1130 $pEL.data('psearchPageSize', PAGE_SIZE); 1131 $pEL.data('psearchPageView', PAGE_VIEW); 1132 1133 // íë³ 1134 $pEL.data('psearchTabPages', { all:1, shopping:1, forum:1, gallery:1, etc:1 }); 1135 1136 // all ì¹ì ë³ 1137 $pEL.data('psearchAllSectionPages', { shopping:1, gallery:1, forum:1, etc:1 }); 1138 1139 var tabCount = { 1140 all: groups.all.length, 1141 shopping: groups.shopping.length, 1142 forum: groups.forum.length, 1143 gallery: groups.gallery.length, 1144 etc: groups.etc.length 1145 }; 1146 1147 // 기본 íì± í(ì¼í>ê²ìí>ê°¤ë¬ë¦¬>기í) 1148 var activeTab = 'all'; 1149 // ì ì²´ ê²ìê²°ê³¼ ì 1150 var totalCnt = tabCount.shopping + tabCount.forum + tabCount.gallery + tabCount.etc; 1151 if (totalCnt === 0) { //ê²ìê²°ê³¼ 0 1152 activeTab = 'all'; 1153 } else { 1154 if (tabCount.shopping > 0 && totalCnt === tabCount.shopping) { 1155 activeTab = 'shopping'; 1156 } else if (tabCount.forum > 0 && totalCnt === tabCount.forum) { 1157 activeTab = 'forum'; 1158 } else if (tabCount.gallery > 0 && totalCnt === tabCount.gallery) { 1159 activeTab = 'gallery'; 1160 } else if (tabCount.etc > 0 && totalCnt === tabCount.etc) { 1161 activeTab = 'etc'; 1162 } else { 1163 activeTab = 'all'; 1164 } 1165 } 1166 1167 var p_sort = (typeof property.PARENT['psearch_sort'] != 'undefined' && property.PARENT['psearch_sort']) ? property.PARENT['psearch_sort'] : '
1167new', 1168 cnt_lang = (LANG == 'ko') ? 'ê°' : ''; 1169 // í ë¤ë¹ 1170 psearch_view += '\ 1171 <div class="psearch-tabs" data-active="'+activeTab+'">\ 1172 <ul class="psearch-tab-nav">\ 1173 <li class="tab-item" data-tab="all">' + $.lang[LANG]['fheader.psearch.all'] + ' <span class="cnt">('+tabCount.all+')</span></li>\ 1174 <li class="tab-item" data-tab="shopping">' + $.lang[LANG]['fheader.psearch.shopping'] + ' <span class="cnt">('+tabCount.shopping+')</span></li>\ 1175 <li class="tab-item" data-tab="gallery">' + $.lang[LANG]['fheader.psearch.gallery'] + ' <span class="cnt">('+tabCount.gallery+')</span></li>\ 1176 <li class="tab-item" data-tab="forum">' + $.lang[LANG]['fheader.psearch.forum'] + ' <span class="cnt">('+tabCount.forum+')</span></li>\ 1177 <li class="tab-item" data-tab="etc">' + $.lang[LANG]['fheader.psearch.etc'] + ' <span class="cnt">('+tabCount.etc+')</span></li>\ 1178 </ul>\ 1179 </div>\ 1180 <div class="psearch-sort-wrap">\ 1181 <div class="psearch-total-count"><strong>'+ p_total + cnt_lang +'</strong><span class="count-txt">' + $.lang[LANG]['fheader.psearch.result'] + '</span></div>\ 1182 <div class="gallery-sort-nav goption-row psearch-sort" data-sort-lang="' + LANG + '">\ 1183 <div class="toggle-dropdown display-flex space-between align-items-center">\ 1184 <span class="active-sort">'+(p_sort=='old' ? $.lang[LANG]['fheader.psearch.dropdown.old'] : $.lang[LANG]['fheader.psearch.dropdown.recent'])+'</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m8 11.35-6-6 .71-.7L8 9.94l5.29-5.29.71.7z"/></svg>\ 1185 </div>\ 1186 <ul>\ 1187 <li class="'+(p_sort=='new' ? 'active' : '')+'"><a href="javascript:;" data-sort="new">' + $.lang[LANG]['fheader.psearch.dropdown.recent'] + '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 10" width="13" height="10"><path d="m5 9.71-5-5 1.41-1.42L5 6.88 11.59.29 13 1.71z"/></svg></a></li>\ 1188 <li class="'+(p_sort=='old' ? 'active' : '')+'"><a href="javascript:;" data-sort="old">' + $.lang[LANG]['fheader.psearch.dropdown.old'] + '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 10" width="13" height="10"><path d="m5 9.71-5-5 1.41-1.42L5 6.88 11.59.29 13 1.71z"/></svg></a></li>\ 1189 </ul>\ 1190 </div>\ 1191 </div>\ 1192 '; 1193 1194 // í í¨ë ë ë 1195 psearch_view += '<div class="psearch-tab-panels">'; 1196 1197 psearch_view += (function(){ 1198 var h = '<div class="psearch-panel" data-tab="all" style="display:none;">'; 1199 var parts = []; 1200 var s1 = $.psearch.renderAllSection($pEL, 'shopping', groups.shopping); 1201 if(s1) parts.push(s1); 1202 var s2 = $.psearch.renderAllSection($pEL, 'gallery', groups.gallery); 1203 if(s2) parts.push(s2); 1204 var s3 = $.psearch.renderAllSection($pEL, 'forum', groups.forum); 1205 if(s3) parts.push(s3); 1206 var s4 = $.psearch.renderAllSection($pEL, 'etc', groups.etc); 1207 if(s4) parts.push(s4); 1208 1209 if(parts.length === 0){ 1210 h += '<div class="row text-center pitem-empty">' 1211 + $.lang[LANG]["fheader.psearch.pitem-empty"] 1212 + '</div>'; 1213 } else { 1214 h += parts.join(''); 1215 } 1216 1217 h += '</div>'; 1218 return h; 1219 })(); 1220 psearch_view += $.psearch.renderTabPanel($pEL, 'shopping', groups.shopping); 1221 psearch_view += $.psearch.renderTabPanel($pEL, 'forum', groups.forum); 1222 psearch_view += $.psearch.renderTabPanel($pEL, 'gallery', groups.gallery); 1223 psearch_view += $.psearch.renderTabPanel($pEL, 'etc', groups.etc); 1224 psearch_view += '</div>'; 1225 psearch_view += '</div></div></div></div>'; 1226 1227 $('.psearchcss').remove(); 1228 var p_color = $('.dsgn-body').css('color'); 1229 var p_line_color = $('.dsgn-body').css('color'); 1230 var p_size = $('.dsgn-body').css('font-size'); 1231 var p_css = ` 1232 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-wrap { border-bottom-color: ${p_line_color}; } 1233 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-input { color: ${p_color}; } 1234 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-pagination > li > a { color: ${p_color}; } 1235 `; 1236 $('#dsgn-body').after(`<style class="psearchcss"${p_css}</style>`); 1237 } 1238 1239 if($.clnav.check()) {
1240 $('.dsgn-body').prepend(psearch_view); 1241 } else { 1242 $('.header.el-menu').after(psearch_view); 1243 } 1244 1245 var $pEL = $('.'+p_selector); 1246 $pEL.data('psearchGroups', groups); 1247 1248 changeBrokenImages($pEL); 1249 1250 $.psearch.initTabs($('.'+p_selector)); 1251 $.psearch.bindClientPagination($pEL); 1252 $pEL.find('.psearch-sort').val(p_sort); 1253 1254 var p_tab = (property.PARENT && property.PARENT['psearch_tab']) ? property.PARENT['psearch_tab'] : ($pEL.find('.psearch-tabs').attr('data-active') || 'shopping'); 1255 // console.log(p_tab); 1256 setTimeout(function(){ 1257 $pEL.find('.psearch-tab-nav .tab-item[data-tab="'+p_tab+'"]').trigger('click'); 1258 }, 0); 1259 1260 // ì ë ¬ ëë¡ë¤ì´ í ê¸ (ì´ê³ /ë«ê¸°) 1261 $pEL.off('click', '.psearch-sort .toggle-dropdown'); 1262 $pEL.on('click', '.psearch-sort .toggle-dropdown', function(e){ 1263 e.preventDefault(); 1264 e.stopPropagation(); 1265 $(this).closest('.psearch-sort').toggleClass('open'); 1266 }); 1267 // ë°ê¹¥ í´ë¦ ì ë«ê¸° 1268 $(document).off('click.psearchSortClose').on('click.psearchSortClose', function(e){ 1269 if($(e.target).closest('.psearch-sort').length === 0){ 1270 $pEL.find('.psearch-sort').removeClass('open'); 1271 } 1272 }); 1273 1274 // ì ë ¬ ì í 1275 $pEL.off('click', '.psearch-sort ul a[data-sort]'); 1276 $pEL.on('click', '.psearch-sort ul a[data-sort]', function(e){ 1277 e.preventDefault(); 1278 1279 var sort = $(this).attr('data-sort') || 'new'; // í´ë¦í ê° 1280 var currentSort = property.PARENT['psearch_sort'] || 'new'; // íì¬ ê° 1281 1282 if(sort === currentSort){ 1283 $pEL.find('.psearch-sort').removeClass('open'); 1284 return; 1285 } 1286 1287 var psearch_stx = $('#psearch-stx').val() || ''; 1288 var tab = $('#psearch-tab').val() || 'all'; 1289 1290 // UI í ì¤í¸ ë°ì 1291 $pEL.find('.psearch-sort .active-sort').text($(this).text().trim()); 1292 $pEL.find('.psearch-sort').removeClass('open'); 1293 1294 var url = (PAGE_MODE=='s') ? '' : '/render'; 1295 location.href = url + '/psearch/num/1/stx/' + encodeURIComponent(psearch_stx) + '/sort/' + sort + '/tab/' + tab; 1296 }); 1297 1298 if(p_selector == 'psearch-view') $pEL.fadeIn().removeAttr('style'); 1299 1300 // $pagination = $pEL.find('.psearch-pagination'); 1301 // $.psearch.setPagination($pagination,p_stx,p_total,p_page_num,p_view); 1302 1303 // if(p_total <= p_view) $pagination.addClass('hidden'); 1304 // else $pagination.removeClass('hidden'); 1305 1306 if(p_selector == 'psearch-view') { 1307 if(PAGE_MODE != 'c') $.psearch.showSiteProjectSEARCH(true); 1308 if(PAGE_MODE == 's' && typeof callbackEvtProductSearch == 'function') callbackEvtProductSearch(p_stx); 1309 } 1310 1311 $pEL.off('click', '.psearch-client-nav a'); 1312 $pEL.on('click', '.psearch-client-nav a', function(e){ 1313 e.preventDefault(); 1314 1315 // disabledë©´ 무ì 1316 if ($(this).parent().hasClass('disabled')) return; 1317 1318 var sectionKey = $(this).closest('.psearch-client-nav').attr('data-skey'); 1319 var page = parseInt($(this).attr('data-page'), 10) || 1; 1320 1321 // ìí ì ì¥ 1322 var secPages = $pEL.data('psearchAllSectionPages') || {}; 1323 secPages[sectionKey] = page; 1324 $pEL.data('psearchAllSectionPages', secPages); 1325 1326 // í´ë¹ ì¹ì ë§ ì¬ë ë 1327 var groups = $pEL.data('psearchGroups') || {}; 1328 var list = groups[sectionKey] || []; 1329 1330 var html = renderSection(sectionKey, list); 1331 $pEL.find('.psearch-all-section[data-section="'+sectionKey+'"]').replaceWith(html); 1332 }); 1333 1334 $pEL.off('click', '.psearch-tab-navpage a'); 1335 $pEL.on('click', '.psearch-tab-navpage a', function(e){ 1336 e.preventDefault(); 1337 if($(this).closest('li').hasClass('disabled')) return; 1338 1339 var tabKey = $(this).closest('.psearch-tab-navpage').attr('data-tkey'); // shopping|forum|gallery|etc 1340 var page = parseInt($(this).attr('data-page'), 10) || 1; 1341 1342 // ìí ì ì¥ 1343 var tabPages = $pEL.data('psearchTabPages') || {}; 1344 tabPages[tabKey] = page; 1345 $pEL.data('psearchTabPages', tabPages); 1346 1347 // ì ì²´ í¨ë ì¬ë ë (ë¡ì»¬ renderPanel ì ê±°) 1348 $.psearch.rerenderPanels($pEL); 1349 1350 // íì± í ì ì§ 1351 var active = $pEL.find('.psearch-tabs').attr('data-active') || 'all'; 1352 $pEL.find('.psearch-panel').hide(); 1353 $pEL.find('.psearch-panel[data-tab="'+active+'"]').show(); 1354 }); 1355 1356 } 1357 1358 // deferred.resolve(); 1359 // return deferred.promise(); 1360 }, 1361 pItemEmpty: function() { 1362 // console.log('psearch pItemEmpty'); 1363 return ` 1364 <div class="pitem sample-item"> 1365 <div class="col-xs-3 col-sm-3 col-md-3 no-padding"> 1366 <div class="center-block"><img src="//storage.googleapis.com/i.addblock.net/blitem_empty_img.png" alt="" class="img-responsive"/></div> 1367 </div>
1368 </div> 1369 `; 1370 }, 1371 pItem: function(o) { 1372 // console.log('psearch pItem',o); 1373 var img_path = (typeof o.settings.storage != 'undefined' && o.settings.storage) ? o.settings.storage : property.RPATH; 1374 var img_original = (typeof o.settings.storage != 'undefined' && o.settings.storage) ? img_path + '1920/' : img_path; 1375 var img_src = getServeImage(o.image,600,img_path); 1376 var src_s0 = getServeImage(o.image,'0',img_path); 1377 1378 var glink = (typeof o.settings.glink != 'undefined' && o.settings.glink) ? o.settings.glink : ''; 1379 var glink_target = (typeof o.settings.glink_target != 'undefined' && o.settings.glink_target) ? o.settings.glink_target : ''; 1380 1381 if(glink) { 1382 if(glink.match(/^\@/g) !== null) { // link-type: link-bookmark ==> a[attr-bookmark] 1383 var bookmark_seq = glink.replace(/^\@/g,''); 1384 if(typeof property.SETTINGS.blockBookmarkList == 'undefined' || typeof property.SETTINGS.blockBookmarkList['bookmark' + bookmark_seq] == 'undefined') { 1385 glink = ''; 1386 glink_target = ''; 1387 } 1388 } else if(glink.match(/^flink\@[0-9]/gi) !== null) { // link-type: link-file ==> a[attr-flink] 1389 glink_target = ''; 1390 } else if($.inArray(normalizeMemberMenuLinkPage(glink), property.MENULIST) > -1) { // link-type: link-menu ==> a[data-user-link] 1391 } else { // link-type: link-out ==> a[attr-link] 1392 if(checkBase64Encode(glink)) glink = Base64.decode(glink); 1393 } 1394 } 1395 1396 var pitem_src = ''; 1397 var pitem_option = ''; 1398 1399 if(glink) { 1400 pitem_src = makeLinkUrl(glink, property.ONE, property.VIEW); 1401 1402 if(glink.match(/^\@/g) !== null) { 1403 pitem_option = 'attr-bookmark="' + glink.replace(/^\@/g,'') + '"'; 1404 } else if(glink.match(/^flink\@[0-9]/g) !== null) { 1405 pitem_option = 'attr-flink="' + glink.replace(/^flink\@/g,'') + '"'; 1406 } else if(property.MENULIST.includes(normalizeMemberMenuLinkPage(glink))) { 1407 pitem_option = 'data-user-link="' + pitem_src + '"'; 1408 } else { 1409 var checkURL = /(http(s)?:\/\/)?\S+(\.[^(\n|\t|\s|\/))]+)+/gi; 1410 if(checkURL.test(glink)) pitem_option = 'attr-link="' + glink + '"'; 1411 else pitem_src = 'javascript:;'; 1412 } 1413 } else { 1414 // etc(page) í´ë¹ íì´ì§ë¡ ì´ë 1415 if (o.type === 'page') { 1416 var map = property.MENU_BREADCRUMB_MAP || {}; 1417 1418 // 1) page slug 구í기: "ì¤í 리-ìë¸11122,580901" ê°ì ê²½ì° ëë¹ 1419 var pageRaw = (o.page || '').toString(); 1420 var slug = pageRaw.indexOf(',') > -1 ? $.trim(pageRaw.split(',')[0]) : pageRaw; 1421 1422 // 2) ìì¸ URLì´ ìë ìë ë©ë´ í¤ë "/slug" ë¡ ë§ì¶°ì lookup 1423 var key = $.psearch.normalizeHref('/' + slug); 1424 var crumb = map[key]; 1425 1426 if (crumb) { 1427 o.cont = crumb; // "í > ë¸ëë ì¤í 리 > ì¤í 리 ìë¸11122" 1428 } else { 1429 // fallback 1430 o.cont = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + slug.replace(/-/g,' '); 1431 } 1432 1433 // /url/view/id ë¡ ì´ë 1434 if (pageRaw.indexOf(',') > -1) { 1435 1436 var parts = pageRaw.split(','); 1437 var urlPage = $.trim(parts[0] || ''); 1438 var viewId = $.trim(parts[1] || ''); 1439 1440 if (urlPage && viewId) { 1441 // /{urlPage}/view/{viewId} 1442 pitem_src = ((property.URL=='/') ? '' : property.URL) + '/' + urlPage + '/view/' + viewId; 1443 pitem_option = ''; // view ë§í¬ë data-user-link íììì 1444 } else { 1445 pitem_src = 'javascript:;'; 1446 } 1447 1448 } else { 1449 if (property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1450 pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1451 pitem_option = 'data-user-link="' + o.page + '" data-psearch-pid="' + o.pid + '"'; 1452 } else { 1453 pitem_src = 'javascript:;'; 1454 } 1455 } 1456 1457 // forumì /forum/view/{id} ë¡ ì´ë 1458 } else if (o.type === 'forum') { 1459 1460 var base = (PAGE_MODE == 'r') ? '/render' : ''; 1461 pitem_src = base + '/forum/view/' + o.id; 1462 pitem_option = ''; // forumì data-user-link íì ìì 1463 1464 // ì¼í(ìí) view íì´ì§ ì ì§ 1465 } else if (o.type === 'gallery' && o.p_mode === 'shopping') { 1466 1467 pitem_src = ((property.URL == '/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1468 1469 // ê°¤ë¬ë¦¬(ìì¸íì´ì§) view íì´ì§ ì´ë 1470 } else if (o.type === 'gallery' && o.p_mode === 'project') { 1471 1472 pitem_src = ((property.URL == '/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1473 1474 // ì¼ë° ê°¤ë¬ë¦¬/기í â í´ë¹ íì´ì§ë¡ ì´ë (ë¸ë ìì¹ë¡) 1475 } else { 1476 1477 if (property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1478 pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1479 pitem_option = 'data-user-link="' + o.page + '" data-psearch-pid="' + o.pid + '"'; 1480 } else { 1481 pitem_src = 'javascript:;'; 1482 } 1483 1484 } 1485 } 1486 1487 // } else { 1488 // if (o.p_mode == 'gallery') { 1489 // if(property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1490 // var pitem_cookie = (o.p_cookie == 'gallery') ? 'data-psearch-pid="' + o.pid + '"' : 'data-
1490psearch-seq="' + o.id + '"'; 1491 // pitem_option = 'data-user-link="' + o.page + '" '+pitem_cookie; 1492 // pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1493 // } else { 1494 // pitem_src = 'javascript:;'; 1495 // } 1496 // } else { 1497 // pitem_src = ((property.URL=='/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1498 // } 1499 // } 1500 var isGallery = (o.type === 'gallery') ? '<img src="' + o.thumb + '" alt="" class="img-responsive" />' : ''; 1501 // console.log(o); 1502 var str = '\ 1503 <div class="col-xs-6 col-sm-4 col-md-3 no-padding pitem" data-index="' + o.num + '" data-pid="' + o.pid + '" data-gid="' + o.id + '">\ 1504 <a href="'+pitem_src+'" '+ pitem_option + '>\ 1505 '+ isGallery +'\ 1506 <div class="info-wrap">\ 1507 <h5 class="'+ ($.inArray('title', o.field_disable) > -1 ? 'hide' : '') +'">' + o.title + '</h5>\ 1508 '; 1509 if(o.p_mode == 'shopping' || o.p_mode == 'gallery') str += '<p class="'+ ($.inArray('caption', o.field_disable) > -1 ? 'hide' : '') +'">' + o.cont + '</p>'; 1510 else str += '<p class="'+ ($.inArray('cont', o.field_disable) > -1 ? 'hide' : '') +'">' + o.cont + '</p>'; 1511 1512 if(o.p_mode == 'shopping') { 1513 if(o.price) { 1514 str += '\ 1515 <p class="price-box '+ ($.inArray('price', o.field_disable) > -1 ? 'hide' : '') +'"><span class="figure-krw">₩</span> ' + o.price + '</p>\ 1516 <span></span>\ 1517 '; 1518 } 1519 1520 if(o.review_onoff && o.review_cnt > 0) { 1521 str += '\ 1522 <ul class="review-box">\ 1523 <li class="review-cnt">리뷰 <span class="sh-pcolor">' + o.review_cnt + '</span></li>\ 1524 <li class="review-score">íì <span class="sh-pcolor">' + o.review_score + '</span></li>\ 1525 </ul>\ 1526 '; 1527 } 1528 1529 // let str = ` 1530 // <div class="col-xs-6 col-sm-4 col-md-3 no-padding pitem" data-index="${o.num}" data-pid="${o.pid}" data-gid="${o.id}"> 1531 // <a href="${pitem_src}" ${pitem_option}> 1532 // <img src="${o.thumb}" alt="" class="img-responsive" /> 1533 // <div class="info-wrap"> 1534 // <h5>${htmlDecode(o.title)}</h5> 1535 // <p>${htmlDecode(o.cont)}</p> 1536 // `; 1537 1538 var basket_class = (o.basket_off || $.inArray('basket', o.field_disable) > -1) ? 'hide' : ''; 1539 str += '\ 1540 <div class="basket-box ' + basket_class + '"><span class="basket-btn">ì¥ë°êµ¬ë ë´ê¸°</span></div>\ 1541 '; 1542 } 1543 1544 if(o.type == 'forum') { 1545 // var cate = o.cate; 1546 // if(cate == '') cate = 'ì¹´í ê³ ë¦¬ ìì' 1547 str += '\ 1548 <p>\ 1549 <span class="'+ ($.inArray('name', o.field_disable) > -1 ? 'hide' : '') +'">'+ o.name +' |</span>\ 1550 <span class="'+ ($.inArray('date', o.field_disable) > -1 ? 'hide' : '') +'">'+ o.date +' |</span>\ 1551 <span class="'+ ($.inArray('hit', o.field_disable) > -1 ? 'hide' : '') +'"><svg viewBox="0 0 16 16" width="16" height="16"><path d="M10.4 6.9c.4 1.3-.4 2.7-1.8 3.1-1.3.4-2.7-.4-3.1-1.8v-.5c0-.2.2-.2.3-.2h.5c.9 0 1.7-.7 1.7-1.7v-.5c0-.1 0-.3.2-.3 1.1 0 2 .8 2.3 1.9ZM8 4.3c-2.7 0-4.1 1.8-4.9 3.4v.6C4 9.9 5.3 11.7 8 11.7s4.1-1.8 4.9-3.4v-.6C12 6.1 10.7 4.3 8 4.3m0-1c3.3 0 4.9 2.3 5.8 4 .3.5.3 1 0 1.5-.9 1.6-2.5 4-5.8 4s-4.9-2.3-5.8-4c-.3-.5-.3-1 0-1.5.9-1.6 2.5-4 5.8-4Z"></path></svg>'+ o.hit +' |</span>\ 1552 <span class="'+ ($.inArray('comment', o.field_disable) > -1 ? 'hide' : '') +'"><svg viewBox="0 0 16 16" width="16" height="16"><path d="M9.6 3h-3C4.3 3 2.2 4.7 2 7c-.1 1.6.6 3 1.8 3.8 0 .5-.2 1-.5 1.6-.1.3.1.6.4.6h.2c.7-.3 1.6-.7 2.4-1.3h3c2.3 0 4.3-1.6 4.6-3.9.2-2.6-1.8-4.7-4.4-4.7Zm-.2 7.6H6.1l-.3.2c-.3.3-.7.5-1 .6v-1.1l-.4-.4c-1-.7-1.5-1.8-1.4-3 .1-1.7 1.7-3.1 3.6-3.1h3c1 0 1.9.4 2.5 1.1.6.7.9 1.6.8 2.5-.2 1.7-1.7 3-3.6 3Z"></path></svg>'+ o.comment +'</span>\ 1553 </p>\ 1554 '; 1555 } 1556 str += '\ 1557 </div>'; 1558 if(o.type == 'forum') { 1559 var thumb = (o.thumb) ? o.thumb : '//storage.googleapis.com/i.addblock.net/icon/noimage_250_black.png', 1560 empty = (o.thumb == '') ? 'empty' : ''; 1561 str += '\ 1562 <div class="image-wrap '+ empty +'"><image src='+ thumb +'></div>\ 1563 '; 1564 } 1565 str += '\ 1566 </a>\ 1567 </div>\ 1568 '; 1569 // console.log(str); 1570 return str; 1571 }, 1572 // setPagination: function($obj,stx,total,page_num,view) { 1573 // // console.log('psearch setPagination'); 1574 // var checkLux = (PAGE_MODE == 'c') ? LUX : property.LUX; 1575 // if(checkLux) stx += location.search; 1576 1577 // var p_url = (PAGE_MODE == 'r') ? '/render' : '', 1578 // page_view = 5,
1579 // total_page = Math.ceil(total/view), 1580 // start_page = (page_num%page_view) ? page_num - (page_num%page_view) + 1 : page_num - (page_view-1), 1581 // end_page = start_page + (page_view-1); 1582 // if(end_page > total_page) end_page = total_page; 1583 1584 // var prev_page = ((start_page-1) == 0) ? 1 : start_page-1, 1585 // next_page = ((end_page+1) > total_page) ? end_page : end_page+1; 1586 1587 // $obj.find('li').addClass('psearch-page'); 1588 1589 // var $first = $obj.children().first().clone(), 1590 // $prev = $obj.children().first().clone(), 1591 // $next = $obj.children().last().clone(), 1592 // $last = $obj.children().last().clone(); 1593 1594 // $obj.empty(); 1595 // $first.find('a').attr('href',p_url+'/psearch/num/1/stx/'+stx).find('i').removeClass('fa-angle-left').addClass('fa-angle-double-left'); 1596 // $prev.find('a').attr('href',p_url+'/psearch/num/'+prev_page+'/stx/'+stx); 1597 // $next.find('a').attr('href',p_url+'/psearch/num/'+next_page+'/stx/'+stx); 1598 // $last.find('a').attr('href',p_url+'/psearch/num/'+total_page+'/stx/'+stx).find('i').removeClass('fa-angle-right').addClass('fa-angle-double-right'); 1599 1600 // $obj.append($prev).append($next); 1601 // for(i=start_page; i<=end_page; i++) { 1602 // var active = (i == page_num) ? 'active' : ''; 1603 // $obj.children().last().before($('<li class="psearch-page '+ active +'"><a href="'+p_url+'/psearch/num/'+i+'/stx/'+stx+'">' + i + '</a></li>')); 1604 // } 1605 1606 // if(start_page == prev_page) $obj.children().eq(0).hide(); 1607 // if(end_page == next_page) $obj.children().last().hide(); 1608 1609 // // if(start_page > page_view) $obj.prepend($first); 1610 // // if(end_page < total_page) $obj.append($last); 1611 1612 // }, 1613 bindClientPagination: function($wrap){ 1614 $wrap.find('.psearch-client-nav .psearch-page a').off('click').on('click', function(e){ 1615 e.preventDefault(); 1616 1617 var $nav = $(this).closest('.psearch-client-nav'); 1618 if($nav.find('li.disabled').length && $(this).parent().hasClass('disabled')) return; 1619 1620 var key = $nav.attr('data-key'); // ì: "shopping" ëë "all:shopping" 1621 var page = parseInt($(this).attr('data-page'), 10) || 1; 1622 1623 if (typeof key === 'string' && key.indexOf('all:') === 0) { 1624 var sectionKey = key.replace('all:', ''); 1625 var secPages = $wrap.data('psearchAllSectionPages') || {}; 1626 secPages[sectionKey] = page; 1627 $wrap.data('psearchAllSectionPages', secPages); 1628 } else if (typeof key === 'string') { 1629 var tabPages = $wrap.data('psearchTabPages') || {}; 1630 tabPages[key] = page; 1631 $wrap.data('psearchTabPages', tabPages); 1632 } else { 1633 // ëë²ê¹ ì© 1634 console.warn('psearch pagination key is undefined', this); 1635 } 1636 1637 // í¨ë ì¬ë ë 1638 $.psearch.rerenderPanels($wrap); 1639 $.psearch.initTabs($wrap);
1639 // íì± í ì ì§ 1640 }); 1641 }, 1642 renderAllSection: function($wrap, sectionKey, list){ 1643 var total = (list && list.length) ? list.length : 0; 1644 1645 // â ì ì²´íììë§ ì°ë ì¹ì ì´ë¯ë¡: ê²°ê³¼ ìì¼ë©´ ìì ì¶ë ¥íì§ ìì 1646 if(total === 0) return ''; 1647 1648 var pageSize = $wrap.data('psearchPageSize') || 8; 1649 var secPages = $wrap.data('psearchAllSectionPages') || {}; 1650 var cur = secPages[sectionKey] || 1; 1651 1652 var totalPage = Math.ceil(total / pageSize); 1653 var sliced = list.slice((cur-1)*pageSize, cur*pageSize); 1654 1655 var title_name = (sectionKey == 'shopping') ? $.lang[LANG]['fheader.psearch.shopping'] 1656 : (sectionKey == 'forum') ? $.lang[LANG]['fheader.psearch.forum'] 1657 : (sectionKey == 'gallery') ? $.lang[LANG]['fheader.psearch.gallery'] 1658 : $.lang[LANG]['fheader.psearch.etc']; 1659 1660 var html = '<div class="psearch-all-section" data-section="'+sectionKey+'">'; 1661 html += '<div class="psearch-section-title">'+title_name+'</div>'; 1662 1663 html += '<div class="row multi-columns-row" data-loop="true">'; 1664 for(var i=0;i<sliced.length;i++){ 1665 html += $.psearch.pItem(sliced[i]); 1666 } 1667 html += '</div>'; 1668 1669 // ì¹ì íì´ì§ë¤ì´ì (ìíë ì ì± ëë¡: 1íì´ì§ë 무조건 ë ¸ì¶ì´ë©´ totalPage<=0 ì²´í¬ë¡ ì¡°ì ) 1670 html += $.psearch.renderSectionPagination(sectionKey, cur, totalPage); 1671 1672 html += '</div>'; 1673 return html; 1674 }, 1675 renderTabPanel: function($wrap, tabKey, list){ 1676 var pageSize = $wrap.data('psearchPageSize') || 8; 1677 var tabPages = $wrap.data('psearchTabPages') || {}; 1678 var cur = tabPages[tabKey] || 1; 1679 1680 var total = (list && list.length) ? list.length : 0; 1681 var totalPage = Math.ceil(total / pageSize); 1682 var sliced = (total > 0) ? list.slice((cur-1)*pageSize, cur*pageSize) : []; 1683 1684 var html = '<div class="psearch-panel" data-tab="'+tabKey+'" style="display:none;">'; 1685 1686 if(total === 0){ 1687 html += '<div class="row text-center pitem-empty">' + $.lang[LANG]["fheader.psearch.pitem-empty"] + '</div>'; 1688 } else { 1689 html += '<div class="row multi-columns-row" data-loop="true">'; 1690 for(var i=0;i<sliced.length;i++){ 1691 html += $.psearch.pItem(sliced[i]); 1692 } 1693 html += '</div>'; 1694 1695 // í pagination 1696 html += $.psearch.renderTabPagination(tabKey, cur, totalPage); 1697 } 1698 1699 html += '</div>'; 1700 return html; 1701 }, 1702 rerenderPanels: function($wrap){ 1703 var groups = $wrap.data('psearchGroups') || {}; 1704 if(!groups) return; 1705 1706 // í¨ë ììë§ ë¤ì 그림 1707 var $panels = $wrap.find('.psearch-tab-panels'); 1708 if($panels.length==0) return; 1709 1710 var html = ''; 1711 1712 // all í¨ë 1713 html += (function(){
1714 function renderSection(sectionKey, list){ 1715 return $.psearch.renderAllSection($wrap, sectionKey, list); 1716 } 1717 var h = '<div class="psearch-panel" data-tab="all" style="display:none;">'; 1718 h += renderSection('shopping', groups.shopping); 1719 h += renderSection('gallery', groups.gallery); 1720 h += renderSection('forum', groups.forum); 1721 h += renderSection('etc', groups.etc); 1722 h += '</div>'; 1723 return h; 1724 })(); 1725 1726 // í í¨ëë¤ 1727 html += $.psearch.renderTabPanel($wrap, 'shopping', groups.shopping); 1728 html += $.psearch.renderTabPanel($wrap, 'forum', groups.forum); 1729 html += $.psearch.renderTabPanel($wrap, 'gallery', groups.gallery); 1730 html += $.psearch.renderTabPanel($wrap, 'etc', groups.etc); 1731 1732 $panels.html(html); 1733 1734 // í´ë¦ ë°ì¸ë© ë¤ì 1735 $.psearch.bindClientPagination($wrap); 1736 }, 1737 renderSectionPagination: function(sectionKey, current, totalPage){ 1738 if(totalPage <= 0) return ''; 1739 1740 var pageView = 5; 1741 var start = (Math.floor((current-1)/pageView)*pageView) + 1; 1742 var end = Math.min(start + pageView - 1, totalPage); 1743 var showArrows = totalPage > pageView; 1744 var prevBlock = Math.max(1, start-1); 1745 var nextBlock = Math.min(totalPage, end+1); 1746 1747 // all í ì¹ì ì© keyë "all:ì¹ì " 1748 var html = '<nav class="text-center clear psearch-client-nav" data-key="all:'+sectionKey+'">'; 1749 html += '<ul class="pagination pagination-sm psearch-pagination">'; 1750 1751 if(showArrows){ 1752 html += '<li class="psearch-page prev '+(start==1?'disabled':'')+'">' 1753 + '<a href="#" data-page="'+prevBlock+'"><i class="fa fa-angle-left"></i></a></li>'; 1754 } 1755 1756 for(var p=start; p<=end; p++){ 1757 html += '<li class="psearch-page '+(p==current?'active':'')+'">' 1758 + '<a href="#" data-page="'+p+'">'+p+'</a></li>'; 1759 } 1760 1761 if(showArrows){ 1762 html += '<li class="psearch-page next '+(end==totalPage?'disabled':'')+'">' 1763 + '<a href="#" data-page="'+nextBlock+'"><i class="fa fa-angle-right"></i></a></li>'; 1764 } 1765 1766 html += '</ul></nav>'; 1767 return html; 1768 }, 1769 renderTabPagination: function(tabKey, current, totalPage){ 1770 if(totalPage <= 0) return ''; 1771 1772 var pageView = 5; 1773 var start = (Math.floor((current-1)/pageView)*pageView) + 1; 1774 var end = Math.min(start + pageView - 1, totalPage); 1775 var showArrows = totalPage > pageView; // 6íì´ì§ ì´ìì¼ ëë§ prev/next 1776 var prevBlock = Math.max(1, start-1); 1777 var nextBlock = Math.min(totalPage, end+1); 1778 1779 var html = '<nav class="text-center clear psearch-tab-navpage" data-tkey="'+tabKey+'">'; 1780 html += '<ul class="pagination pagination-sm psearch-pagination">'; 1781 1782 if(showArrows){ 1783 html += '<li class="psearch-page prev '+(start==1?'disabled':'')+'">' 1784 + '<a href="#" data-page="'+prevBlock+'"><i class="fa fa-angle-left"></i></a></li>'; 1785 } 1786 for(var p=start; p<=end; p++){ 1787 html += '<li class="psearch-page '+(p==current?'active':'')+'">' 1788 + '<a href="#" data-page="'+p+'">'+p+'</a></li>'; 1789 } 1790 if(showArrows){ 1791 html += '<li class="psearch-page next '+(end==totalPage?'disabled':'')+'">' 1792 + '<a href="#" data-page="'+nextBlock+'"><i class="fa fa-angle-right"></i></a></li>'; 1793 } 1794 1795 html += '</ul></nav>'; 1796 return html; 1797 }, 1798 showSiteProjectSEARCH: function(view_page) { 1799 // console.log('psearch showSiteProjectSEARCH'); 1800 if(PAGE_MODE == 'c') return false; 1801 $('.cl-popupBanner.openPopupBanner').addClass('zindex20'); 1802 1803 var sid = property.SID, 1804 checkUsedMpcWeb = property.SETTINGS.vpMode_onoff; 1805 1806 var active_nav = $('.el-menu header'); 1807 if(window.innerWidth <= 768) active_nav = active_nav.is('.cl-nav') ? $('.clnav-sidemobile') : $('#mobile-nav'); 1808 1809 var psearchWarp = active_nav.find('.psearch-overlay'); 1810 if(view_page) psearchWarp = $('.psearch-view').find('.psearch-wrap'); 1811 1812 psearchWarp.find('input.psearch-input').live({ 1813 focus: function() { 1814 }, 1815 keydown: function(key) { 1816 if(key.keyCode == 13) psearchWarp.find('.psearch-icon').click(); 1817 }, 1818 }); 1819 1820 psearchWarp.find('.psearch-icon').live({ 1821 click: function() { 1822 var psearch_wrap = $(this).closest('.psearch-body'); 1823 var psearch_input = $(this).closest('.psearch-wrap').find('input.psearch-input'); 1824 var regExp = new RegExp('^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£\\?\\@\\!\\- ]*$'); 1825 var stx = psearch_input.val().trim(); 1826 var error_str = ''; 1827 1828 if(stx.length == 0) error_str = $.lang[LANG]['psearch.input.empty']; 1829 else if(!regExp.test(stx)) error_str = $.lang[LANG]['psearch.input.regexp']; 1830 1831 if(error_str.length > 0) { 1832 if(psearch_wrap.find('.error').length > 0) psearch_wrap.find('.error').html('<i class="cl-icon alert02"></i> ' + error_str); 1833 else psearch_input.closest('.psearch-wrap').after('<span class="error"><i class="cl-icon alert02"></i> ' + error_str + '</span>'); 1834 1835 psearch_input.focus(); 1836 return; 1837 } else { 1838 psearch_wrap.find('.error').remove(); 1839 } 1840 1841 //check mpcWeb Mode 1842 if(checkUsedMpcWeb) { 1843 var viewportMode = property.SETTINGS.viewportMode, 1844 vpmode = (typeof $('.mobilepc_ch').attr('data-desktop-option') != 'undefined') ? $('.mobilepc_ch').attr('data-desktop-option') : viewportMode; 1845 $.cookie('desktop-option',vpmode, { path: '/' }); 1846 } 1847 1848 var url = (PAGE_MODE=='s') ? '' : '/render', 1849 href = url + '/psearch/num/1/stx/' + encodeURIComponent(stx); 1850 location.href = href; 1851 1852 } 1853 }); 1854 1855 }, 1856 normalizeHref: function(href) { 1857 href = (href || '').toString().trim(); 1858 if(!href) return ''; 1859 1860 href = href.replace(/^\/render/i, ''); 1861 href = href.split('#')[0].split('?')[0]; 1862 1863 if(/^https?:\/\//i.test(href)){
1864 try { href = new URL(href).pathname; } catch(e){} 1865 } 1866 1867 href = href.replace(/\/view\/\d+$/i, ''); 1868 1869 if(href && href.charAt(0) !== '/') href = '/' + href; 1870 return href; 1871 }, 1872 buildMenuBreadcrumbMap: function(menuOption) { 1873 var map = {}; // key: normalized href value: "í > ë©ì¸ > ìë¸" 1874 1875 if(!menuOption || !menuOption.length) return map; 1876 1877 for(var i=0; i<menuOption.length; i++){ 1878 var m = menuOption[i]; 1879 var mainName = (m && m.name) ? m.name : ''; 1880 var mainHref = $.psearch.normalizeHref(m && m.href); 1881 1882 if(mainHref){ 1883 map[mainHref] = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + mainName; 1884 } 1885 1886 var children = (m && m.children) ? m.children : []; 1887 for(var j=0; j<children.length; j++){ 1888 var c = children[j]; 1889 var subName = (c && c.name) ? c.name : ''; 1890 var subHref = $.psearch.normalizeHref(c && c.href); 1891 1892 if(subHref){ 1893 map[subHref] = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + mainName + ' > ' + subName; 1894 } 1895 } 1896 } 1897 return map; 1898 } 1899 } 1900 1901 $.shopping = { 1902 init: function() { 1903 // console.log('shopping init'); 1904 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 1905 fheader_selec = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'); 1906 1907 if(!fheader_selec.hasClass('navbar-fheader')) return false; 1908 1909 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 1910 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE; 1911 1912 var scart = (s_validtype == 'SM') ? true : false; 1913 1914 if(scart) $.shopping.set('on',checkEllist); 1915 else $.shopping.set('off',checkEllist); 1916 }, 1917 set: function(onoff,checkEllist){ 1918 var checkClnav = $.clnav.check(); 1919 if(checkClnav) return false; 1920 1921 // console.log('shopping set'); 1922 var checkEllist = ( typeof checkEllist!='undefined' && checkEllist) ? checkEllist : false; 1923 fheader_selec = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'); 1924 if(!fheader_selec.hasClass('navbar-fheader')) return false; 1925 1926 if(onoff.match(/on/gi)) $.shopping.makeSiteFixedCART(); 1927 else { 1928 $('#fixed-menu, #fixed-menu-sub').find('.siteCART').remove(); 1929 $('#tpl-menu').find('.siteCART').remove(); 1930 $('div.siteCART.micon').remove(); 1931 } 1932 }, 1933 makeSiteFixedCART: function() { 1934 var checkClnav = $.clnav.check(); 1935 if(checkClnav) return false; 1936 1937 // console.log('shopping makeSiteFixedCART'); 1938 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 1939 pc_nav = (checkEllist) ? $('.elviewhtml header.navbar #fixed-menu, .elviewhtml header.navbar #fixed-menu-sub') : $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'), 1940 mobile_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 1941 checkfixtype_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 1942 checkFixTypeMenu = (typeof checkfixtype_nav.attr('data-fixtype') != 'undefined' && checkfixtype_nav.attr('data-fixtype')) ? true : false; 1943 1944 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 1945 cart_url = (PAGE_MODE == 'c' || PAGE_MODE == 'r') ? 'javascript:;' : '/_cart', 1946 content = '\ 1947 <li class="siteCART">\ 1948 <a href="' + cart_url + '"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a>\ 1949 </li>\ 1950 ', 1951 mobile_content = '\ 1952 <div class="siteCART micon">\ 1953 <a href="' + cart_url + '"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a>\ 1954 </div>\ 1955 '; 1956 1957 /* Shopping Only KO Site */ 1958 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 1959 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 1960 // $('#fixed-menu, #fixed-menu-sub').find('.siteCART').remove(); 1961 // $('#tpl-menu').find('.siteCART').remove(); 1962 // $('div.siteCART.micon').remove(); 1963 // return false; 1964 // } 1965 1966 if(pc_nav.find('.siteCART').length > 0) { 1967 if(checkFixTypeMenu) pc_nav.find('.siteCART').find('a').attr('href',cart_url); 1968 else pc_nav.find('.siteCART').replaceWith(content); 1969 } else pc_nav.append(content); 1970 1971 if(mobile_nav.find('div.siteCART.micon').length>0) { 1972 if(checkFixTypeMenu) mobile_nav.find('div.siteCART.micon').find('a').attr('href',cart_url); 1973 else mobile_nav.find('div.siteCART.micon').replaceWith(mobile_content); 1974 } else { 1975 mobile_nav.find('.navbar-toggle').before(mobile_content); 1976 } 1977 1978 if(pc_nav.find('.siteCART').css('display')=='none') mobile_nav.find('.siteCART.micon').hide(); 1979 1980 var fixed_a_color = (checkFixTypeMenu) ? '' : $('.el-menu .navbar-toggle .
1980icon-bar').css('background-color'); 1981 //var mobile_color = $('#mobile-nav').find('.cl-fixbtn.cl-visible').find('svg').css('fill'); 1982 if(checkEllist && typeof PAGE_MODE!='undefined' && PAGE_MODE=='c') { 1983 fixed_a_color = mobile_nav.find('.navbar-toggle .icon-bar').css('background-color'); 1984 } 1985 1986 1987 if(pc_nav.closest('header').find('.cl-menu-option').length > 0) { 1988 } else { 1989 mobile_nav.find('div.siteCART.micon').css({ 1990 'color': fixed_a_color, 1991 'right': '56px', 1992 'display': (checkFixTypeMenu) ? $('header.navbar-fheader').find('.siteCART.cl-fixbtn').css('display') : '' 1993 }); 1994 } 1995 1996 if(PAGE_MODE == 's') { 1997 var cart_active = Number(property.CART); 1998 // $.ajax({ 1999 // type: 'POST', 2000 // url: '/_basket/check', 2001 // data: { sid : sid }, 2002 // dataType: 'json', 2003 // async: true, 2004 // success: function(r) { 2005 // if(typeof r.error != 'undefined' && r.error) { 2006 // // console.log(r.error); 2007 // return false; 2008 // } 2009 // console.log(property.CART); 2010 if(Number(cart_active) > 0) { 2011 if(checkFixTypeMenu) { 2012 var cart_active_str = cart_active.toString(), 2013 $selec = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'), 2014 fixtypeNum = $('.el-menu header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 2015 cart_active_selec = ($selec.find('.siteCART .cart-active-txt').length>0) ? $selec.find('.cart-active-txt') : $selec.find('.cart-active'), 2016 cart_active_class = (cart_active_str.length>1 && cart_active_str.length<3) ? 'cartActive_2' : ((cart_active_str.length>2 && cart_active_str.length<4) ? 'cartActive_3' : ''), 2017 radius_arr = ['03','04','05','06','10']; 2018 2019 cart_active_selec.text(cart_active); 2020 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').show(); 2021 $('.el-menu header.navbar').find('.siteCART.micon .cl_icon_cart').html('<span class="cart-active"></span>'); 2022 2023 if($.inArray(fixtypeNum,radius_arr) > -1) $selec.find('.cart-active').removeClass('cartActive_2 cartActive_3').addClass(cart_active_class); 2024 2025 } else { 2026 var cart_active = '<span class="cart-active"></span>'; 2027 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cl_icon_cart').html(cart_active); 2028 } 2029 2030 } else { 2031 var r = { member : property.UMEMBER }, 2032 check_login = (typeof r.member != 'undefined') ? r.member.check_login : false; 2033 2034 // if(!check_login) $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').hide(); 2035 // else $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').show(); 2036 2037 if(checkFixTypeMenu && Number(cart_active)==0) { 2038 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.cart-active').hide(); 2039 } 2040 } 2041 // } 2042 // }); 2043 } else { 2044 if(PAGE_MODE=='r' && checkFixTypeMenu) $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.cart-active').remove(); 2045 } 2046 2047 } 2048 } 2049 2050 $.slang = { 2051 init: function(data) { 2052 // console.log('$.slang.init()'); 2053 if(typeof data != 'undefined' && data) { 2054 if(PAGE_MODE == 'c') SLANG = data; 2055 else property.SLANG = data; 2056 } 2057 2058 var slang = (PAGE_MODE == 'c') 2059 ? ((typeof SLANG != 'undefined' && SLANG) ? SLANG : {}) 2060 : ((typeof property != 'undefined' && property && property.SLANG) ? property.SLANG : {}), 2061 slang_lists = $.isArray(slang['lists']) ? slang['lists'] : [], 2062 s_validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN, 2063 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2064 checkFree = (!s_validplan || s_validtype == 'PK') ? true : false; 2065 2066 if(checkFree || $.isEmptyObject(slang) || slang.use_language != 'on' || slang_lists.length === 0) { 2067 $.slang.set('off'); 2068 } else { 2069 $.slang.set('on'); 2070 } 2071 }, 2072 set: function(onoff) { 2073 // console.log('$.slang.set()');
2074 var check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false, 2075 pc_nav = (check_fh) ? (($('.el-menu > header.navbar').hasClass('sidebar')) ? $('.el-menu > header.navbar') : $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub')) : $('.el-menu header.navbar #tpl-menu'), 2076 mobile_nav = (check_fh) ? $('#mobile-nav #fixed-menu') : $('.el-menu header.navbar'), 2077 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2078 2079 if(onoff.match(/on/gi)) $.slang.make(); 2080 else { 2081 $('.el-menu .siteLANG, #mobile-nav .siteLANG').remove(); 2082 2083 if(pc_nav.find('.siteUM').css('display')=='none') { 2084 if(!checkFixOnSearch) { 2085 mobile_nav.parent().addClass('hide'); 2086 } else { 2087 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2088 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2089 } 2090 } 2091 } 2092 }, 2093 make: function() { 2094 // console.log('$.slang.make()'); 2095 var slang = (PAGE_MODE == 'c') 2096 ? ((typeof SLANG != 'undefined' && SLANG) ? SLANG : {}) 2097 : ((typeof property != 'undefined' && property && property.SLANG) ? property.SLANG : {}), 2098 check_fh = ($('.el-menu > header.navbar').hasClass('navbar-fheader')) ? true : false, 2099 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2100 slang_data = $.isArray(slang['lists']) ? slang['lists'] : [], 2101 slang_str = (typeof slang['select'] != 'undefined') ? slang['select'] : '', 2102 slang_arrow = (slang_data.length > 1) ? '<i class="cl-icon arrow09" aria-hidden="true"></i>' : '', 2103 slang_list = '', 2104 checkFixLangTypeMenu = (typeof $('.el-menu > header.navbar').attr('data-fixlangtype') != 'undefined' && $('.el-menu > header.navbar').attr('data-fixlangtype')) ? true : false, 2105 pc_nav = (check_fh) ? (($('.el-menu > header.navbar').hasClass('sidebar')) ? $('.el-menu > header.navbar') : $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub')) : $('.el-menu header.navbar #tpl-menu'), 2106 mobile_nav = (check_fh) ? $('#mobile-nav #fixed-menu') : $('.el-menu header.navbar'), 2107 fixbtnData = ($('.el-menu > header.navbar').hasClass('sidebar')) ? $.menuFixBtn.getData(pc_nav) : $.menuFixBtn.getData($('.el-menu > header.navbar')), 2108 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2109 2110 if(slang_data.length === 0) { 2111 $.slang.set('off'); 2112 return; 2113 } 2114 2115 2116 $.each(slang_data, function(i,o) { 2117 var active = (o['name'] == slang_str) ? 'active' : ''; 2118 2119 /* Shopping Only KO Site */ 2120 // if(active && o['code'] != 'ko') { 2121 // pc_nav.find('.makeSiteSEARCH').remove(); 2122 // pc_nav.find('.siteCART').remove(); 2123 // } 2124 2125 slang_list += '\ 2126 <li class="' + active + '"><a href="javascript:;" data-code="' + o['code'] + '">' + o['name'] + '</a></li>\ 2127 '; 2128 }); 2129 2130 /*SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG;*/ 2131 var content = (checkFixLangTypeMenu) ? ($('.el-menu > header.navbar').hasClass('sidebar') ? $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false) : $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'])) : '\ 2132 <li class="siteLANG dropdown">\ 2133 <a href="javascript:;" class="dropdown-toggle"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i> <span class="slang-active">' + slang_str + '</span>' + slang_arrow + '</a>\ 2134 <ul class="dropdown-menu">\ 2135 ' + slang_list + '\ 2136 </ul>\ 2137 </li>\ 2138 ', 2139 mobile_content = (checkFixLangTypeMenu) ? $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false,'',true) : ((check_fh) ? '\ 2140 <li class="siteLANG dropdown">\ 2141 <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-target="#m-dropdown-wrap-lang"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a>\ 2142 <div class="dropdown-menu-wrap" id="m-dropdown-wrap-lang">\ 2143 <span class="dropdown-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Change Multilingual Site"></span></span>\ 2144 <ul class="dropdown-menu">\ 2145 ' + slang_list + '\ 2146 </ul>\ 2147 </div>\ 2148 </li>\ 2149 ':'\ 2150 <div class="siteLANG micon dropdown">\ 2151 <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-target=".siteLANG-dmenu-wrap"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a>\ 2152 </div>\ 2153 '), 2154 mobile_dropdown_menu = '\ 2155 <div class="siteLANG-dmenu-wrap">\ 2156 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2157 <ul class="dropdown-menu">\ 2158 ' + slang_list + '\ 2159 </ul>\ 2160 </div>\ 2161 '; 2162 2163 if(pc_nav.find('.siteLANG').length > 0) { 2164 pc_nav.find('.siteLANG').replaceWith(content); 2165 if($('.el-menu >
2165 header.navbar').hasClass('sidebar')) { 2166 pc_nav.find('.fh-line').remove(); 2167 pc_nav.parents('.menu-inner').after('<hr class="fh-line" />'); 2168 } 2169 } else { 2170 pc_nav.find('.siteLANG.cl-fixbtn').remove(); 2171 if(checkFixLangTypeMenu && $('.el-menu > header.navbar').hasClass('sidebar')) { 2172 pc_nav.find('.fh-line').remove(); 2173 $('.el-menu > header.navbar').find('.menu-inner').after(content); 2174 pc_nav.parents('.menu-inner').after('<hr class="fh-line" />'); 2175 } else pc_nav.append(content); 2176 } 2177 if(pc_nav.find('.siteUM').css('display')=='none') { 2178 if(!checkFixOnSearch) { 2179 mobile_nav.parent().addClass('hide'); 2180 } else { 2181 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2182 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2183 } 2184 } 2185 2186 if(check_fh) { 2187 if(checkFixLangTypeMenu) { 2188 if(mobile_nav.find('.cl-fixbtn.siteLANG').length==0) { 2189 $('#mobile-nav').append(mobile_content); 2190 $('#mobile-nav').find('.cl-fixbtn.siteLANG.dropup .dropdown-backdrop').remove(); 2191 } 2192 2193 var mobile_color = mobile_nav.find('.siteSEARCH.cl-fixbtn svg').css('fill'); 2194 2195 $('#mobile-nav').find('.siteLANG.cl-fixbtn a').css({ 2196 'color':mobile_color, 2197 'border-color':mobile_color 2198 }) 2199 2200 $('#mobile-nav').find('.siteLANG.cl-fixbtn a svg').css('fill',mobile_color); 2201 } else { 2202 if(mobile_nav.find('.siteLANG').length > 0) mobile_nav.find('.siteLANG').replaceWith(mobile_content); 2203 else mobile_nav.append(mobile_content); 2204 } 2205 } else { 2206 if(mobile_nav.find('div.siteLANG.micon').length>0) mobile_nav.find('div.siteLANG.micon').replaceWith(mobile_content); 2207 else mobile_nav.find('.navbar-toggle').before(mobile_content); 2208 2209 if($('div.siteLANG-dmenu-wrap').length>0) $('div.siteLANG-dmenu-wrap').replaceWith(mobile_dropdown_menu); 2210 else if($('div.siteUM-dmenu-wrap').length>0) $('div.siteUM-dmenu-wrap').after(mobile_dropdown_menu); 2211 else $('#tpl-menu').parent().after(mobile_dropdown_menu); 2212 2213 mobile_nav.find('div.siteLANG.micon').css({ 2214 'color': $('.el-menu .navbar-toggle .icon-bar').css('background-color'), 2215 'right': '56px', 2216 }); 2217 } 2218 } 2219 } /*slang end*/ 2220 2221 2222 $.umember = { 2223 init: function(um_used, um_lang, um_display, callback) { 2224 // console.log('umember init'); 2225 2226 if(typeof um_used != 'undefined' && um_used) { 2227 if(PAGE_MODE == 'c') SITEUM = um_used; 2228 else property.SITEUM = um_used; 2229 } 2230 2231 if(typeof um_lang != 'undefined' && um_lang) { 2232 if(PAGE_MODE == 'c') SITEUMLANG = um_lang; 2233 else property.SITEUMLANG = um_lang; 2234 } 2235 2236 if(typeof um_display != 'undefined' && um_display) { 2237 if(PAGE_MODE == 'c') SITEUMDISPLAY = um_display; 2238 else property.SITEUMDISPLAY = um_display; 2239 } 2240 2241 var s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2242 check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false; 2243 2244 if(s_um == 0 || (typeof s_um == 'string' && s_um == '0')) { 2245 if(check_fh) { 2246 $('#fixed-menu, #fixed-menu-sub').find('.siteUM').remove(); 2247 $('#mobile-nav').find('.siteUM').remove(); 2248 $('#mobile-nav').find('.mobilenav_top').addClass('hide'); 2249 } else { 2250 $('#tpl-menu').find('.siteUM').remove(); 2251 $('div.siteUM.micon').remove(); 2252 $('div.siteUM-dmenu-wrap').remove(); 2253 } 2254 if(typeof callback == 'function') { callback(); } 2255 } else { 2256 if(check_fh) $.umember.makeSiteFixedUM(callback); 2257 else $.umember.makeSiteUM(callback); 2258 } 2259 }, 2260 setUM: function(onoff,callback) { 2261 // console.log('umember setUM'); 2262 var check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false; 2263 // menu ver2 : navbar-simple(mobile design) 2264 // menu ver3 : navbar-fheader(+shopping cart, mobile slide nav) 2265 2266 if(onoff.match(/on/gi)) { 2267 if(check_fh) $.umember.makeSiteFixedUM(callback); 2268 else $.umember.makeSiteUM(callback); 2269 } else { 2270 if(check_fh) { 2271 $('#fixed-menu, #fixed-menu-sub').find('.siteUM').remove(); 2272 $('#mobile-nav').find('.siteUM').remove(); 2273 } else { 2274 $('#tpl-menu').find('.siteUM').remove(); 2275 $('div.siteUM.micon').remove(); 2276 $('div.siteUM-dmenu-wrap').remove(); 2277 } 2278 2279 if(typeof callback == 'function') { 2280 callback(); 2281 } 2282 } 2283 }, 2284 makeSiteFixedUM: function(callback) { 2285 // console.log('umember makeSiteFixedUM'); 2286 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 2287 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2288 s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2289 s_um_lang = (PAGE_MODE == 'c') ? SITEUMLANG : property.SITEUMLANG, 2290 s_um_display = (PAGE_MODE == 'c') ? SITEUMDISPLAY : property.SITEUMDISPLAY, 2291 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE; 2292 2293 if( s_validtype != 'BN' && s_validtype != 'SM' || 2294 s_validtype == 'BN' && s_um == '-1' 2295 ) { 2296 $.umember.setUM('off',callback); 2297 return false;
2298 } 2299 2300 if(s_validtype == 'SM' && s_um_display == 'join') s_um_display = 'login'; 2301 2302 if(PAGE_MODE == 'c') { 2303 if(typeof callback == 'function') { 2304 callback(); 2305 } 2306 return false; 2307 } 2308 2309 var display = (s_um == 1) ? 'login' : s_um_display, 2310 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2311 str = (s_um == 1) ? $.lang[LANG]['manager.site-um.login'] : ((s_um_display) ? $.lang[s_um_lang]['manager.site-um.'+s_um_display] : ''); 2312 2313 // $.post('/umember/login/check', { sid : sid }, function(r) { 2314 var r = { member : property.UMEMBER }; 2315 2316 var check_login = (typeof r.member != 'undefined') ? r.member.check_login : false, 2317 check_admin = (typeof r.member != 'undefined') ? r.member.check_adm : false, 2318 check_uadmin = (typeof r.member != 'undefined') ? r.member.check_uadm : false, 2319 check_groot = (typeof r.member != 'undefined') ? r.member.check_groot : false, 2320 uadmin_type = (typeof r.member != 'undefined') ? r.member.uadmin_type : '', 2321 check_id_type = (typeof r.member != 'undefined') ? r.member.id_type : '', 2322 login_id = (typeof r.member != 'undefined') ? r.member.id : '', 2323 login_nick = (typeof r.member.nick != 'undefined') ? r.member.nick : login_id, 2324 login_profile = (typeof r.member.profile != 'undefined') ? r.member.profile : '//storage.googleapis.com/i.addblock.net/defaultImg.png', 2325 f_color = ($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? 'style="color:' + $('.el-menu ul.navbar-nav > li > a').css('color') + ';"' : '', 2326 checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false, 2327 fixtype_color = (checkFixTypeMenu) ? (($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? 'style="color:' + $('.el-menu ul.cl-fixed-menu > li > a').css('color') + ';"' : '') : f_color, 2328 fixtype_menu_color = (checkFixTypeMenu) ? (($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? 'style="color:' + $('.el-menu #tpl-menu > li > a').css('color') + ';"' : '') : f_color, 2329 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2330 2331 var hostAry = window.location.hostname.split('.'), 2332 isCoKr = hostAry[2] == 'co' && hostAry[3] == 'kr', 2333 checkDomain = (hostAry[1] != 'creatorlink' && hostAry[1] != 'addblock') ? true : false, 2334 checkPort = (location.port) ? ':'+location.port : '', 2335 host = (!checkDomain) ? (!isCoKr ? `${hostAry[1]}.${hostAry[2]}` : 'creatorlink.co.kr') : 'creatorlink.net', 2336 host_url = (s_service.indexOf('gabia') > -1) ? '//creatorlink-gabia.com' : '//'+host+checkPort, 2337 menu_url = { 2338 'dashboard': (check_uadmin) ? '/_admin/dashboard' : host_url + '/dashboard', 2339 'member' : (check_uadmin) ? '/_admin/member' : host_url + '/manager/member', 2340 }; 2341 2342 var menu_dashboard_str = (check_admin || check_uadmin) ? '\ 2343 <li><a href="' + menu_url['dashboard'] + '" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2344 ' : '', 2345 menu_member_str = (check_admin) ? '\ 2346 <li><a href="' + host_url + '/manager/member/" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.manage'] + '</a></li>\ 2347 ' : '', 2348 menu_mygabia_str = (s_service.indexOf('gabia') > -1 && (check_admin || (check_uadmin && check_groot))) ? '\ 2349 <li><a href="https://www.gabia.com/mygabia/service" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.mypage.gabia'] + '</a></li>\ 2350 ' : '', 2351 menu_mypage_str = (check_admin) ? '' : ((checkFixTypeMenu) ? '\ 2352 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2353 <li><a class="hand cl-umMenu myinfo-change" href="javascript:;" onclick="myinfoChangeBtn(this)" id="myinfo-change-btn" data-sid="'+sid+'">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>\ 2354 ' : '<li><a class="mypage" href="javascript:;">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>'); 2355 2356 if(checkDomain && check_admin) { 2357 menu_dashboard_str = '\ 2358 <li><a class="dashboard cl-umMenu" href="javascript:;" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2359 '; 2360 } 2361 2362 if(s_validtype == 'SM') { 2363 if(checkFixTypeMenu) { 2364 var propertySettings = (PAGE_MODE!='c' && typeof property.SETTINGS!='undefined') ? property.SETTINGS : {}, 2365 smSettings = (PAGE_MODE!='c' && typeof property.SMSETTINGS!='undefined') ? property.SMSETTINGS : {}, 2366 point_settings = (PAGE_MODE!='c' && typeof property.POINGSETTINGS!='undefined') ? property.POINGSETTINGS : {}, 2367 point_user = (PAGE_MODE!='c' && typeof point_settings.point_use != 'undefined' && point_settings.point_use) ? point_settings.point_use : '', 2368 coupon_btn_str = (PAGE_MODE!='c' && typeof smSettings.coupon_use_yn != 'undefined' && smSettings.coupon_use_yn == 'Y') ? ('<li><a class="coupon cl-umMenu" href="/_coupon">' + $.lang[LANG]['manager.site-um.mypage.coupon'] + '</a></li>') : '', 2369 point_useStr = (PAGE_MODE!='c' && point_user && point_user=='Y' && LANG=='ko') ? '<li><a class="mypoint cl-umMenu" href="/_point">' + $.lang[LANG]['manager.site-um.mypage.point'] + '</a></li>' : '', 2370 wishlist_btn_str = (typeof propertySettings.product_wishlist_btn != 'undefined' && (propertySettings.product_wishlist_btn=='Y') && LANG=='ko') ? '<li><a class="mywishlist cl-umMenu" href="/_wishlist">' + $.lang[LANG]['manager.site-um.mypage.wishlistbtn'] + '</a></li>' : ''; 2371 2372 menu_mypage_str = (check_admin) ? '' : '\ 2373 <li><a class="myorderlist cl-umMenu" href="/_mypage">' + $.lang[LANG]['manager.site-um.mypage.orderlist'] + '</a></li>' 2374 + wishlist_btn_str + coupon_btn_str + point_useStr + '\ 2375 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2376 <li><a class="hand myinfo-change cl-umMenu" href="javascript:;" onclick="myinfoChangeBtn(this)" id="myinfo-change-btn" data-sid="'+sid+'">' + $.lang[LANG]['manager.site-um.mypage.new'] + '</a></li>\ 2377 '; 2378 } else { 2379 menu_mypage_str = (check_admin) ? '' : '\ 2380 <li><a class="mypage" href="javascript:;">' + $.lang[LANG]['manager.site-um.mypage.SM'] + '</a></li>\ 2381 '; 2382 } 2383 } 2384 2385 if(login_id == 'naverpaytest') { 2386 menu_mypage_str = ''; 2387 } 2388 2389 var SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG, 2390 lang_str = LANG; 2391 2392 if((typeof SLANG != 'undefined' && typeof SLANG.select_code != 'undefined' && SLANG.select_code) 2393 || (!$.isEmptyObject(SLANG) && SLANG.use_language == 'on' && SLANG.select_code)) { 2394 lang_str = (SLANG['select_code'].toLowerCase()!='ko') ? 'en' : LANG; 2395 } 2396 2397 var login_url = (s_validtype == 'SM') ? '/_login' : 'javascript:;', 2398 login_content_dropdown_class = (checkFixTypeMenu) ? 'dropdown-toggle' : '', 2399 login_content_dropdown = (checkFixTypeMenu) ? 'data-toggle="dropdown" data-target="#m-dropdown-wrap-um"' : '', 2400 login_svg = (checkFixTypeMenu) ? clSVG('arrow_next',16,16) : '', 2401 login_content = (!check_login) ? '<div class="login-content siteUM"><a href="javascript:;" class="' + display + '" ' + fixtype_color + '>' + $.lang[lang_str]['manager.site-um.mobile.'+s_um_display] + login_svg + '</a></div>' : '\ 2402 <div class="login-content '+login_content_dropdown_class+'" '+login_content_dropdown+'>\ 2403 <div class="login-profile">\ 2404 <img src="' + login_profile + '" alt="" class="img-responsive" />\ 2405 </div>\ 2406 <div class="login-nick" ' + fixtype_menu_color + '><span>' + login_nick + '</span> ë</div>\ 2407 </div>', 2408 menu_str = menu_dashboard_str + menu_member_str + menu_mygabia_str + menu_mypage_str, 2409 pc_dropdown = (check_login) ? '\ 2410 <ul class="dropdown-menu">\ 2411 ' + menu_str + '\ 2412 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2413 </ul>\ 2414 ' : '', 2415 content = (!check_login) ? '\ 2416 <li class="siteUM"><a href="javascript:;" class="' + display + '"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>' : '\ 2417 <li class="siteUM dropdown">\ 2418 <a href="javascript:;" class="dropdown-toggle"><i class="cl-icon cl_icon_profile_on02" aria-hidden="true"></i></a>\ 2419 '+ pc_dropdown +'\ 2420 </li>\ 2421 ', 2422 mobile_dropdown = (check_login) ? '\ 2423 <div class="dropdown-menu-wrap" id="m-dropdown-wrap-um">\ 2424 <span class="dropdown-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Member Menu"></span></span>\ 2425 <ul class="dropdown-menu">\ 2426 ' + menu_str + '\ 2427 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2428 </ul>\ 2429 </div>\ 2430 ' : '', 2431 mobile_content = (!check_login) ? '\ 2432 <li class="siteUM"><a href="javascript:;" class="' + display + '"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>' : '\ 2433 <li class="siteUM dropdown">\ 2434 <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-target="#m-dropdown-wrap-um"><i class="cl-icon cl_icon_profile_on02" aria-hidden="true"></i></a>\ 2435 '+ mobile_dropdown +'\ 2436 </li>\ 2437 '; 2438 2439 // IE ERROR_promise__H.20210603 2440 // var successSiteUMLogin = new Promise(function(resolve, reject) { 2441 var successSiteUMLogin = function() { 2442 var deferred = $.Deferred(); 2443
2444 var pc_nav = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'), 2445 mobile_nav = $('#mobile-nav #fixed-menu'), 2446 checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false; 2447 2448 if(pc_nav.find('.siteUM').length > 0) { 2449 if(checkFixTypeMenu) { 2450 setLoginLogoutAttribute(check_login,pc_nav,display); 2451 if(check_login) pc_nav.find('.siteUM').find('.cl-logout').after(pc_dropdown); 2452 } else pc_nav.find('.siteUM').replaceWith(content); 2453 } else { 2454 if(pc_nav.find('.siteSEARCH').length > 0) pc_nav.find('.siteSEARCH').after(content); 2455 else if(pc_nav.find('.siteCART').length > 0) pc_nav.find('.siteCART').before(content); 2456 else if(pc_nav.find('.siteLANG').length > 0) pc_nav.find('.siteLANG').before(content); 2457 else pc_nav.append(content); 2458 } 2459 2460 if(mobile_nav.find('.siteUM').length > 0) { 2461 if(checkFixTypeMenu) { 2462 setLoginLogoutAttribute(check_login,mobile_nav,display); 2463 if(check_login) mobile_nav.prepend(mobile_dropdown); 2464 } else mobile_nav.find('.siteUM').replaceWith(mobile_content); 2465 } else { 2466 if(mobile_nav.find('.siteSEARCH').length > 0) mobile_nav.find('.siteSEARCH').after(mobile_content); 2467 else if(mobile_nav.find('.siteCART').length > 0) mobile_nav.find('.siteCART').before(mobile_content); 2468 else if(mobile_nav.find('.siteLANG').length > 0) mobile_nav.find('.siteLANG').before(mobile_content); 2469 else mobile_nav.append(mobile_content); 2470 } 2471 2472 2473 if(mobile_nav.closest('#mobile-nav').find('.login-content').length > 0) mobile_nav.closest('#mobile-nav').find('.login-content').replaceWith(login_content); 2474 else mobile_nav.before(login_content); 2475 2476 if(pc_nav.find('.siteUM').css('display')=='none') { 2477 if(!checkFixOnSearch) { 2478 mobile_nav.parent().addClass('hide'); 2479 } else { 2480 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2481 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2482 } 2483 } 2484 2485 // var loginStr = (checkFixTypeMenu && !check_login) ? mobile_nav.find('.siteUM').removeClass('dropdown').find('.cl-login').clone() : ''; 2486 2487 // if(checkFixTypeMenu && (mobile_nav.closest('#mobile-nav').find('.login-content').length > 0) && !check_login) { 2488 // $('.mobilenav_top .login-content').html(loginStr); 2489 // } 2490 2491 // IE ERROR_promise__H.20210603 2492 // resolve(); 2493 // }); 2494 deferred.resolve(); 2495 return deferred.promise(); 2496 } 2497 2498 2499 // IE ERROR_promise__H.20210603 2500 // successSiteUMLogin.then(function(value) { 2501 successSiteUMLogin().then(function(value) { 2502 if(typeof callback == 'function') { 2503 callback(); 2504 } 2505 }); 2506 2507 2508 // },'json'); 2509 2510 2511 }, 2512 makeSiteUM: function(callback) { 2513 // console.log('umember makeSiteUM'); 2514 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 2515 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2516 s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2517 s_um_lang = (PAGE_MODE == 'c') ? SITEUMLANG : property.SITEUMLANG, 2518 s_um_display = (PAGE_MODE == 'c') ? SITEUMDISPLAY : property.SITEUMDISPLAY, 2519 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE; 2520 2521 if( s_validtype != 'BN' && s_validtype != 'SM' || 2522 s_validtype == 'BN' && s_um == '-1') { 2523 $.umember.setUM('off',callback); 2524 return false; 2525 } 2526 2527 if(s_validtype == 'SM' && s_um_display == 'join') s_um_display = 'login'; 2528 2529 var display = (s_um == 1) ? 'login' : s_um_display, 2530 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2531 str = (s_um == 1) ? $.lang[LANG]['manager.site-um.login'] : ((s_um_display) ? $.lang[s_um_lang]['manager.site-um.'+s_um_display] : ''); 2532 2533 $.post('/umember/login/check', { sid : sid }, function(r) { 2534 var check_login = (typeof r.member != 'undefined') ? r.member.check_login : false, 2535 check_admin = (typeof r.member != 'undefined') ? r.member.check_adm : false, 2536 check_uadmin = (typeof r.member != 'undefined') ? r.member.check_uadm : false, 2537 uadmin_type = (typeof r.member != 'undefined') ? r.member.uadmin_type : '', 2538 check_id_type = (typeof r.member != 'undefined') ? r.member.id_type : '', 2539 login_id = (typeof r.member != 'undefined') ? r.member.id : '', 2540 login_nick = (typeof r.member.nick != 'undefined') ? r.member.nick : login_
2540id; 2541 2542 var hostAry = window.location.hostname.split('.'), 2543 isCoKr = hostAry[2] == 'co' && hostAry[3] == 'kr', 2544 checkDomain = (hostAry[1] != 'creatorlink' && hostAry[1] != 'addblock') ? true : false, 2545 checkPort = (location.port) ? ':'+location.port : '', 2546 host = (!checkDomain) ? (!isCoKr ? `${hostAry[1]}.${hostAry[2]}` : 'creatorlink.co.kr') : 'creatorlink.net', 2547 host_url = (s_service.indexOf('gabia') > -1) ? '//creatorlink-gabia.com' : '//'+host+checkPort, 2548 menu_url = { 2549 'dashboard': (check_uadmin) ? '/_admin/dashboard' : host_url + '/dashboard', 2550 'member' : (check_uadmin) ? '/_admin/member' : host_url + '/manager/member', 2551 }; 2552 2553 var menu_dashboard_str = (check_admin || check_uadmin) ? '\ 2554 <li><a href="' + menu_url['dashboard'] + '" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2555 ' : '', 2556 menu_member_str = (check_admin) ? '\ 2557 <li><a href="' + host_url + '/manager/member" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.manage'] + '</a></li>\ 2558 ' : '', 2559 menu_mygabia_str = (s_service.indexOf('gabia') > -1 && (check_admin || (check_uadmin && check_groot))) ? '\ 2560 <li><a href="https://www.gabia.com/mygabia/service" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.mypage.gabia'] + '</a></li>\ 2561 ' : '', 2562 menu_mypage_str = (check_admin) ? '' : '\ 2563 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2564 <li><a class="hand myinfo-change cl-umMenu" onclick="myinfoChangeBtn(this)" id="myinfo-change-btn" data-sid="'+sid+'">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>\ 2565 '; 2566 2567 if(checkDomain && check_admin) { 2568 menu_dashboard_str = '\ 2569 <li><a class="dashboard cl-umMenu" href="javascript:;" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2570 '; 2571 } 2572 2573 if(s_validtype == 'SM') { 2574 var propertySettings = (PAGE_MODE!='c' && typeof property.SETTINGS!='undefined') ? property.SETTINGS : {}, 2575 smSettings = (PAGE_MODE!='c' && typeof property.SMSETTINGS!='undefined') ? property.SMSETTINGS : {}, 2576 point_settings = (PAGE_MODE!='c' && typeof property.POINGSETTINGS!='undefined') ? property.POINGSETTINGS : {}, 2577 point_user = (PAGE_MODE!='c' && typeof point_settings.point_use != 'undefined' && point_settings.point_use) ? point_settings.point_use : '', 2578 coupon_btn_str = (PAGE_MODE!='c' && typeof smSettings.coupon_use_yn != 'undefined' && smSettings.coupon_use_yn=='Y') ? ('<li><a class="coupon cl-umMenu" href="/_coupon">' + $.lang[LANG]['manager.site-um.mypage.coupon'] + '</a></li>') : ''; 2579 point_useStr = (PAGE_MODE!='c' && point_user && point_user=='Y') ? '<li><a class="mypoint cl-umMenu" href="/_point">' + $.lang[LANG]['manager.site-um.mypage.point'] + '</a></li>' : '', 2580 wishlist_btn_str = (typeof propertySettings.product_wishlist_btn != 'undefined' && (propertySettings.product_wishlist_btn=='Y')) ? '<li><a class="mywishlist cl-umMenu" href="/_wishlist">' + $.lang[LANG]['manager.site-um.mypage.wishlistbtn'] + '</a></li>' : ''; 2581 2582 menu_mypage_str = (check_admin) ? '' : '\ 2583 <li><a class="myorderlist cl-umMenu" href="/_mypage">' + $.lang[LANG]['manager.site-um.mypage.orderlist'] + '</a></li>' 2584 + wishlist_btn_str + coupon_btn_str + point_useStr + '\ 2585 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2586 <li><a class="hand myinfo-change cl-umMenu" href="javascript:;" onclick="myinfoChangeBtn(this)" id="myinfo-change-btn" data-sid="'+sid+'">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>\ 2587 '; 2588 } 2589 2590 var menu_str = menu_dashboard_str + menu_member_str + menu_mygabia_str + menu_mypage_str, 2591 content = (!check_login) ? '<li class="siteUM"><a class="' + display + '" href="javascript:;"><span class="glyphicon glyphicon-user"></span> ' + str + '</a></li>' : '\ 2592 <li class="siteUM dropdown">\ 2593 <a href="javascript:;" class="dropdown-toggle">' + login_nick + ' <i class="' + caret + '" aria-hidden="true"></i></a>\ 2594 <ul class="dropdown-menu">\ 2595 ' + menu_str + '\ 2596 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2597 </ul>\ 2598 </li>\ 2599 ', 2600 mobile_content = (!check_login) ? '<div class="siteUM micon"><a class="' + display + '" href="javascript:;"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></div>' : '\ 2601 <div class="siteUM micon dropdown">\ 2602 <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-target=".siteUM-dmenu-wrap"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a>\ 2603 </div>\ 2604 ', 2605 mobile_dropdown_menu = '\ 2606 <div class="siteUM-dmenu-wrap">\ 2607 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2608 <ul class="dropdown-menu">\ 2609 ' + menu_str + '\ 2610 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2611 </ul>\ 2612 </div>\ 2613 '; 2614 2615 if(check_id_type == 'creatorlink' && !check_admin && login_id) { //creatorlink member 2616 var mypage_url = (s_service.indexOf('gabia') > -1) ? '//www.gabia.com/mygabia/service' : '//'+host_url+'/mypage', 2617 mypage_name = (s_service.indexOf('gabia') > -1) ? $.lang[LANG]['manager.site-um.mypage.gabia'] : $.lang[LANG]['manager.site-um.mypage']; 2618 2619 content = '\ 2620 <li class="siteUM dropdown">\ 2621 <a href="javascript:;" class="dropdown-toggle">' + login_nick + ' <i class="' + caret + '" aria-hidden="true"></i></a>\ 2622 <ul class="dropdown-menu">\ 2623 <li><a href="' + host_url + '/dashboard" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2624 '; 2625 2626 if(!check_uadmin) content +='\ 2627 <li><a href="' + mypage_url + '" target="_blank" class="cl-umMenu">' + mypage_name + '</a></li>\ 2628 '; 2629 content += '\ 2630 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2631 </ul>\ 2632 </li>\ 2633 '; 2634 mobile_content = '\ 2635 <div class="siteUM micon dropdown">\ 2636 <a href="javascript:;" class="dropdown-toggle" data-target=".siteUM-dmenu-wrap"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a>\ 2637 </div>\ 2638 '; 2639 mobile_dropdown_menu = '\ 2640 <div class="siteUM-dmenu-wrap">\ 2641 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2642 <ul class="dropdown-menu">\ 2643 <li><a href="' + host_url + '/dashboard" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2644 <li><a href="' + mypage_url + '" target="_blank">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>\ 2645 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2646 </ul>\ 2647 </div>\ 2648 '; 2649 } 2650 2651 2652 // IE ERROR_promise__H.20210603 2653 // var successSiteUMLogin = new Promise(function(resolve, reject) { 2654 var successSiteUMLogin = function() { 2655 var deferred = $.Deferred(); 2656 2657 if($('#tpl-menu').find('.siteUM').length > 0) $('#tpl-menu').find('.siteUM').replaceWith(content); 2658 else { 2659 if($('#tpl-menu').find('.siteLANG').length > 0 ) $('#tpl-menu').find('.siteLANG').before(content); 2660 else $('#tpl-menu').append(content); 2661 } 2662 2663 if($('div.siteUM.micon').length>0) $('div.siteUM.micon').replaceWith(mobile_content); 2664 else $('.el-menu .navbar-toggle').before(mobile_content); 2665 2666 if($('div.siteUM-dmenu-wrap').length>0) $('div.siteUM-dmenu-wrap').replaceWith(mobile_dropdown_menu); 2667 else $('#tpl-menu').parent().after(mobile_dropdown_menu); 2668 2669 var check_slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 2670 $('.el-menu .navbar-header div.siteUM.micon').css({
2671 'color': $('.el-menu .navbar-toggle .icon-bar').css('background-color'), 2672 'right': ($.isEmptyObject(check_slang)) ? '56px' : '91px', 2673 }); 2674 2675 // IE ERROR_promise__H.20210603 2676 // resolve(); 2677 // }); 2678 deferred.resolve(); 2679 return deferred.promise(); 2680 } 2681 2682 // IE ERROR_promise__H.20210603 2683 // successSiteUMLogin.then(function(value) { 2684 successSiteUMLogin().then(function(value) { 2685 if(typeof callback == 'function') { 2686 callback(); 2687 } 2688 }); 2689 },'json'); 2690 2691 }, 2692 showMngModal: function(sid, content, id, backdrop, showcallback, showncallback, hiddencallback, callback, closecallback) { 2693 // console.log('umember showMngModal'); 2694 var container = $(content), 2695 backdrop = (typeof backdrop == 'undefined') ? false : true; 2696 2697 $('body').append(container); 2698 var newInstance = jQuery.extend(true, {}, container); 2699 var modalElement = newInstance.find('#' + id); 2700 2701 modalElement.attr('data-sid',sid); 2702 2703 if(backdrop) modalElement.modal({ backdrop : 'static'}); 2704 else modalElement.modal(); 2705 2706 modalElement.on('show.bs.modal', function(e) { 2707 if(typeof showcallback == 'function') showcallback(); 2708 }); 2709 2710 modalElement.on('shown.bs.modal', function(e) { 2711 var modal = document.querySelector('.modal'); 2712 modal.style.position = 'absolute'; 2713 setTimeout(function() { 2714 modal.style.position = 'fixed'; 2715 },0); 2716 if(window.innerWidth <= 768) $.mobileToggleMenu.close(); 2717 if(typeof showncallback == 'function') showncallback(); 2718 }); 2719 2720 modalElement.on('hidden.bs.modal', function(e) { 2721 var flat_modal_id = $(this).attr('id'); 2722 $('.editor-navbar').css('z-index','1040'); 2723 var this_modal = $('#'+flat_modal_id).closest('.flat-modal'); 2724 this_modal.next('.modal-backdrop').remove(); 2725 this_modal.remove(); 2726 2727 if($('.modal-backdrop').length) { 2728 setTimeout(function() { 2729 $('body').addClass('modal-open'); 2730 },10); 2731 } 2732 $('body').removeClass('no-fixed'); 2733 2734 if(typeof hiddencallback == "function") hiddencallback(); 2735 }); 2736 2737 newInstance.find('.ok-button-dialog').bind('click', function () { 2738 if(typeof callback == 'function') 2739 callback(); 2740 }); 2741 2742 newInstance.find('.close-button-dialog').bind('click', function () { 2743 if(typeof closecallback == 'function') 2744 closecallback(); 2745 }); 2746 2747 return modalElement; 2748 }, 2749 showJoinModal: function(sid,mode) { 2750 console.log('umember showJoinModal'); 2751 mode = (typeof mode != 'undefined' && mode) ? '-' + mode : ''; 2752 2753 if($('#join-modal' + mode).length > 0) return false; 2754 if($('#login-modal').length > 0) $('#login-modal').delay(3000).modal('hide'); 2755 2756 $.post('/umember/get/type/join', { sid : sid, field : '*' }, function(data) { 2757 if(typeof data.error != 'undefined' && data.error) { 2758 alert(data.error); 2759 return false; 2760 } 2761 2762 COLLECTION_REGEX = $.parseJSON(data['regExp']); 2763 2764 var content = $.umember.makeJoinModalContent(sid,data,mode); 2765 $.umember.showMngModal(sid, content, 'join-modal' + mode, false, 2766 function() { $.umember.joinModalInit(mode); }, 2767 function() { $.umember.joinModalKeyFunc(mode); }, '', '', ''); 2768 2769 }, 'json'); 2770 }, 2771 makeJoinCollectionsTypeVal: function(oval_i,oval_type,oval_v,org_field,optional_class,check_page,val) { 2772 var str = ''; 2773 2774 check_page = (typeof check_page != 'undefined' && check_page) ? check_page : ''; 2775 val = (typeof val != 'undefined' && val) ? val : ''; 2776 2777 switch (oval_type) { 2778 case 'memo': 2779 str += '\ 2780 <textarea class="cl-s-form-control" name="'+org_field+'" cols="120" rows="10" id="cl-etc-input-val-memo">'+oval_v+'</textarea>\ 2781 '; 2782 break; 2783 case 'radio': 2784 var oval_checked = ((check_page=='mypage') && (oval_v==val)) ? 'checked' : ''; 2785 str += '\ 2786 <div class="newcheckbox">\ 2787 <label>\ 2788 <div class="newcheckboxSvgRadio">\ 2789 <input type="radio" class="cl-common-form-radio-hide cl-etc-input-val cl-s-form-control" name="'+org_field+'" value="'+oval_v+'" '+oval_checked+'>\ 2790 <svg viewBox="0 0 18 18" width="18" height="18">\ 2791 <path d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8
27910-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 2792 </svg>\ 2793 <svg class="active" viewBox="0 0 18 18" width="18" height="18">\ 2794 <path d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8 0-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 2795 <circle cx="9" cy="9" r="6"/>\ 2796 </svg>\ 2797 </div>\ 2798 <span>'+oval_v+'</span>\ 2799 </label>\ 2800 </div>\ 2801 '; 2802 2803 break; 2804 2805 case 'check': 2806 var oval_checked = ((check_page=='mypage') && (oval_v==val)) ? 'checked' : ''; 2807 if(check_page=='mypage' && (val.indexOf('`') > -1)) { 2808 if(val.indexOf(oval_v) > -1) { 2809 oval_checked = 'checked'; 2810 } 2811 } 2812 str += '\ 2813 <div class="newcheckbox">\ 2814 <label>\ 2815 <div class="newcheckboxSvg">\ 2816 <input type="checkbox" class="cl-common-form-radio-hide cl-etc-input-val cl-s-form-control" id="" name="'+org_field+'" value="'+oval_v+'" '+oval_checked+'>\ 2817 <svg viewBox="0 0 16 16" width="16" height="16">\ 2818 <path class="st6" d="M3 0h10c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H3c-1.66 0-3-1.34-3-3V3C0 1.34 1.34 0 3 0z"></path>\ 2819 <path class="st19" d="M13 1c1.1 0 2 0.9 2 2v10c0 1.1-0.9 2-2 2H3c-1.1 0-2-0.9-2-2V3c0-1.1 0.9-2 2-2H13M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0L13 0z"></path>\ 2820 </svg>\ 2821 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 2822 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 2823 <path class="st19" d="M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0zM13.03 6.03l-5.5 5.5C7.38 11.68 7.19 11.75 7 11.75s-0.38-0.07-0.53-0.22l-3.5-3.5c-0.29-0.29-0.29-0.77 0-1.06s0.77-0.29 1.06 0L7 9.94l4.97-4.97c0.29-0.29 0.77-0.29 1.06 0S13.32 5.74 13.03 6.03z"></path>\ 2824 </svg>\ 2825 </div>\ 2826 <span>'+oval_v+'</span>\ 2827 </label>\ 2828 </div>\ 2829 '; 2830 2831 break; 2832 2833 case 'select': 2834 var selected = ((check_page=='mypage') && (oval_v==val)) ? 'selected' : ''; 2835 str += '\ 2836 <option value="'+oval_v+'" '+selected+'>'+oval_v+'</option>\ 2837 '; 2838 2839 break; 2840 2841 case 'fupload': 2842 str += $.umember.fileHtmlRender(org_field, { 2843 val : val, 2844 type : "type1", 2845 }) 2846 break; 2847 2848 default: 2849 break; 2850 } 2851 if(org_field=='etc7') { 2852 console.log(oval_v); 2853 } 2854 return str; 2855 2856 }, 2857 makeJoinConditionsStr: function(sid,data,key,mode) { 2858 // console.log('umember makeJoinConditionsStr'); 2859 switch(key) { 2860 case 'captcha' : 2861 return ` 2862 <div class="kcaptcha-wrap clearfix ${(data['captcha'] == '1') ? '' : 'hide'}"> 2863 <div class="col-xs-4 col-sm-4 col-md-4 no-padding kcaptcha-box"> 2864 <p id="write_option"><img src="" id="kcaptcha" alt=""/></p> 2865 </div> 2866 <div class="col-xs-8 col-sm-8 col-md-8 text-left kcaptcha-key-wrap"> 2867 <input type="text" id="wr_key" name="wr_key" class="col-xs-12 col-sm-12 col-md-12 ed" placeholder="${$.lang[LANG]['manager.join.cl.captcha-msg']}" /> 2868 <a class="kcaptcha-change hand small">${$.lang[LANG]['manager.join.cl.captcha-change']}</a> 2869 </div> 2870 </div> 2871 `; 2872 break; 2873 2874 case 'collections': 2875 var collections_html = ''; 2876 $.each(data['collections'], function(field,o) { 2877 if(field == 'email') return; 2878 if(o['used']) { 2879 var org_field = (field == 'addr') ? field + '1' : field, 2880 optional = o['optional'], 2881 name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+org_field], 2882 optional_class = (optional) ? 'optional' : '', 2883 key_func = '', 2884 add_input = '', 2885 jcollection_val_str = '', 2886 fupload_label = '', 2887 etc_val_type = ['memo','radio','check','select','fupload']; 2888 2889 if(field == 'birth') { 2890 name = $.lang[LANG]['siteum.mypage.Birth']; 2891 key_func = 'onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)"'; 2892 key_func = 'onkeydown="auto_date_format(event, this)"'; 2893 } 2894 2895 var star = (optional) ? '<span class="input-star">*</span>' : ''; 2896 if(field.indexOf('etc')>-1 && etc_val_type.includes(o['type'])) { 2897 var o_val = o['val'], 2898 o_val_arr = ((o_val.indexOf('`') > -1) && (o['type']=='radio' || o['type']=='check' || o['type']=='select'|| o['type']=='fupload')) ? o_val.split('`') : [o_val], 2899 description_class = (o['description_used']=='true' && (o['type']=='memo')) ? 'use_descr' : ''; 2900 2901 add_input = '\ 2902 <div class="cl-s-join-collections-etcwrap cl-s-form-wrap '+(o['type']=='fupload' ? 'nodata' : '') +' '+ optional_class + '" data-jcoltype="'+o['type']+'">'; 2903 add_input += '\ 2904 <div class="cl-s-etc">\ 2905 <span class="cl-s-etc-name">'+ name + star +'</span>\ 2906 '; 2907 add_input += (o['description_used']=='true') ? '<span class="cl-s-etc-description">'+ o['description'] +'</span>' : ''; 2908 add_input += '\ 2909 </div>\ 2910 '; 2911 2912 add_input += '\ 2913 <div class="cl-s-etc-val '+description_class+'">\ 2914 '; 2915 2916 if(o['type']=='select') { 2917 add_input += '\ 2918 <div class="cl-s-form-group cl-s-form-group-select">\ 2919 <select class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required">\ 2920 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 2921 '; 2922 } 2923 if(o_val_arr.length > 0) { 2924 $.each(o_val_arr, function(oval_i,oval_v){ 2925 jcollection_val_str += $.umember.makeJoinCollectionsTypeVal(oval_i,o['type'],oval_v,org_field,optional_class); 2926 }); 2927 } 2928 2929 if(o['type']=='select') { 2930 jcollection_val_str += '\ 2931 </select>\ 2932 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 2933 </div>\ 2934 '; 2935 } 2936 jcollection_val_str += '</div></div>'; 2937 2938 } else { 2939 add_input = '\ 2940 <div class="cl-s-form-wrap ' + optional_class + '">\ 2941 <div class="cl-s-form-group">\ 2942 <input type="text" class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required" value="" ' + key_func + '>\ 2943 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 2944 </div>\ 2945 </div>\ 2946 '; 2947 2948 if(field == 'addr') { 2949 var addr_modal = (mode.indexOf('shopping') > -1 || o['addrsearch']) ? 'readonly onfocus="addrSearchModal(\'input\')" ' : ''; 2950 add_input = '\ 2951 <div class="cl-s-form-wrap ' + optional_class + '">\ 2952 <div class="cl-s-form-group">\ 2953 <input type="hidden" class="cl-s-form-control" name="postcode" id="input-postcode" value="">\ 2954 <input type="text" class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required" value="" ' + addr_modal + '>\ 2955 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr1'] + star + '</label>\ 2956 </div>\ 2957 </div>\ 2958 <div class="cl-s-form-wrap">\ 2959 <div class="cl-s-form-group">\ 2960 <input type="text" class="cl-s-form-control" name="addr2" id="input-addr2" required="required" value="">\ 2961 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr2'] + '</label>\ 2962 </div>\ 2963 </div>\ 2964 '; 2965 } 2966 2967 if(field == 'gender') { 2968 add_input = '\ 2969 <div class="cl-s-form-wrap ' + optional_class + '">\ 2970 <div class="cl-s-form-group">\ 2971 <select class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required">\ 2972 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 2973 <option value="01">'+$.lang[LANG]['manager.list.info.gender.01']+'</option>\ 2974 <option value="02">'+$.lang[LANG]['manager.list.info.gender.02']+'</option>\ 2975 </select>\ 2976 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 2977 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.gender'] + star + '</label>\ 2978 </div>\ 2979 </div>\ 2980 '; 2981 } 2982 2983 //if(mode == 'shopping_social' && !optional) add_input = ''; 2984 if(mode == 'shopping_social' && !o['used']) add_input = ''; 2985 2986 2987 if(mode.indexOf('cert') > -1) { 2988 switch (field) { 2989 case 'name': 2990 case 'gender': 2991 case 'birth': 2992 case 'tel': 2993 add_input = '<input id="input-' + org_field + '" type="hidden" name="' + org_field + '" value="">'; 2994 break; 2995 } 2996 } 2997 } 2998 2999 collections_html += add_input + jcollection_val_str; 3000 3001 } 3002 }); 3003 return collections_html; 3004 break; 3005 3006 default: 3007 return data[key]; 3008 break; 3009 } 3010 3011 }, 3012 makeJoinModalContent: function(sid,data,mode) { 3013 // console.log('umember makeJoinModalContent'); 3014 if(PAGE_MODE == 's') { // ê²ìì¬ì´í¸ ë¤êµì´ íìê°ì íì´ì§ íê¸ê³¼ ì
3014ì¬ëì¤ë ë¶ë¶ ë°©ì§ 3015 if(property.SLANG.select_code == undefined) { 3016 LANG = 'ko'; 3017 } else { 3018 if(property.SLANG.select_code == 'ko') LANG = 'ko'; 3019 else LANG = 'en'; 3020 } 3021 } 3022 var collections = $.umember.makeJoinConditionsStr(sid,data,'collections',mode), 3023 captcha = $.umember.makeJoinConditionsStr(sid,data,'captcha',mode), 3024 privacy_type = (LANG == 'ko') ? 'privacy-join' : 'privacy', 3025 approval = (typeof data.approval != 'undefined' && data.approval) ? data.approval : 'hand', 3026 mode2 = data.mode2; 3027 3028 var sns_input = (mode == 'shopping_social' || (mode == 'shopping_cert' && mode2 == 'shopping_sns')) ? 'readonly="true"' : '', 3029 content = '\ 3030 <div class="cl-s-form-wrap optional">\ 3031 <div class="cl-s-form-group">\ 3032 <input type="text" class="cl-s-form-control" name="email" id="input-email" required="required" value="" '+sns_input+'>\ 3033 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.email'] + '<span class="input-star">*</span></label>\ 3034 </div>\ 3035 </div>\ 3036 '; 3037 3038 if(mode == 'shopping_social' || (mode == 'shopping_cert' && mode2 == 'shopping_sns')) { 3039 content += collections; 3040 var register_form_arr = { 3041 'content' : content 3042 } 3043 } else { 3044 content += '\ 3045 <div class="cl-s-form-wrap optional">\ 3046 <div class="cl-s-form-group">\ 3047 <input type="password" class="cl-s-form-control" name="password" id="input-password" required="required" value="">\ 3048 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password'] + '<span class="input-star">*</span></label>\ 3049 </div>\ 3050 </div>\ 3051 <div class="cl-s-form-wrap optional">\ 3052 <div class="cl-s-form-group">\ 3053 <input type="password" class="cl-s-form-control" name="password_checked" id="input-password-checked" required="required" value="">\ 3054 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password-check'] + '<span class="input-star">*</span></label>\ 3055 </div>\ 3056 </div>\ 3057 <div class="cl-s-form-description">' + $.lang[LANG]['siteum.login.password.description'] + '</div>\ 3058 ' + collections + '\ 3059 '; 3060 var register_form_arr = { 3061 'content' : content, 3062 'captcha' : captcha 3063 } 3064 } 3065 return register_form_arr; 3066 }, 3067 joinModalInit: function(mode) { 3068 // console.log('umember joinModalInit'); 3069 mode = (mode) ? '-' + mode : ''; 3070 var joinModal = $('#join-modal' + mode); 3071 3072 joinModal.find('.form-group').each(function() { 3073 $(this).removeClass('focus'); 3074 $(this).find('.error').remove(); 3075 $(this).find('input.form-control').val(''); 3076 $(this).find('#join-textarea').html(''); 3077 }); 3078 3079 joinModal.find('#wr_key').val(''); 3080 }, 3081 joinModalKeyFunc: function(mode) { 3082 // console.log('umember joinModalKeyFunc'); 3083 mode = (mode) ? '-' + mode : ''; 3084 var joinModal = $('#join-modal' + mode); 3085 3086 if(!joinModal.find('.kcaptcha-wrap').hasClass('hide')) { 3087 load_kcaptcha(); 3088 joinModal.find('#wr_key').live({ 3089 keyup: function() { 3090 if($(this).val().trim().length > 0) { $(this).next('.error').remove(); } 3091 } 3092 }); 3093 } 3094 3095 joinModal.find('input.form-control').live({ 3096 focus: function() { 3097 $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); 3098 }, 3099 blur: function() { 3100 $(this).closest('.form-group').removeClass('focus'); 3101 }, 3102 keydown: function(key) { 3103 if(key.keyCode == 13) $('#uJoin').click(); 3104 }, 3105 keyup: function() { 3106 var groupEl = $(this).closest('.form-group'), 3107 errorEL = $(this).next().next('.error'), 3108 field = $(this).attr('id').trim().replace(/input-/,''), 3109 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 3110 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 3111 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 3112 3113 if(field=='password' || field == 'password-checked') { 3114 var pwEl = joinModal.find('#input-password'), 3115 pw2El = joinModal.find('#input-password-checked'), 3116 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 3117 3118 if(pwEl.val() == pw2El.val()) { 3119 pw2El.next().next('.error').remove(); 3120 } else { 3121 if(pw2El.val().length > 0) { 3122 if(pw2El.next().next('.error').length > 0) pw2El.next().next('.error').removeClass('empty').text(error_str); 3123 else pw2El.closest('.form-group').append('<span class="error">'+ error_str + '</span>'); 3124 } 3125 } 3126 } 3127 3128 if(reg_has && errorEL.length > 0) { 3129 3130 var reg = new RegExp(reg_pattern); 3131 if(reg.test($(this).val())) errorEL.remove(); 3132 else { 3133 if(errorEL.hasClass('empty')) errorEL.removeClass('empty').text(reg_ex); 3134 } 3135 3136 } 3137 3138 } 3139 }); 3140 }, 3141 showLoginModal: function(sid) { 3142 // console.log('umember showLoginModal'); 3143 if($('#join-modal').length > 0 ) $('#join-modal').delay(3000).modal('hide'); 3144 if($('#forgotpw-modal').length > 0 ) $('#forgotpw-modal').delay(3000).modal('hide'); 3145 3146 var content = $.umember.makeLoginModalContent(); 3147 $.umember.showMngModal(sid, content, 'login-modal', false, 3148 function() { $.umember.LoginModalInit(); }, 3149 function() { $.umember.loginModalKeyFunc(); }, '', '', ''); 3150 }, 3151 makeLoginModalContent: function() { 3152 // console.log('umember makeLoginModalContent'); 3153 var s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 3154 join_btn = (s_um == 1) ? '' : '<div class="btn-join siteUM"><span class="join hand">' + $.lang[LANG]['manager.site-um.join.3'] + '</span></div>', 3155 privacy_type = (LANG == 'ko') ? 'privacy-join' : 'privacy'; 3156 3157 var loginModal_html = '\ 3158 <div class="flat-modal mng-login-modal mng-siteUM-modal">\ 3159 <div class="modal modal-default fade" id="login-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3160 <div class="modal-dialog" role="document">\ 3161 <div class="modal-content">\ 3162 <div class="modal-header">\ 3163 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3164 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3165 </button>\ 3166 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['header.login'] + '</h5>\ 3167 </div>\ 3168 <div class="modal-body">\ 3169 <span class="form-group optional initial">\ 3170 <input class="form-control" type="text" id="input-id" placeholder="' + $.lang[LANG]['siteum.login.id'] + '"/>\ 3171 <label for="input-id">\ 3172 <i class="fa fa-asterisk"></i>\ 3173 <span>id</span>\ 3174 </label>\ 3175 </span>\ 3176 <span class="form-group optional initial">\ 3177 <input class="form-control" type="password" id="input-password" placeholder="' + $.lang[LANG]['siteum.login.password'] + '"/>\ 3178 <label for="input-password">\ 3179 <i class="fa fa-asterisk"></i>\ 3180 <span>password</span>\ 3181 </label>\ 3182 </span>\ 3183 </div>\ 3184 <div class="modal-footer">\ 3185 <button type="button" class="btn btn-primary" id="uLogin">' + $.lang[LANG]['manager.site-um.login'] + '</button>\ 3186 ' + join_btn + '\ 3187 <p class="modal-change-wrap siteUM"><span class="forgot-pw hand">' + $.lang[LANG]['siteum.forgot.id-pw'] + '</span></p>\ 3188 </div>\ 3189 </div>\ 3190 </div>\ 3191 </div>\ 3192 </div>\ 3193 '; 3194 3195 3196 return loginModal_html; 3197 }, 3198 loginModalInit: function(mode) { 3199 mode = (mode) ? '-' + mode : ''; 3200 var loginModal = $('#login-modal'+mode); 3201 3202 loginModal.find('.form-group').each(function() { 3203 $(this).removeClass('focus'); 3204 $(this).find('.error').remove(); 3205 $(this).find('input.form-control').val(''); 3206 }); 3207 }, 3208 loginModalKeyFunc: function(mode) { 3209 mode = (mode) ? '-' + mode : ''; 3210 var loginModal = $('#login-modal'+mode); 3211 3212 loginModal.find('input.form-control').live({ 3213 focus: function(e) { $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); }, 3214 blur: function(e) { $(this).closest('.form-group').removeClass('focus'); }, 3215 keydown: function(e) { 3216 if($('.dsgn-body').hasClass('mobile-nav-active')) $('.el-menu header.n
3216avbar-fheader .navbar-toggle').click(); 3217 if(e.keyCode == 13) $('#uLogin').click(); 3218 }, 3219 keyup: function(e) { 3220 var groupEl = $(this).closest('.form-group'), 3221 errorEL = $(this).next().next('.error'); 3222 if($(this).val().length > 0) errorEL.remove(); 3223 } 3224 }); 3225 }, 3226 showForgotIDModal: function(sid) { 3227 if($('#forgotpw-modal').length > 0 ) $('#forgotpw-modal').delay(3000).modal('hide'); 3228 3229 var content = $.umember.makeForgotIDModalContent(); 3230 $.umember.showMngModal(sid, content, 'forgotid-modal', false, function() { 3231 $('#forgotid-modal').find('.error').remove(); 3232 $('#forgotid-modal').find('input.form-control').val(''); 3233 $('#forgotid-modal .modal-body').children().removeAttr('style'); 3234 $('#forgotid-modal .modal-footer').children('button').removeAttr('style'); 3235 $('#forgotid-modal').find('.forgot-id-result').text(''); 3236 }, function() { 3237 $('#forgotid-modal').find('input.form-control').live({ 3238 keydown: function(key) { if(key.keyCode == 13) $('#uForgotID').click(); }, 3239 keyup: function() { 3240 $('#forgotid-modal .modal-body').children().removeAttr('style'); 3241 $('#forgotid-modal .modal-footer').children('button').removeAttr('style'); 3242 $('#forgotid-modal').find('.forgot-id-result').text(''); 3243 var regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 3244 errorEL = $(this).closest('.form-group').find('.error'); 3245 3246 if(!regexp.test($(this).val())) errorEL.text($.lang[LANG]['siteum.regexp.check.email']); 3247 else errorEL.remove(); 3248 } 3249 }); 3250 }, '', '', ''); 3251 }, 3252 makeForgotIDModalContent: function() { 3253 var forgotIDModal_html = '\ 3254 <div class="flat-modal mng-forgotid-modal mng-siteUM-modal">\ 3255 <div class="modal modal-default fade" id="forgotid-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3256 <div class="modal-dialog" role="document">\ 3257 <div class="modal-content">\ 3258 <div class="modal-header">\ 3259 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3260 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3261 </button>\ 3262 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['siteum.forgot.id.link'] + '</h5>\ 3263 </div>\ 3264 <div class="modal-body">\ 3265 <div>' + $.lang[LANG]['siteum.forgot.id.description'] + '</div>\ 3266 <span class="form-group">\ 3267 <input class="form-control" type="text" id="input-email" placeholder="' + $.lang[LANG]['siteum.forgot.pw.input-email'] + '"/>\ 3268 </span>\ 3269 <div class="forgot-id-result"></div>\ 3270 </div>\ 3271 <div class="modal-footer">\ 3272 <button type="button" class="btn btn-primary" id="uForgotID">' + $.lang[LANG]['siteum.forgot.id.btn'] + '</button>\ 3273 <p class="modal-change-wrap siteUM"> <span class="forgot-pw hand">' + $.lang[LANG]['siteum.forgot.pw.link'] + '</span></p>\ 3274 <p class="modal-change-wrap siteUM"> <span class="login hand">' + $.lang[LANG]['manager.site-um.login'] + '</span></p>\ 3275 </div>\ 3276 </div>\ 3277 </div>\ 3278 </div>\ 3279 </div>\ 3280 '; 3281 3282 return forgotIDModal_html; 3283 }, 3284 showForgotPWModal: function(sid) { 3285 if($('#login-modal').length > 0 ) $('#login-modal').delay(3000).modal('hide'); 3286 if($('#forgotid-modal').length > 0 ) $('#forgotid-modal').delay(3000).modal('hide'); 3287 3288 var content = $.umember.makeForgotPWModalContent(); 3289 $.umember.showMngModal(sid, content, 'forgotpw-modal', false, function() { 3290 $('#forgotpw-modal').find('.focus').removeClass('focus'); 3291 $('#forgotpw-modal').find('.error').remove(); 3292 $('#forgotpw-modal').find('input.form-control').val(''); 3293 }, function() { 3294 $('#forgotpw-modal').find('input.form-control').live({ 3295 foucs: function() { $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); }, 3296 blur: function() { $(this).closest('.form-group').removeClass('focus'); }, 3297 keydown: function(key) { if(key.keyCode == 13) $('#uForgotPW').click(); }, 3298 keyup: function() { 3299 var regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 3300 field = $(this).attr('id').trim().replace(/input-/,''), 3301 errorEL = $(this).closest('.form-group').find('.error'); 3302 3303 if(field == 'email' && !regexp.test($(this).val())) errorEL.text($.lang[LANG]['siteum.regexp.check.email']); 3304 else errorEL.remove(); 3305 } 3306 }); 3307 }, '', '', ''); 3308 }, 3309 makeForgotPWModalContent: function() { 3310 var forgotPWModal_html = '\ 3311 <div class="flat-modal mng-forgotpw-modal mng-siteUM-modal">\ 3312 <div class="modal modal-default fade" id="forgotpw-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3313 <div class="modal-dialog" role="document">\ 3314 <div class="modal-content">\ 3315 <div class="modal-header">\ 3316 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3317 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3318 </button>\ 3319 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['siteum.forgot.pw.title'] + '</h5>\ 3320 </div>\ 3321 <div class="modal-body">\ 3322 <div>' + $.lang[LANG]['siteum.forgot.pw.description'] + '</div>\ 3323 <span class="form-group">\ 3324 <input class="form-control" type="text" id="input-id" placeholder="' + $.lang[LANG]['manager.list.info.id'] + '"/>\ 3325 </span>\ 3326 <span class="form-group">\ 3327 <input class="form-control" type="text" id="input-email" placeholder="' + $.lang[LANG]['siteum.forgot.pw.input-email'] + '"/>\ 3328 </span>\ 3329 </div>\ 3330 <div class="modal-footer">\ 3331 <button type="button" class="btn btn-primary" id="uForgotPW">' + $.lang[LANG]['siteum.forgot.pw.btn'] + '</button>\ 3332 <p class="modal-change-wrap siteUM"> <span class="forgot-id hand">' + $.lang[LANG]['siteum.forgot.id.link'] + '</span></p>\ 3333 <p class="modal-change-wrap siteUM"> <span class="login hand">' + $.lang[LANG]['manager.site-um.login'] + '</span></p>\ 3334 </div>\ 3335 </div>\ 3336 </div>\ 3337 </div>\ 3338 </div>\ 3339 '; 3340 3341 return forgotPWModal_html; 3342 }, 3343 showMypageModal: function(sid) { 3344 if($('.mng-siteUM-modal').length > 0 ) $('.mng-siteUM-modal').children().first().modal('hide'); 3345 3346 $.getJSON('/umember/get/type/mypage', function(data) { 3347 if(typeof data.error != 'undefined' && data.error) { 3348 alert(data.error); 3349 return false;
3350 } 3351 // COLLECTION_REGEX = $.parseJSON(data['regExp']); 3352 COLLECTION_REGEX = data['regExp']; 3353 3354 var content = $.umember.makeMypageContent(sid,data,''); 3355 $('body').find('.dsgn-body').append('<link rel="stylesheet" href="/css/manager.css" type="text/css" class="manager_css">'); 3356 $.umember.showMngModal(sid, content, 'mypage-modal', false, 3357 function() { }, 3358 function() { }, 3359 function() { $('body .dsgn-body').find('link.manager_css').remove(); }, '', ''); 3360 }); 3361 }, 3362 3363 makeMypageConditionsStr: function(sid,data,mode,cert) { 3364 if(typeof cert === 'undefined' || !cert) cert = 'N'; 3365 3366 var collections = '', 3367 make_pass = ['sid', 'no', 'id', 'image', 'regExp', 'cert', 'cert_date', 'cert_adult', 'cert_adult_date', 'sm_addr', 'shopgrade_name', 'coupon_cnt', 'my_point', 'acc_amount', 'acc_count', 'to_next_amount', 'to_next_count', 'next_grade', 'grade_notice_type', 'period_label', 'period_guide_label', 'next_apply_label', 'renewal_label']; 3368 3369 $.each(data, function(field,o) { 3370 if (field != 'um_sns_key') { 3371 if($.inArray(field,make_pass) == -1) { 3372 var name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+field], 3373 optional = (o['optional']) ? o['optional'] : false, 3374 optional_class = (optional) ? 'optional' : '', 3375 prev_val = (field == 'email' || field == 'nick') ? 'data-prev="' + o['value'] + '"' : '', 3376 etc_val_type = ['memo','radio','check','select','fupload'], 3377 cl_val_str = '', 3378 add_input = '', 3379 jcollection_val_str = ''; 3380 // ê°ê²°íê² ì¼í ì°ì°ìë¡ ë¦¬í©í ë§ 3381 3382 var filecount_data = o['type'] === 'fupload' && o['value'] ? 'isdata' : o['type'] === 'fupload' ? 'nodata' : ''; 3383 3384 var star = (optional) ? '<span class="input-star">*</span>' : ''; 3385 3386 if(field.indexOf('etc')>-1 && etc_val_type.includes(o['type'])) { 3387 var o_val = o['value'], 3388 o_val_arr = ((o['jcol_val'].indexOf('`') > -1) && (o['type']=='radio' || o['type']=='check' || o['type']=='select')) ? o['jcol_val'].split('`') : [o_val], 3389 description_class = (o['description_used']=='true' && (o['type']=='memo')) ? 'use_descr' : ''; 3390 3391 add_input = '\ 3392 <div class="cl-s-join-collections-etcwrap cl-s-form-wrap '+filecount_data+' '+ optional_class + '" data-jcoltype="'+o['type']+'">'; 3393 3394 var text_class = (o_val && (o['type']=='memo')) ? 'textarea-active' : ''; 3395 add_input += '\ 3396 <div class="cl-s-etc '+text_class+'">\ 3397 <span class="cl-s-etc-name">'+ name + star +'</span>\ 3398 '; 3399 add_input += (o['description_used']=='true') ? '<span class="cl-s-etc-description">'+ o['description'] +'</span>' : ''; 3400 add_input += '\ 3401 </div>\ 3402 '; 3403 3404 add_input += '\ 3405 <div class="cl-s-etc-val '+description_class+'">\ 3406 '; 3407 3408 if(o['type']=='select') { 3409 add_input += '\ 3410 <div class="cl-s-form-group cl-s-form-group-select">\ 3411 <select class="cl-s-form-control" name="'+field+'" id="input-' + field + '" required="required">\ 3412 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 3413 '; 3414 } 3415 3416 if(o_val_arr.length > 0) { 3417 $.each(o_val_arr, function(oval_i,oval_v){ 3418 jcollection_val_str += $.umember.makeJoinCollectionsTypeVal(oval_i,o['type'],oval_v,field,optional_class,'mypage',o_val); 3419 }); 3420 } 3421 3422 if(o['type']=='select') { 3423 jcollection_val_str += '\ 3424 </select>\ 3425 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 3426 </div>\ 3427 '; 3428 } 3429 jcollection_val_str += '</div></div>'; 3430 3431 } else { 3432 add_input += '\ 3433 <div class="cl-s-form-wrap ' + optional_class + '">\ 3434 <div class="cl-s-form-group">\ 3435 <input type="text" class="cl-s-form-control" name="'+field+'" id="input-' + field + '" required="required" value="' + o['value'] + '" ' + prev_val + '>\ 3436 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 3437 </div>\ 3438 </div>\ 3439 '; 3440 3441 } 3442 if(field == 'birth') { 3443 var birth = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+field]; 3444 3445 add_input = '\ 3446 <div class="cl-s-form-wrap ' + optional_class + '">\ 3447 <div class="cl-s-form-group">\ 3448 <input type="text" class="cl-s-form-control cl-s-form-birth" name="'+field+'" id="input-' + field + '" required="required" value="' + o['value'] + '" onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)">\ 3449 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.mypage.Birth'] + star + ' </label>\ 3450 </div>\ 3451 </div>\ 3452 '; 3453 } else if(field == 'addr') { 3454 3455 3456 if( mode && mode === 'business'){ 3457 var o_postcode = (o['value'][0]) ? o['value'][0].trim() : '', 3458 o_addr1 = (o['value'][1]) ? o['value'][1].trim() : '', 3459 o_addr2 = (o['value'][2]) ? o['value'][2].trim() : '', 3460 addr_has_clas = (o_postcode || o_addr1) ? 'has-value' : '', 3461 addr_modal = (mode == 'shopping' || o['addrsearch']) ? 'readonly onfocus="addrSearchModal(\'input\')" ' : ''; 3462 3463 add_input = '\ 3464 <div class="cl-s-form-wrap ' + optional_class + '">\ 3465 <div class="cl-s-form-group">\ 3466 <input type="hidden" class="cl-s-form-control" name="postcode" id="input-postcode" value="' + o_postcode + '">\ 3467 <input type="text" class="cl-s-form-control '+addr_has_clas+'" name="addr1" id="input-addr1" required="required" value="' + o_addr1 + '" ' + addr_modal + '>\ 3468 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 3469 </div>\ 3470 </div>\ 3471 <div class="cl-s-form-wrap">\ 3472 <div class="cl-s-form-group">\ 3473 <input type="text" class="cl-s-form-control" name="addr2" id="input-addr2" required="required" value="' + o_addr2 + '">\ 3474 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr2'] + '</label>\ 3475 </div>\ 3476 </div>\ 3477 '; 3478 } else if(mode && mode === 'shopping') { 3479 var sm_name = '', 3480 sm_tel = '', 3481 sm_addr0 = '', 3482 sm_addr0_empty ='', 3483 sm_addr1 = '', 3484 sm_addr2 = '', 3485 sm_isalias = '', 3486 sm_isalias_empty = '', 3487 aliasText = '', 3488 sm_nodata = ''; 3489 btn_text ='' 3490 3491 if (data['sm_addr'] && data['sm_addr']['is_default'] === 0) { 3492 sm_nodata = 'emptyFlag'; 3493 btn_text = 'ì¶ê°í기'; 3494 } else{ 3495 const sm = data?.sm_addr || {}; 3496 3497 sm_name = sm.name?.trim?.() || ''; 3498 sm_tel = sm.tel?.trim?.() || ''; 3499 3500 addrText = sm.value?.[0]?.trim?.() || ''; 3501 sm_addr0 = addrText ? '[' + addrText + ']' : ''; 3502 sm_addr0_empty = sm_addr0 ? '' : 'hide'; 3503 3504 sm_addr1 = sm.value?.[1]?.trim?.() || ''; 3505 sm_addr2 = sm.value?.[2]?.trim?.() || ''; 3506 aliasText = sm.alias?.trim?.() || ''; // 먼ì alias 문ìì´ ë½ê¸°
3507 sm_isalias = aliasText ? '(' + aliasText + ')' : ''; // ê´í¸ ì²ë¦¬ 3508 sm_isalias_empty = aliasText ? '' : 'hide'; // í´ëì¤ ì²ë¦¬ 3509 3510 3511 btn_text = 'ë³ê²½í기'; 3512 3513 } 3514 3515 var valueCheckEl = ""; 3516 (valueCheckEl = sm_nodata ? '<input type="text" class="cl-s-form-control hide" required="required" value="">' : '' ); 3517 add_input = '\ 3518 <div class="cl-s-form-wrap sm-parent '+sm_nodata+'">\ 3519 <div class="cl-s-form-wrap '+(sm_nodata ? optional_class : "") +'">\ 3520 <div class="cl-s-form-group">\ 3521 <div class="cl-s-form-control flexbox">\ 3522 '+valueCheckEl+'\ 3523 <label for="input" class="cl-s-control-label">ë°°ì¡ì§ ì ë³´<span class="input-star '+ (optional_class ? '' : 'hide') +'">*</span></label>\ 3524 <div class="cl-s-form-wrap btn-load-addresses mypage" data-action="getList">\ 3525 <div class="cl-s-form-group EditBtn">\ 3526 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="m15.29 7-1.31 1.31c.16-3-1.96-5.71-5-6.22-1.91-.32-3.86.3-5.23 1.67l.71.71a5.003 5.003 0 0 1 7.07 0 4.989 4.989 0 0 1 1.45 3.81L11.7 7l-.71.71 2.5 2.5 2.5-2.5-.71-.71ZM4.46 11.53a4.989 4.989 0 0 1-1.45-3.81L4.29 9 5 8.29l-2.5-2.5L0 8.29.71 9l1.31-1.31c-.16 3 1.96 5.71 5 6.22 1.91.32 3.86-.3 5.23-1.67l-.71-.71a5.003 5.003 0 0 1-7.07 0Z"/></svg><span>'+btn_text+'</span>\ 3527 </div>\ 3528 <div class="cl-s-form-group ">\ 3529 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12"><path d="M6.5 12h-1V6.5H0v-1h5.5V0h1v5.5H12v1H6.5V12Z"/></svg><span>'+btn_text+'</span>\ 3530 </div>\ 3531 </div>\ 3532 </div>\ 3533 <div class="cl-s-form-control"><div class="sm-name">'+sm_name+'</div><div class="sm-alias '+sm_isalias_empty+'">'+sm_isalias+'</div><div class="sm-default-addr"><span>기본배ì¡ì§</span></div></div>\ 3534 \ 3535 <div class="cl-s-form-control"><div class="sm-addr1"><span class ="'+sm_addr0_empty+'">'+sm_addr0+'</span><span>'+sm_addr1+' '+sm_addr2+'</span></div></div>\ 3536 <div class="cl-s-form-control"><div class="sm-tel">'+sm_tel+'</div></div>\ 3537 <div class="cl-s-form-control noaddress" style="text-align:center; padding:20px; color:#999;">ë±ë¡ë ë°°ì¡ì§ê° ììµëë¤.</div>\ 3538 </div>\ 3539 </div>\ 3540 </div>\ 3541 '; 3542 } 3543 3544 } else if(field == 'gender') { 3545 add_input = '\ 3546 <div class="cl-s-form-wrap ' + optional_class + '">\ 3547 <div class="cl-s-form-group">\ 3548 <select class="cl-s-form-control" name="gender" id="input-gender" required="required">\ 3549 <option value="">ì í</option>'; 3550 if(o['value'] == '01') { 3551 add_input += '\ 3552 <option value="01" selected>ë¨</option>\ 3553 <option value="02">ì¬</option>'; 3554 } else if(o['value'] == '02') { 3555 add_input += '\ 3556 <option value="01">ë¨</option>\ 3557 <option value="02" selected>ì¬</option>'; 3558 } else { 3559 add_input += '\ 3560 <option value="01">ë¨</option>\ 3561 <option value="02">ì¬</option>'; 3562 } 3563 add_input += '\ 3564 </select>\ 3565 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 3566 <label for="input" class="cl-s-control-label">' + name + star +'</label>\ 3567 </div>\ 3568 </div>\ 3569 '; 3570 } 3571 3572 if(cert == 'Y') { 3573 switch (field) { 3574 case 'name': 3575 case 'gender': 3576 case 'birth': 3577 case 'tel': 3578 var value = (o['value'])? o['value']:''; 3579 add_input = '<input id="input-' + field + '" type="hidden" name="' + field + '" value="' + value + '">'; 3580 break; 3581 } 3582 } 3583 3584 collections += add_input + jcollection_val_str; 3585 3586 } 3587 } 3588 }); 3589 return collections; 3590 }, 3591 makeMypageContent: function(sid,data,mode,cert) { 3592 if(typeof cert === 'undefined' || !cert) cert = 'N'; 3593 3594 var collections = $.umember.makeMypageConditionsStr(sid,data,mode,cert), 3595 s_validtype = (typeof VALIDTYPE != 'undefined') ? VALIDTYPE : property.VALIDTYPE; 3596 3597 var default_info = '\ 3598 <div class="profile-wrap cl-s-profile-box col-xs-12 col-sm-12 col-md-12 no-padding">\ 3599 <div class="profile-image-wrap profile-image-box">\ 3600 <svg viewBox="0 0 110 110">\ 3601 <pattern id="profileMyImg" patternUnits="userSpaceOnUse" width="110" height="110">\ 3602 <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="' + data['image'] + '" x="0" width="110" height="110"></image>\ 3603 </pattern>\ 3604 <circle cx="55" cy="56" r="54" fill="url(#profileMyImg)" stroke="#ededed"></circle>\ 3605 </svg>\ 3606 </div>\ 3607 <div class="profile-text-wrap">\ 3608 <div class="cl-s-form-wrap cl-s-info-id" disabled>\ 3609 <input type="hidden" class="cl-s-form-control" name="id" id="input-id" required="required" value="' + data['id']['value'] + '">\ 3610 <span class="id-text">' + data['id']['value'] + '</span>\ 3611 </div>\ 3612 <label for="profileMyImgFileupload">' + $.lang[LANG]['siteum.mypage.change.image'] + '</label>\ 3613 <input id="profileMyImgFileupload" class="modal-upload-button um-image-upload" type="file" name="files[]" data-sid="' + sid + '" data-uid="' + data['id']['value'] + '" />\ 3614 <p class="cl-s-image-size">' + $.lang[LANG]['manager.mypage.profile.image.note'] + ' ' + $.lang[LANG]['manager.mypage.profile.image.size'] + '</p>\ 3615 </div>\ 3616 </div>\ 3617 <div class="clearfix"></div>\ 3618 '; 3619 3620 var mypage_avatar = '\ 3621 <div class="profile-wrap cl-s-profile-box col-xs-12 col-sm-12 col-md-12 no-padding">\ 3622 <div class="profile-image-wrap profile-image-box">\ 3623 <svg viewBox="0 0 110 110">\ 3624 <pattern id="profileMyImg" patternUnits="userSpaceOnUse" width="110" height="110">\ 3625 <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="' + data['image'] + '" x="0" width="110" height="110"></image>\ 3626 </pattern>\ 3627 <circle cx="55" cy="56" r="54" fill="url(#profileMyImg)" stroke="#ededed"></circle>\ 3628 </svg>\ 3629 </div>\ 3630 </div>\ 3631 <div class="clearfix"></div>\ 3632 '; 3633 3634 var content = '\ 3635 <div class="cl-s-form-wrap">\ 3636 <div class="cl-s-form-group">\ 3637 <input type="password" class="cl-s-form-control" name="password" id="input-password" required="required" value="">\ 3638 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password.myinfo'] + '</label>\ 3639 </div>\ 3640 </div>\ 3641 <div class="cl-s-form-wrap">\ 3642 <div class="cl-s-form-group">\ 3643 <input type="password" class="cl-s-form-control" name="password_checked" id="input-password-checked" required="required" value="">\ 3644 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password-check'] + '</label>\ 3645 </div>\ 3646 </div>\ 3647 <div class="cl-s-form-description">' + $.lang[LANG]['siteum.login.password.description'] + '</div>\ 3648 '; 3649 3650 return { content: content, collections: collections, default_info: default_info, mypage_avatar:mypage_avatar }; 3651 }, 3652 showMyImageUploadModal: function(sid,uid,src) { 3653 var content = '\ 3654 <div class="flat-modal mng-mypage-modal">\ 3655 <div class="modal modal-default fade" id="my-image-modal" tabindex="-1" role="dialog" aria-labelledby="mySmallMod
3655alLabel" aria-hidden="true" data-sid="' + sid + '" data-uid="' + uid + '">\ 3656 <div class="modal-dialog w385">\ 3657 <div class="modal-content">\ 3658 <button type="" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-modal.png" alt="close"></span></button>\ 3659 <div class="modal-body">\ 3660 <div class="profile-image-wrap no-opacity">\ 3661 <div>\ 3662 <span class="top"></span>\ 3663 <span class="bottom"></span>\ 3664 </div>\ 3665 <img class="my-image img-responsive" src="' + src + '" alt="profile image" />\ 3666 </div>\ 3667 <p>' + $.lang[LANG]['manager.mypage.profile.image.note'] + ' <strong>' + $.lang[LANG]['manager.mypage.profile.image.size'] + '</strong></p>\ 3668 </div>\ 3669 <div id="progress" class="progress">\ 3670 <div class="progress-bar progress-bar-success"></div>\ 3671 </div>\ 3672 <div class="modal-footer">\ 3673 <button type="button" class="btn btn-default" data-dismiss="modal">' + $.lang[LANG]['config.close'] + '</button>\ 3674 <span class="btn btn-primary fileinput-button">\ 3675 <span>' + $.lang[LANG]['manager.mypage.profile.image.apply'] + '</span>\ 3676 <input id="profileUMFileupload" class="modal-upload-button um-image-upload" type="file" name="files[]" data-sid="' + sid + '" data-uid="' + uid + '" >\ 3677 </span>\ 3678 </div>\ 3679 </div>\ 3680 </div>\ 3681 </div>\ 3682 </div>\ 3683 '; 3684 3685 $.umember.showMngModal(sid, content, 'my-image-modal', false, '', '', '', '', ''); 3686 }, 3687 fileurlcreate : function(cl_val) { 3688 // ë¨ì¼ íì¼ URL ìì± í¨ì 3689 // cl_valì ë°ìì ë¤ì´ë¡ë ë§í¬ì íì¼ ì 보를 ë°í 3690 var result = { 3691 download_link: '', 3692 file_links: '', 3693 file_data: '', 3694 file_info: { 3695 name: '', 3696 size: '', 3697 url: '', 3698 size_display: '' 3699 } 3700 }; 3701 3702 if(cl_val && cl_val.trim() !== '') { 3703 // ë¨ì¼ íì¼ ì²ë¦¬ - 첫 ë²ì§¸ íì¼ë§ ì¬ì© 3704 var file_data = cl_val.split(',')[0]; 3705 result.file_data = file_data; 3706 3707 if(file_data && file_data.trim() !== '') { 3708 var explode_v = file_data.split('||'); 3709 // console.log('fileurlcreate explode_v:', explode_v); // ëë²ê¹ ì© 3710 3711 // íì¬ ë°ì´í° 구조ì ë§ê² ìì 3712 // explode_v[0]: íì¼ëª , explode_v[1]: íì¼ í¬ê¸°, explode_v[2]: URL 3713 var link_url = explode_v[2] || ''; 3714 var link_url_arr = link_url.split('/'); 3715 var true_file_name = link_url_arr[link_url_arr.length - 1]; 3716 3717 if(explode_v[0]) { 3718 // íì¼ í¬ê¸° ê³ì° (explode_v[1]ìì í¬ê¸° ì¶ì¶) 3719 var flink_s = (explode_v[1]) ? parseFloat(explode_v[1].replace(/[^0-9\.]/g, '')) : 0; 3720 var flink_unit = (explode_v[1] && explode_v[1].indexOf('MB') > -1) ? 'MB' : 'KB'; 3721 var flink_size = (flink_unit === 'MB') ? flink_s : flink_s; 3722 // view.htmlì round($flink_size,2)ì ëì¼íê² ììì 2ì리ê¹ì§ íì 3723 var flink_str = (explode_v[1]) ? parseFloat(flink_size.toFixed(2)) + flink_unit : ''; 3724 3725 var current_sid = (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : ''); 3726 var download_link = '<a href="/down/flink/1/sid/' + current_sid + '/name/' + encodeURIComponent(explode_v[0]) + '/s/' + true_file_name + '" class="file-download-btn" target="_blank">'; 3727 3728 result.download_link = download_link; 3729 result.file_links = download_link; 3730 result.file_info = { 3731 name: explode_v[0], 3732 size: explode_v[1] || '', 3733 url: link_url, 3734 size_display: flink_str 3735 }; 3736 } 3737 } 3738 } 3739 3740 return result; 3741 }, 3742 fileHtmlRender : function(orgfield,option){// 그리기 ë´ë¹ ë©ìë 3743 // ì¨ ê°ìë°ë¼ 그리ëê±° ë¬ë¼ì§ê¸° 3744 option = $.extend({ 3745 val : "", 3746 type : "", 3747 type2_downlink : "" 3748 3749 3750 }, option); 3751 3752 // option.valìì íì¼ ì ë³´ íì± (íì¼ëª ||íì¼í¬ê¸°||íì¼ê²½ë¡ íí) 3753 var fileName = ''; 3754 var fileSize = ''; 3755 var filePath = ''; 3756 var fileSizeDisplay = ''; 3757 var fileSizeUnit = 'KB'; 3758 var hasValidFile = false;
3759 // option.valì´ ìê³ íì¼ ì ë³´ íìì´ ë§ëì§ íì¸ 3760 if (option.val && option.val.indexOf('||') > -1) { 3761 var fileData = option.val.split('||'); 3762 if (fileData.length >= 3) { 3763 fileName = fileData[0]; 3764 fileSize = fileData[1]; 3765 filePath = fileData[2]; 3766 filePaths = (filePath && filePath.indexOf('/') > -1 ? [filePath.split('/').pop()] : []); 3767 // íì¼ëª ê³¼ ê²½ë¡ê° 모ë ìë ê²½ì°ìë§ ì í¨í íì¼ë¡ íë¨ 3768 if (fileName && filePath) { 3769 hasValidFile = true; 3770 3771 // íì¼ í¬ê¸° ë¨ì ì²ë¦¬ 3772 if (fileSize.indexOf('KB') > -1) { 3773 fileSize = parseFloat(fileSize.replace('KB', '')); 3774 fileSizeUnit = 'KB'; 3775 } else if (fileSize.indexOf('MB') > -1) { 3776 fileSize = parseFloat(fileSize.replace('MB', '')); 3777 fileSizeUnit = 'MB'; 3778 } else { 3779 fileSize = parseFloat(fileSize); 3780 fileSizeUnit = 'KB'; 3781 } 3782 3783 // íì¼ í¬ê¸° íì íì ì¡°ì 3784 if (fileSizeUnit === 'KB' && fileSize > 1024) { 3785 fileSizeDisplay = (fileSize / 1024).toFixed(2) + 'MB'; 3786 } else { 3787 fileSizeDisplay = fileSize.toFixed(2) + fileSizeUnit; 3788 } 3789 } 3790 } 3791 } 3792 3793 var temphtml = ''; 3794 3795 if(option.type == 'type1') { 3796 if (hasValidFile) { 3797 // íì¼ì´ ìë ê²½ì° 3798 temphtml += '\ 3799 <div class="cl-s-form-group">\ 3800 <input type="text" class="cl-s-form-control valueCheck" value="' + option.val + '" required="required" name="'+orgfield+'" id="input-' + orgfield + '">\ 3801 <div class="cl-s-form-control-register">\ 3802 <p class="file-title text hide">첨ë¶ë íì¼ì´ ììµëë¤.</p>\ 3803 <label r-fupload-type="file.upload" r-fupload-require="" class="hide"><input type="file" class="hide" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M1 15v-3.5h1V14h12v-2.5h1V15H1Zm6.5-2.79v-9.3L4.35 6.06l-.71-.71L8 1l4.35 4.35-.71.71-3.15-3.15v9.29h-1Z"/></svg>' + $.lang[LANG]['register.fileUpload.btn.text'] + '</label>\ 3804 <div class="file-row display-flex align-items-center">\ 3805 <div class="r-flex-left">\ 3806 <div class="file-thumb"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 16c-1.66 0-3-1.34-3-3V6l6-6h5c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H4Zm-2-3c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H8v4c0 1.1-.9 2-2 2H2v6Zm.41-7H6c.55 0 1-.45 1-1V1.41L2.41 6ZM4 13v-1h8v1H4Zm0-3V9h8v1H4Z"/></svg></div>\ 3807 <div>\ 3808 <p class="file-name">'+fileName+'</p>\ 3809 </div>\ 3810 </div>\ 3811 <div class="r-flex-right">\ 3812 <p class="file-size">'+fileSizeDisplay+'</p>\ 3813 <span class="form-file-delete" data-src="'+filePaths+'">\ 3814 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="15" height="15"><g>
3814<path d="M2.35 12.65c-.2-.2-.2-.51 0-.71l9.6-9.6c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-9.6 9.6c-.2.2-.52.2-.71 0z"/><path d="M12.3 2.2a.47.47 0 0 0-.35.15l-9.6 9.6c-.2.2-.2.51 0 .71.1.1.23.15.35.15.13 0 .26-.05.35-.15l9.6-9.6c.2-.2.2-.51 0-.71-.1-.1-.22-.15-.35-.15z"/><path d="M12.65 12.65c-.2.2-.51.2-.71 0l-9.6-9.6c-.2-.2-.2-.51 0-.71.2-.2.51-.2.71 0l9.6 9.6c.2.2.2.52 0 .71z"/><path d="M2.7 2.2a.47.47 0 0 0-.35.15c-.2.2-.2.51 0 .71l9.6 9.6c.1.1.23.15.35.15.13 0 .26-.05.35-.15.2-.2.2-.51 0-.71l-9.6-9.6a.47.47 0 0 0-.35-.15z"/></g></svg>\ 3815 </span>\ 3816 </div>\ 3817 </div>\ 3818 </div>\ 3819 </div>\ 3820 '; 3821 } else { 3822 // íì¼ì´ ìë ê²½ì° 3823 temphtml += '\ 3824 <div class="cl-s-form-group">\ 3825 <input type="text" class="cl-s-form-control valueCheck" value="" required="required" name="'+orgfield+'" id="input-' + orgfield + '">\ 3826 <div class="cl-s-form-control-register" >\ 3827 <p class="file-title hide text">첨ë¶ë íì¼ì´ ììµëë¤.</p><label r-fupload-type="file.upload" r-fupload-require="" class=""><input type="file" class="hide" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M1 15v-3.5h1V14h12v-2.5h1V15H1Zm6.5-2.79v-9.3L4.35 6.06l-.71-.71L8 1l4.35 4.35-.71.71-3.15-3.15v9.29h-1Z"/></svg>' + $.lang[LANG]['register.fileUpload.btn.text'] + '</label></div>\ 3828 </div>\ 3829 </div>\ 3830 '; 3831 } 3832 } else if(option.type == 'type2') { 3833 if(!option.val){ 3834 temphtml += '\ 3835 <div class="type2 cl-common-form-wrap nonplace-holder '+ (option.val ? 'isdata' : 'nodata') +'" data-jcoltype="fupload" id="member-'+ orgfield + '">\ 3836 <div class="cl-common-form-group">\ 3837 <div class="cl-s-form-group">\ 3838 <input type="text" class="member-info-input form-control cl-s-form-control valueCheck" value="" required="required" name="member-'+orgfield+'" id="member-' + orgfield + '">\ 3839 <div class="cl-s-form-control-register" >\ 3840 <label r-fupload-type="file.upload" r-fupload-require="" class=""><input type="file" class="hide" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M1 15v-3.5h1V14h12v-2.5h1V15H1Zm6.5-2.79v-9.3L4.35 6.06l-.71-.71L8 1l4.35 4.35-.71.71-3.15-3.15v9.29h-1Z"/></svg>' + $.lang[LANG]['register.fileUpload.btn.text'] + '</label></div>\ 3841 </div>\ 3842 </div>\ 3843 </div>'; 3844 } else { 3845 temphtml += '\ 3846 <div class="type2 cl-common-form-wrap nonplace-holder '+ (option.val ? 'isdata' : 'nodata') +'" data-jcoltype="fupload" id="member-'+ orgfield + '">\ 3847 <div class="cl-common-form-group">\ 3848 <div class="cl-s-form-group">\ 3849 <input type="text" class="member-info-input form-control cl-s-form-control valueCheck" value="'+option.val+'" required="required" name="member-'+orgfield+'" id="member-' + orgfield + '">\ 3850 <div class="cl-s-form-control-register" >\ 3851 <div class="file-row file-info-layout">\ 3852 <div class="file-left-area">\ 3853 <p class="file-name">'+fileName+'</p>\ 3854 </div>\ 3855 <div class="file-right-area">\ 3856 <span class="file-size">'+fileSizeDisplay+'</span>\ 3857 '+$.umember.fileurlcreate(option.val).download_link+'\ 3858 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 3859 <path d="M5 19v-3.5h1V18h12v-2.5h1V19H5Zm2.65-7.15.71-.71 3.15 3.15V5h1v9.29l3.15-3.15.71.71-4.35 4.35-4.35-4.35Z"/>\ 3860 </svg>\ 3861 </a>\ 3862 <span class="form-file-delete" data-src="'+filePaths+'">\ 3863 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 3864 <path d="M19 8h-3V6H8.02v2H5v1h1v9c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9h1V8ZM9.02 7H15v1H9.02V7ZM17 18c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V9h10v9Zm-7-7h1v6h-1v-6Zm3 0h1v6h-1v-6Z"/>\ 3865 </svg>\ 3866 </span>\ 3867 </div>\ 3868 </div>\ 3869 <label r-fupload-type="file.upload" r-fupload-require="" class=""><input type="file" class="hide" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M1 15v-3.5h1V14h12v-2.5h1V15H1Zm6.5-2.79v-9.3L4.35 6.06l-.71-.71L8 1l4.35 4.35-.71.71-3.15-3.15v9.29h-1Z"/></svg>
3869' + $.lang[LANG]['register.fileUpload.btn.text'] + '</label></div>\ 3870 </div>\ 3871 </div>\ 3872 </div>'; 3873 } 3874 } 3875 3876 return temphtml; 3877 } 3878 } /*umember end*/ 3879 3880 3881 3882 $(document).on("click", "label[r-fupload-type='file.upload']", function () { 3883 var currentPage = "" 3884 if($(this).closest('.info-modal').length > 0) currentPage = "info"; 3885 else if ($(this).closest(".register_form-wrap").length > 0) currentPage = "register"; 3886 else if ($(this).closest(".account-info").length > 0) currentPage = "mypage"; 3887 3888 3889 var REGISTER_MAX_FILE_NUMBER = 1; 3890 3891 $(" div[data-jcoltype='fupload'] input[type='file']").fileupload({ 3892 url: '/template/register_fupload/upload-file', 3893 dataType: 'json', 3894 async: true, 3895 pasteZone: null, 3896 formData: function() { 3897 // sid ê°ì ê°ì ¸ì¤ê¸° ìí ë¡ì§ 3898 var current_sid = (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : ''); 3899 return [ 3900 {name: 'sid', value: current_sid} 3901 ]; 3902 }, 3903 change : function (e, data) { // íì¼ ì í í íì¸ ë²í¼ í´ë¦í ë change ì¡°ê±´ë¤ íµê³¼í´ì¼ í¨ 3904 if(data.files.length > REGISTER_MAX_FILE_NUMBER || $(this).closest(".cl-s-form-control-register ").find('.file-row').length + data.files.length > REGISTER_MAX_FILE_NUMBER){ 3905 // $(this).showModalFlat($.lang[LANG]['manager.list.member.block.title'], modal_content, true, true, function() { 3906 3907 var modal = $(this).showModalFlat('',$.lang[LANG]['register.file.upload.limit'], modal_content, true, true, function() { 3908 $(document).on('keydown', function(e) { 3909 if(e.keyCode == 27) modal.modal('hide'); 3910 }); 3911 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 3912 return false; 3913 } 3914 // console.log("afaf"); 3915 var maxsize = ""; 3916 if(typeof property != 'undefined' && property) maxsize = (property.VALIDPLAN && $.inArray(property.VALIDTYPE,['BN','SM']) > -1) ? 104857600 : 10485760; 3917 else if(typeof VALIDTYPE != 'undefined' && VALIDTYPE) maxsize = ($.inArray(VALIDTYPE,["BUSNESS","SHOPPING"]) > -1) ? 104857600 : 10485760; 3918 // console.log(maxsize); 3919 var flag = true; 3920 $.each(data.files, function(idx, file) { 3921 var filesize = file.size; 3922 if(file.size > maxsize) { 3923 filesize = (filesize/1024/1024).toFixed(1); 3924 if(maxsize == 104857600) err = $.lang[LANG]['editor.upload.max.100'] + $.lang[LANG]['editor.upload.max.2']; 3925 else err = $.lang[LANG]['editor.upload.max.1'] + $.lang[LANG]['editor.upload.max.2']; 3926 3927 $('.flat-modal').addClass('hide'); 3928 $('.modal-backdrop').addClass('hide'); 3929 3930 var modal = $(this).showModalFlat('', err,true,false,function(){ 3931 3932 $(document).on('keydown', function(e) { 3933 if(e.keyCode == 27) modal.modal('hide'); 3934 }); 3935 $('.flat-modal').removeClass('hide'); 3936 $('.modal-backdrop').removeClass('hide'); 3937 3938 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3939 $('.flat-modal').removeClass('hide'); 3940 $('.modal-backdrop').removeClass('hide'); 3941 3942 }); 3943 3944 3945 flag = false; 3946 return false; 3947 } 3948 }); 3949 3950 if(!flag) return false; 3951 }, 3952 add: function(e,data) { // ìë²ì ì ë¡ë ì¼ë¨ í¨ 3953 var r = $.upload_add(e,data,'register_flink'); 3954 // r ê°ì²´ì submitì´ falseì´ê³ err ë©ìì§ê° ìë ê²½ì° ìë¬ íì ì ëì°ë ì²ë¦¬ ììì ëë¤. 3955 if (r && r.submit === false && r.err) { 3956 $('.flat-modal').addClass('hide'); 3957 $('.modal-backdrop').addClass('hide'); 3958 } 3959 3960 if(r.submit) { 3961 $('#loading').css('left','-100%'); 3962 $.processON(); 3963 data.submit(); 3964 3965 // var jqXHR = data.submit(); 3966 } else { 3967 3968 3969 3970 var modal = $(this).showModalFlat('', r.err,true,false,function(){ 3971 $(document).on('keydown', function(e) { 3972 if(e.keyCode == 27) modal.modal('hide'); 3973 }); 3974 $('.flat-modal').removeClass('hide'); 3975 $('.modal-backdrop').removeClass('hide'); 3976 3977 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3978 $('.flat-modal').removeClass('hide'); 3979 $('.modal-backdrop').removeClass('hide'); 3980 3981 }); 3982 } 3983 }, 3984 done: function (e, data) { 3985 if(typeof data.result.error != 'undefined' && data.result.error) { 3986 // alert(data.result.error); 3987 3988 var modal = $(this).showModalFlat('', data.result.error,true,false,function(){ 3989 3990 $(document).on('keydown', function(e) { 3991 if(e.keyCode == 27) modal.modal('hide'); 3992 }); 3993 $('.flat-modal').removeClass('hide'); 3994 $('.modal-backdrop').removeClass('hide'); 3995 3996 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3997 $('.flat-modal').removeClass('hide'); 3998 $('.modal-backdrop').removeClass('hide'); 3999 4000 });
4001 // $('.progress .progress-bar').css('width','0%'); 4002 $.processOFF(); 4003 return; 4004 } 4005 if(typeof data.result.file == 'undefined' || !data.result.file || typeof data.result.uploaded == 'undefined' || !data.result.uploaded) { 4006 4007 4008 var modal = $(this).showModalFlat('', $.lang[LANG]['form.file.upload.disabled'],true,false,function(){ 4009 4010 $(document).on('keydown', function(e) { 4011 if(e.keyCode == 27) modal.modal('hide'); 4012 }); 4013 $('.flat-modal').removeClass('hide'); 4014 $('.modal-backdrop').removeClass('hide'); 4015 4016 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 4017 $('.flat-modal').removeClass('hide'); 4018 $('.modal-backdrop').removeClass('hide'); 4019 4020 }); 4021 $.processOFF(); 4022 return; 4023 } 4024 4025 if(data.result.uploaded) { 4026 var flink_s = (data.result.uploaded.file_size) ? Number(data.result.uploaded.file_size) : 0, 4027 flink_unit = (flink_s > 1024) ? 'MB' : 'KB', 4028 flink_size = (flink_s > 1024) ? flink_s/1024 : flink_s; 4029 4030 var uploaded = data.result.uploaded; 4031 var thumb = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50" height="50"><g><path d="M28 16.82c0 1.21.98 2.18 2.18 2.18H40L28 7v9.82z" style="fill:#3870B2"/><path d="M30.18 19c-1.2 0-2.18-.98-2.18-2.18V7H13c-1.66 0-3 1.34-3 3v30c0 1.66 1.34 3 3 3h24c1.66 0 3-1.34 3-3V19h-9.82zM32 35H18v-2h14v2zm0-5H18v-2h14v2zm0-5H18v-2h14v2z" style="fill:#4789e7"/></g></svg>'; 4032 if(uploaded.file_type.indexOf('image/') > -1 && uploaded.thumbnail_url) { 4033 thumb = '<img src="' + uploaded.thumbnail_url + '">'; 4034 } 4035 4036 //$(this).closest(".cl-s-etc-val").find("input[type='text']").remove(); 4037 $(this).closest("[data-jcoltype='fupload']").find(".valueCheck").val(data.result.uploaded.orig_name + '||' + data.result.uploaded.file_size + 'KB' + '||' + data.result.file); 4038 $(this).closest(".cl-s-form-wrap").removeClass("empty"); 4039 4040 switch(currentPage){ 4041 case "mypage" : 4042 case "register" : 4043 var fileRow = '\ 4044 <div class="file-row display-flex align-items-center">\ 4045 <div class="r-flex-left">\ 4046 <div class="file-thumb"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4 16c-1.66 0-3-1.34-3-3V6l6-6h5c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H4Zm-2-3c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H8v4c0 1.1-.9 2-2 2H2v6Zm.41-7H6c.55 0 1-.45 1-1V1.41L2.41 6ZM4 13v-1h8v1H4Zm0-3V9h8v1H4Z"/></svg></div>\ 4047 <div>\ 4048 <p class="file-name">'+uploaded.orig_name+'</p>\ 4049 </div>\ 4050 </div>\ 4051 <div class="r-flex-right">\ 4052 <p class="file-size">'+flink_size.toFixed(2) + flink_unit+'</p>\ 4053 <span class="form-file-delete" data-src="'+uploaded.file_name+'">\ 4054 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="15" height="15"><g>
4054<path d="M2.35 12.65c-.2-.2-.2-.51 0-.71l9.6-9.6c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-9.6 9.6c-.2.2-.52.2-.71 0z"/><path d="M12.3 2.2a.47.47 0 0 0-.35.15l-9.6 9.6c-.2.2-.2.51 0 .71.1.1.23.15.35.15.13 0 .26-.05.35-.15l9.6-9.6c.2-.2.2-.51 0-.71-.1-.1-.22-.15-.35-.15z"/><path d="M12.65 12.65c-.2.2-.51.2-.71 0l-9.6-9.6c-.2-.2-.2-.51 0-.71.2-.2.51-.2.71 0l9.6 9.6c.2.2.2.52 0 .71z"/><path d="M2.7 2.2a.47.47 0 0 0-.35.15c-.2.2-.2.51 0 .71l9.6 9.6c.1.1.23.15.35.15.13 0 .26-.05.35-.15.2-.2.2-.51 0-.71l-9.6-9.6a.47.47 0 0 0-.35-.15z"/></g></svg>\ 4055 </span>\ 4056 </div>\ 4057 </div>\ 4058 '; 4059 break; 4060 4061 case "info" : 4062 // íì¼ ì 보를 ì¡°í©íì¬ ë¤ì´ë¡ë ë§í¬ ìì± 4063 var file_info_str = uploaded.orig_name + '||' + uploaded.file_size + 'KB' + '||' + data.result.file; 4064 var fileResult = $.umember.fileurlcreate(file_info_str); 4065 var download_link = fileResult.download_link; 4066 4067 var fileRow = '\ 4068 <div class="file-row file-info-layout">\ 4069 <div class="file-left-area">\ 4070 <p class="file-name">'+uploaded.orig_name+'</p>\ 4071 </div>\ 4072 <div class="file-right-area">\ 4073 <span class="file-size">'+flink_size.toFixed(2) + flink_unit+'</span>\ 4074 '+download_link+'\ 4075 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 4076 <path d="M5 19v-3.5h1V18h12v-2.5h1V19H5Zm2.65-7.15.71-.71 3.15 3.15V5h1v9.29l3.15-3.15.71.71-4.35 4.35-4.35-4.35Z"/>\ 4077 </svg>\ 4078 </a>\ 4079 <span class="form-file-delete" data-src="'+uploaded.file_name+'">\ 4080 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 4081 <path d="M19 8h-3V6H8.02v2H5v1h1v9c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9h1V8ZM9.02 7H15v1H9.02V7ZM17 18c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V9h10v9Zm-7-7h1v6h-1v-6Zm3 0h1v6h-1v-6Z"/>\ 4082 </svg>\ 4083 </span>\ 4084 </div>\ 4085 </div>\ 4086 '; 4087 break; 4088 } 4089 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register").append(fileRow); 4090 $(this).closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').addClass('hide'); 4091 4092 $(this).closest("[data-jcoltype='fupload']").addClass('isdata'); 4093 $(this).closest("[data-jcoltype='fupload']").removeClass('nodata'); 4094 } 4095 4096 if($(this).closest("[data-jcoltype='fupload']").find('.file-row').length >= REGISTER_MAX_FILE_NUMBER) { 4097 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register").find('label').addClass('disabled'); 4098 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register ").find('input[type="file"]').prop('disabled', true); 4099 4100 var $inputElement = $(this).closest("[data-jcoltype='fupload']").find('.valueCheck'); 4101 $inputElement.attr('data-etcidx', ''); 4102 $inputElement.attr('data-id', ''); 4103 $inputElement.attr('data-file-name', ''); 4104 } 4105 $.processOFF(); 4106 // $('#loading').css('left','50%'); 4107 }, 4108 }).prop('disabled', !$.support.fileInput) 4109 .parent().addClass($.support.fileInput ? undefined : 'disabled'); 4110 }); 4111 4112 $(document).on("click", "div[data-jcoltype='fupload'] .form-file-delete", function() { 4113 var REGISTER_MAX_FILE_NUMBER = 1; 4114 var $elem = $(this); 4115 4116 var $label = $(this).closest("[data-jcoltype='fupload']").find('label'); 4117 var $inputFile = $(this).closest("[data-jcoltype='fupload']").find('input[type="file"]'); 4118 var etcIdx = $(this).closest("[data-jcoltype='fupload']").find('.valueCheck').attr('name'); 4119 etcIdx = etcIdx.replace('member-', ''); 4120 var directDeleteFlag = false; 4121 var $closestForm = $(this).closest('form[name="myinfo_form"]'); 4122 var id = ""; 4123 4124 if( $closestForm.length > 0 && $closestForm.attr('action') === '/_myinfo_proc') { 4125 directDeleteFlag = true; 4126 id = $(this).closest($closestForm).find('[name="email"]').val(); 4127 } else if (($(this).closest(".mng-modal-body").length > 0)){ 4128 directDeleteFlag = true; 4129 id = $(this).closest(".mng-modal-body").find(".member-info-input").val(); 4130 } 4131 4132 if(directDeleteFlag) { 4133 4134 var $inputElement = $elem.closest("[data-jcoltype='fupload']").find('.valueCheck');
4135 $inputElement.attr('data-etcidx', etcIdx); 4136 $inputElement.attr('data-id', id || ''); 4137 $inputElement.attr('data-file-name', $elem.data('src')); 4138 4139 // íì¼ ì ë¡ë ìí ì ë°ì´í¸ 4140 var fileRowCnt = $elem.closest("[data-jcoltype='fupload']").find('.file-row').length; 4141 $elem.closest("[data-jcoltype='fupload']").find(".valueCheck").attr('value', ''); 4142 4143 $elem.closest("[data-jcoltype='fupload']").addClass('nodata'); 4144 $elem.closest("[data-jcoltype='fupload']").removeClass('isdata'); 4145 $elem.closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').removeClass('hide'); 4146 4147 if($elem.closest("[data-jcoltype='fupload']").hasClass("type2")) { 4148 $elem.closest("[data-jcoltype='fupload']").removeClass("isdata"); 4149 $elem.closest("[data-jcoltype='fupload']").addClass("nodata"); 4150 } 4151 if(fileRowCnt - 1 < REGISTER_MAX_FILE_NUMBER) { 4152 $label.removeClass('disabled'); 4153 $inputFile.prop('disabled', false); 4154 } 4155 $elem.closest('.file-row').remove(); 4156 4157 // íì¸ ë©ìì§ 4158 4159 } else { 4160 if(confirm(directDeleteFlag ? $.lang[LANG]['upload.file.confirm.delete'] : $.lang[LANG]['form.file.confirm.delete'])) { 4161 4162 $.ajax({ 4163 url:"/template/register_fupload/delete-file", 4164 type:"post", 4165 async: true, 4166 beforeSend: function() { 4167 $.processON(); 4168 }, 4169 data:{ 4170 "s": $elem.data("src"), 4171 "directDeleteflag" : directDeleteFlag , 4172 "etcIdx" : etcIdx, 4173 "id" : id || "", 4174 "sid": (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : '') 4175 }, 4176 dataType:"json", 4177 success:function() { 4178 var fileRowCnt = $elem.closest("[data-jcoltype='fupload']").find('.file-row').length; 4179 $elem.closest("[data-jcoltype='fupload']").find(".valueCheck").attr('value', ''); 4180 if(fileRowCnt > 1) { 4181 $elem.closest("[data-jcoltype='fupload']").find('.file-uploaded-number').text('(' + (fileRowCnt - 1) + '/' + REGISTER_MAX_FILE_NUMBER + ')'); 4182 } else { 4183 $elem.closest("[data-jcoltype='fupload']").addClass('nodata'); 4184 $elem.closest("[data-jcoltype='fupload']").removeClass('isdata'); 4185 $elem.closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').removeClass('hide'); 4186 4187 if($elem.closest("[data-jcoltype='fupload']").hasClass("type2")) { 4188 $elem.closest("[data-jcoltype='fupload']").removeClass("isdata"); 4189 $elem.closest("[data-jcoltype='fupload']").addClass("nodata"); 4190 } 4191 } 4192 4193 if(fileRowCnt - 1 < REGISTER_MAX_FILE_NUMBER) { 4194 $label.removeClass('disabled'); 4195 $inputFile.prop('disabled', false); 4196 } 4197 }, 4198 complete: function() { 4199 $elem.closest('.file-row').remove(); 4200 $.processOFF(); 4201 } 4202 }); 4203 } 4204 } 4205 }); 4206 // $.fixbtnConfig = { 4207 // html: function(e){ 4208 // // console.log('fixbtnConfig html'); 4209 4210 // var $this = ($('.siteLANG').has(e.target).length || $(e.target).hasClass('siteLANG')) ? $('.el-menu .siteLANG') : $(e.target), 4211 // fixbtnPosition = $.fixbtnConfig.position($this), 4212 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false, 4213 // fh_type = $('header.navbar[data-fixtype]').attr('data-fh-type'), 4214 // fixtypeNum = $('header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 4215 // fixtypeArr = ['01','02','03','08'], 4216 // edit_html = '<div class="fixbtn_wrap"><span class="fixbtn_edit">' + clSVG('block-config',15,15) + '</span></div>', 4217 // checktarget = $.fixbtnConfig.checkTarget($this); 4218 4219 // if(checktarget.indexOf('FixedMenu')>-1) { 4220 // if(checkSidebar) $('.navbar-fheader[data-fixtype] .cl-fixed-menu').prepend(edit_html); 4221 // else $('.navbar-fheader[data-fixtype] .cl-fixed-menu').before(edit_html); 4222 // } else { 4223 // $('.element [data-fixtype^="sidebar_"] .siteLANG.cl-fixbtn').prepend(edit_html); 4224 // } 4225 4226 // $('.fixbtn_wrap').css('left',fixbtnPosition.left+'px'); 4227 4228 // if(checkSidebar && $.inArray(fixtypeNum, fixtypeArr) > -1) $('.fixbtn_wrap').css('top',fixbtnPosition.top+'px'); 4229 // if(!checkSidebar) $('.fixbtn_wrap').css('height',fixbtnPosition.height+'px');
4230 // if(!checkSidebar && (fh_type=='top')) $('header.navbar[data-fixtype]').find('.cl-fixed-menu').css('padding-left','50px'); 4231 // }, 4232 // position: function($this){ 4233 // // console.log('fixbtnConfig position'); 4234 // if((window.innerWidth < 769 && typeof MODE == 'undefined')) return false; 4235 // var height_arr = {}, 4236 // fh_type = ($('c').attr('data-fh-type')) ? $('header.navbar[data-fixtype]').attr('data-fh-type') : 'top', 4237 // fixtextalign = ($('header.navbar[data-fixtype]').attr('data-fixtextalign')) ? $('header.navbar[data-fixtype]').attr('data-fixtextalign') : 'center', 4238 // fixtypeNum = $('header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 4239 // fixtypeArr = ['01','02','03','08'], 4240 // checkSlang = ($('.cl-fixbtn.siteLANG').length > 0) ? true : false, 4241 // checkFixedMenu = ($('.cl-fixed-menu').length > 0) ? true : false, 4242 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false, 4243 // checktarget = $.fixbtnConfig.checkTarget($this); 4244 4245 // $this = (checktarget.indexOf('FixedMenu')>-1) ? $('.element header.navbar[data-fixtype] .cl-fixed-menu') : $('.element [data-fixtype^="sidebar_"] .siteLANG.cl-fixbtn'); 4246 4247 // var $cl_fixbtn = ($('header.navbar[data-fixtype] .cl-fixed-menu .cl-fixbtn.cl-visible').length>0) ? $('header.navbar[data-fixtype] .cl-fixed-menu .cl-fixbtn.cl-visible') : '', 4248 // width_val = ($cl_fixbtn) ? $cl_fixbtn.width() : 0, 4249 // clfixbtn_eq = (fixtextalign=='left' && checkSidebar && !$this.hasClass('siteLANG')) ? ($cl_fixbtn ? $cl_fixbtn.last() : $cl_fixbtn.first()) : ($this.hasClass('siteLANG') ? '' : $cl_fixbtn.first()), 4250 // $selector = $this.hasClass('siteLANG') ? $this.find('.cl-lang').offset().left.toFixed(0) : 4251 // ( $cl_fixbtn ? ((clfixbtn_eq.find('> a:visible').length>0) ? clfixbtn_eq.find('> a:visible').offset().left.toFixed(0) : 0) : 0), 4252 // leftPosCal = (checkSidebar) ? 50 : 47, 4253 // top_cal = ''; 4254 4255 // $selector = Number($selector); 4256 4257 // //ì¬ì´ëë° ì¸ë¡ëìì¸ íì¥ê¸°ë¥ë²í¼(01,02,03,08) => a íê·¸ width ìµëê° êµ¬í기 4258 // if(checkSidebar && ($.inArray(fixtypeNum, fixtypeArr) > -1) && !$this.hasClass('siteLANG')) { 4259 // var width_arr = [], 4260 // selector_arr = []; 4261 4262 // $cl_fixbtn.find('> a:visible').each(function(){ 4263 // var w_val = $(this).width(); 4264 // if(!top_cal) top_cal = Number(($(this).parents('li.cl-fixbtn.cl-visible').height() - 25) / 2); 4265 4266 // width_arr.push(w_val); 4267 // selector_arr.push($(this)); 4268 // }); 4269 4270 // var w_max = Math.max(...width_arr), 4271 // w_index = width_arr.indexOf(w_max); 4272 4273 // $selector = Number($(selector_arr[w_index]).offset().left.toFixed(0)); 4274 4275 // width_val = w_max; 4276 // } 4277 4278 // var fixed_left = ($this.hasClass('siteLANG')) ? ((fixtextalign=='left') ? $selector+$this.find('.cl-lang').width()-3 : $selector-47) : ((fixtextalign=='left' && checkSidebar) ? $selector+width_val : $selector-leftPosCal), 4279 // fixed_height = ($this.height() < 15) ? 45 : (fh_type=='right' ? $('header.navbar[data-fixtype]').find('#tpl-menu li').height() + 1 : $('header.navbar[data-fixtype]').find('#fixed-menu').height()); 4280 4281 // height_arr = { 4282 // 'left' : fixed_left, 4283 // 'height' : fixed_height, 4284 // 'top' : top_cal 4285 // } 4286 4287 // return height_arr; 4288 // }, 4289 // checkTarget : function($this) { 4290 // // console.log('fixbtnConfig checkTarget'); 4291 // var checkTarget = '', 4292 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false; 4293 4294 // if(checkSidebar) { 4295 // checkTarget = ($this.has($('.siteLANG')).length>0 || $this.hasClass('siteLANG')) ? 'sidebarSiteLang' : 'sidebarFixedMenu'; 4296 // } else { 4297 // checkTarget = 'topFixedMenu' 4298 // } 4299 4300 // return checkTarget; 4301 // } 4302 // } 4303 4304 var setLoginLogoutAttribute = function(check_login,nav,display) { 4305 if(!check_login) { 4306 nav.find('.siteUM').removeClass('dropdown').find('.cl-login').show().removeClass(display).addClass(display); 4307 nav.find('.siteUM').find('.cl-logout').hide(); 4308 } else { 4309 nav.find('.siteUM').find('.cl-login').hide(); 4310 nav.find('.siteUM').find('.cl-logout').show(); 4311 nav.find('.siteUM').find('.dropdown-menu').remove(); 4312 } 4313 } 4314 4315 var getJoinCollectionsList = function(sid) { 4316 var returnHtml = ''; 4317 $.ajax({ 4318 url: '/umember/collections', 4319 type: 'post', 4320 data: { sid : sid }, 4321 dataType: 'html', 4322 success: function (list_html) { 4323 // $('.order-list-area').html(list_html); 4324 returnHtml += list_html; 4325 }, error: function () { 4326 4327 }, complete: function () { 4328 // $.processOFF(); 4329 } 4330 }); 4331 4332 return returnHtml; 4333 } 4334 4335 /***********************************************************************************************************************************member-config page START*/ 4336 var activePrev = $('#join-activate').selectpicker('val'); 4337 $('#join-activate, #join-language, #join-approval, #join-display, #join-captcha').live('change', function () { 4338 var key = $(this).attr('id').replace(/join-/gi,''), 4339 val = ($(this).is('select')) ? $(this).val() : $(this).prop('checked'); 4340 4341 $.ajax({ 4342 type: 'POST', 4343 url: '/umember/update/type/condition', 4344 data: { sid : SID, key : key, val : val }, 4345 dataType: 'json', 4346 async: true, 4347 success: function(data) { 4348 if(typeof data.error != 'undefined' && data.error) { 4349 alert(data.error); 4350 return false;
4351 } 4352 if(data.cert_use !== undefined && data.cert_use) { 4353 $('#join-activate').selectpicker('val', activePrev); 4354 var modal_str = $.lang[LANG]['manager.cert.disable.option.txt']; 4355 $(this).showModalFlat($.lang[LANG]['manager.cert.disable.option'], modal_str,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-okbtn-pbt70 site-umember-modal'); 4356 return false; 4357 } 4358 activePrev = val; 4359 4360 if(val == '0') { 4361 $('#section-top-menu li').addClass('disabled-cert'); 4362 } else { 4363 $('#section-top-menu li').removeClass('disabled-cert'); 4364 } 4365 } 4366 }); 4367 }); 4368 4369 $(document).off('click', '.mng-settings[data-type="collection"] .collection-item-used, .mng-settings[data-type="collection"] .collection-item-optional') 4370 .on('click', '.mng-settings[data-type="collection"] .collection-item-used, .mng-settings[data-type="collection"] .collection-item-optional', function() { 4371 if($(this).closest('.checkboxs').hasClass('disabled')) { 4372 var modal = $(this).showModalFlat($.lang[LANG]['config.information'], $.lang[LANG]['manager.check.collection.required.message'], true, false, '', 'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 4373 return false; 4374 } 4375 4376 var cl_val = $(this).prop('checked'), 4377 item_seq = $(this).parents('.collection-item').attr('data-seq'), 4378 jcol_name = $(this).parents('.collection-item').find('.collection-name').text(), 4379 update_data = {}, 4380 jcol_data = {}, 4381 d_index = 0, 4382 check_class = $(this).attr('class').replace(/collection-item-/gi,''); 4383 4384 check_class = (check_class=='optional') ? 'require' : check_class; 4385 4386 jcol_data[0] = { 4387 seq : item_seq, 4388 [check_class] : cl_val.toString() 4389 } 4390 4391 if (check_class === 'used' && cl_val.toString() === 'false' && $(this).closest('.use-option-check').find('.collection-item-optional').prop('checked') === true) { 4392 jcol_data[0]['require'] = 'false'; 4393 $(this).closest('.use-option-check').find('.collection-item-optional').prop('checked', false); 4394 } 4395 if (check_class === 'require' && cl_val.toString() === 'true' && $(this).closest('.use-option-check').find('.collection-item-used').prop('checked') === false) { 4396 jcol_data[0]['used'] = 'true'; 4397 $(this).closest('.use-option-check').find('.collection-item-used').prop('checked', true); 4398 } 4399 4400 $.ajax({ 4401 type: 'POST', 4402 url: '/umember/setJoinCollections/type/jcol_update', 4403 data: { sid: SID, update_data: jcol_data }, 4404 dataType: 'json', 4405 async: true, 4406 success: function(data) { 4407 if(typeof data.error != 'undefined' && data.error) { 4408 alert(data.error); 4409 return false; 4410 } 4411 4412 var slog_val = check_class+'.'+cl_val.toString(), 4413 slog_field = {'field_name':jcol_name}; 4414 setSiteLogs('um.config.collection.new',slog_val,slog_field,'um.config.collection.new'); 4415 }, 4416 complete: function () { 4417 $.processOFF(); 4418 } 4419 }); 4420 }); 4421 4422 $('.cl-s-join-collections-etcwrap[data-jcoltype="memo"] textarea').live({ 4423 focus : function(e){ 4424 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').addClass('etc-mouseEnter'); 4425 if($(this).val()) { 4426 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active').addClass('textarea-active'); 4427 } else { 4428 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active'); 4429 } 4430 }, 4431 focusout : function(e) { 4432 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('etc-mouseEnter'); 4433 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active-text').addClass('textarea-active-text'); 4434 if($(this).val()) { 4435 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active').addClass('textarea-active'); 4436 } else { 4437 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active'); 4438 } 4439 } 4440 4441 }); 4442 4443 $('.mng-member .mng-settings[data-type="collection"] .collection-add').live('click',function() { 4444 4445 if($('.mng-member .collection-content').find('.collection-item.additem').length>0) { 4446 return false;
4447 } 4448 // if($('.mng-member .collection-content').find('.collection-update').length>0) { 4449 // $('.mng-member .collection-content .collection-update').find('input').focus(); 4450 // return false; 4451 // } 4452 4453 if($('.mng-member .collection-content').find('.collection-item').length==15) $(this).hide(); 4454 if($('.mng-member .collection-content').find('.collection-item').length>16) { 4455 var modal = $(this).showModalFlat('DELETE FIELD', $.lang[LANG]['manager.join.cl.item.max-add'], true, false, '', 'ok'); 4456 return false; 4457 } 4458 4459 var cl_etc_arr = $('.mng-member .collection-content .collection-item').map(function() { 4460 var cl_type = $(this).attr('data-type'); 4461 if(cl_type.match(/^etc/)) return cl_type.replace('etc',''); 4462 }).get().sort(), 4463 cl_etc = $('.collection-content .collection-item').length-6; 4464 4465 for (var i = 0; i < 10; i++) { 4466 if(typeof cl_etc_arr[i] == 'undefined' || parseInt(cl_etc_arr[i]) != (i+1) ) { 4467 cl_etc = i+1; 4468 break; 4469 } 4470 } 4471 4472 var str = collectionItem('',cl_etc); 4473 4474 $('.mng-member .collection-content').append(str) 4475 4476 4477 $('.mng-member .collection-content').find('.collection-item[data-etc="' + cl_etc + '"] .collection-edit').click(); 4478 $('.collection-type-selectbox select[name="jcollection-select-type"]').selectpicker(); 4479 4480 $('.collection-item.additem').find('.collection-config').removeClass('hide').addClass('hide'); 4481 collectionSortable('.mng-member .collection-item'); 4482 4483 }); 4484 4485 4486 4487 4488 $('.mng-member .mng-settings[data-type="collection"] .collection-edit').live('click', function() { 4489 if($('.mng-member .collection-content').find('.collection-update').length > 0 ) { 4490 return false; 4491 } 4492 var selectCl = $(this).closest('.collection-item'), 4493 cl_name = selectCl.find('.collection-name').text(), 4494 input_text = addCollectionInput(cl_name); 4495 4496 selectCl.removeClass('collection-status-edit').addClass('collection-status-edit'); 4497 $('.mng-member .collection-content').removeClass('collection-status-disabled').addClass('collection-status-disabled'); 4498 $(this).parents('.collection-item').siblings().find('.collection-config > .icons').removeClass('hide').addClass('hide'); 4499 // $(input_text).prependTo(selectCl.find('.collection-info')); 4500 // $(input_text).prependTo(selectCl); 4501 4502 // $(this).parents('.collection-item').find('.collection-info .collection-name').hide(); 4503 // $('.mng-member .collection-content').find('.collection-item').css('pointer-events','none'); 4504 // $('.mng-member .collection-content').find('.collection-update-cancel, .collection-update-save, .collection-update-name').css('pointer-events','auto'); 4505 // $('.mng-member .collection-update .collection-update-name').focus(); 4506 $('#join-collections,#mjoin-collections').sortable({cancel: '.collection-item' }); 4507 }); 4508 4509 $('.mng-member .mng-settings[data-type="collection"] .collection-delete').live('click', function() { 4510 var selectCl = $(this).closest('.collection-item'), 4511 cl_etc = (typeof selectCl.attr('data-etc') != 'undefined' && selectCl.attr('data-etc')) ? selectCl.attr('data-etc') : '', 4512 cl_field = 'etc' + cl_etc, 4513 cl_name = selectCl.find('.collection-name').text(), 4514 item_seq = $(this).parents('.collection-item').attr('data-seq'); 4515 4516 var del_modal = $(this).showModalFlat($.lang[LANG]['manager.join.cl.item.delete.title'], $.lang[LANG]['manager.join.cl.item.delete'], true, true, function() { 4517 selectCl.addClass('delete_item'); 4518 4519 $.processON(); 4520 4521 $.ajax({ 4522 type: 'POST', 4523 url: '/umember/setJoinCollections/type/jcol_delete', 4524 data: { sid: SID, d_seq : item_seq }, 4525 dataType: 'json', 4526 async: true, 4527 success: function(data) { 4528 if(typeof data.error != 'undefined' && data.error) { 4529 alert(data.error); 4530 return false; 4531 } 4532 4533 $('.mng-member .collection-content').find('.collection-item[data-etc="'+cl_etc+'"]').remove(); 4534 if($('.mng-member .collection-content').find('.collection-item').length<16) { 4535 $('.mng-member .collection-add').show(); 4536 } 4537 4538 del_modal.modal('hide'); 4539 4540 setSiteLogs('um.config.collection','delete',{'field_name':cl_name,'field':cl_field},'um.config.collection'); 4541 4542 }, 4543 complete: function () { 4544 $.processOFF(); 4545 } 4546 }); 4547 }, 'cancel',$.lang[LANG]['manager.join.cl.item.delete.btn.delete'],'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 4548 }); 4549 4550 4551 $('.mng-member .mng-settings[data-type="collection"] .collection-update-cancel').live('click', function() { 4552 if($('.mng-member .collection-content').find('.collection-item').length<16) $('.mng-member .collection-add').show(); 4553 if(!$(this).closest('.collection-item').find('.collection-name').text()) { 4554 $(this).closest('.collection-item').remove(); 4555 } 4556 $(this).parents('.collection-item').find('.collection-info .collection-name').show(); 4557 $('.mng-member .collection-content').find('.config-error').remove(); 4558 $('.mng-member .collection-content').find('.collection-item').removeAttr('style'); 4559 $(this).closest('.collection-update').remove(); 4560 collectionSortable(); 4561 }); 4562 4563 $('.mng-member .collection-update-save').live('click', function(e) { 4564 var selectCl = $(this).closest('.collection-item'), 4565 cl_etc = (typeof selectCl.attr('data-etc') != 'undefined' && selectCl.attr('data-etc')) ? selectCl.attr('data-etc') : '', 4566 cl_field = 'etc' + cl_etc, 4567 cl_type = selectCl.find('.collection-item-type-select').val(), 4568 cl_name = selectCl.find('.collection-update-name').val().trim(), 4569 cl_prev = selectCl.find('.collection-name').text().trim(), 4570 regexp = /^[ã±-ã ê°-í£ã -ã £a-zA-Z0-9\# ]+$/i, 4571 error_str = ''; 4572 4573 4574 $('.collection-content .config-error').remove(); 4575 $(this).parents('.collection-item').find('.collection-info .collection-name').show(); 4576 4577 if(cl_prev == cl_name) { 4578 if(selectCl.hasClass('additem')) { 4579 error_str = $.lang[LANG]['manager.join.cl.item.name.enter']; 4580 } else { 4581 $('.collection-content').find('.collection-item').removeAttr('style'); 4582 $('.collection-content').find('.collection-update').remove(); 4583 return false;
4584 } 4585 } 4586 4587 4588 if(cl_name.length == 0) error_str = $.lang[LANG]['board.enter-group-name']; 4589 else if(checkEmojis(cl_name)) error_str = $.lang[LANG]['config.unable.emoji']; 4590 else if(!regexp.test(cl_name)) error_str = $.lang[LANG]['board.allowed-chars']; 4591 else if(cl_name.length>20) error_str = $.lang[LANG]['board.enter-max-chars']; 4592 else if(cl_prev == cl_name) { 4593 if(selectCl.hasClass('additem')) { 4594 error_str = $.lang[LANG]['manager.join.cl.item.name.enter']; 4595 } else { 4596 $('.collection-content').find('.collection-item').removeAttr('style'); 4597 $('.collection-content').find('.collection-update').remove(); 4598 return false; 4599 } 4600 } else { 4601 var cl_name_list = $('.collection-content').find('.collection-name').map(function() { return $(this).text().trim(); }).get(); 4602 if($.inArray(cl_name,cl_name_list) > -1) { 4603 error_str = $.lang[LANG]['manager.join.cl.item.name.inuse']; 4604 } 4605 } 4606 4607 if(error_str.length > 0) { 4608 e.preventDefault(); 4609 $(this).parents('.collection-item').find('.collection-info .collection-name').hide(); 4610 selectCl.append('<div class="config-error collection-edit">' + error_str + '</div>'); 4611 return false; 4612 } 4613 4614 var collections = {}; 4615 $('.mng-member .collection-content').children('.collection-item').each(function() { 4616 var field = $(this).attr('data-type'), 4617 name = (field == cl_field) ? cl_name : $(this).find('.collection-name').text().trim(), 4618 type = (field == cl_field) ? cl_type : $(this).find('.collection-item-type-select').val(), 4619 used = $(this).find('.collection-item-used').prop('checked'), 4620 optional = $(this).find('.collection-item-optional').prop('checked'); 4621 4622 collections[field] = { 4623 'used' : used, 4624 'optional' : optional, 4625 'name' : name, 4626 'type' : type 4627 }; 4628 }); 4629 4630 $.ajax({ 4631 type: 'POST', 4632 url: '/umember/update/type/condition', 4633 data: { sid: SID, key: 'collections_all', val: JSON.stringify(collections) }, 4634 dataType: 'json', 4635 async: true, 4636 success: function(data) { 4637 if(typeof data.error != 'undefined' && data.error) { 4638 alert(data.error); 4639 return false; 4640 } 4641 4642 if(selectCl.hasClass('additem')) { 4643 selectCl.removeClass('additem'); 4644 selectCl.find('#collection-item-used-additem').removeAttr('id').attr('id','collection-item-used-'+cl_field); 4645 // selectCl.find('label[for="collection-item-used-additem"]').removeAttr('for').attr('for','collection-item-used-'+cl_field); 4646 selectCl.find('#collection-item-optional-additem').removeAttr('id').attr('id','collection-item-optional-'+cl_field); 4647 // selectCl.find('label[for="collection-item-optional-additem"]').removeAttr('for').attr('for','collection-item-optional-'+cl_field); 4648 } 4649 selectCl.find('.collection-name').text(cl_name); 4650 4651 $('.collection-content').find('.config-error').remove(); 4652 $('.collection-content').find('.collection-item').removeAttr('style'); 4653 selectCl.find('.collection-update').remove(); 4654 collectionSortable(); 4655 4656 4657 var checkAdd = (cl_prev == '') ? true : false, 4658 slog_val = (checkAdd) ? 'add' : 'edit',
4659 slog_field = (checkAdd) ? {'field_name':cl_name,'field':cl_field} : {'field_name':cl_prev,'field':cl_field,'before':cl_prev,'after':cl_name}; 4660 setSiteLogs('um.config.collection',slog_val,slog_field,'um.config.collection'); 4661 4662 } 4663 }); 4664 }); 4665 4666 4667 $('#config-acces-terms, #config-privacy, #config-privacy-join, #config-privacy-nonmem, #config-description').live('blur', function(e) { 4668 var blur_id = $(this).attr('id'), 4669 key = blur_id.replace(/config-/gi,'').replace(/-/gi,'_'), 4670 val = $(this).val().trim(), 4671 mng_settings_el = $(this).closest('.mng-settings'); 4672 4673 if(key.charAt(0) == 'm') key = key.substring(1,key.length); 4674 4675 $.ajax({ 4676 type: 'POST', 4677 url: '/umember/update/type/condition', 4678 data: { sid : SID, key : key, val : val }, 4679 dataType: 'json', 4680 async: true, 4681 success: function(data) { 4682 if(typeof data.error != 'undefined' && data.error) { 4683 alert(data.error); 4684 return false; 4685 } 4686 mngShowToast('check', $.lang[LANG]['manager.check.save.text'] , mng_settings_el); 4687 4688 if(typeof data.val != 'undefined' && val == '') { 4689 $('#'+blur_id).val(data.val); 4690 } 4691 } 4692 }); 4693 4694 }); 4695 4696 4697 /*ê°ì ìì§ í목 : type ë³ê²½ 기ë¥(ì¶í) ì¬ì©ëë ë¶ë¶.*/ 4698 $('.mng-settings[data-type="collection"] .collection-toggle').live('click', function() { 4699 $(this).closest('.collection-item').toggleClass('item-content-open'); 4700 if($(this).closest('.collection-item').hasClass('item-content-open')) { 4701 $(this).removeClass('fa-angle-down').addClass('fa-angle-up'); 4702 // $(this).closest('.collection-item').find('.collection-item-content').removeAttr('style'); 4703 } else { 4704 $(this).removeClass('fa-angle-up').addClass('fa-angle-down'); 4705 // $(this).closest('.collection-item').find('.collection-item-content').css('display','none'); 4706 } 4707 }); 4708 4709 4710 $('.mng-siteUM-modal .profile-image-wrap,#my-image-modal .profile-image-wrap').live({ 4711 click: function() { 4712 var checkFirstStep = ($(this).find('#profileMyImg').length > 0) ? false : true; 4713 if(checkFirstStep) $('.mng-siteUM-modal .my-image-edit').click(); 4714 else $('#profileUMFileupload').click(); 4715 } 4716 }); 4717 4718 $('#profileUMFileupload').live({ 4719 click: function() { 4720 4721 var sid = $('#my-image-modal').attr('data-sid'), 4722 uid = $('#my-image-modal').attr('data-uid'); 4723 4724 $(this).fileupload({ 4725 url: '/umember/update/type/myimage/sid/'+sid+'/uid/'+uid, 4726 dataType: 'json', 4727 pasteZone: null, 4728 async: true, 4729 add: function(e, data) { 4730 $('#loading').css('left','-100%'); 4731 $.processON(); 4732 data.submit(); 4733 }, 4734 done: function(e, data) { 4735 if(typeof data.result.error != 'undefined' && data.result.error) { 4736 alert(data.result.error); 4737 $('.progress .progress-bar').css('width','0%'); 4738 $.processOFF(); 4739 return; 4740 } 4741 if(data.result.src) { 4742 $('.profile-image-wrap .my-image').prop('src',data.result.src); 4743 if($('.dashboard._admin_dashboard').length > 0) $('#dashboard-image-top image').attr('xlink:href',data.result.src); 4744 if($('#mobile-nav').length > 0) $('#mobile-nav .login-profile img').prop('src',data.result.src); 4745 } 4746 $.processOFF(); 4747 $('#loading').css('left','50%'); 4748 }, 4749 progressall: function(e, data) { 4750 var progress = parseInt(data.loaded / data.total * 100, 10); 4751 $('.progress .progress-bar').css( 4752 'width', 4753 progress + '%' 4754 ); 4755 }, 4756 }).prop('disabled', !$.support.fileInput) 4757 .parent().addClass($.support.fileInput ? undefined : 'disabled'); 4758 4759 } 4760 }); 4761 4762 4763 $('#uJoin').live('click', function() { 4764 var joinModal = $('#join-modal'), 4765 approval = $(this).attr('data-approval'), 4766 input_data = {}; 4767 4768 if($(this).closest('#join-modal-preview').length != 0) { 4769 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 4770 return false; 4771 } 4772 4773 joinModal.find('.form-group').each(function(i) { 4774 var inputEL = $(this).find('input.form-control'), 4775 errorEL = $(this).find('.error'), 4776 field = inputEL.attr('id').trim().replace(/input-/,''), 4777 val = inputEL.val(), 4778 optional = $(this).hasClass('optional'), 4779 empty_class = (optional && val.trim().length == 0) ? 'empty' : '', 4780 error_str = (optional && val.trim().length == 0) ? $.lang[LANG]['manager.check.required.message'] : ''; 4781 4782 if(!error_str && val.trim().length > 0) { 4783 switch(field) { 4784 case 'password-checked': 4785 if(joinModal.find('#input-password').val().trim() != val.trim()) { 4786 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 4787 } 4788 break; 4789 4790 default: 4791 if(typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) { 4792 var pattern = COLLECTION_REGEX[field]['pattern_j'], 4793 reg = new RegExp(pattern); 4794 if(!reg.test(val)) error_str = COLLECTION_REGEX[field]['error']; 4795 } 4796 break; 4797 } 4798 } 4799 4800 4801 if(error_str.length > 0) { 4802 if(errorEL.length > 0) errorEL.text(error_str); 4803 else $(this).append('<span class="error ' + empty_class + '">' + error_str + '</span>'); 4804 4805 if(joinModal.find('.focus').length == 0) inputEL.focus(); 4806 } else { 4807 errorEL.remove(); 4808 if(field == 'id') val = val.toLowerCase(); 4809 if(field == 'password') val = hex_md5(val); 4810 if(field == 'email') val = val.toLowerCase(); 4811 4812 if(field != 'password-checked') input_data[field] = val; 4813 } 4814 4815 input_data['wr_key'] = $("#wr_key").val(); 4816 }); 4817 4818 if(!joinModal.find('.kcaptcha-wrap').hasClass('hide')) { 4819 var captcha = joinModal.find('#wr_key'), 4820 val = captcha.val(), 4821 captcha_error = captcha.next('label.error'), 4822 error_str = ''; 4823 4824 if( val.trim().length == 0 ) { 4825 error_str = $.lang[LANG]['manager.join.regexp.captcha']; 4826 } else if( val && (Base64.encode(val.trim()) != md5_norobot_key)) { 4827 error_str = $.lang[LANG]['manager.join.regexp.captcha.wrong']; 4828 } 4829 4830 if( error_str.length > 0 ) { 4831 if(captcha_error.length > 0) captcha_error.text(error_str); 4832 else captcha.after('<label class="error">' + error_str + '</label>'); 4833 4834 if(joinModal.find('.focus').length == 0) captcha.focus(); 4835 } else { 4836 captcha_error.remove(); 4837 } 4838 } 4839 4840 4841 if(joinModal.find('.error').length == 0) { 4842 4843 var sid = joinModal.attr('data-sid'); 4844 $.post('/umember/join/update', { sid : sid, data : JSON.stringify(input_data) }, function(data) { 4845 if(typeof data.error != 'undefined' && data.error) { 4846 $.each(data.error, function(key,str) {
4847 if(joinModal.find('#input-'+key).length > 0 ) { 4848 joinModal.find('#input-'+key).focus(); 4849 joinModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4850 } else { alert(str,'/manager/member'); return false; } 4851 }); 4852 if(joinModal.find('.error').length > 0) return false; 4853 } 4854 4855 if(typeof userSiteJoinCallback == 'function') 4856 userSiteJoinCallback(); 4857 4858 var okModal = $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.join.success.'+approval], true, false, '', $.lang[LANG]['config.close']); 4859 $.umember.joinModalInit(); 4860 joinModal.modal('hide'); 4861 },'json'); 4862 4863 } 4864 4865 4866 }); 4867 4868 4869 $('.view-join-textarea').live('click', function() { 4870 var sid = $(this).closest('.modal-default').attr('data-sid'), 4871 type = $(this).attr('data-type').replace(/-/gi,'_'); 4872 4873 $.post('/umember/get/type/join', { sid : sid, field : type }, function(data) { 4874 if(typeof data.error != 'undefined' && data.error) { 4875 alert(data.error); 4876 return false; 4877 } 4878 4879 $('#join-textarea').html(data); 4880 if($('#join-textarea').css('display') == 'none') $('#join-textarea').fadeIn(); 4881 4882 }, 'json'); 4883 4884 }); 4885 4886 4887 $('#uLogin').live('click', function() { 4888 var loginModal = $('#login-modal'), 4889 input_data = {}; 4890 4891 loginModal.find('.form-group').each(function(i) { 4892 var inputEL = $(this).find('input.form-control'), 4893 errorEL = $(this).find('.error'), 4894 field = inputEL.attr('id').trim().replace(/input-/,''), 4895 val = inputEL.val(), 4896 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.'+field+'.input'] : ''; 4897 4898 if(error_str.length > 0 ) { 4899 if(errorEL.length > 0) errorEL.text(error_str); 4900 else $(this).append('<span class="error">' + error_str + '</span>'); 4901 4902 if(loginModal.find('.focus').length == 0) inputEL.focus(); 4903 } else { 4904 errorEL.remove(); 4905 if(field == 'id') val = val.trim().toLowerCase(); 4906 if(field == 'password') val = hex_md5(val); 4907 input_data[field] = val; 4908 } 4909 }); 4910 4911 if(loginModal.find('.error').length == 0) { 4912 4913 var sid = loginModal.attr('data-sid'); 4914 $.post('/umember/login/in', { sid : sid, data : JSON.stringify(input_data) }, function(data) { 4915 4916 if(typeof data.error != 'undefined' && data.error) { 4917 $.each(data.error, function(key,str) { 4918 if(loginModal.find('#input-'+key).length > 0 ) { 4919 loginModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4920 } else { alert(str,'/manager/member'); return false; } 4921 }); 4922 if(loginModal.find('.error').length > 0) return false; 4923 } 4924 4925 $.umember.loginModalInit(); 4926 $.umember.init(); 4927 loginModal.modal('hide'); 4928 4929 if(data.member.check_login) { 4930 if(typeof data.ss_url != 'undefined' && data.ss_url) { 4931 $.each(data.ss_url, function(i,url) { 4932 $('.dsgn-body').after('<img class="auth-img" src="' + url + '">'); 4933 }); 4934 } 4935 4936 if(typeof data.ga_uid != 'undefined' && data.ga_uid) { 4937 localStorage.setItem('googleAnalyticsUID'+sid, data.ga_uid); 4938 } 4939 } 4940 4941 if($('.menu-lock-block').length > 0 || $('.forum-view').length > 0) location.reload(); 4942 if($('.element[data-type="latest"]').find('.latest-table-loop').hasClass('latest-table-empty')) location.reload(); 4943 if($('.element[data-type="forum"]').length > 0) { 4944 if( 4945 $('.element[data-type="forum"]').find('.tpl-forum-list-title[data-option="S"]').length > 0 || 4946 $('.element[data-type="forum"]').find('.container .table tr > td[colspan="10"]').length > 0 || 4947 $('.element[data-type="forum"]').find('.tpl-forum-write:contains(login)').length > 0 4948 ) location.reload(); 4949 } 4950 4951 $('.gallery-item').each(function () { 4952 if ($(this).hasClass('nonePrice')) { 4953 location.reload(); 4954 } 4955 }); 4956 4957 },'json'); 4958 4959 } 4960 4961 }); 4962 4963 $('#uForgotID').live('click', function() { 4964 var forgotIDModal = $('#forgotid-modal'), 4965 input_data = ''; 4966 4967 var groupEL = forgotIDModal.find('.form-group'), 4968 errorEL = groupEL.find('.error'), 4969 val = forgotIDModal.find('input.form-control').val(), 4970 regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 4971 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.email.input'] : ''; 4972 4973 if(error_str.length == 0 && !regexp.test(val)) { 4974 error_str = $.lang[LANG]['siteum.regexp.check.email']; 4975 } 4976 4977 if(error_str.length > 0 ) { 4978 if(errorEL.length > 0) errorEL.text(error_str); 4979 else groupEL.append('<span class="error">' + error_str + '</span>'); 4980 4981 groupEL.find('input').focus(); 4982 } else { 4983 errorEL.remove(); 4984 input_data = val.toLowerCase(); 4985 } 4986 4987 if(forgotIDModal.find('.error').length == 0) { 4988 4989 $.post('/umember/password/forgot', { fn:'id', email:input_data }, function(data) { 4990 if(typeof data.error != 'undefined' && data.error) { 4991 $.each(data.error, function(key,str) {
4992 if(forgotIDModal.find('#input-'+key).length > 0 ) { 4993 forgotIDModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4994 forgotIDModal.find('#input-'+key).focus(); 4995 } else { return false; } 4996 }); 4997 if(forgotIDModal.find('.error').length > 0) return false; 4998 } 4999 5000 forgotIDModal.find('input.form-control').val(''); 5001 var num = ((data.uid.length/3)*2).toFixed(0), 5002 uid = data.uid.substr(0,num); 5003 for(var i=0; i<(data.uid.length-num); i++) { 5004 uid += '*'; 5005 } 5006 forgotIDModal.find('.modal-body').children(':not(.forgot-id-result)').css({'opacity':0.4}); 5007 forgotIDModal.find('.modal-footer').children('button').css({'opacity':0.4, 'pointer-events':'none'}); 5008 forgotIDModal.find('.modal-body').find('.forgot-id-result').text(uid); 5009 5010 },'json'); 5011 5012 } 5013 5014 }); 5015 5016 $('#uForgotPW').live('click', function() { 5017 var forgotPWModal = $('#forgotpw-modal'), 5018 input_data = {}; 5019 5020 forgotPWModal.find('.form-group').each(function(i) { 5021 var inputEL = $(this).find('input.form-control'), 5022 errorEL = $(this).find('.error'), 5023 field = inputEL.attr('id').trim().replace(/input-/,''), 5024 val = inputEL.val(), 5025 regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 5026 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.'+field+'.input'] : ''; 5027 5028 if(error_str.length == 0 && field == 'email' && !regexp.test(val)) { 5029 error_str = $.lang[LANG]['siteum.regexp.check.email']; 5030 } 5031 5032 if(error_str.length > 0 ) { 5033 if(errorEL.length > 0) errorEL.text(error_str); 5034 else $(this).append('<span class="error">' + error_str + '</span>'); 5035 5036 if(forgotPWModal.find('.focus').length == 0) inputEL.closest('.form-group').addClass('focus').find('input').focus(); 5037 } else { 5038 errorEL.remove(); 5039 input_data[field] = val.toLowerCase(); 5040 } 5041 }); 5042 5043 if(forgotPWModal.find('.error').length == 0) { 5044 5045 $.post('/umember/password/forgot', { fn:'pw', uid:input_data['id'], email:input_data['email'] }, function(data) { 5046 if(typeof data.error != 'undefined' && data.error) { 5047 $.each(data.error, function(key,str) { 5048 if(forgotPWModal.find('#input-'+key).length > 0 ) { 5049 forgotPWModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 5050 forgotPWModal.find('#input-'+key).focus(); 5051 } else { return false; } 5052 }); 5053 if(forgotPWModal.find('.error').length > 0) return false; 5054 } 5055 forgotPWModal.find('input.form-control').val(''); 5056 forgotPWModal.modal('hide'); 5057 5058 var modal = $(this).showModalFlat('INFORMATION', data.result, true, false, '', 'ok'); 5059 // var modal = $(this).showModalFlat('INFORMATION', '<h3>ì´ë©ì¼ ë°ì¡ ìë£!</h3><p>ë¹ë°ë²í¸ ì¬ì¤ì ë§í¬ íì¸ ë° ë³ê²½ì ìí ì´ë©ì¼ì íì¸íì¸ì.</p>', true, false, '', 'ok'); 5060 5061 },'json'); 5062 5063 } 5064 5065 }); 5066 5067 5068 5069 /* [Fixed menu link] Click*/ 5070 $(` .siteUM .join, 5071 .siteUM .login, 5072 .siteUM .logout, 5073 .siteUM .forgot-id, 5074 .siteUM .forgot-pw, 5075 .siteUM .dashboard, 5076 .siteUM .mypage, 5077 .siteUM-dmenu-wrap .mypage, 5078 .siteUM-dmenu-wrap .logout, 5079 .cl-fixed-menu#fixed-menu .logout.cl-umMenu, 5080 .cl-fixnav-item.loginout a.login, 5081 .cl-fixnav-item.loginout a.logout, 5082 .cl-nav .clnav-mobile-btn.mypage .cl-fixsubnav-item > a.dashboard, 5083 .cl-nav .clnav-mobile-btn.mypage .cl-fixsubnav-item > a.logout, 5084 .clnav-sidemobile .section-area.user > .login, 5085 .clnav-sidemobile .section-area.user > .logout, 5086 .clnav-sidemobile .cl-fixsubnav-item > a.logout, 5087 #mobile-nav .dashboard 5088 `).live({ 5089 click: function(e) { 5090 e.preventDefault(); 5091 5092 if(typeof PAGE_MODE != 'undefined' && PAGE_MODE == 's' && property.SITEFIXEDLANG && property.SITEFIXEDLANG != LANG) { 5093 LANG = property.SITEFIXEDLANG; 5094 } 5095 var sid = (typeof SID != 'undefined' && SID) ? SID : property.SID; 5096 5097 5098 var possible_page = ['s', 'um']; 5099 if(typeof PAGE_MODE != 'undefined' && PAGE_MODE && $.inArray(PAGE_MODE,possible_page) == -1) { 5100 var str = (PAGE_MODE == 'r') ? $.lang[LANG]['manager.check.no-support.render-mode'] : $.lang[LANG]['manager.check.no-support.config-mode']; 5101 if($.clnav.check()) str = ''; 5102 if(str != '') $(this).showModalFlat('INFORMATION',str,true,false,'','ok'); 5103 return false;
5104 } else { 5105 5106 var checkUAdminMode = ($('header').hasClass('_admin')) ? true : false, 5107 s_validtype = (typeof VALIDTYPE != 'undefined' && VALIDTYPE) ? VALIDTYPE : ((typeof property != 'undefined' && property) ? property.VALIDTYPE : ''), 5108 s_siteum = (typeof SITEUM != 'undefined' && SITEUM) ? SITEUM : ((typeof property != 'undefined' && property) ? property.SITEUM : -1), 5109 checkShoppingUM = (!checkUAdminMode && s_validtype == 'SM') ? true : false, 5110 service = (typeof SERVICE == 'undefined') ? ((typeof property == 'undefined') ? '' : property.SERVICE) : SERVICE, 5111 checkGabia = (service.indexOf('gabia') > -1) ? true : false; 5112 5113 if($(this).hasClass('join')) { 5114 5115 var mode = (typeof $(this).attr('data-preview') == 'undefined') ? '' : 'preview'; 5116 if(mode == 'preview') { 5117 var checkUadmin = ($('.mng-dashboard').hasClass('_admin')) ? true : false, 5118 check_url = (checkUadmin) ? '/_admin/dashboard/checkDomainConnect' : '/dashboard/checkDomainConnect', 5119 domains_flag = false; 5120 $.ajax({ 5121 url: check_url, 5122 type:'post', 5123 dataType:'json', 5124 data:{'sid' : SID}, 5125 success:function(data) { 5126 5127 var domain = sid + '.' + getServiceHost(location.host); 5128 if(data.domains_active_list.length) { 5129 domain = data.domains_active_list[0].zone_domain; 5130 } else if(checkUadmin) { 5131 domain = getServiceHost(location.host); 5132 } 5133 5134 var http_str = (checkGabia) ? 'http://' : '//'; 5135 window.open(http_str + domain + '/_register/preview', '_blank'); 5136 } 5137 }); 5138 } else { 5139 location.href = '/_register'; 5140 return false; 5141 } 5142 5143 /* 5144 if(checkShoppingUM) { 5145 location.href = '/_register'; 5146 return false; 5147 } 5148 5149 var mode = (typeof $(this).attr('data-preview') == 'undefined') ? '' : 'preview'; 5150 var joinModal = $.umember.showJoinModal(sid,mode); 5151 */ 5152 } else if($(this).hasClass('login')) { 5153 5154 location.href = (location.port) ? '/_login' : 'https://'+location.host+'/_login'; 5155 return false; 5156 /* 5157 if($('#join-modal-preview').length > 0) { 5158 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 5159 return false; 5160 } 5161 5162 if($('header').hasClass('_admin')) { //goto url -> uadmin login page 5163 if($(this).closest('#join-modal-preview').length >0) { 5164 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 5165 return false; 5166 } 5167 if(location.pathname == '/_admin') $('.flat-modal[class*="mng-"] .modal').modal('hide'); 5168 else location.replace('/_admin'); 5169 return false; 5170 } 5171 5172 if(checkShoppingUM) { 5173 location.href = (location.port) ? '/_login' : 'https://'+location.host+'/_login'; 5174 return false; 5175 } 5176 5177 if(typeof s_siteum != 'undefined' && s_siteum > 0) var loginModal = $.umember.showLoginModal(sid); 5178 else return false; 5179 */ 5180 } else if($(this).hasClass('forgot-id')) { 5181 /* 5182 var forgotIDModal = $.umember.showForgotIDModal(sid); 5183 */ 5184 } else if($(this).hasClass('forgot-pw')) { 5185 /* 5186 var forgotPWModal = $.umember.showForgotPWModal(sid); 5187 */ 5188 } else if($(this).hasClass('logout')) { 5189 $.getJSON('/umember/login/out', function(r) { 5190 if($.cookie('cert_popup') !== undefined) { 5191 $.removeCookie('cert_popup', true, { path: '/', expires: 12 * 60 * 60 * 1000 }); 5192 } 5193 5194 if(typeof sid!='undefined' && sid) { 5195 if($.cookie('domainSet-next-'+sid) !== undefined) $.removeCookie('domainSet-next-'+sid, { path: '/' }); 5196 } 5197 5198 var load_url = (typeof r.url != 'undefined' && r.url) ? r.url : '/'; 5199 if($('header').hasClass('_admin')) location.href = load_url; 5200 else if(s_validtype == 'SM') location.href = load_url; 5201 else location.reload(); 5202 },'json'); 5203 } else if($(this).hasClass('dashboard')) { 5204 $.getJSON('/umember/goDashboard', function(r) { 5205 if(typeof r.url != 'undefined' && r.url) location.href = r.url; 5206 },'json'); 5207 } else if($(this).hasClass('mypage')) { 5208 if(checkUAdminMode) { 5209 location.replace('/_myinfo'); 5210 } else { 5211 if(s_validtype == 'BN') { 5212 location.replace('/_mypost'); 5213 } else { 5214 location.replace('/_mypage'); 5215 } 5216 } 5217 5218 return false;
5219 /* 5220 if(checkShoppingUM && $(this).attr('href') == 'javascript:;') { 5221 location.replace('/_mypage'); 5222 return false; 5223 } 5224 5225 var mypageModal = $.umember.showMypageModal(sid); 5226 */ 5227 } 5228 } 5229 5230 } 5231 }); 5232 5233 5234 /*************************************************************************************************************************************member-config page END*/ 5235 5236 5237 5238 /*************************************************************************************************************************************member-list page START*/ 5239 function initMemberListCustomSelects() { 5240 $('.mng-settings.memberlist[data-type="member-list"] .member-native-select').each(function() { 5241 var $select = $(this); 5242 if ($select.data('customSelectInit')) return; 5243 5244 var selectId = $select.attr('id'), 5245 $custom = $('<div/>', { 'class': 'member-custom-select', 'data-target': selectId }), 5246 $button = $('<button/>', { 'class': 'member-custom-select-btn', 'type': 'button' }), 5247 $label = $('<span/>', { 'class': 'member-custom-select-label' }), 5248 $icon = $('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="M4 4 0 0h8z"/></svg>'), 5249 $list = $('<ul/>', { 'class': 'member-custom-select-list' }); 5250 5251 $select.find('option').each(function() { 5252 var $option = $(this), 5253 $item = $('<li/>', { 5254 'class': 'member-custom-select-option', 5255 'data-value': $option.val() 5256 }).text($option.text()); 5257 5258 if ($option.is(':selected')) { 5259 $item.addClass('active'); 5260 $label.text($option.text()); 5261 } 5262 $list.append($item); 5263 }); 5264 5265 $button.append($label, $icon); 5266 $custom.append($button, $list); 5267 $select.after($custom).data('customSelectInit', true); 5268 }); 5269 } 5270 5271 initMemberListCustomSelects(); 5272 5273 $(document).on('click', '.mng-settings.memberlist[data-type="member-list"] .member-custom-select-btn', function(e) { 5274 e.preventDefault(); 5275 e.stopPropagation(); 5276 5277 var $custom = $(this).closest('.member-custom-select'); 5278 $('.mng-settings.memberlist[data-type="member-list"] .member-custom-select').not($custom).removeClass('active'); 5279 $custom.toggleClass('active'); 5280 }); 5281 5282 $(document).on('click', '.mng-settings.memberlist[data-type="member-list"] .member-custom-select-option', function(e) { 5283 e.preventDefault(); 5284 e.stopPropagation(); 5285 5286 var $option = $(this), 5287 $custom = $option.closest('.member-custom-select'), 5288 target = $custom.data('target'), 5289 $select = $('#' + target); 5290 5291 $custom.find('.member-custom-select-option').removeClass('active'); 5292 $option.addClass('active'); 5293 $custom.find('.member-custom-select-label').text($option.text()); 5294 $custom.removeClass('active'); 5295 $select.val($option.data('value')).trigger('change'); 5296 }); 5297 5298 $('body').on('click', function(e) { 5299 if($(e.target).closest('.member-custom-select').length == 0) { 5300 $('.mng-settings.memberlist[data-type="member-list"] .member-custom-select').removeClass('active'); 5301 } 5302 }); 5303
5304 function renderShopgradeChangeSelect($modal) { 5305 var $select = $modal.find('#shopgrade-select'), 5306 $oldCustom = $modal.find('.shopgrade-modal-select'); 5307 5308 $oldCustom.remove(); 5309 if (!$select.length) return; 5310 5311 var $custom = $('<div/>', { 'class': 'member-custom-select shopgrade-modal-select', 'data-target': 'shopgrade-select' }), 5312 $button = $('<button/>', { 'class': 'member-custom-select-btn', 'type': 'button' }), 5313 $label = $('<span/>', { 'class': 'member-custom-select-label' }), 5314 $icon = $('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12"><path d="m6 8 4-4H2z"/></svg>'), 5315 $list = $('<ul/>', { 'class': 'member-custom-select-list' }), 5316 selectedText = ''; 5317 5318 $select.find('option').each(function() { 5319 var $option = $(this), 5320 $item = $('<li/>', { 5321 'class': 'member-custom-select-option', 5322 'data-value': $option.val() 5323 }).text($option.text()); 5324 5325 if ($option.is(':selected')) { 5326 $item.addClass('active'); 5327 selectedText = $option.text(); 5328 } 5329 $list.append($item); 5330 }); 5331 5332 $label.text(selectedText || $select.find('option:first').text()); 5333 if ($select.val() === '') $button.addClass('placeholder'); 5334 $button.append($label, $icon); 5335 $custom.append($button, $list); 5336 $select.after($custom); 5337 } 5338 5339 $(document).on('click', '.shopgrade-change-modal .member-custom-select-btn', function(e) { 5340 e.preventDefault(); 5341 e.stopPropagation(); 5342 5343 var $custom = $(this).closest('.member-custom-select'); 5344 $('.shopgrade-change-modal .member-custom-select').not($custom).removeClass('active'); 5345 $custom.toggleClass('active'); 5346 }); 5347 5348 $(document).on('click', '.shopgrade-change-modal .member-custom-select-option', function(e) { 5349 e.preventDefault(); 5350 e.stopPropagation(); 5351 5352 var $option = $(this), 5353 $custom = $option.closest('.member-custom-select'), 5354 $modal = $option.closest('.shopgrade-change-modal'), 5355 $select = $modal.find('#shopgrade-select'); 5356 5357 $custom.find('.member-custom-select-option').removeClass('active'); 5358 $option.addClass('active'); 5359 $custom.find('.member-custom-select-label').text($option.text()); 5360 $custom.find('.member-custom-select-btn').toggleClass('placeholder', String($option.attr('data-value')) === ''); 5361 $custom.removeClass('active'); 5362 $select.val($option.data('value')).trigger('change'); 5363 }); 5364 5365 $('body').on('click', function(e) { 5366 if($(e.target).closest('.shopgrade-change-modal .member-custom-select').length == 0) { 5367 $('.shopgrade-change-modal .member-custom-select').removeClass('active'); 5368 } 5369 }); 5370 5371 $('.mng-settings.memberlist[data-type="member-list"] .mng-selectboxlist select.form-control').live('change',function() { 5372 // var sfl_type = $(this).attr('id').replace('sfl_',''), 5373 // val = $(this).val(); 5374 // location.replace('/manager/member/list/page/1/'+sfl_type+'/'+val); 5375 5376 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/list' : '/manager/member/list', 5377 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 5378 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 5379 stx = $(this).parents('.mng-list').find('.mng-search-box').find('#stx').val(); 5380 5381 var sgi = buildSgiSeg(); 5382 5383 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+sgi); 5384 }); 5385 5386 $('.mng-settings.memberlist[data-type="member-list"] .mng-search-box .search-btn').live('click',function(e) { 5387 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/list' : '/manager/member/list', 5388 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 5389 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 5390 stx = $(this).parents('.mng-search-box').find('#stx').val(); 5391 5392 if(checkEmojis(stx)) { 5393 e.preventDefault(); 5394 errorEmojisModal(); 5395 return false; 5396 } 5397 5398 setSiteLogs('um.list','search',{'stx':stx},'um.list'); 5399 5400 var sgi = buildSgiSeg(); 5401 if(stx.length > 0) stx = '/stx/'+stx; 5402 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+stx+sgi); 5403 }); 5404 5405 $('.mng-settings[data-type="member-list"] .mng-sortBtn').live('click',function() { 5406 if ($('.mng-sortBtn').hasClass('active') === true) { 5407 $('.mng-sortBtn').removeClass('active'); 5408 $('.mng-sortWrap').removeClass('active'); 5409 $('.mng-sortlistWrap').hide(); 5410 } else { 5411 $('.mng-sortBtn').addClass('active'); 5412 $('.mng-sortWrap').addClass('active'); 5413 $('.mng-sortlistWrap').show(); 5414 } 5415 }); 5416 5417 $('.mng-settings[data-type="member-list"] .mng-sortshopBtn').live('click',function() { 5418 if ($('.mng-sortshopBtn').hasClass('active') === true) { 5419 $('.mng-sortshopBtn').removeClass('active'); 5420 $('.mng-shopgradeWrap').removeClass('active'); 5421 $('.mng-sortshoplistWrap').hide(); 5422 } else { 5423 $('.mng-sortshopBtn').addClass('active'); 5424 $('.mng-shopgradeWrap').addClass('active'); 5425 $('.mng-sortshoplistWrap').show(); 5426 } 5427 }); 5428 5429 $('body').click(function(e){ 5430 if($(e.target).parents('.mng-sortWrap').length==0) { 5431 $('.mng-sortBtn').removeClass("active"); 5432 $('.mng-sortWrap').removeClass("active"); 5433 $('.mng-sortlistWrap').hide(); 5434 } 5435 if($(e.target).parents('.mng-shopgradeWrap').length==0) { 5436 $('.mng-sortshopBtn').removeClass("active"); 5437 $('.mng-shopgradeWrap').removeClass("active"); 5438 $('.mng-sortshoplistWrap').hide(); 5439 } 5440 }); 5441 5442 $('.member-message-btn').live('click', function() { 5443 if($(this).hasClass('member_disabled')) { 5444 siteNotice('manager'); 5445 return false;
5446 } 5447 var check_data = getMemberListCheckData($(this)), 5448 mng_settings_el = $(this).closest('.mng-settings'); 5449 5450 if( typeof check_data.error != 'undefined' && check_data.error) { 5451 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5452 return false; 5453 } 5454 5455 var first_name = (LANG == 'en' && check_data.count > 0) ? '' : '<span class="addressee-name">' + check_data.name + '</span> ' + ((check_data.count == 0) ? $.lang[LANG]['manager.list.member.str'] : ''), 5456 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5457 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5458 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5459 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5460 selected_str = $.lang[LANG]['manager.list.member.message.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.message.txt.2']; 5461 5462 var modal_content = '\ 5463 <div class="mng-modal-body message-modal">\ 5464 <p class="desc">\ 5465 ' + selected_str + '\ 5466 </p>\ 5467 <div class="form-group">\ 5468 <input type="text" class="form-control" id="message-title" placeholder="ì 목" />\ 5469 </div>\ 5470 <div class="form-group clearfix">\ 5471 <textarea class="form-control" name="" id="message-content" cols="30" rows="2" placeholder="ë´ì©"></textarea>\ 5472 <label for="message-content"><span class="write-count">0</span>/1000</label>\ 5473 </div>\ 5474 <div class="form-group">\ 5475 <div class="btn-wrap">\ 5476 <span class="btn btn-xs btn-white"><i class="fa fa-sticky-note-o" aria-hidden="true"></i>íì¼ì²¨ë¶</span>\ 5477 </div>\ 5478 </div>\ 5479 </div>\ 5480 '; 5481 5482 $('#message-title, #message-content').live('keyup', function() { 5483 var type = ($(this).attr('id').match(/title/) !== null) ? 'title' : 'content', 5484 str = $(this).val(); 5485 5486 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 5487 $(this).next('label').find('.write-count').text(str.length); 5488 if(str.length > 1000 && type == 'content') { 5489 $(this).val($(this).val().substring(0, 1000)); 5490 } 5491 }); 5492 5493 var message_modal = $(this).showModalFlat('SEND MESSAGE', modal_content, true, true, function() { 5494 var message_title = $('#message-title').val(), 5495 message_content = $('#message-content').val(); 5496 5497 if(message_title.length == 0) { 5498 $('#message-title').focus(); 5499 $('#message-title').closest('.form-group').append('<div class="mng-error">ì 목ì ì ë ¥íì¸ì</div>'); 5500 return false; 5501 } 5502 if(message_content.length == 0) { 5503 $('#message-content').focus(); 5504 $('#message-content').closest('.form-group').append('<div class="mng-error">ë´ì©ì ì ë ¥íì¸ì</div>'); 5505 return false; 5506 } 5507 //ë©ìì§ ì ì¡ ê¸°ë¥ ìì . 5508 5509 message_modal.modal('hide'); 5510 mngShowToast('check', 'ì ì¡ ìë£', mng_settings_el); 5511 5512 }, 'cancel', 'send', 'w480'); 5513 }); 5514 5515 5516 // ì¼í그룹 ids 5517 function buildSgiSeg() { 5518 var ids = $('input.sgSortCheckbox:checked').map(function(){ return this.value; }).get(); 5519 if (!ids.length) { 5520 ids = $('li.active input.sgSortCheckbox').map(function(){ return this.value; }).get(); 5521 } 5522 5523 if (!ids.length) { 5524 var v = $('#sgi_current').val(); // <input type="hidden" id="sgi_current" value="1,9"> 5525 if (v) ids = v.split(','); 5526 } 5527 5528 if (!ids.length) { 5529 var m = location.pathname.match(/\/sgi\/([^\/?]+)/); 5530 if (m) ids = m[1].split(','); 5531 } 5532 5533 var seen = {}, uniq = []; 5534 for (var i=0;i<ids.length;i++){ 5535 var k = String(ids[i]); 5536 if (k && !seen[k]) { seen[k]=1; uniq.push(k); } 5537 } 5538 return uniq.length ? '/sgi/' + uniq.join(',') : ''; 5539 } 5540 5541 5542 /*$('.member-sms-btn').live('click', function() { 5543 var check_data = getMemberListCheckData($(this)), 5544 mng_settings_el = $(this).closest('.mng-settings'); 5545 5546 if( typeof check_data.error != 'undefined' && check_data.error) { 5547 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5548 return false;
5549 } 5550 5551 var others_str = (check_data.count<1) ? '' : ' ì¸ <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">' + check_data.count + '</span> ëª '; 5552 var modal_content = '\ 5553 <div class="mng-modal-body sms-modal">\ 5554 <p class="desc">\ 5555 <span class="addressee-name">' + check_data.name + '</span> \ 5556 ' + others_str + ' ìê² SMS를 ë³´ë ëë¤.\ 5557 </p>\ 5558 <div class="sms-recharge-btn-wrap">\ 5559 <div>ìì¬ SMS <span class="sms-count point">8</span>ê±´ </div>\ 5560 <span class="sms-recharge-btn btn btn-xs btn-white">ì¶©ì í기</span>\ 5561 </div>\ 5562 <div class="form-group">\ 5563 <input type="text" class="form-control" id="sms-title" placeholder="ë³´ë´ë ë²í¸" />\ 5564 </div>\ 5565 <div class="form-group clearfix">\ 5566 <textarea class="form-control" name="" id="sms-content" cols="30" rows="2" placeholder="ë´ì©"></textarea>\ 5567 <label for="sms-content"><span class="write-count">0</span>/90 Byte</label>\ 5568 <span class="info">90ë°ì´í¸ê° ì´ê³¼ë ê²½ì° MSë¡ ì íëì´ 3ê±´ì SMSê° ì°¨ê°ë©ëë¤.</span>\ 5569 </div>\ 5570 <div class="form-group clearfix">\ 5571 <div class="btn-wrap pull-left">\ 5572 <span class="btn btn-xs btn-white"><i class="fa fa-sticky-note-o" aria-hidden="true"></i>íì¼ì²¨ë¶</span>\ 5573 </div>\ 5574 <div class="precautions pull-right">\ 5575 <span data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="' + $.lang[LANG]['manager.list.sms.precautions'] + '"><i class="fa fa-info-circle"></i> ê´ê³ ì± SMS ì ì¡ ì 주ìì¬í</span>\ 5576 </div>\ 5577 </div>\ 5578 </div>\ 5579 '; 5580 5581 $('#sms-title, #sms-content').live('keyup', function() { 5582 var type = ($(this).attr('id').match(/title/) !== null) ? 'title' : 'content', 5583 str = $(this).val(), 5584 str_len = $(this).val().length, 5585 cbyte = 0, 5586 clen = 0, 5587 maxInputByte = 90; 5588 5589 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 5590 5591 if(type == 'content') { 5592 for(var i=0; i<str_len; i++) { 5593 var is_one_char = $(this).val().charAt(i); 5594 if(escape(is_one_char).length > 4) { 5595 cbyte += 2; //korean 1 char == 2byte 5596 } else { 5597 cbyte++; 5598 } 5599 5600 if(cbyte <= maxInputByte) { 5601 clen = i + 1; 5602 } 5603 } 5604 $(this).next('label').find('.write-count').text(parseInt(cbyte)); 5605 if(parseInt(cbyte) > parseInt(maxInputByte)) { 5606 $(this).val($(this).val().substring(0, clen)); 5607 $(this).next('label').find('.write-count').text(parseInt(maxInputByte)); 5608 } 5609 } 5610 }); 5611 5612 var sms_modal = $(this).showModalFlat('SEND SMS', modal_content, true, true, function() { 5613 var sms_title = $('#sms-title').val(), 5614 sms_content = $('#sms-content').val(); 5615 5616 if(sms_title.length == 0) { 5617 $('#sms-title').focus(); 5618 $('#sms-title').closest('.form-group').append('<div class="mng-error">ë³´ë´ì¤ ë²í¸ë¥¼ ì ë ¥íì¸ì</div>'); 5619 return false; 5620 } 5621 if(sms_content.length == 0) { 5622 $('#sms-content').focus(); 5623 $('#sms-content').closest('.form-group').append('<div class="mng-error">ë´ì©ì ì ë ¥íì¸ì</div>'); 5624 return false; 5625 } 5626 //SMS ì ì¡ ê¸°ë¥ ìì . 5627 5628 5629 sms_modal.modal('hide'); 5630 mngShowToast('check', 'ì ì¡ ìë£', mng_settings_el); 5631 5632 }, 'cancel', 'send', 'w480'); 5633 5634 $('.sms-recharge-btn').click(function() { 5635 smsRechargeModal(SID); 5636 }); 5637 5638 });/*sms*/ 5639 5640 5641 /*$('.member-level-btn .dropdown-item').live('click', function() { 5642 var level = parseInt($(this).text().trim()), 5643 check_data = getMemberListCheckData($(this)), 5644 mng_settings_el = $(this).closest('.mng-settings'); 5645 5646 if( typeof check_data.error != 'undefined' && check_data.error) { 5647 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5648 return false; 5649 } 5650 5651 var others_str = (check_data.count<1) ? '' : ' ì¸ <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">' + check_data.count + '</span> ëª '; 5652 var modal_content = '\ 5653 <div class="mng-modal-body level-modal">\ 5654 <p class="addressee-wrap">\ 5655 <span class="addressee-name">' + check_data.name + '</span> \ 5656 ' + others_str + ' ì íì ë 벨ì <br><span class="point">' + level + '</span> (ì¼)ë¡ ì ì©íìê² ìµëê¹?\ 5657 </p>\ 5658 </div>\ 5659 '; 5660 5661 var level_modal = $(this).showModalFlat('íì ë±ê¸ ë³ê²½', modal_content, true, true, function() { 5662 var uids = check_data.ids;ã 5663 5664 $.ajax({ 5665 type: 'POST', 5666 url: '/umember/update/type/level', 5667 data: { sid : SID, uids : uids, val : level }, 5668 dataType: 'json', 5669 async: true, 5670 success: function(data) { 5671 if(typeof data.error != 'undefined' && data.error) { 5672 // alert(data.error); 5673 if(level_modal.find('.error').length == 0) level_modal.find('.level-modal').append('<span class="error">' + data.error + '</span>'); 5674 else level_modal.find('.level-modal').find('.error').text(data.error); 5675 return false;
5676 } 5677 5678 $.each(uids, function(i,v) { 5679 $(mng_settings_el).find('.mng-list table tbody tr[data-uid="'+v+'"]').find('.level').text(level); 5680 }); 5681 5682 level_modal.modal('hide'); 5683 mngShowToast('check', 'ì ì¥ìë£', mng_settings_el); 5684 } 5685 }); 5686 5687 5688 }); 5689 5690 });/*level-all*/ 5691 5692 5693 $('#member-level-select').live('change', function() { 5694 var conf = confirm("ì ííì íìì ë 벨ì ë³ê²½íìê² ìµëê¹?"); 5695 if(conf){ 5696 var uid = $(this).closest('tr').attr('data-uid') 5697 var level = $(this).val(); 5698 5699 if(typeof uid == 'undefined' || !uid) { 5700 window.location.reload(); 5701 return false; 5702 } 5703 5704 $.ajax({ 5705 type: 'POST', 5706 url: '/umember/update/type/level', 5707 data: { sid : SID, uids : uid, val : level }, 5708 dataType: 'json', 5709 async: true, 5710 success: function(data) { 5711 if(typeof data.error != 'undefined' && data.error) { 5712 alert(data.error); 5713 return false; 5714 } 5715 5716 // setSiteLogs('um.edit','level.one',{'id':uid,'level':level},'um.list'); 5717 } 5718 }); 5719 }else{ 5720 window.location.reload(); 5721 return false; 5722 } 5723 5724 }); 5725 5726 $('.member-leave-btn').live('click', function() { 5727 if($(this).hasClass('member_disabled')) { 5728 siteNotice('manager'); 5729 return false; 5730 } 5731 var check_data = getMemberListCheckData($(this)), 5732 mng_settings_el = $(this).closest('.mng-settings'); 5733 5734 if( typeof check_data.error != 'undefined' && check_data.error) { 5735 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], check_data.error,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 5736 return false; 5737 } 5738 5739 var first_name = (LANG == 'en' && check_data.count > 0) ? '' : '<span class="addressee-name">' + check_data.name + '</span> ' + ((check_data.count == 0) ? $.lang[LANG]['manager.list.member.str'] : ''), 5740 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5741 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5742 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5743 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5744 selected_str = $.lang[LANG]['manager.list.member.leave.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.leave.txt.2']; 5745 5746 var modal_content = '\ 5747 <div class="mng-modal-body leave-modal">\ 5748 <p class="addressee-wrap">\ 5749 ' + selected_str + '\ 5750 </p>\ 5751 </div>\ 5752 '; 5753 5754 var level_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.leave.title'], modal_content, true, true, function() { 5755 var uids = check_data.ids; 5756 5757 $.ajax({ 5758 type: 'POST', 5759 url: '/umember/update/type/leave', 5760 data: { sid : SID, uids : uids, val : 'deny' }, 5761 dataType: 'json', 5762 async: true, 5763 success: function(data) { 5764 if(typeof data.error != 'undefined' && data.error) { 5765 // alert(data.error); 5766 if(level_modal.find('.error').length == 0) level_modal.find('.leave-modal').append('<span class="error">' + data.error + '</span>'); 5767 else level_modal.find('.leave-modal').find('.error').text(data.error); 5768 return false; 5769 } else { 5770 level_modal.modal('hide'); 5771 window.location.reload(); 5772 } 5773 5774 } 5775 }); 5776 5777 5778 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 5779 5780 }); 5781 5782 5783 $('.member-block-btn').live('click', function() { 5784 if($(this).hasClass('member_disabled')) { 5785 siteNotice('manager'); 5786 return false; 5787 } 5788 var check_data = getMemberListCheckData($(this)), 5789 mng_settings_el = $(this).closest('.mng-settings'); 5790 5791 if( typeof check_data.error != 'undefined' && check_data.error) { 5792 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], check_data.error,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 5793 return false; 5794 } 5795 5796 var first_name = (LANG == 'en' && check_data.count > 0) ? '' : '<span class="addressee-name">' + check_data.name + '</span> ' + ((check_data.count == 0) ? $.lang[LANG]['manager.list.member.str'] : ''), 5797 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5798 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5799 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5800 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5801 selected_str = $.lang[LANG]['manager.list.member.block.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.block.txt.2']; 5802 5803 var modal_content = '\ 5804 <div class="mng-modal-body block-modal">\ 5805 <p class="addressee-wrap">\ 5806 ' + selected_str + '\ 5807 </p>\ 5808 </div>\ 5809 '; 5810 5811 var block_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.block.title'], modal_content, true, true, function() { 5812 var val = check_data.ids; 5813 5814 $.ajax({ 5815 type: 'POST', 5816 url: '/umember/set/type/block', 5817 data: { sid : SID, key : 'id', val : val }, 5818 dataType: 'json', 5819 async: true, 5820 success: function(data) { 5821 if(typeof data.error != 'undefined' && data.error) { 5822 // alert(data.error); 5823 if(block_modal.find('.error').length == 0) block_modal.find('.block-modal').append('<span class="error">' + data.error + '</span>'); 5824 else block_modal.find('.block-modal').find('.error').text(data.error); 5825 return false;
5826 } else { 5827 block_modal.modal('hide'); 5828 window.location.reload(); 5829 } 5830 } 5831 }); 5832 5833 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 5834 }); 5835 5836 let startX, startY; 5837 $('.fullcover-scroll.payment .address-item') 5838 .live('click',function(e){ 5839 if( $(e.target).closest('.edit btn-edit-addr').length > 0) { 5840 return; 5841 } 5842 5843 5844 }) 5845 .live('mousedown', function(e) { 5846 startX = e.clientX; 5847 startY = e.clientY; 5848 }) 5849 .live('mouseup', function(e) { 5850 const dx = Math.abs(e.clientX - startX); 5851 const dy = Math.abs(e.clientY - startY); 5852 5853 // ëëê·¸ê° ê±°ì ììì¼ë©´ í´ë¦ì¼ë¡ íë¨ 5854 if (dx < 5 && dy < 5) { 5855 // í´ë¦ ëì ìí 5856 $(this).find('input[type="radio"]').prop('checked',true) 5857 // console.log('í´ë¦ë¨'); 5858 } else { 5859 // ëëê·¸í ê²ì¼ë¡ íë¨íì¬ ë¬´ì 5860 console.log('í ì¤í¸ ì í ê°ì§ë¨, í´ë¦ 무ì'); 5861 } 5862 }); 5863 5864 $('.adm-member-addr').live('click',function(){ 5865 const action = $(this).data('action'); 5866 switch (action){ 5867 case "adm-edit" : 5868 getaddrList("manager", false, function(result) { 5869 }); 5870 break; 5871 } 5872 }); 5873 5874 5875 // 주ì 목ë¡, 기본 주ì ì¤ì 5876 $('.btn-load-addresses, .btn-default-address, .btn-add-addr, .btn-edit-addr,.address-delete').live('click',function(){ 5877 //if (!property?.SID || !property?.UMEMBER?.id) return; 5878 5879 const action = $(this).data('action'); 5880 let currentPage = ''; 5881 const elcurPage = $('.btn-load-addresses'); 5882 if(elcurPage.hasClass('mypage')){ 5883 currentPage = 'mypage'; 5884 } else if (elcurPage.parent().hasClass('smpage-btn')){ 5885 currentPage = 'payment'; 5886 } else { 5887 currentPage = 'manager'; 5888 } 5889 5890 if (!action) return; 5891 5892 // ëª©ë¡ ë²í¼ ëë ìë > 5893 // ì¶ê° íì ìì ì ì¥í기 ëë ìë 5894 // 기본 주ì ì¤ì í기 ëë ì ë 5895 if (action === 'getList') { 5896 getaddrList(currentPage); 5897 } else if (action == "add") { 5898 if ($('.address-item').length <= 14) { 5899 editAndaddPoppup("N","add",currentPage); 5900 } 5901 } else if (action == "edit") { 5902 editAndaddPoppup("N","edit",currentPage,$(this)); 5903 } else if (action =="delete") { 5904 deletePopup(currentPage,$(this)); 5905 } else if (action === 'setDefault') { 5906 var seq = $(this).attr('seq'); 5907 if(!seq) return; 5908 5909 $.ajax({ 5910 type: 'POST', 5911 url: '/umember/get/type/smAddressList', 5912 data: { 5913 sid: property.SID, 5914 uid: property.UMEMBER.id, 5915 seq: seq, 5916 action: 'setDefault' 5917 }, 5918 dataType: 'json', 5919 success: function (data) { 5920 5921 //$addresslist_popup.modal('hide'); 5922 5923 if (data?.error) { 5924 alert(data.error); 5925 getaddrList(currentPage); 5926 return; 5927 } else { 5928 //$addresslist_popup.one('hidden.bs.modal', function () { 5929 // setTimeout(function() { 5930 // getaddrList(currentPage); 5931 // updateAddressUI(data,currentPage); 5932 5933 // }, '50'); 5934 getaddrList(currentPage,true); 5935 5936 if(currentPage == "payment"){ 5937 var elSeq = $('.sm-parent').attr('data-smseq'); 5938 var elDefault = $('.sm-parent').find('.sm-default-addr').hasClass("hide"); 5939 5940 if(!elDefault || elSeq == seq){ 5941 updateAddressUI(data,currentPage); 5942 } 5943 } else { 5944 updateAddressUI(data,currentPage); 5945 } 5946 //}); 5947 } 5948 } 5949 }); 5950 } 5951 }); 5952 window.checkNumberPopup = function(el) { 5953 var val = el.val(); 5954 el.val(val.replace(/[^0-9]/g,'')); 5955 } 5956 // 주ì ê°ì ¸ì¤ê¸° 5957 var getaddrList = function(currentPage,changeHtml = false ) { 5958 $.ajax({ 5959 type: 'POST', 5960 url: '/umember/get/type/smAddressList', 5961 data: { 5962 sid: (typeof property !== 'undefined' && property?.SID) ? property.SID : SID, 5963 uid: (currentPage=='manager') ? $('.memberinfo-modal .member-info-input').val() : property.UMEMBER.id, 5964 action: 'getList' 5965 }, 5966 dataType: 'json', 5967 success: function (data) { 5968 // if(currentPage === "manager" && callback){ 5969 // callback(data); 5970 // return true; 5971 // } 5972 if (data?.error) { 5973 alert(data.error); 5974 return; 5975 } 5976 if (data.length > 0) { 5977 // ê°ì ¸ì¨ 주ì íì ì 그리기 5978 // console.log(changeHtml); 5979 var changehtm = showList(data, currentPage,changeHtml); 5980 if(changehtm){ 5981 // console.log(changehtm);
5982 const $tempDom = $('<div>').html(changehtm); 5983 const $newItems = $tempDom.find('li.address-item'); 5984 5985 const $list = $addresslist_popup.find('ul.address-list'); 5986 5987 // 기존 li ì ê±° í ì li ì½ì 5988 $list.empty().append($newItems); 5989 } 5990 if(data.length >= 15) { 5991 5992 $('.btn-add-addr').addClass('pointer-none'); 5993 } 5994 5995 } else { 5996 // ê°ì ¸ì¨ 주ìx 5997 editAndaddPoppup("Y","add",currentPage); 5998 } 5999 6000 } 6001 }); 6002 } 6003 6004 // 주ì 그리기 6005 var showList = function(d,currentPage,changeHtml = false) { 6006 6007 if(currentPage == "manager") { 6008 $('.memberinfo-modal').closest('.flat-modal').hide(); 6009 $('.memberinfo-modal').closest('.flat-modal').next('.modal-backdrop').hide(); 6010 } 6011 var content_li = ''; 6012 $.each(d,function(i,v){ 6013 const isDefault = v.is_default == 1 ? 'show' : 'hide'; 6014 const name = v.to_name; 6015 const alias = v.alias || ''; 6016 const aliasel = (v.alias) ? 'open' : 'hide'; 6017 const seq = v.seq; 6018 const tel = v.to_tel; 6019 6020 6021 const to_addr1 = v.to_addr1 || ''; 6022 let postCode = ''; 6023 let addr1 = ''; 6024 6025 if (to_addr1.includes('||')) { 6026 const parts = to_addr1.split('||'); 6027 postCode = parts[0].trim(); 6028 addr1 = parts[1].trim(); 6029 } else { 6030 postCode = ''; 6031 addr1 = to_addr1.trim(); 6032 } 6033 6034 const addr2 = v.to_addr2 || ''; 6035 content_li += ` 6036 <li class="address-item"> 6037 <div class="div1"> 6038 <span class="name">${name}</span> 6039 <span class="tag ${!alias ? 'hide' : ''}" edit-tag="${escape(alias)}">${alias ? '(' + alias + ')' : ''}</span> 6040 <span class="default ${isDefault}">기본 ë°°ì¡ì§</span> 6041 <div class="newcheckbox hand"> 6042 <div class="newcheckboxSvgRadio"> 6043 <label> 6044 <input type="radio" name="temp" value="${seq}" ${v.is_default == 1 ? 'checked' : ''}> 6045 <svg viewBox="0 0 18 18" width="18" height="18"> 6046 <path fill="#dbdcdf" d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8 0-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"></path> 6047 </svg> 6048 <svg class="active" viewBox="0 0 18 18" width="18" height="18"> 6049 <path fill="#4789e7" d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8 0-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"></path> 6050 <circle fill="#4789e7" cx="9" cy="9" r="6"></circle> 6051 </svg> 6052 </laberl> 6053 </div> 6054 </div> 6055 </div> 6056 <div class="div2"> 6057 <span class="address1 ${!postCode ? 'hide' : ''}" edit-postcode="${postCode}">${postCode ? '[' + postCode + ']' : ''}</span><span class="address2" edit-addr1="${escape(addr1)}" edit-addr2="${escape(addr2)}">${addr1} ${addr2}</span> 6058 </div> 6059 <div class="div3 phone">${tel}</div> 6060 <div class="div4 actions clearfix"> 6061 <button class="edit btn-edit-addr" data-action="edit" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" class="address-edit" data-toggle="tooltip" data-placement="top" title="" data-original-title="ìì " width="12" height="12"><path d="m11.56.57-.13-.13C11.14.15 10.76 0 10.37 0c-.38 0-.77.15-1.06.44L.75 9 0 12l3-.75 8.56-8.56c.59-.59.59-1.54 0-2.12zm-9.07 9.78-1.11.28.28-1.11 6.58-6.58.84.84-6.59 6.57zm8.36-8.37L9.77 3.06l-.83-.83 1.08-1.08a.487.487 0 0 1 .7 0l.13.13c.2.19.2.51 0 .7z"></path></svg></button><button class=" ${currentPage == "manager" ? 'hide' : ''} delete ${(v.is_default == 1) ? 'hide' : ''}"><svg viewBox="0 0 12 13" width="12" height="13" class="address-delete" data-toggle="tooltip" data-placement="top" title="" data-original-title="ìì " data-action="delete"><path d="M11.01 2H9V0H3v2H0.99 0v1h1v8c0 1.1 0.9 2 2 2h6c1.1 0 2-0.9 2-2V3h1V2H11.01zM4 1h4v1H4V1zM10 11c0 0.55-0.45 1-1 1H3c-0.55 0-1-0.45-1-1V3h1.02H9h1V11z"></path><rect x="4" y="4" width="1" height="7"></rect><rect x="7" y="4" width="1" height="7"></rect></svg></button> 6062 <div data-action="setDefault" seq ="${v.seq}" class=" ${currentPage == "manager" ? 'hide' : ''} btn-default-address ${(v.is_default == 1) ? 'hide': ''}" style="">기본 ë°°ì¡ì§ ì¤ì </div> 6063 </div> 6064 </li> 6065 `; 6066 }); 6067 6068 var modal_content =` 6069 <div class="btn-add-addr ${currentPage == "manager" ? 'hide' : ''}" data-action="add" > 6070 <div> 6071 <svg viewBox="0 0 15 15" width="15" height="15"> 6072 <polygon points="15 7 8 7 8 0 7 0 7 7 0 7 0 8 7 8 7 15 8 15 8 8 15 8 "></polygon> 6073 </svg>
6074 <span>ë°°ì¡ì§ ì¶ê°</span> 6075 </div> 6076 </div> 6077 <ul class="fullcover-scroll address-list ${currentPage}"> 6078 ${content_li} 6079 </ul> 6080 ` 6081 if(changeHtml) return content_li; 6082 $addresslist_popup = $(this).showModalFlat("ë°°ì¡ì§ 목ë¡", modal_content, true, (currentPage == "mypage" ||currentPage == "manager" ) ? false : true , function(){ 6083 6084 6085 // ê²°ì íì´ì§ì ëª©ë¡ íì ìì íì¸ ë²í¼ í´ë¦ ì 6086 $("#no-fouc").removeClass("scroll-lock-fullcover-popup"); 6087 var seq = $addresslist_popup.find('.address-item input[type="radio"]:checked').attr('value'); 6088 6089 $.ajax({ 6090 type: 'POST', 6091 url: '/umember/get/type/smAddressList', 6092 data: { 6093 sid: property.SID, 6094 uid: property.UMEMBER.id, 6095 seq:seq, 6096 action: 'getExistAddr', 6097 }, 6098 dataType: 'json', 6099 success: function (data) { 6100 if (data?.error) { 6101 alert(data.error); 6102 $addresslist_popup.modal('hide'); 6103 getaddrList(currentPage); 6104 return; 6105 } else { 6106 UpdateelSeq(seq); 6107 updateAddressUI(data,currentPage); 6108 $addresslist_popup.modal('hide'); 6109 6110 } 6111 } 6112 }); 6113 }, (currentPage == "payment" ? 'cancel' : 'close' ) , 'config.save', 'cl-cmmodal cl-s-btn w560 cl-p70 cl-p0 addr-list-parents cover fullcover-modal fullcover-modal-scroll ' + ((currentPage === 'manager') ? "manager" : "") + ' ',true,function(){ 6114 $("#no-fouc").removeClass("scroll-lock-fullcover-popup"); 6115 6116 if(currentPage == "manager") { 6117 $('.memberinfo-modal').closest('.flat-modal').show(); 6118 $('.memberinfo-modal').closest('.flat-modal').next('.modal-backdrop').show(); 6119 } 6120 },function(){ 6121 6122 // if($addresslist_popup.closest('#flat-modal1').length >0 ){ 6123 // $addresslist_popup.closest('#flat-modal1').attr('id','flat-modal'); 6124 // } 6125 6126 }); 6127 6128 if($("#no-fouc").addClass("scroll-lock-fullcover-popup")); 6129 6130 6131 } 6132 6133 // ë§ì´íì´ì§ íì ìì 주ì를 ë±ë¡íê±°ë ê²°ì íì´ì§ íì ìì ì ì¥ ë²í¼ì í´ë¦íì ë ë°ì´í° ë°ì 6134 var updateAddressUI = function(d,cPage){ 6135 6136 if(cPage == "mypage"){ 6137 var removeEl = $('.sm-parent.emptyFlag'); // ìì ì체를 ë´ì 6138 if (removeEl.length) { 6139 // optional í´ëì¤ ì ê±° 6140 removeEl.find('.cl-s-form-wrap.empty').removeClass('empty'); 6141 removeEl.find('.optional').removeClass('optional'); 6142 // flexbox ìì input ì ê±° 6143 removeEl.find('.flexbox').children('input').remove(); 6144 } 6145 } 6146 6147 6148 var $sm = $('.sm-parent'); 6149 var $sm_btn = $sm.find('.btn-load-addresses div span'); 6150 var $sm_name = $sm.find('.sm-name'); 6151 var $sm_alias = $sm.find('.sm-alias'); 6152 var $sm_default = $sm.find('.sm-default-addr'); 6153 6154 const $sm_addr1 = $sm.find('.sm-addr1 span').first(); // [ì°í¸ë²í¸] 6155 const $sm_addr2 = $sm.find('.sm-addr1 span').last(); // 주ì 6156 const $sm_tel = $sm.find('.sm-tel'); // 주ì2 6157 6158 d?.alias ? $sm_alias.text('(' + d.alias + ')').removeClass('hide') : $sm_alias.text('').addClass('hide'); 6159 6160 $sm.removeClass('emptyFlag'); 6161 6162 6163 6164 (cPage == "mypage") ? $sm_btn.text('ë³ê²½í기') : $sm_btn.text('ë°°ì¡ì§ 목ë¡'); 6165 6166 $sm_name.text(d?.to_name); 6167 6168 const tempArr = d.to_addr1?.split('||') || []; 6169 tempArr[0] ? $sm_addr1.text('[' + tempArr[0] + ']').removeClass('hide') : $sm_addr1.addClass('hide'); 6170 $sm_addr2.text(tempArr[1] +' '+d?.to_addr2); 6171 $sm_tel.text(d?.to_tel); 6172 $sm.find('.noaddress').addClass('hide'); 6173 6174 if($('.btn-load-addresses.empty').length > 0) { 6175 $('.btn-load-addresses.empty').removeClass('empty'); 6176 } 6177 6178 if(cPage == "payment") { 6179 6180 if (+d.is_default > 0) { 6181 $sm_default.removeClass("hide"); 6182 } else { 6183 $sm_default.addClass("hide"); 6184 } 6185 6186 $('#reciever-name').val(d.to_name); 6187 $('#reciever-phone').val(d.to_tel); 6188 $('#reciever-postcode').val(tempArr[0]); 6189 $('#reciever-addr1').val(tempArr[1]); 6190 $('#reciever-addr2').val(d.to_addr2); 6191 changeDeliveryPrice($(this).closest('form').attr('data-sid')); 6192 // console.log($(this)); 6193 } 6194 } 6195 6196 var editAndaddPoppup = function(fix_addr = "N", mode = "", cpage = "",select = ""){ 6197 var dontclick_label = ""; 6198 var opa = ""; 6199 6200 if (fix_addr === "Y") { 6201 dontclick_label = 'disabled checked'; 6202 opa = "opa"; 6203 } else if (mode === "edit") { 6204 var $a_item = select.closest('.address-item'); 6205 6206 if ($a_item.find('.default.show').length > 0) { 6207 dontclick_label = 'disabled checked'; 6208 opa = "opa"; 6209 } 6210 } 6211 6212 var modal_content = ` 6213 <div> 6214 <div class="cl-s-info">ë°°ì¡ì§ ì ë³´</div> 6215 <div class="col-xs-12 col-sm-12 col-md-12 no-padding"> 6216 <div class="cl-s-form-wrap"> 6217 <div class="cl-s-form-group"> 6218 <input type="text" class="cl-s-form-control-popup" id="addrPopup-alias"name ="alias" required> 6219 <label for="input" class="cl-s-control-label">ë°°ì¡ì§ëª </label> 6220 </div> 6221 </div> 6222 </div> 6223 <div class="col-xs-6 col-sm-6 col-md-6 no-padding p-r-5"> 6224 <div class="cl-s-form-wrap"> 6225 <div class="cl-s-form-group"> 6226 <input type="text" class="cl-s-form-control-popup" id="addrPopup-name" name="to_name" required="required"> 6227 <label for="input" class="cl-s-control-label">ì´ë¦<span class="input-star">*</span></label> 6228 6229 </div> 6230 </div> 6231 </div> 6232 <div class="col-xs-6 col-sm-6 col-md-6 no-padding p-l-5"> 6233 <div class="cl-s-form-wrap"> 6234 <div class="cl-s-form-group"> 6235 <input type="text" class="cl-s-form-control-popup" id="addrPopup-phone" name="to_tel" required="required" onkeyup="checkNumberPopup($(this))"> 6236 <label for="input" class="cl-s-control-label">ì°ë½ì²<span class="input-star">*</span></label> 6237 </div> 6238 </div> 6239 </div> 6240 <div class="col-xs-12 col-sm-12 col-md-12 no-padding clearfix"> 6241 <div class="cl-s-form-wrap"> 6242 <div class="cl-s-form-group"> 6243 <input type="hidden" class="cl-s-form-control-popup" id="addrPopup-postcode" name="addr1" required="required" value=""> 6244 <input type="text" class="cl-s-form-control-popup" id="addrPopup-addr1" name="addr2" required="required" readonly onfocus="addrSearchModal('addrPopup')"> 6245 <label for="input" class="cl-s-control-label">주ì<span class="input-star">*</span></label> 6246 </div> 6247 </div> 6248 <div class="cl-s-form-wrap"> 6249 <div class="cl-s-form-group"> 6250 <input type="text" class="cl-s-form-control-popup" id="addrPopup-addr2" name="addr3" required> 6251 <label for="input" class="cl-s-control-label">ìì¸ì£¼ì</label> 6252 </div> 6253 </div> 6254 </div> 6255 <span class="pull-left checkbox-wrap ${cpage == "manager" ? 'hide' : ''}"> 6256 <div class="cl-s-checkbox ${opa}"> 6257 <label> 6258 <input type="checkbox" id="addrPopup-set" name="is_default" ${dontclick_label}> 6259 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M13 0H3C1.3 0 0 1.3 0 3v10c0 1.7 1.3 3 3 3h10c1.7 0 3-1.3 3-3V3C16 1.3 14.7 0 13 0zM15 13c0 1.1-0.9 2-2 2H3c-1.1 0-2-0.9-2-2V3c0-1.1 0.9-2 2-2h10c1.1 0 2 0.9 2 2V13z"></path></svg> 6260 <svg class="active" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0zM13.03 6.03l-5.5 5.5C7.38 11.68 7.19 11.75 7 11.75s-0.38-0.07-0.53-0.22l-3.5-3.5c-0.29-0.29-0.29-0.77 0-1.06s0.77-0.29 1.06 0L7 9.94l4.97-4.97c0.29-0.29 0.77-0.29 1.06 0S13.32 5.74 13.03 6.03z"></path></svg> 6261 기본 ë°°ì¡ì§ ì¤ì 6262 </label> 6263 </div> 6264 </span> 6265 </div> 6266 ` 6267 6268 var $addPopup = $(this).showModalFlat( (mode == "add") ? "ë°°ì¡ì§ ì¶ê°" : "ë°°ì¡ì§ ìì " , modal_content, true, true , function(){ 6269 6270 $addPopup.find('.cl-s-form-wrap').removeClass('empty'); 6271 6272 let focused = false;
6273 let flagCheck = false; 6274 6275 $addPopup.find('.cl-s-form-wrap').each(function (i,e) { 6276 const $wrap = $(this); 6277 const $inputs = $wrap.find('input:not([type=hidden]), textarea'); 6278 const hasError = $wrap.hasClass('error'); 6279 6280 let isEmpty = false; 6281 6282 // ì¤ì§ required="required" ë¡ ëª ìë íëë§ ê²ì¬ 6283 $inputs.each(function () { 6284 const input = this; 6285 const $input_id = $(input).attr('id'); 6286 let error_str= ""; 6287 // requiredë§ ê²ì¬ 6288 if (input.getAttribute('required') === 'required') { 6289 // console.log($(this)); 6290 const val = $(input).val()?.trim(); 6291 const $wrap = $(input).closest('.cl-s-form-wrap'); 6292 const $errorLabel = $wrap.next('.cl-s-control-label.error'); 6293 6294 // 기존 ìë¬ ì ê±° 6295 $errorLabel.remove(); 6296 6297 if (!val) { 6298 isEmpty = true; 6299 error_str = ""; 6300 6301 switch($input_id){ 6302 case "addrPopup-name" : 6303 error_str = " ì´ë¦ì ì ë ¥í´ ì£¼ì¸ì."; 6304 break; 6305 case "addrPopup-phone" : 6306 error_str = " ì°ë½ì²ë¥¼ ì ë ¥í´ ì£¼ì¸ì." 6307 break; 6308 case "addrPopup-addr1" : 6309 error_str = " 주ì 찾기를 íµí´ 주ì를 ì ë ¥í´ì£¼ì¸ì." 6310 break; 6311 } 6312 // ì ìë¬ ì¶ê° 6313 $wrap.after( 6314 '<label for="input" class="cl-s-control-label error"><i class="cl-icon alert02"></i>' + error_str + '</label>' 6315 ); 6316 } 6317 } 6318 }); 6319 6320 if (isEmpty) { 6321 $wrap.addClass('empty'); 6322 flagCheck = true; 6323 } 6324 6325 // í¬ì»¤ì¤: 첫 ë²ì§¸ error ëë empty í목 6326 if ((isEmpty || hasError) && !focused) { 6327 flagCheck = true; 6328 const $focusTarget = $wrap.find('input, textarea').filter(':visible').first(); 6329 if ($focusTarget.length > 0) { 6330 $focusTarget.focus(); 6331 focused = true; 6332 } 6333 } 6334 }); 6335 6336 if (flagCheck) return true; 6337 6338 6339 const formValues = { 6340 to_name: $addPopup.find('#addrPopup-name').val()?.trim(), 6341 to_tel: $addPopup.find('#addrPopup-phone').val()?.trim(), 6342 to_addr1: `${$addPopup.find('#addrPopup-postcode').val()?.trim()}||${$addPopup.find('#addrPopup-addr1').val()?.trim()}`, 6343 to_addr2: $addPopup.find('#addrPopup-addr2').val()?.trim(), 6344 alias: $addPopup.find('#addrPopup-alias').val()?.trim(), 6345 is_default: $addPopup.find('#addrPopup-set').prop('checked') ? '1' : '0' 6346 }; 6347 6348 if(mode == "add"){ 6349 $.ajax({ 6350 type: 'POST', 6351 url: '/umember/get/type/smAddressList', 6352 data: { 6353 sid: property.SID, 6354 uid: property.UMEMBER.id, 6355 action: 'add', 6356 fixaddr : fix_addr, 6357 value : formValues 6358 }, 6359 dataType: 'json', 6360 success: function (data) { 6361 if (data?.error) { 6362 alert(data.error); 6363 $addPopup.modal('hide'); 6364 getaddrList(cpage); 6365 return; 6366 } else { 6367 if( typeof $addresslist_popup !== "undefined" && $addresslist_popup.length > 0) { 6368 $addresslist_popup.modal('hide'); 6369 } 6370 6371 if(cpage == "mypage" && formValues.is_default == "1"){ 6372 updateAddressUI(formValues,cpage); 6373 } 6374 else if ( 6375 (cpage == "payment" && fix_addr == "Y") || 6376 (cpage == "payment" && formValues.is_default > 0 && $('.sm-default-addr:not(.hide)').length > 0) 6377 ) { 6378 updateAddressUI(formValues,cpage); 6379 UpdateelSeq(data["seq"]); 6380 } 6381 $addPopup.modal('hide'); 6382 getaddrList(cpage); 6383 } 6384 } 6385 }); 6386 } else if (mode == "edit") { 6387 6388 var $tempitem = select.closest('.address-item'); 6389 var radio_value = $tempitem.find('input[type="radio"]').val() || ''; 6390 if (!radio_value) return true; 6391 6392 if(cpage == "manager" && $('#member-postcode').length > 0 && formValues.is_default > 0) { 6393 $('#member-addr1').val($addPopup.find('#addrPopup-addr1').val()?.trim()) ; 6394 $('#member-addr2').val(formValues.to_addr2) ; 6395 // console.log('afaf'); 6396 $('#member-postcode').attr('value',$addPopup.find('#addrPopup-postcode').val()?.trim()); 6397 6398 var temp_uid = $('.memberinfo-modal .member-info-input').val(); 6399 $('.mng-list table tr[data-uid="' + temp_uid + '"]').find('.'+'addr').text(formValues.to_addr1 + formValues.to_addr2); 6400 6401 } 6402 $.ajax({ 6403 type: 'POST', 6404 url: '/umember/get/type/smAddressList', 6405 data: { 6406 sid: (typeof property !== 'undefined' && property.SID) ? property.SID : SID, 6407 uid: (cpage=='manager') ? $('.memberinfo-modal .member-info-input').val() : property.UMEMBER.id, 6408 action: 'edit', 6409 seq : radio_value, 6410 value : formValues 6411 }, 6412 dataType: 'json', 6413 success: function (data) { 6414 if (data?.error) { 6415 alert(data.error); 6416 $addPopup.modal('hide'); 6417 getaddrList(cpage); 6418 return; 6419 } else { 6420 $addPopup.modal('hide'); 6421 $addresslist_popup.modal('hide'); 6422 6423 getaddrList(cpage); 6424 6425 var elSeq = $('.sm-parent').attr('data-smseq'); 6426 var elDefault = $('.sm-parent').find('.sm-default-addr').hasClass("hide"); 6427 6428 if(cpage =="payment" && !elDefault && formValues["is_default"] == 1 || 6429 cpage =="payment" && elSeq == radio_value 6430 ){ 6431 updateAddressUI(formValues,cpage); 6432 } else if(cpage != "payment"){ 6433 6434 updateAddressUI(formValues,cpage); 6435 } 6436 } 6437 } 6438 }); 6439 6440 } 6441 6442 6443 6444 }, 'cancel', (cpage === 'manager' ? 'ì ì¥' : 'config.save'), 'cl-cmmodal cl-s-btn w560 cl-p70 cl-p0 parallax-description-modal cl-s-add-addrPopup cover fullcover-modal ' + ( (cpage == "manager") ? 'manageredit' : '') +'',true,function(){ 6445 console.log('a'); 6446 },function(){}); 6447 6448 if(mode == "edit") { 6449 if($addresslist_popup.length > 0) { 6450 6451 var $item = select.closest('.address-item'); 6452 6453 var name_edit = $item.find('.name').text().trim(); 6454 var aliasAttr = unescape($item.find('.tag').attr('edit-tag')); 6455 var alias_edit = aliasAttr ? aliasAttr.trim() : ''; 6456 var is_default_edit = $item.find('.default.show').length > 0 ? '1' : '0'; 6457 var postcodeAttr = $item.find('[edit-postcode]').attr('edit-postcode'); 6458 var postcode_edit = postcodeAttr ? postcodeAttr.trim() : '';
6459 var addr1Attr = unescape($item.find('[edit-addr1]').attr('edit-addr1')); 6460 var address1_edit = addr1Attr ? addr1Attr.trim() : ''; 6461 var addr2Attr = unescape($item.find('[edit-addr2]').attr('edit-addr2')); 6462 var address2_edit = addr2Attr ? addr2Attr.trim() : ''; 6463 var phone_edit = $item.find('.div3.phone').text().trim(); 6464 if (mode === 'edit') { 6465 $addPopup.find('#addrPopup-alias').val(alias_edit); 6466 $addPopup.find('#addrPopup-name').val(name_edit); 6467 $addPopup.find('#addrPopup-phone').val(phone_edit); 6468 $addPopup.find('#addrPopup-postcode').val(postcode_edit); 6469 $addPopup.find('#addrPopup-addr1').val(address1_edit).addClass('has-value'); 6470 $addPopup.find('#addrPopup-addr2').val(address2_edit); 6471 $addPopup.find('#addrPopup-set').prop('checked', is_default_edit === '1'); 6472 } 6473 } 6474 } 6475 } 6476 6477 var deletePopup = function(cpage,c_this){ 6478 6479 $addresslist_popup.addClass('hide'); 6480 var $tempitem = $(c_this).closest('.address-item'); 6481 var radio_value = $tempitem.find('input[type="radio"]').val() || ''; 6482 6483 var $addr_modal_delete = $(this).showModalFlat("주ì를 ìì íìê² ìµëê¹?", "ìì í 주ìë 복구í ì ììµëë¤. <br> ì ë§ ìì íìê² ìµëê¹?", true, true , function(){ 6484 6485 $.ajax({ 6486 type: 'POST', 6487 url: '/umember/get/type/smAddressList', 6488 data: { 6489 sid: property.SID, 6490 uid: property.UMEMBER.id, 6491 seq:radio_value, 6492 action: 'delete', 6493 }, 6494 dataType: 'json', 6495 success: function (data) { 6496 setTimeout(function() { 6497 getaddrList(cpage); 6498 },''); 6499 $addr_modal_delete.modal('hide'); 6500 $addresslist_popup.modal('hide'); 6501 } 6502 }); 6503 6504 }, 'cancel','ok','modal-dialog cl-cmmodal cl-s-btn w560 cl-p70',false,'','',function(){ 6505 $addresslist_popup.removeClass('hide'); 6506 }); 6507 6508 6509 } 6510 6511 var UpdateelSeq = function(seq){ 6512 $('.sm-parent').attr("data-smseq",seq); 6513 } 6514 6515 $('.btn-add-addr.pointer-none').live('click',function(e) { 6516 var modal = $(this).showModalFlat($.lang[LANG]['config.information'], $.lang[LANG]['shopping.addr.title.dec'], true, false, function(){ 6517 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',1) 6518 if ($backModal.next().hasClass('modal-backdrop')) { 6519 $backModal.next().css('opacity', 0.9); // ìíë ì¤íì¼ 6520 } 6521 }, 'ok', '', 'cl-p130 cl-cmmodal cl-s-btn w560 cl-p0 cl-okbtn-pbt70',true,function(){ 6522 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',1) 6523 if ($backModal.next().hasClass('modal-backdrop')) { 6524 $backModal.next().css('opacity', 0.9); // ìíë ì¤íì¼ 6525 } 6526 6527 },function(){ 6528 }); 6529 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',0) 6530 if ($backModal.next().hasClass('modal-backdrop')) { 6531 $backModal.next().css('opacity', 0); // ìíë ì¤íì¼ 6532 } 6533 }); 6534 6535 6536 $('.cl-s-add-addrPopup .cl-s-form-group').live('click',function(e) { 6537 if($(e.target).hasClass('cl-s-form-group')) { 6538 $(e.target).find('.cl-s-form-control-popup:not([type=hidden])').focus(); 6539 } 6540 }); 6541 $('.cl-s-form-control-popup').live({ 6542 6543 focus: function(e) { 6544 if($(this).attr('type') == 'hidden') { 6545 e.preventDefault(); 6546 return false; 6547 } 6548 if($(this).is('#addrPopup-addr2') && $('#addrPopup-addr1').val().trim().length > 0 ) { 6549 6550 const formWrap = $('#addrPopup-addr1').closest('.cl-s-form-wrap'); 6551 const nextElement = formWrap.next('.cl-s-control-label'); 6552 6553 if (nextElement.length > 0) { 6554 nextElement.remove(); 6555 } 6556 var input_id = $(this).attr('id'), 6557 input_addr1 = input_id.replace('-addr2','-addr1'); 6558 // console.log(input_addr1); 6559 if($('#'+input_addr1).val().trim().length > 0) { 6560 $('#'+input_addr1).closest('.cl-s-form-wrap').removeClass('empty'); 6561 } 6562 } 6563 $(this).closest('.cl-s-form-wrap').addClass('active'); 6564 }, 6565 blur: function(e) { 6566 $(this).closest('.cl-s-form-wrap').removeClass('active'); 6567 6568 if($(this).attr('type') == 'hidden' || $(this).is('textarea')) { 6569 e.preventDefault(); 6570 return false; 6571 } 6572 6573 var error_str = '', 6574 val = $(this).val().trim(); 6575 6576 6577 if (val.length === 0 && this.getAttribute('required') === 'required') { 6578 $(this).closest('.cl-s-form-wrap').removeClass('error').addClass('empty'); 6579 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 6580 return false;
6581 } else { 6582 $(this).closest('.cl-s-form-wrap').removeClass('empty'); 6583 $(this).closest('.cl-s-form-wrap').next('.cl-s-control-label.error').remove(); 6584 6585 if(val.length > 0 && checkEmojis(val)){ 6586 error_str = $.lang[LANG]['config.unable.emoji']; 6587 6588 } else if( ($(this).is('#addrPopup-alias') || $(this).is('#addrPopup-name')) && val.length > 50) { 6589 error_str = '50ì ì´ë´ë¡ ì ë ¥í´ ì£¼ì¸ì.'; 6590 } 6591 6592 if(error_str.length > 0) { 6593 $(this).closest('.cl-s-form-wrap').addClass('error'); 6594 if($(this).parent().find('.cl-s-control-label.error').length > 0) { 6595 $(this).parent().find('.cl-s-control-label.error').html(error_str); 6596 } else { 6597 $(this).after('<label for="input" class="cl-s-control-label error">' + error_str + '</label>'); 6598 } 6599 return false; 6600 } 6601 } 6602 6603 // ì í¨ì± íµê³¼ ì ìë¬ ë¬¸êµ¬ë¤ ì ê±° 6604 $(this).closest('.cl-s-form-wrap').removeClass('error').removeClass('empty'); 6605 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 6606 6607 } 6608 }); 6609 //ë 벨ë³ê²½ í ì¶ê° 6610 $('.member-level-btn').live('click', function() { 6611 if($(this).hasClass('member_disabled')) { 6612 siteNotice('manager'); 6613 return false; 6614 } 6615 var blank = $('input[type="checkbox"]:checked').hasClass("blank"); 6616 if(blank){ 6617 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], $.lang[LANG]['manager.list.member.selected.blank'],true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 6618 return false; 6619 } 6620 6621 var check_data = getMemberListCheckData($(this)), 6622 mng_settings_el = $(this).closest('.mng-settings'); 6623 6624 if( typeof check_data.error != 'undefined' && check_data.error) { 6625 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], check_data.error,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 6626 return false; 6627 } 6628 6629 var first_name = (LANG == 'en' && check_data.count > 0) ? '' : '<span class="addressee-name">' + check_data.name + '</span> ', 6630 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 6631 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 6632 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 6633 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 6634 selected_str = $.lang[LANG]['manager.list.member.level.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.level.txt.2']; 6635 6636 //ë 벨ì«ìë²í¼ ìì± 6637 var level_btn = ""; 6638 for(var i=1; i < 11; i++){ 6639 level_btn += '<button class="btn-lg btn-default level-btn" value="' + i + '">' + i + '</button>'; 6640 } 6641 6642 var modal_content = '\ 6643 <div class="mng-modal-body level-modal">\ 6644 <p class="addressee-wrap">\ 6645 ' + selected_str + '\ 6646 </p>\ 6647 ' + level_btn + '\ 6648 </div>\ 6649 '; 6650 6651 var level_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.level.title'], modal_content, true, true, function() { 6652 var uids = check_data.ids; 6653 var level = $(".level-modal").children(".active").val(); 6654 6655 if(level == "undefined" || !level){ 6656 alert("ë 벨ì ì íí´ ì£¼ì¸ì"); 6657 return false; 6658 } 6659 6660 if(typeof uids == 'undefined' || !uids) { 6661 window.location.reload(); 6662 return false; 6663 } 6664 6665 $.ajax({ 6666 type: 'POST', 6667 url: '/umember/update/type/level', 6668 data: { sid : SID, uids : uids, val : level }, 6669 dataType: 'json', 6670 async: true, 6671 success: function(data) { 6672 if(typeof data.error != 'undefined' && data.error) { 6673 //alert(data.error); 6674 if(level_modal.find('.error').length == 0) level_modal.find('.level-modal').append('<span class="error">' + data.error + '</span>'); 6675 else level_modal.find('.level-modal').find('.error').text(data.error); 6676 return false; 6677 } else { 6678 level_modal.modal('hide'); 6679 } 6680 location.reload(true); 6681 } 6682 }); 6683 6684 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0',true); 6685 }); 6686 6687 6688 // ì¼íë±ê¸ ë³ê²½ í ì¶ê° 6689 $('.member-shopgrade-btn').live('click', function() { 6690 if($(this).hasClass('member_disabled')) { 6691 siteNotice('manager'); 6692 return false;
6693 } 6694 var blank = $('input[type="checkbox"]:checked').hasClass("blank"); 6695 if(blank){ 6696 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], $.lang[LANG]['manager.list.member.selected.blank'],true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 6697 return false; 6698 } 6699 6700 var check_data = getMemberListCheckData($(this)), 6701 mng_settings_el = $(this).closest('.mng-settings'); 6702 6703 if( typeof check_data.error != 'undefined' && check_data.error) { 6704 $(this).showModalFlat($.lang[LANG]['manager.list.member.selected.empty.title'], check_data.error,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cl-member-list-block'); 6705 return false; 6706 } 6707 6708 var selected_str = '<span class="shopgrade-member-id">' + check_data.name + '</span>'; 6709 if (check_data.count > 0) { 6710 selected_str += '<span class="shopgrade-member-extra" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">ì¸ <span class="shopgrade-member-count">' + check_data.count + 'ëª </span></span>'; 6711 } 6712 var notice_send_enabled = (typeof shopgradeNoticeSendEnabled == 'undefined') ? true : !!shopgradeNoticeSendEnabled; 6713 var notice_disabled_class = notice_send_enabled ? '' : ' shopgrade-notice-disabled'; 6714 var notice_checked_attr = notice_send_enabled ? ' checked' : ''; 6715 var notice_disabled_attr = notice_send_enabled ? '' : ' disabled'; 6716 6717 // ì¼íë±ê¸ select 6718 var shopgrade_btn = 6719 '<select id="shopgrade-select" class="form-control shopgrade-select member-native-select" disabled>' + 6720 ' <option value="">ë¡ë© ì¤â¦</option>' + 6721 '</select>'; 6722 6723 var modal_content = '\ 6724 <div class="mng-modal-body sg-modal">\ 6725 <table class="grade-create-table">\ 6726 <tr>\ 6727 <td class="form-title form-title-chagne">ëìíì</td>\ 6728 <td>\ 6729 <div class="form-inline2">\ 6730 <p class="shopgrade-name">'+ selected_str +'</p>\ 6731 </div>\ 6732 </td>\ 6733 </tr>\ 6734 <tr><td colspan="2"> </td></tr>\ 6735 <tr>\ 6736 <td class="form-title form-title-chagne">ë±ê¸</td>\ 6737 <td>\ 6738 <div class="form-inline2">\ 6739 ' + shopgrade_btn + '\ 6740 </div>\ 6741 </td>\ 6742 </tr>\ 6743 </table>\ 6744 <label class="shopgrade-notice-row' + notice_disabled_class + '">\ 6745 <span class="newcheckbox hand shopgrade-notice-check"><span class="newcheckboxSvg"><input type="checkbox" id="shopgrade-notice-send" class="shopgrade-notice-checkbox"' + notice_checked_attr + notice_disabled_attr + '><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M13 0H3C1.3 0 0 1.3 0 3v10c0 1.7 1.3 3 3 3h10c1.7 0 3-1.3 3-3V3C16 1.3 14.7 0 13 0zM15 13c0 1.1-0.9 2-2 2H3c-1.1 0-2-0.9-2-2V3c0-1.1 0.9-2 2-2h10c1.1 0 2 0.9 2 2V13z"/></svg><svg class="active" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0zM13.03 6.03l-5.5 5.5C7.38 11.68 7.19 11.75 7 11.75s-0.38-0.07-0.53-0.22l-3.5-3.5c-0.29-0.29-0.29-0.77 0-1.06s0.77-0.29 1.06 0L7 9.94l4.97-4.97c0.29-0.29 0.77-0.29 1.06 0S13.32 5.74 13.03 6.03z"/></svg><svg class="disabled" preserveAspectRatio="none" overflow="visible" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 0H3C1.34 0 0 1.34 0 3V13C0 14.66 1.34 16 3 16H13C14.66 16 16 14.66 16 13V3C16 1.34 14.66 0 13 0ZM13.03 6.03L7.53 11.53C7.38 11.68 7.19 11.75 7 11.75C6.81 11.75 6.62 11.68 6.47 11.53L2.97 8.03C2.68 7.74 2.68 7.26 2.97 6.97C3.26 6.68 3.74 6.68 4.03 6.97L7 9.94L11.97 4.97C12.26 4.68 12.74 4.68 13.03 4.97C13.32 5.26 13.32 5.74 13.03 6.03Z" fill="#D9D9D9"/><rect x="2" y="2" width="12" height="12" fill="#D9D9D9"/></svg></span></span>\ 6746 <span class="shopgrade-notice-text">\ 6747 <span class="shopgrade-notice-title-row"><span class="shopgrade-notice-title">íììê² ë±ê¸ ë³ê²½ ì림 ë°ì¡</span><span class="config-tooltip shopgrade-notice-tooltip-wrap"><svg class="sg-grade-use shopgrade-notice-tooltip" viewBox="0 0 13 13" width="13" height="13" tabindex="0" data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="• íììê² ì´ë©ì¼, ì림í¡ì¼ë¡ ë°ì¡í©ëë¤. ë ë¤ ëìë³´ëìì ì림 ì¬ì©ì ê°ë³ í´ì í ì ììµëë¤.<br><br>• ì림í¡: ëìë³´ë > ì림 > ì¹´ì¹´ì¤ ìë¦¼í¡ ì¤ì >
6747 ì¼íë±ê¸ ë³ê²½ ì림ì ì¼ì£¼ì¸ì.<br><br>• ë©ì¼: ëìë³´ë > ì림 > ì림 ë©ì¼ ì¤ì > ì¼í ë±ê¸ ë³ê²½ ì림ì ì¼ì£¼ì¸ì."><path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/><rect x="6" y="9" width="1" height="1"/><path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/></svg></span></span>\ 6748 <span class="shopgrade-notice-desc">íììê² ì´ë©ì¼, ì림í¡ì¼ë¡ ìë´ë¥¼ ë°ì¡í©ëë¤.</span>\ 6749 </span>\ 6750 </label>\ 6751 </div>\ 6752 '; 6753 6754 var shopgrade_modal = $(this).showModalFlat('ì¼í ë±ê¸ ë³ê²½', modal_content, true, true, function () { 6755 var uids = check_data.ids; 6756 var grade_id = shopgrade_modal.find('#shopgrade-select').val(); 6757 var send_notice = (notice_send_enabled && shopgrade_modal.find('#shopgrade-notice-send').is(':checked')) ? 'Y' : 'N'; 6758 // console.log('uids: ', uids); 6759 if (!grade_id) { 6760 alert('ì¼íë±ê¸ì ì í í´ ì£¼ì¸ì'); 6761 return false; 6762 } 6763 6764 if (!confirm('ì íí íìì ì¼íë±ê¸ì ë³ê²½íìê² ìµëê¹?')) return false; 6765 6766 if (!uids) { 6767 window.location.reload(); 6768 return false; 6769 } 6770 6771 $.ajax({ 6772 type: 'POST', 6773 url: '/shop_grade/check_update', 6774 data: { sid: SID, uids: uids, grade_id: grade_id, send_notice: send_notice }, 6775 dataType: 'json', 6776 async: true, 6777 success: function (data) { 6778 if (typeof data.error !== 'undefined' && data.error) { 6779 if (shopgrade_modal.find('.error').length === 0) 6780 shopgrade_modal.find('.sg-modal').append('<span class="error">' + data.error + '</span>'); 6781 else 6782 shopgrade_modal.find('.sg-modal .error').text(data.error); 6783 return false; 6784 } else { 6785 shopgrade_modal.modal('hide'); 6786 } 6787 location.reload(true); 6788 }, 6789 6790 }); 6791 }, 'cancel', '', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cover shopgrade-change-modal', true); 6792 shopgrade_modal.find('.shopgrade-notice-tooltip').tooltip({ 6793 container: 'body', 6794 template: '<div class="tooltip shopgrade-notice-tooltip-popover" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' 6795 }); 6796 shopgrade_modal.find('.shopgrade-notice-tooltip').on('click', function(e) { 6797 e.preventDefault(); 6798 e.stopPropagation(); 6799 }); 6800 6801 setTimeout(function () { 6802 var $sel = shopgrade_modal.find('#shopgrade-select'); 6803 $.ajax({ 6804 type: 'POST', 6805 url: '/shop_grade/get_list', 6806 data: { sid: SID }, 6807 dataType: 'json', 6808 success: function (data) { 6809 if (data && data.success && $.isArray(data.list) && data.list.length) { 6810 var opts = '<option value="">ë±ê¸ ì í</option>'; 6811 $.each(data.list, function (_, g) { 6812 var id = (g.grade_id != null) ? g.grade_id : (g.id != null ? g.id : g.seq); 6813 var name = g.grade_name || g.name || g.title || ('ë±ê¸ ' + id); 6814 if (id != null) opts += '<option value="' + id + '">' + name + '</option>'; 6815 }); 6816 $sel.html(opts).prop('disabled', false); // disabled í´ì 6817 renderShopgradeChangeSelect(shopgrade_modal); 6818 } else { 6819 $sel.html('<option value="">ë±ê¸ ìì</option>').prop('disabled', false); 6820 renderShopgradeChangeSelect(shopgrade_modal); 6821 } 6822 }, 6823 error: function () { 6824 $sel.html('<option value="">ë¡ë ì¤í¨</option>').prop('disabled', false); 6825 renderShopgradeChangeSelect(shopgrade_modal); 6826 } 6827 }); 6828 }, 0); 6829 6830 }); 6831 6832 6833 6834 6835 /* ì¼íë±ê¸ ì¤ì shopgrade start */ 6836 $('.shopGrade').on('click', function () { 6837 if(typeof canConfigureShopgrade != 'undefined' && !canConfigureShopgrade) return false; 6838 let currentShopgradeAutoPolicyCycleType = '2'; 6839 let currentShopgradeAutoPolicyEnabled = (typeof shopgradeAutoPolicyEnabled != 'undefined') ? !!shopgradeAutoPolicyEnabled : false; 6840 6841 $.ajax({ 6842 url: '/shop_grade/get_list', 6843 type: 'post', 6844 data: { sid : SID }, 6845 dataType: 'json', 6846 success: function (data) { 6847 if (data.success) { 6848 group_list = data.list; 6849 openShoppingGradeModal.call($('.shopGrade')); 6850 6851 // policy 6852 $.ajax({ 6853 url: '/shop_grade/get_policy', 6854 type: 'post', 6855 data: { sid: SID }, 6856 dataType: 'json', 6857 success: function (res) { 6858 const policy = res.success && res.policy ? res.policy : null; 6859 const html = renderPolicyBox( 6860 policy?.cycle_type, 6861 policy?.accumulate_month 6862 );
6863 currentShopgradeAutoPolicyEnabled = !!(policy && policy.cycle_type); 6864 shopgradeAutoPolicyEnabled = currentShopgradeAutoPolicyEnabled; 6865 currentShopgradeAutoPolicyCycleType = policy?.cycle_type ? String(policy.cycle_type) : '2'; 6866 $('.policy-box').html(html); 6867 $('.policy-area').toggleClass('policy-empty-area', !policy || !policy.cycle_type); 6868 } 6869 }); 6870 6871 } else { 6872 alert('ë±ê¸ 목ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤.'); 6873 } 6874 }, 6875 error: function () { 6876 alert('ìë² ì¤ë¥ë¡ ë±ê¸ 목ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤.'); 6877 } 6878 }); 6879 6880 function escapeShopgradeText(value) { 6881 return $('<div/>').text(value || '').html(); 6882 } 6883 6884 function renderGroupList(groups) { 6885 let html = ''; 6886 groups.forEach(g => { 6887 const gradeName = g.grade_name || ''; 6888 const sgSeq = g.seq; 6889 const isDefaultGrade = String(g.grade_seq) === '0'; 6890 const autoIcon = g.use_auto == 1 ? '<span class="grade_auto-badge">ìë ë±ê¸</span>' : ''; 6891 const defaultIcon = isDefaultGrade ? '<span class="grade-default-badge">기본 ë±ê¸</span>' : ''; 6892 const editIcon = ` 6893 <button class="edit-group-btn" data-group="${sgSeq}" title="ìì "> 6894 <svg class="shopgrade-edit-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" preserveAspectRatio="none" fill="none"><path d="M16.1267 4.27269C17.1208 3.27858 18.7332 3.27858 19.7273 4.27269C20.7214 5.26681 20.7214 6.87917 19.7273 7.87328L8.9275 18.6731L3.52711 20.4729L5.32691 15.0725L16.1267 4.27269ZM6.41969 15.7463L5.5027 18.4963L8.2527 17.5793L16.8181 9.01391L14.9851 7.1809L6.41969 15.7463ZM18.8435 5.15648C18.3376 4.65053 17.5165 4.65053 17.0105 5.15648L15.8699 6.29711L17.7029 8.13012L18.8435 6.98949C19.3495 6.48353 19.3495 5.66244 18.8435 5.15648Z" fill="#8E9095"/></svg> 6895 <span class="shopgrade-action-text">ë±ê¸ ìì </span> 6896 </button>`; 6897 const trashIcon = g.grade_seq != 0 ? `<button class="delete-group-btn" data-gradename="${gradeName}" data-sgseq="${sgSeq}" title="ìì "><svg class="shopgrade-delete-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" preserveAspectRatio="none" fill="none"><path d="M20 7.1875H17V4.1875H7V7.1875H4V8.4375H5.749V17.1875C5.75006 17.8834 6.02696 18.5504 6.51901 19.0425C7.01107 19.5345 7.67813 19.8114 8.374 19.8125H15.688C16.3839 19.8114 17.0509 19.5345 17.543 19.0425C18.035 18.5504 18.3119 17.8834 18.313 17.1875V8.4375H20V7.1875ZM8.25 5.4375H15.75V7.1875H8.25V5.4375ZM17.063 17.1875C17.0625 17.552 16.9174 17.9014 16.6597 18.1592C16.4019 18.4169 16.0525 18.562 15.688 18.5625H8.374C8.00966 18.5617 7.66049 18.4166 7.40296 18.1588C7.14543 17.9011 7.00053 17.5518 7 17.1875V8.4375H17.063V17.1875ZM9.375 10.8125H10.625V15.8125H9.375V10.8125ZM13.375 10.8125H14.625V15.8125H13.375V10.8125Z" fill="#8E9095"/></svg><span class="shopgrade-action-text">ìì </span></button>` : ''; 6898 6899 let gradeDesc = '<ul class="grade-desc-list">'; 6900 let hasGradeDesc = false; 6901 6902 // ê¸°ì¤ 6903 if (isDefaultGrade) { 6904 gradeDesc += ` 6905 <li class="grade-desc-item"> 6906 <strong class="grade-desc-title">기ì¤</strong> 6907 <span class="grade-desc-content">ê°ì ì ì ì©</span> 6908 </li>`; 6909 hasGradeDesc = true; 6910 } else if (g.use_auto == 1) { 6911 gradeDesc += ` 6912 <li class="grade-desc-item"> 6913 <strong class="grade-desc-title">기ì¤</strong> 6914 <span class="grade-desc-content">${Number(g.use_auto_amount_min || 0).toLocaleString()}ì ì´ì ${Number(g.use_auto_amount_max || 0).toLocaleString()}ì ë¯¸ë§ êµ¬ë§¤</span> 6915 </li>`; 6916 hasGradeDesc = true; 6917 } 6918 6919 // íí 6920 if (g.discount_use == 1 || g.reserve_use == 1) { 6921 let discountPart = ''; 6922 let reservePart = ''; 6923 6924 if (g.discount_use == 1) { 6925 const discountUnit = g.discount_type == '1' ? 'ì' : '%'; 6926 const discountMaxPart = g.discount_type == '0' ? ` (ìµë ${Number(g.discount_max || 0).toLocaleString()}ì)` : ''; 6927 discountPart = `${Number(g.discount_amount || 0).toLocaleString()}ì ì´ì 구매 ì ${Number(g.discount_value || 0).toLocaleStr
6927ing()}${discountUnit} í ì¸${discountMaxPart}`; 6928 } 6929 if (g.reserve_use == 1) { 6930 const reserveUnit = g.reserve_type == '1' ? 'ì' : '%'; 6931 const reserveMaxPart = g.reserve_type == '0' ? ` (ìµë ${Number(g.reserve_max || 0).toLocaleString()}ì)` : ''; 6932 reservePart = `${Number(g.reserve_amount || 0).toLocaleString()}ì ì´ì 구매 ì ${Number(g.reserve_value || 0).toLocaleString()}${reserveUnit} ì 립${reserveMaxPart}`; 6933 } 6934 let benefitHtml = ''; 6935 if (discountPart) benefitHtml += `<span class="benefit-line">${discountPart}</span>`; 6936 if (reservePart) benefitHtml += `<span class="benefit-line ${discountPart ? 'indent' : ''}">${reservePart}</span>`; 6937 6938 gradeDesc += ` 6939 <li class="grade-desc-item"> 6940 <strong class="grade-desc-title">íí</strong> 6941 ${benefitHtml} 6942 </li>`; 6943 hasGradeDesc = true; 6944 } 6945 6946 // ë°°ì¡ë¹ 6947 if (g.delivery_benefit == 1) { 6948 gradeDesc += ` 6949 <li class="grade-desc-item"> 6950 <strong class="grade-desc-title">ë°°ì¡ë¹</strong> 6951 <span class="grade-desc-content">ë°°ì¡ë¹ 무ë£</span> 6952 </li>`; 6953 hasGradeDesc = true; 6954 } 6955 6956 if (!hasGradeDesc) { 6957 gradeDesc += ` 6958 <li class="grade-desc-item grade-desc-empty"> 6959 <strong class="grade-desc-title"></strong> 6960 <span class="grade-desc-content grade-desc-empty-text">ë´ì© ìì</span> 6961 </li>`; 6962 } 6963 6964 gradeDesc += '</ul>'; 6965 6966 html += ` 6967 <div class="grade-block" data-seq="${sgSeq}" ${g.grade_seq == 0 ? 'data-fixed="true"' : ''}> 6968 <div class="grade-line"> 6969 <span class="drag-handle">${isDefaultGrade ? '' : '<svg class="shopgrade-drag-icon" preserveAspectRatio="none" overflow="visible" width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><g><path d="M13 8C13 8.29667 12.912 8.58668 12.7472 8.83336C12.5824 9.08003 12.3481 9.27229 12.074 9.38582C11.7999 9.49935 11.4984 9.52906 11.2074 9.47118C10.9164 9.4133 10.6491 9.27044 10.4393 9.06066C10.2296 8.85088 10.0867 8.58361 10.0288 8.29264C9.97093 8.00166 10.0006 7.70006 10.1141 7.42597C10.2277 7.15189 10.42 6.91762 10.6666 6.7528C10.9133 6.58797 11.2033 6.5 11.5 6.5C11.8978 6.5 12.2794 6.65804 12.5607 6.93934C12.842 7.22064 13 7.60218 13 8ZM16.5 9.5C16.7967 9.5 17.0867 9.41203 17.3334 9.2472C17.58 9.08238 17.7723 8.84811 17.8859 8.57403C17.9994 8.29994 18.0291 7.99834 17.9712 7.70736C17.9133 7.41639 17.7704 7.14912 17.5607 6.93934C17.3509 6.72956 17.0836 6.5867 16.7926 6.52882C16.5016 6.47094 16.2001 6.50065 15.926 6.61418C15.6519 6.72771 15.4176 6.91997 15.2528 7.16664C15.088 7.41332 15 7.70333 15 8C15 8.39782 15.158 8.77936 15.4393 9.06066C15.7206 9.34196 16.1022 9.5 16.5 9.5ZM11.5 12.5C11.2033 12.5 10.9133 12.588 10.6666 12.7528C10.42 12.9176 10.2277 13.1519 10.1141 13.426C10.0006 13.7001 9.97093 14.0017 10.0288 14.2926C10.0867 14.5836 10.2296 14.8509 10.4393 15.0607C10.6491 15.2704 10.9164 15.4133 11.2074 15.4712C11.4984 15.5291 11.7999 15.4994 12.074 15.3858C12.3481 15.2723 12.5824 15.08 12.7472 14.8334C12.912 14.5867 13 14.2967 13 14C13 13.6022 12.842 13.2206 12.5607 12.9393C12.2794 12.658 11.8978 12.5 11.5 12.5ZM16.5 12.5C16.2033 12.5 15.9133 12.588 15.6666 12.7528C15.42 12.9176 15.2277 13.1519 15.1141 13.426C15.0006 13.7001 14.9709 14.0017 15.0288 14.2926C15.0867 14.5836 15.2296 14.8509 15.4393 15.0607C15.6491 15.2704 15.9164 15.4133 16.2074 15.4712C16.4984 15.5291 16.7999 15.4994 17.074 15.3858C17.3481 15.2723 17.5824 15.08 17.7472 14.8334C17.912 14.5867 18 14.2967 18 14C18 13.6022 17.842 13.2206 17.5607 12.9393C17.2794 12.658 16.8978 12.5 16.5 12.5ZM11.5 18.5C11.2033 18.5 10.9133 18.588 10.6666 18.7528C10.42 18.9176 10.2277 19.1519 10.1141 19.426C10.0006 19.7001 9.97093 20.0017 10.0288 20.2926C10.0867 20.5836 10.2296 20.8509 10.4393 21.0607C10.6491 21.2704 10.9164 21.4133 11.2074 21.4712C11.4984 21.5291 11.7999 21.4994 12.074 21.3858C12.3481 21.2723 12.5824 21.08 12.7472 20.8334C12.912 20.5867 13 20.2967 13 20C13 19.6022 12.842 19.2206 12.5607 18.9393C12.2794 18.658 11.8978 18.5 11.5 18.5ZM16.5 18.5C16.2033 18.5 15.9133 18.588 15.6666 18.7528C15.42 18.9176 15.2277 19.1519
696915.1141 19.426C15.0006 19.7001 14.9709 20.0017 15.0288 20.2926C15.0867 20.5836 15.2296 20.8509 15.4393 21.0607C15.6491 21.2704 15.9164 21.4133 16.2074 21.4712C16.4984 21.5291 16.7999 21.4994 17.074 21.3858C17.3481 21.2723 17.5824 21.08 17.7472 20.8334C17.912 20.5867 18 20.2967 18 20C18 19.6022 17.842 19.2206 17.5607 18.9393C17.2794 18.658 16.8978 18.5 16.5 18.5Z" fill="#B1B3B7"/></g></svg>'}</span> 6970 <span class="grade-name">${gradeName}${defaultIcon}<span class="auto-icon">${isDefaultGrade ? '' : autoIcon}</span></span> 6971 </div> 6972 <div class="grade-desc">${gradeDesc}</div> 6973 <div class="grade-actions">${isDefaultGrade ? editIcon : editIcon + trashIcon}</div> 6974 </div> 6975 `; 6976 }); 6977 return html; 6978 } 6979 6980 function renderPolicyBox(cycle_type, accumulate_month) { 6981 if (!cycle_type) { 6982 return ` 6983 <div class="policy-empty-state"> 6984 <div class="policy-empty-title" style="font-size:15px !important;font-weight:600 !important;line-height:22.5px !important;">ì¤ì ë ì ì± ì´ ììµëë¤.</div> 6985 <div class="policy-empty-desc">ë±ê¸ì 구매 ê¸ì¡ 기ì¤ì¼ë¡ ìë ì¡°ì íë ¤ë©´ ì ì± ì ì¤ì í´ì£¼ì¸ì.</div> 6986 <button class="auto-adjust-setting policy-empty-setting"> 6987 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" style="width:20px !important;height:20px !important;flex:0 0 20px !important;margin:0 !important;display:block !important;"> 6988 <path d="M16.93 6c-.29-.51-.64-.98-1.03-1.41l-1.7.39c-.58-.49-1.24-.87-1.95-1.12l-.51-1.66a8.1 8.1 0 0 0-3.47 0l-.51 1.66c-.71.26-1.37.64-1.95 1.13L4.12 4.6c-.39.43-.74.9-1.03 1.41s-.53 1.04-.7 1.6l1.18 1.28a6.5 6.5 0 0 0 0 2.25l-1.18 1.27c.35 1.12.95 2.14 1.74 3.01l1.7-.39c.58.48 1.24.87 1.95 1.12l.51 1.66c1.14.25 2.33.25 3.47 0l.51-1.66c.71-.26 1.37-.64 1.95-1.13l1.69.39c.79-.87 1.38-1.89 1.74-3.01l-1.18-1.28c.13-.75.13-1.51 0-2.25l1.18-1.27c-.18-.56-.41-1.09-.7-1.6M10 15.05c-2.79 0-5.05-2.26-5.05-5.05S7.21 4.95 10 4.95s5.05 2.26 5.05 5.05-2.26 5.05-5.05 5.05"/> 6989 </svg><span class="shopgrade-action-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ì ì± ì¤ì í기</span> 6990 </button> 6991 </div> 6992 `; 6993 } else{ 6994 const cycleText = cycle_type === '2' 6995 ? '<span style="color:#222428 !important;">ì ë¨ì (매ì 1ì¼ ê°±ì )</span>' 6996 : '주 ë¨ì (매주 ììì¼ ê°±ì )'; 6997 const accText = cycle_type === '2' 6998 ? `<span style="color:#222428 !important;">ìµê·¼ ${accumulate_month}ê°ìê°ì ì´ êµ¬ë§¤ ê¸ì¡</span>` 6999 : 'ìµê·¼ 1주ì¼ê°ì ì´ êµ¬ë§¤ ê¸ì¡'; 7000 7001 return ` 7002 <div class="policy-row"> 7003 <div class="policy-label">ìë ë³ê²½ 주기</div> 7004 <div class="policy-value">${cycleText}</div> 7005 </div> 7006 <div class="policy-row"> 7007 <div class="policy-label">ëì 기ê°</div> 7008 <div class="policy-value">${accText}</div> 7009 </div> 7010 `; 7011 } 7012 } 7013 7014 function openShoppingGradeModal() { 7015 $('#modalAutopolicy').remove(); 7016 const shopgradeSettingTooltipBullet = '<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\' width=\'4\' height=\'4\'><circle cx=\'2\' cy=\'2\' r=\'2\'/></svg>'; 7017 const shopgradeSettingTooltipContent = '<div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸ íìë¤ì ë±ê¸ì ì§ì í´ë³´ì¸ì.</div><div>' + shopgradeSettingTooltipBullet + 'íìê°ì ì 모ë íìì 기본ë±ê¸ì¼ë¡ ì§ì ë©ëë¤.</div><div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸/ë¸ëë ì´ìì ë§ê² ë±ê¸ ìë ì¡°ì ì´ íìíë¤ë©´ ì¤ì í´ ë³´ì¸ì.</div><div>' + shopgradeSettingTooltipBullet + 'ìì±í ë±ê¸ì ìì ì, í´ë¹ ë±ê¸ì ìì ëê³ ê¸°ë³¸ë±ê¸ì¼ë¡ ë³ê²½ë©ëë¤.</div>'; 7018 const shopgradeAutoTooltipContent = '<div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸ íìë¤ì ë±ê¸ì 주기ì ë§ì¶° ìëì¼ë¡ ë³ê²½í©ëë¤.</div><div>' + shopgradeSettingTooltipBullet + 'ìë ì¡°ì ì ì¬ì©íì§ ìë ë±ê¸ì íìì ìí¥ë°ì§ ììµëë¤.</div>'; 7019 7020 const setGroup_modal = ` 7021 <div class="shopping-grade-modal">
7022 <a class="shopgrade-use-guide-link" href="https://supportcenter.creatorlink.net/creatorlink/management/ecommerce/additional-function/membership" target="_blank" rel="noopener noreferrer">ì¼í ë±ê¸ ì´ì© ê°ì´ë <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="12" height="12"><path d="M.88 2.12v11h11v-5h-1.25v3.75H2.12V3.38h3.75V2.13H.88Zm7-1.24v1.25H11L5.44 7.69l.88.88 5.56-5.56v3.12h1.25V.88z"></path></svg></a> 7023 <div class="grade-grid"> 7024 <div class="grade-grid-left"> 7025 <div class="grade-label">ë±ê¸ ì¤ì 7026 <span class="config-tooltip"> 7027 <svg class="sg-grade-use contents-align shopgrade-setting-info-popover shopgrade-setting-tooltip" viewBox="0 0 13 13" width="13" height="13" tabindex="0" data-trigger="hover" data-toggle="popover" data-placement="right" data-html="true" data-content="${shopgradeSettingTooltipContent}" data-original-title="" title=""><path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/><rect x="6" y="9" width="1" height="1"/><path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 7028 </svg> 7029 </span> 7030 </div> 7031 </div> 7032 <div class="grade-grid-right"> 7033 <div class="grade-list-wrap">${renderGroupList(group_list)}</div> 7034 <div class="grade-header"> 7035 <button class="create-group-btn"> 7036 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="none" preserveAspectRatio="none" overflow="visible" style="width:20px !important;height:20px !important;flex:0 0 20px !important;margin:0 !important;display:block !important;"><path d="M9.375 2.5V9.375H2.5V10.625H9.375V17.5H10.625V10.625H17.5V9.375H10.625V2.5H9.375Z" fill="#4789E7"></path></svg> 7037 <span class="shopgrade-add-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ë±ê¸ ì¶ê°</span> 7038 </button> 7039 </div> 7040 </div> 7041 </div> 7042 <div class="grade-grid"> 7043 <div class="grade-grid-left"> 7044 <div class="grade-label">ë±ê¸ ìë ì¡°ì 7045 <span class="config-tooltip"> 7046 <svg class="sg-grade-use contents-align shopgrade-setting-info-popover shopgrade-auto-tooltip" viewBox="0 0 13 13" width="13" height="13" tabindex="0" data-trigger="hover" data-toggle="popover" data-placement="right" data-html="true" data-content="${shopgradeAutoTooltipContent}" data-original-title="" title=""><path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/><rect x="6" y="9" width="1" height="1"/><path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 7047 </svg> 7048 </span> 7049 </div> 7050 </div> 7051 <div class="grade-grid-right"> 7052 <a class="shopgrade-notice-setting-link" href="/notificationtalkmail">ì¼í ë±ê¸ ë³ê²½ ì림 ì¤ì í기 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="12" height="12"><path d="M.88 2.12v11h11v-5h-1.25v3.75H2.12V3.38h3.75V2.13H.88Zm7-1.24v1.25H11L5.44 7.69l.88.88 5.56-5.56v3.12h1.25V.88z"></path></svg></a> 7053 <div class="policy-area"> 7054 <div class="gradeauto-line" style="font-size:15px !important;font-weight:600 !important;">ì ì± </div> 7055 <div class="policy-box"></div> 7056 <div class="grade-header policy-setting-footer"> 7057 <button class="auto-adjust-setting"> 7058 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" style="width:20px !important;height:20px !important;flex:0 0 20px !important;margin:0 !important;display:block !important;"> 7059 <path d="M16.93 6c-.29-.51-.64-.98-1.03-1.41l-1.7.39c-.58-.49-1.24-.87-1.95-1.12l-.51-1.66a8.1 8.1 0 0 0-3.47 0l-.51 1.66c-.71.26-1.37.64-1.95 1.13L4.12 4.6c-.39.43-.74.9-1.03 1.41s-.53 1.04-.7 1.6l1.18 1.28a6.5 6.5 0 0 0 0 2.25l-1.18 1.27c.35 1.12.95 2.14 1.74 3.01l1.7-.39c.58.48 1.24.87 1.95 1.12l.51 1.66c1.14.25 2.33.25 3.47 0l.51-1.66c.71-.26 1.37-.64 1.95-1.13l1.69.39c.79-.87 1.38-1.89 1.74-3.01l-1.18-1.28c.13-.75.13
7059-1.51 0-2.25l1.18-1.27c-.18-.56-.41-1.09-.7-1.6M10 15.05c-2.79 0-5.05-2.26-5.05-5.05S7.21 4.95 10 4.95s5.05 2.26 5.05 5.05-2.26 5.05-5.05 5.05"/> 7060 </svg><span class="shopgrade-action-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ì¤ì í기</span> 7061 </button> 7062 </div> 7063 </div> 7064 </div> 7065 </div> 7066 </div> 7067 7068 `; 7069 7070 modal = $(this).showModalFlat( 7071 'ì¼í ë±ê¸ ì¤ì ', 7072 setGroup_modal, 7073 true, 7074 true, 7075 function () { // íì¸ ë²í¼ ì½ë°± 7076 if (hasShopgradeAutoCriteriaGap()) { 7077 showShopgradeCriteriaGapNotice(); 7078 return; 7079 } 7080 window.location.reload(); 7081 }, 7082 'ë«ê¸°', 7083 'ë«ê¸°', 7084 'cl-cmmodal cl-s-btn cl-p130 cl-p0 cover shopgrade-setting-modal', 7085 true, 7086 function () { // ë«ê¸° ë²í¼ ì½ë°± 7087 window.location.reload(); 7088 } 7089 ); 7090 modal.find('.modal-footer .close-button-dialog').remove(); 7091 modal.find('.modal-footer .ok-button-dialog') 7092 .removeClass('btn-primary ok-button-dialog') 7093 .addClass('btn-default close-button-dialog shopgrade-setting-close-action'); 7094 modal.find('.shopgrade-setting-info-popover').popover({ 7095 html: true, 7096 trigger: 'hover', 7097 placement: 'right' 7098 }); 7099 7100 // esc ë°©ì§ mspark 7101 $(document).on('keydown.disableEsc', function (e) { 7102 if (e.key === "Escape" || e.keyCode === 27) { 7103 e.preventDefault(); 7104 e.stopPropagation(); 7105 return false; 7106 } 7107 }); 7108 7109 bindEditEvents(modal); 7110 7111 setTimeout(() => { 7112 bindDragAndDrop(); // <== ëëê·¸ì¤ëë¡ íì±í 7113 }, 100); 7114 7115 } 7116 7117 function getShopgradeAutoCriteriaIntervals() { 7118 const intervals = []; 7119 $.each(group_list || [], function (_, grade) { 7120 if (!grade || String(grade.use_auto) !== '1') return true; 7121 if (String(grade.grade_seq) === '0') return true; 7122 7123 const min = Number(String(grade.use_auto_amount_min || '').replace(/,/g, '')); 7124 const max = Number(String(grade.use_auto_amount_max || '').replace(/,/g, '')); 7125 if (!isFinite(min) || !isFinite(max) || min >= max) return true; 7126 7127 intervals.push({ min: min, max: max }); 7128 }); 7129 7130 intervals.sort(function (a, b) { 7131 if (a.min === b.min) return a.max - b.max; 7132 return a.min - b.min; 7133 }); 7134 7135 return intervals; 7136 } 7137 7138 function hasShopgradeAutoCriteriaGap() { 7139 const intervals = getShopgradeAutoCriteriaIntervals(); 7140 if (intervals.length < 2) return false; 7141 7142 let coveredMax = intervals[0].max; 7143 for (let i = 1; i < intervals.length; i++) { 7144 if (coveredMax < intervals[i].min) return true; 7145 coveredMax = Math.max(coveredMax, intervals[i].max); 7146 } 7147 7148 return false; 7149 } 7150 7151 function getDefaultShopgradeName() { 7152 let defaultName = 'ì¨ìë±ê¸'; 7153 $.each(group_list || [], function (_, grade) { 7154 if (grade && String(grade.grade_seq) === '0' && grade.grade_name) { 7155 defaultName = grade.grade_name; 7156 return false; 7157 } 7158 }); 7159 return defaultName; 7160 } 7161 7162 function showShopgradeCriteriaGapNotice() { 7163 const defaultGradeName = escapeShopgradeText(getDefaultShopgradeName()); 7164 const html = ` 7165 <div class="delete-grade-modal"> 7166 <div class="delete-grade-message"> 7167 ë±ê¸ ê¸°ì¤ ì¬ì´ì ì ì©ëì§ ìë 구매ê¸ì¡ 구ê°ì´ ììµëë¤.<br> 7168 ì¼ë¶ íìì 기ì¤ì ë§ë ë±ê¸ì´ ììµëë¤.<br> 7169 í´ë¹ íìì 기본 ë±ê¸(${defaultGradeName})ì¼ë¡ ì ì©ë©ëë¤. 7170 </div> 7171 </div> 7172 `; 7173 7174 const noticeModal = $(window).showModalFlat( 7175 'ìë´', 7176 html, 7177 true, 7178 false, 7179 '', 7180 'ok', 7181 '', 7182 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal shopgrade-gap-notice-modal', 7183 true, 7184 function () { 7185 $('.modal-overlay-blocker').remove(); 7186 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 7187 } 7188 ); 7189 7190 setTimeout(() => { 7191 $('.modal-dialog.cl-cmmodal') 7192 .not(':last') 7193 .addClass('shopgrade-auto-policy-covered') 7194 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 7195 }, 10); 7196 7197 return noticeModal; 7198 } 7199 7200 function bindDragAndDrop() { 7201 $('.grade-list-wrap').sortable({ 7202 handle: '.drag-handle', 7203 items: '.grade-block:not([data-fixed="true"])', // grade_seq=0 ì ì ì¸ 7204 placeholder: 'grade-placeholder', 7205 axis: 'y', 7206 update: function () { 7207 const order = []; 7208 $('.grade-list-wrap .grade-block').each((idx, el) => { 7209 const $el = $(el); 7210 const seq = $el.data('seq'); 7211 const fixed = $el.data('fixed'); 7212 7213 if (!fixed) { 7214 order.push({ seq: seq, grade_seq: idx}); 7215 } 7216 }); 7217 7218 // ìë²ì ì ë°ì´í¸ ìì² 7219 $.ajax({ 7220 url: '/shop_grade/update_gradeseq', 7221 type: 'POST', 7222 data: { 7223 sid: SID, 7224 order: JSON.stringify(order) 7225 }, 7226 success: function (res) { 7227 if (typeof res === 'string') res = JSON.parse(res); 7228 if (res.success) { 7229 console.log('ë±ê¸ ììê° ì ì¥ëììµëë¤.'); 7230 } else { 7231 alert('ìì ì ì¥ ì¤í¨: ' + (res.error || 'ì ì ìì')); 7232 } 7233 }, 7234 error: function () { 7235 alert('ìì ì ì¥ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.'); 7236 } 7237 }); 7238 } 7239 }); 7240 } 7241 7242 function bindEditEvents() { 7243 $(document).off('click', '.edit-group-btn').on('click', '.edit-group-btn', function () { 7244 const sgSeq = $(this).data('group'); 7245 7246 $.ajax({ 7247 type: 'POST', 7248 url: '/shop_grade/get_one', 7249 data: { seq: sgSeq, sid: SID }, 7250 dataType: 'json', 7251 success: function (res) { 7252 if (res.success && res.item) { 7253 openGroupEditModal(res.item); 7254 } else { 7255 alert('ë±ê¸ ì 보를 ë¶ë¬ì¤ì§ 못íìµëë¤.'); 7256 } 7257 }, 7258 error: function () { 7259 alert('ìë² ì¤ë¥ê° ë°ìíìµëë¤.'); 7260 } 7261 }); 7262 }); 7263 } 7264 7265 $(document).off('click', '.auto-adjust-setting').on('click', '.auto-adjust-setting', function () { 7266 $('#modalAutopolicy').remove(); 7267 $.ajax({ 7268 type: 'POST', 7269 url: '/shop_grade/get_policy', 7270 data: { sid: SID }, 7271 dataType: 'json', 7272 success: function (res) { 7273 openAutoAdjustModal(res.policy, function () { 7274 $.ajax({ 7275 type: 'POST', 7276 url: '/shop_grade/get_policy', 7277 data: { sid: SID }, 7278 dataType: 'json', 7279 success: function (res2) { 7280 const policy = res2.success && res2.policy ? res2.policy : null;
7281 const html = renderPolicyBox(policy ? policy.cycle_type : null, policy ? policy.accumulate_month : null); 7282 currentShopgradeAutoPolicyEnabled = !!(policy && policy.cycle_type); 7283 shopgradeAutoPolicyEnabled = currentShopgradeAutoPolicyEnabled; 7284 currentShopgradeAutoPolicyCycleType = policy && policy.cycle_type ? String(policy.cycle_type) : '2'; 7285 $('.modal-content .policy-box').html(html); 7286 $('.modal-content .policy-area').toggleClass('policy-empty-area', !policy || !policy.cycle_type); 7287 } 7288 }); 7289 }); 7290 } 7291 }); 7292 }); 7293 7294 // ë±ê¸ ìëì¡°ì ì¤ì 7295 function openAutoAdjustModal(policy, onSaveCallback) { 7296 const autogradecycle = $.lang[LANG]['manager.list.member.shopgrade.autogradecycle'], 7297 autogradepolicyperiod = $.lang[LANG]['manager.list.member.shopgrade.autogradepolicyperiod']; 7298 const restoreAutoPolicyParentModal = function () { 7299 $('.auto-policy-month-select-floating-menu').remove(); 7300 $('.auto-policy-month-select').removeClass('open has-floating-menu'); 7301 $('.modal-overlay-blocker.shopgrade-auto-policy-backdrop').remove(); 7302 $('.shopgrade-auto-policy-covered .modal-overlay-blocker').remove(); 7303 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 7304 }; 7305 const modalAutopolicy = ` 7306 <form id="auto-adjust-form"> 7307 <input type="hidden" name="base_date"> 7308 <input type="hidden" name="start_date"> 7309 <input type="hidden" name="end_date"> 7310 <div class="mng-modal-body"> 7311 <table class="grade-create-table"> 7312 <tr> 7313 <td class="form-title"><span class="shopgrade-auto-policy-title-label">ìë ë³ê²½ 주기</span><span class="config-tooltip"> 7314 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${autogradecycle}"><path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/><rect x="6" y="9" width="1" height="1"/><path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 7315 </svg> 7316 </span> 7317 </td> 7318 <td> 7319 <div class="form-inline cycle_type"> 7320 <label> 7321 <input type="radio" name="cycle_type" value="1"> 7322 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7323 <path d="M9 0a9 9 0 1 0 .001 18.001A9 9 0 0 0 9 0zm0 17c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path> 7324 </svg> 7325 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7326 <path d="M9 0a9 9 0 1 0 .001 18.001A9 9 0 0 0 9 0zm0 17c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path> 7327 <circle cx="9" cy="9" r="6"></circle> 7328 </svg>주 ë¨ì(매주 ììì¼ ê°±ì ) 7329 </label> 7330 <label> 7331 <input type="radio" name="cycle_type" value="2"> 7332 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7333 <path d="M9 0a9 9 0 1 0 .001 18.001A9 9 0 0 0 9 0zm0 17c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path> 7334 </svg> 7335 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7336 <path d="M9 0a9 9 0 1 0 .001 18.001A9 9 0 0 0 9 0zm0 17c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path> 7337 <circle cx="9" cy="9" r="6"></circle> 7338 </svg>ì ë¨ì(매ì 1ì¼ ê°±ì ) 7339 </label> 7340 </div> 7341 </td> 7342 </tr> 7343 <tr> 7344 <td class="form-title"><span class="shopgrade-auto-policy-title-label">ëì 기ê°</span><span class="config-tooltip"> 7345 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${autogradepolicyperiod}"><path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/><rect x="6" y="9" width="1" height="1"/>
7345<path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 7346 </svg> 7347 </span> 7348 </td> 7349 <td> 7350 <div class="form-inline"> 7351 <select name="accumulate_month" class="grade_select"> 7352 <option value="1">ìµê·¼ 1ê°ì</option> 7353 <option value="2">ìµê·¼ 2ê°ì</option> 7354 <option value="3">ìµê·¼ 3ê°ì</option> 7355 <option value="6">ìµê·¼ 6ê°ì</option> 7356 <option value="12">ìµê·¼ 12ê°ì</option> 7357 <option value="24">ìµê·¼ 24ê°ì</option> 7358 <option value="36">ìµê·¼ 36ê°ì</option> 7359 <option value="48">ìµê·¼ 48ê°ì</option> 7360 <option value="60">ìµê·¼ 60ê°ì</option> 7361 <option value="72">ìµê·¼ 72ê°ì</option> 7362 </select> 7363 ê°ì ì´ êµ¬ë§¤ ê¸ì¡ 7364 </div> 7365 </td> 7366 </tr> 7367 <tr> 7368 <td class="form-title">
7368ë³ê²½ ìì ìì</td> 7369 <td class="policy-preview"></td> 7370 </tr> 7371 </table> 7372 </div> 7373 </form> 7374 `; 7375 7376 const policy_modal = $('<div>').showModalFlat( 7377 'ë±ê¸ ìë ì¡°ì ì¤ì ', 7378 modalAutopolicy, 7379 true, 7380 true, 7381 function () { 7382 const formData = $('#auto-adjust-form').serializeArray(); 7383 const data = { sid: SID }; 7384 formData.forEach(e => data[e.name] = e.value); 7385 7386 $.ajax({ 7387 type: 'POST', 7388 url: '/shop_grade/update_policy', 7389 data: data, 7390 dataType: 'json', 7391 success: function (res) { 7392 if (res.success) { 7393 alert('ì¤ì ì´ ì ì¥ëììµëë¤.'); 7394 policy_modal.modal('hide'); 7395 $('#modalAutopolicy').remove(); 7396 restoreAutoPolicyParentModal(); 7397 7398 if (typeof onSaveCallback === 'function') { 7399 onSaveCallback(); 7400 } 7401 7402 } else { 7403 alert('ì¤ì ì ì¥ ì¤í¨: ' + res.error); 7404 } 7405 }, 7406 error: function () { 7407 alert('ìë² ì¤ë¥ ë°ì'); 7408 } 7409 }); 7410 }, 7411 'ì·¨ì', 7412 'ì ì¥', 7413 'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cover shopgrade-auto-policy-modal', 7414 true, 7415 restoreAutoPolicyParentModal, 7416 null, 7417 restoreAutoPolicyParentModal 7418 ); 7419 policy_modal.addClass('shopgrade-auto-policy-modal-scroll'); 7420 7421 setTimeout(() => { 7422 7423 $('.modal-dialog.cl-cmmodal') 7424 .not(':last') // ê°ì¥ ë§ì§ë§ì ì´ë¦° ëª¨ë¬ ì ì¸ 7425 .addClass('shopgrade-auto-policy-covered') 7426 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 7427 7428 const $form = $('#auto-adjust-form'); 7429 const $cycleType = $form.find('input[name="cycle_type"]'); 7430 const $accumulateSelect = $form.find('select[name="accumulate_month"]'); 7431 7432 if (!policy) { 7433 $cycleType.filter('[value="2"]').prop('checked', true); 7434 $accumulateSelect.val('1'); 7435 } 7436 7437 if (policy) { 7438 $cycleType.filter(`[value="${policy.cycle_type}"]`).prop('checked', true); 7439 $accumulateSelect.val(policy.accumulate_month); 7440 } 7441 7442 function syncAutoPolicyMonthSelect() { 7443 const $custom = $form.find('.auto-policy-month-select'); 7444 if (!$custom.length) return; 7445 7446 const selectedText = $accumulateSelect.find('option:selected').text(); 7447 $custom.find('.auto-policy-month-select-value').text(selectedText); 7448 $custom.find('.auto-policy-month-select-option').removeClass('selected'); 7449 $custom.find(`.auto-policy-month-select-option[data-value="${$accumulateSelect.val()}"]`).addClass('selected'); 7450 $custom.toggleClass('disabled', $accumulateSelect.prop('disabled')); 7451 } 7452 7453 function buildAutoPolicyMonthSelect() { 7454 if ($accumulateSelect.next('.auto-policy-month-select').length) return; 7455 7456 const $custom = $('<div/>', { 'class': 'auto-policy-month-select', tabindex: 0 }); 7457 const $button = $('<button/>', { type: 'button', 'class': 'auto-policy-month-select-btn' }); 7458 const $value = $('<span/>', { 'class': 'auto-policy-month-select-value' }); 7459 const $menu = $('<div/>', { 'class': 'auto-policy-month-select-menu' }); 7460 7461 $accumulateSelect.find('option').each(function () { 7462 const $option = $(this); 7463 $menu.append($('<button/>', { 7464 type: 'button', 7465 'class': 'auto-policy-month-select-option', 7466 'data-value': $option.val(), 7467 text: $option.text() 7468 })); 7469 }); 7470 7471 $button.append($value); 7472 $custom.append($button, $menu); 7473 $accumulateSelect.addClass('auto-policy-native-select').after($custom); 7474 syncAutoPolicyMonthSelect(); 7475 } 7476 7477 function removeAutoPolicyFloatingMonthSelect() { 7478 $('.auto-policy-month-select-floating-menu').remove(); 7479 $('.auto-policy-month-select').removeClass('open has-floating-menu'); 7480 } 7481 7482 function openAutoPolicyFloatingMonthSelect($wrap) { 7483 removeAutoPolicyFloatingMonthSelect(); 7484 7485 const $button = $wrap.find('.auto-policy-month-select-btn'); 7486 const offset = $button.offset(); 7487 const $menu = $wrap.find('.auto-policy-month-select-menu').clone(); 7488 7489 $wrap.addClass('open has-floating-menu'); 7490 $menu 7491 .addClass('auto-policy-month-select-floating-menu') 7492 .css({ 7493 top: offset.top + $button.outerHeight() + 2, 7494 left: offset.left, 7495 width: $button.outerWidth() 7496 }) 7497 .appendTo('body') 7498 .show(); 7499 } 7500 7501 buildAutoPolicyMonthSelect(); 7502 7503 $(document).off('click.autoPolicyMonthSelect').on('click.autoPolicyMonthSelect', function (e) { 7504 if (!$(e.target).closest('.auto-policy-month-select, .auto-policy-month-select-floating-menu').length) { 7505 removeAutoPolicyFloatingMonthSelect(); 7506 } 7507 }); 7508 7509 $form.off('click.autoPolicyMonthSelectBtn', '.auto-policy-month-select-btn').on('click.autoPolicyMonthSelectBtn', '.auto-policy-month-select-btn', function (e) { 7510 e.preventDefault(); 7511 e.stopPropagation(); 7512 const $wrap = $(this).closest('.auto-policy-month-select'); 7513 if ($wrap.hasClass('disabled')) return; 7514 if ($wrap.hasClass('open')) { 7515 removeAutoPolicyFloatingMonthSelect(); 7516 return; 7517 } 7518 openAutoPolicyFloatingMonthSelect($wrap); 7519 }); 7520 7521 $form.off('click.autoPolicyMonthSelectOption', '.auto-policy-month-select-option').on('click.autoPolicyMonthSelectOption', '.auto-policy-month-select-option', function (e) { 7522 e.preventDefault(); 7523 e.stopPropagation(); 7524 const $option = $(this); 7525 $accumulateSelect.val($option.attr('data-value')); 7526 syncAutoPolicyMonthSelect(); 7527 removeAutoPolicyFloatingMonthSelect(); 7528 $accumulateSelect.trigger('change'); 7529 }); 7530 7531 $(document).off('click.autoPolicyMonthSelectFloatingOption').on('click.autoPolicyMonthSelectFloatingOption', '.auto-policy-month-select-floating-menu .auto-policy-month-select-option', function (e) { 7532 e.preventDefault(); 7533 e.stopPropagation(); 7534 const $option = $(this); 7535 $accumulateSelect.val($option.attr('data-value')); 7536 syncAutoPolicyMonthSelect(); 7537 removeAutoPolicyFloatingMonthSelect(); 7538 $accumulateSelect.trigger('change'); 7539 }); 7540 7541 function formatDateLocal(date) { 7542 return date.getFullYear() + '-' + 7543 String(date.getMonth() + 1).padStart(2, '0') + '-' + 7544 String(date.getDate()).padStart(2, '0'); 7545 } 7546 7547 $form.find('input, select').off('change.policyPreview').on('change.policyPreview', function () { 7548 const type = $form.find('input[name="cycle_type"]:checked').val();
7549 const month = parseInt($form.find('select[name="accumulate_month"]').val(), 10); 7550 const today = new Date(); 7551 7552 if (type === '1') { 7553 $form.find('select[name="accumulate_month"]').prop('disabled', true); 7554 } else { 7555 $form.find('select[name="accumulate_month"]').prop('disabled', false); 7556 } 7557 syncAutoPolicyMonthSelect(); 7558 7559 let start, end, baseDate; 7560 7561 if (type === '1') { 7562 const day = today.getDay(); 7563 const diffToMon = ((1 - day + 7) % 7) || 7; 7564 baseDate = new Date(today); 7565 baseDate.setDate(today.getDate() + diffToMon); 7566 start = new Date(baseDate); 7567 start.setDate(start.getDate() - 7); 7568 end = new Date(baseDate); 7569 end.setDate(end.getDate() - 1); 7570 } else { 7571 baseDate = new Date(today.getFullYear(), today.getMonth() + 1, 1); // 기ì¤ì¼: ë¤ìë¬ 1ì¼ 7572 start = new Date(today.getFullYear(), today.getMonth() + 1 - month, 1); // ëì ììì¼ 7573 end = new Date(today.getFullYear(), today.getMonth() + 1, 0); // ëì ì¢ ë£ì¼ (ì´ë²ë¬ ë§ì¼) 7574 } 7575 const baseDateFormatted = formatDateLocal(baseDate); 7576 const startStr = formatDateLocal(start); 7577 const endStr = formatDateLocal(end); 7578 7579 const preview = ` 7580 <div class="grade-changeex shopgrade-auto-policy-preview-text"> 7581 <span class="policy-date-text" style="color:#4789e7 !important;">${baseDateFormatted}</span> ì¼ì <span class="policy-date-text" style="color:#4789e7 !important;">${startStr}</span> ~ <span class="policy-date-text" style="color:#4789e7 !important;">${endStr}</span> ê°ì ì´ ëì 기ì¤ì¼ë¡ ë³ê²½ë©ëë¤. 7582 </div> 7583 `; 7584 7585 $('.policy-preview').html(preview); 7586 $form.find('input[name="base_date"]').val(baseDateFormatted); 7587 $form.find('input[name="start_date"]').val(startStr); 7588 $form.find('input[name="end_date"]').val(endStr); 7589 }); 7590 7591 $form.find('input, select').trigger('change'); 7592 }, 50); 7593 } 7594 7595 // ë±ê¸ ì¶ê° 7596 $(document).off('click', '.create-group-btn').on('click', '.create-group-btn', function () { 7597 openGradeModal('add', {}); 7598 }); 7599 7600 // ë±ê¸ ìì 7601 function openGroupEditModal(data) { 7602 openGradeModal('edit', data); 7603 } 7604 7605 7606 function stripNumberOnly($form) { 7607 $form.find('input[numberOnly]').each(function () { 7608 this.value = normalizeIntegerInputValue(this.value); 7609 }); 7610 } 7611 7612 function normalizeIntegerInputValue(value, max) { 7613 value = (value == null) ? '' : String(value).replace(/,/g, '').trim(); 7614 if (value === '') return ''; 7615 7616 const num = parseFloat(value.replace(/[^0-9.]/g, '')); 7617 if (!isFinite(num)) return ''; 7618 7619 let intValue = Math.floor(num); 7620 if (typeof max !== 'undefined') intValue = Math.min(intValue, max); 7621 return String(intValue); 7622 } 7623 7624 function formatNumberFieldsOnce($form) { 7625 const names = [ 7626 'use_auto_amount_min', 'use_auto_amount_max', 7627 'discount_amount', 'discount_value', 'discount_max', 7628 'reserve_amount', 'reserve_value', 'reserve_max' 7629 ]; 7630 names.forEach((n) => { 7631 const $el = $form.find(`input[name="${n}"]`); 7632 if (!$el.length) return; 7633 let v = $el.val(); 7634 if (v == null || v === '') return; 7635 v = normalizeIntegerInputValue(v); 7636 const withComma = (window.addCommas ? window.addCommas(v) : String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ',')); 7637 $el.val(withComma); 7638 }); 7639 } 7640 7641 function alertShopgradeAutoPolicyRequired() { 7642 alert('ë±ê¸ ìë ì¡°ì ì¤ì ì í´ì£¼ì¸ì.'); 7643 } 7644 7645 function syncShopgradeAutoPolicyToggle($form) { 7646 if (!$form || !$form.length) $form = $('#grade-form').last(); 7647 const $useAuto = $form.find('input[name="use_auto"]'); 7648 if (!$useAuto.length) return; 7649 7650 const disabled = !currentShopgradeAutoPolicyEnabled; 7651 const $switch = $useAuto.closest('.simple-switch'); 7652 $switch.toggleClass('shopgrade-auto-policy-disabled', disabled); 7653 $useAuto.attr('aria-disabled', disabled ? 'true' : 'false'); 7654 7655 if (disabled) { 7656 $useAuto.prop('checked', false); 7657 $form.find('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]') 7658 .prop('required', false) 7659 .prop('disabled', true) 7660 .removeClass('input-error'); 7661 $form.find('.criteria-row').hide(); 7662 $form.find('.criteria-divider, .auto-error-row').hide(); 7663 } 7664 } 7665 7666 function openGradeModal(mode, data = {}) { 7667 const isDefaultGrade = mode === 'edit' && String(data.grade_seq) === '0'; 7668 const title = (mode === 'edit') ? 'ì¼í ë±ê¸ ìì ' : 'ì¼í ë±ê¸ ì¶ê°'; 7669 const html = getGradeFormHtml(data, mode); 7670 const useShopgradeFormStyle = mode === 'add' || mode === 'edit'; 7671 const modalClass = 'cl-cmmodal cl-s-btn cl-p130 cl-p0 cover' + (useShopgradeFormStyle ? ' shopgrade-add-modal' : ''); 7672 const removeShopgradeModalOverlay = function () { 7673 $('.modal-overlay-blocker').remove(); 7674 $('.shopgrade-add-modal-covered').removeClass('shopgrade-add-modal-covered'); 7675 $('.shopgrade-add-modal-covered-wrap').removeClass('shopgrade-add-modal-covered-wrap'); 7676 }; 7677
7678 const modal = $('<div>').showModalFlat( 7679 title, 7680 html, 7681 true, 7682 true, 7683 function onConfirm() { 7684 const $form = $('#grade-form').last(); 7685 const $input = $form.find('.grade_name'); 7686 const gradeNameVal = $.trim($input.val()); 7687 $input.val(gradeNameVal); 7688 $form.find('.input-error').removeClass('input-error'); 7689 $('.grade-error-text, .auto-error-row').remove(); 7690 $form.find('.shopgrade-has-error').removeClass('shopgrade-has-error'); 7691 let valid = true; 7692 let $firstInvalid = $(); 7693 if ($.trim($input.val()) === '') { 7694 $input.closest('tr').addClass('shopgrade-has-error'); 7695 $input.addClass('input-error') 7696 .after(` 7697 <div class="grade-error-text"> 7698 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7699 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7700 <rect x="6" y="3" width="1" height="5"></rect> 7701 <rect x="6" y="9" width="1" height="1"></rect> 7702 </svg> ë±ê¸ ì´ë¦ì ì ë ¥ í´ ì£¼ì¸ì. 7703 </div> 7704 `).focus(); 7705 $input.next('.grade-error-text').contents().filter(function () { 7706 return this.nodeType === 3; 7707 }).remove(); 7708 $input.next('.grade-error-text').append(document.createTextNode('ë±ê¸ ì´ë¦ì ì ë ¥í´ì£¼ì¸ì.')); 7709 7710 $(document).off('input.grade_name').on('input.grade_name', 'input.grade_name', function () { 7711 const $t = $(this); 7712 if ($t.val().trim().length > 0) { 7713 $t.removeClass('input-error'); 7714 $t.next('.grade-error-text').remove(); 7715 $t.closest('tr').removeClass('shopgrade-has-error'); 7716 } 7717 }); 7718 $firstInvalid = $input; 7719 valid = false; 7720 } 7721 7722 const isAutoChecked = !isDefaultGrade && $form.find('input[name="use_auto"]').is(':checked'); 7723 const isDiscountChecked = $form.find('input[name="discount_use"]').is(':checked'); 7724 const isReserveChecked = $form.find('input[name="reserve_use"]').is(':checked'); 7725 7726 if (isAutoChecked && !currentShopgradeAutoPolicyEnabled) { 7727 syncShopgradeAutoPolicyToggle($form); 7728 alertShopgradeAutoPolicyRequired(); 7729 return false; 7730 } 7731 7732 function reqInput($el) { 7733 const val = $.trim($el.val()); 7734 const num = Number(String(val).replace(/,/g, '')); 7735 7736 if (val === '' || val === '0' || (!isNaN(num) && num === 0)) { 7737 $el.addClass('input-error'); 7738 if (!$firstInvalid.length) $firstInvalid = $el; 7739 valid = false; 7740 } else { 7741 $el.removeClass('input-error'); 7742 } 7743 } 7744 7745 function reqSelect($el) { 7746 const val = $.trim($el.val()); 7747 7748 if (val === '' || val == null) { 7749 $el.addClass('input-error'); 7750 if (!$firstInvalid.length) $firstInvalid = $el; 7751 valid = false; 7752 } else { 7753 $el.removeClass('input-error'); 7754 } 7755 } 7756 7757 // ê°ì ìíì ë°ë¼ íì ê²ì¬ 7758 reqInput($input); 7759 if (gradeNameVal !== '') { 7760 let hasDuplicateGradeName = false; 7761 $.each(group_list || [], function (_, grade) { 7762 if (!grade) return true; 7763 if (mode === 'edit' && String(grade.seq) === String(data.seq)) return true; 7764 if ($.trim(grade.grade_name || '') === gradeNameVal) { 7765 hasDuplicateGradeName = true; 7766 return false; 7767 } 7768 }); 7769 7770 if (hasDuplicateGradeName) { 7771 $input.next('.grade-error-text').remove(); 7772 $input.closest('tr').addClass('shopgrade-has-error'); 7773 $input.addClass('input-error').after(` 7774 <div class="grade-error-text"> 7775 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7776 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7777 <rect x="6" y="3" width="1" height="5"></rect> 7778 <rect x="6" y="9" width="1" height="1"></rect> 7779 </svg> 7780 </div> 7781 `); 7782 $input.next('.grade-error-text').append(document.createTextNode('ì´ë¯¸ ìì±ë ë±ê¸ì´ë¦ ì ëë¤.')); 7783 if (!$firstInvalid.length) $firstInvalid = $input; 7784 valid = false;
7785 } 7786 } 7787 7788 if (isAutoChecked) { 7789 reqInput($form.find('input[name="use_auto_amount_min"]')); 7790 reqInput($form.find('input[name="use_auto_amount_max"]')); 7791 } 7792 if (isDiscountChecked) { 7793 reqInput($form.find('input[name="discount_amount"]')); 7794 reqInput($form.find('input[name="discount_value"]')); 7795 reqSelect($form.find('select[name="discount_type"]')); 7796 if ($form.find('select[name="discount_type"]').val() === '0') { 7797 reqInput($form.find('input[name="discount_max"]')); 7798 } 7799 } 7800 if (isReserveChecked) { 7801 reqInput($form.find('input[name="reserve_amount"]')); 7802 reqInput($form.find('input[name="reserve_value"]')); 7803 reqSelect($form.find('select[name="reserve_type"]')); 7804 if ($form.find('select[name="reserve_type"]').val() === '0') { 7805 reqInput($form.find('input[name="reserve_max"]')); 7806 } 7807 } 7808 7809 if (isAutoChecked) { 7810 const $autoMin = $form.find('input[name="use_auto_amount_min"]'); 7811 const $autoMax = $form.find('input[name="use_auto_amount_max"]'); 7812 const autoMinVal = $.trim($autoMin.val()); 7813 const autoMaxVal = $.trim($autoMax.val()); 7814 const autoMin = Number(String(autoMinVal).replace(/,/g, '')); 7815 const autoMax = Number(String(autoMaxVal).replace(/,/g, '')); 7816 let hasAutoOverlap = false; 7817 7818 if (autoMinVal !== '' && autoMaxVal !== '' && autoMin > 0 && autoMax > 0 && autoMin < autoMax) { 7819 $.each(group_list || [], function (_, grade) { 7820 if (!grade || String(grade.use_auto) !== '1') return true; 7821 if (String(grade.grade_seq) === '0') return true; 7822 if (mode === 'edit' && String(grade.seq) === String(data.seq)) return true; 7823 7824 const gradeMin = Number(String(grade.use_auto_amount_min || 0).replace(/,/g, '')); 7825 const gradeMax = Number(String(grade.use_auto_amount_max || 0).replace(/,/g, '')) || 1000000000000; 7826 if (autoMin < gradeMax && autoMax > gradeMin) { 7827 hasAutoOverlap = true; 7828 return false; 7829 } 7830 }); 7831 } 7832 7833 if (hasAutoOverlap) { 7834 $('.auto-error-row').remove(); 7835 $form.find('.criteria-row').after(` 7836 <div class="auto-error-text auto-error-row"> 7837 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7838 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7839 <rect x="6" y="3" width="1" height="5"></rect> 7840 <rect x="6" y="9" width="1" height="1"></rect> 7841 </svg> ì¤ë³µë 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤. 7842 </div> 7843 `); 7844 $form.find('.auto-error-row').last().contents().filter(function () { 7845 return this.nodeType === 3; 7846 }).remove(); 7847 $form.find('.auto-error-row').last().append(document.createTextNode('ëì¼í 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤.')); 7848 $autoMin.add($autoMax).addClass('input-error'); 7849 if (!$firstInvalid.length) $firstInvalid = $autoMin; 7850 valid = false; 7851 } 7852 } 7853 if (!valid) { 7854 if ($firstInvalid.length) $firstInvalid.focus(); 7855 return false; 7856 } 7857 7858 // ìë² ì ì¡ ì ì«ì ì ì 7859 stripNumberOnly($form); 7860 const formData = new FormData($form[0]); 7861 formData.append('sid', SID); 7862 if (mode === 'edit' && typeof data.seq !== 'undefined') { 7863 formData.append('seq', data.seq); 7864 } 7865 if (isDefaultGrade) { 7866 if (typeof formData.set === 'function') { 7867 formData.set('use_auto', '0'); 7868 formData.set('use_auto_amount_min', '0'); 7869 formData.set('use_auto_amount_max', '0'); 7870 } else { 7871 formData.append('use_auto_amount_min', '0'); 7872 formData.append('use_auto_amount_max', '0'); 7873 } 7874 } 7875 if ($form.find('select[name="discount_type"]').val() === '1') { 7876 if (typeof formData.set === 'function') formData.set('discount_max', '0'); 7877 else formData.append('discount_max', '0'); 7878 } 7879 if ($form.find('select[name="reserve_type"]').val() === '1') { 7880 if (typeof formData.set === 'function') formData.set('reserve_max', '0'); 7881 else formData.append('reserve_max', '0'); 7882 } 7883 7884 const url = (mode === 'edit') 7885 ? '/shop_grade/update/type/edit' 7886 : '/shop_grade/update/type/add'; 7887 7888 // ìí í¸ë¦¬ê±°(ë·° ê°±ì ) 7889 $form.find('input[name="use_auto"]').trigger('change'); 7890 $form.find('input[name="discount_use"]').trigger('change'); 7891 $form.find('input[name="reserve_use"]').trigger('change'); 7892 7893 $.ajax({ 7894 type: 'POST', 7895 url, 7896 data: formData, 7897 processData: false, 7898 contentType: false, 7899 dataType: 'json', 7900 success: function (res) { 7901 if ((mode === 'edit' && res.success) || (mode === 'add' && !res.error)) { 7902 alert(mode === 'edit' ? 'ìì ëììµëë¤.' : 'ì ì¥ëììµëë¤.'); 7903 modal.modal('hide'); 7904 removeShopgradeModalOverlay(); 7905 refreshGradeList(); 7906 return; 7907 } 7908 7909 // ìë¬ ì²ë¦¬ 7910 const err = res.error; 7911 if (err === 'auto_policy_required') { 7912 syncShopgradeAutoPolicyToggle($form); 7913 alertShopgradeAutoPolicyRequired(); 7914 return; 7915 } 7916 if (err === 'grade_name') { 7917 const $in = $form.find('.grade_name'); 7918 $in.next('.grade-error-text').remove(); 7919 $in.closest('tr').addClass('shopgrade-has-error'); 7920 $in.addClass('input-error').after(` 7921 <div class="grade-error-text"> 7922 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7923 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7924 <rect x="6" y="3" width="1" height="5"></rect> 7925 <rect x="6" y="9" width="1" height="1"></rect> 7926 </svg> ì¤ë³µë ë±ê¸ ì´ë¦ ì ëë¤. 7927 </div> 7928 `).focus(); 7929 $in.next('.grade-error-text').contents().filter(function () { 7930 return this.nodeType === 3; 7931 }).remove(); 7932 $in.next('.grade-error-text').append(document.createTextNode('ì´ë¯¸ ìì±ë ë±ê¸ì´ë¦ ì ëë¤.')); 7933 $(document).off('input.grade_name').on('input.grade_name', 'input.grade_name', function () { 7934 const $t = $(this); 7935 if ($t.val().trim().length > 0) { 7936 $t.removeClass('input-error'); 7937 $t.next('.grade-error-text').remove(); 7938 $t.closest('tr').removeClass('shopgrade-has-error'); 7939 } 7940 }); 7941 return; 7942 } 7943 7944 if (err === 'use_auto') { 7945 $('.auto-error-row').remove(); 7946 const $autoMin = $form.find('input[name="use_auto_amount_min"]'); 7947 const $autoMax = $form.find('input[name="use_auto_amount_max"]'); 7948 const autoMinVal = $.trim($autoMin.val()); 7949 const autoMaxVal = $.trim($autoMax.val()); 7950 if (autoMinVal === '' || autoMaxVal === '') { 7951 $autoMin.add($autoMax).filter(function () { 7952 return $.trim($(this).val()) === ''; 7953 }).addClass('input-error'); 7954 return; 7955 } 7956 $form.find('.criteria-row').after(` 7957 <div class="auto-error-text auto-error-row"> 7958 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7959 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7960 <rect x="6" y="3" width="1" height="5"></rect> 7961 <rect x="6" y="9" width="1" height="1"></rect> 7962 </svg> ì¤ë³µë 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤. 7963 </div> 7964 `); 7965 $form.find('.auto-error-row').last().contents().filter(function () { 7966 return this.nodeType === 3; 7967 }).remove(); 7968 $form.find('.auto-error-row').last().append(document.createTextNode('ëì¼í 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤.')); 7969 $autoMin.add($autoMax).addClass('input-error'); 7970 return; 7971 } 7972
7973 if (err === 'invalid_range') { 7974 $('.auto-error-row').remove(); 7975 $form.find('.criteria-row').after(` 7976 <div class="auto-error-text auto-error-row"> 7977 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7978 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"></path> 7979 <rect x="6" y="3" width="1" height="5"></rect> 7980 <rect x="6" y="9" width="1" height="1"></rect> 7981 </svg> ìµìê°ì´ ìµëê°ë³´ë¤ í¬ê±°ë ê°ìµëë¤. 7982 </div> 7983 `); 7984 $form.find('.auto-error-row').last().contents().filter(function () { 7985 return this.nodeType === 3; 7986 }).remove(); 7987 $form.find('.auto-error-row').last().append(document.createTextNode('ìµìê°ì´ ìµëê°ë³´ë¤ í¬ê±°ë ê°ìµëë¤.')); 7988 $form.find('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]').addClass('input-error'); 7989 return; 7990 } 7991 7992 if (err === 'nama_full') { 7993 alert('ì¼íë±ê¸ì ìµë 20ê°ê¹ì§ë§ ë±ë¡í ì ììµëë¤.'); 7994 return; 7995 } 7996 7997 alert(res.error || 'ì²ë¦¬ì ì¤í¨íìµëë¤.'); 7998 }, 7999 error: function () { 8000 alert('ìë² ì¤ë¥ê° ë°ìíìµëë¤.'); 8001 } 8002 }); 8003 }, 8004 'ì·¨ì', 8005 'ì ì¥', 8006 modalClass, 8007 true, 8008 removeShopgradeModalOverlay, 8009 '', 8010 removeShopgradeModalOverlay 8011 ); 8012 8013 if (useShopgradeFormStyle) { 8014 modal.addClass('shopgrade-add-modal-scroll'); 8015 $('.modal-dialog.shopgrade-setting-modal') 8016 .addClass('shopgrade-add-modal-covered') 8017 .closest('.modal') 8018 .addClass('shopgrade-add-modal-covered-wrap'); 8019 modal.find('.config-tooltip svg.sg-grade-use') 8020 .attr({ 8021 'xmlns': 'http://www.w3.org/2000/svg', 8022 'viewBox': '0 0 13 13', 8023 'width': '13', 8024 'height': '13' 8025 }) 8026 .html('<path d="M0 6.5a6.5 6.5 0 1 1 13 0 6.5 6.5 0 0 1-13 0Zm1 0C1 9.54 3.46 12 6.5 12S12 9.54 12 6.5 9.54 1 6.5 1 1 3.46 1 6.5ZM6 10V9h1v1H6Zm0-2c.02-.67.35-1.29.88-1.69.42-.33.69-.81.76-1.34a.923.923 0 0 0-.87-.96h-.14c-.56 0-1 .14-1.08.76 0 .08-.02.16-.02.23H4.51v-.2c.07-1.06.98-1.87 2.04-1.8.04 0 .08 0 .12.01A1.89 1.89 0 0 1 8.7 4.77v.11c-.07.74-.44 1.42-1.03 1.88-.63.62-.67.91-.68 1.25H6Z"/>'); 8027 modal.find('#grade-form input[type="text"]').not('.grade_name').attr('placeholder', '0'); 8028 modal.find('select[name="discount_type"], select[name="reserve_type"]').each(function () { 8029 var $select = $(this); 8030 var $wonOption = $select.find('option[value="1"]'); 8031 var $percentOption = $select.find('option[value="0"]'); 8032 if ($wonOption.length && $percentOption.length) { 8033 $wonOption.insertBefore($percentOption); 8034 } 8035 }); 8036 modal.find('.modal-footer .close-button-dialog').text('ì·¨ì'); 8037 modal.find('.delivery-benefit-toggle-row').closest('tr').addClass('delivery-benefit-row'); 8038 modal.find('.grade-create-table tr:has(td[colspan] hr)').addClass('shopgrade-hr-row'); 8039 var $criteriaRow = modal.find('.criteria-row'); 8040 $criteriaRow.closest('tr').addClass('auto-grade-row'); 8041 var $autoMin = $criteriaRow.find('input[name="use_auto_amount_min"]'); 8042 var $autoMax = $criteriaRow.find('input[name="use_auto_amount_max"]'); 8043 var criteriaCycleText = currentShopgradeAutoPolicyCycleType === '1' ? '매주' : '매ì'; 8044 if ($criteriaRow.length && $autoMin.length && $autoMax.length) { 8045 $criteriaRow.empty().append( 8046 $('<div/>', { 'class': 'form-inline3 criteria-title' }).append( 8047 document.createTextNode('ë±ê¸ 충족 ê¸°ì¤ : '), 8048 $('<span/>', { 'class': 'criteria-cycle', text: criteriaCycleText }) 8049 ), 8050 $('<div/>', { 'class': 'criteria-amount-row criteria-amount-line' }).append( 8051 $('<span/>', { 'class': 'criteria-label', text: '구매 ê¸ì¡' }), 8052 $('<span/>', { 'class': 'criteria-input-wrap' }).append($autoMin), 8053 $('<span/>', { 'class': 'criteria-unit', text: 'ì ì´ì,' }), 8054 $('<span/>', { 'class': 'criteria-input-wrap' }).append($autoMax), 8055 $('<span/>', { 'class': 'criteria-unit', text: 'ì 미ë§' }) 8056 ) 8057 ); 8058 } 8059 } 8060 8061 // ëª¨ë¬ ê²¹ì¹¨ ë°©ì§ ì¤ë²ë ì´ 8062 setTimeout(() => { 8063 const $coveredModals = $('.modal-dialog.cl-cmmodal').not(':last'); 8064 if (useShopgradeFormStyle) { 8065 $coveredModals.filter('.shopgrade-setting-modal') 8066 .addClass('shopgrade-add-modal-covered') 8067 .closest('.modal') 8068 .addClass('shopgrade-add-modal-covered-wrap'); 8069 } else { 8070 $coveredModals.append('<div class="modal-overlay-blocker"></div>'); 8071 } 8072 const $gradeForm = $('#grade-form').last(); 8073 formatNumberFieldsOnce($gradeForm); 8074 $gradeForm.find('input[name="use_auto"], input[name="discount_use"], input[name="reserve_use"], input[name="delivery_benefit"], select[name="discount_type"], select[name="reserve_type"]').trigger('change'); 8075 syncShopgradeAutoPolicyToggle($gradeForm); 8076 if (useShopgradeFormStyle) { 8077 modal.find('.discount-benefit-row:not(.discount-max-row), .reserve-benefit-row:not(.reserve-max-row)').each(function () { 8078 var $row = $(this); 8079 var isDiscountRow = $row.hasClass('discount-benefit-row'); 8080 $row.closest('tr').addClass(isDiscountRow ? 'discount-benefit-form-row' : 'reserve-benefit-form-row'); 8081 var isEnabled = isDiscountRow 8082 ? modal.find('input[name="discount_use"]').is(':checked') 8083 : modal.find('input[name="reserve_use"]').is(':checked'); 8084 var $amount = $row.find('.pos-relative').first().detach(); 8085 var $value = $row.find('input.input-ms').first().detach(); 8086 var $select = $row.find('select').first().detach(); 8087 var $label = $row.find('span').last().detach(); 8088 var $amountUnit = $amount.children('.pos-span, .pos-span1, .pos-span2').last(); 8089 var $conditionSpan = $amount.children('span').not('.pos-span, .pos-span1, .pos-span2').last(); 8090 var amountUnitText = $.trim($amountUnit.text()); 8091 var amountConditionText = $.trim($amount.contents().filter(function () { 8092 return this.nodeType === 3; 8093 }).text()); 8094 if (!amountConditionText && $conditionSpan.length) { 8095 amountConditionText = $.trim($conditionSpan.text()); 8096 } 8097 $conditionSpan.remove(); 8098 $amountUnit.remove(); 8099 $amount.contents().filter(function () { 8100 return this.nodeType === 3; 8101 }).remove(); 8102 var conditionText = amountConditionText || $.trim($row.contents().filter(function () { 8103 return this.nodeType === 3; 8104 }).text()); 8105 if (amountUnitText) { 8106 conditionText = amountUnitText + (conditionText ? ' ' + conditionText : ''); 8107 } 8108 $row.empty().addClass('shopgrade-benefit-line').append( 8109 $amount, 8110 $('<span/>', { 'class': 'benefit-condition', text: conditionText }), 8111 $value, 8112 $select, 8113 $label 8114 ); 8115 $row.css('display', isEnabled ? 'grid' : 'none'); 8116 }); 8117 modal.find('.discount-max-row, .reserve-max-row').each(function () { 8118 var $row = $(this); 8119 var isDiscountRow = $row.hasClass('discount-max-row'); 8120 var isEnabled = isDiscountRow 8121 ? modal.find('input[name="discount_use"]').is(':checked') 8122 : modal.find('input[name="reserve_use"]').is(':checked'); 8123 var $maxLabel = $row.find('.max-label').first().detach(); 8124 var $maxInput = $row.find('.pos-relative').first().detach(); 8125 $maxInput.children('.pos-span, .pos-span1, .pos-span2').last().addClass('benefit-max-unit'); 8126 $row.empty().addClass('shopgrade-benefit-max-line').append( 8127 $('<span/>', { 'class': 'benefit-condition' }), 8128 $maxLabel, 8129 $maxInput, 8130 $('<span/>', { 'class': 'benefit-unit-placeholder' }) 8131 ); 8132 var isPercent = isDiscountRow 8133 ? modal.find('select[name="discount_type"]').val() === '0' 8134 : modal.find('select[name="reserve_type"]').val() === '0'; 8135 $row.css('display', (isEnabled && isPercent) ? 'grid' : 'none'); 8136 }); 8137 $gradeForm.find('input[name="discount_use"], input[name="reserve_use"], select[name="discount_type"], select[name="reserve_type"]').trigger('change'); 8138 modal.find('select[name="discount_type"], select[name="reserve_type"]').each(function () { 8139 var $select = $(this); 8140 if ($select.next('.shopgrade-type-select').length) return;
8141 var $custom = $('<div/>', { 'class': 'shopgrade-type-select', tabindex: 0 }); 8142 var $button = $('<button/>', { type: 'button', 'class': 'shopgrade-type-select-btn' }); 8143 var $value = $('<span/>', { 'class': 'shopgrade-type-select-value', text: $select.find('option:selected').text() }); 8144 var $menu = $('<div/>', { 'class': 'shopgrade-type-select-menu' }); 8145 $select.find('option').each(function () { 8146 var $option = $(this); 8147 $menu.append($('<button/>', { 8148 type: 'button', 8149 'class': 'shopgrade-type-select-option' + ($option.is(':selected') ? ' selected' : ''), 8150 'data-value': $option.val(), 8151 text: $option.text() 8152 })); 8153 }); 8154 $button.append($value); 8155 $custom.append($button, $menu); 8156 $select.addClass('shopgrade-native-type-select').after($custom); 8157 }); 8158 syncShopgradeBenefitRows($gradeForm); 8159 } 8160 }, 10); 8161 } 8162 8163 8164 8165 function normalizeGradeFormData(data = {}, mode = 'edit') { 8166 const isAddMode = mode === 'add'; 8167 const isDefaultGrade = mode === 'edit' && String(data.grade_seq) === '0'; 8168 const emptyIfNull = (value, fallback = '') => { 8169 return (value === null || typeof value === 'undefined' || value === 'null') ? fallback : value; 8170 }; 8171 const isEmptyValue = (value) => { 8172 return value === null || typeof value === 'undefined' || value === '' || value === 'null'; 8173 }; 8174 const isEmptyNumberValue = (value) => { 8175 return isEmptyValue(value) || String(value) === '0'; 8176 }; 8177 const emptyIfNoNumber = (value) => { 8178 return isEmptyNumberValue(value) ? '' : normalizeIntegerInputValue(value); 8179 }; 8180 const hasNoBenefitSettings = (fields) => { 8181 return fields.every((field) => isEmptyNumberValue(data[field])); 8182 }; 8183 const defaultBenefitType = isAddMode ? '0' : '1'; 8184 return { 8185 seq: emptyIfNull(data.seq), 8186 grade_seq: emptyIfNull(data.grade_seq), 8187 grade_name: emptyIfNull(data.grade_name), 8188 use_auto: isDefaultGrade ? 0 : (hasNoBenefitSettings(['use_auto_amount_min', 'use_auto_amount_max']) ? 0 : emptyIfNull(data.use_auto, 0)), 8189 use_auto_amount_min: isDefaultGrade ? '' : emptyIfNoNumber(data.use_auto_amount_min), 8190 use_auto_amount_max: isDefaultGrade ? '' : emptyIfNoNumber(data.use_auto_amount_max), 8191 discount_use: isAddMode ? 1 : (hasNoBenefitSettings(['discount_amount', 'discount_value', 'discount_max']) ? 0 : emptyIfNull(data.discount_use, 0)), 8192 discount_amount: emptyIfNoNumber(data.discount_amount), 8193 discount_value: emptyIfNoNumber(data.discount_value), 8194 discount_type: emptyIfNull(data.discount_type, defaultBenefitType), 8195 discount_max: emptyIfNoNumber(data.discount_max), 8196 reserve_use: isAddMode ? 1 : (hasNoBenefitSettings(['reserve_amount', 'reserve_value', 'reserve_max']) ? 0 : emptyIfNull(data.reserve_use, 0)), 8197 reserve_amount: emptyIfNoNumber(data.reserve_amount), 8198 reserve_value: emptyIfNoNumber(data.reserve_value), 8199 reserve_type: emptyIfNull(data.reserve_type, defaultBenefitType), 8200 reserve_max: emptyIfNoNumber(data.reserve_max), 8201 delivery_benefit: isAddMode ? 1 : emptyIfNull(data.delivery_benefit, 0) 8202 }; 8203 } 8204 8205 function getGradeFormHtml(data = {}, mode = 'edit') { 8206 const { 8207 grade_seq = '', 8208 grade_name = '', 8209 use_auto = 0, 8210 use_auto_amount_min = '', 8211 use_auto_amount_max = '', 8212 discount_use = 1, 8213 discount_amount = '', 8214 discount_value = '', 8215 discount_type = '0', 8216 discount_max = '', 8217 reserve_use = 1, 8218 reserve_amount = '', 8219 reserve_value = '', 8220 reserve_type = '0', 8221 reserve_max = '', 8222 delivery_benefit = 0 8223 } = normalizeGradeFormData(data, mode); 8224 const isDefaultGrade = mode === 'edit' && String(grade_seq) === '0'; 8225 8226 const slAutouse = '• ììì ì¤ì í ë±ê¸ ìë ì¡°ì ì´ ë°ìë©ëë¤. í´ë¹ ë±ê¸ì ì¬ì©ì ìì¹ ìì ê²½ì° ìëì¼ë¡ ë±ê¸ ë³ê²½ì´ ëì§ ììµëë¤.<br><br>• 충족 기ì¤ì ì´ ì¤ê²°ì ê¸ì¡ìì ê°ì¢ í ì¸,ì¿ í°,ì 립ê¸, ë°°ì¡ë¹ ë± ííì´ ì ì¸ë ê¸ì¡) ê¸°ì¤ ì ëë¤.', 8227 slAddbenefit= $.lang[LANG]['manager.list.member.shopgrade.addbenefit'], 8228 slSavebenefit=$.lang[LANG]['manager.list.member.shopgrade.s
8228avebenefit'], 8229 slDelibenefit=$.lang[LANG]['manager.list.member.shopgrade.delibenefit']; 8230 8231 return ` 8232 <form id="grade-form"> 8233 <div class="mng-modal-body"> 8234 <table class="grade-create-table"> 8235 <tr> 8236 <td class="form-title">ë±ê¸ ì´ë¦</td> 8237 <td> 8238 <div class="form-inline"> 8239 <input type="text" name="grade_name" class="grade_name" required 8240 placeholder="ë±ê¸ ì´ë¦ì ì ë ¥ í´ ì£¼ì¸ì." value="${grade_name}"> 8241 </div> 8242 </td> 8243 </tr> 8244 8245 ${isDefaultGrade ? '' : ` 8246 <tr> 8247 <td class="form-title">ìë ë±ê¸ ì¬ì© 8248 <span class="config-tooltip"> 8249 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8250 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slAutouse}"> 8251 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/> 8252 <rect x="6" y="9" width="1" height="1"/> 8253 <path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 8254 </svg> 8255 </span> 8256 </td> 8257 <td> 8258 <div class="toggle-switch"> 8259 <label class="simple-switch"> 8260 <input type="checkbox" name="use_auto" class="simple-switch-input" value="1" ${(use_auto == 1 && currentShopgradeAutoPolicyEnabled) ? 'checked' : ''}> 8261 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8262 <span class="simple-switch-handle"></span> 8263 </label> 8264 </div> 8265 8266 <div class="criteria-row" style="display: ${use_auto == 1 ? 'block' : 'none'};"> 8267 <div class="form-inline3">ë±ê¸ 충족 ê¸°ì¤ : <span class="criteria-cycle">${currentShopgradeAutoPolicyCycleType === '1' ? '매주' : '매ì'}</span></div> 8268 <div class="form-inline"> 8269 구매 ê¸ì¡ 8270 <div class="pos-relative"> 8271 <input type="text" name="use_auto_amount_min" class="input-ss" numberOnly data-keep-comma value="${use_auto_amount_min}"> 8272 <span class="pos-span1">ì ì´ì,</span> 8273 <input type="text" name="use_auto_amount_max" class="input-ss" numberOnly data-keep-comma value="${use_auto_amount_max}"> 8274 <span class="pos-span2">ì 미ë§</span> 8275 </div> 8276 </div> 8277 </div> 8278 </td> 8279 </tr> 8280 `} 8281 8282 <tr><td colspan="2"><hr></td></tr> 8283 8284 <tr> 8285 <td class="form-title">ì¶ê° í ì¸ íí 8286 <span class="config-tooltip"> 8287 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8288 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slAddbenefit}"> 8289 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/> 8290 <rect x="6" y="9" width="1" height="1"/> 8291 <path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 8292 </svg> 8293 </span> 8294 </td> 8295 <td> 8296 <div class="toggle-switch"> 8297 <label class="simple-switch"> 8298 <input type="checkbox" name="discount_use" class="simple-switch-input" value="1" ${discount_use == 1 ? 'checked' : ''}> 8299 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8300 <span class="simple-switch-handle"></span> 8301 </label> 8302 </div> 8303 8304 <div class="form-inline3 discount-benefit-row" style="display: ${discount_use == 1 ? '' : 'none'};"> 8305 <div class="pos-relative"> 8306 <input type="text" name="discount_amount" class="input-mm" numberOnly data-keep-comma value="${discount_amount}"> 8307 <span class="pos-span">ì</span> 8308 <span>ì´ì 구매 ì</span> 8309 </div> 8310 <input type="text" name="discount_value" class="input-ms" numberOnly data-keep-comma value="${discount_value}"> 8311 <select name="discount_type"> 8312 <option value="0" ${discount_type == '0' ? 'selected' : ''}>%</option> 8313 <option value="1" ${discount_type == '1' ? 'selected' : ''}>ì</option> 8314 </select> 8315 <span>
8315í ì¸</span> 8316 </div> 8317 8318 <div class="form-inline1 discount-benefit-row discount-max-row" style="display: ${(discount_use == 1 && discount_type == '0') ? '' : 'none'};"> 8319 <span class="max-label discount-limit-label"><span class="limit-star"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12"><path d="M5.5 4.04v1.31l-1.25-.41-.31.95 1.25.4-.77 1.07.81.59L6 6.89l.77 1.06.81-.59-.77-1.06 1.25-.4-.31-.96-1.25.4V4.03h-1Z"/></svg></span>í ì¸ íë :</span> 8320 <div class="pos-relative"> 8321 <input type="text" name="discount_max" class="input-mm" numberOnly data-keep-comma value="${discount_max}"> 8322 <span class="pos-span">ì</span> 8323 </div> 8324 </div> 8325 </td> 8326 </tr> 8327 8328 <tr> 8329 <td class="form-title">ì¶ê° ì 립 íí 8330 <span class="config-tooltip"> 8331 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8332 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slSavebenefit}"> 8333 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/> 8334 <rect x="6" y="9" width="1" height="1"/> 8335 <path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.66 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 8336 </svg> 8337 </span> 8338 </td> 8339 <td> 8340 <div class="toggle-switch"> 8341 <label class="simple-switch"> 8342 <input type="checkbox" name="reserve_use" class="simple-switch-input" value="1" ${reserve_use == 1 ? 'checked' : ''}> 8343 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8344 <span class="simple-switch-handle"></span> 8345 </label> 8346 </div> 8347 8348 <div class="form-inline3 reserve-benefit-row" style="display: ${reserve_use == 1 ? '' : 'none'};"> 8349 <div class="pos-relative"> 8350 <input type="text" name="reserve_amount" class="input-mm" numberOnly data-keep-comma value="${reserve_amount}"> 8351 <span class="pos-span">ì</span> 8352 <span>ì´ì 구매 ì</span> 8353 </div> 8354 <input type="text" name="reserve_value" class="input-ms" numberOnly data-keep-comma value="${reserve_value}"> 8355 <select name="reserve_type"> 8356 <option value="0" ${reserve_type == '0' ? 'selected' : ''}>%</option> 8357 <option value="1" ${reserve_type == '1' ? 'selected' : ''}>ì</option> 8358 </select> 8359 <span>ì 립</span> 8360 </div> 8361 8362 <div class="form-inline1 reserve-benefit-row reserve-max-row" style="display: ${(reserve_use == 1 && reserve_type == '0') ? '' : 'none'};"> 8363 <span class="max-label reserve-limit-label"><span class="limit-star"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12"><path d="M5.5 4.04v1.31l-1.25-.41-.31.95 1.25.4-.77 1.07.81.59L6 6.89l.77 1.06.81-.59-.77-1.06 1.25-.4-.31-.96-1.25.4V4.03h-1Z"/></svg></span>ì 립 íë :</span> 8364 <div class="pos-relative"> 8365 <input type="text" name="reserve_max" class="input-mm" numberOnly data-keep-comma value="${reserve_max}"> 8366 <span class="pos-span">ì</span> 8367 </div> 8368 </div> 8369 </td> 8370 </tr> 8371 8372 <tr> 8373 <td class="form-title">ë°°ì¡ë¹ ë¬´ë£ 8374 <span class="config-tooltip"> 8375 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8376 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slDelibenefit}"> 8377 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/> 8378 <rect x="6" y="9" width="1" height="1"/> 8379 <path d="M6.66 3.01C5.61 3.01 4.58 3.5 4.5 4.8c0 0.06-0.01 0.12 0 0.2h1.02c0-0.07 0.01-0.15 0.02-0.23 0.08-0.62 0.52-0.76 1.08-0.76 0.63 0 1.02 0.37 1.02 0.95 -0.01 0.48-0.3 0.87-0.76 1.34C6.21 6.97 6.02 7.37 6 8h0.99C7 7.
837966 7.04 7.37 7.67 6.75 8.17 6.27 8.7 5.68 8.7 4.87 8.7 3.85 7.89 3.01 6.66 3.01z"/> 8380 </svg> 8381 </span> 8382 </td> 8383 <td> 8384 <div class="delivery-benefit-toggle-row"> 8385 <div class="toggle-switch"> 8386 <label class="simple-switch"> 8387 <input type="checkbox" name="delivery_benefit" class="simple-switch-input delivery-toggle" value="1" ${delivery_benefit == 1 ? 'checked' : ''}> 8388 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8389 <span class="simple-switch-handle"></span> 8390 </label> 8391 </div> 8392 </div> 8393 </td> 8394 </tr> 8395 8396 </table> 8397 </div> 8398 </form> 8399 `; 8400 } 8401 8402 8403 $(document).off('blur.keepComma', 'input[numberOnly][data-keep-comma]').on('blur.keepComma', 'input[numberOnly][data-keep-comma]', function () { 8404 var v = $(this).val(); 8405 v = (typeof removeCommas === 'function') ? removeCommas(v) : String(v).replace(/,/g, ''); 8406 if (typeof addCommas === 'function') { 8407 $(this).val(addCommas(v)); 8408 } else { 8409 $(this).val(String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ',')); 8410 } 8411 }); 8412 8413 function stripNumberOnly($form) { 8414 $form.find('input[numberOnly]').each(function () { 8415 this.value = (typeof removeCommas === 'function') 8416 ? removeCommas(this.value) 8417 : String(this.value).replace(/,/g, ''); 8418 }); 8419 } 8420 8421 $(function () { 8422 $('input[numberOnly]').each(function () { 8423 var v = $(this).val(); 8424 if (v) { 8425 v = v.replace(/,/g, ''); // í¹ì 기존 ì½¤ë§ ì ê±° 8426 $(this).val(v.replace(/\B(?=(\d{3})+(?!\d))/g, ",")); // ì²ë¨ì ì½¤ë§ ì°ê¸° 8427 } 8428 }); 8429 }); 8430 8431 8432 8433 function getShopgradeCriteriaDisplay() { 8434 return $(window).width() <= 767 ? 'flex' : 'block'; 8435 } 8436 8437 $(document).off('change', '.simple-switch-input').on('change', '.simple-switch-input', function (e) { 8438 const $tr = $(this).closest('tr'); 8439 8440 if ($tr.find('td:first').text().includes('ìë')) { 8441 if ($(this).attr('name') === 'use_auto' && !currentShopgradeAutoPolicyEnabled) { 8442 const $form = $(this).closest('#grade-form'); 8443 syncShopgradeAutoPolicyToggle($form); 8444 if (e.originalEvent) alertShopgradeAutoPolicyRequired(); 8445 return false; 8446 } 8447 const checked = $(this).is(':checked'); 8448 $('.criteria-row').css('display', checked ? getShopgradeCriteriaDisplay() : 'none'); 8449 $('.criteria-divider, .auto-error-row').toggle(checked); 8450 } 8451 }); 8452 8453 $(document).off('click.shopgradeAutoPolicy', '#grade-form .shopgrade-auto-policy-disabled') 8454 .on('click.shopgradeAutoPolicy', '#grade-form .shopgrade-auto-policy-disabled', function (e) { 8455 e.preventDefault(); 8456 e.stopImmediatePropagation(); 8457 const $form = $(this).closest('#grade-form'); 8458 syncShopgradeAutoPolicyToggle($form); 8459 alertShopgradeAutoPolicyRequired(); 8460 return false; 8461 }); 8462 8463 $(window).off('resize.shopgradeCriteria').on('resize.shopgradeCriteria', function () { 8464 $('.shopgrade-add-modal .criteria-row:visible').css('display', getShopgradeCriteriaDisplay()); 8465 }); 8466 8467 function syncShopgradeBenefitRows($form) { 8468 if (!$form || !$form.length) $form = $('#grade-form').last(); 8469 8470 var $discountType = $form.find('select[name="discount_type"]'); 8471 var $discountUse = $form.find('input[name="discount_use"]'); 8472 var $discountMax = $form.find('input[name="discount_max"]'); 8473 var showDiscountRows = $discountUse.is(':checked'); 8474 var showDiscountMax = showDiscountRows && $discountType.val() === '0'; 8475 8476 $form.find('tr.discount-benefit-form-row') 8477 .toggleClass('shopgrade-benefit-off', !showDiscountRows); 8478 $form.find('.discount-benefit-row').not('.discount-max-row') 8479 .toggleClass('shopgrade-benefit-hidden', !showDiscountRows) 8480 .css('display', showDiscountRows ? 'grid' : 'none'); 8481 8482 $form.find('.discount-max-row') 8483 .toggleClass('shopgrade-benefit-hidden shopgrade-max-hidden', !showDiscountMax) 8484 .css('display', showDiscountMax ? 'grid' : 'none'); 8485 $form.find('input[name="discount_amount"], input[name="discount_value"], select[name="discount_type"]') 8486 .prop('required', showDiscountRows) 8487 .prop('disabled', !showDiscountRows); 8488 $discountMax.prop('required', showDiscountMax).prop('disabled', !showDiscountMax); 8489 if (!showDiscountRows) { 8490 $form.find('input[name="discount_amount"], input[name="discount_value"], input[name="discount_max"]').removeClass('input-error'); 8491 } else if (!showDiscountMax) { 8492 $discountMax.removeClass('input-error').val(''); 8493 } 8494 8495 var $reserveType = $form.find('select[name="reserve_type"]'); 8496 var $reserveUse = $form.find('input[name="reserve_use"]'); 8497 var $reserveMax = $form.find('input[name="reserve_max"]'); 8498 var showReserveRows = $reserveUse.is(':checked'); 8499 var showReserveMax = showReserveRows && $reserveType.val() === '0'; 8500 8501 $form.find('tr.reserve-benefit-form-row') 8502 .toggleClass('shopgrade-benefit-off', !showReserveRows); 8503 $form.find('.reserve-benefit-row').not('.reserve-max-row') 8504 .toggleClass('shopgrade-benefit-hidden', !showReserveRows) 8505 .css('display', showReserveRows ? 'grid' : 'none'); 8506 8507 $form.find('.reserve-max-row') 8508 .toggleClass('shopgrade-benefit-hidden shopgrade-max-hidden', !showReserveMax) 8509 .css('display', showReserveMax ? 'grid' : 'none'); 8510 $form.find('input[name="reserve_amount"], input[name="reserve_value"], select[name="reserve_type"]') 8511 .prop('required', showReserveRows) 8512 .prop('disabled', !showReserveRows); 8513 $reserveMax.prop('required', showReserveMax).prop('disabled', !showReserveMax); 8514 if (!showReserveRows) { 8515 $form.find('input[name="reserve_amount"], input[name="reserve_value"], input[name="reserve_max"]').removeClass('input-error'); 8516 } else if (!showReserveMax) { 8517 $reserveMax.removeClass('input-error').val(''); 8518 } 8519 } 8520 8521 $(document).off('click.shopgradeTypeSelect').on('click.shopgradeTypeSelect', function (e) { 8522 if (!$(e.target).closest('.shopgrade-type-select').length) { 8523 $('.shopgrade-type-select').removeClass('open'); 8524 } 8525 }); 8526 8527 $(document).off('click.shopgradeTypeSelectBtn', '.shopgrade-type-select-btn').on('click.shopgradeTypeSelectBtn', '.shopgrade-type-select-btn', function (e) { 8528 e.preventDefault(); 8529 e.stopPropagation(); 8530 var $wrap = $(this).closest('.shopgrade-type-select'); 8531 $('.shopgrade-type-select').not($wrap).removeClass('open'); 8532 $wrap.toggleClass('open'); 8533 }); 8534 8535 $(document).off('click.shopgradeTypeSelectOption', '.shopgrade-type-select-option').on('click.shopgradeTypeSelectOption', '.shopgrade-type-select-option', function (e) { 8536 e.preventDefault(); 8537 e.stopPropagation(); 8538 var $option = $(this); 8539 var $wrap = $option.closest('.shopgrade-type-select'); 8540 var $select = $wrap.prev('select.shopgrade-native-type-select'); 8541 var selectedValue = $option.attr('data-value'); 8542 var $form = $select.closest('#grade-form'); 8543 $select.val(selectedValue); 8544 if ($select[0]) { 8545 $select[0].dispatchEvent(new Event('change', { bubbles: true })); 8546 } else { 8547 $select.trigger('change'); 8548 } 8549 syncShopgradeBenefitRows($form); 8550 $wrap.find('.shopgrade-type-select-value').text($option.text()); 8551 $wrap.find('.shopgrade-type-select-option').removeClass('selected'); 8552 $option.addClass('selected'); 8553 $wrap.removeClass('open'); 8554 }); 8555 8556 let isComposing = false;
8557 8558 // ê³µíµ íí°ë§ í¨ì 8559 function filterGroupName($input) { 8560 let val = $input.val(); 8561 val = val.replace(/[^a-zA-Zê°-í£ ]/g, ''); 8562 if (val.length > 40) val = val.substring(0, 40); 8563 $input.val(val); 8564 } 8565 8566 // ì¡°í© ì ë ¥ ìì 8567 $(document).on('compositionstart', '.grade_name', function () { 8568 isComposing = true; 8569 }); 8570 8571 // ì¡°í© ì ë ¥ ëë¬ì ë íí°ë§ 8572 $(document).on('compositionend', '.grade_name', function () { 8573 isComposing = false; 8574 filterGroupName($(this)); 8575 }); 8576 8577 // ì¼ë° ì ë ¥ ì¤ì¼ ë (ì문 ì ë ¥ ë±) 8578 $(document).on('input', '.grade_name', function () { 8579 if (!isComposing) { 8580 filterGroupName($(this)); 8581 } 8582 }); 8583 8584 $(document).on('change input', 'select[name="discount_type"], input[name="discount_value"], select[name="reserve_type"], input[name="reserve_value"], .input-mm, .input-ms, .input-ss', function (e) { 8585 const $target = $(this); 8586 const $form = $target.closest('#grade-form'); 8587 const isUserChange = !!e.originalEvent; 8588 8589 if ($target.hasClass('input-mm') || $target.hasClass('input-ms') || $target.hasClass('input-ss')) { 8590 $target.val(normalizeIntegerInputValue($target.val(), 99999999)); 8591 } 8592 8593 if ($target.attr('name') === 'discount_type' || $target.attr('name') === 'discount_value') { 8594 const $type = $form.find('select[name="discount_type"]'); 8595 const $value = $form.find('input[name="discount_value"]'); 8596 const $discountMax = $form.find('input[name="discount_max"]'); 8597 const isPercent = $type.val() === '0'; 8598 $value.attr(isPercent ? { min: 0, max: 100 } : { min: 0, max: 99999999 }); 8599 8600 if ($target.attr('name') === 'discount_type' && isUserChange) { 8601 $value.removeClass('input-error').val(''); 8602 $discountMax.removeClass('input-error').val(''); 8603 } else if ($target.attr('name') === 'discount_value') { 8604 $value.val(normalizeIntegerInputValue($value.val(), isPercent ? 100 : 99999999)); 8605 } 8606 8607 syncShopgradeBenefitRows($form); 8608 } 8609 8610 if ($target.attr('name') === 'reserve_type' || $target.attr('name') === 'reserve_value') { 8611 const $type = $form.find('select[name="reserve_type"]'); 8612 const $value = $form.find('input[name="reserve_value"]'); 8613 const $reserveMax = $form.find('input[name="reserve_max"]'); 8614 const isPercent = $type.val() === '0'; 8615 $value.attr(isPercent ? { min: 0, max: 100 } : { min: 0, max: 99999999 }); 8616 8617 if ($target.attr('name') === 'reserve_type' && isUserChange) { 8618 $value.removeClass('input-error').val(''); 8619 $reserveMax.removeClass('input-error').val(''); 8620 } else if ($target.attr('name') === 'reserve_value') { 8621 $value.val(normalizeIntegerInputValue($value.val(), isPercent ? 100 : 99999999)); 8622 } 8623 8624 syncShopgradeBenefitRows($form); 8625 } 8626 }); 8627 8628 // 1. ìë ë±ê¸ ì²´í¬ ìíì ë°ë¼ ê¸°ì¤ íë required ì¬ë¶ ì¤ì 8629 $(document).on('change', 'input[name="use_auto"]', function () { 8630 const isChecked = $(this).is(':checked'); 8631 $('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]') 8632 .prop('required', isChecked) 8633 .prop('disabled', !isChecked); 8634 }); 8635 8636 // 2. í ì¸ íí íë ì ì´ 8637 $(document).on('change', 'input[name="discount_use"]', function () { 8638 const $form = $(this).closest('#grade-form'); 8639 syncShopgradeBenefitRows($form); 8640 }); 8641 8642 // 3. ì 립 íí íë ì ì´ 8643 $(document).on('change', 'input[name="reserve_use"]', function () { 8644 const $form = $(this).closest('#grade-form'); 8645 syncShopgradeBenefitRows($form); 8646 }); 8647 8648 $(document).off('input.shopgradeRequired change.shopgradeRequired', '#grade-form input, #grade-form select') 8649 .on('input.shopgradeRequired change.shopgradeRequired', '#grade-form input, #grade-form select', function () { 8650 const $field = $(this); 8651 const val = $.trim($field.val()); 8652 if (val !== '' && val !== '0') { 8653 $field.removeClass('input-error'); 8654 if ($field.hasClass('grade_name')) { 8655 $field.next('.grade-error-text').remove(); 8656 $field.closest('tr').removeClass('shopgrade-has-error'); 8657 } 8658 } 8659 }); 8660 8661 8662 // ë±ê¸ ìì 8663 $(document).off('click', '.delete-group-btn').on('click', '.delete-group-btn', function () {
8664 const gradeSeq = $(this).data('sgseq'); 8665 const gradeName = $(this).data('gradename'); 8666 8667 // ë±ê¸ì í¬í¨ë íì ì ì¡°í 8668 $.ajax({ 8669 type: 'POST', 8670 url: '/shop_grade/shopgrade_member_count', 8671 dataType: 'json', 8672 data: { sid: SID, grade_id: gradeSeq }, 8673 success: function (res) { 8674 const memberCount = res.count || 0; 8675 8676 if (memberCount > 0) { 8677 const warnModal = $(this).showModalFlat( 8678 'ì¼í ë±ê¸ ìì ', 8679 ` 8680 <div class="delete-grade-modal"> 8681 <div class="delete-grade-name-row"> 8682 <span class="delete-grade-name-label">ë±ê¸ëª </span> 8683 <span class="delete-grade-name-value">[ ${gradeName} ]</span> 8684 </div> 8685 <div class="delete-grade-message"> 8686 ì´ ë±ê¸ì íìì´ <strong>${memberCount}</strong>ëª ììµëë¤.<br> 8687 <span class="delete-grade-danger">ìì </span> íë©´ 기본 ë±ê¸ì¼ë¡ ë´ë ¤ê°ëë¤. 8688 </div> 8689 </div> 8690 `, 8691 true, 8692 true, 8693 function () { 8694 $.ajax({ // 기존 ì¨ìì¼ë¡ 리ì 8695 type: 'POST', 8696 url: '/shop_grade/shopgrade_member_reset', 8697 dataType: 'json', 8698 data: { sid: SID, grade_id: gradeSeq }, 8699 success: function (resetRes) { 8700 $.ajax({ 8701 type: 'POST', 8702 url: '/shop_grade/update/type/delete', 8703 dataType: 'json', 8704 data: { sid: SID, seq: gradeSeq }, 8705 success: function (res) { 8706 if (res.success) { 8707 alert('ìì ëììµëë¤.'); 8708 warnModal.modal('hide'); 8709 $('.modal-overlay-blocker').remove(); 8710 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8711 refreshGradeList(); 8712 } else { 8713 alert('ìì ì¤í¨: ' + res.error); 8714 } 8715 } 8716 }); 8717 } 8718 }); 8719 }, 8720 'ì·¨ì', 8721 'ìì ', 8722 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal', 8723 true, 8724 function () { 8725 $('.modal-overlay-blocker').remove(); 8726 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8727 } 8728 ); 8729 8730 setTimeout(() => { 8731 $('.modal-dialog.cl-cmmodal') 8732 .not(':last') 8733 .addClass('shopgrade-auto-policy-covered') 8734 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 8735 }, 10); 8736 8737 } else { 8738 8739 const confirmModal = $(this).showModalFlat( 8740 'ì¼í ë±ê¸ ìì ', 8741 ` 8742 <div class="delete-grade-modal"> 8743 <div class="delete-grade-name-row"> 8744 <span class="delete-grade-name-label">ë±ê¸ëª </span> 8745 <span class="delete-grade-name-value">[ ${gradeName} ]</span> 8746 </div> 8747 <div class="delete-grade-message"> 8748 ìì ë ì¼í ë±ê¸ì 복구 ë¶ê°ë¥í©ëë¤.<br> 8749 ì¼í ë±ê¸ì <span class="delete-grade-danger">ìì </span> íìê² ìµëê¹? 8750 </div> 8751 </div> 8752 `, 8753 true, 8754 true, 8755 function () { 8756 $.ajax({ 8757 type: 'POST', 8758 url: '/shop_grade/update/type/delete', 8759 dataType: 'json', 8760 data: { sid: SID, seq: gradeSeq }, 8761 success: function (res) { 8762 if (res.success) { 8763 alert('ìì ëììµëë¤.'); 8764 confirmModal.modal('hide'); 8765 $('.modal-overlay-blocker').remove(); 8766 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8767 refreshGradeList(); 8768 } else { 8769 alert('ìì ì¤í¨: ' + res.error); 8770 } 8771 } 8772 }); 8773 }, 8774 'ì·¨ì', 8775 'ìì ', 8776 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal', 8777 true, 8778 function () { 8779 $('.modal-overlay-blocker').remove(); 8780 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8781 } 8782 ); 8783 8784 setTimeout(() => { 8785 $('.modal-dialog.cl-cmmodal') 8786 .not(':last') 8787 .addClass('shopgrade-auto-policy-covered') 8788 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 8789 }, 10); 8790 } 8791 } 8792 }); 8793 }); 8794 8795 // ë±ê¸ 리ì¤í¸ ìë¡ê³ 침 8796 function refreshGradeList() { 8797 $.ajax({ 8798 type: 'POST', 8799 url: '/shop_grade/get_list', 8800 dataType: 'json', 8801 data: { sid: SID }, 8802 success: function (res) { 8803 if (res.success) { 8804 group_list = res.list; 8805 const newListHtml = renderGroupList(group_list); 8806 modal.find('.grade-list-wrap').html(newListHtml); 8807 bindEditEvents(modal); 8808 } 8809 } 8810 }); 8811 } 8812 8813 8814 }); 8815 /* ì¼íë±ê¸ ì¤ì end */ 8816 8817 function hasShopgradeSettingOpenParam() { 8818 var params = new URLSearchParams(window.location.search || ''); 8819 return params.get('open_shopgrade_setting') == '1'; 8820 } 8821 8822 function removeShopgradeSettingOpenParam() { 8823 if(typeof history == 'undefined' || typeof history.replaceState != 'function') return; 8824 8825 var url = new URL(window.location.href); 8826 url.searchParams.delete('open_shopgrade_setting'); 8827 history.replaceState({}, document.title, url.pathname + url.search + url.hash); 8828 } 8829 8830 function openShopgradeSettingModalFromUrl() { 8831 if(!hasShopgradeSettingOpenParam()) return; 8832 8833 removeShopgradeSettingOpenParam(); 8834 setTimeout(function() { 8835 var $btn = $('.shopgrade-setting-btn.shopGrade').not('.shopping_disabled, .ss_user_noActive').first(); 8836 if($btn.length == 0) $btn = $('.shopGrade').not('.shopping_disabled, .ss_user_noActive').first(); 8837 if(typeof canConfigureShopgrade != 'undefined' && !canConfigureShopgrade) return; 8838 if($btn.length > 0) $btn.trigger('click'); 8839 }, 300); 8840 } 8841 8842 openShopgradeSettingModalFromUrl(); 8843 8844 8845 8846 8847 8848 8849 8850
8851 $('input[type="checkbox"].cl-etc-input-val').live('click',function(){ 8852 if($(this).is(":checked")===true) { 8853 8854 console.log($(this).prop('checked')); 8855 $(this).prop('checked',true); 8856 } else { 8857 8858 console.log($(this).prop('checked')); 8859 $(this).prop('checked',false); 8860 } 8861 8862 }); 8863 8864 $('.member-info').live('click', function() { 8865 var isGabia = ($('.dashboard_u.gabia').length > 0) ? true : false, 8866 checkViewMode = ($(this).find('.collection-view').length > 0) ? true : false, 8867 uid = $(this).closest('tr').attr('data-uid'), 8868 mng_settings_el = $(this).closest('.mng-settings'), 8869 list_type = mng_settings_el.attr('data-type'), 8870 list_str = '', 8871 no_active_btn = $('div[data-ssuser]').attr('data-ssuser'); 8872 8873 $.post('/umember/lists/type/memberinfo', { sid : SID, val : uid }, function(data) { 8874 if(typeof data.error != 'undefined' && data.error) { 8875 alert(data.error); 8876 return false; 8877 } 8878 var page_type = $('.mng-settings').attr('data-type'), 8879 slog_p = ''; 8880 if(typeof page_type != 'undefined' && page_type) { 8881 if(page_type == 'member-waitlist') setSiteLogs('um.wait','info',{'id':uid},'um.waitlist'); 8882 else setSiteLogs('um.list','info',{'id':uid},'um.list'); 8883 } 8884 var cert_use = $('.memberlist-table').attr('data-cert'); 8885 $.each(data, function(k,o) { 8886 if(isGabia && $.inArray(k, ['cert_date','cert_adult_date']) > -1) return true; 8887 var cl_name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+k], 8888 cl_type = (o['type']) ? o['type'] : 'text', 8889 cl_val = (o['value']) ? o['value'].replace(/\"/g,'"').replace(/\'/g,''').replace(/\</g,'<').replace(/\>/g,'>') : '', 8890 pass_field = ['no','addr2','umseq'], 8891 disabled_field = ['id','approvaldate'], 8892 cl_jcol_list_type = ((o['type']=='check') || (o['type']=='radio')) ? 'cl-etc-list-type' : ''; 8893 8894 list_str += ($.inArray(k,pass_field) > -1) ? '' : '\ 8895 <div class="form-group">\ 8896 <label class="memW-title control-label '+cl_jcol_list_type+' " id="member-'+ k + '-label">'+ cl_name + '</label>\ 8897 <div class="memW-info-wrap">\ 8898 '; 8899 8900 if(k=='birth') cl_val = (cl_val=='0000-00-00') ? '' : cl_val; 8901 8902 switch(k) { 8903 case 'no': 8904 case 'addr2': 8905 case 'umseq': 8906 break; 8907 8908 case 'addr1': 8909 var addr2_str = (data['addr2']['value']) ? '||' + data['addr2']['value'] : '|| ', 8910 addr_str = (cl_val.indexOf('||') === -1) ? ' || '+cl_val+addr2_str : cl_val+addr2_str, 8911 addr = addr_str.split('||'), 8912 plan_type = (typeof property != 'undefined' && property) ? property.VALIDTYPE : VALIDTYPE, 8913 checkSM = (typeof plan_type != 'undefined' && (plan_type == 'SM' || plan_type == 'SHOPPING')) ? true : false, 8914 usedAddrSearchModal = (checkSM || o['addrsearch']) ? 'readonly onclick="addrSearchModal(\'member\')"' : ''; 8915 ; 8916 8917 var sm_addr = (data && data.umseq) ? data.umseq : '', 8918 sm_name = (sm_addr && sm_addr.to_name) ? sm_addr.to_name : '', 8919 sm_alias = (sm_addr && sm_addr.alias) ? sm_addr.alias : '', 8920 sm_tel = (sm_addr && sm_addr.to_tel) ? sm_addr.to_tel : '', 8921 addr_list_btn =''; 8922 addr_default_html = ''; 8923 if(sm_addr || checkSM) { 8924 8925 addr_list_btn += '\ 8926 <div class="cl-s-form-wrap btn-load-addresses adm-member-addr '+(!sm_addr? 'hide' : '' )+' " data-action="adm-edit">\ 8927 <div class="cl-s-form-group "><span>ë°°ì¡ì§ 목ë¡</span>\ 8928 </div>\ 8929 </div>'; 8930 8931 addr_default_html += '\ 8932 <div class="sm-parent '+ (!sm_addr ? 'emptyFlag' : '') +'">\ 8933 <div class="cl-s-form-wrap">\ 8934 <div class="cl-s-form-group">\ 8935 <div class="cl-s-form-control"><div class="sm-name">'+sm_name+'</div><div class="sm-alias ' +(sm_alias ? '':'hide')+ '">' +(sm_alias ? '('+sm_alias+')' : '' )+ ' </div><div class="sm-default-addr"><span>기본배ì¡ì§</span></div></div>\ 8936 <div class="cl-s-form-control"><div class="sm-addr1"><span class=" '+ (addr[0]?.trim() ? '' : 'hide')+' "> '+(addr[0]?.trim() ? '['+ addr[0]?.trim() +']' : '' )+'</span><span>'+ addr[1].trim() +' '+ addr[2].trim() +'</span></div></div>\ 8937 <div class="cl-s-form-control"><div class="sm-tel">'+sm_tel+'</div></div>\ 8938 <div class="cl-s-form-control noaddress" style="text-align:center; padding:20px; color:#999;">ë±ë¡ë ë°°ì¡ì§ê° ììµëë¤.</div>\ 8939 </div>\ 8940 </div>\ 8941 </div>\ 8942 '; 8943 } 8944 8945 if(list_type == 'member-list') { 8946 if(sm_addr || checkSM) { list_str += addr_list_btn; } 8947 8948 list_str += '\ 8949 <input class="hide" id="member-postcode" type="hidden" value="' + addr[0].trim() + '">\ 8950 <div class="cl-common-form-wrap nonplace-holder">\ 8951 <div class="cl-common-form-group">\ 8952 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + addr[1].trim() + '" ' + usedAddrSearchModal + ' name="member-'+ k + '" required="required">\ 8953 </div>\ 8954 </div>\ 8955 <div class="cl-common-form-wrap nonplace-holder">\ 8956 <div class="cl-common-form-group">\ 8957 <input class="member-info-input form-control" id="member-addr2" type="text" value="' + escapeHtml(addr[2].trim()) + '" name="member-addr2" required="required">\ 8958 </div>\ 8959 </div>\ 8960 '; 8961 8962 if (sm_addr || checkSM) { list_str += addr_default_html;} 8963 } else { 8964 list_str += '\ 8965 <input class="hide" id="member-postcode" type="hidden" value="' + addr[0].trim() + '">\ 8966 <span id="member-'+ k + '" '+usedAddrSearchModal+'>' 8967 + addr[1].trim() + ((addr[2].trim() != '') ? '<br>'+addr[2].trim() : '') + 8968 '</span>\ 8969 '; 8970 } 8971 break; 8972 case 'gender': 8973 if(list_type == 'member-list') { 8974 var disabled = (cert_use == 'Y' || cert_use == 'A' || checkViewMode) ? ' disabled':''; 8975 list_str += '\ 8976 <select class="form-control" name="member-'+ k + '" id="member-'+ k+ '"'+disabled+'>\ 8977 <option value="">ì í</option>'; 8978 if(o['value'] == '01') { 8979 list_str += '\ 8980 <option value="01" selected>ë¨</option>\ 8981 <option value="02">ì¬</option>'; 8982 } else if(o['value'] == '02') { 8983 list_str += '\ 8984 <option value="01">ë¨</option>\ 8985 <option value="02" selected>ì¬</option>'; 8986 } else { 8987 list_str += '\ 8988 <option value="01">ë¨</option>\ 8989 <option value="02">ì¬</option>'; 8990 } 8991 list_str += '\ 8992 </select>\ 8993 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 8994 '; 8995 } else { 8996 var gender_val = (cl_val)? ((cl_val == '01')? 'ë¨':'ì¬'):'';
8997 list_str += '\ 8998 <span id="member-'+ k + '">' 8999 + gender_val + 9000 '</span>\ 9001 '; 9002 } 9003 9004 break; 9005 case 'memo': 9006 var m_count = cl_val.length, 9007 checkReadonly = (checkViewMode) ? 'readonly' : ''; 9008 if(list_type == 'member-list') { 9009 list_str += '\ 9010 <textarea class="form-control" name="member-'+ k + '" id="member-'+ k+ '" rows="3" '+checkReadonly+'>' + cl_val + '</textarea>\ 9011 <label for="member-'+ k + '"><span class="write-count">' + m_count + '</span>/1000</label>\ 9012 '; 9013 } else { 9014 list_str += '\ 9015 <span id="member-'+ k+ '">' + cl_val + '</span>'; 9016 } 9017 break; 9018 9019 case 'birth': 9020 if(list_type == 'member-list') { 9021 var disabled = (cert_use == 'Y' || cert_use == 'A') ? ' disabled':''; 9022 list_str += '\ 9023 <div class="cl-common-form-wrap nonplace-holder">\ 9024 <div class="cl-common-form-group'+disabled+'">\ 9025 <input class="member-info-input form-control birthKeyCheck" id="member-'+ k + '" type="text" value="' + cl_val + '" name="member-'+ k + '" onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)" required="required"'+disabled+'>\ 9026 </div>\ 9027 </div>\ 9028 '; 9029 } else { 9030 list_str += '\ 9031 <span id="member-'+ k + '" class="birthKeyCheck" onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)">' 9032 + cl_val + 9033 '</span>\ 9034 '; 9035 } 9036 9037 break; 9038 9039 case 'cert_date': 9040 case 'cert_adult_date': 9041 if(list_type == 'member-list') { 9042 list_str += '\ 9043 <div class="cl-common-form-wrap nonplace-holder member-'+ k + '-wrap">'; 9044 if(cl_val != '' && cl_val != '0000-00-00 00:00:00') { 9045 list_str += '\ 9046 <div class="cl-common-form-group">\ 9047 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + cl_val + '" name="member-'+ k + '" required="required" ' + prev_val + ' disabled>\ 9048 </div>'; 9049 } 9050 list_str += '\ 9051 </div>\ 9052 '; 9053 } else { 9054 if(cl_val != '' && cl_val != '0000-00-00 00:00:00') { 9055 list_str += '\ 9056 <span id="member-'+ k + '">' 9057 + cl_val + 9058 '</span>\ 9059 '; 9060 } 9061 } 9062 9063 break; 9064 default: 9065 var disabled = ($.inArray(k,disabled_field) > -1) ? 'disabled' : '', 9066 prev_val = (k == 'email' || k == 'nick') ? 'data-prev="' + cl_val + '"' : '', 9067 cl_type_str = ''; 9068 9069 if(list_type == 'member-list') { 9070 if($.inArray(k, ['name', 'tel']) > -1 && (cert_use == 'Y' || cert_use == 'A')) disabled = 'disabled'; 9071 var list_jcolval = [o['jcol_val']]; 9072 if((cl_type=='select') || (cl_type=='check') || (cl_type=='radio')) { 9073 list_jcolval = (o['jcol_val'].indexOf('`') > -1) ? o['jcol_val'].split('`') : list_jcolval; 9074 } 9075 switch (cl_type) { 9076 case 'memo': 9077 cl_type_str += '<textarea class="form-control" name="member-'+ k + '" id="member-'+ k+ '" rows="3">' + cl_val + '</textarea>'; 9078 break; 9079 case 'select': 9080 if(list_jcolval.length > 0) { 9081 cl_type_str += '\ 9082 <select class="form-control etc-select" name="member-'+ k + '" id="member-'+ k+ '"'+disabled+'>\ 9083 <option value="">ì í</option>'; 9084 $.each(list_jcolval, function(i,v) { 9085 var selected = (v==cl_val) ? 'selected' : ''; 9086 cl_type_str += '\ 9087 <option value="'+v+'" '+selected+'>'+v+'</option>\ 9088 '; 9089 }); 9090 cl_type_str += '\ 9091 </select>\ 9092 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 4" width="8" height="4"><path d="m0 0 4 4 4-4z"/></svg>\ 9093 '; 9094 } 9095 9096 break; 9097 9098 case 'radio': 9099 if(list_jcolval.length > 0) { 9100 $.each(list_jcolval, function(i,v) { 9101 var checked = (v==cl_val) ? 'checked' : ''; 9102 cl_type_str += '\ 9103 <div class="newcheckbox cl-etc-jcoltype">\ 9104 <label>\ 9105 <div class="newcheckboxSvgRadio">\ 9106 <input type="radio" class="form-control cl-common-form-radio-hide cl-etc-input-val cl-s-form-control" id="member-'+ k + '-'+i+'" name="member-'+ k + '" value="'+v+'" '+checked+'>\ 9107 <svg viewBox="0 0 18 18" width="18" height="18">\ 9108 <path d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8
91080-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 9109 </svg>\ 9110 <svg class="active" viewBox="0 0 18 18" width="18" height="18">\ 9111 <path d="M9 0C4.03 0 0 4.03 0 9c0 4.97 4.03 9 9 9s9-4.03 9-9C18 4.03 13.97 0 9 0zM9 17c-4.41 0-8-3.59-8-8 0-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 9112 <circle cx="9" cy="9" r="6"/>\ 9113 </svg>\ 9114 </div>\ 9115 <span>'+v+'</span>\ 9116 </label>\ 9117 </div>\ 9118 '; 9119 }); 9120 } 9121 9122 break; 9123 9124 case 'check': 9125 if(list_jcolval.length > 0) { 9126 $.each(list_jcolval, function(i,v) { 9127 var checked = ((cl_val.indexOf('`') > -1) && (cl_val.indexOf(v.trim()) > -1)) ? 'checked' : (v==cl_val ? 'checked' : ''); 9128 cl_type_str += '\ 9129 <div class="newcheckbox cl-etc-jcoltype">\ 9130 <label>\ 9131 <div class="newcheckboxSvg">\ 9132 <input type="checkbox" class="form-control cl-common-form-radio-hide cl-etc-input-val cl-s-form-control" id="member-'+ k + '-'+i+'" name="member-'+ k + '" value="'+v+'" '+checked+'>\ 9133 <svg viewBox="0 0 16 16" width="16" height="16">\ 9134 <path class="st6" d="M3 0h10c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H3c-1.66 0-3-1.34-3-3V3C0 1.34 1.34 0 3 0z"></path>\ 9135 <path class="st19" d="M13 1c1.1 0 2 0.9 2 2v10c0 1.1-0.9 2-2 2H3c-1.1 0-2-0.9-2-2V3c0-1.1 0.9-2 2-2H13M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0L13 0z"></path>\ 9136 </svg>\ 9137 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 9138 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 9139 <path class="st19" d="M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0zM13.03 6.03l-5.5 5.5C7.38 11.68 7.19 11.75 7 11.75s-0.38-0.07-0.53-0.22l-3.5-3.5c-0.29-0.29-0.29-0.77 0-1.06s0.77-0.29 1.06 0L7 9.94l4.97-4.97c0.29-0.29 0.77-0.29 1.06 0S13.32 5.74 13.03 6.03z"></path>\ 9140 </svg>\ 9141 </div>\ 9142 <span>'+v+'</span>\ 9143 </label>\ 9144 </div>\ 9145 '; 9146 }); 9147 } 9148 9149 break; 9150 9151 case 'fupload': 9152 var fileResult = $.umember.fileurlcreate(cl_val); 9153 var download_link = fileResult.download_link; 9154 var file_data = fileResult.file_data; 9155 cl_type_str += $.umember.fileHtmlRender(k, { 9156 val : file_data || '', 9157 type : "type2", 9158 type2_downlink : download_link, 9159 }) 9160 9161 break; 9162 9163 default: 9164 cl_type_str += '\ 9165 <div class="cl-common-form-wrap nonplace-holder" id="member-'+ k + '">\ 9166 <div class="cl-common-form-group '+disabled+'">\ 9167 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + cl_val + '" ' + disabled + ' name="member-'+ k + '" required="required" ' + prev_val + '>\ 9168 </div>\ 9169 </div>'; 9170 break; 9171 } 9172 9173 list_str += cl_type_str; 9174 9175 } else { 9176 if((cl_type=='select') || (cl_type=='check') || (cl_type=='radio')) { 9177 cl_val = (cl_val.indexOf('`') > -1) ? cl_val.replace(/`/gi,',') : cl_val; 9178 } 9179 9180 if(cl_type=='fupload' && cl_val) { 9181 var templink = $.umember.fileurlcreate(cl_val|| ''); 9182 9183 var tempdownicon = '<svg class="file-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M5 19v-3.5h1V18h12v-2.5h1V19H5Zm2.65-7.15.71-.71 3.15 3.15V5h1v9.29l3.15-3.15.71.71-4.35 4.35-4.35-4.35Z"/></svg>' 9184 cl_val = '' 9185 + '<div class="fupload-cell">' 9186 + '<span class="file-name">' + templink.file_info.name + '</span>' 9187 + templink.download_link // <a href="... " class="file-download-btn" target="_blank"> 9188 + tempdownicon // <svg ...>
9189 + '</a>' 9190 + '</div>'; 9191 } 9192 9193 list_str += '\ 9194 <span id="member-'+ k + '">' 9195 + cl_val + 9196 '</span>\ 9197 '; 9198 } 9199 break; 9200 } 9201 list_str += ($.inArray(k,pass_field) > -1) ? '' : '\ 9202 </div>\ 9203 </div>\ 9204 '; 9205 }); 9206 9207 var modal_view = (checkViewMode) ? 'readonly' : '', 9208 modal_content = '\ 9209 <div class="mng-modal-body info-modal '+modal_view+'" data-uid="' + uid + '" data-list-type="' + list_type + '">\ 9210 <div class="form-horizontal">\ 9211 ' + list_str + '\ 9212 </div>\ 9213 </div>\ 9214 '; 9215 if(list_type == 'member-list') { 9216 var closed_txt = (checkViewMode) ? 'close' : 'cancel'; 9217 var info_modal = $(this).showModalFlat($.lang[LANG]['manager.member.details.title'], modal_content, true, !checkViewMode, function() { 9218 9219 var info_data = {}, 9220 regExp_arr = ['name','nick','email','tel','birth'], 9221 regexp = { 9222 name: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9223 nick: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9224 email: /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 9225 tel: /^[0-9-+]*$/, 9226 birth: /^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/, 9227 }, 9228 check_error = false, 9229 slog_more = '', 9230 slog_more_array = {}, 9231 etc_Array = [], 9232 etc_i= 0; 9233 9234 $('.info-modal').find('.form-control:not([disabled])').each(function(i) { 9235 var type = $(this).attr('id').replace(/(member\-)|(\-\d)/gi,''), 9236 type_str = $(this).closest('.form-group').find('.control-label').text(), 9237 error_str = '', 9238 etc_type_arr = etc_Array[type]; 9239 9240 if($(this).parents('.newcheckbox').hasClass('cl-etc-jcoltype')) { 9241 9242 if($(this).is(":checked")) { 9243 val = $(this).val().trim(); 9244 var check_jcol_first = false; 9245 if((typeof $(this).parents('.form-group').attr('data-jcolval')=='undefined') || (!$(this).parents('.form-group').attr('data-jcolval'))) { 9246 check_jcol_first = true; 9247 $(this).parents('.form-group').attr('data-jcolval',val); 9248 } 9249 9250 var jcolVal = $(this).parents('.form-group').attr('data-jcolval'); 9251 if($(this).parents('.form-group').find('.cl-etc-input-val:checked').length>1 && val && !check_jcol_first) { 9252 val = jcolVal + '`' + val; 9253 val = val.replace(/\`$/gi, ''); 9254 $(this).parents('.form-group').attr('data-jcolval',val); 9255 } 9256 } else { 9257 if($(this).parents('.form-group').find('.cl-etc-input-val:checked').length==0) val = ''; 9258 } 9259 9260 } else val = $(this).val().trim(); 9261 9262 if(typeof $(this).parents('.form-group').attr('data-jcolval') != 'undefined' && $(this).parents('.form-group').attr('data-jcolval')) { 9263 val = $(this).parents('.form-group').attr('data-jcolval'); 9264 } 9265 9266 var emoji_val = (type.indexOf('addr') > -1) ? $('#member-addr1').val().trim() + ' ' + $('#member-addr2').val().trim() : val; 9267 if(checkEmojis(emoji_val)) error_str = $.lang[LANG]['config.unable.emoji']; 9268 else { 9269 // if(type == 'addr1') slog_more += type_str+' : '+val; 9270 // else if(type == 'addr2') slog_more += ' '+val+'<br>'; 9271 // else slog_more += type_str+' : '+val+'<br>'; 9272 9273 if((val.length == 0 && type != 'email') || regExp_arr.indexOf(type) == -1) { 9274 9275 if(type == 'addr1') val = $('#member-postcode').val() + ' || ' + val; 9276 info_data[type] = val; 9277 9278 if(type=='addr2') { 9279 slog_more_array[type_str] = info_data['addr1'] + ' ' + val; 9280 } else slog_more_array[type_str] = val; 9281 9282 return true; 9283 } 9284 if(!regexp[type].test(val)) { 9285 error_str = $.lang[LANG]['siteum.regexp.check.'+type]; 9286 if(val.length == 0 && type == 'email') error_str = $.lang[LANG]['manager.check.required.message']; 9287 } else if(type == 'nick' && (val.length < 1 || val.length > 20)) { 9288 error_str = $.lang[LANG]['siteum.regexp.check.nick']; 9289 } else { 9290 $(this).closest('.form-group').removeClass('has-error'); 9291 $(this).parent().find('.mng-error').remove(); 9292 info_data[type] = val; 9293 slog_more_array[type_str] = val; 9294 } 9295 9296 9297 9298 } 9299 var this_group = $(this).closest('.form-group'); 9300 if(error_str.length > 0) { 9301 var error_icon = '\
9302 <svg class="error-icon" viewBox="0 0 13 13" width="13" height="13">\ 9303 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/>\ 9304 <rect x="6" y="3" width="1" height="5"/>\ 9305 <rect x="6" y="9" width="1" height="1"/>\ 9306 </svg>\ 9307 '; 9308 9309 this_group.addClass('has-error'); 9310 if(this_group.find('.mng-error').length > 0 ) this_group.find('.mng-error').html(error_icon + error_str); 9311 else this_group.append('<span class="mng-error">' + error_icon + error_str + '</span>'); 9312 9313 if($(this).closest('.form-horizontal').find('.has-error').length == 0) $(this).focus(); 9314 } 9315 }).promise().done(function() { 9316 9317 check_error = ($('.info-modal').find('.has-error').length == 0) ? true : false; 9318 if(!check_error) { 9319 $('.info-modal').find('.has-error').first().find('input').focus(); 9320 return false; 9321 } else { 9322 // deletes í´ëì¤ê° ìë íì¼ë¤ ìì§ 9323 var deletedFiles = []; 9324 $('.info-modal .valueCheck[data-etcidx]').each(function() { 9325 var $inputElement = $(this); 9326 9327 deletedFiles.push({ 9328 file_name: $inputElement.attr('data-file-name'), 9329 etcIdx: $inputElement.attr('data-etcidx'), 9330 id: $inputElement.attr('data-id') 9331 }); 9332 }); 9333 $.processON(); 9334 9335 $.ajax({ 9336 type: 'POST', 9337 url: '/umember/update/type/member', 9338 data: { sid : SID, val: JSON.stringify(info_data), uid : uid ,addrnoupdate : data.umseq,deleted_files: JSON.stringify(deletedFiles)}, 9339 dataType: 'json', 9340 async: true, 9341 success: function(data) { 9342 9343 if(typeof data.error != 'undefined' && data.error) { 9344 $.each(data.error, function(key,str) { 9345 if(info_modal.find('#member-'+key).length > 0 ) { 9346 info_modal.find('#member-'+key).focus(); 9347 if(info_modal.find('#member-'+key).closest('.form-group').find('.mng-error').length > 0) info_modal.find('#member-'+key).closest('.form-group').find('.mng-error').text(str); 9348 else info_modal.find('#member-'+key).closest('.form-group').append('<span class="mng-error">' + str + '</span>'); 9349 } else { alert(str); return false; } 9350 }); 9351 $.processOFF(); 9352 9353 if(info_modal.find('.mng-error').length > 0) return false; 9354 } 9355 $.processOFF(); // ì±ê³µ ììë processOFF í¸ì¶ 9356 9357 slog_more += '\ 9358 <div class="slog-jcol-wrap">\ 9359 <ul class="slog-jcol-ul">\ 9360 '; 9361 $.each(slog_more_array, function(key,v){ 9362 v = (v.indexOf('`')>-1) ? v.replace(/`/gi,', ') : v; 9363 slog_more += '\ 9364 <li class="slog-jcol-li">\ 9365 <div class="slog-jcol-title">'+key+'</div>\ 9366 <div class="slog-jcol-contents">'+v+'</div>\ 9367 </li>\ 9368 '; 9369 }); 9370 9371 slog_more += '\ 9372 </ul>\ 9373 </div>\ 9374 '; 9375 9376 //console.log(slog_more); 9377 setSiteLogs('um.edit','info',{'id':uid,'more':slog_more},'um.list'); 9378 9379 info_modal.find('.mng-error').remove(); 9380 info_data.addr = info_data.addr1+' '+info_data.addr2; 9381 console.log(info_data); 9382 $.each(info_data, function(k, v) { 9383 if(k == 'gender') { 9384 v = (v == '01')? 'ë¨':'ì¬'; 9385 } 9386 $('.mng-list table tr[data-uid="' + uid + '"]').find('.'+k).text(v); 9387 }); 9388 9389 info_modal.modal('hide'); 9390 }, 9391 error: function(xhr, status, error) { 9392 console.error('AJAX ìì² ì¤í¨:', error); 9393 $.processOFF(); // ìë¬ ììë processOFF í¸ì¶ 9394 } 9395 }); 9396 } 9397 9398 }); 9399 9400 }, closed_txt, 'save', 'memberinfo-modal cl-cmmodal cl-s-btn cover', true, '', function() { 9401 9402 var regexp = { 9403 name: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9404 nick: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9405 email: /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 9406 tel: /^[0-9-+]*$/, 9407 birth: /^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/, 9408 }; 9409 9410 var info_recheck_regexp = function(input,event_type) { 9411 var type = $(input).attr('id').replace(/member-/i,''), 9412 val = $(input).val().trim(), 9413 emoji_val = (type.indexOf('addr') > -1) ? $('#member-addr1').val().trim() + ' ' + $('#member-addr2').val().trim() : '', 9414 error_str = ''; 9415 9416 if(checkEmojis(emoji_val)) error_str = $.lang[LANG]['config.unable.emoji']; 9417 else if(regexp.hasOwnProperty(type)) { 9418 if(!regexp[type].test(val)) error_str = $.lang[LANG]['siteum.regexp.check.'+type]; 9419 else { 9420 var checkDuplicate = ( event_type == 'blur' && 9421 $.inArray(type, ['email','nick']) > -1 && 9422 typeof $(input).attr('data-prev') != 'undefined' && 9423 $(input).attr('data-prev').trim().toLowerCase() != val.toLowerCase() 9424 ) ? true : false;
9425 if(type == 'email' && $('input#member-id').val().trim().toLowerCase() == val.toLowerCase()) checkDuplicate = false; 9426 else if(type == 'nick' && ($('input#member-nick').val().trim().length < 1 || $('input#member-nick').val().trim().length > 20)) { 9427 checkDuplicate = false; 9428 error_str = $.lang[LANG]['siteum.regexp.check.nick']; 9429 } 9430 if(checkDuplicate) { 9431 var splan = (typeof VALIDTYPE != 'undefined' && VALIDTYPE) ? VALIDTYPE : ''; 9432 $.post('/umember/join/used_check', { sid : SID, field : type, data : val, splan : splan }, function(check_result) { 9433 if(typeof check_result.error != 'undefined' && check_result.error) { 9434 error_str = check_result.error; 9435 } 9436 }, 'json'); 9437 } 9438 } 9439 } 9440 9441 9442 if(error_str.length > 0) { 9443 var error_html = '<span class="mng-error">\ 9444 <svg class="error-icon" viewBox="0 0 13 13" width="13" height="13">\ 9445 <path d="M6.5 0C2.91 0 0 2.91 0 6.5S2.91 13 6.5 13 13 10.09 13 6.5 10.09 0 6.5 0zM6.5 12C3.47 12 1 9.53 1 6.5S3.47 1 6.5 1 12 3.47 12 6.5 9.53 12 6.5 12z"/>\ 9446 <rect x="6" y="3" width="1" height="5"/>\ 9447 <rect x="6" y="9" width="1" height="1"/>\ 9448 </svg>' + error_str + '</span>\ 9449 '; 9450 9451 $(input).closest('.form-group').addClass('has-error'); 9452 if($(input).closest('.form-group').find('.mng-error').length > 0) $(input).closest('.form-group').find('.mng-error').replaceWith(error_html); 9453 else $(input).closest('.form-group').append(error_html); 9454 } else { 9455 $(input).closest('.form-group').removeClass('has-error').find('.mng-error').remove(); 9456 } 9457 } 9458 9459 $('.info-modal .form-control').live({ 9460 keyup : function(e) { info_recheck_regexp($(this),'keyup'); }, 9461 blur : function(e) { info_recheck_regexp($(this),'blur'); } 9462 }); 9463 9464 }); 9465 9466 9467 $('#member-memo').live('keyup', function() { 9468 var str = $(this).val(); 9469 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 9470 $(this).next('label').find('.write-count').text(str.length); 9471 if(str.length > 1000) { 9472 $(this).val($(this).val().substring(0, 1000)); 9473 } 9474 }); 9475 if(no_active_btn) $('.memberinfo-modal.cl-cmmodal .ok-button-dialog.btn-sm').addClass(no_active_btn); 9476 } else { // only show__ 9477 var info_modal = $(this).showModalFlat($.lang[LANG]['manager.member.details.title'], modal_content, true, false, '', 'ok', '', 'member-waitlist cl-cmmodal cl-s-btn cover'); 9478 if(no_active_btn) $('.member-waitlist.cl-cmmodal .ok-button-dialog.btn-sm').addClass(no_active_btn); 9479 } 9480 9481 9482 }, 'json'); 9483 9484 }); 9485 9486 /***************************************************************************************************************************************member-list page END*/ 9487 9488 9489 9490 9491 9492 /*********************************************************************************************************************************member-waitlist page START*/ 9493 $('.approval-btn, .deny-btn').live('click', function() { 9494 if($(this).hasClass('member_disabled')) { 9495 siteNotice('manager'); 9496 return false; 9497 } 9498 var position = $(this).closest('td'), 9499 uno = $(this).closest('tr').attr('data-uno'), 9500 uid = $(this).closest('tr').attr('data-uid'), 9501 result = ($(this).hasClass('approval-btn')) ? 'hand' : 'deny', 9502 wait_cnt = parseInt($(this).closest('.mng-wrap').find('.wait-count').text()), 9503 isDeny = $(this).hasClass('deny-btn') ? true : false, 9504 applyhtml = ''; 9505 9506 if(isDeny) $(this).parents('tr[data-uno="'+uno+'"]').find('.member-info').addClass('hide'); 9507 9508 $.post('/umember/update/type/approval', { sid : SID, val : result, uid : uid, uno : uno }, function(data) { 9509 if(typeof data.error != 'undefined' && data.error) { 9510 alert(data.error); 9511 return false; 9512 } 9513 9514 applyhtml += '\ 9515 <span>'+$.lang[LANG]['manager.wait-list.approval.'+result]+'</span>\ 9516 <span>('+data.result.um_approvaldate+')</span>\ 9517 '; 9518 $('.mng-settings[data-type="member-waitlist"]').find('.wait-count').text(wait_cnt-1); 9519 position.html(applyhtml).addClass('approval-status'); 9520 }, 'json'); 9521 9522 }); 9523 /***********************************************************************************************************************************member-waitlist page END*/ 9524 9525 /********************************************************************************************************************************member-blocklist page START*/ 9526 9527 $('.block-add-btn').live('click', function() { 9528 if($(this).hasClass('member_disabled')) { 9529 siteNotice('manager'); 9530 return false;
9531 } 9532 var mng_settings_el = $(this).closest('.mng-settings'), 9533 add_content = '\ 9534 <div class="form-row">\ 9535 <div class="form-inline clearfix">\ 9536 <div class="form-group col-sm-5">\ 9537 <select id="block-type" class="form-control" name="block-type" placeholder="Search">\ 9538 <option value="id">íì ìì´ë</option>\ 9539 <option value="ip">IP</option>\ 9540 </select>\ 9541 </div>\ 9542 <div class="form-group col-sm-7"><input class="form-control" type="text" id="block-data"/></div>\ 9543 </div>\ 9544 </div>\ 9545 '; 9546 9547 var modal = $(this).showModalFlat('Block data add', add_content, true, true, function() { 9548 var key = modal.find('#block-type').val(), 9549 val = modal.find('#block-data').val().trim(), 9550 regExp_ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/gi; 9551 9552 if(key === null) { 9553 modal.find('#block-type').click(); 9554 return false; 9555 } else if(modal.find('.error').length > 0) { 9556 modal.find('#block-data').focus(); 9557 return false; 9558 } else if (modal.find('#block-data').val().trim().length == 0) { 9559 modal.find('#block-data').focus(); 9560 modal.find('#block-data').parent().append('<span class="error">ë´ì©ì ì ë ¥íì¸ì</span>'); 9561 return false; 9562 } else if (key == 'ip' && !regExp_ip.test(val)) { 9563 modal.find('#block-data').focus(); 9564 modal.find('#block-data').parent().append('<span class="error">ip íìì´ ì¬ë°ë¥´ì§ ììµëë¤.</span>'); 9565 return false; 9566 } 9567 9568 $.ajax({ 9569 type: 'POST', 9570 url: '/umember/set/type/block', 9571 data: { sid : SID, key : key, val : val }, 9572 dataType: 'json', 9573 async: true, 9574 success: function(data) { 9575 9576 if(typeof data.error != 'undefined' && data.error) { 9577 if(modal.find('.error').length == 0) modal.find('#block-data').focus().parent().append('<span class="error">' + data.error + '</span>'); 9578 else modal.find('#block-data').focus().next('.error').text(data.error); 9579 return false; 9580 } else { 9581 modal.modal('hide'); 9582 window.location.reload(); 9583 } 9584 9585 } 9586 }); 9587 9588 9589 }, 'cancel','save', 'block-add-modal'); 9590 9591 $('#block-data').live({ 9592 keyup: function() { 9593 $(this).parent().find('.error').remove(); 9594 } 9595 }); 9596 9597 9598 }); 9599 9600 $('.block-clear-btn').live('click', function() { 9601 if($(this).hasClass('member_disabled')) { 9602 siteNotice('manager'); 9603 return false; 9604 } 9605 var block_type = $(this).closest('tr').find('.type').attr('data-type'), 9606 block_val = $(this).closest('tr').find('.val').text().trim(), 9607 block_id = $(this).closest('tr').find('.id').text().trim(), 9608 block_data = $(this).closest('tr').attr('data-id'), 9609 is_uadmin = $(this).parents('.mng-member').attr('data-uadmin'); 9610 9611 if(block_data == 0) return false; 9612 else { 9613 var modal_content = '\ 9614 <div class="mng-modal-body clear-modal">\ 9615 <p class="addressee-wrap">\ 9616 ' + $.lang[LANG]['manager.block-list.block.clear.txt.1'] + '\ 9617 <span class="addressee-name">' + block_id + '</span> \ 9618 ' + $.lang[LANG]['manager.block-list.block.clear.txt.2'] + '\ 9619 </p>\ 9620 </div>\ 9621 '; 9622 9623 var modal = $(this).showModalFlat($.lang[LANG]['manager.block-list.block.clear.title'], modal_content, true, true, function() { 9624 9625 $.ajax({ 9626 type: 'POST', 9627 url: '/umember/delete/type/block', 9628 data: { sid : SID, val : block_data, block_type : block_type, block_val : block_val }, 9629 async: true, 9630 success: function(data) { 9631 if(typeof data.error != 'undefined' && data.error) { 9632 alert(data.error); 9633 return false;
9634 } else { 9635 var cntTr = $(this).parents('table').length; 9636 9637 if(cntTr > 0) window.location.reload(); 9638 else location.href = is_uadmin+'/member/blocklist'; 9639 } 9640 } 9641 }); 9642 9643 },'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 9644 9645 } 9646 9647 }); 9648 9649 /**********************************************************************************************************************************member-blocklist page END*/ 9650 9651 9652 /********************************************************************************************************************************member-leavelist page START*/ 9653 $('.leavelist .mng-selectboxlist select.form-control').live('change',function() { 9654 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/leavelist' : '/manager/member/leavelist', 9655 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 9656 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 9657 stx = $(this).parents('.mng-list').find('.mng-search-box').find('#stx').val(); 9658 9659 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view); 9660 }); 9661 9662 $('.leavelist .mng-search-box .search-btn').live('click',function(e) { 9663 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/leavelist' : '/manager/member/leavelist', 9664 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 9665 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 9666 stx = $(this).parents('.mng-search-box').find('#stx').val(); 9667 9668 if(checkEmojis(stx)) { 9669 e.preventDefault(); 9670 errorEmojisModal(); 9671 return false; 9672 } 9673 9674 setSiteLogs('um.leavelist','search',{'stx':stx},'um.leavelist'); 9675 9676 if(stx.length > 0) stx = '/stx/'+stx; 9677 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+stx); 9678 }); 9679 9680 function escapeHtml(str) { 9681 return str 9682 .replace(/&/g, '&') 9683 .replace(/"/g, '"') 9684 .replace(/'/g, ''') 9685 .replace(/</g, '<') 9686 .replace(/>/g, '>'); 9687 } 9688 /**********************************************************************************************************************************member-leavelist page END*/ 9689 9690 9691 /****************************************************************************************************************************************Mypage Modal START*/ 9692 $('.my-cl-edit').live({ 9693 click: function() { 9694 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'), 9695 sid = $('#mypage-modal').attr('data-sid'), 9696 uid = $('#mypage-modal').attr('data-uid'); 9697 9698 var clInput = function(type, value) { 9699 if(type == 'id') return; 9700 var str = '\ 9701 <div class="input-group my-cl-update-wrap">\ 9702 '; 9703 9704 $.each(value, function(i,v) { 9705 9706 if(type == 'addr') { 9707 var plan_type = (typeof property != 'undefined' && property) ? property.VALIDTYPE : VALIDTYPE, 9708 checkSM = (typeof plan_type != 'undefined' && (plan_type == 'SM' || plan_type == 'SHOPPING')) ? true : false, 9709 usedAddrSearchModal = (checkSM && i==1) ? 'readonly onclick="addrSearchModal(\'my-input\')"' : ''; 9710 field_name = (i == 0) ? 'postcode' : type + i, 9711 hide_class = (i == 0) ? 'hide' : ''; 9712 9713 str += '\ 9714 <input type="text" id="my-input-'+field_name+'" class="my-cl-update form-control ' + hide_class + '" placeholder="' + $.lang[LANG]['manager.join.cl.item.name.enter'] + '" value="' + v + '" data-type="' + type + '"/ ' + usedAddrSearchModal + '>\ 9715 '; 9716 } else { 9717 str += '\ 9718 <input type="text" id="my-input-'+type+'" class="my-cl-update form-control" placeholder="' + $.lang[LANG]['manager.join.cl.item.name.enter'] + '" value="' + v + '" data-type="' + type + '"/>\ 9719 '; 9720 } 9721 9722 }); 9723 str += '\ 9724 </div>\ 9725 '; 9726 return str; 9727 } 9728 $(this).hide(); 9729 cl.find('.my-cl-cancel,.my-cl-save').show(); 9730 cl.addClass('update-mode'); 9731 cl.children().each(function() { 9732 var type = $(this).attr('data-type'), 9733 value = $(this).find('.my-data').map(function() { return $(this).text().trim(); }).get(), 9734 input_text = clInput(type,value); 9735 9736 if(type != 'id') $(input_text).prependTo($(this).find('.mng-panel-body')); 9737 if(cl.children('.focus').length == 0) $(this).addClass('focus').find('input').focus(); 9738 }); 9739 9740 9741 9742 } 9743 }); 9744 9745 $('.my-cl-cancel').live({ 9746 click: function() { 9747 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'); 9748 9749 cl.find('.mng-error').remove(); 9750 cl.find('.my-cl-cancel,.my-cl-save').hide(); 9751 cl.find('.my-cl-edit').show(); 9752 cl.removeClass('update-mode'); 9753 cl.children().each(function() { 9754 $(this).find('.my-cl-update-wrap').remove(); 9755 }); 9756 } 9757 }); 9758 9759 $('.my-cl-save').live({ 9760 click: function() { 9761 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'), 9762 sid = $('#mypage-modal').attr('data-sid'), 9763 uid = $('#mypage-modal').attr('data-uid'), 9764 cl_data = {}, 9765 check_error = false;
9766 9767 if(cl.find('.has-error').length > 0) cl.find('.has-error').addClass('foucs').find('.my-cl-update').first().focus(); 9768 9769 var recheck_regexp = function(input) { 9770 var field = input.attr('data-type'), 9771 val = input.val(), 9772 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 9773 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 9774 reg = new RegExp(reg_pattern), 9775 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 9776 9777 if(reg_has && !reg.test(val)) { 9778 input.closest('.mng-panel-body').find('.mng-error').text(reg_ex); 9779 } else { 9780 input.closest('.mng-panel').removeClass('has-error').find('.mng-error').remove(); 9781 } 9782 } 9783 9784 $('#mypage-modal .mng-settings[data-type="profile"] .my-cl-update').live({ 9785 focus: function(e) { $(this).closest('.mng-panel').addClass('focus').siblings().removeClass('foucs'); }, 9786 keyup : function(e) { recheck_regexp($(this)); }, 9787 blur : function(e) { $(this).closest('.mng-panel').removeClass('focus'); } 9788 }); 9789 9790 cl.children('.mng-panel:not([data-type="id"])').each(function() { 9791 var field = $(this).attr('data-type'), 9792 optional = $(this).hasClass('optional') ? true : false, 9793 value = $(this).find('.my-cl-update').map(function() { return $(this).val().trim(); }).get(), 9794 this_cl = $(this), 9795 // prev_value = $(this).find('.my-data').map(function() { return $(this).text().trim(); }).get(), 9796 error_str = '', 9797 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 9798 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 9799 reg = new RegExp(reg_pattern), 9800 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 9801 9802 $.each(value, function(i,v) { 9803 9804 if(field == 'addr' && i == 0) return true; 9805 9806 var field_name = (field == 'addr') ? field + i : field, 9807 this_wrap = this_cl.find('.mng-panel-body'); 9808 9809 if(optional && v.length==0 && i==0) error_str = $.lang[LANG]['manager.check.required.message']; 9810 else if(reg_has && !reg.test(v)) { 9811 error_str = (v.length == 0 && !optional) ? '' : COLLECTION_REGEX[field]['error']; 9812 } 9813 9814 if(error_str.length > 0) { 9815 this_cl.addClass('has-error'); 9816 if(this_wrap.find('.mng-error').length > 0) this_wrap.find('.mng-error').text(error_str); 9817 else this_wrap.append('<span class="mng-error">' + error_str + '</span>'); 9818 9819 if(cl.find('.mng-panel.focus').length == 0) this_cl.find('.my-input-'+field_name).focus(); 9820 } else { 9821 this_cl.removeClass('has-error'); 9822 this_wrap.find('.mng-error').remove(); 9823 9824 if(field == 'addr' && i == 1) { 9825 var postcode = $('#my-input-postcode').val(); 9826 v = (typeof postcode != 'undefined' && postcode) ? postcode.trim() + '|| ' + v : ' || ' + v; 9827 } 9828 9829 cl_data[field_name] = v; 9830 } 9831 }); 9832 }).promise().done(function() { 9833 var check_error = (cl.find('.has-error').length == 0) ? true : false; 9834 9835 if(!check_error) { 9836 cl.find('.has-error').first().first('input').focus(); 9837 } else { 9838 $.ajax({ 9839 type: 'POST', 9840 url: '/umember/update/type/member', 9841 data: { sid : sid, val: JSON.stringify(cl_data), uid : uid }, 9842 dataType: 'json', 9843 async: true, 9844 success: function(data) { 9845 // if(typeof data.error != 'undefined' && data.error) { 9846 // alert(data.error); 9847 // return false; 9848 // } 9849 if(typeof data.error != 'undefined' && data.error) { 9850 $.each(data.error, function(key,str) {
9851 if(cl.find('#my-input-'+key).length > 0 ) { 9852 cl.find('#my-input-'+key).focus(); 9853 cl.find('#my-input-'+key).closest('.mng-panel-body').append('<span class="mng-error">' + str + '</span>'); 9854 } else { alert(str); return false; } 9855 }); 9856 if(cl.find('.mng-error').length > 0) return false; 9857 } 9858 cl.find('.mng-error').remove(); 9859 9860 cl.find('.my-cl-cancel,.my-cl-save').hide(); 9861 cl.find('.my-cl-edit').show(); 9862 cl.removeClass('update-mode'); 9863 $.each(cl_data,function(k,v) { 9864 9865 if(k == 'addr1') { 9866 var addr_arr = v.split('||'), 9867 postcode_str = (addr_arr[0]) ? addr_arr[0].trim() : ''; 9868 cl.find('.my-postcode').text(postcode_str); 9869 v = (addr_arr[1]) ? addr_arr[1].trim() : ''; 9870 } 9871 9872 cl.find('.my-'+k).text(v); 9873 9874 if(k == 'nick') { 9875 if($('._admin_dashboard .site-info .site-data .site-username').length > 0) { 9876 $('._admin_dashboard .site-info .site-data .site-username').text(v).attr('data-user-name',v); 9877 } 9878 if($('#mobile-nav').length > 0) $('#mobile-nav .login-nick span').text(v); 9879 } 9880 }); 9881 cl.find('.my-cl-update-wrap').remove(); 9882 } 9883 }); 9884 } 9885 9886 }); 9887 9888 9889 } 9890 }); 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 $('.mng-siteUM-modal .my-image-edit').live({ 9902 click: function() { 9903 var sid = $('#mypage-modal').attr('data-sid'), 9904 uid = $('#mypage-modal').attr('data-uid'), 9905 src = $('.mng-settings[data-type="profile"]').find('.my-image').attr('src'); 9906 9907 $.umember.showMyImageUploadModal(sid, uid, src); 9908 } 9909 }); 9910 9911 9912 $('.mng-siteUM-modal .my-password-save').live({ 9913 click: function() { 9914 var mypageModal = $('#mypage-modal'), 9915 myPasswordWrap = mypageModal.find('.mng-settings[data-type="password-change"]'), 9916 mng_settings_el = $(this).closest('.mng-settings'); 9917 9918 myPasswordWrap.find('input.form-control').each(function() { 9919 var field = $(this).attr('id').trim().replace(/input-/,''), 9920 val = $(this).val(), 9921 errorEL = $(this).next('.mng-error'), 9922 error_str = '', 9923 reg_has = (field != 'new-password-checked') ? true : false, 9924 reg_pattern = (reg_has) ? COLLECTION_REGEX['password']['pattern_j'] : '', 9925 reg = new RegExp(reg_pattern), 9926 reg_error = (reg_has) ? COLLECTION_REGEX['password']['error'] : ''; 9927 9928 if(val.length == 0) error_str = $.lang[LANG]['siteum.regexp.password.input']; 9929 else { 9930 if(reg_has && !reg.test($(this).val()) ) error_str = reg_error; 9931 else if( field == 'new-password-checked' && ($(this).val() != myPasswordWrap.find('#input-new-password').val())) error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 9932 } 9933 9934 if(error_str.length > 0) { 9935 if(errorEL.length > 0 ) errorEL.addClass('empty').text(error_str); 9936 else $(this).after('<span class="mng-error empty">'+ $.lang[LANG]['siteum.regexp.password.input'] + '</span>'); 9937 9938 if(myPasswordWrap.find('.mng-panel-body.focus').length == 0) $(this).focus(); 9939 else { myPasswordWrap.find('.mng-panel-body.focus input').focus(); } 9940 } else { 9941 errorEL.remove(); 9942 $(this).closest('.mng-panel-body').removeClass('focus'); 9943 } 9944 }); 9945 9946 9947 if(myPasswordWrap.find('.mng-error').length == 0) { 9948 var uid = mypageModal.find('.my-id').text(), 9949 pw = hex_md5(myPasswordWrap.find('#input-password').val()), 9950 new_pw = hex_md5(myPasswordWrap.find('#input-new-password').val()); 9951 9952 $.post('/umember/password/change', { uid : uid, pw : pw, new_pw : new_pw }, function(data) { 9953 if(typeof data.error != 'undefined' && data.error) { 9954 $.each(data.error, function(key,str) { 9955 if(mypageModal.find('#input-'+key).length > 0) { 9956 mypageModal.find('#input-'+key).closest('.mng-panel-body').append('<span class="mng-error">' + str + '</span>'); 9957 mypageModal.find('#input-'+key).focus(); 9958 } else { alert(str,'/manager/member'); return false; } 9959 }); 9960 if(mypageModal.find('.mng-error').length > 0) return false; 9961 } 9962 mypageModal.find('input.form-control').val(''); 9963 mngShowToast('check', $.lang[LANG]['siteum.forgot.pw.success'], mng_settings_el); 9964 9965 }, 'json'); 9966 } 9967 9968 9969 9970 9971 } 9972 }); 9973 9974 $('.mng-siteUM-modal .mng-settings[data-type="password-change"] input.form-control').live({ 9975 focus: function() { 9976 $(this).closest('.mng-panel-body').addClass('focus').siblings().removeClass('focus'); 9977 }, 9978 blur: function() { 9979 $(this).closest('.mng-panel-body').removeClass('focus'); 9980 }, 9981 keyup: function() { 9982 9983 var field = $(this).attr('id').trim().replace(/input-/,''), 9984 groupEl = $(this).closest('.mng-panel-body'), 9985 errorEL = $(this).next('.mng-error'), 9986 reg_pw = (field == 'new-password-checked') ? field : 'password', 9987 reg_has = (typeof COLLECTION_REGEX[reg_pw] != 'undefined' && COLLECTION_REGEX[reg_pw]) ? true : false, 9988 reg_pattern = (reg_has) ? COLLECTION_REGEX[reg_pw]['pattern_j'] : '', 9989 reg_ex = (reg_has) ? COLLECTION_REGEX[reg_pw]['ex'] : ''; 9990 9991 if(field == 'new-password' || field == 'new-password-checked') { 9992 var pwEl = $('.mng-settings[data-type="password-change"]').find('#input-new-password'), 9993 pw2El = $('.mng-settings[data-type="password-change"]').find('#input-new-password-checked'), 9994 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 9995 9996 if(pwEl.val() == pw2El.val()) { 9997 pw2El.next('.mng-error').remove(); 9998 } else { 9999 if(pw2El.val().length > 0) { 10000 if(pw2El.next('.mng-error').length > 0) pw2El.next('.mng-error').removeClass('empty').text(error_str); 10001 else pw2El.closest('.mng-panel-body').append('<span class="mng-error">'+ error_str + '</span>'); 10002 } 10003 } 10004 10005 } 10006 10007 if(reg_has && errorEL.length > 0) { 10008 var reg = new RegExp(reg_pattern); 10009 if(reg.test($(this).val())) errorEL.remove(); 10010 else { errorEL.removeClass('empty').text(reg_ex); } 10011 } 10012 10013 } 10014 }); 10015 10016 $('.mng-siteUM-modal .my-account-remove').live({ 10017 click: function() { 10018 var sid = $('#mypage-modal').attr('data-sid'), 10019 uid = $('#mypage-modal').attr('data-uid'); 10020 10021 var content = '\ 10022 <div class="mng-in-flat-modal-wrap">\ 10023 <div class="my-account-remove-info text-left">\ 10024 <strong>' + $.lang[LANG]['manager.mypage.my-remove.txt.1'] + '</strong>\ 10025 <ol>\ 10026 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.2'] + '</li>\ 10027 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.3'] + '</li>\ 10028 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.4'] + '</li>\ 10029 </ol>\ 10030 </div>\ 10031 <div class="my-account-remove-check clearfix">\ 10032 <div class="checkboxs hand">\ 10033 <input type="checkbox" class="my-account-remove-agree" id="my-account-remove-agree">\ 10034 <strong>' + $.lang[LANG]['manager.mypage.my-remove.agree.txt'] + '</strong>\ 10035 </div>\ 10036 </div>\ 10037 </div>\ 10038 '; 10039 10040 $('.my-account-remove-agree').live({ 10041 click: function() { 10042 if($(this).prop('checked')) $(this).closest('.my-account-remove-check').find('.mng-error').remove(); 10043 } 10044 }); 10045 10046 $('.my-account-remove-input-password').live({ 10047 keyup: function() { 10048 if($(this).val().length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 10049 } 10050 }); 10051 10052 var agreeModal = $(this).showModalFlat('DELETE ACCOUNT', content, true, true, function() { 10053 var checked = agreeModal.find('#my-account-remove-agree').prop('checked'), 10054 errorEL = agreeModal.find('.my-account-remove-check').find('.mng-error'), 10055 error_str = (!checked) ? $.lang[LANG]['manager.mypage.my-remove.agree.check'] : ''; 10056 10057 if(!checked) { 10058 if(errorEL.length > 0) errorEL.text(error_str); 10059 else $('.my-account-remove-check').append('<span class="mng-error">' + error_str + '</span>'); 10060 return false;
10061 } 10062 10063 var udata_content = '\ 10064 <div class="mng-in-flat-modal-wrap padding-top-0">\ 10065 <p style="margin-bottom: 15px;">' + $.lang[LANG]['manager.mypage.my-remove.description'] + '</p>\ 10066 <span class="form-group">\ 10067 <input class="form-control" type="password" id="input-password" placeholder="' + $.lang[LANG]['siteum.regexp.password.input'] + '">\ 10068 </span>\ 10069 </div>\ 10070 '; 10071 10072 var removeModal = $(this).showModalFlat('DELETE ACCOUNT', udata_content, true, true, function() { 10073 var pw = removeModal.find('#input-password').val(); 10074 10075 if(pw.length == 0) { 10076 if(removeModal.find('.mng-error').length > 0) removeModal.find('.mng-error').text($.lang[LANG]["siteum.regexp.password.input"]); 10077 else removeModal.find('.form-group').append('<span class="mng-error">' + $.lang[LANG]["siteum.regexp.password.input"] + '</span>'); 10078 10079 removeModal.find('#input-password').focus(); 10080 return false; 10081 } else { 10082 $.processON('Deleting....'); 10083 var remove_data = { 10084 'id' : uid, 10085 'password' : hex_md5(pw), 10086 }; 10087 10088 removeModal.find('.mng-error').remove(); 10089 $.post('/umember/login/remove', { data : JSON.stringify(remove_data) }, function(data) { 10090 if(typeof data.error != 'undefined' && data.error) { 10091 $.processOFF(); 10092 $.each(data.error, function(key,str) { 10093 if(removeModal.find('#input-'+key).length > 0 ) { 10094 removeModal.find('#input-'+key).closest('.form-group').append('<span class="mng-error">' + str + '</span>'); 10095 removeModal.find('#input-'+key).focus(); 10096 } else { alert(str); return false; } 10097 }); 10098 if(removeModal.find('.mng-error').length > 0) return false; 10099 } 10100 10101 removeModal.modal('hide'); 10102 agreeModal.modal('hide'); 10103 $('#mypage-modal').modal('hide'); 10104 $.umember.init(); 10105 setTimeout(function() { 10106 $.processOFF(); 10107 var successModal = $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.mypage.my-remove.success'], true, false, '', 'ok'); 10108 }, '1000'); 10109 10110 }, 'json'); 10111 } 10112 10113 10114 }, 'cancel', 'manager.mypage.my-remove.last-btn', 'mng-mypage-modal'); /*removeModal:: END*/ 10115 10116 10117 10118 }, 'cancel', '', 'w480 mng-mypage-modal'); /*agreeModal:: END*/ 10119 10120 10121 } 10122 }); 10123 10124 10125 10126 10127 /******************************************************************************************************************************************Mypage Modal END*/ 10128 10129}); 10130 10131// psearch 모ë°ì¼ í ì¢ì° ê·¸ë¼ë°ì´ì ì¶ê° *********************************************************************************************************************** 10132document.addEventListener('DOMContentLoaded', () => { 10133 const wrap = document.querySelector('.dsgn-body .psearch-body .psearch-tabs'); 10134 const nav = wrap && wrap.querySelector('.dsgn-body .psearch-body .psearch-tab-nav, .psearch-tab-nav'); 10135 if (!wrap || !nav) return; 10136 10137 const MOBILE_MQ = window.matchMedia('(max-width: 767px)'); 10138 const isOverflowing = () => nav.scrollWidth > nav.clientWidth + 1; 10139 10140 /* ========================= 10141 1) 모ë°ì¼ ê·¸ë¼ë°ì´ì (íì´ë) 10142 ========================= */ 10143 const updateFade = () => { 10144 const max = nav.scrollWidth - nav.clientWidth; 10145 10146 if (!MOBILE_MQ.matches || max <= 1) { 10147 wrap.classList.remove('has-left', 'has-right'); 10148 return; 10149 } 10150 10151 wrap.classList.toggle('has-left', nav.scrollLeft > 1); 10152 wrap.classList.toggle('has-right', nav.scrollLeft < max - 1); 10153 }; 10154 10155 nav.addEventListener('scroll', updateFade, { passive: true }); 10156 window.addEventListener('resize', updateFade); 10157 MOBILE_MQ.addEventListener?.('change', updateFade); 10158 requestAnimationFrame(() => requestAnimationFrame(updateFade)); 10159 10160 10161 /* ========================= 10162 2) PC(ë§ì°ì¤) ëëê·¸ ì¤í¬ë¡¤ (í´ë¦ ì´ë¦¬ë ë²ì ) 10163 - threshold ì´ì ìì§ìì ëë§ dragë¡ ì í 10164 - ê·¸ëë§ setPointerCapture + preventDefault 10165 ========================= */ 10166 const DRAG_THRESHOLD = 6; 10167 10168 let pointerId = null; 10169 let down = false; 10170 let dragging = false; 10171 let startX = 0; 10172 let startLeft = 0; 10173 let moved = 0; 10174 let suppressClick = false; 10175 10176 nav.addEventListener('pointerdown', (e) => { 10177 if (e.pointerType !== 'mouse') return; 10178 if (!isOverflowing()) return; 10179 if (e.button !== 0) return; 10180 10181 down = true; 10182 dragging = false;
10183 suppressClick = false; 10184 moved = 0; 10185 10186 pointerId = e.pointerId; 10187 startX = e.clientX; 10188 startLeft = nav.scrollLeft; 10189 }); 10190 10191 nav.addEventListener('pointermove', (e) => { 10192 if (!down) return; 10193 if (e.pointerId !== pointerId) return; 10194 10195 const dx = e.clientX - startX; 10196 moved = Math.max(moved, Math.abs(dx)); 10197 10198 // threshold ëì´ê°ë ìê° ëëê·¸ 모ëë¡ ì í 10199 if (!dragging && moved >= DRAG_THRESHOLD) { 10200 dragging = true; 10201 suppressClick = true; 10202 nav.classList.add('is-dragging'); 10203 nav.setPointerCapture?.(pointerId); 10204 } 10205 10206 if (dragging) { 10207 nav.scrollLeft = startLeft - dx; 10208 e.preventDefault(); // ëëê·¸ ì¤ìë§ í ì¤í¸ ì í ë°©ì§ 10209 updateFade(); 10210 } 10211 }); 10212 10213 const endPointer = () => { 10214 if (!down) return; 10215 down = false; 10216 10217 if (dragging) { 10218 nav.classList.remove('is-dragging'); 10219 } 10220 10221 dragging = false; 10222 pointerId = null; 10223 10224 // ëëê·¸ ì§í í´ë¦ 1íë§ ë§ê³ ë¤ì í´ë¦ì ì ì 10225 if (suppressClick) { 10226 setTimeout(() => { suppressClick = false; }, 0); 10227 } 10228 }; 10229 10230 nav.addEventListener('pointerup', endPointer); 10231 nav.addEventListener('pointercancel', endPointer); 10232 window.addEventListener('blur', endPointer); 10233 10234 // ì§ì§ ëëê·¸ìë ê²½ì°ìë§ í´ë¦ ì°¨ë¨ 10235 nav.addEventListener('click', (e) => { 10236 if (suppressClick) { 10237 e.preventDefault(); 10238 e.stopPropagation(); 10239 } 10240 }, true); 10241 10242 10243 /* ========================= 10244 3) ëì ë°°ê²½ì â ê·¸ë¼ë°ì´ì ì ìë ì¶ì¶ 10245 ========================= */ 10246 const applyDynamicBg = () => { 10247 const bg = getComputedStyle(wrap).backgroundColor; 10248 10249 if (bg === 'rgba(0, 0, 0, 0)' || bg === 'transparent') { 10250 let parent = wrap.parentElement; 10251 while (parent) { 10252 const parentBg = getComputedStyle(parent).backgroundColor; 10253 if (parentBg !== 'rgba(0, 0, 0, 0)' && parentBg !== 'transparent') { 10254 wrap.style.setProperty('--tab-bg', parentBg); 10255 return; 10256 } 10257 parent = parent.parentElement; 10258 } 10259 } else { 10260 wrap.style.setProperty('--tab-bg', bg); 10261 } 10262 }; 10263 10264 applyDynamicBg(); 10265 window.addEventListener('resize', applyDynamicBg); 10266}); 10267// psearch 모ë°ì¼ í ì¢ì° ê·¸ë¼ë°ì´ì ì¶ê° end **************************************************************************************************************** 10268 10269/***********************************************************************************************************************************member-config page START*/ 10270var collectionSortable = function(cancel) { 10271 cancel = (cancel) ? cancel : '.collection-item.fix[data-type="email"], .collection-item-used, .collection-item-optional, .collection-name-input, button, .collection-edit, .collection-delete, label, .collection-item-type-select'; 10272 10273 $('#join-collections,#mjoin-collections').sortable({ 10274 items: '.collection-item:not(.fix[data-type="email"])', 10275 handle: '.icon-move', 10276 cancel: cancel, 10277 scroll: true, 10278 placeholder: 'collection-item-placeholder', 10279 update: function(event,ui) { 10280 $.processON(); 10281 10282 var update_data = {}, 10283 new_data = {}, 10284 d_index = 0; 10285 10286 $('#join-collections').children('.collection-item').each(function(i,v){ 10287 var org_idx = $(this).attr('data-idx'), 10288 new_idx = $(this).index(), 10289 item_seq = $(this).attr('data-seq'); 10290 10291 if(org_idx!=new_idx) { 10292 $(this).attr('data-idx',new_idx); 10293 update_data[d_index] = { 10294 seq : item_seq, 10295 idx : new_idx 10296 } 10297 d_index++; 10298 } 10299 }); 10300 10301 $.ajax({ 10302 type: 'POST', 10303 url: '/umember/setJoinCollections/type/jcol_update', 10304 data: { sid: SID, update_data: update_data }, 10305 dataType: 'json', 10306 async: true, 10307 success: function(data) { 10308 if(typeof data.error != 'undefined' && data.error) { 10309 alert(data.error); 10310 return false; 10311 } 10312 10313 var slog_field = {'field_name':$(ui.item).find('.collection-name').text().trim(),'field':$(ui.item).attr('data-type')}; 10314 setSiteLogs('um.config.collection','sort',slog_field,'um.config.collection'); 10315 }, 10316 complete: function () { 10317 $.processOFF(); 10318 } 10319 }); 10320 } 10321 }).disableSelection(); 10322 10323} 10324 10325var collectionItem = function(name,etc) { 10326 var types = ''; 10327 10328 $.each(COLLECTION_TYPES, function(k,v) {
10329 types = types + '<option value="' + k + '" '+((k == 'text') ? 'selected' : '')+'>' + v + '</option>'; 10330 }); 10331 10332 var jcollection_select_type = ['text','memo','radio','check','select','fupload'], 10333 collectionAdd = (!name) ? 'additem' : '', 10334 str = '\ 10335 <div class="collection-item ' + collectionAdd + '" data-type="etc' + etc + '" data-etc="' + etc + '" data-orgjcoltype="text" data-jcoltype="" data-seq="">\ 10336 <div class="collection-info">\ 10337 <span class="icons icon-move cl-sort-handle hand">\ 10338 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path d="M9 4c0 .83-.67 1.5-1.5 1.5S6 4.83 6 4s.67-1.5 1.5-1.5S9 3.17 9 4m3.5 1.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5S11 3.17 11 4s.67 1.5 1.5 1.5m-5 3C6.67 8.5 6 9.17 6 10s.67 1.5 1.5 1.5S9 10.83 9 10s-.67-1.5-1.5-1.5m5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5S14 10.83 14 10s-.67-1.5-1.5-1.5m-5 6c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5S9 16.83 9 16s-.67-1.5-1.5-1.5m5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5S14 16.83 14 16s-.67-1.5-1.5-1.5"/></svg>\ 10339 </span>\ 10340 <span class="collection-name">' + name + '</span>\ 10341 </div>\ 10342 <input type="text" id="collection-name-text" name="name" class="setting-input collection-name-input hide jcol-text" value="'+ name +'" placeholder="'+$.lang[LANG]['manager.config.jcollection.item.placeholder.collection-name-input']+'">\ 10343 <div class="collection-config">\ 10344 <div class="icons hand">\ 10345 <svg class="collection-edit memberconfig-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g data-name="그룹_6421"><g data-name="그룹_6429"><path d="M13.57 3.22 8.27 10l-.46 2.17c-.03.16 0 .33.09.47.13.2.36.31.6.28.07 0 .13-.03.2-.06l1.95-.93 5.27-6.72.08-.1zm-4.16 7.35 4.37-5.59.46.36-4.37 5.59-.58.28.13-.63Zm3.6.95h1.25v3.12c0 1.17-.95 2.12-2.12 2.12h-6c-1.17 0-2.12-.95-2.12-2.12v-7c0-1.17.95-2.13 2.12-2.13h3.12v1.25H6.14c-.48 0-.87.39-.88.88v7c0 .48.39.87.88.88h6c.48 0 .87-.39.88-.87v-3.13Z"/></g></g></svg>\ 10346 </div>\ 10347 <div class="icons hand">\ 10348 <svg class="collection-delete memberconfig-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g data-name="그룹_6416"><g data-name="그룹_6428"><path d="M13.12 5.88v-2H6.89v2H3.87v1.25h1v6.88c0 1.17.95 2.12 2.12 2.12h6c1.17 0 2.12-.95 2.12-2.12V7.13h1V5.88h-3Zm-1.24 0H8.15v-.75h3.73zm1.12 9H7c-.48 0-.87-.39-.88-.88V7.12h7.75V14c0 .48-.39.87-.88.88m-2.11-7h1.25v6.25h-1.25zm-3 0h1.25v6.25H7.88z"/></g></g></svg>\ 10349 </div>\ 10350 <div class="use-option-check">\ 10351 <div class="checkboxs hand newcheckbox">\ 10352 <label>\ 10353 <div class="newcheckboxSvg">\ 10354 <input type="checkbox" class="collection-item-used" id="collection-item-used-additem"/>\ 10355 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="m4.4 5.6 2.21 2.21A9.03 9.03 0 0 0 3.52 12c1.27 3.59 4.67 6 8.48 6 1.35 0 2.69-.31 3.9-.9l2.5 2.5 1.2-1.2-14-14zM12 16c-2.21 0-4-1.79-4-4 0-.76.24-1.51.66-2.14l1.09 1.09c-.16.33-.24.69-.25 1.05a2.5 2.5 0 0 0 2.5 2.5c.36 0 .72-.09 1.05-.25l1.09 1.09c-.63.42-1.38.65-2.14.66m2.43-4.57-1.86-1.86c.92.22 1.64.94 1.86 1.86m6.05.57a9.05 9.05 0 0 1-2.12 3.36l-2.47-2.46a3.965 3.965 0 0 0-4.78-4.78L9.39 6.4c4.6-1.41 9.49 1.07 11.09 5.61"/></svg>\ 10356 <svg class="active" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M12 6c-3.81 0-7.21 2.41-8.48 6 1.65 4.68 6.78 7.14 11.46 5.49A8.95 8.95 0 0 0 20.47 12c-1.27-3.59-4.67-6-8.48-6M12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4m2.5-4a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1 5 0"/></svg>\ 10357 <!--<label for="collection-item-used-additem"></label>-->\ 10358 </div>\ 10359 </label>\ 10360 </div>\ 10361 <div class="checkboxs hand newcheckbox">\ 10362 <label>\ 10363 <div class="newcheckboxSvg">\ 10364 <input type="checkbox" class="collection-item-optional" id="collection-item-optional-additem"/>\ 10365 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><g data-name="그룹_6435"><path class="collection-optional-bg" d="M5 2h10c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H5c-1.66 0-3-1.34-3-3V5c0-1.66 1.34-3 3-3" data-name="í¨ì¤_4513"/><path class="collection-optional-line" d="M15 3.25c.97 0 1.75.78 1.75 1.75v10c0 .97-.78 1.75-1.75 1.75H5c-.97 0-1.75-.78-1.75-1.75V5c0-.97.78-1.75 1.75-1.75zM15 2H5C3.34 2 2 3.34 2 5v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3"/></g></svg>\ 10366 <svg class="active" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20"><path d="M15 2H5C3.34 2 2 3.34 2 5v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3m.03 6.03-5.5 5.5c-.29.29-.77.29-1.06 0l-3.5-3.5a.754.754 0 0 1 0-1.06c.29-.29.77-.29 1.06 0L9 11.94l4.97-4.97c.3-.29.77-.28 1.06.02.28.29.28.75 0 1.04"/></svg>\ 10367 <!--<label for="collection-item-optional-additem"></label>-->\ 10368 </div>\ 10369 </label>\ 10370 </div>\ 10371 </div>\ 10372 </div>\ 10373 <div class="clear"></div>\ 10374 <div class="collection-item-content" style="display:none;">\ 10375 <div class="collection-item-content-wrap">\ 10376 <div class="collection-type-selectbox common-selectbox">\ 10377 <select name="jcollection-select-type" class="setting-small-input selectpicker dropdown jcollection-select">\ 10378 '; 10379 $.each(jcollection_select_type, function(i,v){ 10380 var selected = (v=='text') ? 'selected' : ''; 10381 str += '<option class="jcollection-type-opt" value="'+v+'" '+selected+'>'+$.lang[LANG]['manager.config.siteUM.jcollections.'+v]+'</option>'; 10382 }); 10383 10384 str += '\ 10385 </select>\ 10386 <svg viewBox="0 0 8 4" width="8" height="4"><polygon points="0 0 4 4 8 0 "></polygon></svg>\ 10387 </div> \ 10388 <span class="collection-type-info hand">\ 10389 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
10389<path d="M5.5 12c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5-6.5-2.9-6.5-6.5Zm1 0c0 3 2.5 5.5 5.5 5.5s5.5-2.5 5.5-5.5S15 6.5 12 6.5 6.5 9 6.5 12Zm5 3.5v-1h1v1h-1Zm0-2c0-.7.3-1.3.9-1.7.4-.3.7-.8.8-1.3 0-.5-.4-.9-.9-1h-.1c-.6 0-1 .1-1.1.8v.2h-1v-.2c0-1.1 1-1.9 2-1.8h.1c1 0 2 .7 2 1.8v.1c0 .7-.4 1.4-1 1.9-.6.6-.7.9-.7 1.2h-1Z"/></svg>\ 10390 </span>\ 10391 </div>\ 10392 <div class="description-wrap hide">\ 10393 <div class="description-input hide">\ 10394 <div class="cl-common-form-wrap nonplace-holder">\ 10395 <div class="cl-common-form-group">\ 10396 <input type="text" id="collection-description-text" name="description" class="setting-input description-text jcol-text" value="" placeholder="'+$.lang[LANG]['manager.config.siteUM.jcollections.description.placeholder']+'">\ 10397 </div>\ 10398 </div>\ 10399 </div>\ 10400 <div class="newcheckbox hand">\ 10401 <label>\ 10402 <div class="newcheckboxSvg">\ 10403 <input type="checkbox" class="" id="collection-description" name="description" value="">\ 10404 <svg viewBox="0 0 16 16" width="16" height="16">\ 10405 <path class="st6" d="M3 0h10c1.66 0 3 1.34 3 3v10c0 1.66-1.34 3-3 3H3c-1.66 0-3-1.34-3-3V3C0 1.34 1.34 0 3 0z"></path>\ 10406 <path class="st19" d="M13 1c1.1 0 2 0.9 2 2v10c0 1.1-0.9 2-2 2H3c-1.1 0-2-0.9-2-2V3c0-1.1 0.9-2 2-2H13M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0L13 0z"></path>\ 10407 </svg>\ 10408 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 10409 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 10410 <path class="st19" d="M13 0H3C1.34 0 0 1.34 0 3v10c0 1.66 1.34 3 3 3h10c1.66 0 3-1.34 3-3V3C16 1.34 14.66 0 13 0zM13.03 6.03l-5.5 5.5C7.38 11.68 7.19 11.75 7 11.75s-0.38-0.07-0.53-0.22l-3.5-3.5c-0.29-0.29-0.29-0.77 0-1.06s0.77-0.29 1.06 0L7 9.94l4.97-4.97c0.29-0.29 0.77-0.29 1.06 0S13.32 5.74 13.03 6.03z"></path>\ 10411 </svg>\ 10412 </div>\ 10413 '+$.lang[LANG]['manager.config.siteUM.jcollections.description.text']+'\ 10414 </label>\ 10415 </div>\ 10416 </div>\ 10417 <div class="jcol-btn-wrap">\ 10418 <div class="jcol-btn-cancel jcol-btn hand">\ 10419 '+$.lang[LANG]['manager.config.jcollection.item.btn.cancel']+'\ 10420 </div>\ 10421 <div class="jcol-btn-save jcol-btn hand">\ 10422 '+$.lang[LANG]['manager.config.jcollection.item.btn.save']+'\ 10423 </div>\ 10424 </div>\ 10425 </div>\ 10426 </div>\ 10427 '; 10428 return str; 10429} 10430 10431var addCollectionInput = function(cl_name) { 10432 var cl_name = (typeof cl_name == 'undefined' || !cl_name) ? '' : cl_name, 10433 str = '\ 10434 <div class="collection-update">\ 10435 <div class="input-group">\ 10436 <input type="text" class="collection-update-name form-control" placeholder="' + $.lang[LANG]['manager.join.cl.item.name.enter'] + '" value="' + cl_name + '"/>\ 10437 <span class="input-group-btn">\ 10438 <button class="collection-update-save btn btn-active">\ 10439 <svg viewBox="0 0 15 10" width="15" height="10"><path d="M14.29 0L5.5 8.79 0.71 4 0 4.71l5.15 5.15C5.24 9.95 5.37 10 5.5 10s0.26-0.05 0.35-0.15L15 0.71 14.29 0z"/></svg>\ 10440 </button>\ 10441 </span>\ 10442 <div class="collection-update-cancel"><svg viewBox="0 0 12 12" width="12" height="12"><polygon points="12 0.71 11.29 0 6 5.29 0.71 0 0 0.71 5.29 6 0 11.29 0.71 12 6 6.71 11.29 12 12 11.29 6.71 6"/></svg></div>\ 10443 </div>\ 10444 </div>\ 10445 '; 10446 return str; 10447} 10448 10449//keyup birth 10450var auto_date_format = function( e, oThis ){ 10451 var num_arr = [ 10452 97, 98, 99, 100, 101, 102, 103, 104, 105, 96, 10453 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 10454 ] 10455 10456 var key_code = ( e.which ) ? e.which : e.keyCode; 10457 10458 if((num_arr.indexOf( Number( key_code ) ) != -1) || (key_code != 229) || (key_code != 0)){ 10459 var len = oThis.value.length; 10460 if( len == 4 && (key_code != 8)) oThis.value += '-'; 10461 if( len == 7 && (key_code != 8)) oThis.value += '-'; 10462 } 10463} 10464 10465var myinfoChangeBtn = function(e) { 10466 var sid = (typeof $(e).attr('data-sid')!='undefined') ? $(e).attr('data-sid') : property['SID']; 10467 if(property.UMEMBER.check_sns) { 10468 $(location).attr('href','/_myinfo'); 10469 return false; 10470 } 10471 10472 var str = '\ 10473 <div>\ 10474 <div class="cl-s-form-wrap">\ 10475 <div class="cl-s-form-group">\ 10476 <input type="password" class="cl-s-form-control" id="check-password" required="required">\ 10477 <label for="input" class="cl-s-control-label">'+ $.lang[LANG]['manager.mypage.personal.info.pw.input'] +'</label>\ 10478 </div>\ 10479 </div>\ 10480 </div>\ 10481 '; 10482 10483 $('.flat-modal .modal').modal('hide'); 10484 var checkMyinfoPwMdoal = $(e).showModalFlat($.lang[LANG]['manager.mypage.personal.info.pw.title'],str,true,true,function () { 10485 10486 var pw_val = $('#check-password').val().trim(); 10487 if(!pw_val) { 10488 $('#check-password').closest('.cl-s-form-wrap').addClass('empty'); 10489 $('#check-password').focus(); 10490 return false;
10491 } else if(checkEmojis(pw_val)) { 10492 $('#check-password').focus(); 10493 return false; 10494 } 10495 10496 $.post('/_check_mypw', { sid:sid, pw:hex_md5(pw_val) }, function(data) { 10497 if(typeof data.error != 'undefined' && data.error) { 10498 $('#check-password').closest('.cl-s-form-wrap').removeClass('empty').addClass('error'); 10499 if($('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').length > 0) { 10500 $('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').html(data.error); 10501 } else { 10502 $('#check-password').after('<label for="input" class="cl-s-control-label error">' + data.error + '</label>'); 10503 } 10504 $('#check-password').val('').focus(); 10505 return false; 10506 } else { 10507 checkMyinfoPwMdoal.modal('hide'); 10508 $(location).attr('href','/_myinfo'); 10509 } 10510 },'json'); 10511 10512 },'ë«ê¸°',$.lang[LANG]['manager.mypage.personal.info.pw.btn'],'cl-s-product-pw cl-modal cl-s-btn w620',false,'', function() { 10513 10514 $('.cl-s-product-pw .cl-s-form-group').on('click',function(e) { 10515 if($(e.target).hasClass('cl-s-form-group')) { 10516 $(e.target).find('.cl-s-form-control:not([type=hidden])').focus(); 10517 } 10518 }); 10519 10520 $('.cl-s-product-pw .cl-s-form-control').on({ 10521 keyup: function(e) { 10522 if($(this).val().trim().length == 0) { 10523 $(this).closest('.cl-s-form-wrap').removeClass('error'); 10524 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10525 } 10526 }, 10527 focus: function(e) { 10528 $(this).closest('.cl-s-form-wrap').addClass('active'); 10529 }, 10530 blur: function(e) { 10531 $(this).closest('.cl-s-form-wrap').removeClass('active'); 10532 10533 var val = $(this).val().trim(); 10534 if(val.length == 0) { 10535 $(this).closest('.cl-s-form-wrap').removeClass('error').addClass('empty'); 10536 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10537 return false; 10538 } else if(checkEmojis(val)) { 10539 $('#check-password').closest('.cl-s-form-wrap').removeClass('empty').addClass('error'); 10540 if($('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').length > 0) { 10541 $('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').html($.lang[LANG]['config.unable.emoji']); 10542 } else { 10543 $('#check-password').after('<label for="input" class="cl-s-control-label error">' + $.lang[LANG]['config.unable.emoji'] + '</label>'); 10544 } 10545 $('#check-password').val('').focus(); 10546 return false; 10547 } 10548 10549 $(this).closest('.cl-s-form-wrap').removeClass('error').removeClass('empty'); 10550 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10551 } 10552 }); 10553 10554 }); 10555} 10556 10557/* 10558var smsRechargeModal = function(sid) { 10559 var recharge_plan = { 10560 'plan-5000': { name : '5,000ì', content: '250ê±´', price: '20ì'}, 10561 'plan-10000': { name : '10,000ì', content: '500ê±´', price: '20ì'}, 10562 'plan-20000': { name : '20,000ì', content: '1100ê±´<span class="additional">(ë³´ëì¤ 100ê±´ í¬í¨)</span>', price: '18.2ì'}, 10563 'plan-30000': { name : '30,000ì', content: '1800ê±´<span class="additional">(ë³´ëì¤ 300ê±´ í¬í¨)</span>', price: '16.7ì'}, 10564 'plan-50000': { name : '50,000ì', content: '3100ê±´<span class="additional">(ë³´ëì¤ 600ê±´ í¬í¨)</span>', price: '16.1ì'}, 10565 } 10566 var modal_content = '\ 10567 <div class="mng-modal-body recharge-modal">\ 10568 <div class="row">\ 10569 <div class="recharge-head clearfix">\ 10570 <div class="col-xs-4 col-sm-4 col-md-4 plan">ê¸ì¡ë³(VATë³ë)</div>\ 10571 <div class="col-xs-4 col-sm-4 col-md-6 content">ì¶©ì SMS ê±´ì</div>\ 10572 <div class="col-xs-4 col-sm-4 col-md-2 price">ë¨ê°</div>\ 10573 </div>\ 10574 '; 10575 $.each(recharge_plan, function(i,v) { 10576 modal_content = modal_content + '\ 10577 <div class="recharge-item clearfix">\ 10578 <div class="col-xs-4 col-sm-4 col-md-4 plan">\ 10579 <div class="radio-inline">\ 10580 <input type="radio" id="recharge-'+ i + '" name="recharge-plan" value="'+ i +'">\ 10581 <label for="recharge-' + i + '">' + v['name'] + '</label>\ 10582 </div>\ 10583 </div>\ 10584 <div class="col-xs-4 col-sm-4 col-md-6 content">' + v['content'] + '</div>\ 10585 <div class="col-xs-4 col-sm-4 col-md-2 price">' + v['price'] + '</div>\ 10586 </div>\ 10587 '; 10588 }); 10589 modal_content = modal_content + '\ 10590 <div class="recharge-payment clearfix">\ 10591 <div class="col-xs-4 col-sm-4 col-md-3">ê²°ì ë°©ë²</div>\ 10592 <div class="col-xs-4 col-sm-4 col-md-9">\ 10593 <div class="radio-group">\ 10594 <div class="radio-inline">\ 10595 <input type="radio" class="payment-method-radio" id="payment-method-card" name="payment-method-radio" value="card">\ 10596 <label for="payment-method-card">ì ì©ì¹´ë</label>\ 10597 </div>\ 10598 <div class="radio-inline">\ 10599 <input type="radio" class="payment-method-radio" id="payment-method-vbank" name="payment-method-radio" value="vbank">\ 10600 <label for="payment-method-vbank">ê°ìê³ì¢</label>\ 10601 </div>\ 10602 </div>\ 10603 </div>\ 10604 </div>\ 10605 </div>\ 10606 </div>\ 10607 '; 10608 10609 var recharge_modal = $(this).showModalFlat('문ìë©ìì§(SMS) ì¶©ì ', modal_content, true, true, function() { 10610 10611 //문ìë©ìì§(SMS) ì¶©ì ê¸°ë¥ ìì . 10612 10613 10614 recharge_modal.modal('hide'); 10615 }, 'cancel', 'ì¶©ì í기', 'w480'); 10616 10617} 10618/*sms*/ 10619 10620var setJcolError = function(col_item, error_selector, error_text) { 10621 var error_str = '\ 10622 <div class="error_wrap '+error_selector+'-error">\ 10623 <span class="error_svg">\ 10624 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13">
10624<path d="M6.5 0C2.9 0 0 2.9 0 6.5S2.9 13 6.5 13 13 10.1 13 6.5 10.1 0 6.5 0Zm0 12C3.5 12 1 9.5 1 6.5S3.5 1 6.5 1 12 3.5 12 6.5 9.5 12 6.5 12ZM6 3h1v5H6V3Zm0 6h1v1H6V9Z"/></svg>\ 10625 </span>\ 10626 <span class="error_str">\ 10627 '+$.lang[LANG]['manager.config.jcollection.item.error.'+error_text]+'\ 10628 </span>\ 10629 </div>'; 10630 10631 col_item.find('.'+error_selector+'.empty').removeClass('jcol_error').addClass('jcol_error'); 10632 10633 return error_str; 10634 10635} 10636 10637var getJcollectionItemOptionVal = function(t) { 10638 var opt_str = ''; 10639 $.each(t.find('.jcollection-item-option'), function(i,v) { 10640 var opt_name = $(this).find('.jcol-option-name').val().trim(), 10641 split_str = (i==(t.find('.jcollection-item-option').length-1)) ? '' : '`', 10642 error_str = ''; 10643 10644 // if(!opt_name) { 10645 // $(this).find('.jcol-option-name').removeClass('empty').addClass('empty'); 10646 10647 // error_str = setJcolError(t, 'jcol-option-name', 'opt_name'); 10648 // $(this).find('.error_wrap.jcol-option-name-error').remove(); 10649 // $(this).find('.jcol-option-name').after(error_str); 10650 10651 // return false; 10652 // } else { 10653 // $(this).find('.jcol-option-name').removeClass('empty').removeClass('jcol_error'); 10654 // $(this).find('.error_wrap.jcol-option-name-error').remove(); 10655 // } 10656 10657 // t.removeClass('empty'); 10658 opt_str += opt_name + split_str; 10659 }); 10660 10661 return opt_str; 10662}; 10663 10664var setJoinCollectionData = function(t, sid){ 10665 /* 10666 sid : sid 10667 mb_id : mb_id 10668 collection_type : email/addr/...etc1... 10669 used : true / false 10670 require : optional 10671 name : name 10672 type : type (text(ë¨ë¬¸í), memo(ì¥ë¬¸í), radio(ë¨ì¼ì íí), check(ë¤ì¤ì íí), select(목ë¡ì íí)) 10673 idx : idx 10674 val : val 10675 regdate : regdate 10676 */ 10677 10678 var data = {}; 10679 10680 t.each(function(i,v) { 10681 var collection_type = (typeof $(this).attr('data-collectiontype')!='undefined') ? $(this).attr('data-collectiontype') : 'etc1', 10682 seq = (typeof $(this).attr('data-seq') != 'undefined') ? $(this).attr('data-seq') : '', 10683 used = (typeof $(this).attr('data-used') != 'undefined') ? $(this).attr('data-used') : 'false', 10684 require = (typeof $(this).attr('data-require')!='undefined') ? $(this).attr('data-require') : 'false', 10685 name = (typeof $(this).attr('data-name')!='undefined') ? (!$(this).attr('data-name') ? $(this).find('.jcollection_item_input').val() : $(this).attr('data-name')) : '', 10686 type = (typeof $(this).attr('data-type')!='undefined') ? $(this).attr('data-type') : 'text', 10687 idx = (typeof $(this).attr('data-idx')!='undefined') ? $(this).attr('data-idx') : '0', 10688 val = ''; 10689 10690 val = getJcollectionItemOptionVal($(this)); 10691 10692 used = (used===false) ? 'false' : 'true'; 10693 require = (require===false) ? 'false' : 'true'; 10694 10695 data[collection_type] = { 10696 sid : sid, 10697 seq : seq, 10698 collection_type : collection_type, 10699 used : used, 10700 require : require, 10701 name : name, 10702 type : type, 10703 idx : idx, 10704 val : val 10705 } 10706 }); 10707 console.log(data); 10708 10709 return data; 10710} 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726/*************************************************************************************************************************************member-config page END*/ 10727 10728 10729 10730 10731/*************************************************************************************************************************************member-list page START*/ 10732 10733var getMemberListCheckData = function(el) { 10734 var select_count = el.closest('.mng-list').find('tr.active td.no input[type="checkbox"]:checked').length - 1, 10735 select_ids = el.closest('.mng-list').find('tr.active').map(function() { return $(this).find('td.id').text().trim(); }).get(), 10736 select_name = '', 10737 select_names = ''; 10738 10739 if(select_count < 0) return { error: $.lang[LANG]['manager.list.member.selected.empty'] }; 10740 el.closest('.mng-list').find('tr.active').map(function(i) { 10741 if(i==0) select_name = $(this).find('td.id').text().trim(); 10742 else select_names = select_names + ((select_names.length > 0) ? ', ' : '') + $(this).find('td.id').text().trim(); 10743 }); 10744 10745 var result = { 10746 count : select_count, 10747 ids : select_ids, 10748 name : select_name, 10749 names : select_names 10750 }; 10751 10752 return result; 10753} 10754 10755// var dissmissCert = function(el, uid) { 10756// var id = $(el).attr('id'); 10757// var dismiss = ''; 10758// if(id == 'member-cert_date-button') { 10759// dismiss = 'cert'; 10760// } else if (id == 'member-cert_adult_date-button') { 10761// dismiss = 'adult'; 10762// } 10763 10764// $.ajax({ 10765// type: 'POST', 10766// url: '/umember/update/type/dismiss_cert', 10767// data: { sid : SID, uid : uid, dismiss : dismiss }, 10768// dataType: 'json', 10769// async: true, 10770// success: function(data) { 10771// if(data.affected_rows > 0) { 10772// var modalTitle = ''; 10773// if(data.um_cert == 'N') { 10774// modalTitle = '본ì¸ì¸ì¦ì´ í´ì ëììµëë¤.'; 10775// $('.member-cert_date-wrap').html(''); 10776// } else if (data.um_cert_adult == 'N') { 10777// modalTitle = 'ì±ì¸ì¸ì¦ì´ í´ì ëììµëë¤.'; 10778// $('.member-cert_adult_date-wrap').html(''); 10779// } 10780// $(this).showModalFlat(modalTitle, 'í´ë¹ ê³ì ì ì¸ì¦ì´ í´ì ëì´ ì¸ì¦ ì´ì ìíë¡ ë³µêµ¬ëììµëë¤.', true, false, function() { 10781// location.reload(); 10782// }, 'ok', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-close-btn'); 10783// } else { 10784// alert('error'); 10785// } 10786// } 10787// }); 10788// } 10789/*************************************************************************************************************************************member-list page END*/ 10790 10791var mngShowToast = function(icon,message,el,time) { 10792 console.log('mngShowToast') 10793 if($('.mng-toast-wrap').length > 0 ) $('.mng-toast-wrap.remove').remove();
10794 if(typeof time == 'undefined') time = 800; 10795 var icon = "fa fa-"+icon, 10796 toast = '\ 10797 <div class="mng-toast-wrap">\ 10798 <div class="mng-toast">\ 10799 <span class="mng-toast-icon"><i class="' + icon + '"></i></span>\ 10800 <span class="mng-toast-message">' + message + ' </span>\ 10801 </div>\ 10802 </div>\ 10803 '; 10804 10805 el.find('.mng-title, .mng-wrap').addClass('mng-toast-showing').animate({ 10806 'opacity': 0.3, 10807 'pointer-events': 'none' 10808 }, { 10809 duration: '.5s', 10810 easing: 'easeInOutCubic' 10811 },50).delay(time).fadeIn(100, function() { 10812 $(this).animate({ 10813 'opacity': 1, 10814 'pointer-events': 'auto' 10815 }, { 10816 duration: '.5s', 10817 easing: 'easeInOutCubic' 10818 }, 100).removeClass('mng-toast-showing'); 10819 }); 10820 10821 $(toast).appendTo(el).css({ 10822 'opacity': 0, 10823 'margin-top': '-10px' 10824 }).animate({ 10825 'opacity': 1, 10826 'margin-top': '0px' 10827 }, { 10828 duration: '.7s', 10829 easing: 'easeInOutCubic' 10830 },50).delay(time).fadeOut(100, function() { $(this).addClass('remove'); }); 10831 10832} 10833 10834var howToApplyCert = function() { 10835 var mobile = (window.innerWidth<768) ? 'm.' : '', 10836 str = '\ 10837 <div class="guide-top lang-'+LANG+'">\ 10838 <h3 class="modal-title guidetitle">'+$.lang[LANG]['manager.cert.guide.title']+'</h3>\ 10839 <div class="guide-menu">\ 10840 <ul>'; 10841 for (var i=0;i<3;i++) { 10842 var menuactive = (i==0) ? 'active' : ''; 10843 str = str + '<li class="hand '+menuactive+'">'; 10844 if(i==2) str = str + '<div class="line left"></div>'; 10845 else if(i==1) { 10846 str = str +'\ 10847 <div class="line left"></div>\ 10848 <div class="line right"></div>\ 10849 '; 10850 } 10851 str = str + '<p>'+$.lang[LANG]['manager.cert.guide.step.'+mobile+i]+'</p>'; 10852 if(i==0) str = str + '<div class="line right"></div>'; 10853 str = str + '</li>'; 10854 }; 10855 str += '\ 10856 </ul>\ 10857 </div>\ 10858 </div>\ 10859 <div class="guide-wrap">\ 10860 <div class="step">\ 10861 <div id="step1">\ 10862 <h3>'+$.lang[LANG]['manager.cert.guide.step.1.title']+'</h3>\ 10863 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.1']+'</h4>\ 10864 <p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.1']+'</p>\ 10865 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.2']+'</h4>\ 10866 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_01_'+LANG+'.jpg">\ 10867 '; 10868 if(LANG == 'ko') { 10869 str += '\ 10870 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.3']+'</h4>\ 10871 <p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.3']+'</p>\ 10872 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_02_'+LANG+'.jpg">\ 10873 '; 10874 } 10875 str += '\ 10876 </div>\ 10877 <hr class="line">\ 10878 <div id="step2">\ 10879 <h3>'+$.lang[LANG]['manager.cert.guide.step.2.title']+'</h3>\ 10880 <div class="step2-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.1']+'</div>\ 10881 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_03_'+LANG+'.jpg">\ 10882 <div class="step2-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.2']+'</div>\ 10883 <div class="step2-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.3']+'</div>\ 10884 '; 10885 if(LANG == 'ko') { 10886 str += '\ 10887 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_04_'+LANG+'.jpg">'; 10888 } else { 10889 str += '\ 10890 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_05_'+LANG+'.jpg">\ 10891 '; 10892 } 10893 str += '\ 10894 <div class="step2-step text-left">\ 10895 <span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.4']+'\ 10896 '; 10897 if(LANG != 'ko') { 10898 str += '<p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.3']+'</p>\ 10899 '; 10900 } 10901 str += '\ 10902 </div>'; 10903 if(LANG == 'ko') { 10904 str += '\ 10905 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_05_'+LANG+'.jpg">'; 10906 } 10907 str += '\ 10908 <div class="step2-step text-left"><span>STEP 05.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.5']+'</div>\ 10909 <div class="step2-step text-left">\ 10910 <span>STEP 06.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.6']+'\ 10911 <p>'+$.lang[LANG]['manager.cert.guide.step.2.txt.6.sub']+'</p>\ 10912 </div>\ 10913 <div class="step2-step text-left"><span>STEP 07.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.7']+'</div>\ 10914 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_06_'+LANG+'.jpg">\ 10915 <div class="step2-step text-left"><span>STEP 08.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.8']+'</div>\ 10916 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_07_'+LANG+'.jpg">\ 10917 </div>\ 10918 <hr class="line">\ 10919 <div id="step3">\ 10920 <h3>'+$.lang[LANG]['manager.cert.guide.step.3.title']+'</h3>\ 10921 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.1']+'</h4>\ 10922 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-1']+'</p>\ 10923 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-2']+'</div>\ 10924 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_08_'+LANG+'.jpg">\ 10925 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-3']+'</div>\ 10926 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_09_'+LANG+'.jpg">\ 10927 <div class="step3-step text-left"><span>
10927STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-4']+'</div>\ 10928 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_10_'+LANG+'.jpg">\ 10929 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-5']+'</div>\ 10930 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_11_'+LANG+'.jpg">\ 10931 \ 10932 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.2']+'</h4>\ 10933 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-1']+'</p>\ 10934 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-2']+'</div>\ 10935 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_12_'+LANG+'.jpg">\ 10936 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-3']+'</div>\ 10937 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_13_'+LANG+'.jpg">\ 10938 <div class="step3-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-4']+'</div>\ 10939 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_14_'+LANG+'.jpg">\ 10940 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-5']+'</div>\ 10941 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_15_'+LANG+'.jpg">\ 10942 \ 10943 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.3']+'</h4>\ 10944 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-1']+'</p>\ 10945 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-2']+'</div>\ 10946 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_16_'+LANG+'.jpg">\ 10947 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-3']+'</div>\ 10948 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_17_'+LANG+'.jpg">\ 10949 <div class="step3-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-4']+'</div>\ 10950 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_18_'+LANG+'.jpg">\ 10951 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-5']+'</div>\ 10952 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_19_'+LANG+'.jpg">\ 10953 </div>\ 10954 </div>\ 10955 <div class="modal-footer guideClose">\ 10956 <button type="button" class="btn btn-default btn-sm close-button-dialog clostbtnfalse" data-dismiss="modal">'+$.lang[LANG]['config.close']+'</button>\ 10957 </div>\ 10958 </div>\ 10959 '; 10960 10961 var certApplyGuideModal = $(this).showModalFlat('',str,true,false,'','close','','guidePopup cl-cmmodal cl-s-btn cover w700 cert-guide-modal', false ,'',function() { 10962 $(window).resize(function () { 10963 var mobile = (window.innerWidth<768) ? 'm.' : ''; 10964 10965 $('.cert-guide-modal .guide-menu li').each(function(i) { 10966 $(this).find('p').html($.lang[LANG]['manager.cert.guide.step.'+mobile+i]); 10967 }); 10968 }); 10969 $.guidePopup.scrollevent(); 10970 }); 10971}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.