1if(typeof LANG == 'undefined') var LANG = getLanguage(); 2 3$(window).load(function(data) { 4 setLanguage(LANG); 5 collectionSortable(); 6}); 7 8$(function() { 9 $('.pageIcon.nonpage a[href="#"]').click(function(e) { 10 e.preventDefault(); 11 }); 12 13 $.fheader = { 14 refreshFixedSub: function() { 15 // console.log('refreshFixedSub'); 16 //ver4 ( ver3 + menu height ) 17 18 var body_width = (PAGE_MODE == 'c') ? $('body').width() : window.innerWidth, 19 $fh = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 20 fh_type = $fh.attr('data-fh-type'), 21 fh_postion = (typeof $fh.attr('data-position') != 'undefined') ? $fh.attr('data-position') : '', 22 fh_transparent = ($fh.hasClass('transparent')) ? true : false, 23 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 24 25 if( $fh.find('#fixed-menu').length == 0 || 26 $fh.hasClass('sidebar') || 27 fh_type != 'right' || 28 $fh.find(' > .container[data-fh-align]').length == 0 29 ) { return false; } 30 31 var fixedSubOn = ($fh.find('.fh-container').css('display') == 'none') ? false : true; 32 33 if(!checkFixTypeMenu && window.innerWidth > 768) { 34 var collapse_w = $fh.find('.collapse').width(), 35 tpl_nav_w = $fh.find('#tpl-menu').outerWidth(), 36 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')), 37 checkWidth = (parseInt(collapse_w) < parseInt(tpl_nav_w) + fixed_nav_w) ? true : false; 38 39 if(checkWidth) { 40 var checkOnepx = ((parseInt(tpl_nav_w) + fixed_nav_w) - parseInt(collapse_w) === 1) ? true : false; 41 if(checkOnepx) checkWidth = false; 42 } 43 44 var tpl_nav_cnt = $fh.find('#tpl-menu > li').length, 45 tpl_nav_th = (tpl_nav_cnt == 0) ? 0 : $fh.find('#tpl-menu > li').eq(0).position().top, 46 tpl_nav_h = (tpl_nav_cnt == 0) ? 0 : $fh.find('#tpl-menu > li').eq(tpl_nav_cnt-1).position().top, 47 checkHeight = (parseInt(tpl_nav_th) != parseInt(tpl_nav_h)) ? true : false; 48 49 if(fixedSubOn) { // aready fixed menu sub show
50 if(!checkWidth && !checkHeight) fixedSubOn = false; 51 } else { 52 if(checkWidth || checkHeight) fixedSubOn = true; 53 } 54 } 55 56 if(fixedSubOn) { 57 if($fh.hasClass('transparent')) { 58 $fh.find('#tpl-menu').addClass('overflow-menu'); 59 $fh.find('#fixed-menu').addClass('overflow-menu'); 60 $fh.find('#fixed-menu-sub').addClass('overflow-menu'); 61 } 62 var fh_nav_pdRight = parseInt($fh.find('#tpl-menu > li > a').css('padding-right')) + parseInt($fh.find('.collapse').css('padding-right')) - 10; 63 64 if($fh.find('.navbar-center').length==0) { 65 if(checkFixTypeMenu) return false; 66 $('#fixed-menu').hide(); 67 $('#fixed-menu-sub').closest('.fh-container').eq(0).show().addClass('active'); 68 } 69 70 $('#fixed-menu-sub').css('margin-right',fh_nav_pdRight+'px'); 71 } else { 72 $fh.find('#tpl-menu').removeClass('overflow-menu'); 73 $fh.find('#fixed-menu').removeClass('overflow-menu'); 74 $fh.find('#fixed-menu-sub').removeClass('overflow-menu'); 75 76 $('#fixed-menu').show(); 77 $('#fixed-menu-sub').closest('.fh-container').eq(0).hide().removeClass('active'); 78 } 79 80 if($fh.hasClass('transparent') && $fh.hasClass('overflow-menu') && !$fh.find('#tpl-menu').hasClass('overflow-menu')) { 81 $fh.find('#tpl-menu').addClass('overflow-menu'); 82 $fh.find('#fixed-menu').addClass('overflow-menu'); 83 $fh.find('#fixed-menu-sub').addClass('overflow-menu'); 84 } 85 86 87 if(PAGE_MODE == 'c') { 88 $('.addElementButton.addel-menu').css('top',$('header.navbar').outerHeight() + 'px'); 89 } 90 91 if($('.element[data-feature*=fixedscroll]').length > 0) gjs01SetFixedscroll($('.element[data-feature*=fixedscroll]').eq(0)); 92 }, 93 init: function(mode) { 94 // console.log('fheader init'); 95 var checkElviewer = ''; 96 if(window.parent && window.parent != this && $('.elviewhtml').length > 0) { 97 checkElviewer = $('#el-list-image .elgrid.active', window.parent.document).find('.blockname-str').text().trim(); 98 } 99 100 var s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 101 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE, 102 checkGabia = (s_service.indexOf('gabia') > -1) ? true : false, 103 checkEllist = (typeof mode != 'undefined' && mode == 'ellist') ? true : false, 104 checkTemplate = (typeof property != 'undefined' && property.TEMPLATE && property.TEMPLATE=='1') ? true : false, 105 sid = (PAGE_MODE == 'c') ? ((checkEllist) ? checkElviewer.replace(/menu-/gi,'') : SID) : property.SID, 106 $pc_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 107 pc_nav_name = (checkEllist) ? $pc_nav.attr('data-name') : 'menu-'+sid, 108 $mobile_nav = $pc_nav.find('#tpl-menu').closest('.navbar-'+pc_nav_name).clone(), 109 checkFixTypeMenu = (typeof $pc_nav.attr('data-fixtype') != 'undefined' && $pc_nav.attr('data-fixtype')) ? true : false; 110 111 if($pc_nav.find('.cl-menu-option').length > 0) $.moption.init(mode); 112 113 $mobile_nav.prop({id:'mobile-nav'}).removeAttr('class').removeAttr('style'); 114 115 if(!$pc_nav.hasClass('navbar-fheader') || (checkFixTypeMenu && $pc_nav.find('.cl-fixed-menu').length>0)) return false; 116 if(!checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 117 118 var fh_sub = '', 119 fh_type = $pc_nav.attr('data-fh-type'); 120 121 switch(s_validtype) { 122 case 'FR': 123 case 'BS': 124 fh_sub = '\ 125 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 126 '; 127 break; 128 case 'BN': 129 fh_sub = '\ 130 <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 131 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 132 '; 133 break; 134 case 'SM': 135 fh_sub = '\ 136 <li class="siteSEARCH"><a href="#"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a></li>\ 137 <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 138 <li class="siteCART"><a href="#"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a></li>\ 139 <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 140 '; 141 142 143 /* Shopping Only KO Site */ 144 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 145 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 146 // fh_sub = '\ 147 // <li class="siteUM"><a href="#"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>\ 148 // <li class="siteLANG"><a href="#"><i class="cl-icon cl_icon_globe" aria-hidden="true"></i></a></li>\ 149 // '; 150 // } 151 break; 152 default: 153 break; 154 } 155
156 if(fh_type == 'top') { 157 var menu_container = $pc_nav.find(' > .container').attr('class'), 158 fh_line = '<hr class="fh-line" style="display: none;"/>', 159 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 160 fh_content = '\ 161 <div class="' + menu_container +' fh-container" style="display: none;">\ 162 <div class="navbar-wrap">\ 163 <ul class="navbar-nav navbar-top" id="fixed-menu">\ 164 ' + fh_sub + '\ 165 </ul>\ 166 </div>\ 167 </div>\ 168 '; 169 170 if($pc_nav.find('.cl-drop-fixed-menu').length > 0) $pc_nav.find('.cl-drop-fixed-menu').remove(); 171 172 if($pc_nav.find('.fh-line').length > 0) $pc_nav.find('.fh-line').replaceWith(fh_line); 173 else $pc_nav.prepend(fh_line); 174 175 if($pc_nav.find('#fixed-menu').length > 0) $pc_nav.find('.fh-container').replaceWith(fh_content); 176 else $pc_nav.prepend(fh_content); 177 178 179 if(!checkEllist) { 180 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).find('#fixed-menu').clone()); 181 else $mobile_nav.prepend($(fh_content).find('#fixed-menu').clone()); 182 } 183 184 } else if(fh_type == 'right' || fh_type == 'sidebar') { 185 var fixed_menu_str = (fh_type == 'sidebar') ? '' : 'navbar-right', 186 fh_line = '<hr class="fh-line visible-xs" style="display: none;"/>', 187 fh_content = '\ 188 <ul class="navbar-nav ' + fixed_menu_str + '" id="fixed-menu" style="display: none;">\ 189 ' + fh_sub + '\ 190 </ul>\ 191 '; 192 193 if(checkEllist) { 194 if(fh_type == 'right' && $pc_nav.find('.mini-home').length > 0) { 195 $pc_nav.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 196 } 197 } else { 198 var fh_container = $pc_nav.find(' > .container[data-fh-align]'), 199 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 200 fh_content2 = ( fh_type == 'sidebar' || fh_container.length == 0 ) ? '' : '\ 201 <div class="' + fh_container.attr('class') +' fh-container" style="display: none;">\ 202 <div class="navbar-wrap">\ 203 <ul class="navbar-nav navbar-top" id="fixed-menu-sub" style="margin-right: '+fh_nav_pdRight+'px;">\ 204 ' + fh_sub + '\ 205 </ul>\ 206 </div>\ 207 </div>\ 208 '; 209 } 210 211 if($pc_nav.find('#fixed-menu').length > 0) $pc_nav.find('#fixed-menu').replaceWith(fh_content); 212 else $pc_nav.find('#tpl-menu').before(fh_content); 213 214 if($pc_nav.find('.fh-line').length > 0) $pc_nav.find('.fh-line').replaceWith(fh_line); 215 else $pc_nav.find('#tpl-menu').before(fh_line); 216 217 if(!checkEllist) { 218 if(fh_content2.length > 0) { 219 if($pc_nav.find('#fixed-menu-sub').length > 0) $pc_nav.find('.fh-container').replaceWith(fh_content2); 220 else $pc_nav.prepend(fh_content2); 221 } 222 223 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).removeAttr('style').clone()); 224 else $mobile_nav.prepend($(fh_content).removeAttr('style').clone()); 225 } 226 227 } 228 } 229 230 /* ë©ë´ ::: íì¥ê¸°ë¥ ë²í¼ ì¶ê° ë²ì (20220928) *********************************************************/ 231 if(checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 232 var fh_sub = '', 233 fixbtnData = $.menuFixBtn.getData($pc_nav), 234 parent_dsgnbody = (checkEllist && typeof PAGE_MODE!='undefined' && PAGE_MODE=='c') ? window.parent.document : '', 235 lang_txt = (checkEllist) ? $(parent_dsgnbody).find('header.navbar-fheader .siteLANG.cl-fixbtn').attr('data-fixlang') : '', 236 lang_code = (checkEllist) ? $(parent_dsgnbody).find('header.navbar-fheader .siteLANG.cl-fixbtn').attr('data-fixlangcode') : '', 237 lang_sidebar = (fixbtnData['fh-type']=='sidebar') ? false : true, 238 slang_html = '', 239 lang_str = LANG, 240 validArray = {}, 241 validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 242 validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN; 243 244 if(checkEllist && typeof SLANG == 'undefined') { 245 var slang_obj = { 246 use_language : 'off', 247 lists : {}, 248 select : lang_txt, 249 select_code : lang_code 250 } 251 SLANG = slang_obj; 252 } else SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 253 254 if((typeof SLANG != 'undefined' && typeof SLANG.select_code != 'undefined' && SLANG.select_code) 255 || (!$.isEmptyObject(SLANG) && SLANG.use_language == 'on' && SLANG.select_code)) { 256 lang_str = (SLANG['select_code'].toLowerCase()!='ko') ? 'en' : 'ko'; 257 } 258
259 var validArray = { 260 'validtype' : validtype, 261 'validplan' : validplan 262 } 263 264 $mobile_nav.attr('data-fixtype',fixbtnData['fixtype']) 265 .attr('data-fixlangtype',fixbtnData['fixlangtype']) 266 .attr('data-fixsize',fixbtnData['fixsize']) 267 .attr('data-fixlangsize',fixbtnData['fixlangsize']); 268 269 if(fixbtnData['fixtypeText']=='top') fh_sub += $.menuFixBtn.topSet(fixbtnData['fixtypeNum'],false,validArray,SLANG); 270 else fh_sub += $.menuFixBtn.sidebarSet(fixbtnData['fixtypeNum'],false,validArray,SLANG); 271 272 if(fixbtnData['fh-type'] == 'top') { 273 var menu_container = $pc_nav.find(' > .container').attr('class'), 274 /*fh_line = '<hr class="fh-line" style="display: none;"/>',*/ 275 fh_nav_pdRight = parseInt($pc_nav.find('#tpl-menu > li > a').css('padding-right')) + parseInt($pc_nav.find('.collapse').css('padding-right')) - 10, 276 fh_content = '\ 277 <div class="' + menu_container +' fh-container">\ 278 <div class="navbar-wrap">\ 279 <ul class="navbar-nav navbar-top cl-fixed-menu" id="fixed-menu">\ 280 ' + fh_sub + '\ 281 </ul>\ 282 </div>\ 283 </div>\ 284 '; 285 286 if($pc_nav.find('input[class*="cl-menu-"]').length > 0) $pc_nav.find('input[class*="cl-menu-"]').last().after(fh_content); 287 else $pc_nav.prepend(fh_content); 288 289 //if(!checkEllist) { 290 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).find('#fixed-menu').clone()); 291 else $mobile_nav.prepend($(fh_content).find('#fixed-menu').clone()); 292 //} 293 } else if(fixbtnData['fh-type'] == 'right' || fixbtnData['fh-type'] == 'sidebar') { 294 var fixed_menu_str = (fixbtnData['fh-type'] == 'sidebar') ? '' : 'navbar-right', 295 fh_line = '<hr class="fh-line visible-xs" style="display: none;"/>', 296 fh_content = '\ 297 <ul class="navbar-nav ' + fixed_menu_str + ' cl-fixed-menu" id="fixed-menu">\ 298 ' + fh_sub + '\ 299 </ul>\ 300 '; 301 302 if(checkEllist) { 303 if(fixbtnData['fh-type'] == 'right' && $pc_nav.find('.mini-home').length > 0) { 304 $pc_nav.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 305 } 306 } 307 308 $pc_nav.find('#fixed-menu').remove(); 309 $pc_nav.find('#tpl-menu').before(fh_content); 310 311 //if(!checkEllist) { 312 if($mobile_nav.find('#fixed-menu').length > 0) $mobile_nav.find('#fixed-menu').replaceWith($(fh_content).removeAttr('style').clone()); 313 else { 314 $(fh_content).removeAttr('style').clone(); 315 $mobile_nav.prepend($(fh_content).removeAttr('style').clone()); 316 } 317 //} 318 } 319 320 /* ë©ë´ ëìì¸ë³ê²½ :: slang make X => fheader init(pc_nav)ìì ì ì© ***/ 321 if(checkEllist) { 322 slang_html = $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],lang_sidebar,SLANG,'',validArray); 323 $pc_nav.find('.siteLANG.cl-fixbtn').remove(); 324 (fixbtnData['fh-type']=='sidebar') ? $pc_nav.find('.menu-inner').after(slang_html) : $pc_nav.find('#fixed-menu').append(slang_html); 325 326 $pc_nav.find('.siteLANG').removeClass('dropup').removeClass('dropdown'); 327 $pc_nav.find('.siteLANG .cl-lang').removeClass('dropdown-toggle'); 328 $pc_nav.find('.siteLANG .dropdown-menu').remove(); 329 } 330 } 331 332 // $mobile_nav.find('#fixed-menu').removeAttr('class'); 333 // $mobile_nav.find('#tpl-menu').prop({class:'nav navbar-nav'}).find('ul').prop({class:'',id:''}); 334 // $mobile_nav.find('#tpl-menu').removeAttr('class'); 335 $mobile_nav.find('#tpl-menu').removeClass('hide').removeClass('preloading'); 336 $mobile_nav.find('#tpl-menu').removeAttr('style'); 337 338 $mobile_nav.find('.dropdown').not('.siteUM.cl-fixbtn').each(function() { 339 $(this).addClass('menu-has-children').removeClass('dropdown'); 340 $(this).find('> a').removeClass('dropdown-toggle'); 341 $(this).find('> a i').remove(); 342 343 if(($(this).hasClass('active') || $(this).hasClass('open')) && $(this).find('li.active').length > 0) { 344 if($(this).find('li.active').length > 0) $(this).removeClass('active').addClass('open'); 345 $(this).find('> a').nextAll('ul').eq(0).slideToggle(); 346 $(this).prepend('<i class="fa fa-chevron-up"></i>'); 347 } else { 348 $(this).prepend('<i class="fa fa-chevron-down"></i>'); 349 } 350 }); 351 352 if(checkFixTypeMenu && ($.inArray(s_validtype, ['BS','BN','SM']) > -1 || (checkGabia && s_validtype == 'FR'))) { 353 $mobile_nav.find('#fixed-menu').wrap('<div class="mobilenav_top"></div>'); 354 355 /* ë©ë´ ëìì¸ë³ê²½ :: slang make X => fheader init(mobile_nav)ìì ì ì© ***/ 356 if(checkEllist) { 357 var psearch_ellist = `
358 <li class="siteSEARCH"> 359 <a href="javascript:;" class="psearch-btn"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a> 360 <div class="psearch-overlay"> 361 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 362 <div class="psearch-body"> 363 <span class="psearch-wrap"> 364 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 365 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 366 </span> 367 </div> 368 </div> 369 </li> 370 `; 371 var sitelangStr = $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false,'',true); 372 373 var hide_UM = (s_validtype=='BN' || s_validtype=='SM') ? '' : 'hide'; 374 $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>'); 375 if(s_validtype=='SM') { 376 $mobile_nav.find('#fixed-menu .siteSEARCH').replaceWith(psearch_ellist); 377 } 378 if(s_validtype && sitelangStr) $mobile_nav.append(sitelangStr).find('.cl-fixbtn.siteLANG'); 379 } 380 //if(checkEllist) $mobile_nav.find('#fixed-menu .mobilenav_top').prepend(ellist_mobile_logincontent); 381 } 382 383 var fh_line = '<hr class="fh-line" />'; 384 (checkFixTypeMenu) ? $mobile_nav.find('.mobilenav_top').after(fh_line) : $mobile_nav.find('#fixed-menu').after(fh_line); 385 //$mobile_nav.find('#tpl-menu').after(fh_line); 386 387 var menu_selector = (checkEllist) ? '.elviewhtml .menu-'+sid : '.el-menu .menu-'+sid, 388 $checkMenuEL = $(menu_selector), 389 check_mobile_design = $checkMenuEL.hasClass('mobile-design-clear') ? false : true, 390 check_mnormal = ($checkMenuEL.find('.cl-menu-normal').length > 0) ? true : false, 391 check_msidebar = ($checkMenuEL.find('.cl-menu-sidebar').length > 0) ? true : false, 392 check_moption = ($checkMenuEL.find('.cl-menu-option').length > 0) ? true : false; 393 if(checkEllist) $mobile_nav.addClass('elview'); 394 if(check_moption) $mobile_nav.addClass('moption'); 395 else if(check_mnormal) $mobile_nav.addClass('mnormal'); 396 else if(check_msidebar) $mobile_nav.addClass('msidebar'); 397 if(!check_mobile_design) { 398 $mobile_nav.addClass('mobile-design-clear menu-'+sid); 399 $mobile_nav.find('.menu-has-children > ul').addClass('dropdown-menu'); 400 } 401 402 $('.dsgn-body').append($mobile_nav); 403 $('.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>'); 404 405 if(checkTemplate) { 406 $(document).find('#mobile-nav').find('.mobilenav_top').hide(); 407 $(document).find('#mobile-nav').find('.mobilenav_top').next('.fh-line').hide(); 408 } 409 410 var mobile_selector = (checkEllist) ? ['.elview','.elviewhtml'] : ['','.el-menu']; 411 if(check_moption || check_mnormal || check_msidebar) { 412 413 mobile_selector[0] += (check_moption) ? '.moption' : ((check_msidebar) ? '.msidebar' : '.mnormal'); 414 mobile_selector[1] += (check_moption) ? ' .cl-menu-option ~ .container' : ((check_msidebar) ? ' .cl-menu-sidebar ~ .container' : ' .cl-menu-normal ~ .container'); 415 416 var nav_font = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-fname'), 417 nav_color = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-color'), 418 nav_color_active = getComputedStyle(document.querySelector(menu_selector)).getPropertyValue('--menu-color-active'), 419 nav_fixed_key = (check_mobile_design) ? '--menu-fname' : '--fixed-menu-color', 420 fixed_color = (checkFixTypeMenu) ? getComputedStyle(document.querySelector(menu_selector)).getPropertyValue(nav_fixed_key) : ''; 421 } else { 422 var nav_font = (checkFixTypeMenu) ? $('.menu-' + sid + ' ul#tpl-menu > li > a').css('font-family') : $('.menu-' + sid + ' ul.navbar-nav > li > a').css('font-family'); 423 if(typeof nav_font != 'undefined' && nav_font) { 424 nav_font = nav_font.replace(/\'/gi,'').replace(/\"/gi,''); 425 426 var nav_color = $('.menu-' + sid + ' ul.navbar-nav > li > a:not(:hover)').css('color'), 427 nav_color_active = $('.menu-' + sid + ' ul.navbar-nav > li.active > a').css('color'), 428 fixed_color = ''; 429 if(checkFixTypeMenu) { 430 fixed_color = ($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? $('.menu-' + sid + ' ul.cl-fixed-menu >
430 li.cl-fixbtn a').css('color') : $('.el-menu .navbar-toggle .icon-bar').css('background-color'); 431 } 432 } 433 434 if(typeof nav_color_active == 'undefined' || nav_color_active == '') nav_color_active = nav_color; 435 var mcss_fixed = (checkFixTypeMenu) ? '\ 436 '+mobile_selector[1]+' .siteCART.micon {color : ' + fixed_color + '; }\ 437 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear .mobilenav_top a {color : ' + fixed_color + '; }\ 438 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear .mobilenav_top svg {fill : ' + fixed_color + '; }\ 439 ' : '', 440 mcss_more = '\ 441 @media only screen and (max-width:768px) {\ 442 #mobile-nav'+mobile_selector[0]+' { font-family: ' + nav_font + '; }\ 443 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children i,\ 444 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children i:focus { color: ' + nav_color + '; }\ 445 #mobile-nav'+mobile_selector[0]+'.mobile-design-clear #tpl-menu li.menu-has-children.active i { color: ' + nav_color_active + '; }\ 446 '+ mcss_fixed +'\ 447 }\ 448 '; 449 450 var menu_css_selector = (checkEllist) ? '.elviewcss' : '#menu-'+sid; 451 $(menu_css_selector).append(mcss_more); 452 } 453 454 $('.el-menu').removeClass('_ready'); 455 }, 456 set: function(mode) { 457 // console.log('fheader set'); 458 var checkEllist = (typeof mode != 'undefined' && mode=='ellist') ? true : false, 459 checkStorageCapture = (typeof isStoragebox != 'undefined' && isStoragebox && typeof isCapture != 'undefined' && isCapture) ? true : false, 460 $fh = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 461 fh_type = $fh.attr('data-fh-type'), 462 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 463 464 if($fh.find('#fixed-menu').children().length == 0) { 465 if(fh_type == 'top') $fh.find('.fh-container').remove(); 466 else if(fh_type == 'right' || fh_type == 'sidebar') $fh.find('#fixed-menu, .fh-line').remove(); 467 $('#mobile-nav #fixed-menu, #mobile-nav .fh-line').remove(); 468 } 469 470 if(!checkFixTypeMenu) { 471 if(checkStorageCapture) { 472 } else { 473 if(fh_type == 'top') { 474 $fh.find('.fh-container').eq(0).slideToggle(); 475 } else if(fh_type == 'right' || fh_type == 'sidebar') { 476 $fh.find('#fixed-menu').slideToggle(); 477 } 478 479 $fh.find('.fh-line').slideToggle(); 480 } 481 } 482 483 setTimeout(function() { 484 if(checkEllist) { 485 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 486 $fh.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 487 } else if(checkFixTypeMenu && fh_type == 'sidebar') { 488 $fh.find('#fixed-menu').css('overflow',''); 489 } 490 } else { 491 if($('#page-loading-css').length == 0) { 492 setTimeout(function() { 493 $.fheader.position(); 494 },400); 495 } 496 } 497 498 },400); 499 }, 500 position: function() { 501 if(!$('header.navbar').hasClass('navbar-fheader')) { 502 var parentDocument = $(window.parent.document), 503 $detail_modal = parentDocument.find('.product-detail-modal'); 504 if($detail_modal.length) { 505 ($('.openBandBanner').length) ? 506 $('.dsgn-body').css('padding-top','120px') : 507 $('.dsgn-body').css('padding-top','0px'); 508 } 509 return false; 510 } 511 512 // console.log('fheader position'); 513 // if(!$('header.navbar').hasClass('navbar-fheader')) return false; 514 515 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 516 $fh = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 517 fh_type = $fh.attr('data-fh-type'), 518 fh_postion = (typeof $fh.attr('data-position') != 'undefined') ? $fh.attr('data-position') : '', 519 fh_transparent = ($fh.hasClass('transparent')) ? true : false, 520 checkFixTypeMenu = (typeof $fh.attr('data-fixtype') != 'undefined' && $fh.attr('data-fixtype')) ? true : false; 521 522 var body_width = (PAGE_MODE == 'c') ? $('body').width() : window.innerWidth; 523 524 if(body_width <= 768) { 525 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 526 $fh.find('.mini-home').parent().removeAttr('style'); 527 } 528 $fh.find('.psearch-overlay.open').removeClass('open'); 529 $('.cl-popupBanner').removeClass('zindex20'); 530 if(!checkFixTypeMenu) $fh.find('#fixed-menu-sub').closest('.fh-container').eq(0).hide(); 531 } else { 532 if(fh_type == 'right' && $fh.find('.mini-home').length > 0) { 533 if(!checkFixTypeMenu) { 534 $fh.find('.mini-home').closest('.navbar-collapse').attr('style','display: inline-block !important'); 535 } 536 } 537 538 if(fh_type == 'right' && !$fh.hasClass('sidebar') && $fh.find(' > .container[data-fh-align]').length > 0) { 539 $.fheader.refreshFixedSub(); 540 } 541 542 $('#mobile-nav .psearch-overlay.open').removeClass('open'); 543 $('.cl-popupBanner').removeClass('zindex20'); 544 if($('.dsgn-body').hasClass('mobile-nav-active')) $fh.find('.navbar-toggle').click(); 545 } 546 547 if(fh_transparent) { 548 if($('.cl-bandBanner').length == 0) { 549 $('.dsgn-body').css('padding-top','0px'); 550 if(PAGE_MODE == 'c') $('.el-menu_ctrl .config-element').removeAttr('style'); 551 } 552 } else if(fh_postion != 'relative') { 553 if(fh_type == 'sidebar' && body_width > 768) { 554 var pt = '0px'; 555 if(typeof getComputedStyle(document.querySelector('body')).getPropertyValue('--bandBanner-height-pc') != 'undefined') { 556 pt = getComputedStyle(document.querySelector('body')).getPropertyValue('--bandBanner-height-pc'); 557 } 558 $('.dsgn-body').css('padding-top',pt); 559 return false;
560 } 561 } 562 563 if(PAGE_MODE == 'c') { 564 if($('.dsgn-body').get(0).scrollHeight > $('.dsgn-body').innerHeight()) { 565 var scrollbar_gap = window.innerWidth - $('.dsgn-body').get(0).clientWidth; 566 $('.navbar-fixed-top, .navbar-fixed-bottom').css('right',scrollbar_gap); 567 } else { 568 $('.navbar-fixed-top, .navbar-fixed-bottom').removeAttr('style'); 569 } 570 } 571 if(checkEllist) { 572 if(checkFixTypeMenu) setFixedMenuCss(true); 573 } else { 574 var delay_time = (PAGE_MODE == 'c') ? 800 : 0; 575 setTimeout(function() { 576 var header_h = (fh_transparent || ($fh.hasClass('sidebar') && $('.dsgn-body').width() > 767) ) ? 0 : $fh.outerHeight(), 577 band_h = $.siteBanner.getBandHeight(); 578 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"]')) { 579 var hide_h = $fh.find('.moption-container').outerHeight(); 580 header_h -= hide_h; 581 } 582 $('.dsgn-body').css('padding-top', (band_h + header_h)+'px'); 583 if($('.el_0.element').is('[data-type="gallery"][data-type2="premium"][data-feature*=fixedscroll]')) gjs01SetFixedscroll($('.el_0.element')); 584 }, delay_time); 585 586 if(PAGE_MODE == 'c') { 587 setTimeout(function() { 588 var btn_top = $('header.navbar').outerHeight(); 589 $('.addElementButton.addel-menu').css('top',btn_top + 'px'); 590 }, delay_time+200); 591 } 592 } 593 } 594 } 595 596 $.moption = { 597 getList: function(menu_selector) { 598 var checkEditList = (menu_selector.match(/^\.elmenu-color-edit/gi)) ? true : false, 599 moption_list = []; 600 601 $(menu_selector).find('#tpl-menu > li').each(function() { 602 var tmp_child = [], 603 tmp_main = $(this); 604 if(tmp_main.hasClass('dropdown')) { 605 tmp_main.find('.dropdown-menu > li').each(function() { 606 var tmp_sub = $(this); 607 tmp_child.push({ 608 'idx0': moption_list.length, 609 'idx1': tmp_child.length, 610 'name': tmp_sub.find(' > a').eq(0).text().trim(), 611 'active': (tmp_sub.hasClass('active')) ? 'active' : '', 612 'href': (checkEditList) ? 'javascript:;' : '', 613 'target': '', 614 'isbookmark': '', 615 'isflink': '', 616 'depth': 1, 617 'children': tmp_child, 618 }); 619 }); 620 } 621 622 moption_list.push({ 623 'idx0': moption_list.length, 624 'name': tmp_main.find(' > a').eq(0).text().trim(), 625 'active': (tmp_main.hasClass('active')) ? 'active' : '', 626 'href': (checkEditList) ? 'javascript:;' : '', 627 'target': '', 628 'isbookmark': '', 629 'isflink': '', 630 'depth': 0, 631 'children': tmp_child, 632 }); 633 }); 634 return moption_list; 635 }, 636 init: function(mode) { 637 // console.log('fh moption(mode: '+mode+')'); 638 639 var checkElviewer = ''; 640 if(window.parent && window.parent != this && $('.elviewhtml').length > 0) { 641 checkElviewer = $('#el-list-image .elgrid.active', window.parent.document).find('.blockname-str').text().trim(); 642 } 643 644 var s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 645 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE, 646 checkGabia = (s_service.indexOf('gabia') > -1) ? true : false, 647 checkEllist = (typeof mode != 'undefined' && mode == 'ellist') ? true : false, 648 checkMenuEdit = (typeof mode != 'undefined' && mode == 'menuedit') ? true : false, 649 checkTemplate = (typeof property != 'undefined' && property.TEMPLATE && property.TEMPLATE=='1') ? true : false, 650 sid = (PAGE_MODE == 'c') ? ((checkEllist) ? checkElviewer.replace(/menu-/gi,'') : SID) : property.SID, 651 pc_seletor = (checkEllist) ? '.elviewhtml header.navbar' : ((checkMenuEdit) ? '.elmenu-color-edit header.navbar' : '.el-menu header.navbar'), 652 $pc_nav = $(pc_seletor), 653 $mobile_nav = $pc_nav.find('#tpl-menu').closest('.navbar-menu-'+sid).clone(), 654 checkFixTypeMenu = (typeof $pc_nav.attr('data-fixtype') != 'undefined' && $pc_nav.attr('data-fixtype')) ? true : false; 655 656 var moption = $pc_nav.find('.cl-menu-option').attr('data-moption'), 657 checkDrawClmoption = ($.inArray(moption, ['nfull','ntoggle']) > -1) ? true : false; 658 if(checkDrawClmoption) { 659 var moption_table = '<ul class="cl-'+moption+' cl-moption"></ul>', 660 moption_col = '<li class="cl-moption-col"></li>', 661 moption_row = '<div class="cl-moption-row"></div>'; 662 663 if($pc_nav.find('.container.moption-container').length > 0) $pc_nav.find('.container.moption-container').html('<div class="moption-row"></div>'); 664 else $pc_nav.find('.container:not(:is(.fh-container, .moption-container))').after('<div class="container moption-container"><div class="moption-row"></div></div>'); 665 var $moptionContainer = $pc_nav.find('.container.moption-container'), 666 $moptionRow = $moptionContainer.find('.moption-row'); 667 if($pc_nav.find('.container:not(:is(.fh-container, .moption-container))').hasClass('full-width')) $moptionContainer.addClass('full-width'); 668 669 $moptionRow.append(moption_table); 670 var menu_option = (PAGE_MODE == 'c') ? MENUOPTION : property.MENUOPTION, 671 $moptionTable = $moptionContainer.find('.cl-moption'); 672 673 if(checkMenuEdit) menu_option = $.moption.getList(pc_seletor); 674 $.each(menu_option, function(idx0, obj0) { 675 var $tmpCol = $(moption_col), 676 tmp_row = moption_row.replace(/cl\-moption\-row\"\>\</g,'cl-moption-row '+obj0.active+'"><a href="' + obj0.href + '" ' + obj0.target + obj0.isbookmark + obj0.isflink + '>
676' + obj0.name + '</a><'); 677 if(obj0.children.length > 0) { 678 $.each(obj0.children, function(idx1, obj1) { 679 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><'); 680 }); 681 } 682 683 $tmpCol.append(tmp_row); 684 if($tmpCol.find('.cl-moption-row').length > 1) $tmpCol.addClass('has-sub'); 685 if(menu_option.length-1 == idx0) $tmpCol.addClass('last-sub'); 686 $moptionTable.append($tmpCol); 687 }); 688 } 689 690 switch(moption) { 691 case 'nfull': 692 693 var hasSubMenu = (PAGE_MODE == 'c') ? MENUCHECK.sub : property.MENUCHECK.sub; 694 if(hasSubMenu) $pc_nav.find('.cl-menu-option').removeClass('single'); 695 else $pc_nav.find('.cl-menu-option').addClass('single'); 696 697 $pc_nav.find('#tpl-menu > li, .moption-container').off('mouseover mouseleave').on({ 698 mouseover: function(e) { 699 if($(this).find('.cl-moption').is(':empty') || (PAGE_MODE == 'c' && $('#el-blockConfig').hasClass('open') && selectEL != 'el-menu')) return false; 700 701 $(this).closest('header').find('.cl-menu-option').addClass('open'); 702 }, 703 mouseleave: function(e) { 704 if($(this).find('.cl-moption').is(':empty')) return false; 705 706 if( $(this).closest('header').find('.cl-menu-option').hasClass('fixed') || 707 $(this).closest('header').find('.cl-menu-option').hasClass('nfullDrop') || 708 $('#el-blockConfig').is('.open') 709 ) { 710 return false; 711 } 712 713 $(this).closest('header').find('.cl-menu-option').removeClass('open'); 714 if($(this).closest('header').find('.cl-menu-option').is('[data-mwidth="all"]')) { 715 $.fheader.position(); 716 } 717 } 718 }); 719 break; 720 721 case 'ntoggle': 722 break; 723 724 default: 725 break; 726 } 727 728 $pc_nav.find('.cl-drop-fixed-menu ~ .navbar-toggle, .cl-menu-option ~ .container .navbar-toggle').off('click').on({ 729 click: function() { 730 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',true); 731 }, 732 }); 733 734 735 $pc_nav.ready(function() { 736 setTimeout(function() { 737 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) $.moption.checkNfullDrop(pc_seletor); 738 else if($pc_nav.find('.cl-menu-option[data-moption="ntoggle"]').length > 0 && $pc_nav.is('[data-fh-type="right"]')) $.moption.drawClDropFixedmenu($pc_nav); 739 }, 300); 740 }); 741 742 $(window).resize(function() { 743 if(this.moptionResizeTO) { 744 clearTimeout(this.moptionResizeTO); 745 } 746 this.moptionResizeTO = setTimeout(function() { 747 $(this).trigger('resizeMoptionEnd'); 748 }, 300); 749 }); 750 $(window).on('resizeMoptionEnd', function() { 751 $.fheader.position(); 752 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) $.moption.checkNfullDrop(pc_seletor); 753 else if($pc_nav.find('.cl-menu-option[data-moption="ntoggle"]').length > 0 && $pc_nav.is('[data-fh-type="right"]')) $.moption.drawClDropFixedmenu($pc_nav); 754 755 if($pc_nav.find('.cl-menu-option').length > 0 && $('body').width() < 767) { 756 $pc_nav.find('.cl-menu-option').removeClass('open'); 757 } else { 758 if ($('header #tpl-menu').children().length) $('header.navbar-fheader .navbar-toggle').css({ 'visibility': 'visible' }); 759 else $('header.navbar-fheader .navbar-toggle').css({ 'visibility': 'hidden' }); 760 $('.dsgn-body').removeClass('mobile-nav-active'); 761 $('#mobile-body-overly').removeClass('in'); 762 $('#mobile-nav .siteLANG.cl-fixbtn').hide(); 763 } 764 }); 765 }, 766 setRootBlock(thisBlock,root_key,usedtoggle) { 767 if( typeof thisBlock != 'undefined' && thisBlock.length > 0 && thisBlock.find('.cl-menu-option').length > 0) { 768 if(root_key == '--block-height') { 769 var h = thisBlock.outerHeight(); 770 document.querySelector('header').style.setProperty('--block-height', h + 'px', null); 771 772 if($('#el-blockConfig').hasClass('open')) { 773 if(!thisBlock.find('.cl-menu-option').hasClass('open')) thisBlock.find('.cl-menu-option').toggleClass('open'); 774 } else if(usedtoggle) { 775 thisBlock.find('.cl-menu-option').toggleClass('open'); 776 } else { 777 thisBlock.find('.cl-menu-option').removeClass('open'); 778 } 779 780 if(thisBlock.find('.cl-menu-option').is('.nfullDrop[data-mo
780ption="nfull"]')) { 781 var h_p_b = thisBlock.css('padding-bottom').replace(/[^0-9]/g,'') * 1; 782 document.querySelector('header').style.setProperty('--cl-nfull-top', h_p_b + 'px', null); 783 } 784 } 785 } 786 787 }, 788 drawClDropFixedmenu: function(pcNav) { 789 if($('header #fixed-menu').length > 0) { 790 var drop_fixed_menu = '<ul class="cl-drop-fixed-menu">' + $('header #fixed-menu').html() + '</ul>'; 791 if(pcNav.find('.cl-drop-fixed-menu').length > 0) pcNav.find('.cl-drop-fixed-menu').replaceWith(drop_fixed_menu); 792 else if(pcNav.find('.navbar-header .micon').length > 0) pcNav.find('.navbar-header .micon').before(drop_fixed_menu); 793 else pcNav.find('.navbar-header .navbar-toggle').before(drop_fixed_menu); 794 } 795 }, 796 checkNfullDrop: function(nav_selector) { 797 var $pc_nav = $(nav_selector), 798 isellist = (nav_selector.match(/^\.elviewhtml/gi)) ? true : false, 799 iselmenuedit = (nav_selector.match(/^\.elmenu-color-edit/gi)) ? true : false, 800 isparent = (typeof window.parent != 'undefined' && window.parent != this) ? true : false; 801 802 if($pc_nav.find('.cl-menu-option[data-moption="nfull"]').length > 0) { 803 804 var checkBlockConfig = $('#el-blockConfig').hasClass('open'); 805 if(checkBlockConfig || isparent) { 806 $pc_nav.find('.cl-drop-fixed-menu').remove(); 807 $pc_nav.find('.cl-menu-option').removeAttr('data-nfull-drop').removeClass('nfullDrop'); 808 } 809 810 var delay = (checkBlockConfig) ? 500 : 0; 811 setTimeout(function() { 812 var checkMfullDrop = $pc_nav.find('.cl-menu-option').is('[data-nfull-drop]'), 813 // checkMenuOrg = ($pc_nav.find('.cl-menu-option').is('[data-mwidth]')) ? false : true, 814 // tpl_menu_selector = (checkMenuOrg) ? nav_selector+' #tpl-menu' : nav_selector+' .cl-moption', 815 tpl_menu_selector = nav_selector + ' #tpl-menu', 816 m_wrap = $(tpl_menu_selector).first().width(), 817 m_w = 0, 818 mdrop_onoff = (checkMfullDrop) ? $pc_nav.find('.cl-menu-option').hasClass('nfullDrop') : false; 819 820 var fixed_menu_w = $pc_nav.find('#fixed-menu').outerWidth(); 821 if($pc_nav.is('[data-fh-type="right"][data-fixtextalign="center"]')) { 822 $pc_nav.find(nav_selector+' #tpl-menu').css('padding-left',fixed_menu_w + 'px'); 823 } else { 824 document.querySelector(nav_selector+' #tpl-menu').style.removeProperty('padding-left'); 825 } 826 827 if(checkMfullDrop) { 828 var m_container = $pc_nav.find('.container:not(.moption-container, .fh-container)').eq(0).width(), 829 m_drop = $pc_nav.find('.cl-menu-option').attr('data-nfull-drop'); 830 if(Number(m_drop) > 0 && m_container > Number(m_drop)) { 831 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeClass('nfullDrop'); 832 } else { 833 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').addClass('nfullDrop'); 834 setFixedMenuCss(isellist); 835 } 836 } else { 837 $(tpl_menu_selector).first().children().each(function() { 838 m_w += $(this).outerWidth(); 839 }); 840 841 var m_top = $(tpl_menu_selector).first().children().first().offset().top, 842 m_last = $(tpl_menu_selector).first().children().last().offset().top; 843 if(m_top != m_last || m_w > m_wrap) { 844 var mcontainer = $pc_nav.find('.container:not(.moption-container, .fh-container)').eq(0).width(), 845 mdrop = mcontainer + (m_w - m_wrap); 846 847 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').attr('data-nfull-drop',mdrop).addClass('nfullDrop'); 848 setFixedMenuCss(isellist); 849 } else { 850 $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeAttr('data-nfull-drop'); 851 } 852 } 853 854 if($pc_nav.is('[data-fh-type="right"]') && $pc_nav.find('.cl-menu-option').hasClass('nfullDrop')) { 855 $.moption.drawClDropFixedmenu($pc_nav); 856 } 857 858 // if(iselmenuedit) $pc_nav.find('.cl-menu-option[data-moption="nfull"]').removeClass('nfullDrop'); 859 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',false); 860 }, delay); 861 } else { 862 if($('body').width() > 767) $.moption.setRootBlock($pc_nav,'--block-height',false); 863 } 864 865 }, 866 } 867 868 $.psearch = { 869 init: function() { 870 // console.log('psearch init');
871 if(!$('.el-menu header.navbar').hasClass('navbar-fheader')) return false; 872 873 // psearch - ì¼í몰 ìê¸ì ì¬ì©ì¬ë¶ ì²´í¬ í on/off 874 var s_validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN, 875 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 876 checkSM = (s_validplan && s_validtype == 'SM') ? true : false; 877 878 if(checkSM) $.psearch.set('on'); 879 else $.psearch.set('off'); 880 }, 881 set: function(onoff) { 882 // console.log('psearch set'); 883 if(!$('.el-menu header.navbar').hasClass('navbar-fheader')) return false; 884 885 if(onoff.match(/on/gi)) $.psearch.makeSiteSEARCH(); 886 else { 887 $('#fixed-menu, #fixed-menu-sub').find('.siteSEARCH').remove(); 888 } 889 }, 890 makeSiteSEARCH: function() { 891 // console.log('psearch makeSiteSearch'); 892 // ì°ì PC, MOBILE 구조 ëì¼íê² ì ì©í¨ => (menufixbtnì ì© ì ë©ë´ë¸ë) 893 894 /* Shopping Only KO Site */ 895 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 896 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 897 // $('#fixed-menu, #fixed-menu-sub').find('.siteSEARCH').remove(); 898 // return false; 899 // } 900 901 var pc_nav = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'); 902 var mobile_nav = $('#mobile-nav #fixed-menu'); 903 var checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false; 904 var checkLux = (PAGE_MODE == 'c') ? LUX : property.LUX; 905 var search_icon = (checkFixTypeMenu) ? clSVG('fixbtn_search4',28,28) : '<i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i>'; 906 907 var content = (checkFixTypeMenu) ? ` 908 <div class="psearch-overlay"> 909 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 910 <div class="psearch-body"> 911 <span class="psearch-wrap"> 912 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 913 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 914 </span> 915 </div> 916 </div> 917 ` : ` 918 <li class="siteSEARCH"> 919 <a href="javascript:;" class="psearch-btn"><i class="cl-icon cl_icon_magnifier" aria-hidden="true"></i></a> 920 <div class="psearch-overlay"> 921 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 922 <div class="psearch-body"> 923 <span class="psearch-wrap"> 924 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 925 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 926 </span> 927 </div> 928 </div> 929 </li> 930 `; 931 var mobile_content = ` 932 <li class="siteSEARCH"> 933 <a href="javascript:;" class="psearch-btn">${search_icon}</a> 934 <div class="psearch-overlay"> 935 <span class="psearch-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Product Search"></span></span> 936 <div class="psearch-body"> 937 <span class="psearch-wrap"> 938 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a> 939 <input class="psearch-input" type="text" name="" placeholder="${$.lang[LANG]['psearch.input.placeholder']}"> 940 </span> 941 </div> 942 </div> 943 </li> 944 `; 945 946 if(pc_nav.find('.siteSEARCH').length > 0) { 947 if(checkFixTypeMenu){ 948 pc_nav.find('.siteSEARCH').find('a').addClass('psearch-btn'); 949 pc_nav.find('.siteSEARCH').append(content); 950 } else pc_nav.find('.siteSEARCH').replaceWith(content); 951 } else pc_nav.prepend(content); 952 953 if(mobile_nav.find('.siteSEARCH').length>0) { 954 if(checkFixTypeMenu) { 955 var regExp = new RegExp(/cl\-fixbtn|cl\-visible/, "gi"), 956 addClass = (mobile_nav.find('.siteSEARCH').attr('class').match(regExp)!==null) ? mobile_nav.find('.siteSEARCH').attr('class').match(regExp).join(" ") : '', 957 $site_search = mobile_nav.find('.siteSEARCH'); 958 959 mobile_nav.find('.siteSEARCH').find('a').addClass('psearch-btn'); 960 mobile_nav.find('.siteSEARCH').replaceWith(mobile_content); 961 mobile_nav.find('.siteSEARCH').addClass(addClass); 962 963 if(pc_nav.find('.siteSEARCH').css('display')=='none') mobile_nav.find('.siteSEARCH').hide(); 964 } else mobile_nav.find('.siteSEARCH').replaceWith(mobile_content); 965 } else mobile_nav.prepend(mobile_content); 966 967 // #fixed-menu-sub psearch not working 968 // pc_nav.each(function() { 969 // if($(this).attr('id') == 'fixed-menu-sub') { 970 // $(this).find('.psearch-overlay').remove(); 971 // } 972 // }); 973 }, 974 groupByTab: function(list) { 975 var groups = { 976 all: [], 977 shopping: [], 978 forum: [], 979 gallery: [], 980 etc: [] 981 }; 982 983 for (var i = 0; i < list.length; i++) { 984 var o = list[i]; 985 var tab = o.tab || 'etc'; 986 987 groups.all.push(o); 988 989 if (!groups[tab]) tab = 'etc'; 990 groups[tab].push(o); 991 } 992 993 return groups; 994 }, 995 initTabs: function($wrap){ 996 var groups = $wrap.data('psearchGroups') || {}; 997 var $tabs = $wrap.find('.psearch-tabs'); 998 if($tabs.length==0) return; 999 1000 var active = $tabs.attr('data-active') || 'all'; 1001 1002 // ì´ê¸° íì±í 1003 $wrap.find('.psearch-tab-nav .tab-item').removeClass('active'); 1004 $wrap.find('.psearch-tab-nav .tab-item[data-tab="'+active+'"]').addClass('active'); 1005 1006 $wrap.find('.psearch-panel').hide(); 1007 $wrap.find('.psearch-panel[data-tab="'+active+'"]').show(); 1008 1009 // í´ë¦ ì´ë²¤í¸ 1010 $wrap.find('.psearch-tab-nav .tab-item').live('click', function(e){ 1011 e.preventDefault(); 1012 var tab = $(this).attr('data-tab'); 1013 1014 var tabPages = $wrap.data('psearchTabPages') || {}; 1015 tabPages[tab] = 1; 1016 $wrap.data('psearchTabPages', tabPages); 1017 1018 $tabs.attr('data-active', tab); 1019 if($wrap.find('#psearch-tab').length) $wrap.find('#psearch-tab').val(tab); 1020 1021 $wrap.find('.psearch-tab-nav .tab-item').removeClass('active'); 1022 $(this).addClass('active'); 1023 1024 $wrap.find('.psearch-panel').hide(); 1025 $wrap.find('.psearch-panel[data-tab="'+tab+'"]').show(); 1026 1027 var cnt = groups[tab] ? groups[tab].length : 0, 1028 cnt_lang = (LANG == 'ko') ? 'ê°' : ''; 1029 $wrap.find('.psearch-total-count').html('<strong>'+cnt + cnt_lang +'</strong><span class="count-txt">' + $.lang[LANG]['fheader.psearch.result'] + '</span>'); 1030 }); 1031 }, 1032 view: function() { 1033 // console.log('psearch view'); 1034 // var deferred = $.Deferred(); 1035 1036 var check_p = (property.PAGE == 'psearch') ? true : false;
1037 if(check_p) { 1038 var p_stx = property.PARENT?.psearch_stx ?? ''; 1039 var p_total = property.PARENT?.psearch_total ?? 0; 1040 var p_list = property.PARENT['psearch_list']; 1041 var p_page_num = property.PARENT['psearch_num']; 1042 var p_view = property.PARENT['psearch_view']; 1043 var p_selector = (property.LUX) ? 'psearch-block' : 'psearch-view'; 1044 1045 let psearch_view = ''; 1046 if(property.LUX) { 1047 //lux search view 1048 psearch_view = property.PARENT['psearch_eltag']; 1049 if($('style#psearchblockcss').length == 0) { 1050 $('body').append('<link rel="stylesheet" type="text/css" id="psearchblockcss" href="/css/block/psearch_block.css">'); 1051 } 1052 if($('script#psearchblockjs').length == 0) { 1053 var psearchJS = document.createElement('script'); 1054 psearchJS.setAttribute('src', '/js/block/psearch_block.js'); 1055 psearchJS.setAttribute('id', 'psearchblockjs'); 1056 document.body.appendChild(psearchJS); 1057 1058 psearchJS.onload = function() { 1059 $('body').append('<input type="hidden" id="psearchblockjs" data-src="/js/block/psearch_block.js">'); 1060 $(`.${p_selector}`).fadeIn().removeAttr('style'); 1061 1062 if($('.psearch-block .pfilter-fbox .fcol-c-ul:not([data-key="psearch"]) > li.active').length > 0) { 1063 if($('.psearch-block .pfilter-fbox .fcol-c-ul[data-key="brand"] > li.active').length > 0) { 1064 $('.psearch-block .pfilter-fbox .fcol-c-ul[data-key="brand"]').closest('.frow').addClass('open'); 1065 } 1066 var cancel_svg = clSVG('close',10,10,true,'pick-cancel-btn'); 1067 $('.psearch-block .pfilter-fbox .fcol-c-ul:not([data-key="psearch"]) > li.active').each(function() { 1068 var isOnly = $(this).closest('ul').is('[data-only="true"]'); 1069 var pfilter_key = $(this).closest('ul').attr('data-key'); 1070 var pfilter_name = $(this).text().trim(); 1071 var pfilter_val = $(this).attr('data-val'); 1072 var pfilter_input = (isOnly) ? pfilter_key : pfilter_key+'[]'; 1073 if(isOnly) $('#psearchForm .psearch-pick.'+pfilter_key+'').remove(); 1074 $('#psearchForm').append('<input type="hidden" class="psearch-pick '+pfilter_key+'" name="'+pfilter_input+'" value="'+pfilter_val+'" />'); 1075 $('.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>'); 1076 }); 1077 $('.psearch-block .pfilter-fbox .frow.last').removeClass('hide'); 1078 } else { 1079 $('.psearch-block .pfilter-fbox .frow.last').addClass('hide'); 1080 } 1081 } 1082 } 1083 1084 } else { 1085 //shopping search view 1086 var wrap = ($('header.navbar .container').hasClass('full-width')) ? 'full-width' : ''; 1087 psearch_view = '\ 1088 <div class="psearch-view" data-sid="'+property.SID+'" style="height:' + ($(document).height() * 0.2) + 'px; display: none;">\ 1089 <input type="hidden" id="psearch-stx" value="' + p_stx + '" />\ 1090 <input type="hidden" id="psearch-total" value="' + p_total + '" />\ 1091 <input type="hidden" id="psearch-tab" value="all" />\ 1092 <div class="container ' + wrap + '">\ 1093 <div class="psearch-body">\ 1094 <div class="row">\ 1095 <div class="col-sm-offset-2 col-md-offset-4 col-xs-12 col-sm-8 col-md-4">\ 1096 <span class="psearch-wrap">\ 1097 <input class="psearch-input" type="text" name="" placeholder="' + $.lang[LANG]['fheader.psearch'] + '" value="' + p_stx + '">\ 1098 <a href="#" class="psearch-icon"><i class="cl-icon cl_icon_magnifier"></i></a>\ 1099 </span>\ 1100 </div>\ 1101 </div>\ 1102 '; 1103 1104 // í ë¶ë¥ 1105 var groups = $.psearch.groupByTab(p_list); 1106 1107 var PAGE_SIZE = 8; 1108 var PAGE_VIEW = 5; 1109 var $pEL = $('.'+p_selector); 1110 $pEL.data('psearchPageSize', PAGE_SIZE); 1111 $pEL.data('psearchPageView', PAGE_VIEW); 1112 1113 // íë³ 1114 $pEL.data('psearchTabPages', { all:1, shopping:1, forum:1, gallery:1, etc:1 }); 1115 1116 // all ì¹ì ë³ 1117 $pEL.data('psearchAllSectionPages', { shopping:1, gallery:1, forum:1, etc:1 }); 1118 1119 var tabCount = { 1120 all: groups.all.length, 1121 shopping: groups.shopping.length, 1122 forum: groups.forum.length, 1123 gallery: groups.gallery.length, 1124 etc: groups.etc.length 1125 }; 1126 1127 // 기본 íì± í(ì¼í>ê²ìí>ê°¤ë¬ë¦¬>기í) 1128 var activeTab = 'all'; 1129 // ì ì²´ ê²ìê²°ê³¼ ì 1130 var totalCnt = tabCount.shopping + tabCount.forum + tabCount.gallery + tabCount.etc; 1131 if (totalCnt === 0) { //ê²ìê²°ê³¼ 0 1132 activeTab = 'all'; 1133 } else { 1134 if (tabCount.shopping > 0 && totalCnt === tabCount.shopping) { 1135 activeTab = 'shopping'; 1136 } else if (tabCount.forum > 0 && totalCnt === tabCount.forum) { 1137 activeTab = 'forum'; 1138 } else if (tabCount.gallery > 0 && totalCnt === tabCount.gallery) { 1139 activeTab = 'gallery'; 1140 } else if (tabCount.etc > 0 && totalCnt === tabCount.etc) { 1141 activeTab = 'etc'; 1142 } else { 1143 activeTab = 'all'; 1144 } 1145 } 1146 1147 var p_sort = (typeof property.PARENT['psearch_sort'] != 'undefined' && property.PARENT['psearch_sort']) ? property.PARENT['psearch_sort'] : '
1147new', 1148 cnt_lang = (LANG == 'ko') ? 'ê°' : ''; 1149 // í ë¤ë¹ 1150 psearch_view += '\ 1151 <div class="psearch-tabs" data-active="'+activeTab+'">\ 1152 <ul class="psearch-tab-nav">\ 1153 <li class="tab-item" data-tab="all">' + $.lang[LANG]['fheader.psearch.all'] + ' <span class="cnt">('+tabCount.all+')</span></li>\ 1154 <li class="tab-item" data-tab="shopping">' + $.lang[LANG]['fheader.psearch.shopping'] + ' <span class="cnt">('+tabCount.shopping+')</span></li>\ 1155 <li class="tab-item" data-tab="gallery">' + $.lang[LANG]['fheader.psearch.gallery'] + ' <span class="cnt">('+tabCount.gallery+')</span></li>\ 1156 <li class="tab-item" data-tab="forum">' + $.lang[LANG]['fheader.psearch.forum'] + ' <span class="cnt">('+tabCount.forum+')</span></li>\ 1157 <li class="tab-item" data-tab="etc">' + $.lang[LANG]['fheader.psearch.etc'] + ' <span class="cnt">('+tabCount.etc+')</span></li>\ 1158 </ul>\ 1159 </div>\ 1160 <div class="psearch-sort-wrap">\ 1161 <div class="psearch-total-count"><strong>'+ p_total + cnt_lang +'</strong><span class="count-txt">' + $.lang[LANG]['fheader.psearch.result'] + '</span></div>\ 1162 <div class="gallery-sort-nav goption-row psearch-sort" data-sort-lang="' + LANG + '">\ 1163 <div class="toggle-dropdown display-flex space-between align-items-center">\ 1164 <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>\ 1165 </div>\ 1166 <ul>\ 1167 <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>\ 1168 <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>\ 1169 </ul>\ 1170 </div>\ 1171 </div>\ 1172 '; 1173 1174 // í í¨ë ë ë 1175 psearch_view += '<div class="psearch-tab-panels">'; 1176 1177 psearch_view += (function(){ 1178 var h = '<div class="psearch-panel" data-tab="all" style="display:none;">'; 1179 var parts = []; 1180 var s1 = $.psearch.renderAllSection($pEL, 'shopping', groups.shopping); 1181 if(s1) parts.push(s1); 1182 var s2 = $.psearch.renderAllSection($pEL, 'gallery', groups.gallery); 1183 if(s2) parts.push(s2); 1184 var s3 = $.psearch.renderAllSection($pEL, 'forum', groups.forum); 1185 if(s3) parts.push(s3); 1186 var s4 = $.psearch.renderAllSection($pEL, 'etc', groups.etc); 1187 if(s4) parts.push(s4); 1188 1189 if(parts.length === 0){ 1190 h += '<div class="row text-center pitem-empty">' 1191 + $.lang[LANG]["fheader.psearch.pitem-empty"] 1192 + '</div>'; 1193 } else { 1194 h += parts.join(''); 1195 } 1196 1197 h += '</div>'; 1198 return h; 1199 })(); 1200 psearch_view += $.psearch.renderTabPanel($pEL, 'shopping', groups.shopping); 1201 psearch_view += $.psearch.renderTabPanel($pEL, 'forum', groups.forum); 1202 psearch_view += $.psearch.renderTabPanel($pEL, 'gallery', groups.gallery); 1203 psearch_view += $.psearch.renderTabPanel($pEL, 'etc', groups.etc); 1204 psearch_view += '</div>'; 1205 psearch_view += '</div></div></div></div>'; 1206 1207 $('.psearchcss').remove(); 1208 var p_color = $('.dsgn-body').css('color'); 1209 var p_line_color = $('.dsgn-body').css('color'); 1210 var p_size = $('.dsgn-body').css('font-size'); 1211 var p_css = ` 1212 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-wrap { border-bottom-color: ${p_line_color}; } 1213 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-input { color: ${p_color}; } 1214 .dsgn-body > .psearch-view[data-sid="${property.SID}"] .psearch-pagination > li > a { color: ${p_color}; } 1215 `; 1216 $('#dsgn-body').after(`<style class="psearchcss"${p_css}</style>`); 1217 } 1218 1219 if($.clnav.check()) {
1220 $('.dsgn-body').prepend(psearch_view); 1221 } else { 1222 $('.header.el-menu').after(psearch_view); 1223 } 1224 1225 var $pEL = $('.'+p_selector); 1226 $pEL.data('psearchGroups', groups); 1227 1228 changeBrokenImages($pEL); 1229 1230 $.psearch.initTabs($('.'+p_selector)); 1231 $.psearch.bindClientPagination($pEL); 1232 $pEL.find('.psearch-sort').val(p_sort); 1233 1234 var p_tab = (property.PARENT && property.PARENT['psearch_tab']) ? property.PARENT['psearch_tab'] : ($pEL.find('.psearch-tabs').attr('data-active') || 'shopping'); 1235 // console.log(p_tab); 1236 setTimeout(function(){ 1237 $pEL.find('.psearch-tab-nav .tab-item[data-tab="'+p_tab+'"]').trigger('click'); 1238 }, 0); 1239 1240 // ì ë ¬ ëë¡ë¤ì´ í ê¸ (ì´ê³ /ë«ê¸°) 1241 $pEL.off('click', '.psearch-sort .toggle-dropdown'); 1242 $pEL.on('click', '.psearch-sort .toggle-dropdown', function(e){ 1243 e.preventDefault(); 1244 e.stopPropagation(); 1245 $(this).closest('.psearch-sort').toggleClass('open'); 1246 }); 1247 // ë°ê¹¥ í´ë¦ ì ë«ê¸° 1248 $(document).off('click.psearchSortClose').on('click.psearchSortClose', function(e){ 1249 if($(e.target).closest('.psearch-sort').length === 0){ 1250 $pEL.find('.psearch-sort').removeClass('open'); 1251 } 1252 }); 1253 1254 // ì ë ¬ ì í 1255 $pEL.off('click', '.psearch-sort ul a[data-sort]'); 1256 $pEL.on('click', '.psearch-sort ul a[data-sort]', function(e){ 1257 e.preventDefault(); 1258 1259 var sort = $(this).attr('data-sort') || 'new'; // í´ë¦í ê° 1260 var currentSort = property.PARENT['psearch_sort'] || 'new'; // íì¬ ê° 1261 1262 if(sort === currentSort){ 1263 $pEL.find('.psearch-sort').removeClass('open'); 1264 return; 1265 } 1266 1267 var psearch_stx = $('#psearch-stx').val() || ''; 1268 var tab = $('#psearch-tab').val() || 'all'; 1269 1270 // UI í ì¤í¸ ë°ì 1271 $pEL.find('.psearch-sort .active-sort').text($(this).text().trim()); 1272 $pEL.find('.psearch-sort').removeClass('open'); 1273 1274 var url = (PAGE_MODE=='s') ? '' : '/render'; 1275 location.href = url + '/psearch/num/1/stx/' + encodeURIComponent(psearch_stx) + '/sort/' + sort + '/tab/' + tab; 1276 }); 1277 1278 if(p_selector == 'psearch-view') $pEL.fadeIn().removeAttr('style'); 1279 1280 // $pagination = $pEL.find('.psearch-pagination'); 1281 // $.psearch.setPagination($pagination,p_stx,p_total,p_page_num,p_view); 1282 1283 // if(p_total <= p_view) $pagination.addClass('hidden'); 1284 // else $pagination.removeClass('hidden'); 1285 1286 if(p_selector == 'psearch-view') { 1287 if(PAGE_MODE != 'c') $.psearch.showSiteProjectSEARCH(true); 1288 if(PAGE_MODE == 's' && typeof callbackEvtProductSearch == 'function') callbackEvtProductSearch(p_stx); 1289 } 1290 1291 $pEL.off('click', '.psearch-client-nav a'); 1292 $pEL.on('click', '.psearch-client-nav a', function(e){ 1293 e.preventDefault(); 1294 1295 // disabledë©´ 무ì 1296 if ($(this).parent().hasClass('disabled')) return; 1297 1298 var sectionKey = $(this).closest('.psearch-client-nav').attr('data-skey'); 1299 var page = parseInt($(this).attr('data-page'), 10) || 1; 1300 1301 // ìí ì ì¥ 1302 var secPages = $pEL.data('psearchAllSectionPages') || {}; 1303 secPages[sectionKey] = page; 1304 $pEL.data('psearchAllSectionPages', secPages); 1305 1306 // í´ë¹ ì¹ì ë§ ì¬ë ë 1307 var groups = $pEL.data('psearchGroups') || {}; 1308 var list = groups[sectionKey] || []; 1309 1310 var html = renderSection(sectionKey, list); 1311 $pEL.find('.psearch-all-section[data-section="'+sectionKey+'"]').replaceWith(html); 1312 }); 1313 1314 $pEL.off('click', '.psearch-tab-navpage a'); 1315 $pEL.on('click', '.psearch-tab-navpage a', function(e){ 1316 e.preventDefault(); 1317 if($(this).closest('li').hasClass('disabled')) return; 1318 1319 var tabKey = $(this).closest('.psearch-tab-navpage').attr('data-tkey'); // shopping|forum|gallery|etc 1320 var page = parseInt($(this).attr('data-page'), 10) || 1; 1321 1322 // ìí ì ì¥ 1323 var tabPages = $pEL.data('psearchTabPages') || {}; 1324 tabPages[tabKey] = page; 1325 $pEL.data('psearchTabPages', tabPages); 1326 1327 // ì ì²´ í¨ë ì¬ë ë (ë¡ì»¬ renderPanel ì ê±°) 1328 $.psearch.rerenderPanels($pEL); 1329 1330 // íì± í ì ì§ 1331 var active = $pEL.find('.psearch-tabs').attr('data-active') || 'all'; 1332 $pEL.find('.psearch-panel').hide(); 1333 $pEL.find('.psearch-panel[data-tab="'+active+'"]').show(); 1334 }); 1335 1336 } 1337 1338 // deferred.resolve(); 1339 // return deferred.promise(); 1340 }, 1341 pItemEmpty: function() { 1342 // console.log('psearch pItemEmpty'); 1343 return ` 1344 <div class="pitem sample-item"> 1345 <div class="col-xs-3 col-sm-3 col-md-3 no-padding"> 1346 <div class="center-block"><img src="//storage.googleapis.com/i.addblock.net/blitem_empty_img.png" alt="" class="img-responsive"/></div> 1347 </div>
1348 </div> 1349 `; 1350 }, 1351 pItem: function(o) { 1352 // console.log('psearch pItem',o); 1353 var img_path = (typeof o.settings.storage != 'undefined' && o.settings.storage) ? o.settings.storage : property.RPATH; 1354 var img_original = (typeof o.settings.storage != 'undefined' && o.settings.storage) ? img_path + '1920/' : img_path; 1355 var img_src = getServeImage(o.image,600,img_path); 1356 var src_s0 = getServeImage(o.image,'0',img_path); 1357 1358 var glink = (typeof o.settings.glink != 'undefined' && o.settings.glink) ? o.settings.glink : ''; 1359 var glink_target = (typeof o.settings.glink_target != 'undefined' && o.settings.glink_target) ? o.settings.glink_target : ''; 1360 1361 if(glink) { 1362 if(glink.match(/^\@/g) !== null) { // link-type: link-bookmark ==> a[attr-bookmark] 1363 var bookmark_seq = glink.replace(/^\@/g,''); 1364 if(typeof property.SETTINGS.blockBookmarkList == 'undefined' || typeof property.SETTINGS.blockBookmarkList['bookmark' + bookmark_seq] == 'undefined') { 1365 glink = ''; 1366 glink_target = ''; 1367 } 1368 } else if(glink.match(/^flink\@[0-9]/gi) !== null) { // link-type: link-file ==> a[attr-flink] 1369 glink_target = ''; 1370 } else if($.inArray(glink.replace(/^\//g,'').replace(/ /g,'-'),property.MENULIST) > -1) { // link-type: link-menu ==> a[data-user-link] 1371 } else { // link-type: link-out ==> a[attr-link] 1372 if(checkBase64Encode(glink)) glink = Base64.decode(glink); 1373 } 1374 } 1375 1376 var pitem_src = ''; 1377 var pitem_option = ''; 1378 1379 if(glink) { 1380 pitem_src = makeLinkUrl(glink, property.ONE, property.VIEW); 1381 1382 if(glink.match(/^\@/g) !== null) { 1383 pitem_option = 'attr-bookmark="' + glink.replace(/^\@/g,'') + '"'; 1384 } else if(glink.match(/^flink\@[0-9]/g) !== null) { 1385 pitem_option = 'attr-flink="' + glink.replace(/^flink\@/g,'') + '"'; 1386 } else if(property.MENULIST.includes(glink.replace(/ /g,'-'))) { 1387 pitem_option = 'data-user-link="' + pitem_src + '"'; 1388 } else { 1389 var checkURL = /(http(s)?:\/\/)?\S+(\.[^(\n|\t|\s|\/))]+)+/gi; 1390 if(checkURL.test(glink)) pitem_option = 'attr-link="' + glink + '"'; 1391 else pitem_src = 'javascript:;'; 1392 } 1393 } else { 1394 // etc(page) í´ë¹ íì´ì§ë¡ ì´ë 1395 if (o.type === 'page') { 1396 var map = property.MENU_BREADCRUMB_MAP || {}; 1397 1398 // 1) page slug 구í기: "ì¤í 리-ìë¸11122,580901" ê°ì ê²½ì° ëë¹ 1399 var pageRaw = (o.page || '').toString(); 1400 var slug = pageRaw.indexOf(',') > -1 ? $.trim(pageRaw.split(',')[0]) : pageRaw; 1401 1402 // 2) ìì¸ URLì´ ìë ìë ë©ë´ í¤ë "/slug" ë¡ ë§ì¶°ì lookup 1403 var key = $.psearch.normalizeHref('/' + slug); 1404 var crumb = map[key]; 1405 1406 if (crumb) { 1407 o.cont = crumb; // "í > ë¸ëë ì¤í 리 > ì¤í 리 ìë¸11122" 1408 } else { 1409 // fallback 1410 o.cont = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + slug.replace(/-/g,' '); 1411 } 1412 1413 // /url/view/id ë¡ ì´ë 1414 if (pageRaw.indexOf(',') > -1) { 1415 1416 var parts = pageRaw.split(','); 1417 var urlPage = $.trim(parts[0] || ''); 1418 var viewId = $.trim(parts[1] || ''); 1419 1420 if (urlPage && viewId) { 1421 // /{urlPage}/view/{viewId} 1422 pitem_src = ((property.URL=='/') ? '' : property.URL) + '/' + urlPage + '/view/' + viewId; 1423 pitem_option = ''; // view ë§í¬ë data-user-link íììì 1424 } else { 1425 pitem_src = 'javascript:;'; 1426 } 1427 1428 } else { 1429 if (property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1430 pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1431 pitem_option = 'data-user-link="' + o.page + '" data-psearch-pid="' + o.pid + '"'; 1432 } else { 1433 pitem_src = 'javascript:;'; 1434 } 1435 } 1436 1437 // forumì /forum/view/{id} ë¡ ì´ë 1438 } else if (o.type === 'forum') { 1439 1440 var base = (PAGE_MODE == 'r') ? '/render' : ''; 1441 pitem_src = base + '/forum/view/' + o.id; 1442 pitem_option = ''; // forumì data-user-link íì ìì 1443 1444 // ì¼í(ìí) view íì´ì§ ì ì§ 1445 } else if (o.type === 'gallery' && o.p_mode === 'shopping') { 1446 1447 pitem_src = ((property.URL == '/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1448 1449 // ê°¤ë¬ë¦¬(ìì¸íì´ì§) view íì´ì§ ì´ë 1450 } else if (o.type === 'gallery' && o.p_mode === 'project') { 1451 1452 pitem_src = ((property.URL == '/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1453 1454 // ì¼ë° ê°¤ë¬ë¦¬/기í â í´ë¹ íì´ì§ë¡ ì´ë (ë¸ë ìì¹ë¡) 1455 } else { 1456 1457 if (property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1458 pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1459 pitem_option = 'data-user-link="' + o.page + '" data-psearch-pid="' + o.pid + '"'; 1460 } else { 1461 pitem_src = 'javascript:;'; 1462 } 1463 1464 } 1465 } 1466 1467 // } else { 1468 // if (o.p_mode == 'gallery') { 1469 // if(property.MENULIST.indexOf(o.page) > -1 || property.ONE) { 1470 // var pitem_cookie = (o.p_cookie == 'gallery') ? 'data-psearch-pid="' + o.pid + '"' : 'data-
1470psearch-seq="' + o.id + '"'; 1471 // pitem_option = 'data-user-link="' + o.page + '" '+pitem_cookie; 1472 // pitem_src = makeLinkUrl(o.page, property.ONE, property.VIEW); 1473 // } else { 1474 // pitem_src = 'javascript:;'; 1475 // } 1476 // } else { 1477 // pitem_src = ((property.URL=='/') ? '' : property.URL) + '/' + o.page + '/view/' + o.id; 1478 // } 1479 // } 1480 var isGallery = (o.type === 'gallery') ? '<img src="' + o.thumb + '" alt="" class="img-responsive" />' : ''; 1481 // console.log(o); 1482 var str = '\ 1483 <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 + '">\ 1484 <a href="'+pitem_src+'" '+ pitem_option + '>\ 1485 '+ isGallery +'\ 1486 <div class="info-wrap">\ 1487 <h5 class="'+ ($.inArray('title', o.field_disable) > -1 ? 'hide' : '') +'">' + o.title + '</h5>\ 1488 '; 1489 if(o.p_mode == 'shopping' || o.p_mode == 'gallery') str += '<p class="'+ ($.inArray('caption', o.field_disable) > -1 ? 'hide' : '') +'">' + o.cont + '</p>'; 1490 else str += '<p class="'+ ($.inArray('cont', o.field_disable) > -1 ? 'hide' : '') +'">' + o.cont + '</p>'; 1491 1492 if(o.p_mode == 'shopping') { 1493 if(o.price) { 1494 str += '\ 1495 <p class="price-box '+ ($.inArray('price', o.field_disable) > -1 ? 'hide' : '') +'"><span class="figure-krw">₩</span> ' + o.price + '</p>\ 1496 <span></span>\ 1497 '; 1498 } 1499 1500 if(o.review_onoff && o.review_cnt > 0) { 1501 str += '\ 1502 <ul class="review-box">\ 1503 <li class="review-cnt">리뷰 <span class="sh-pcolor">' + o.review_cnt + '</span></li>\ 1504 <li class="review-score">íì <span class="sh-pcolor">' + o.review_score + '</span></li>\ 1505 </ul>\ 1506 '; 1507 } 1508 1509 // let str = ` 1510 // <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}"> 1511 // <a href="${pitem_src}" ${pitem_option}> 1512 // <img src="${o.thumb}" alt="" class="img-responsive" /> 1513 // <div class="info-wrap"> 1514 // <h5>${htmlDecode(o.title)}</h5> 1515 // <p>${htmlDecode(o.cont)}</p> 1516 // `; 1517 1518 var basket_class = (o.basket_off || $.inArray('basket', o.field_disable) > -1) ? 'hide' : ''; 1519 str += '\ 1520 <div class="basket-box ' + basket_class + '"><span class="basket-btn">ì¥ë°êµ¬ë ë´ê¸°</span></div>\ 1521 '; 1522 } 1523 1524 if(o.type == 'forum') { 1525 // var cate = o.cate; 1526 // if(cate == '') cate = 'ì¹´í ê³ ë¦¬ ìì' 1527 str += '\ 1528 <p>\ 1529 <span class="'+ ($.inArray('name', o.field_disable) > -1 ? 'hide' : '') +'">'+ o.name +' |</span>\ 1530 <span class="'+ ($.inArray('date', o.field_disable) > -1 ? 'hide' : '') +'">'+ o.date +' |</span>\ 1531 <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>\ 1532 <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>\ 1533 </p>\ 1534 '; 1535 } 1536 str += '\ 1537 </div>'; 1538 if(o.type == 'forum') { 1539 var thumb = (o.thumb) ? o.thumb : '//storage.googleapis.com/i.addblock.net/icon/noimage_250_black.png', 1540 empty = (o.thumb == '') ? 'empty' : ''; 1541 str += '\ 1542 <div class="image-wrap '+ empty +'"><image src='+ thumb +'></div>\ 1543 '; 1544 } 1545 str += '\ 1546 </a>\ 1547 </div>\ 1548 '; 1549 // console.log(str); 1550 return str; 1551 }, 1552 // setPagination: function($obj,stx,total,page_num,view) { 1553 // // console.log('psearch setPagination'); 1554 // var checkLux = (PAGE_MODE == 'c') ? LUX : property.LUX; 1555 // if(checkLux) stx += location.search; 1556 1557 // var p_url = (PAGE_MODE == 'r') ? '/render' : '', 1558 // page_view = 5,
1559 // total_page = Math.ceil(total/view), 1560 // start_page = (page_num%page_view) ? page_num - (page_num%page_view) + 1 : page_num - (page_view-1), 1561 // end_page = start_page + (page_view-1); 1562 // if(end_page > total_page) end_page = total_page; 1563 1564 // var prev_page = ((start_page-1) == 0) ? 1 : start_page-1, 1565 // next_page = ((end_page+1) > total_page) ? end_page : end_page+1; 1566 1567 // $obj.find('li').addClass('psearch-page'); 1568 1569 // var $first = $obj.children().first().clone(), 1570 // $prev = $obj.children().first().clone(), 1571 // $next = $obj.children().last().clone(), 1572 // $last = $obj.children().last().clone(); 1573 1574 // $obj.empty(); 1575 // $first.find('a').attr('href',p_url+'/psearch/num/1/stx/'+stx).find('i').removeClass('fa-angle-left').addClass('fa-angle-double-left'); 1576 // $prev.find('a').attr('href',p_url+'/psearch/num/'+prev_page+'/stx/'+stx); 1577 // $next.find('a').attr('href',p_url+'/psearch/num/'+next_page+'/stx/'+stx); 1578 // $last.find('a').attr('href',p_url+'/psearch/num/'+total_page+'/stx/'+stx).find('i').removeClass('fa-angle-right').addClass('fa-angle-double-right'); 1579 1580 // $obj.append($prev).append($next); 1581 // for(i=start_page; i<=end_page; i++) { 1582 // var active = (i == page_num) ? 'active' : ''; 1583 // $obj.children().last().before($('<li class="psearch-page '+ active +'"><a href="'+p_url+'/psearch/num/'+i+'/stx/'+stx+'">' + i + '</a></li>')); 1584 // } 1585 1586 // if(start_page == prev_page) $obj.children().eq(0).hide(); 1587 // if(end_page == next_page) $obj.children().last().hide(); 1588 1589 // // if(start_page > page_view) $obj.prepend($first); 1590 // // if(end_page < total_page) $obj.append($last); 1591 1592 // }, 1593 bindClientPagination: function($wrap){ 1594 $wrap.find('.psearch-client-nav .psearch-page a').off('click').on('click', function(e){ 1595 e.preventDefault(); 1596 1597 var $nav = $(this).closest('.psearch-client-nav'); 1598 if($nav.find('li.disabled').length && $(this).parent().hasClass('disabled')) return; 1599 1600 var key = $nav.attr('data-key'); // ì: "shopping" ëë "all:shopping" 1601 var page = parseInt($(this).attr('data-page'), 10) || 1; 1602 1603 if (typeof key === 'string' && key.indexOf('all:') === 0) { 1604 var sectionKey = key.replace('all:', ''); 1605 var secPages = $wrap.data('psearchAllSectionPages') || {}; 1606 secPages[sectionKey] = page; 1607 $wrap.data('psearchAllSectionPages', secPages); 1608 } else if (typeof key === 'string') { 1609 var tabPages = $wrap.data('psearchTabPages') || {}; 1610 tabPages[key] = page; 1611 $wrap.data('psearchTabPages', tabPages); 1612 } else { 1613 // ëë²ê¹ ì© 1614 console.warn('psearch pagination key is undefined', this); 1615 } 1616 1617 // í¨ë ì¬ë ë 1618 $.psearch.rerenderPanels($wrap); 1619 $.psearch.initTabs($wrap);
1619 // íì± í ì ì§ 1620 }); 1621 }, 1622 renderAllSection: function($wrap, sectionKey, list){ 1623 var total = (list && list.length) ? list.length : 0; 1624 1625 // â ì ì²´íììë§ ì°ë ì¹ì ì´ë¯ë¡: ê²°ê³¼ ìì¼ë©´ ìì ì¶ë ¥íì§ ìì 1626 if(total === 0) return ''; 1627 1628 var pageSize = $wrap.data('psearchPageSize') || 8; 1629 var secPages = $wrap.data('psearchAllSectionPages') || {}; 1630 var cur = secPages[sectionKey] || 1; 1631 1632 var totalPage = Math.ceil(total / pageSize); 1633 var sliced = list.slice((cur-1)*pageSize, cur*pageSize); 1634 1635 var title_name = (sectionKey == 'shopping') ? $.lang[LANG]['fheader.psearch.shopping'] 1636 : (sectionKey == 'forum') ? $.lang[LANG]['fheader.psearch.forum'] 1637 : (sectionKey == 'gallery') ? $.lang[LANG]['fheader.psearch.gallery'] 1638 : $.lang[LANG]['fheader.psearch.etc']; 1639 1640 var html = '<div class="psearch-all-section" data-section="'+sectionKey+'">'; 1641 html += '<div class="psearch-section-title">'+title_name+'</div>'; 1642 1643 html += '<div class="row multi-columns-row" data-loop="true">'; 1644 for(var i=0;i<sliced.length;i++){ 1645 html += $.psearch.pItem(sliced[i]); 1646 } 1647 html += '</div>'; 1648 1649 // ì¹ì íì´ì§ë¤ì´ì (ìíë ì ì± ëë¡: 1íì´ì§ë 무조건 ë ¸ì¶ì´ë©´ totalPage<=0 ì²´í¬ë¡ ì¡°ì ) 1650 html += $.psearch.renderSectionPagination(sectionKey, cur, totalPage); 1651 1652 html += '</div>'; 1653 return html; 1654 }, 1655 renderTabPanel: function($wrap, tabKey, list){ 1656 var pageSize = $wrap.data('psearchPageSize') || 8; 1657 var tabPages = $wrap.data('psearchTabPages') || {}; 1658 var cur = tabPages[tabKey] || 1; 1659 1660 var total = (list && list.length) ? list.length : 0; 1661 var totalPage = Math.ceil(total / pageSize); 1662 var sliced = (total > 0) ? list.slice((cur-1)*pageSize, cur*pageSize) : []; 1663 1664 var html = '<div class="psearch-panel" data-tab="'+tabKey+'" style="display:none;">'; 1665 1666 if(total === 0){ 1667 html += '<div class="row text-center pitem-empty">' + $.lang[LANG]["fheader.psearch.pitem-empty"] + '</div>'; 1668 } else { 1669 html += '<div class="row multi-columns-row" data-loop="true">'; 1670 for(var i=0;i<sliced.length;i++){ 1671 html += $.psearch.pItem(sliced[i]); 1672 } 1673 html += '</div>'; 1674 1675 // í pagination 1676 html += $.psearch.renderTabPagination(tabKey, cur, totalPage); 1677 } 1678 1679 html += '</div>'; 1680 return html; 1681 }, 1682 rerenderPanels: function($wrap){ 1683 var groups = $wrap.data('psearchGroups') || {}; 1684 if(!groups) return; 1685 1686 // í¨ë ììë§ ë¤ì 그림 1687 var $panels = $wrap.find('.psearch-tab-panels'); 1688 if($panels.length==0) return; 1689 1690 var html = ''; 1691 1692 // all í¨ë 1693 html += (function(){
1694 function renderSection(sectionKey, list){ 1695 return $.psearch.renderAllSection($wrap, sectionKey, list); 1696 } 1697 var h = '<div class="psearch-panel" data-tab="all" style="display:none;">'; 1698 h += renderSection('shopping', groups.shopping); 1699 h += renderSection('gallery', groups.gallery); 1700 h += renderSection('forum', groups.forum); 1701 h += renderSection('etc', groups.etc); 1702 h += '</div>'; 1703 return h; 1704 })(); 1705 1706 // í í¨ëë¤ 1707 html += $.psearch.renderTabPanel($wrap, 'shopping', groups.shopping); 1708 html += $.psearch.renderTabPanel($wrap, 'forum', groups.forum); 1709 html += $.psearch.renderTabPanel($wrap, 'gallery', groups.gallery); 1710 html += $.psearch.renderTabPanel($wrap, 'etc', groups.etc); 1711 1712 $panels.html(html); 1713 1714 // í´ë¦ ë°ì¸ë© ë¤ì 1715 $.psearch.bindClientPagination($wrap); 1716 }, 1717 renderSectionPagination: function(sectionKey, current, totalPage){ 1718 if(totalPage <= 0) return ''; 1719 1720 var pageView = 5; 1721 var start = (Math.floor((current-1)/pageView)*pageView) + 1; 1722 var end = Math.min(start + pageView - 1, totalPage); 1723 var showArrows = totalPage > pageView; 1724 var prevBlock = Math.max(1, start-1); 1725 var nextBlock = Math.min(totalPage, end+1); 1726 1727 // all í ì¹ì ì© keyë "all:ì¹ì " 1728 var html = '<nav class="text-center clear psearch-client-nav" data-key="all:'+sectionKey+'">'; 1729 html += '<ul class="pagination pagination-sm psearch-pagination">'; 1730 1731 if(showArrows){ 1732 html += '<li class="psearch-page prev '+(start==1?'disabled':'')+'">' 1733 + '<a href="#" data-page="'+prevBlock+'"><i class="fa fa-angle-left"></i></a></li>'; 1734 } 1735 1736 for(var p=start; p<=end; p++){ 1737 html += '<li class="psearch-page '+(p==current?'active':'')+'">' 1738 + '<a href="#" data-page="'+p+'">'+p+'</a></li>'; 1739 } 1740 1741 if(showArrows){ 1742 html += '<li class="psearch-page next '+(end==totalPage?'disabled':'')+'">' 1743 + '<a href="#" data-page="'+nextBlock+'"><i class="fa fa-angle-right"></i></a></li>'; 1744 } 1745 1746 html += '</ul></nav>'; 1747 return html; 1748 }, 1749 renderTabPagination: function(tabKey, current, totalPage){ 1750 if(totalPage <= 0) return ''; 1751 1752 var pageView = 5; 1753 var start = (Math.floor((current-1)/pageView)*pageView) + 1; 1754 var end = Math.min(start + pageView - 1, totalPage); 1755 var showArrows = totalPage > pageView; // 6íì´ì§ ì´ìì¼ ëë§ prev/next 1756 var prevBlock = Math.max(1, start-1); 1757 var nextBlock = Math.min(totalPage, end+1); 1758 1759 var html = '<nav class="text-center clear psearch-tab-navpage" data-tkey="'+tabKey+'">'; 1760 html += '<ul class="pagination pagination-sm psearch-pagination">'; 1761 1762 if(showArrows){ 1763 html += '<li class="psearch-page prev '+(start==1?'disabled':'')+'">' 1764 + '<a href="#" data-page="'+prevBlock+'"><i class="fa fa-angle-left"></i></a></li>'; 1765 } 1766 for(var p=start; p<=end; p++){ 1767 html += '<li class="psearch-page '+(p==current?'active':'')+'">' 1768 + '<a href="#" data-page="'+p+'">'+p+'</a></li>'; 1769 } 1770 if(showArrows){ 1771 html += '<li class="psearch-page next '+(end==totalPage?'disabled':'')+'">' 1772 + '<a href="#" data-page="'+nextBlock+'"><i class="fa fa-angle-right"></i></a></li>'; 1773 } 1774 1775 html += '</ul></nav>'; 1776 return html; 1777 }, 1778 showSiteProjectSEARCH: function(view_page) { 1779 // console.log('psearch showSiteProjectSEARCH'); 1780 if(PAGE_MODE == 'c') return false; 1781 $('.cl-popupBanner.openPopupBanner').addClass('zindex20'); 1782 1783 var sid = property.SID, 1784 checkUsedMpcWeb = property.SETTINGS.vpMode_onoff; 1785 1786 var active_nav = $('.el-menu header'); 1787 if(window.innerWidth <= 768) active_nav = active_nav.is('.cl-nav') ? $('.clnav-sidemobile') : $('#mobile-nav'); 1788 1789 var psearchWarp = active_nav.find('.psearch-overlay'); 1790 if(view_page) psearchWarp = $('.psearch-view').find('.psearch-wrap'); 1791 1792 psearchWarp.find('input.psearch-input').live({ 1793 focus: function() { 1794 }, 1795 keydown: function(key) { 1796 if(key.keyCode == 13) psearchWarp.find('.psearch-icon').click(); 1797 }, 1798 }); 1799 1800 psearchWarp.find('.psearch-icon').live({ 1801 click: function() { 1802 var psearch_wrap = $(this).closest('.psearch-body'); 1803 var psearch_input = $(this).closest('.psearch-wrap').find('input.psearch-input'); 1804 var regExp = new RegExp('^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£\\?\\@\\!\\- ]*$'); 1805 var stx = psearch_input.val().trim(); 1806 var error_str = ''; 1807 1808 if(stx.length == 0) error_str = $.lang[LANG]['psearch.input.empty']; 1809 else if(!regExp.test(stx)) error_str = $.lang[LANG]['psearch.input.regexp']; 1810 1811 if(error_str.length > 0) { 1812 if(psearch_wrap.find('.error').length > 0) psearch_wrap.find('.error').html('<i class="cl-icon alert02"></i> ' + error_str); 1813 else psearch_input.closest('.psearch-wrap').after('<span class="error"><i class="cl-icon alert02"></i> ' + error_str + '</span>'); 1814 1815 psearch_input.focus(); 1816 return; 1817 } else { 1818 psearch_wrap.find('.error').remove(); 1819 } 1820 1821 //check mpcWeb Mode 1822 if(checkUsedMpcWeb) { 1823 var viewportMode = property.SETTINGS.viewportMode, 1824 vpmode = (typeof $('.mobilepc_ch').attr('data-desktop-option') != 'undefined') ? $('.mobilepc_ch').attr('data-desktop-option') : viewportMode; 1825 $.cookie('desktop-option',vpmode, { path: '/' }); 1826 } 1827 1828 var url = (PAGE_MODE=='s') ? '' : '/render', 1829 href = url + '/psearch/num/1/stx/' + encodeURIComponent(stx); 1830 location.href = href; 1831 1832 } 1833 }); 1834 1835 }, 1836 normalizeHref: function(href) { 1837 href = (href || '').toString().trim(); 1838 if(!href) return ''; 1839 1840 href = href.replace(/^\/render/i, ''); 1841 href = href.split('#')[0].split('?')[0]; 1842 1843 if(/^https?:\/\//i.test(href)){
1844 try { href = new URL(href).pathname; } catch(e){} 1845 } 1846 1847 href = href.replace(/\/view\/\d+$/i, ''); 1848 1849 if(href && href.charAt(0) !== '/') href = '/' + href; 1850 return href; 1851 }, 1852 buildMenuBreadcrumbMap: function(menuOption) { 1853 var map = {}; // key: normalized href value: "í > ë©ì¸ > ìë¸" 1854 1855 if(!menuOption || !menuOption.length) return map; 1856 1857 for(var i=0; i<menuOption.length; i++){ 1858 var m = menuOption[i]; 1859 var mainName = (m && m.name) ? m.name : ''; 1860 var mainHref = $.psearch.normalizeHref(m && m.href); 1861 1862 if(mainHref){ 1863 map[mainHref] = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + mainName; 1864 } 1865 1866 var children = (m && m.children) ? m.children : []; 1867 for(var j=0; j<children.length; j++){ 1868 var c = children[j]; 1869 var subName = (c && c.name) ? c.name : ''; 1870 var subHref = $.psearch.normalizeHref(c && c.href); 1871 1872 if(subHref){ 1873 map[subHref] = $.lang[LANG]['editor.resource.icon.home'] + ' > ' + mainName + ' > ' + subName; 1874 } 1875 } 1876 } 1877 return map; 1878 } 1879 } 1880 1881 $.shopping = { 1882 init: function() { 1883 // console.log('shopping init'); 1884 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 1885 fheader_selec = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'); 1886 1887 if(!fheader_selec.hasClass('navbar-fheader')) return false; 1888 1889 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 1890 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE; 1891 1892 var scart = (s_validtype == 'SM') ? true : false; 1893 1894 if(scart) $.shopping.set('on',checkEllist); 1895 else $.shopping.set('off',checkEllist); 1896 }, 1897 set: function(onoff,checkEllist){ 1898 var checkClnav = $.clnav.check(); 1899 if(checkClnav) return false; 1900 1901 // console.log('shopping set'); 1902 var checkEllist = ( typeof checkEllist!='undefined' && checkEllist) ? checkEllist : false; 1903 fheader_selec = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'); 1904 if(!fheader_selec.hasClass('navbar-fheader')) return false; 1905 1906 if(onoff.match(/on/gi)) $.shopping.makeSiteFixedCART(); 1907 else { 1908 $('#fixed-menu, #fixed-menu-sub').find('.siteCART').remove(); 1909 $('#tpl-menu').find('.siteCART').remove(); 1910 $('div.siteCART.micon').remove(); 1911 } 1912 }, 1913 makeSiteFixedCART: function() { 1914 var checkClnav = $.clnav.check(); 1915 if(checkClnav) return false; 1916 1917 // console.log('shopping makeSiteFixedCART'); 1918 var checkEllist = (typeof isElviewPage != 'undefined' && isElviewPage === true) ? true : false, 1919 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'), 1920 mobile_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 1921 checkfixtype_nav = (checkEllist) ? $('.elviewhtml header.navbar') : $('.el-menu header.navbar'), 1922 checkFixTypeMenu = (typeof checkfixtype_nav.attr('data-fixtype') != 'undefined' && checkfixtype_nav.attr('data-fixtype')) ? true : false; 1923 1924 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 1925 cart_url = (PAGE_MODE == 'c' || PAGE_MODE == 'r') ? 'javascript:;' : '/_cart', 1926 content = '\ 1927 <li class="siteCART">\ 1928 <a href="' + cart_url + '"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a>\ 1929 </li>\ 1930 ', 1931 mobile_content = '\ 1932 <div class="siteCART micon">\ 1933 <a href="' + cart_url + '"><i class="cl-icon cl_icon_cart" aria-hidden="true"></i></a>\ 1934 </div>\ 1935 '; 1936 1937 /* Shopping Only KO Site */ 1938 // var slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 1939 // if(typeof slang != 'undefined' && typeof slang.select_code != 'undefined' && slang.select_code != 'ko') { 1940 // $('#fixed-menu, #fixed-menu-sub').find('.siteCART').remove(); 1941 // $('#tpl-menu').find('.siteCART').remove(); 1942 // $('div.siteCART.micon').remove(); 1943 // return false; 1944 // } 1945 1946 if(pc_nav.find('.siteCART').length > 0) { 1947 if(checkFixTypeMenu) pc_nav.find('.siteCART').find('a').attr('href',cart_url); 1948 else pc_nav.find('.siteCART').replaceWith(content); 1949 } else pc_nav.append(content); 1950 1951 if(mobile_nav.find('div.siteCART.micon').length>0) { 1952 if(checkFixTypeMenu) mobile_nav.find('div.siteCART.micon').find('a').attr('href',cart_url); 1953 else mobile_nav.find('div.siteCART.micon').replaceWith(mobile_content); 1954 } else { 1955 mobile_nav.find('.navbar-toggle').before(mobile_content); 1956 } 1957 1958 if(pc_nav.find('.siteCART').css('display')=='none') mobile_nav.find('.siteCART.micon').hide(); 1959 1960 var fixed_a_color = (checkFixTypeMenu) ? '' : $('.el-menu .navbar-toggle .
1960icon-bar').css('background-color'); 1961 //var mobile_color = $('#mobile-nav').find('.cl-fixbtn.cl-visible').find('svg').css('fill'); 1962 if(checkEllist && typeof PAGE_MODE!='undefined' && PAGE_MODE=='c') { 1963 fixed_a_color = mobile_nav.find('.navbar-toggle .icon-bar').css('background-color'); 1964 } 1965 1966 1967 if(pc_nav.closest('header').find('.cl-menu-option').length > 0) { 1968 } else { 1969 mobile_nav.find('div.siteCART.micon').css({ 1970 'color': fixed_a_color, 1971 'right': '56px', 1972 'display': (checkFixTypeMenu) ? $('header.navbar-fheader').find('.siteCART.cl-fixbtn').css('display') : '' 1973 }); 1974 } 1975 1976 if(PAGE_MODE == 's') { 1977 var cart_active = Number(property.CART); 1978 // $.ajax({ 1979 // type: 'POST', 1980 // url: '/_basket/check', 1981 // data: { sid : sid }, 1982 // dataType: 'json', 1983 // async: true, 1984 // success: function(r) { 1985 // if(typeof r.error != 'undefined' && r.error) { 1986 // // console.log(r.error); 1987 // return false; 1988 // } 1989 // console.log(property.CART); 1990 if(Number(cart_active) > 0) { 1991 if(checkFixTypeMenu) { 1992 var cart_active_str = cart_active.toString(), 1993 $selec = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'), 1994 fixtypeNum = $('.el-menu header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 1995 cart_active_selec = ($selec.find('.siteCART .cart-active-txt').length>0) ? $selec.find('.cart-active-txt') : $selec.find('.cart-active'), 1996 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' : ''), 1997 radius_arr = ['03','04','05','06','10']; 1998 1999 cart_active_selec.text(cart_active); 2000 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').show(); 2001 $('.el-menu header.navbar').find('.siteCART.micon .cl_icon_cart').html('<span class="cart-active"></span>'); 2002 2003 if($.inArray(fixtypeNum,radius_arr) > -1) $selec.find('.cart-active').removeClass('cartActive_2 cartActive_3').addClass(cart_active_class); 2004 2005 } else { 2006 var cart_active = '<span class="cart-active"></span>'; 2007 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cl_icon_cart').html(cart_active); 2008 } 2009 2010 } else { 2011 var r = { member : property.UMEMBER }, 2012 check_login = (typeof r.member != 'undefined') ? r.member.check_login : false; 2013 2014 // if(!check_login) $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').hide(); 2015 // else $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.siteCART .cart-active').show(); 2016 2017 if(checkFixTypeMenu && Number(cart_active)==0) { 2018 $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.cart-active').hide(); 2019 } 2020 } 2021 // } 2022 // }); 2023 } else { 2024 if(PAGE_MODE=='r' && checkFixTypeMenu) $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub').find('.cart-active').remove(); 2025 } 2026 2027 } 2028 } 2029 2030 $.slang = { 2031 init: function(data) { 2032 // console.log('$.slang.init()'); 2033 if(typeof data != 'undefined' && data) { 2034 if(PAGE_MODE == 'c') SLANG = data; 2035 else property.SLANG = data; 2036 } 2037 2038 var slang = (PAGE_MODE == 'c') 2039 ? ((typeof SLANG != 'undefined' && SLANG) ? SLANG : {}) 2040 : ((typeof property != 'undefined' && property && property.SLANG) ? property.SLANG : {}), 2041 slang_lists = $.isArray(slang['lists']) ? slang['lists'] : [], 2042 s_validplan = (PAGE_MODE == 'c') ? VALIDPLAN : property.VALIDPLAN, 2043 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2044 checkFree = (!s_validplan || s_validtype == 'PK') ? true : false; 2045 2046 if(checkFree || $.isEmptyObject(slang) || slang.use_language != 'on' || slang_lists.length === 0) { 2047 $.slang.set('off'); 2048 } else { 2049 $.slang.set('on'); 2050 } 2051 }, 2052 set: function(onoff) { 2053 // console.log('$.slang.set()');
2054 var check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false, 2055 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'), 2056 mobile_nav = (check_fh) ? $('#mobile-nav #fixed-menu') : $('.el-menu header.navbar'), 2057 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2058 2059 if(onoff.match(/on/gi)) $.slang.make(); 2060 else { 2061 $('.el-menu .siteLANG, #mobile-nav .siteLANG').remove(); 2062 2063 if(pc_nav.find('.siteUM').css('display')=='none') { 2064 if(!checkFixOnSearch) { 2065 mobile_nav.parent().addClass('hide'); 2066 } else { 2067 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2068 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2069 } 2070 } 2071 } 2072 }, 2073 make: function() { 2074 // console.log('$.slang.make()'); 2075 var slang = (PAGE_MODE == 'c') 2076 ? ((typeof SLANG != 'undefined' && SLANG) ? SLANG : {}) 2077 : ((typeof property != 'undefined' && property && property.SLANG) ? property.SLANG : {}), 2078 check_fh = ($('.el-menu > header.navbar').hasClass('navbar-fheader')) ? true : false, 2079 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2080 slang_data = $.isArray(slang['lists']) ? slang['lists'] : [], 2081 slang_str = (typeof slang['select'] != 'undefined') ? slang['select'] : '', 2082 slang_arrow = (slang_data.length > 1) ? '<i class="cl-icon arrow09" aria-hidden="true"></i>' : '', 2083 slang_list = '', 2084 checkFixLangTypeMenu = (typeof $('.el-menu > header.navbar').attr('data-fixlangtype') != 'undefined' && $('.el-menu > header.navbar').attr('data-fixlangtype')) ? true : false, 2085 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'), 2086 mobile_nav = (check_fh) ? $('#mobile-nav #fixed-menu') : $('.el-menu header.navbar'), 2087 fixbtnData = ($('.el-menu > header.navbar').hasClass('sidebar')) ? $.menuFixBtn.getData(pc_nav) : $.menuFixBtn.getData($('.el-menu > header.navbar')), 2088 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2089 2090 if(slang_data.length === 0) { 2091 $.slang.set('off'); 2092 return; 2093 } 2094 2095 2096 $.each(slang_data, function(i,o) { 2097 var active = (o['name'] == slang_str) ? 'active' : ''; 2098 2099 /* Shopping Only KO Site */ 2100 // if(active && o['code'] != 'ko') { 2101 // pc_nav.find('.makeSiteSEARCH').remove(); 2102 // pc_nav.find('.siteCART').remove(); 2103 // } 2104 2105 slang_list += '\ 2106 <li class="' + active + '"><a href="javascript:;" data-code="' + o['code'] + '">' + o['name'] + '</a></li>\ 2107 '; 2108 }); 2109 2110 /*SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG;*/ 2111 var content = (checkFixLangTypeMenu) ? ($('.el-menu > header.navbar').hasClass('sidebar') ? $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false) : $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'])) : '\ 2112 <li class="siteLANG dropdown">\ 2113 <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>\ 2114 <ul class="dropdown-menu">\ 2115 ' + slang_list + '\ 2116 </ul>\ 2117 </li>\ 2118 ', 2119 mobile_content = (checkFixLangTypeMenu) ? $.menuFixBtn.fixLangSet(fixbtnData['fixlangtypeNum'],false,'',true) : ((check_fh) ? '\ 2120 <li class="siteLANG dropdown">\ 2121 <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>\ 2122 <div class="dropdown-menu-wrap" id="m-dropdown-wrap-lang">\ 2123 <span class="dropdown-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Change Multilingual Site"></span></span>\ 2124 <ul class="dropdown-menu">\ 2125 ' + slang_list + '\ 2126 </ul>\ 2127 </div>\ 2128 </li>\ 2129 ':'\ 2130 <div class="siteLANG micon dropdown">\ 2131 <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>\ 2132 </div>\ 2133 '), 2134 mobile_dropdown_menu = '\ 2135 <div class="siteLANG-dmenu-wrap">\ 2136 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2137 <ul class="dropdown-menu">\ 2138 ' + slang_list + '\ 2139 </ul>\ 2140 </div>\ 2141 '; 2142 2143 if(pc_nav.find('.siteLANG').length > 0) { 2144 pc_nav.find('.siteLANG').replaceWith(content); 2145 if($('.el-menu >
2145 header.navbar').hasClass('sidebar')) { 2146 pc_nav.find('.fh-line').remove(); 2147 pc_nav.parents('.menu-inner').after('<hr class="fh-line" />'); 2148 } 2149 } else { 2150 pc_nav.find('.siteLANG.cl-fixbtn').remove(); 2151 if(checkFixLangTypeMenu && $('.el-menu > header.navbar').hasClass('sidebar')) { 2152 pc_nav.find('.fh-line').remove(); 2153 $('.el-menu > header.navbar').find('.menu-inner').after(content); 2154 pc_nav.parents('.menu-inner').after('<hr class="fh-line" />'); 2155 } else pc_nav.append(content); 2156 } 2157 if(pc_nav.find('.siteUM').css('display')=='none') { 2158 if(!checkFixOnSearch) { 2159 mobile_nav.parent().addClass('hide'); 2160 } else { 2161 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2162 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2163 } 2164 } 2165 2166 if(check_fh) { 2167 if(checkFixLangTypeMenu) { 2168 if(mobile_nav.find('.cl-fixbtn.siteLANG').length==0) { 2169 $('#mobile-nav').append(mobile_content); 2170 $('#mobile-nav').find('.cl-fixbtn.siteLANG.dropup .dropdown-backdrop').remove(); 2171 } 2172 2173 var mobile_color = mobile_nav.find('.siteSEARCH.cl-fixbtn svg').css('fill'); 2174 2175 $('#mobile-nav').find('.siteLANG.cl-fixbtn a').css({ 2176 'color':mobile_color, 2177 'border-color':mobile_color 2178 }) 2179 2180 $('#mobile-nav').find('.siteLANG.cl-fixbtn a svg').css('fill',mobile_color); 2181 } else { 2182 if(mobile_nav.find('.siteLANG').length > 0) mobile_nav.find('.siteLANG').replaceWith(mobile_content); 2183 else mobile_nav.append(mobile_content); 2184 } 2185 } else { 2186 if(mobile_nav.find('div.siteLANG.micon').length>0) mobile_nav.find('div.siteLANG.micon').replaceWith(mobile_content); 2187 else mobile_nav.find('.navbar-toggle').before(mobile_content); 2188 2189 if($('div.siteLANG-dmenu-wrap').length>0) $('div.siteLANG-dmenu-wrap').replaceWith(mobile_dropdown_menu); 2190 else if($('div.siteUM-dmenu-wrap').length>0) $('div.siteUM-dmenu-wrap').after(mobile_dropdown_menu); 2191 else $('#tpl-menu').parent().after(mobile_dropdown_menu); 2192 2193 mobile_nav.find('div.siteLANG.micon').css({ 2194 'color': $('.el-menu .navbar-toggle .icon-bar').css('background-color'), 2195 'right': '56px', 2196 }); 2197 } 2198 } 2199 } /*slang end*/ 2200 2201 2202 $.umember = { 2203 init: function(um_used, um_lang, um_display, callback) { 2204 // console.log('umember init'); 2205 2206 if(typeof um_used != 'undefined' && um_used) { 2207 if(PAGE_MODE == 'c') SITEUM = um_used; 2208 else property.SITEUM = um_used; 2209 } 2210 2211 if(typeof um_lang != 'undefined' && um_lang) { 2212 if(PAGE_MODE == 'c') SITEUMLANG = um_lang; 2213 else property.SITEUMLANG = um_lang; 2214 } 2215 2216 if(typeof um_display != 'undefined' && um_display) { 2217 if(PAGE_MODE == 'c') SITEUMDISPLAY = um_display; 2218 else property.SITEUMDISPLAY = um_display; 2219 } 2220 2221 var s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2222 check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false; 2223 2224 if(s_um == 0 || (typeof s_um == 'string' && s_um == '0')) { 2225 if(check_fh) { 2226 $('#fixed-menu, #fixed-menu-sub').find('.siteUM').remove(); 2227 $('#mobile-nav').find('.siteUM').remove(); 2228 $('#mobile-nav').find('.mobilenav_top').addClass('hide'); 2229 } else { 2230 $('#tpl-menu').find('.siteUM').remove(); 2231 $('div.siteUM.micon').remove(); 2232 $('div.siteUM-dmenu-wrap').remove(); 2233 } 2234 if(typeof callback == 'function') { callback(); } 2235 } else { 2236 if(check_fh) $.umember.makeSiteFixedUM(callback); 2237 else $.umember.makeSiteUM(callback); 2238 } 2239 }, 2240 setUM: function(onoff,callback) { 2241 // console.log('umember setUM'); 2242 var check_fh = ($('.el-menu header.navbar').hasClass('navbar-fheader')) ? true : false; 2243 // menu ver2 : navbar-simple(mobile design) 2244 // menu ver3 : navbar-fheader(+shopping cart, mobile slide nav) 2245 2246 if(onoff.match(/on/gi)) { 2247 if(check_fh) $.umember.makeSiteFixedUM(callback); 2248 else $.umember.makeSiteUM(callback); 2249 } else { 2250 if(check_fh) { 2251 $('#fixed-menu, #fixed-menu-sub').find('.siteUM').remove(); 2252 $('#mobile-nav').find('.siteUM').remove(); 2253 } else { 2254 $('#tpl-menu').find('.siteUM').remove(); 2255 $('div.siteUM.micon').remove(); 2256 $('div.siteUM-dmenu-wrap').remove(); 2257 } 2258 2259 if(typeof callback == 'function') { 2260 callback(); 2261 } 2262 } 2263 }, 2264 makeSiteFixedUM: function(callback) { 2265 // console.log('umember makeSiteFixedUM'); 2266 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 2267 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2268 s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2269 s_um_lang = (PAGE_MODE == 'c') ? SITEUMLANG : property.SITEUMLANG, 2270 s_um_display = (PAGE_MODE == 'c') ? SITEUMDISPLAY : property.SITEUMDISPLAY, 2271 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE; 2272 2273 if( s_validtype != 'BN' && s_validtype != 'SM' || 2274 s_validtype == 'BN' && s_um == '-1' 2275 ) { 2276 $.umember.setUM('off',callback); 2277 return false;
2278 } 2279 2280 if(s_validtype == 'SM' && s_um_display == 'join') s_um_display = 'login'; 2281 2282 if(PAGE_MODE == 'c') { 2283 if(typeof callback == 'function') { 2284 callback(); 2285 } 2286 return false; 2287 } 2288 2289 var display = (s_um == 1) ? 'login' : s_um_display, 2290 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2291 str = (s_um == 1) ? $.lang[LANG]['manager.site-um.login'] : ((s_um_display) ? $.lang[s_um_lang]['manager.site-um.'+s_um_display] : ''); 2292 2293 // $.post('/umember/login/check', { sid : sid }, function(r) { 2294 var r = { member : property.UMEMBER }; 2295 2296 var check_login = (typeof r.member != 'undefined') ? r.member.check_login : false, 2297 check_admin = (typeof r.member != 'undefined') ? r.member.check_adm : false, 2298 check_uadmin = (typeof r.member != 'undefined') ? r.member.check_uadm : false, 2299 check_groot = (typeof r.member != 'undefined') ? r.member.check_groot : false, 2300 uadmin_type = (typeof r.member != 'undefined') ? r.member.uadmin_type : '', 2301 check_id_type = (typeof r.member != 'undefined') ? r.member.id_type : '', 2302 login_id = (typeof r.member != 'undefined') ? r.member.id : '', 2303 login_nick = (typeof r.member.nick != 'undefined') ? r.member.nick : login_id, 2304 login_profile = (typeof r.member.profile != 'undefined') ? r.member.profile : '//storage.googleapis.com/i.addblock.net/defaultImg.png', 2305 f_color = ($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? 'style="color:' + $('.el-menu ul.navbar-nav > li > a').css('color') + ';"' : '', 2306 checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false, 2307 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, 2308 fixtype_menu_color = (checkFixTypeMenu) ? (($('.el-menu .navbar-fheader').hasClass('mobile-design-clear')) ? 'style="color:' + $('.el-menu #tpl-menu > li > a').css('color') + ';"' : '') : f_color, 2309 checkFixOnSearch = (typeof $('.el-menu header.navbar').attr('data-fixon') != 'undefined' && $('.el-menu header.navbar').attr('data-fixon').indexOf('search')>-1) ? true : false; 2310 2311 var hostAry = window.location.hostname.split('.'), 2312 isCoKr = hostAry[2] == 'co' && hostAry[3] == 'kr', 2313 checkDomain = (hostAry[1] != 'creatorlink' && hostAry[1] != 'addblock') ? true : false, 2314 checkPort = (location.port) ? ':'+location.port : '', 2315 host = (!checkDomain) ? (!isCoKr ? `${hostAry[1]}.${hostAry[2]}` : 'creatorlink.co.kr') : 'creatorlink.net', 2316 host_url = (s_service.indexOf('gabia') > -1) ? '//creatorlink-gabia.com' : '//'+host+checkPort, 2317 menu_url = { 2318 'dashboard': (check_uadmin) ? '/_admin/dashboard' : host_url + '/dashboard', 2319 'member' : (check_uadmin) ? '/_admin/member' : host_url + '/manager/member', 2320 }; 2321 2322 var menu_dashboard_str = (check_admin || check_uadmin) ? '\ 2323 <li><a href="' + menu_url['dashboard'] + '" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2324 ' : '', 2325 menu_member_str = (check_admin) ? '\ 2326 <li><a href="' + host_url + '/manager/member/" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.manage'] + '</a></li>\ 2327 ' : '', 2328 menu_mygabia_str = (s_service.indexOf('gabia') > -1 && (check_admin || (check_uadmin && check_groot))) ? '\ 2329 <li><a href="https://www.gabia.com/mygabia/service" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.mypage.gabia'] + '</a></li>\ 2330 ' : '', 2331 menu_mypage_str = (check_admin) ? '' : ((checkFixTypeMenu) ? '\ 2332 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2333 <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>\ 2334 ' : '<li><a class="mypage" href="javascript:;">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>'); 2335 2336 if(checkDomain && check_admin) { 2337 menu_dashboard_str = '\ 2338 <li><a class="dashboard cl-umMenu" href="javascript:;" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2339 '; 2340 } 2341 2342 if(s_validtype == 'SM') { 2343 if(checkFixTypeMenu) { 2344 var propertySettings = (PAGE_MODE!='c' && typeof property.SETTINGS!='undefined') ? property.SETTINGS : {}, 2345 smSettings = (PAGE_MODE!='c' && typeof property.SMSETTINGS!='undefined') ? property.SMSETTINGS : {}, 2346 point_settings = (PAGE_MODE!='c' && typeof property.POINGSETTINGS!='undefined') ? property.POINGSETTINGS : {}, 2347 point_user = (PAGE_MODE!='c' && typeof point_settings.point_use != 'undefined' && point_settings.point_use) ? point_settings.point_use : '', 2348 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>') : '', 2349 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>' : '', 2350 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>' : ''; 2351 2352 menu_mypage_str = (check_admin) ? '' : '\ 2353 <li><a class="myorderlist cl-umMenu" href="/_mypage">' + $.lang[LANG]['manager.site-um.mypage.orderlist'] + '</a></li>' 2354 + wishlist_btn_str + coupon_btn_str + point_useStr + '\ 2355 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2356 <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>\ 2357 '; 2358 } else { 2359 menu_mypage_str = (check_admin) ? '' : '\ 2360 <li><a class="mypage" href="javascript:;">' + $.lang[LANG]['manager.site-um.mypage.SM'] + '</a></li>\ 2361 '; 2362 } 2363 } 2364 2365 if(login_id == 'naverpaytest') { 2366 menu_mypage_str = ''; 2367 } 2368 2369 var SLANG = (PAGE_MODE == 'c') ? SLANG : property.SLANG, 2370 lang_str = LANG; 2371 2372 if((typeof SLANG != 'undefined' && typeof SLANG.select_code != 'undefined' && SLANG.select_code) 2373 || (!$.isEmptyObject(SLANG) && SLANG.use_language == 'on' && SLANG.select_code)) { 2374 lang_str = (SLANG['select_code'].toLowerCase()!='ko') ? 'en' : LANG; 2375 } 2376 2377 var login_url = (s_validtype == 'SM') ? '/_login' : 'javascript:;', 2378 login_content_dropdown_class = (checkFixTypeMenu) ? 'dropdown-toggle' : '', 2379 login_content_dropdown = (checkFixTypeMenu) ? 'data-toggle="dropdown" data-target="#m-dropdown-wrap-um"' : '', 2380 login_svg = (checkFixTypeMenu) ? clSVG('arrow_next',16,16) : '', 2381 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>' : '\ 2382 <div class="login-content '+login_content_dropdown_class+'" '+login_content_dropdown+'>\ 2383 <div class="login-profile">\ 2384 <img src="' + login_profile + '" alt="" class="img-responsive" />\ 2385 </div>\ 2386 <div class="login-nick" ' + fixtype_menu_color + '><span>' + login_nick + '</span> ë</div>\ 2387 </div>', 2388 menu_str = menu_dashboard_str + menu_member_str + menu_mygabia_str + menu_mypage_str, 2389 pc_dropdown = (check_login) ? '\ 2390 <ul class="dropdown-menu">\ 2391 ' + menu_str + '\ 2392 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2393 </ul>\ 2394 ' : '', 2395 content = (!check_login) ? '\ 2396 <li class="siteUM"><a href="javascript:;" class="' + display + '"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>' : '\ 2397 <li class="siteUM dropdown">\ 2398 <a href="javascript:;" class="dropdown-toggle"><i class="cl-icon cl_icon_profile_on02" aria-hidden="true"></i></a>\ 2399 '+ pc_dropdown +'\ 2400 </li>\ 2401 ', 2402 mobile_dropdown = (check_login) ? '\ 2403 <div class="dropdown-menu-wrap" id="m-dropdown-wrap-um">\ 2404 <span class="dropdown-close"><img src="//storage.googleapis.com/i.addblock.net/fa-close-modal-white.png" alt="Close Member Menu"></span></span>\ 2405 <ul class="dropdown-menu">\ 2406 ' + menu_str + '\ 2407 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2408 </ul>\ 2409 </div>\ 2410 ' : '', 2411 mobile_content = (!check_login) ? '\ 2412 <li class="siteUM"><a href="javascript:;" class="' + display + '"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a></li>' : '\ 2413 <li class="siteUM dropdown">\ 2414 <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>\ 2415 '+ mobile_dropdown +'\ 2416 </li>\ 2417 '; 2418 2419 // IE ERROR_promise__H.20210603 2420 // var successSiteUMLogin = new Promise(function(resolve, reject) { 2421 var successSiteUMLogin = function() { 2422 var deferred = $.Deferred(); 2423
2424 var pc_nav = $('.el-menu header.navbar #fixed-menu, .el-menu header.navbar #fixed-menu-sub'), 2425 mobile_nav = $('#mobile-nav #fixed-menu'), 2426 checkFixTypeMenu = (typeof $('.el-menu header.navbar').attr('data-fixtype') != 'undefined' && $('.el-menu header.navbar').attr('data-fixtype')) ? true : false; 2427 2428 if(pc_nav.find('.siteUM').length > 0) { 2429 if(checkFixTypeMenu) { 2430 setLoginLogoutAttribute(check_login,pc_nav,display); 2431 if(check_login) pc_nav.find('.siteUM').find('.cl-logout').after(pc_dropdown); 2432 } else pc_nav.find('.siteUM').replaceWith(content); 2433 } else { 2434 if(pc_nav.find('.siteSEARCH').length > 0) pc_nav.find('.siteSEARCH').after(content); 2435 else if(pc_nav.find('.siteCART').length > 0) pc_nav.find('.siteCART').before(content); 2436 else if(pc_nav.find('.siteLANG').length > 0) pc_nav.find('.siteLANG').before(content); 2437 else pc_nav.append(content); 2438 } 2439 2440 if(mobile_nav.find('.siteUM').length > 0) { 2441 if(checkFixTypeMenu) { 2442 setLoginLogoutAttribute(check_login,mobile_nav,display); 2443 if(check_login) mobile_nav.prepend(mobile_dropdown); 2444 } else mobile_nav.find('.siteUM').replaceWith(mobile_content); 2445 } else { 2446 if(mobile_nav.find('.siteSEARCH').length > 0) mobile_nav.find('.siteSEARCH').after(mobile_content); 2447 else if(mobile_nav.find('.siteCART').length > 0) mobile_nav.find('.siteCART').before(mobile_content); 2448 else if(mobile_nav.find('.siteLANG').length > 0) mobile_nav.find('.siteLANG').before(mobile_content); 2449 else mobile_nav.append(mobile_content); 2450 } 2451 2452 2453 if(mobile_nav.closest('#mobile-nav').find('.login-content').length > 0) mobile_nav.closest('#mobile-nav').find('.login-content').replaceWith(login_content); 2454 else mobile_nav.before(login_content); 2455 2456 if(pc_nav.find('.siteUM').css('display')=='none') { 2457 if(!checkFixOnSearch) { 2458 mobile_nav.parent().addClass('hide'); 2459 } else { 2460 mobile_nav.parent().find('.login-content').css('pointer-events','none'); 2461 mobile_nav.parent().find('.login-content').children().css('visibility','hidden'); 2462 } 2463 } 2464 2465 // var loginStr = (checkFixTypeMenu && !check_login) ? mobile_nav.find('.siteUM').removeClass('dropdown').find('.cl-login').clone() : ''; 2466 2467 // if(checkFixTypeMenu && (mobile_nav.closest('#mobile-nav').find('.login-content').length > 0) && !check_login) { 2468 // $('.mobilenav_top .login-content').html(loginStr); 2469 // } 2470 2471 // IE ERROR_promise__H.20210603 2472 // resolve(); 2473 // }); 2474 deferred.resolve(); 2475 return deferred.promise(); 2476 } 2477 2478 2479 // IE ERROR_promise__H.20210603 2480 // successSiteUMLogin.then(function(value) { 2481 successSiteUMLogin().then(function(value) { 2482 if(typeof callback == 'function') { 2483 callback(); 2484 } 2485 }); 2486 2487 2488 // },'json'); 2489 2490 2491 }, 2492 makeSiteUM: function(callback) { 2493 // console.log('umember makeSiteUM'); 2494 var sid = (PAGE_MODE == 'c') ? SID : property.SID, 2495 s_validtype = (PAGE_MODE == 'c') ? VALIDTYPE : property.VALIDTYPE, 2496 s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 2497 s_um_lang = (PAGE_MODE == 'c') ? SITEUMLANG : property.SITEUMLANG, 2498 s_um_display = (PAGE_MODE == 'c') ? SITEUMDISPLAY : property.SITEUMDISPLAY, 2499 s_service = (PAGE_MODE == 'c') ? SERVICE : property.SERVICE; 2500 2501 if( s_validtype != 'BN' && s_validtype != 'SM' || 2502 s_validtype == 'BN' && s_um == '-1') { 2503 $.umember.setUM('off',callback); 2504 return false; 2505 } 2506 2507 if(s_validtype == 'SM' && s_um_display == 'join') s_um_display = 'login'; 2508 2509 var display = (s_um == 1) ? 'login' : s_um_display, 2510 caret = ($('.el-menu > header.navbar').hasClass('sidebar')) ? 'fa fa-caret-right fa-1' : 'fa fa-caret-down fa-1', 2511 str = (s_um == 1) ? $.lang[LANG]['manager.site-um.login'] : ((s_um_display) ? $.lang[s_um_lang]['manager.site-um.'+s_um_display] : ''); 2512 2513 $.post('/umember/login/check', { sid : sid }, function(r) { 2514 var check_login = (typeof r.member != 'undefined') ? r.member.check_login : false, 2515 check_admin = (typeof r.member != 'undefined') ? r.member.check_adm : false, 2516 check_uadmin = (typeof r.member != 'undefined') ? r.member.check_uadm : false, 2517 uadmin_type = (typeof r.member != 'undefined') ? r.member.uadmin_type : '', 2518 check_id_type = (typeof r.member != 'undefined') ? r.member.id_type : '', 2519 login_id = (typeof r.member != 'undefined') ? r.member.id : '', 2520 login_nick = (typeof r.member.nick != 'undefined') ? r.member.nick : login_
2520id; 2521 2522 var hostAry = window.location.hostname.split('.'), 2523 isCoKr = hostAry[2] == 'co' && hostAry[3] == 'kr', 2524 checkDomain = (hostAry[1] != 'creatorlink' && hostAry[1] != 'addblock') ? true : false, 2525 checkPort = (location.port) ? ':'+location.port : '', 2526 host = (!checkDomain) ? (!isCoKr ? `${hostAry[1]}.${hostAry[2]}` : 'creatorlink.co.kr') : 'creatorlink.net', 2527 host_url = (s_service.indexOf('gabia') > -1) ? '//creatorlink-gabia.com' : '//'+host+checkPort, 2528 menu_url = { 2529 'dashboard': (check_uadmin) ? '/_admin/dashboard' : host_url + '/dashboard', 2530 'member' : (check_uadmin) ? '/_admin/member' : host_url + '/manager/member', 2531 }; 2532 2533 var menu_dashboard_str = (check_admin || check_uadmin) ? '\ 2534 <li><a href="' + menu_url['dashboard'] + '" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2535 ' : '', 2536 menu_member_str = (check_admin) ? '\ 2537 <li><a href="' + host_url + '/manager/member" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.manage'] + '</a></li>\ 2538 ' : '', 2539 menu_mygabia_str = (s_service.indexOf('gabia') > -1 && (check_admin || (check_uadmin && check_groot))) ? '\ 2540 <li><a href="https://www.gabia.com/mygabia/service" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.mypage.gabia'] + '</a></li>\ 2541 ' : '', 2542 menu_mypage_str = (check_admin) ? '' : '\ 2543 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2544 <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>\ 2545 '; 2546 2547 if(checkDomain && check_admin) { 2548 menu_dashboard_str = '\ 2549 <li><a class="dashboard cl-umMenu" href="javascript:;" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2550 '; 2551 } 2552 2553 if(s_validtype == 'SM') { 2554 var propertySettings = (PAGE_MODE!='c' && typeof property.SETTINGS!='undefined') ? property.SETTINGS : {}, 2555 smSettings = (PAGE_MODE!='c' && typeof property.SMSETTINGS!='undefined') ? property.SMSETTINGS : {}, 2556 point_settings = (PAGE_MODE!='c' && typeof property.POINGSETTINGS!='undefined') ? property.POINGSETTINGS : {}, 2557 point_user = (PAGE_MODE!='c' && typeof point_settings.point_use != 'undefined' && point_settings.point_use) ? point_settings.point_use : '', 2558 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>') : ''; 2559 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>' : '', 2560 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>' : ''; 2561 2562 menu_mypage_str = (check_admin) ? '' : '\ 2563 <li><a class="myorderlist cl-umMenu" href="/_mypage">' + $.lang[LANG]['manager.site-um.mypage.orderlist'] + '</a></li>' 2564 + wishlist_btn_str + coupon_btn_str + point_useStr + '\ 2565 <li><a class="mypost cl-umMenu" href="/_mypost">' + $.lang[LANG]['manager.site-um.mypage.post'] + '</a></li>\ 2566 <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>\ 2567 '; 2568 } 2569 2570 var menu_str = menu_dashboard_str + menu_member_str + menu_mygabia_str + menu_mypage_str, 2571 content = (!check_login) ? '<li class="siteUM"><a class="' + display + '" href="javascript:;"><span class="glyphicon glyphicon-user"></span> ' + str + '</a></li>' : '\ 2572 <li class="siteUM dropdown">\ 2573 <a href="javascript:;" class="dropdown-toggle">' + login_nick + ' <i class="' + caret + '" aria-hidden="true"></i></a>\ 2574 <ul class="dropdown-menu">\ 2575 ' + menu_str + '\ 2576 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2577 </ul>\ 2578 </li>\ 2579 ', 2580 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>' : '\ 2581 <div class="siteUM micon dropdown">\ 2582 <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>\ 2583 </div>\ 2584 ', 2585 mobile_dropdown_menu = '\ 2586 <div class="siteUM-dmenu-wrap">\ 2587 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2588 <ul class="dropdown-menu">\ 2589 ' + menu_str + '\ 2590 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2591 </ul>\ 2592 </div>\ 2593 '; 2594 2595 if(check_id_type == 'creatorlink' && !check_admin && login_id) { //creatorlink member 2596 var mypage_url = (s_service.indexOf('gabia') > -1) ? '//www.gabia.com/mygabia/service' : '//'+host_url+'/mypage', 2597 mypage_name = (s_service.indexOf('gabia') > -1) ? $.lang[LANG]['manager.site-um.mypage.gabia'] : $.lang[LANG]['manager.site-um.mypage']; 2598 2599 content = '\ 2600 <li class="siteUM dropdown">\ 2601 <a href="javascript:;" class="dropdown-toggle">' + login_nick + ' <i class="' + caret + '" aria-hidden="true"></i></a>\ 2602 <ul class="dropdown-menu">\ 2603 <li><a href="' + host_url + '/dashboard" target="_blank" class="cl-umMenu">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2604 '; 2605 2606 if(!check_uadmin) content +='\ 2607 <li><a href="' + mypage_url + '" target="_blank" class="cl-umMenu">' + mypage_name + '</a></li>\ 2608 '; 2609 content += '\ 2610 <li><a class="logout cl-umMenu" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2611 </ul>\ 2612 </li>\ 2613 '; 2614 mobile_content = '\ 2615 <div class="siteUM micon dropdown">\ 2616 <a href="javascript:;" class="dropdown-toggle" data-target=".siteUM-dmenu-wrap"><i class="cl-icon cl_icon_profile" aria-hidden="true"></i></a>\ 2617 </div>\ 2618 '; 2619 mobile_dropdown_menu = '\ 2620 <div class="siteUM-dmenu-wrap">\ 2621 <!--<span class="dropdown-close"><span class="icon-bar"></span><span class="icon-bar"></span></span>-->\ 2622 <ul class="dropdown-menu">\ 2623 <li><a href="' + host_url + '/dashboard" target="_blank">' + $.lang[LANG]['manager.site-um.dashboard'] + '</a></li>\ 2624 <li><a href="' + mypage_url + '" target="_blank">' + $.lang[LANG]['manager.site-um.mypage'] + '</a></li>\ 2625 <li><a class="logout" href="javascript:;">' + $.lang[LANG]['manager.site-um.logout'] + '</a></li>\ 2626 </ul>\ 2627 </div>\ 2628 '; 2629 } 2630 2631 2632 // IE ERROR_promise__H.20210603 2633 // var successSiteUMLogin = new Promise(function(resolve, reject) { 2634 var successSiteUMLogin = function() { 2635 var deferred = $.Deferred(); 2636 2637 if($('#tpl-menu').find('.siteUM').length > 0) $('#tpl-menu').find('.siteUM').replaceWith(content); 2638 else { 2639 if($('#tpl-menu').find('.siteLANG').length > 0 ) $('#tpl-menu').find('.siteLANG').before(content); 2640 else $('#tpl-menu').append(content); 2641 } 2642 2643 if($('div.siteUM.micon').length>0) $('div.siteUM.micon').replaceWith(mobile_content); 2644 else $('.el-menu .navbar-toggle').before(mobile_content); 2645 2646 if($('div.siteUM-dmenu-wrap').length>0) $('div.siteUM-dmenu-wrap').replaceWith(mobile_dropdown_menu); 2647 else $('#tpl-menu').parent().after(mobile_dropdown_menu); 2648 2649 var check_slang = (PAGE_MODE == 'c') ? SLANG : property.SLANG; 2650 $('.el-menu .navbar-header div.siteUM.micon').css({
2651 'color': $('.el-menu .navbar-toggle .icon-bar').css('background-color'), 2652 'right': ($.isEmptyObject(check_slang)) ? '56px' : '91px', 2653 }); 2654 2655 // IE ERROR_promise__H.20210603 2656 // resolve(); 2657 // }); 2658 deferred.resolve(); 2659 return deferred.promise(); 2660 } 2661 2662 // IE ERROR_promise__H.20210603 2663 // successSiteUMLogin.then(function(value) { 2664 successSiteUMLogin().then(function(value) { 2665 if(typeof callback == 'function') { 2666 callback(); 2667 } 2668 }); 2669 },'json'); 2670 2671 }, 2672 showMngModal: function(sid, content, id, backdrop, showcallback, showncallback, hiddencallback, callback, closecallback) { 2673 // console.log('umember showMngModal'); 2674 var container = $(content), 2675 backdrop = (typeof backdrop == 'undefined') ? false : true; 2676 2677 $('body').append(container); 2678 var newInstance = jQuery.extend(true, {}, container); 2679 var modalElement = newInstance.find('#' + id); 2680 2681 modalElement.attr('data-sid',sid); 2682 2683 if(backdrop) modalElement.modal({ backdrop : 'static'}); 2684 else modalElement.modal(); 2685 2686 modalElement.on('show.bs.modal', function(e) { 2687 if(typeof showcallback == 'function') showcallback(); 2688 }); 2689 2690 modalElement.on('shown.bs.modal', function(e) { 2691 var modal = document.querySelector('.modal'); 2692 modal.style.position = 'absolute'; 2693 setTimeout(function() { 2694 modal.style.position = 'fixed'; 2695 },0); 2696 if(window.innerWidth <= 768) $.mobileToggleMenu.close(); 2697 if(typeof showncallback == 'function') showncallback(); 2698 }); 2699 2700 modalElement.on('hidden.bs.modal', function(e) { 2701 var flat_modal_id = $(this).attr('id'); 2702 $('.editor-navbar').css('z-index','1040'); 2703 var this_modal = $('#'+flat_modal_id).closest('.flat-modal'); 2704 this_modal.next('.modal-backdrop').remove(); 2705 this_modal.remove(); 2706 2707 if($('.modal-backdrop').length) { 2708 setTimeout(function() { 2709 $('body').addClass('modal-open'); 2710 },10); 2711 } 2712 $('body').removeClass('no-fixed'); 2713 2714 if(typeof hiddencallback == "function") hiddencallback(); 2715 }); 2716 2717 newInstance.find('.ok-button-dialog').bind('click', function () { 2718 if(typeof callback == 'function') 2719 callback(); 2720 }); 2721 2722 newInstance.find('.close-button-dialog').bind('click', function () { 2723 if(typeof closecallback == 'function') 2724 closecallback(); 2725 }); 2726 2727 return modalElement; 2728 }, 2729 showJoinModal: function(sid,mode) { 2730 console.log('umember showJoinModal'); 2731 mode = (typeof mode != 'undefined' && mode) ? '-' + mode : ''; 2732 2733 if($('#join-modal' + mode).length > 0) return false; 2734 if($('#login-modal').length > 0) $('#login-modal').delay(3000).modal('hide'); 2735 2736 $.post('/umember/get/type/join', { sid : sid, field : '*' }, function(data) { 2737 if(typeof data.error != 'undefined' && data.error) { 2738 alert(data.error); 2739 return false; 2740 } 2741 2742 COLLECTION_REGEX = $.parseJSON(data['regExp']); 2743 2744 var content = $.umember.makeJoinModalContent(sid,data,mode); 2745 $.umember.showMngModal(sid, content, 'join-modal' + mode, false, 2746 function() { $.umember.joinModalInit(mode); }, 2747 function() { $.umember.joinModalKeyFunc(mode); }, '', '', ''); 2748 2749 }, 'json'); 2750 }, 2751 makeJoinCollectionsTypeVal: function(oval_i,oval_type,oval_v,org_field,optional_class,check_page,val) { 2752 var str = ''; 2753 2754 check_page = (typeof check_page != 'undefined' && check_page) ? check_page : ''; 2755 val = (typeof val != 'undefined' && val) ? val : ''; 2756 2757 switch (oval_type) { 2758 case 'memo': 2759 str += '\ 2760 <textarea class="cl-s-form-control" name="'+org_field+'" cols="120" rows="10" id="cl-etc-input-val-memo">'+oval_v+'</textarea>\ 2761 '; 2762 break; 2763 case 'radio': 2764 var oval_checked = ((check_page=='mypage') && (oval_v==val)) ? 'checked' : ''; 2765 str += '\ 2766 <div class="newcheckbox">\ 2767 <label>\ 2768 <div class="newcheckboxSvgRadio">\ 2769 <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+'>\ 2770 <svg viewBox="0 0 18 18" width="18" height="18">\ 2771 <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
27710-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 2772 </svg>\ 2773 <svg class="active" viewBox="0 0 18 18" width="18" height="18">\ 2774 <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"/>\ 2775 <circle cx="9" cy="9" r="6"/>\ 2776 </svg>\ 2777 </div>\ 2778 <span>'+oval_v+'</span>\ 2779 </label>\ 2780 </div>\ 2781 '; 2782 2783 break; 2784 2785 case 'check': 2786 var oval_checked = ((check_page=='mypage') && (oval_v==val)) ? 'checked' : ''; 2787 if(check_page=='mypage' && (val.indexOf('`') > -1)) { 2788 if(val.indexOf(oval_v) > -1) { 2789 oval_checked = 'checked'; 2790 } 2791 } 2792 str += '\ 2793 <div class="newcheckbox">\ 2794 <label>\ 2795 <div class="newcheckboxSvg">\ 2796 <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+'>\ 2797 <svg viewBox="0 0 16 16" width="16" height="16">\ 2798 <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>\ 2799 <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>\ 2800 </svg>\ 2801 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 2802 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 2803 <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>\ 2804 </svg>\ 2805 </div>\ 2806 <span>'+oval_v+'</span>\ 2807 </label>\ 2808 </div>\ 2809 '; 2810 2811 break; 2812 2813 case 'select': 2814 var selected = ((check_page=='mypage') && (oval_v==val)) ? 'selected' : ''; 2815 str += '\ 2816 <option value="'+oval_v+'" '+selected+'>'+oval_v+'</option>\ 2817 '; 2818 2819 break; 2820 2821 case 'fupload': 2822 str += $.umember.fileHtmlRender(org_field, { 2823 val : val, 2824 type : "type1", 2825 }) 2826 break; 2827 2828 default: 2829 break; 2830 } 2831 if(org_field=='etc7') { 2832 console.log(oval_v); 2833 } 2834 return str; 2835 2836 }, 2837 makeJoinConditionsStr: function(sid,data,key,mode) { 2838 // console.log('umember makeJoinConditionsStr'); 2839 switch(key) { 2840 case 'captcha' : 2841 return ` 2842 <div class="kcaptcha-wrap clearfix ${(data['captcha'] == '1') ? '' : 'hide'}"> 2843 <div class="col-xs-4 col-sm-4 col-md-4 no-padding kcaptcha-box"> 2844 <p id="write_option"><img src="" id="kcaptcha" alt=""/></p> 2845 </div> 2846 <div class="col-xs-8 col-sm-8 col-md-8 text-left kcaptcha-key-wrap"> 2847 <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']}" /> 2848 <a class="kcaptcha-change hand small">${$.lang[LANG]['manager.join.cl.captcha-change']}</a> 2849 </div> 2850 </div> 2851 `; 2852 break; 2853 2854 case 'collections': 2855 var collections_html = ''; 2856 $.each(data['collections'], function(field,o) { 2857 if(field == 'email') return; 2858 if(o['used']) { 2859 var org_field = (field == 'addr') ? field + '1' : field, 2860 optional = o['optional'], 2861 name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+org_field], 2862 optional_class = (optional) ? 'optional' : '', 2863 key_func = '', 2864 add_input = '', 2865 jcollection_val_str = '', 2866 fupload_label = '', 2867 etc_val_type = ['memo','radio','check','select','fupload']; 2868 2869 if(field == 'birth') { 2870 name = $.lang[LANG]['siteum.mypage.Birth']; 2871 key_func = 'onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)"'; 2872 key_func = 'onkeydown="auto_date_format(event, this)"'; 2873 } 2874 2875 var star = (optional) ? '<span class="input-star">*</span>' : ''; 2876 if(field.indexOf('etc')>-1 && etc_val_type.includes(o['type'])) { 2877 var o_val = o['val'], 2878 o_val_arr = ((o_val.indexOf('`') > -1) && (o['type']=='radio' || o['type']=='check' || o['type']=='select'|| o['type']=='fupload')) ? o_val.split('`') : [o_val], 2879 description_class = (o['description_used']=='true' && (o['type']=='memo')) ? 'use_descr' : ''; 2880 2881 add_input = '\ 2882 <div class="cl-s-join-collections-etcwrap cl-s-form-wrap '+(o['type']=='fupload' ? 'nodata' : '') +' '+ optional_class + '" data-jcoltype="'+o['type']+'">'; 2883 add_input += '\ 2884 <div class="cl-s-etc">\ 2885 <span class="cl-s-etc-name">'+ name + star +'</span>\ 2886 '; 2887 add_input += (o['description_used']=='true') ? '<span class="cl-s-etc-description">'+ o['description'] +'</span>' : ''; 2888 add_input += '\ 2889 </div>\ 2890 '; 2891 2892 add_input += '\ 2893 <div class="cl-s-etc-val '+description_class+'">\ 2894 '; 2895 2896 if(o['type']=='select') { 2897 add_input += '\ 2898 <div class="cl-s-form-group cl-s-form-group-select">\ 2899 <select class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required">\ 2900 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 2901 '; 2902 } 2903 if(o_val_arr.length > 0) { 2904 $.each(o_val_arr, function(oval_i,oval_v){ 2905 jcollection_val_str += $.umember.makeJoinCollectionsTypeVal(oval_i,o['type'],oval_v,org_field,optional_class); 2906 }); 2907 } 2908 2909 if(o['type']=='select') { 2910 jcollection_val_str += '\ 2911 </select>\ 2912 <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>\ 2913 </div>\ 2914 '; 2915 } 2916 jcollection_val_str += '</div></div>'; 2917 2918 } else { 2919 add_input = '\ 2920 <div class="cl-s-form-wrap ' + optional_class + '">\ 2921 <div class="cl-s-form-group">\ 2922 <input type="text" class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required" value="" ' + key_func + '>\ 2923 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 2924 </div>\ 2925 </div>\ 2926 '; 2927 2928 if(field == 'addr') { 2929 var addr_modal = (mode.indexOf('shopping') > -1 || o['addrsearch']) ? 'readonly onfocus="addrSearchModal(\'input\')" ' : ''; 2930 add_input = '\ 2931 <div class="cl-s-form-wrap ' + optional_class + '">\ 2932 <div class="cl-s-form-group">\ 2933 <input type="hidden" class="cl-s-form-control" name="postcode" id="input-postcode" value="">\ 2934 <input type="text" class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required" value="" ' + addr_modal + '>\ 2935 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr1'] + star + '</label>\ 2936 </div>\ 2937 </div>\ 2938 <div class="cl-s-form-wrap">\ 2939 <div class="cl-s-form-group">\ 2940 <input type="text" class="cl-s-form-control" name="addr2" id="input-addr2" required="required" value="">\ 2941 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr2'] + '</label>\ 2942 </div>\ 2943 </div>\ 2944 '; 2945 } 2946 2947 if(field == 'gender') { 2948 add_input = '\ 2949 <div class="cl-s-form-wrap ' + optional_class + '">\ 2950 <div class="cl-s-form-group">\ 2951 <select class="cl-s-form-control" name="'+org_field+'" id="input-' + org_field + '" required="required">\ 2952 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 2953 <option value="01">'+$.lang[LANG]['manager.list.info.gender.01']+'</option>\ 2954 <option value="02">'+$.lang[LANG]['manager.list.info.gender.02']+'</option>\ 2955 </select>\ 2956 <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>\ 2957 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.gender'] + star + '</label>\ 2958 </div>\ 2959 </div>\ 2960 '; 2961 } 2962 2963 //if(mode == 'shopping_social' && !optional) add_input = ''; 2964 if(mode == 'shopping_social' && !o['used']) add_input = ''; 2965 2966 2967 if(mode.indexOf('cert') > -1) { 2968 switch (field) { 2969 case 'name': 2970 case 'gender': 2971 case 'birth': 2972 case 'tel': 2973 add_input = '<input id="input-' + org_field + '" type="hidden" name="' + org_field + '" value="">'; 2974 break; 2975 } 2976 } 2977 } 2978 2979 collections_html += add_input + jcollection_val_str; 2980 2981 } 2982 }); 2983 return collections_html; 2984 break; 2985 2986 default: 2987 return data[key]; 2988 break; 2989 } 2990 2991 }, 2992 makeJoinModalContent: function(sid,data,mode) { 2993 // console.log('umember makeJoinModalContent'); 2994 if(PAGE_MODE == 's') { // ê²ìì¬ì´í¸ ë¤êµì´ íìê°ì íì´ì§ íê¸ê³¼ ì
2994ì¬ëì¤ë ë¶ë¶ ë°©ì§ 2995 if(property.SLANG.select_code == undefined) { 2996 LANG = 'ko'; 2997 } else { 2998 if(property.SLANG.select_code == 'ko') LANG = 'ko'; 2999 else LANG = 'en'; 3000 } 3001 } 3002 var collections = $.umember.makeJoinConditionsStr(sid,data,'collections',mode), 3003 captcha = $.umember.makeJoinConditionsStr(sid,data,'captcha',mode), 3004 privacy_type = (LANG == 'ko') ? 'privacy-join' : 'privacy', 3005 approval = (typeof data.approval != 'undefined' && data.approval) ? data.approval : 'hand', 3006 mode2 = data.mode2; 3007 3008 var sns_input = (mode == 'shopping_social' || (mode == 'shopping_cert' && mode2 == 'shopping_sns')) ? 'readonly="true"' : '', 3009 content = '\ 3010 <div class="cl-s-form-wrap optional">\ 3011 <div class="cl-s-form-group">\ 3012 <input type="text" class="cl-s-form-control" name="email" id="input-email" required="required" value="" '+sns_input+'>\ 3013 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.email'] + '<span class="input-star">*</span></label>\ 3014 </div>\ 3015 </div>\ 3016 '; 3017 3018 if(mode == 'shopping_social' || (mode == 'shopping_cert' && mode2 == 'shopping_sns')) { 3019 content += collections; 3020 var register_form_arr = { 3021 'content' : content 3022 } 3023 } else { 3024 content += '\ 3025 <div class="cl-s-form-wrap optional">\ 3026 <div class="cl-s-form-group">\ 3027 <input type="password" class="cl-s-form-control" name="password" id="input-password" required="required" value="">\ 3028 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password'] + '<span class="input-star">*</span></label>\ 3029 </div>\ 3030 </div>\ 3031 <div class="cl-s-form-wrap optional">\ 3032 <div class="cl-s-form-group">\ 3033 <input type="password" class="cl-s-form-control" name="password_checked" id="input-password-checked" required="required" value="">\ 3034 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password-check'] + '<span class="input-star">*</span></label>\ 3035 </div>\ 3036 </div>\ 3037 <div class="cl-s-form-description">' + $.lang[LANG]['siteum.login.password.description'] + '</div>\ 3038 ' + collections + '\ 3039 '; 3040 var register_form_arr = { 3041 'content' : content, 3042 'captcha' : captcha 3043 } 3044 } 3045 return register_form_arr; 3046 }, 3047 joinModalInit: function(mode) { 3048 // console.log('umember joinModalInit'); 3049 mode = (mode) ? '-' + mode : ''; 3050 var joinModal = $('#join-modal' + mode); 3051 3052 joinModal.find('.form-group').each(function() { 3053 $(this).removeClass('focus'); 3054 $(this).find('.error').remove(); 3055 $(this).find('input.form-control').val(''); 3056 $(this).find('#join-textarea').html(''); 3057 }); 3058 3059 joinModal.find('#wr_key').val(''); 3060 }, 3061 joinModalKeyFunc: function(mode) { 3062 // console.log('umember joinModalKeyFunc'); 3063 mode = (mode) ? '-' + mode : ''; 3064 var joinModal = $('#join-modal' + mode); 3065 3066 if(!joinModal.find('.kcaptcha-wrap').hasClass('hide')) { 3067 load_kcaptcha(); 3068 joinModal.find('#wr_key').live({ 3069 keyup: function() { 3070 if($(this).val().trim().length > 0) { $(this).next('.error').remove(); } 3071 } 3072 }); 3073 } 3074 3075 joinModal.find('input.form-control').live({ 3076 focus: function() { 3077 $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); 3078 }, 3079 blur: function() { 3080 $(this).closest('.form-group').removeClass('focus'); 3081 }, 3082 keydown: function(key) { 3083 if(key.keyCode == 13) $('#uJoin').click(); 3084 }, 3085 keyup: function() { 3086 var groupEl = $(this).closest('.form-group'), 3087 errorEL = $(this).next().next('.error'), 3088 field = $(this).attr('id').trim().replace(/input-/,''), 3089 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 3090 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 3091 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 3092 3093 if(field=='password' || field == 'password-checked') { 3094 var pwEl = joinModal.find('#input-password'), 3095 pw2El = joinModal.find('#input-password-checked'), 3096 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 3097 3098 if(pwEl.val() == pw2El.val()) { 3099 pw2El.next().next('.error').remove(); 3100 } else { 3101 if(pw2El.val().length > 0) { 3102 if(pw2El.next().next('.error').length > 0) pw2El.next().next('.error').removeClass('empty').text(error_str); 3103 else pw2El.closest('.form-group').append('<span class="error">'+ error_str + '</span>'); 3104 } 3105 } 3106 } 3107 3108 if(reg_has && errorEL.length > 0) { 3109 3110 var reg = new RegExp(reg_pattern); 3111 if(reg.test($(this).val())) errorEL.remove(); 3112 else { 3113 if(errorEL.hasClass('empty')) errorEL.removeClass('empty').text(reg_ex); 3114 } 3115 3116 } 3117 3118 } 3119 }); 3120 }, 3121 showLoginModal: function(sid) { 3122 // console.log('umember showLoginModal'); 3123 if($('#join-modal').length > 0 ) $('#join-modal').delay(3000).modal('hide'); 3124 if($('#forgotpw-modal').length > 0 ) $('#forgotpw-modal').delay(3000).modal('hide'); 3125 3126 var content = $.umember.makeLoginModalContent(); 3127 $.umember.showMngModal(sid, content, 'login-modal', false, 3128 function() { $.umember.LoginModalInit(); }, 3129 function() { $.umember.loginModalKeyFunc(); }, '', '', ''); 3130 }, 3131 makeLoginModalContent: function() { 3132 // console.log('umember makeLoginModalContent'); 3133 var s_um = (PAGE_MODE == 'c') ? SITEUM : property.SITEUM, 3134 join_btn = (s_um == 1) ? '' : '<div class="btn-join siteUM"><span class="join hand">' + $.lang[LANG]['manager.site-um.join.3'] + '</span></div>', 3135 privacy_type = (LANG == 'ko') ? 'privacy-join' : 'privacy'; 3136 3137 var loginModal_html = '\ 3138 <div class="flat-modal mng-login-modal mng-siteUM-modal">\ 3139 <div class="modal modal-default fade" id="login-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3140 <div class="modal-dialog" role="document">\ 3141 <div class="modal-content">\ 3142 <div class="modal-header">\ 3143 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3144 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3145 </button>\ 3146 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['header.login'] + '</h5>\ 3147 </div>\ 3148 <div class="modal-body">\ 3149 <span class="form-group optional initial">\ 3150 <input class="form-control" type="text" id="input-id" placeholder="' + $.lang[LANG]['siteum.login.id'] + '"/>\ 3151 <label for="input-id">\ 3152 <i class="fa fa-asterisk"></i>\ 3153 <span>id</span>\ 3154 </label>\ 3155 </span>\ 3156 <span class="form-group optional initial">\ 3157 <input class="form-control" type="password" id="input-password" placeholder="' + $.lang[LANG]['siteum.login.password'] + '"/>\ 3158 <label for="input-password">\ 3159 <i class="fa fa-asterisk"></i>\ 3160 <span>password</span>\ 3161 </label>\ 3162 </span>\ 3163 </div>\ 3164 <div class="modal-footer">\ 3165 <button type="button" class="btn btn-primary" id="uLogin">' + $.lang[LANG]['manager.site-um.login'] + '</button>\ 3166 ' + join_btn + '\ 3167 <p class="modal-change-wrap siteUM"><span class="forgot-pw hand">' + $.lang[LANG]['siteum.forgot.id-pw'] + '</span></p>\ 3168 </div>\ 3169 </div>\ 3170 </div>\ 3171 </div>\ 3172 </div>\ 3173 '; 3174 3175 3176 return loginModal_html; 3177 }, 3178 loginModalInit: function(mode) { 3179 mode = (mode) ? '-' + mode : ''; 3180 var loginModal = $('#login-modal'+mode); 3181 3182 loginModal.find('.form-group').each(function() { 3183 $(this).removeClass('focus'); 3184 $(this).find('.error').remove(); 3185 $(this).find('input.form-control').val(''); 3186 }); 3187 }, 3188 loginModalKeyFunc: function(mode) { 3189 mode = (mode) ? '-' + mode : ''; 3190 var loginModal = $('#login-modal'+mode); 3191 3192 loginModal.find('input.form-control').live({ 3193 focus: function(e) { $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); }, 3194 blur: function(e) { $(this).closest('.form-group').removeClass('focus'); }, 3195 keydown: function(e) { 3196 if($('.dsgn-body').hasClass('mobile-nav-active')) $('.el-menu header.n
3196avbar-fheader .navbar-toggle').click(); 3197 if(e.keyCode == 13) $('#uLogin').click(); 3198 }, 3199 keyup: function(e) { 3200 var groupEl = $(this).closest('.form-group'), 3201 errorEL = $(this).next().next('.error'); 3202 if($(this).val().length > 0) errorEL.remove(); 3203 } 3204 }); 3205 }, 3206 showForgotIDModal: function(sid) { 3207 if($('#forgotpw-modal').length > 0 ) $('#forgotpw-modal').delay(3000).modal('hide'); 3208 3209 var content = $.umember.makeForgotIDModalContent(); 3210 $.umember.showMngModal(sid, content, 'forgotid-modal', false, function() { 3211 $('#forgotid-modal').find('.error').remove(); 3212 $('#forgotid-modal').find('input.form-control').val(''); 3213 $('#forgotid-modal .modal-body').children().removeAttr('style'); 3214 $('#forgotid-modal .modal-footer').children('button').removeAttr('style'); 3215 $('#forgotid-modal').find('.forgot-id-result').text(''); 3216 }, function() { 3217 $('#forgotid-modal').find('input.form-control').live({ 3218 keydown: function(key) { if(key.keyCode == 13) $('#uForgotID').click(); }, 3219 keyup: function() { 3220 $('#forgotid-modal .modal-body').children().removeAttr('style'); 3221 $('#forgotid-modal .modal-footer').children('button').removeAttr('style'); 3222 $('#forgotid-modal').find('.forgot-id-result').text(''); 3223 var regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 3224 errorEL = $(this).closest('.form-group').find('.error'); 3225 3226 if(!regexp.test($(this).val())) errorEL.text($.lang[LANG]['siteum.regexp.check.email']); 3227 else errorEL.remove(); 3228 } 3229 }); 3230 }, '', '', ''); 3231 }, 3232 makeForgotIDModalContent: function() { 3233 var forgotIDModal_html = '\ 3234 <div class="flat-modal mng-forgotid-modal mng-siteUM-modal">\ 3235 <div class="modal modal-default fade" id="forgotid-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3236 <div class="modal-dialog" role="document">\ 3237 <div class="modal-content">\ 3238 <div class="modal-header">\ 3239 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3240 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3241 </button>\ 3242 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['siteum.forgot.id.link'] + '</h5>\ 3243 </div>\ 3244 <div class="modal-body">\ 3245 <div>' + $.lang[LANG]['siteum.forgot.id.description'] + '</div>\ 3246 <span class="form-group">\ 3247 <input class="form-control" type="text" id="input-email" placeholder="' + $.lang[LANG]['siteum.forgot.pw.input-email'] + '"/>\ 3248 </span>\ 3249 <div class="forgot-id-result"></div>\ 3250 </div>\ 3251 <div class="modal-footer">\ 3252 <button type="button" class="btn btn-primary" id="uForgotID">' + $.lang[LANG]['siteum.forgot.id.btn'] + '</button>\ 3253 <p class="modal-change-wrap siteUM"> <span class="forgot-pw hand">' + $.lang[LANG]['siteum.forgot.pw.link'] + '</span></p>\ 3254 <p class="modal-change-wrap siteUM"> <span class="login hand">' + $.lang[LANG]['manager.site-um.login'] + '</span></p>\ 3255 </div>\ 3256 </div>\ 3257 </div>\ 3258 </div>\ 3259 </div>\ 3260 '; 3261 3262 return forgotIDModal_html; 3263 }, 3264 showForgotPWModal: function(sid) { 3265 if($('#login-modal').length > 0 ) $('#login-modal').delay(3000).modal('hide'); 3266 if($('#forgotid-modal').length > 0 ) $('#forgotid-modal').delay(3000).modal('hide'); 3267 3268 var content = $.umember.makeForgotPWModalContent(); 3269 $.umember.showMngModal(sid, content, 'forgotpw-modal', false, function() { 3270 $('#forgotpw-modal').find('.focus').removeClass('focus'); 3271 $('#forgotpw-modal').find('.error').remove(); 3272 $('#forgotpw-modal').find('input.form-control').val(''); 3273 }, function() { 3274 $('#forgotpw-modal').find('input.form-control').live({ 3275 foucs: function() { $(this).closest('.form-group').addClass('focus').siblings().removeClass('focus'); }, 3276 blur: function() { $(this).closest('.form-group').removeClass('focus'); }, 3277 keydown: function(key) { if(key.keyCode == 13) $('#uForgotPW').click(); }, 3278 keyup: function() { 3279 var regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 3280 field = $(this).attr('id').trim().replace(/input-/,''), 3281 errorEL = $(this).closest('.form-group').find('.error'); 3282 3283 if(field == 'email' && !regexp.test($(this).val())) errorEL.text($.lang[LANG]['siteum.regexp.check.email']); 3284 else errorEL.remove(); 3285 } 3286 }); 3287 }, '', '', ''); 3288 }, 3289 makeForgotPWModalContent: function() { 3290 var forgotPWModal_html = '\ 3291 <div class="flat-modal mng-forgotpw-modal mng-siteUM-modal">\ 3292 <div class="modal modal-default fade" id="forgotpw-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\ 3293 <div class="modal-dialog" role="document">\ 3294 <div class="modal-content">\ 3295 <div class="modal-header">\ 3296 <button type="button" class="close" data-dismiss="modal" aria-label="Close">\ 3297 <span aria-hidden="true"><img src="https://storage.googleapis.com/i.addblock.net/fa-close-siteUM-modal.png" alt="close"></span>\ 3298 </button>\ 3299 <h5 class="modal-title" id="exampleModalLabel">' + $.lang[LANG]['siteum.forgot.pw.title'] + '</h5>\ 3300 </div>\ 3301 <div class="modal-body">\ 3302 <div>' + $.lang[LANG]['siteum.forgot.pw.description'] + '</div>\ 3303 <span class="form-group">\ 3304 <input class="form-control" type="text" id="input-id" placeholder="' + $.lang[LANG]['manager.list.info.id'] + '"/>\ 3305 </span>\ 3306 <span class="form-group">\ 3307 <input class="form-control" type="text" id="input-email" placeholder="' + $.lang[LANG]['siteum.forgot.pw.input-email'] + '"/>\ 3308 </span>\ 3309 </div>\ 3310 <div class="modal-footer">\ 3311 <button type="button" class="btn btn-primary" id="uForgotPW">' + $.lang[LANG]['siteum.forgot.pw.btn'] + '</button>\ 3312 <p class="modal-change-wrap siteUM"> <span class="forgot-id hand">' + $.lang[LANG]['siteum.forgot.id.link'] + '</span></p>\ 3313 <p class="modal-change-wrap siteUM"> <span class="login hand">' + $.lang[LANG]['manager.site-um.login'] + '</span></p>\ 3314 </div>\ 3315 </div>\ 3316 </div>\ 3317 </div>\ 3318 </div>\ 3319 '; 3320 3321 return forgotPWModal_html; 3322 }, 3323 showMypageModal: function(sid) { 3324 if($('.mng-siteUM-modal').length > 0 ) $('.mng-siteUM-modal').children().first().modal('hide'); 3325 3326 $.getJSON('/umember/get/type/mypage', function(data) { 3327 if(typeof data.error != 'undefined' && data.error) { 3328 alert(data.error); 3329 return false;
3330 } 3331 // COLLECTION_REGEX = $.parseJSON(data['regExp']); 3332 COLLECTION_REGEX = data['regExp']; 3333 3334 var content = $.umember.makeMypageContent(sid,data,''); 3335 $('body').find('.dsgn-body').append('<link rel="stylesheet" href="/css/manager.css" type="text/css" class="manager_css">'); 3336 $.umember.showMngModal(sid, content, 'mypage-modal', false, 3337 function() { }, 3338 function() { }, 3339 function() { $('body .dsgn-body').find('link.manager_css').remove(); }, '', ''); 3340 }); 3341 }, 3342 3343 makeMypageConditionsStr: function(sid,data,mode,cert) { 3344 if(typeof cert === 'undefined' || !cert) cert = 'N'; 3345 3346 var collections = '', 3347 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']; 3348 3349 $.each(data, function(field,o) { 3350 if (field != 'um_sns_key') { 3351 if($.inArray(field,make_pass) == -1) { 3352 var name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+field], 3353 optional = (o['optional']) ? o['optional'] : false, 3354 optional_class = (optional) ? 'optional' : '', 3355 prev_val = (field == 'email' || field == 'nick') ? 'data-prev="' + o['value'] + '"' : '', 3356 etc_val_type = ['memo','radio','check','select','fupload'], 3357 cl_val_str = '', 3358 add_input = '', 3359 jcollection_val_str = ''; 3360 // ê°ê²°íê² ì¼í ì°ì°ìë¡ ë¦¬í©í ë§ 3361 3362 var filecount_data = o['type'] === 'fupload' && o['value'] ? 'isdata' : o['type'] === 'fupload' ? 'nodata' : ''; 3363 3364 var star = (optional) ? '<span class="input-star">*</span>' : ''; 3365 3366 if(field.indexOf('etc')>-1 && etc_val_type.includes(o['type'])) { 3367 var o_val = o['value'], 3368 o_val_arr = ((o['jcol_val'].indexOf('`') > -1) && (o['type']=='radio' || o['type']=='check' || o['type']=='select')) ? o['jcol_val'].split('`') : [o_val], 3369 description_class = (o['description_used']=='true' && (o['type']=='memo')) ? 'use_descr' : ''; 3370 3371 add_input = '\ 3372 <div class="cl-s-join-collections-etcwrap cl-s-form-wrap '+filecount_data+' '+ optional_class + '" data-jcoltype="'+o['type']+'">'; 3373 3374 var text_class = (o_val && (o['type']=='memo')) ? 'textarea-active' : ''; 3375 add_input += '\ 3376 <div class="cl-s-etc '+text_class+'">\ 3377 <span class="cl-s-etc-name">'+ name + star +'</span>\ 3378 '; 3379 add_input += (o['description_used']=='true') ? '<span class="cl-s-etc-description">'+ o['description'] +'</span>' : ''; 3380 add_input += '\ 3381 </div>\ 3382 '; 3383 3384 add_input += '\ 3385 <div class="cl-s-etc-val '+description_class+'">\ 3386 '; 3387 3388 if(o['type']=='select') { 3389 add_input += '\ 3390 <div class="cl-s-form-group cl-s-form-group-select">\ 3391 <select class="cl-s-form-control" name="'+field+'" id="input-' + field + '" required="required">\ 3392 <option value="">'+$.lang[LANG]['manager.list.info.gender.select']+'</option>\ 3393 '; 3394 } 3395 3396 if(o_val_arr.length > 0) { 3397 $.each(o_val_arr, function(oval_i,oval_v){ 3398 jcollection_val_str += $.umember.makeJoinCollectionsTypeVal(oval_i,o['type'],oval_v,field,optional_class,'mypage',o_val); 3399 }); 3400 } 3401 3402 if(o['type']=='select') { 3403 jcollection_val_str += '\ 3404 </select>\ 3405 <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>\ 3406 </div>\ 3407 '; 3408 } 3409 jcollection_val_str += '</div></div>'; 3410 3411 } else { 3412 add_input += '\ 3413 <div class="cl-s-form-wrap ' + optional_class + '">\ 3414 <div class="cl-s-form-group">\ 3415 <input type="text" class="cl-s-form-control" name="'+field+'" id="input-' + field + '" required="required" value="' + o['value'] + '" ' + prev_val + '>\ 3416 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 3417 </div>\ 3418 </div>\ 3419 '; 3420 3421 } 3422 if(field == 'birth') { 3423 var birth = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+field]; 3424 3425 add_input = '\ 3426 <div class="cl-s-form-wrap ' + optional_class + '">\ 3427 <div class="cl-s-form-group">\ 3428 <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)">\ 3429 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.mypage.Birth'] + star + ' </label>\ 3430 </div>\ 3431 </div>\ 3432 '; 3433 } else if(field == 'addr') { 3434 3435 3436 if( mode && mode === 'business'){ 3437 var o_postcode = (o['value'][0]) ? o['value'][0].trim() : '', 3438 o_addr1 = (o['value'][1]) ? o['value'][1].trim() : '', 3439 o_addr2 = (o['value'][2]) ? o['value'][2].trim() : '', 3440 addr_has_clas = (o_postcode || o_addr1) ? 'has-value' : '', 3441 addr_modal = (mode == 'shopping' || o['addrsearch']) ? 'readonly onfocus="addrSearchModal(\'input\')" ' : ''; 3442 3443 add_input = '\ 3444 <div class="cl-s-form-wrap ' + optional_class + '">\ 3445 <div class="cl-s-form-group">\ 3446 <input type="hidden" class="cl-s-form-control" name="postcode" id="input-postcode" value="' + o_postcode + '">\ 3447 <input type="text" class="cl-s-form-control '+addr_has_clas+'" name="addr1" id="input-addr1" required="required" value="' + o_addr1 + '" ' + addr_modal + '>\ 3448 <label for="input" class="cl-s-control-label">' + name + star + '</label>\ 3449 </div>\ 3450 </div>\ 3451 <div class="cl-s-form-wrap">\ 3452 <div class="cl-s-form-group">\ 3453 <input type="text" class="cl-s-form-control" name="addr2" id="input-addr2" required="required" value="' + o_addr2 + '">\ 3454 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['manager.list.info.addr2'] + '</label>\ 3455 </div>\ 3456 </div>\ 3457 '; 3458 } else if(mode && mode === 'shopping') { 3459 var sm_name = '', 3460 sm_tel = '', 3461 sm_addr0 = '', 3462 sm_addr0_empty ='', 3463 sm_addr1 = '', 3464 sm_addr2 = '', 3465 sm_isalias = '', 3466 sm_isalias_empty = '', 3467 aliasText = '', 3468 sm_nodata = ''; 3469 btn_text ='' 3470 3471 if (data['sm_addr'] && data['sm_addr']['is_default'] === 0) { 3472 sm_nodata = 'emptyFlag'; 3473 btn_text = 'ì¶ê°í기'; 3474 } else{ 3475 const sm = data?.sm_addr || {}; 3476 3477 sm_name = sm.name?.trim?.() || ''; 3478 sm_tel = sm.tel?.trim?.() || ''; 3479 3480 addrText = sm.value?.[0]?.trim?.() || ''; 3481 sm_addr0 = addrText ? '[' + addrText + ']' : ''; 3482 sm_addr0_empty = sm_addr0 ? '' : 'hide'; 3483 3484 sm_addr1 = sm.value?.[1]?.trim?.() || ''; 3485 sm_addr2 = sm.value?.[2]?.trim?.() || ''; 3486 aliasText = sm.alias?.trim?.() || ''; // 먼ì alias 문ìì´ ë½ê¸°
3487 sm_isalias = aliasText ? '(' + aliasText + ')' : ''; // ê´í¸ ì²ë¦¬ 3488 sm_isalias_empty = aliasText ? '' : 'hide'; // í´ëì¤ ì²ë¦¬ 3489 3490 3491 btn_text = 'ë³ê²½í기'; 3492 3493 } 3494 3495 var valueCheckEl = ""; 3496 (valueCheckEl = sm_nodata ? '<input type="text" class="cl-s-form-control hide" required="required" value="">' : '' ); 3497 add_input = '\ 3498 <div class="cl-s-form-wrap sm-parent '+sm_nodata+'">\ 3499 <div class="cl-s-form-wrap '+(sm_nodata ? optional_class : "") +'">\ 3500 <div class="cl-s-form-group">\ 3501 <div class="cl-s-form-control flexbox">\ 3502 '+valueCheckEl+'\ 3503 <label for="input" class="cl-s-control-label">ë°°ì¡ì§ ì ë³´<span class="input-star '+ (optional_class ? '' : 'hide') +'">*</span></label>\ 3504 <div class="cl-s-form-wrap btn-load-addresses mypage" data-action="getList">\ 3505 <div class="cl-s-form-group EditBtn">\ 3506 <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>\ 3507 </div>\ 3508 <div class="cl-s-form-group ">\ 3509 <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>\ 3510 </div>\ 3511 </div>\ 3512 </div>\ 3513 <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>\ 3514 \ 3515 <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>\ 3516 <div class="cl-s-form-control"><div class="sm-tel">'+sm_tel+'</div></div>\ 3517 <div class="cl-s-form-control noaddress" style="text-align:center; padding:20px; color:#999;">ë±ë¡ë ë°°ì¡ì§ê° ììµëë¤.</div>\ 3518 </div>\ 3519 </div>\ 3520 </div>\ 3521 '; 3522 } 3523 3524 } else if(field == 'gender') { 3525 add_input = '\ 3526 <div class="cl-s-form-wrap ' + optional_class + '">\ 3527 <div class="cl-s-form-group">\ 3528 <select class="cl-s-form-control" name="gender" id="input-gender" required="required">\ 3529 <option value="">ì í</option>'; 3530 if(o['value'] == '01') { 3531 add_input += '\ 3532 <option value="01" selected>ë¨</option>\ 3533 <option value="02">ì¬</option>'; 3534 } else if(o['value'] == '02') { 3535 add_input += '\ 3536 <option value="01">ë¨</option>\ 3537 <option value="02" selected>ì¬</option>'; 3538 } else { 3539 add_input += '\ 3540 <option value="01">ë¨</option>\ 3541 <option value="02">ì¬</option>'; 3542 } 3543 add_input += '\ 3544 </select>\ 3545 <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>\ 3546 <label for="input" class="cl-s-control-label">' + name + star +'</label>\ 3547 </div>\ 3548 </div>\ 3549 '; 3550 } 3551 3552 if(cert == 'Y') { 3553 switch (field) { 3554 case 'name': 3555 case 'gender': 3556 case 'birth': 3557 case 'tel': 3558 var value = (o['value'])? o['value']:''; 3559 add_input = '<input id="input-' + field + '" type="hidden" name="' + field + '" value="' + value + '">'; 3560 break; 3561 } 3562 } 3563 3564 collections += add_input + jcollection_val_str; 3565 3566 } 3567 } 3568 }); 3569 return collections; 3570 }, 3571 makeMypageContent: function(sid,data,mode,cert) { 3572 if(typeof cert === 'undefined' || !cert) cert = 'N'; 3573 3574 var collections = $.umember.makeMypageConditionsStr(sid,data,mode,cert), 3575 s_validtype = (typeof VALIDTYPE != 'undefined') ? VALIDTYPE : property.VALIDTYPE; 3576 3577 var default_info = '\ 3578 <div class="profile-wrap cl-s-profile-box col-xs-12 col-sm-12 col-md-12 no-padding">\ 3579 <div class="profile-image-wrap profile-image-box">\ 3580 <svg viewBox="0 0 110 110">\ 3581 <pattern id="profileMyImg" patternUnits="userSpaceOnUse" width="110" height="110">\ 3582 <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="' + data['image'] + '" x="0" width="110" height="110"></image>\ 3583 </pattern>\ 3584 <circle cx="55" cy="56" r="54" fill="url(#profileMyImg)" stroke="#ededed"></circle>\ 3585 </svg>\ 3586 </div>\ 3587 <div class="profile-text-wrap">\ 3588 <div class="cl-s-form-wrap cl-s-info-id" disabled>\ 3589 <input type="hidden" class="cl-s-form-control" name="id" id="input-id" required="required" value="' + data['id']['value'] + '">\ 3590 <span class="id-text">' + data['id']['value'] + '</span>\ 3591 </div>\ 3592 <label for="profileMyImgFileupload">' + $.lang[LANG]['siteum.mypage.change.image'] + '</label>\ 3593 <input id="profileMyImgFileupload" class="modal-upload-button um-image-upload" type="file" name="files[]" data-sid="' + sid + '" data-uid="' + data['id']['value'] + '" />\ 3594 <p class="cl-s-image-size">' + $.lang[LANG]['manager.mypage.profile.image.note'] + ' ' + $.lang[LANG]['manager.mypage.profile.image.size'] + '</p>\ 3595 </div>\ 3596 </div>\ 3597 <div class="clearfix"></div>\ 3598 '; 3599 3600 var mypage_avatar = '\ 3601 <div class="profile-wrap cl-s-profile-box col-xs-12 col-sm-12 col-md-12 no-padding">\ 3602 <div class="profile-image-wrap profile-image-box">\ 3603 <svg viewBox="0 0 110 110">\ 3604 <pattern id="profileMyImg" patternUnits="userSpaceOnUse" width="110" height="110">\ 3605 <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="' + data['image'] + '" x="0" width="110" height="110"></image>\ 3606 </pattern>\ 3607 <circle cx="55" cy="56" r="54" fill="url(#profileMyImg)" stroke="#ededed"></circle>\ 3608 </svg>\ 3609 </div>\ 3610 </div>\ 3611 <div class="clearfix"></div>\ 3612 '; 3613 3614 var content = '\ 3615 <div class="cl-s-form-wrap">\ 3616 <div class="cl-s-form-group">\ 3617 <input type="password" class="cl-s-form-control" name="password" id="input-password" required="required" value="">\ 3618 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password.myinfo'] + '</label>\ 3619 </div>\ 3620 </div>\ 3621 <div class="cl-s-form-wrap">\ 3622 <div class="cl-s-form-group">\ 3623 <input type="password" class="cl-s-form-control" name="password_checked" id="input-password-checked" required="required" value="">\ 3624 <label for="input" class="cl-s-control-label">' + $.lang[LANG]['siteum.login.password-check'] + '</label>\ 3625 </div>\ 3626 </div>\ 3627 <div class="cl-s-form-description">' + $.lang[LANG]['siteum.login.password.description'] + '</div>\ 3628 '; 3629 3630 return { content: content, collections: collections, default_info: default_info, mypage_avatar:mypage_avatar }; 3631 }, 3632 showMyImageUploadModal: function(sid,uid,src) { 3633 var content = '\ 3634 <div class="flat-modal mng-mypage-modal">\ 3635 <div class="modal modal-default fade" id="my-image-modal" tabindex="-1" role="dialog" aria-labelledby="mySmallMod
3635alLabel" aria-hidden="true" data-sid="' + sid + '" data-uid="' + uid + '">\ 3636 <div class="modal-dialog w385">\ 3637 <div class="modal-content">\ 3638 <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>\ 3639 <div class="modal-body">\ 3640 <div class="profile-image-wrap no-opacity">\ 3641 <div>\ 3642 <span class="top"></span>\ 3643 <span class="bottom"></span>\ 3644 </div>\ 3645 <img class="my-image img-responsive" src="' + src + '" alt="profile image" />\ 3646 </div>\ 3647 <p>' + $.lang[LANG]['manager.mypage.profile.image.note'] + ' <strong>' + $.lang[LANG]['manager.mypage.profile.image.size'] + '</strong></p>\ 3648 </div>\ 3649 <div id="progress" class="progress">\ 3650 <div class="progress-bar progress-bar-success"></div>\ 3651 </div>\ 3652 <div class="modal-footer">\ 3653 <button type="button" class="btn btn-default" data-dismiss="modal">' + $.lang[LANG]['config.close'] + '</button>\ 3654 <span class="btn btn-primary fileinput-button">\ 3655 <span>' + $.lang[LANG]['manager.mypage.profile.image.apply'] + '</span>\ 3656 <input id="profileUMFileupload" class="modal-upload-button um-image-upload" type="file" name="files[]" data-sid="' + sid + '" data-uid="' + uid + '" >\ 3657 </span>\ 3658 </div>\ 3659 </div>\ 3660 </div>\ 3661 </div>\ 3662 </div>\ 3663 '; 3664 3665 $.umember.showMngModal(sid, content, 'my-image-modal', false, '', '', '', '', ''); 3666 }, 3667 fileurlcreate : function(cl_val) { 3668 // ë¨ì¼ íì¼ URL ìì± í¨ì 3669 // cl_valì ë°ìì ë¤ì´ë¡ë ë§í¬ì íì¼ ì 보를 ë°í 3670 var result = { 3671 download_link: '', 3672 file_links: '', 3673 file_data: '', 3674 file_info: { 3675 name: '', 3676 size: '', 3677 url: '', 3678 size_display: '' 3679 } 3680 }; 3681 3682 if(cl_val && cl_val.trim() !== '') { 3683 // ë¨ì¼ íì¼ ì²ë¦¬ - 첫 ë²ì§¸ íì¼ë§ ì¬ì© 3684 var file_data = cl_val.split(',')[0]; 3685 result.file_data = file_data; 3686 3687 if(file_data && file_data.trim() !== '') { 3688 var explode_v = file_data.split('||'); 3689 // console.log('fileurlcreate explode_v:', explode_v); // ëë²ê¹ ì© 3690 3691 // íì¬ ë°ì´í° 구조ì ë§ê² ìì 3692 // explode_v[0]: íì¼ëª , explode_v[1]: íì¼ í¬ê¸°, explode_v[2]: URL 3693 var link_url = explode_v[2] || ''; 3694 var link_url_arr = link_url.split('/'); 3695 var true_file_name = link_url_arr[link_url_arr.length - 1]; 3696 3697 if(explode_v[0]) { 3698 // íì¼ í¬ê¸° ê³ì° (explode_v[1]ìì í¬ê¸° ì¶ì¶) 3699 var flink_s = (explode_v[1]) ? parseFloat(explode_v[1].replace(/[^0-9\.]/g, '')) : 0; 3700 var flink_unit = (explode_v[1] && explode_v[1].indexOf('MB') > -1) ? 'MB' : 'KB'; 3701 var flink_size = (flink_unit === 'MB') ? flink_s : flink_s; 3702 // view.htmlì round($flink_size,2)ì ëì¼íê² ììì 2ì리ê¹ì§ íì 3703 var flink_str = (explode_v[1]) ? parseFloat(flink_size.toFixed(2)) + flink_unit : ''; 3704 3705 var current_sid = (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : ''); 3706 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">'; 3707 3708 result.download_link = download_link; 3709 result.file_links = download_link; 3710 result.file_info = { 3711 name: explode_v[0], 3712 size: explode_v[1] || '', 3713 url: link_url, 3714 size_display: flink_str 3715 }; 3716 } 3717 } 3718 } 3719 3720 return result; 3721 }, 3722 fileHtmlRender : function(orgfield,option){// 그리기 ë´ë¹ ë©ìë 3723 // ì¨ ê°ìë°ë¼ 그리ëê±° ë¬ë¼ì§ê¸° 3724 option = $.extend({ 3725 val : "", 3726 type : "", 3727 type2_downlink : "" 3728 3729 3730 }, option); 3731 3732 // option.valìì íì¼ ì ë³´ íì± (íì¼ëª ||íì¼í¬ê¸°||íì¼ê²½ë¡ íí) 3733 var fileName = ''; 3734 var fileSize = ''; 3735 var filePath = ''; 3736 var fileSizeDisplay = ''; 3737 var fileSizeUnit = 'KB'; 3738 var hasValidFile = false;
3739 // option.valì´ ìê³ íì¼ ì ë³´ íìì´ ë§ëì§ íì¸ 3740 if (option.val && option.val.indexOf('||') > -1) { 3741 var fileData = option.val.split('||'); 3742 if (fileData.length >= 3) { 3743 fileName = fileData[0]; 3744 fileSize = fileData[1]; 3745 filePath = fileData[2]; 3746 filePaths = (filePath && filePath.indexOf('/') > -1 ? [filePath.split('/').pop()] : []); 3747 // íì¼ëª ê³¼ ê²½ë¡ê° 모ë ìë ê²½ì°ìë§ ì í¨í íì¼ë¡ íë¨ 3748 if (fileName && filePath) { 3749 hasValidFile = true; 3750 3751 // íì¼ í¬ê¸° ë¨ì ì²ë¦¬ 3752 if (fileSize.indexOf('KB') > -1) { 3753 fileSize = parseFloat(fileSize.replace('KB', '')); 3754 fileSizeUnit = 'KB'; 3755 } else if (fileSize.indexOf('MB') > -1) { 3756 fileSize = parseFloat(fileSize.replace('MB', '')); 3757 fileSizeUnit = 'MB'; 3758 } else { 3759 fileSize = parseFloat(fileSize); 3760 fileSizeUnit = 'KB'; 3761 } 3762 3763 // íì¼ í¬ê¸° íì íì ì¡°ì 3764 if (fileSizeUnit === 'KB' && fileSize > 1024) { 3765 fileSizeDisplay = (fileSize / 1024).toFixed(2) + 'MB'; 3766 } else { 3767 fileSizeDisplay = fileSize.toFixed(2) + fileSizeUnit; 3768 } 3769 } 3770 } 3771 } 3772 3773 var temphtml = ''; 3774 3775 if(option.type == 'type1') { 3776 if (hasValidFile) { 3777 // íì¼ì´ ìë ê²½ì° 3778 temphtml += '\ 3779 <div class="cl-s-form-group">\ 3780 <input type="text" class="cl-s-form-control valueCheck" value="' + option.val + '" required="required" name="'+orgfield+'" id="input-' + orgfield + '">\ 3781 <div class="cl-s-form-control-register">\ 3782 <p class="file-title text hide">첨ë¶ë íì¼ì´ ììµëë¤.</p>\ 3783 <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>\ 3784 <div class="file-row display-flex align-items-center">\ 3785 <div class="r-flex-left">\ 3786 <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>\ 3787 <div>\ 3788 <p class="file-name">'+fileName+'</p>\ 3789 </div>\ 3790 </div>\ 3791 <div class="r-flex-right">\ 3792 <p class="file-size">'+fileSizeDisplay+'</p>\ 3793 <span class="form-file-delete" data-src="'+filePaths+'">\ 3794 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="15" height="15"><g>
3794<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>\ 3795 </span>\ 3796 </div>\ 3797 </div>\ 3798 </div>\ 3799 </div>\ 3800 '; 3801 } else { 3802 // íì¼ì´ ìë ê²½ì° 3803 temphtml += '\ 3804 <div class="cl-s-form-group">\ 3805 <input type="text" class="cl-s-form-control valueCheck" value="" required="required" name="'+orgfield+'" id="input-' + orgfield + '">\ 3806 <div class="cl-s-form-control-register" >\ 3807 <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>\ 3808 </div>\ 3809 </div>\ 3810 '; 3811 } 3812 } else if(option.type == 'type2') { 3813 if(!option.val){ 3814 temphtml += '\ 3815 <div class="type2 cl-common-form-wrap nonplace-holder '+ (option.val ? 'isdata' : 'nodata') +'" data-jcoltype="fupload" id="member-'+ orgfield + '">\ 3816 <div class="cl-common-form-group">\ 3817 <div class="cl-s-form-group">\ 3818 <input type="text" class="member-info-input form-control cl-s-form-control valueCheck" value="" required="required" name="member-'+orgfield+'" id="member-' + orgfield + '">\ 3819 <div class="cl-s-form-control-register" >\ 3820 <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>\ 3821 </div>\ 3822 </div>\ 3823 </div>'; 3824 } else { 3825 temphtml += '\ 3826 <div class="type2 cl-common-form-wrap nonplace-holder '+ (option.val ? 'isdata' : 'nodata') +'" data-jcoltype="fupload" id="member-'+ orgfield + '">\ 3827 <div class="cl-common-form-group">\ 3828 <div class="cl-s-form-group">\ 3829 <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 + '">\ 3830 <div class="cl-s-form-control-register" >\ 3831 <div class="file-row file-info-layout">\ 3832 <div class="file-left-area">\ 3833 <p class="file-name">'+fileName+'</p>\ 3834 </div>\ 3835 <div class="file-right-area">\ 3836 <span class="file-size">'+fileSizeDisplay+'</span>\ 3837 '+$.umember.fileurlcreate(option.val).download_link+'\ 3838 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 3839 <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"/>\ 3840 </svg>\ 3841 </a>\ 3842 <span class="form-file-delete" data-src="'+filePaths+'">\ 3843 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 3844 <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"/>\ 3845 </svg>\ 3846 </span>\ 3847 </div>\ 3848 </div>\ 3849 <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>
3849' + $.lang[LANG]['register.fileUpload.btn.text'] + '</label></div>\ 3850 </div>\ 3851 </div>\ 3852 </div>'; 3853 } 3854 } 3855 3856 return temphtml; 3857 } 3858 } /*umember end*/ 3859 3860 3861 3862 $(document).on("click", "label[r-fupload-type='file.upload']", function () { 3863 var currentPage = "" 3864 if($(this).closest('.info-modal').length > 0) currentPage = "info"; 3865 else if ($(this).closest(".register_form-wrap").length > 0) currentPage = "register"; 3866 else if ($(this).closest(".account-info").length > 0) currentPage = "mypage"; 3867 3868 3869 var REGISTER_MAX_FILE_NUMBER = 1; 3870 3871 $(" div[data-jcoltype='fupload'] input[type='file']").fileupload({ 3872 url: '/template/register_fupload/upload-file', 3873 dataType: 'json', 3874 async: true, 3875 pasteZone: null, 3876 formData: function() { 3877 // sid ê°ì ê°ì ¸ì¤ê¸° ìí ë¡ì§ 3878 var current_sid = (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : ''); 3879 return [ 3880 {name: 'sid', value: current_sid} 3881 ]; 3882 }, 3883 change : function (e, data) { // íì¼ ì í í íì¸ ë²í¼ í´ë¦í ë change ì¡°ê±´ë¤ íµê³¼í´ì¼ í¨ 3884 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){ 3885 // $(this).showModalFlat($.lang[LANG]['manager.list.member.block.title'], modal_content, true, true, function() { 3886 3887 var modal = $(this).showModalFlat('',$.lang[LANG]['register.file.upload.limit'], modal_content, true, true, function() { 3888 $(document).on('keydown', function(e) { 3889 if(e.keyCode == 27) modal.modal('hide'); 3890 }); 3891 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 3892 return false; 3893 } 3894 // console.log("afaf"); 3895 var maxsize = ""; 3896 if(typeof property != 'undefined' && property) maxsize = (property.VALIDPLAN && $.inArray(property.VALIDTYPE,['BN','SM']) > -1) ? 104857600 : 10485760; 3897 else if(typeof VALIDTYPE != 'undefined' && VALIDTYPE) maxsize = ($.inArray(VALIDTYPE,["BUSNESS","SHOPPING"]) > -1) ? 104857600 : 10485760; 3898 // console.log(maxsize); 3899 var flag = true; 3900 $.each(data.files, function(idx, file) { 3901 var filesize = file.size; 3902 if(file.size > maxsize) { 3903 filesize = (filesize/1024/1024).toFixed(1); 3904 if(maxsize == 104857600) err = $.lang[LANG]['editor.upload.max.100'] + $.lang[LANG]['editor.upload.max.2']; 3905 else err = $.lang[LANG]['editor.upload.max.1'] + $.lang[LANG]['editor.upload.max.2']; 3906 3907 $('.flat-modal').addClass('hide'); 3908 $('.modal-backdrop').addClass('hide'); 3909 3910 var modal = $(this).showModalFlat('', err,true,false,function(){ 3911 3912 $(document).on('keydown', function(e) { 3913 if(e.keyCode == 27) modal.modal('hide'); 3914 }); 3915 $('.flat-modal').removeClass('hide'); 3916 $('.modal-backdrop').removeClass('hide'); 3917 3918 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3919 $('.flat-modal').removeClass('hide'); 3920 $('.modal-backdrop').removeClass('hide'); 3921 3922 }); 3923 3924 3925 flag = false; 3926 return false; 3927 } 3928 }); 3929 3930 if(!flag) return false; 3931 }, 3932 add: function(e,data) { // ìë²ì ì ë¡ë ì¼ë¨ í¨ 3933 var r = $.upload_add(e,data,'register_flink'); 3934 // r ê°ì²´ì submitì´ falseì´ê³ err ë©ìì§ê° ìë ê²½ì° ìë¬ íì ì ëì°ë ì²ë¦¬ ììì ëë¤. 3935 if (r && r.submit === false && r.err) { 3936 $('.flat-modal').addClass('hide'); 3937 $('.modal-backdrop').addClass('hide'); 3938 } 3939 3940 if(r.submit) { 3941 $('#loading').css('left','-100%'); 3942 $.processON(); 3943 data.submit(); 3944 3945 // var jqXHR = data.submit(); 3946 } else { 3947 3948 3949 3950 var modal = $(this).showModalFlat('', r.err,true,false,function(){ 3951 $(document).on('keydown', function(e) { 3952 if(e.keyCode == 27) modal.modal('hide'); 3953 }); 3954 $('.flat-modal').removeClass('hide'); 3955 $('.modal-backdrop').removeClass('hide'); 3956 3957 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3958 $('.flat-modal').removeClass('hide'); 3959 $('.modal-backdrop').removeClass('hide'); 3960 3961 }); 3962 } 3963 }, 3964 done: function (e, data) { 3965 if(typeof data.result.error != 'undefined' && data.result.error) { 3966 // alert(data.result.error); 3967 3968 var modal = $(this).showModalFlat('', data.result.error,true,false,function(){ 3969 3970 $(document).on('keydown', function(e) { 3971 if(e.keyCode == 27) modal.modal('hide'); 3972 }); 3973 $('.flat-modal').removeClass('hide'); 3974 $('.modal-backdrop').removeClass('hide'); 3975 3976 },'ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn',false,function(){ 3977 $('.flat-modal').removeClass('hide'); 3978 $('.modal-backdrop').removeClass('hide'); 3979 3980 });
3981 // $('.progress .progress-bar').css('width','0%'); 3982 $.processOFF(); 3983 return; 3984 } 3985 if(typeof data.result.file == 'undefined' || !data.result.file || typeof data.result.uploaded == 'undefined' || !data.result.uploaded) { 3986 3987 3988 var modal = $(this).showModalFlat('', $.lang[LANG]['form.file.upload.disabled'],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 $.processOFF(); 4002 return; 4003 } 4004 4005 if(data.result.uploaded) { 4006 var flink_s = (data.result.uploaded.file_size) ? Number(data.result.uploaded.file_size) : 0, 4007 flink_unit = (flink_s > 1024) ? 'MB' : 'KB', 4008 flink_size = (flink_s > 1024) ? flink_s/1024 : flink_s; 4009 4010 var uploaded = data.result.uploaded; 4011 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>'; 4012 if(uploaded.file_type.indexOf('image/') > -1 && uploaded.thumbnail_url) { 4013 thumb = '<img src="' + uploaded.thumbnail_url + '">'; 4014 } 4015 4016 //$(this).closest(".cl-s-etc-val").find("input[type='text']").remove(); 4017 $(this).closest("[data-jcoltype='fupload']").find(".valueCheck").val(data.result.uploaded.orig_name + '||' + data.result.uploaded.file_size + 'KB' + '||' + data.result.file); 4018 $(this).closest(".cl-s-form-wrap").removeClass("empty"); 4019 4020 switch(currentPage){ 4021 case "mypage" : 4022 case "register" : 4023 var fileRow = '\ 4024 <div class="file-row display-flex align-items-center">\ 4025 <div class="r-flex-left">\ 4026 <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>\ 4027 <div>\ 4028 <p class="file-name">'+uploaded.orig_name+'</p>\ 4029 </div>\ 4030 </div>\ 4031 <div class="r-flex-right">\ 4032 <p class="file-size">'+flink_size.toFixed(2) + flink_unit+'</p>\ 4033 <span class="form-file-delete" data-src="'+uploaded.file_name+'">\ 4034 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="15" height="15"><g>
4034<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>\ 4035 </span>\ 4036 </div>\ 4037 </div>\ 4038 '; 4039 break; 4040 4041 case "info" : 4042 // íì¼ ì 보를 ì¡°í©íì¬ ë¤ì´ë¡ë ë§í¬ ìì± 4043 var file_info_str = uploaded.orig_name + '||' + uploaded.file_size + 'KB' + '||' + data.result.file; 4044 var fileResult = $.umember.fileurlcreate(file_info_str); 4045 var download_link = fileResult.download_link; 4046 4047 var fileRow = '\ 4048 <div class="file-row file-info-layout">\ 4049 <div class="file-left-area">\ 4050 <p class="file-name">'+uploaded.orig_name+'</p>\ 4051 </div>\ 4052 <div class="file-right-area">\ 4053 <span class="file-size">'+flink_size.toFixed(2) + flink_unit+'</span>\ 4054 '+download_link+'\ 4055 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 4056 <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"/>\ 4057 </svg>\ 4058 </a>\ 4059 <span class="form-file-delete" data-src="'+uploaded.file_name+'">\ 4060 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">\ 4061 <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"/>\ 4062 </svg>\ 4063 </span>\ 4064 </div>\ 4065 </div>\ 4066 '; 4067 break; 4068 } 4069 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register").append(fileRow); 4070 $(this).closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').addClass('hide'); 4071 4072 $(this).closest("[data-jcoltype='fupload']").addClass('isdata'); 4073 $(this).closest("[data-jcoltype='fupload']").removeClass('nodata'); 4074 } 4075 4076 if($(this).closest("[data-jcoltype='fupload']").find('.file-row').length >= REGISTER_MAX_FILE_NUMBER) { 4077 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register").find('label').addClass('disabled'); 4078 $(this).closest("[data-jcoltype='fupload'] .cl-s-form-control-register ").find('input[type="file"]').prop('disabled', true); 4079 4080 var $inputElement = $(this).closest("[data-jcoltype='fupload']").find('.valueCheck'); 4081 $inputElement.attr('data-etcidx', ''); 4082 $inputElement.attr('data-id', ''); 4083 $inputElement.attr('data-file-name', ''); 4084 } 4085 $.processOFF(); 4086 // $('#loading').css('left','50%'); 4087 }, 4088 }).prop('disabled', !$.support.fileInput) 4089 .parent().addClass($.support.fileInput ? undefined : 'disabled'); 4090 }); 4091 4092 $(document).on("click", "div[data-jcoltype='fupload'] .form-file-delete", function() { 4093 var REGISTER_MAX_FILE_NUMBER = 1; 4094 var $elem = $(this); 4095 4096 var $label = $(this).closest("[data-jcoltype='fupload']").find('label'); 4097 var $inputFile = $(this).closest("[data-jcoltype='fupload']").find('input[type="file"]'); 4098 var etcIdx = $(this).closest("[data-jcoltype='fupload']").find('.valueCheck').attr('name'); 4099 etcIdx = etcIdx.replace('member-', ''); 4100 var directDeleteFlag = false; 4101 var $closestForm = $(this).closest('form[name="myinfo_form"]'); 4102 var id = ""; 4103 4104 if( $closestForm.length > 0 && $closestForm.attr('action') === '/_myinfo_proc') { 4105 directDeleteFlag = true; 4106 id = $(this).closest($closestForm).find('[name="email"]').val(); 4107 } else if (($(this).closest(".mng-modal-body").length > 0)){ 4108 directDeleteFlag = true; 4109 id = $(this).closest(".mng-modal-body").find(".member-info-input").val(); 4110 } 4111 4112 if(directDeleteFlag) { 4113 4114 var $inputElement = $elem.closest("[data-jcoltype='fupload']").find('.valueCheck');
4115 $inputElement.attr('data-etcidx', etcIdx); 4116 $inputElement.attr('data-id', id || ''); 4117 $inputElement.attr('data-file-name', $elem.data('src')); 4118 4119 // íì¼ ì ë¡ë ìí ì ë°ì´í¸ 4120 var fileRowCnt = $elem.closest("[data-jcoltype='fupload']").find('.file-row').length; 4121 $elem.closest("[data-jcoltype='fupload']").find(".valueCheck").attr('value', ''); 4122 4123 $elem.closest("[data-jcoltype='fupload']").addClass('nodata'); 4124 $elem.closest("[data-jcoltype='fupload']").removeClass('isdata'); 4125 $elem.closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').removeClass('hide'); 4126 4127 if($elem.closest("[data-jcoltype='fupload']").hasClass("type2")) { 4128 $elem.closest("[data-jcoltype='fupload']").removeClass("isdata"); 4129 $elem.closest("[data-jcoltype='fupload']").addClass("nodata"); 4130 } 4131 if(fileRowCnt - 1 < REGISTER_MAX_FILE_NUMBER) { 4132 $label.removeClass('disabled'); 4133 $inputFile.prop('disabled', false); 4134 } 4135 $elem.closest('.file-row').remove(); 4136 4137 // íì¸ ë©ìì§ 4138 4139 } else { 4140 if(confirm(directDeleteFlag ? $.lang[LANG]['upload.file.confirm.delete'] : $.lang[LANG]['form.file.confirm.delete'])) { 4141 4142 $.ajax({ 4143 url:"/template/register_fupload/delete-file", 4144 type:"post", 4145 async: true, 4146 beforeSend: function() { 4147 $.processON(); 4148 }, 4149 data:{ 4150 "s": $elem.data("src"), 4151 "directDeleteflag" : directDeleteFlag , 4152 "etcIdx" : etcIdx, 4153 "id" : id || "", 4154 "sid": (typeof property !== 'undefined' && property.SID) ? property.SID : (typeof SID !== 'undefined' ? SID : '') 4155 }, 4156 dataType:"json", 4157 success:function() { 4158 var fileRowCnt = $elem.closest("[data-jcoltype='fupload']").find('.file-row').length; 4159 $elem.closest("[data-jcoltype='fupload']").find(".valueCheck").attr('value', ''); 4160 if(fileRowCnt > 1) { 4161 $elem.closest("[data-jcoltype='fupload']").find('.file-uploaded-number').text('(' + (fileRowCnt - 1) + '/' + REGISTER_MAX_FILE_NUMBER + ')'); 4162 } else { 4163 $elem.closest("[data-jcoltype='fupload']").addClass('nodata'); 4164 $elem.closest("[data-jcoltype='fupload']").removeClass('isdata'); 4165 $elem.closest("[data-jcoltype='fupload']").find('label[r-fupload-type="file.upload"]').removeClass('hide'); 4166 4167 if($elem.closest("[data-jcoltype='fupload']").hasClass("type2")) { 4168 $elem.closest("[data-jcoltype='fupload']").removeClass("isdata"); 4169 $elem.closest("[data-jcoltype='fupload']").addClass("nodata"); 4170 } 4171 } 4172 4173 if(fileRowCnt - 1 < REGISTER_MAX_FILE_NUMBER) { 4174 $label.removeClass('disabled'); 4175 $inputFile.prop('disabled', false); 4176 } 4177 }, 4178 complete: function() { 4179 $elem.closest('.file-row').remove(); 4180 $.processOFF(); 4181 } 4182 }); 4183 } 4184 } 4185 }); 4186 // $.fixbtnConfig = { 4187 // html: function(e){ 4188 // // console.log('fixbtnConfig html'); 4189 4190 // var $this = ($('.siteLANG').has(e.target).length || $(e.target).hasClass('siteLANG')) ? $('.el-menu .siteLANG') : $(e.target), 4191 // fixbtnPosition = $.fixbtnConfig.position($this), 4192 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false, 4193 // fh_type = $('header.navbar[data-fixtype]').attr('data-fh-type'), 4194 // fixtypeNum = $('header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 4195 // fixtypeArr = ['01','02','03','08'], 4196 // edit_html = '<div class="fixbtn_wrap"><span class="fixbtn_edit">' + clSVG('block-config',15,15) + '</span></div>', 4197 // checktarget = $.fixbtnConfig.checkTarget($this); 4198 4199 // if(checktarget.indexOf('FixedMenu')>-1) { 4200 // if(checkSidebar) $('.navbar-fheader[data-fixtype] .cl-fixed-menu').prepend(edit_html); 4201 // else $('.navbar-fheader[data-fixtype] .cl-fixed-menu').before(edit_html); 4202 // } else { 4203 // $('.element [data-fixtype^="sidebar_"] .siteLANG.cl-fixbtn').prepend(edit_html); 4204 // } 4205 4206 // $('.fixbtn_wrap').css('left',fixbtnPosition.left+'px'); 4207 4208 // if(checkSidebar && $.inArray(fixtypeNum, fixtypeArr) > -1) $('.fixbtn_wrap').css('top',fixbtnPosition.top+'px'); 4209 // if(!checkSidebar) $('.fixbtn_wrap').css('height',fixbtnPosition.height+'px');
4210 // if(!checkSidebar && (fh_type=='top')) $('header.navbar[data-fixtype]').find('.cl-fixed-menu').css('padding-left','50px'); 4211 // }, 4212 // position: function($this){ 4213 // // console.log('fixbtnConfig position'); 4214 // if((window.innerWidth < 769 && typeof MODE == 'undefined')) return false; 4215 // var height_arr = {}, 4216 // fh_type = ($('c').attr('data-fh-type')) ? $('header.navbar[data-fixtype]').attr('data-fh-type') : 'top', 4217 // fixtextalign = ($('header.navbar[data-fixtype]').attr('data-fixtextalign')) ? $('header.navbar[data-fixtype]').attr('data-fixtextalign') : 'center', 4218 // fixtypeNum = $('header.navbar').attr('data-fixtype').replace(/(top|sidebar)\_/gi,''), 4219 // fixtypeArr = ['01','02','03','08'], 4220 // checkSlang = ($('.cl-fixbtn.siteLANG').length > 0) ? true : false, 4221 // checkFixedMenu = ($('.cl-fixed-menu').length > 0) ? true : false, 4222 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false, 4223 // checktarget = $.fixbtnConfig.checkTarget($this); 4224 4225 // $this = (checktarget.indexOf('FixedMenu')>-1) ? $('.element header.navbar[data-fixtype] .cl-fixed-menu') : $('.element [data-fixtype^="sidebar_"] .siteLANG.cl-fixbtn'); 4226 4227 // 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') : '', 4228 // width_val = ($cl_fixbtn) ? $cl_fixbtn.width() : 0, 4229 // clfixbtn_eq = (fixtextalign=='left' && checkSidebar && !$this.hasClass('siteLANG')) ? ($cl_fixbtn ? $cl_fixbtn.last() : $cl_fixbtn.first()) : ($this.hasClass('siteLANG') ? '' : $cl_fixbtn.first()), 4230 // $selector = $this.hasClass('siteLANG') ? $this.find('.cl-lang').offset().left.toFixed(0) : 4231 // ( $cl_fixbtn ? ((clfixbtn_eq.find('> a:visible').length>0) ? clfixbtn_eq.find('> a:visible').offset().left.toFixed(0) : 0) : 0), 4232 // leftPosCal = (checkSidebar) ? 50 : 47, 4233 // top_cal = ''; 4234 4235 // $selector = Number($selector); 4236 4237 // //ì¬ì´ëë° ì¸ë¡ëìì¸ íì¥ê¸°ë¥ë²í¼(01,02,03,08) => a íê·¸ width ìµëê° êµ¬í기 4238 // if(checkSidebar && ($.inArray(fixtypeNum, fixtypeArr) > -1) && !$this.hasClass('siteLANG')) { 4239 // var width_arr = [], 4240 // selector_arr = []; 4241 4242 // $cl_fixbtn.find('> a:visible').each(function(){ 4243 // var w_val = $(this).width(); 4244 // if(!top_cal) top_cal = Number(($(this).parents('li.cl-fixbtn.cl-visible').height() - 25) / 2); 4245 4246 // width_arr.push(w_val); 4247 // selector_arr.push($(this)); 4248 // }); 4249 4250 // var w_max = Math.max(...width_arr), 4251 // w_index = width_arr.indexOf(w_max); 4252 4253 // $selector = Number($(selector_arr[w_index]).offset().left.toFixed(0)); 4254 4255 // width_val = w_max; 4256 // } 4257 4258 // 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), 4259 // 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()); 4260 4261 // height_arr = { 4262 // 'left' : fixed_left, 4263 // 'height' : fixed_height, 4264 // 'top' : top_cal 4265 // } 4266 4267 // return height_arr; 4268 // }, 4269 // checkTarget : function($this) { 4270 // // console.log('fixbtnConfig checkTarget'); 4271 // var checkTarget = '', 4272 // checkSidebar = ($('.navbar-fheader').hasClass('sidebar')) ? true : false; 4273 4274 // if(checkSidebar) { 4275 // checkTarget = ($this.has($('.siteLANG')).length>0 || $this.hasClass('siteLANG')) ? 'sidebarSiteLang' : 'sidebarFixedMenu'; 4276 // } else { 4277 // checkTarget = 'topFixedMenu' 4278 // } 4279 4280 // return checkTarget; 4281 // } 4282 // } 4283 4284 var setLoginLogoutAttribute = function(check_login,nav,display) { 4285 if(!check_login) { 4286 nav.find('.siteUM').removeClass('dropdown').find('.cl-login').show().removeClass(display).addClass(display); 4287 nav.find('.siteUM').find('.cl-logout').hide(); 4288 } else { 4289 nav.find('.siteUM').find('.cl-login').hide(); 4290 nav.find('.siteUM').find('.cl-logout').show(); 4291 nav.find('.siteUM').find('.dropdown-menu').remove(); 4292 } 4293 } 4294 4295 var getJoinCollectionsList = function(sid) { 4296 var returnHtml = ''; 4297 $.ajax({ 4298 url: '/umember/collections', 4299 type: 'post', 4300 data: { sid : sid }, 4301 dataType: 'html', 4302 success: function (list_html) { 4303 // $('.order-list-area').html(list_html); 4304 returnHtml += list_html; 4305 }, error: function () { 4306 4307 }, complete: function () { 4308 // $.processOFF(); 4309 } 4310 }); 4311 4312 return returnHtml; 4313 } 4314 4315 /***********************************************************************************************************************************member-config page START*/ 4316 var activePrev = $('#join-activate').selectpicker('val'); 4317 $('#join-activate, #join-language, #join-approval, #join-display, #join-captcha').live('change', function () { 4318 var key = $(this).attr('id').replace(/join-/gi,''), 4319 val = ($(this).is('select')) ? $(this).val() : $(this).prop('checked'); 4320 4321 $.ajax({ 4322 type: 'POST', 4323 url: '/umember/update/type/condition', 4324 data: { sid : SID, key : key, val : val }, 4325 dataType: 'json', 4326 async: true, 4327 success: function(data) { 4328 if(typeof data.error != 'undefined' && data.error) { 4329 alert(data.error); 4330 return false;
4331 } 4332 if(data.cert_use !== undefined && data.cert_use) { 4333 $('#join-activate').selectpicker('val', activePrev); 4334 var modal_str = $.lang[LANG]['manager.cert.disable.option.txt']; 4335 $(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'); 4336 return false; 4337 } 4338 activePrev = val; 4339 4340 if(val == '0') { 4341 $('#section-top-menu li').addClass('disabled-cert'); 4342 } else { 4343 $('#section-top-menu li').removeClass('disabled-cert'); 4344 } 4345 } 4346 }); 4347 }); 4348 4349 $(document).off('click', '.mng-settings[data-type="collection"] .collection-item-used, .mng-settings[data-type="collection"] .collection-item-optional') 4350 .on('click', '.mng-settings[data-type="collection"] .collection-item-used, .mng-settings[data-type="collection"] .collection-item-optional', function() { 4351 if($(this).closest('.checkboxs').hasClass('disabled')) { 4352 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'); 4353 return false; 4354 } 4355 4356 var cl_val = $(this).prop('checked'), 4357 item_seq = $(this).parents('.collection-item').attr('data-seq'), 4358 jcol_name = $(this).parents('.collection-item').find('.collection-name').text(), 4359 update_data = {}, 4360 jcol_data = {}, 4361 d_index = 0, 4362 check_class = $(this).attr('class').replace(/collection-item-/gi,''); 4363 4364 check_class = (check_class=='optional') ? 'require' : check_class; 4365 4366 jcol_data[0] = { 4367 seq : item_seq, 4368 [check_class] : cl_val.toString() 4369 } 4370 4371 if (check_class === 'used' && cl_val.toString() === 'false' && $(this).closest('.use-option-check').find('.collection-item-optional').prop('checked') === true) { 4372 jcol_data[0]['require'] = 'false'; 4373 $(this).closest('.use-option-check').find('.collection-item-optional').prop('checked', false); 4374 } 4375 if (check_class === 'require' && cl_val.toString() === 'true' && $(this).closest('.use-option-check').find('.collection-item-used').prop('checked') === false) { 4376 jcol_data[0]['used'] = 'true'; 4377 $(this).closest('.use-option-check').find('.collection-item-used').prop('checked', true); 4378 } 4379 4380 $.ajax({ 4381 type: 'POST', 4382 url: '/umember/setJoinCollections/type/jcol_update', 4383 data: { sid: SID, update_data: jcol_data }, 4384 dataType: 'json', 4385 async: true, 4386 success: function(data) { 4387 if(typeof data.error != 'undefined' && data.error) { 4388 alert(data.error); 4389 return false; 4390 } 4391 4392 var slog_val = check_class+'.'+cl_val.toString(), 4393 slog_field = {'field_name':jcol_name}; 4394 setSiteLogs('um.config.collection.new',slog_val,slog_field,'um.config.collection.new'); 4395 }, 4396 complete: function () { 4397 $.processOFF(); 4398 } 4399 }); 4400 }); 4401 4402 $('.cl-s-join-collections-etcwrap[data-jcoltype="memo"] textarea').live({ 4403 focus : function(e){ 4404 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').addClass('etc-mouseEnter'); 4405 if($(this).val()) { 4406 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active').addClass('textarea-active'); 4407 } else { 4408 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active'); 4409 } 4410 }, 4411 focusout : function(e) { 4412 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('etc-mouseEnter'); 4413 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active-text').addClass('textarea-active-text'); 4414 if($(this).val()) { 4415 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active').addClass('textarea-active'); 4416 } else { 4417 $(this).parents('.cl-s-join-collections-etcwrap').find('.cl-s-etc').removeClass('textarea-active'); 4418 } 4419 } 4420 4421 }); 4422 4423 $('.mng-member .mng-settings[data-type="collection"] .collection-add').live('click',function() { 4424 4425 if($('.mng-member .collection-content').find('.collection-item.additem').length>0) { 4426 return false;
4427 } 4428 // if($('.mng-member .collection-content').find('.collection-update').length>0) { 4429 // $('.mng-member .collection-content .collection-update').find('input').focus(); 4430 // return false; 4431 // } 4432 4433 if($('.mng-member .collection-content').find('.collection-item').length==15) $(this).hide(); 4434 if($('.mng-member .collection-content').find('.collection-item').length>16) { 4435 var modal = $(this).showModalFlat('DELETE FIELD', $.lang[LANG]['manager.join.cl.item.max-add'], true, false, '', 'ok'); 4436 return false; 4437 } 4438 4439 var cl_etc_arr = $('.mng-member .collection-content .collection-item').map(function() { 4440 var cl_type = $(this).attr('data-type'); 4441 if(cl_type.match(/^etc/)) return cl_type.replace('etc',''); 4442 }).get().sort(), 4443 cl_etc = $('.collection-content .collection-item').length-6; 4444 4445 for (var i = 0; i < 10; i++) { 4446 if(typeof cl_etc_arr[i] == 'undefined' || parseInt(cl_etc_arr[i]) != (i+1) ) { 4447 cl_etc = i+1; 4448 break; 4449 } 4450 } 4451 4452 var str = collectionItem('',cl_etc); 4453 4454 $('.mng-member .collection-content').append(str) 4455 4456 4457 $('.mng-member .collection-content').find('.collection-item[data-etc="' + cl_etc + '"] .collection-edit').click(); 4458 $('.collection-type-selectbox select[name="jcollection-select-type"]').selectpicker(); 4459 4460 $('.collection-item.additem').find('.collection-config').removeClass('hide').addClass('hide'); 4461 collectionSortable('.mng-member .collection-item'); 4462 4463 }); 4464 4465 4466 4467 4468 $('.mng-member .mng-settings[data-type="collection"] .collection-edit').live('click', function() { 4469 if($('.mng-member .collection-content').find('.collection-update').length > 0 ) { 4470 return false; 4471 } 4472 var selectCl = $(this).closest('.collection-item'), 4473 cl_name = selectCl.find('.collection-name').text(), 4474 input_text = addCollectionInput(cl_name); 4475 4476 selectCl.removeClass('collection-status-edit').addClass('collection-status-edit'); 4477 $('.mng-member .collection-content').removeClass('collection-status-disabled').addClass('collection-status-disabled'); 4478 $(this).parents('.collection-item').siblings().find('.collection-config > .icons').removeClass('hide').addClass('hide'); 4479 // $(input_text).prependTo(selectCl.find('.collection-info')); 4480 // $(input_text).prependTo(selectCl); 4481 4482 // $(this).parents('.collection-item').find('.collection-info .collection-name').hide(); 4483 // $('.mng-member .collection-content').find('.collection-item').css('pointer-events','none'); 4484 // $('.mng-member .collection-content').find('.collection-update-cancel, .collection-update-save, .collection-update-name').css('pointer-events','auto'); 4485 // $('.mng-member .collection-update .collection-update-name').focus(); 4486 $('#join-collections,#mjoin-collections').sortable({cancel: '.collection-item' }); 4487 }); 4488 4489 $('.mng-member .mng-settings[data-type="collection"] .collection-delete').live('click', function() { 4490 var selectCl = $(this).closest('.collection-item'), 4491 cl_etc = (typeof selectCl.attr('data-etc') != 'undefined' && selectCl.attr('data-etc')) ? selectCl.attr('data-etc') : '', 4492 cl_field = 'etc' + cl_etc, 4493 cl_name = selectCl.find('.collection-name').text(), 4494 item_seq = $(this).parents('.collection-item').attr('data-seq'); 4495 4496 var del_modal = $(this).showModalFlat($.lang[LANG]['manager.join.cl.item.delete.title'], $.lang[LANG]['manager.join.cl.item.delete'], true, true, function() { 4497 selectCl.addClass('delete_item'); 4498 4499 $.processON(); 4500 4501 $.ajax({ 4502 type: 'POST', 4503 url: '/umember/setJoinCollections/type/jcol_delete', 4504 data: { sid: SID, d_seq : item_seq }, 4505 dataType: 'json', 4506 async: true, 4507 success: function(data) { 4508 if(typeof data.error != 'undefined' && data.error) { 4509 alert(data.error); 4510 return false; 4511 } 4512 4513 $('.mng-member .collection-content').find('.collection-item[data-etc="'+cl_etc+'"]').remove(); 4514 if($('.mng-member .collection-content').find('.collection-item').length<16) { 4515 $('.mng-member .collection-add').show(); 4516 } 4517 4518 del_modal.modal('hide'); 4519 4520 setSiteLogs('um.config.collection','delete',{'field_name':cl_name,'field':cl_field},'um.config.collection'); 4521 4522 }, 4523 complete: function () { 4524 $.processOFF(); 4525 } 4526 }); 4527 }, 'cancel',$.lang[LANG]['manager.join.cl.item.delete.btn.delete'],'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 4528 }); 4529 4530 4531 $('.mng-member .mng-settings[data-type="collection"] .collection-update-cancel').live('click', function() { 4532 if($('.mng-member .collection-content').find('.collection-item').length<16) $('.mng-member .collection-add').show(); 4533 if(!$(this).closest('.collection-item').find('.collection-name').text()) { 4534 $(this).closest('.collection-item').remove(); 4535 } 4536 $(this).parents('.collection-item').find('.collection-info .collection-name').show(); 4537 $('.mng-member .collection-content').find('.config-error').remove(); 4538 $('.mng-member .collection-content').find('.collection-item').removeAttr('style'); 4539 $(this).closest('.collection-update').remove(); 4540 collectionSortable(); 4541 }); 4542 4543 $('.mng-member .collection-update-save').live('click', function(e) { 4544 var selectCl = $(this).closest('.collection-item'), 4545 cl_etc = (typeof selectCl.attr('data-etc') != 'undefined' && selectCl.attr('data-etc')) ? selectCl.attr('data-etc') : '', 4546 cl_field = 'etc' + cl_etc, 4547 cl_type = selectCl.find('.collection-item-type-select').val(), 4548 cl_name = selectCl.find('.collection-update-name').val().trim(), 4549 cl_prev = selectCl.find('.collection-name').text().trim(), 4550 regexp = /^[ã±-ã ê°-í£ã -ã £a-zA-Z0-9\# ]+$/i, 4551 error_str = ''; 4552 4553 4554 $('.collection-content .config-error').remove(); 4555 $(this).parents('.collection-item').find('.collection-info .collection-name').show(); 4556 4557 if(cl_prev == cl_name) { 4558 if(selectCl.hasClass('additem')) { 4559 error_str = $.lang[LANG]['manager.join.cl.item.name.enter']; 4560 } else { 4561 $('.collection-content').find('.collection-item').removeAttr('style'); 4562 $('.collection-content').find('.collection-update').remove(); 4563 return false;
4564 } 4565 } 4566 4567 4568 if(cl_name.length == 0) error_str = $.lang[LANG]['board.enter-group-name']; 4569 else if(checkEmojis(cl_name)) error_str = $.lang[LANG]['config.unable.emoji']; 4570 else if(!regexp.test(cl_name)) error_str = $.lang[LANG]['board.allowed-chars']; 4571 else if(cl_name.length>20) error_str = $.lang[LANG]['board.enter-max-chars']; 4572 else if(cl_prev == cl_name) { 4573 if(selectCl.hasClass('additem')) { 4574 error_str = $.lang[LANG]['manager.join.cl.item.name.enter']; 4575 } else { 4576 $('.collection-content').find('.collection-item').removeAttr('style'); 4577 $('.collection-content').find('.collection-update').remove(); 4578 return false; 4579 } 4580 } else { 4581 var cl_name_list = $('.collection-content').find('.collection-name').map(function() { return $(this).text().trim(); }).get(); 4582 if($.inArray(cl_name,cl_name_list) > -1) { 4583 error_str = $.lang[LANG]['manager.join.cl.item.name.inuse']; 4584 } 4585 } 4586 4587 if(error_str.length > 0) { 4588 e.preventDefault(); 4589 $(this).parents('.collection-item').find('.collection-info .collection-name').hide(); 4590 selectCl.append('<div class="config-error collection-edit">' + error_str + '</div>'); 4591 return false; 4592 } 4593 4594 var collections = {}; 4595 $('.mng-member .collection-content').children('.collection-item').each(function() { 4596 var field = $(this).attr('data-type'), 4597 name = (field == cl_field) ? cl_name : $(this).find('.collection-name').text().trim(), 4598 type = (field == cl_field) ? cl_type : $(this).find('.collection-item-type-select').val(), 4599 used = $(this).find('.collection-item-used').prop('checked'), 4600 optional = $(this).find('.collection-item-optional').prop('checked'); 4601 4602 collections[field] = { 4603 'used' : used, 4604 'optional' : optional, 4605 'name' : name, 4606 'type' : type 4607 }; 4608 }); 4609 4610 $.ajax({ 4611 type: 'POST', 4612 url: '/umember/update/type/condition', 4613 data: { sid: SID, key: 'collections_all', val: JSON.stringify(collections) }, 4614 dataType: 'json', 4615 async: true, 4616 success: function(data) { 4617 if(typeof data.error != 'undefined' && data.error) { 4618 alert(data.error); 4619 return false; 4620 } 4621 4622 if(selectCl.hasClass('additem')) { 4623 selectCl.removeClass('additem'); 4624 selectCl.find('#collection-item-used-additem').removeAttr('id').attr('id','collection-item-used-'+cl_field); 4625 // selectCl.find('label[for="collection-item-used-additem"]').removeAttr('for').attr('for','collection-item-used-'+cl_field); 4626 selectCl.find('#collection-item-optional-additem').removeAttr('id').attr('id','collection-item-optional-'+cl_field); 4627 // selectCl.find('label[for="collection-item-optional-additem"]').removeAttr('for').attr('for','collection-item-optional-'+cl_field); 4628 } 4629 selectCl.find('.collection-name').text(cl_name); 4630 4631 $('.collection-content').find('.config-error').remove(); 4632 $('.collection-content').find('.collection-item').removeAttr('style'); 4633 selectCl.find('.collection-update').remove(); 4634 collectionSortable(); 4635 4636 4637 var checkAdd = (cl_prev == '') ? true : false, 4638 slog_val = (checkAdd) ? 'add' : 'edit',
4639 slog_field = (checkAdd) ? {'field_name':cl_name,'field':cl_field} : {'field_name':cl_prev,'field':cl_field,'before':cl_prev,'after':cl_name}; 4640 setSiteLogs('um.config.collection',slog_val,slog_field,'um.config.collection'); 4641 4642 } 4643 }); 4644 }); 4645 4646 4647 $('#config-acces-terms, #config-privacy, #config-privacy-join, #config-privacy-nonmem, #config-description').live('blur', function(e) { 4648 var blur_id = $(this).attr('id'), 4649 key = blur_id.replace(/config-/gi,'').replace(/-/gi,'_'), 4650 val = $(this).val().trim(), 4651 mng_settings_el = $(this).closest('.mng-settings'); 4652 4653 if(key.charAt(0) == 'm') key = key.substring(1,key.length); 4654 4655 $.ajax({ 4656 type: 'POST', 4657 url: '/umember/update/type/condition', 4658 data: { sid : SID, key : key, val : val }, 4659 dataType: 'json', 4660 async: true, 4661 success: function(data) { 4662 if(typeof data.error != 'undefined' && data.error) { 4663 alert(data.error); 4664 return false; 4665 } 4666 mngShowToast('check', $.lang[LANG]['manager.check.save.text'] , mng_settings_el); 4667 4668 if(typeof data.val != 'undefined' && val == '') { 4669 $('#'+blur_id).val(data.val); 4670 } 4671 } 4672 }); 4673 4674 }); 4675 4676 4677 /*ê°ì ìì§ í목 : type ë³ê²½ 기ë¥(ì¶í) ì¬ì©ëë ë¶ë¶.*/ 4678 $('.mng-settings[data-type="collection"] .collection-toggle').live('click', function() { 4679 $(this).closest('.collection-item').toggleClass('item-content-open'); 4680 if($(this).closest('.collection-item').hasClass('item-content-open')) { 4681 $(this).removeClass('fa-angle-down').addClass('fa-angle-up'); 4682 // $(this).closest('.collection-item').find('.collection-item-content').removeAttr('style'); 4683 } else { 4684 $(this).removeClass('fa-angle-up').addClass('fa-angle-down'); 4685 // $(this).closest('.collection-item').find('.collection-item-content').css('display','none'); 4686 } 4687 }); 4688 4689 4690 $('.mng-siteUM-modal .profile-image-wrap,#my-image-modal .profile-image-wrap').live({ 4691 click: function() { 4692 var checkFirstStep = ($(this).find('#profileMyImg').length > 0) ? false : true; 4693 if(checkFirstStep) $('.mng-siteUM-modal .my-image-edit').click(); 4694 else $('#profileUMFileupload').click(); 4695 } 4696 }); 4697 4698 $('#profileUMFileupload').live({ 4699 click: function() { 4700 4701 var sid = $('#my-image-modal').attr('data-sid'), 4702 uid = $('#my-image-modal').attr('data-uid'); 4703 4704 $(this).fileupload({ 4705 url: '/umember/update/type/myimage/sid/'+sid+'/uid/'+uid, 4706 dataType: 'json', 4707 pasteZone: null, 4708 async: true, 4709 add: function(e, data) { 4710 $('#loading').css('left','-100%'); 4711 $.processON(); 4712 data.submit(); 4713 }, 4714 done: function(e, data) { 4715 if(typeof data.result.error != 'undefined' && data.result.error) { 4716 alert(data.result.error); 4717 $('.progress .progress-bar').css('width','0%'); 4718 $.processOFF(); 4719 return; 4720 } 4721 if(data.result.src) { 4722 $('.profile-image-wrap .my-image').prop('src',data.result.src); 4723 if($('.dashboard._admin_dashboard').length > 0) $('#dashboard-image-top image').attr('xlink:href',data.result.src); 4724 if($('#mobile-nav').length > 0) $('#mobile-nav .login-profile img').prop('src',data.result.src); 4725 } 4726 $.processOFF(); 4727 $('#loading').css('left','50%'); 4728 }, 4729 progressall: function(e, data) { 4730 var progress = parseInt(data.loaded / data.total * 100, 10); 4731 $('.progress .progress-bar').css( 4732 'width', 4733 progress + '%' 4734 ); 4735 }, 4736 }).prop('disabled', !$.support.fileInput) 4737 .parent().addClass($.support.fileInput ? undefined : 'disabled'); 4738 4739 } 4740 }); 4741 4742 4743 $('#uJoin').live('click', function() { 4744 var joinModal = $('#join-modal'), 4745 approval = $(this).attr('data-approval'), 4746 input_data = {}; 4747 4748 if($(this).closest('#join-modal-preview').length != 0) { 4749 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 4750 return false; 4751 } 4752 4753 joinModal.find('.form-group').each(function(i) { 4754 var inputEL = $(this).find('input.form-control'), 4755 errorEL = $(this).find('.error'), 4756 field = inputEL.attr('id').trim().replace(/input-/,''), 4757 val = inputEL.val(), 4758 optional = $(this).hasClass('optional'), 4759 empty_class = (optional && val.trim().length == 0) ? 'empty' : '', 4760 error_str = (optional && val.trim().length == 0) ? $.lang[LANG]['manager.check.required.message'] : ''; 4761 4762 if(!error_str && val.trim().length > 0) { 4763 switch(field) { 4764 case 'password-checked': 4765 if(joinModal.find('#input-password').val().trim() != val.trim()) { 4766 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 4767 } 4768 break; 4769 4770 default: 4771 if(typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) { 4772 var pattern = COLLECTION_REGEX[field]['pattern_j'], 4773 reg = new RegExp(pattern); 4774 if(!reg.test(val)) error_str = COLLECTION_REGEX[field]['error']; 4775 } 4776 break; 4777 } 4778 } 4779 4780 4781 if(error_str.length > 0) { 4782 if(errorEL.length > 0) errorEL.text(error_str); 4783 else $(this).append('<span class="error ' + empty_class + '">' + error_str + '</span>'); 4784 4785 if(joinModal.find('.focus').length == 0) inputEL.focus(); 4786 } else { 4787 errorEL.remove(); 4788 if(field == 'id') val = val.toLowerCase(); 4789 if(field == 'password') val = hex_md5(val); 4790 if(field == 'email') val = val.toLowerCase(); 4791 4792 if(field != 'password-checked') input_data[field] = val; 4793 } 4794 4795 input_data['wr_key'] = $("#wr_key").val(); 4796 }); 4797 4798 if(!joinModal.find('.kcaptcha-wrap').hasClass('hide')) { 4799 var captcha = joinModal.find('#wr_key'), 4800 val = captcha.val(), 4801 captcha_error = captcha.next('label.error'), 4802 error_str = ''; 4803 4804 if( val.trim().length == 0 ) { 4805 error_str = $.lang[LANG]['manager.join.regexp.captcha']; 4806 } else if( val && (Base64.encode(val.trim()) != md5_norobot_key)) { 4807 error_str = $.lang[LANG]['manager.join.regexp.captcha.wrong']; 4808 } 4809 4810 if( error_str.length > 0 ) { 4811 if(captcha_error.length > 0) captcha_error.text(error_str); 4812 else captcha.after('<label class="error">' + error_str + '</label>'); 4813 4814 if(joinModal.find('.focus').length == 0) captcha.focus(); 4815 } else { 4816 captcha_error.remove(); 4817 } 4818 } 4819 4820 4821 if(joinModal.find('.error').length == 0) { 4822 4823 var sid = joinModal.attr('data-sid'); 4824 $.post('/umember/join/update', { sid : sid, data : JSON.stringify(input_data) }, function(data) { 4825 if(typeof data.error != 'undefined' && data.error) { 4826 $.each(data.error, function(key,str) {
4827 if(joinModal.find('#input-'+key).length > 0 ) { 4828 joinModal.find('#input-'+key).focus(); 4829 joinModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4830 } else { alert(str,'/manager/member'); return false; } 4831 }); 4832 if(joinModal.find('.error').length > 0) return false; 4833 } 4834 4835 if(typeof userSiteJoinCallback == 'function') 4836 userSiteJoinCallback(); 4837 4838 var okModal = $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.join.success.'+approval], true, false, '', $.lang[LANG]['config.close']); 4839 $.umember.joinModalInit(); 4840 joinModal.modal('hide'); 4841 },'json'); 4842 4843 } 4844 4845 4846 }); 4847 4848 4849 $('.view-join-textarea').live('click', function() { 4850 var sid = $(this).closest('.modal-default').attr('data-sid'), 4851 type = $(this).attr('data-type').replace(/-/gi,'_'); 4852 4853 $.post('/umember/get/type/join', { sid : sid, field : type }, function(data) { 4854 if(typeof data.error != 'undefined' && data.error) { 4855 alert(data.error); 4856 return false; 4857 } 4858 4859 $('#join-textarea').html(data); 4860 if($('#join-textarea').css('display') == 'none') $('#join-textarea').fadeIn(); 4861 4862 }, 'json'); 4863 4864 }); 4865 4866 4867 $('#uLogin').live('click', function() { 4868 var loginModal = $('#login-modal'), 4869 input_data = {}; 4870 4871 loginModal.find('.form-group').each(function(i) { 4872 var inputEL = $(this).find('input.form-control'), 4873 errorEL = $(this).find('.error'), 4874 field = inputEL.attr('id').trim().replace(/input-/,''), 4875 val = inputEL.val(), 4876 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.'+field+'.input'] : ''; 4877 4878 if(error_str.length > 0 ) { 4879 if(errorEL.length > 0) errorEL.text(error_str); 4880 else $(this).append('<span class="error">' + error_str + '</span>'); 4881 4882 if(loginModal.find('.focus').length == 0) inputEL.focus(); 4883 } else { 4884 errorEL.remove(); 4885 if(field == 'id') val = val.trim().toLowerCase(); 4886 if(field == 'password') val = hex_md5(val); 4887 input_data[field] = val; 4888 } 4889 }); 4890 4891 if(loginModal.find('.error').length == 0) { 4892 4893 var sid = loginModal.attr('data-sid'); 4894 $.post('/umember/login/in', { sid : sid, data : JSON.stringify(input_data) }, function(data) { 4895 4896 if(typeof data.error != 'undefined' && data.error) { 4897 $.each(data.error, function(key,str) { 4898 if(loginModal.find('#input-'+key).length > 0 ) { 4899 loginModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4900 } else { alert(str,'/manager/member'); return false; } 4901 }); 4902 if(loginModal.find('.error').length > 0) return false; 4903 } 4904 4905 $.umember.loginModalInit(); 4906 $.umember.init(); 4907 loginModal.modal('hide'); 4908 4909 if(data.member.check_login) { 4910 if(typeof data.ss_url != 'undefined' && data.ss_url) { 4911 $.each(data.ss_url, function(i,url) { 4912 $('.dsgn-body').after('<img class="auth-img" src="' + url + '">'); 4913 }); 4914 } 4915 4916 if(typeof data.ga_uid != 'undefined' && data.ga_uid) { 4917 localStorage.setItem('googleAnalyticsUID'+sid, data.ga_uid); 4918 } 4919 } 4920 4921 if($('.menu-lock-block').length > 0 || $('.forum-view').length > 0) location.reload(); 4922 if($('.element[data-type="latest"]').find('.latest-table-loop').hasClass('latest-table-empty')) location.reload(); 4923 if($('.element[data-type="forum"]').length > 0) { 4924 if( 4925 $('.element[data-type="forum"]').find('.tpl-forum-list-title[data-option="S"]').length > 0 || 4926 $('.element[data-type="forum"]').find('.container .table tr > td[colspan="10"]').length > 0 || 4927 $('.element[data-type="forum"]').find('.tpl-forum-write:contains(login)').length > 0 4928 ) location.reload(); 4929 } 4930 4931 $('.gallery-item').each(function () { 4932 if ($(this).hasClass('nonePrice')) { 4933 location.reload(); 4934 } 4935 }); 4936 4937 },'json'); 4938 4939 } 4940 4941 }); 4942 4943 $('#uForgotID').live('click', function() { 4944 var forgotIDModal = $('#forgotid-modal'), 4945 input_data = ''; 4946 4947 var groupEL = forgotIDModal.find('.form-group'), 4948 errorEL = groupEL.find('.error'), 4949 val = forgotIDModal.find('input.form-control').val(), 4950 regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 4951 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.email.input'] : ''; 4952 4953 if(error_str.length == 0 && !regexp.test(val)) { 4954 error_str = $.lang[LANG]['siteum.regexp.check.email']; 4955 } 4956 4957 if(error_str.length > 0 ) { 4958 if(errorEL.length > 0) errorEL.text(error_str); 4959 else groupEL.append('<span class="error">' + error_str + '</span>'); 4960 4961 groupEL.find('input').focus(); 4962 } else { 4963 errorEL.remove(); 4964 input_data = val.toLowerCase(); 4965 } 4966 4967 if(forgotIDModal.find('.error').length == 0) { 4968 4969 $.post('/umember/password/forgot', { fn:'id', email:input_data }, function(data) { 4970 if(typeof data.error != 'undefined' && data.error) { 4971 $.each(data.error, function(key,str) {
4972 if(forgotIDModal.find('#input-'+key).length > 0 ) { 4973 forgotIDModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 4974 forgotIDModal.find('#input-'+key).focus(); 4975 } else { return false; } 4976 }); 4977 if(forgotIDModal.find('.error').length > 0) return false; 4978 } 4979 4980 forgotIDModal.find('input.form-control').val(''); 4981 var num = ((data.uid.length/3)*2).toFixed(0), 4982 uid = data.uid.substr(0,num); 4983 for(var i=0; i<(data.uid.length-num); i++) { 4984 uid += '*'; 4985 } 4986 forgotIDModal.find('.modal-body').children(':not(.forgot-id-result)').css({'opacity':0.4}); 4987 forgotIDModal.find('.modal-footer').children('button').css({'opacity':0.4, 'pointer-events':'none'}); 4988 forgotIDModal.find('.modal-body').find('.forgot-id-result').text(uid); 4989 4990 },'json'); 4991 4992 } 4993 4994 }); 4995 4996 $('#uForgotPW').live('click', function() { 4997 var forgotPWModal = $('#forgotpw-modal'), 4998 input_data = {}; 4999 5000 forgotPWModal.find('.form-group').each(function(i) { 5001 var inputEL = $(this).find('input.form-control'), 5002 errorEL = $(this).find('.error'), 5003 field = inputEL.attr('id').trim().replace(/input-/,''), 5004 val = inputEL.val(), 5005 regexp = /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 5006 error_str = (val.trim().length == 0) ? $.lang[LANG]['siteum.regexp.'+field+'.input'] : ''; 5007 5008 if(error_str.length == 0 && field == 'email' && !regexp.test(val)) { 5009 error_str = $.lang[LANG]['siteum.regexp.check.email']; 5010 } 5011 5012 if(error_str.length > 0 ) { 5013 if(errorEL.length > 0) errorEL.text(error_str); 5014 else $(this).append('<span class="error">' + error_str + '</span>'); 5015 5016 if(forgotPWModal.find('.focus').length == 0) inputEL.closest('.form-group').addClass('focus').find('input').focus(); 5017 } else { 5018 errorEL.remove(); 5019 input_data[field] = val.toLowerCase(); 5020 } 5021 }); 5022 5023 if(forgotPWModal.find('.error').length == 0) { 5024 5025 $.post('/umember/password/forgot', { fn:'pw', uid:input_data['id'], email:input_data['email'] }, function(data) { 5026 if(typeof data.error != 'undefined' && data.error) { 5027 $.each(data.error, function(key,str) { 5028 if(forgotPWModal.find('#input-'+key).length > 0 ) { 5029 forgotPWModal.find('#input-'+key).closest('.form-group').append('<span class="error">' + str + '</span>'); 5030 forgotPWModal.find('#input-'+key).focus(); 5031 } else { return false; } 5032 }); 5033 if(forgotPWModal.find('.error').length > 0) return false; 5034 } 5035 forgotPWModal.find('input.form-control').val(''); 5036 forgotPWModal.modal('hide'); 5037 5038 var modal = $(this).showModalFlat('INFORMATION', data.result, true, false, '', 'ok'); 5039 // var modal = $(this).showModalFlat('INFORMATION', '<h3>ì´ë©ì¼ ë°ì¡ ìë£!</h3><p>ë¹ë°ë²í¸ ì¬ì¤ì ë§í¬ íì¸ ë° ë³ê²½ì ìí ì´ë©ì¼ì íì¸íì¸ì.</p>', true, false, '', 'ok'); 5040 5041 },'json'); 5042 5043 } 5044 5045 }); 5046 5047 5048 5049 /* [Fixed menu link] Click*/ 5050 $(` .siteUM .join, 5051 .siteUM .login, 5052 .siteUM .logout, 5053 .siteUM .forgot-id, 5054 .siteUM .forgot-pw, 5055 .siteUM .dashboard, 5056 .siteUM .mypage, 5057 .siteUM-dmenu-wrap .mypage, 5058 .siteUM-dmenu-wrap .logout, 5059 .cl-fixed-menu#fixed-menu .logout.cl-umMenu, 5060 .cl-fixnav-item.loginout a.login, 5061 .cl-fixnav-item.loginout a.logout, 5062 .cl-nav .clnav-mobile-btn.mypage .cl-fixsubnav-item > a.dashboard, 5063 .cl-nav .clnav-mobile-btn.mypage .cl-fixsubnav-item > a.logout, 5064 .clnav-sidemobile .section-area.user > .login, 5065 .clnav-sidemobile .section-area.user > .logout, 5066 .clnav-sidemobile .cl-fixsubnav-item > a.logout, 5067 #mobile-nav .dashboard 5068 `).live({ 5069 click: function(e) { 5070 e.preventDefault(); 5071 5072 if(typeof PAGE_MODE != 'undefined' && PAGE_MODE == 's' && property.SITEFIXEDLANG && property.SITEFIXEDLANG != LANG) { 5073 LANG = property.SITEFIXEDLANG; 5074 } 5075 var sid = (typeof SID != 'undefined' && SID) ? SID : property.SID; 5076 5077 5078 var possible_page = ['s', 'um']; 5079 if(typeof PAGE_MODE != 'undefined' && PAGE_MODE && $.inArray(PAGE_MODE,possible_page) == -1) { 5080 var str = (PAGE_MODE == 'r') ? $.lang[LANG]['manager.check.no-support.render-mode'] : $.lang[LANG]['manager.check.no-support.config-mode']; 5081 if($.clnav.check()) str = ''; 5082 if(str != '') $(this).showModalFlat('INFORMATION',str,true,false,'','ok'); 5083 return false;
5084 } else { 5085 5086 var checkUAdminMode = ($('header').hasClass('_admin')) ? true : false, 5087 s_validtype = (typeof VALIDTYPE != 'undefined' && VALIDTYPE) ? VALIDTYPE : ((typeof property != 'undefined' && property) ? property.VALIDTYPE : ''), 5088 s_siteum = (typeof SITEUM != 'undefined' && SITEUM) ? SITEUM : ((typeof property != 'undefined' && property) ? property.SITEUM : -1), 5089 checkShoppingUM = (!checkUAdminMode && s_validtype == 'SM') ? true : false, 5090 service = (typeof SERVICE == 'undefined') ? ((typeof property == 'undefined') ? '' : property.SERVICE) : SERVICE, 5091 checkGabia = (service.indexOf('gabia') > -1) ? true : false; 5092 5093 if($(this).hasClass('join')) { 5094 5095 var mode = (typeof $(this).attr('data-preview') == 'undefined') ? '' : 'preview'; 5096 if(mode == 'preview') { 5097 var checkUadmin = ($('.mng-dashboard').hasClass('_admin')) ? true : false, 5098 check_url = (checkUadmin) ? '/_admin/dashboard/checkDomainConnect' : '/dashboard/checkDomainConnect', 5099 domains_flag = false; 5100 $.ajax({ 5101 url: check_url, 5102 type:'post', 5103 dataType:'json', 5104 data:{'sid' : SID}, 5105 success:function(data) { 5106 5107 var domain = sid + '.' + getServiceHost(location.host); 5108 if(data.domains_active_list.length) { 5109 domain = data.domains_active_list[0].zone_domain; 5110 } else if(checkUadmin) { 5111 domain = getServiceHost(location.host); 5112 } 5113 5114 var http_str = (checkGabia) ? 'http://' : '//'; 5115 window.open(http_str + domain + '/_register/preview', '_blank'); 5116 } 5117 }); 5118 } else { 5119 location.href = '/_register'; 5120 return false; 5121 } 5122 5123 /* 5124 if(checkShoppingUM) { 5125 location.href = '/_register'; 5126 return false; 5127 } 5128 5129 var mode = (typeof $(this).attr('data-preview') == 'undefined') ? '' : 'preview'; 5130 var joinModal = $.umember.showJoinModal(sid,mode); 5131 */ 5132 } else if($(this).hasClass('login')) { 5133 5134 location.href = (location.port) ? '/_login' : 'https://'+location.host+'/_login'; 5135 return false; 5136 /* 5137 if($('#join-modal-preview').length > 0) { 5138 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 5139 return false; 5140 } 5141 5142 if($('header').hasClass('_admin')) { //goto url -> uadmin login page 5143 if($(this).closest('#join-modal-preview').length >0) { 5144 $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.check.no-support.render-mode'], true, false, '', 'ok'); 5145 return false; 5146 } 5147 if(location.pathname == '/_admin') $('.flat-modal[class*="mng-"] .modal').modal('hide'); 5148 else location.replace('/_admin'); 5149 return false; 5150 } 5151 5152 if(checkShoppingUM) { 5153 location.href = (location.port) ? '/_login' : 'https://'+location.host+'/_login'; 5154 return false; 5155 } 5156 5157 if(typeof s_siteum != 'undefined' && s_siteum > 0) var loginModal = $.umember.showLoginModal(sid); 5158 else return false; 5159 */ 5160 } else if($(this).hasClass('forgot-id')) { 5161 /* 5162 var forgotIDModal = $.umember.showForgotIDModal(sid); 5163 */ 5164 } else if($(this).hasClass('forgot-pw')) { 5165 /* 5166 var forgotPWModal = $.umember.showForgotPWModal(sid); 5167 */ 5168 } else if($(this).hasClass('logout')) { 5169 $.getJSON('/umember/login/out', function(r) { 5170 if($.cookie('cert_popup') !== undefined) { 5171 $.removeCookie('cert_popup', true, { path: '/', expires: 12 * 60 * 60 * 1000 }); 5172 } 5173 5174 if(typeof sid!='undefined' && sid) { 5175 if($.cookie('domainSet-next-'+sid) !== undefined) $.removeCookie('domainSet-next-'+sid, { path: '/' }); 5176 } 5177 5178 var load_url = (typeof r.url != 'undefined' && r.url) ? r.url : '/'; 5179 if($('header').hasClass('_admin')) location.href = load_url; 5180 else if(s_validtype == 'SM') location.href = load_url; 5181 else location.reload(); 5182 },'json'); 5183 } else if($(this).hasClass('dashboard')) { 5184 $.getJSON('/umember/goDashboard', function(r) { 5185 if(typeof r.url != 'undefined' && r.url) location.href = r.url; 5186 },'json'); 5187 } else if($(this).hasClass('mypage')) { 5188 if(checkUAdminMode) { 5189 location.replace('/_myinfo'); 5190 } else { 5191 if(s_validtype == 'BN') { 5192 location.replace('/_mypost'); 5193 } else { 5194 location.replace('/_mypage'); 5195 } 5196 } 5197 5198 return false;
5199 /* 5200 if(checkShoppingUM && $(this).attr('href') == 'javascript:;') { 5201 location.replace('/_mypage'); 5202 return false; 5203 } 5204 5205 var mypageModal = $.umember.showMypageModal(sid); 5206 */ 5207 } 5208 } 5209 5210 } 5211 }); 5212 5213 5214 /*************************************************************************************************************************************member-config page END*/ 5215 5216 5217 5218 /*************************************************************************************************************************************member-list page START*/ 5219 function initMemberListCustomSelects() { 5220 $('.mng-settings.memberlist[data-type="member-list"] .member-native-select').each(function() { 5221 var $select = $(this); 5222 if ($select.data('customSelectInit')) return; 5223 5224 var selectId = $select.attr('id'), 5225 $custom = $('<div/>', { 'class': 'member-custom-select', 'data-target': selectId }), 5226 $button = $('<button/>', { 'class': 'member-custom-select-btn', 'type': 'button' }), 5227 $label = $('<span/>', { 'class': 'member-custom-select-label' }), 5228 $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>'), 5229 $list = $('<ul/>', { 'class': 'member-custom-select-list' }); 5230 5231 $select.find('option').each(function() { 5232 var $option = $(this), 5233 $item = $('<li/>', { 5234 'class': 'member-custom-select-option', 5235 'data-value': $option.val() 5236 }).text($option.text()); 5237 5238 if ($option.is(':selected')) { 5239 $item.addClass('active'); 5240 $label.text($option.text()); 5241 } 5242 $list.append($item); 5243 }); 5244 5245 $button.append($label, $icon); 5246 $custom.append($button, $list); 5247 $select.after($custom).data('customSelectInit', true); 5248 }); 5249 } 5250 5251 initMemberListCustomSelects(); 5252 5253 $(document).on('click', '.mng-settings.memberlist[data-type="member-list"] .member-custom-select-btn', function(e) { 5254 e.preventDefault(); 5255 e.stopPropagation(); 5256 5257 var $custom = $(this).closest('.member-custom-select'); 5258 $('.mng-settings.memberlist[data-type="member-list"] .member-custom-select').not($custom).removeClass('active'); 5259 $custom.toggleClass('active'); 5260 }); 5261 5262 $(document).on('click', '.mng-settings.memberlist[data-type="member-list"] .member-custom-select-option', function(e) { 5263 e.preventDefault(); 5264 e.stopPropagation(); 5265 5266 var $option = $(this), 5267 $custom = $option.closest('.member-custom-select'), 5268 target = $custom.data('target'), 5269 $select = $('#' + target); 5270 5271 $custom.find('.member-custom-select-option').removeClass('active'); 5272 $option.addClass('active'); 5273 $custom.find('.member-custom-select-label').text($option.text()); 5274 $custom.removeClass('active'); 5275 $select.val($option.data('value')).trigger('change'); 5276 }); 5277 5278 $('body').on('click', function(e) { 5279 if($(e.target).closest('.member-custom-select').length == 0) { 5280 $('.mng-settings.memberlist[data-type="member-list"] .member-custom-select').removeClass('active'); 5281 } 5282 }); 5283
5284 function renderShopgradeChangeSelect($modal) { 5285 var $select = $modal.find('#shopgrade-select'), 5286 $oldCustom = $modal.find('.shopgrade-modal-select'); 5287 5288 $oldCustom.remove(); 5289 if (!$select.length) return; 5290 5291 var $custom = $('<div/>', { 'class': 'member-custom-select shopgrade-modal-select', 'data-target': 'shopgrade-select' }), 5292 $button = $('<button/>', { 'class': 'member-custom-select-btn', 'type': 'button' }), 5293 $label = $('<span/>', { 'class': 'member-custom-select-label' }), 5294 $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>'), 5295 $list = $('<ul/>', { 'class': 'member-custom-select-list' }), 5296 selectedText = ''; 5297 5298 $select.find('option').each(function() { 5299 var $option = $(this), 5300 $item = $('<li/>', { 5301 'class': 'member-custom-select-option', 5302 'data-value': $option.val() 5303 }).text($option.text()); 5304 5305 if ($option.is(':selected')) { 5306 $item.addClass('active'); 5307 selectedText = $option.text(); 5308 } 5309 $list.append($item); 5310 }); 5311 5312 $label.text(selectedText || $select.find('option:first').text()); 5313 if ($select.val() === '') $button.addClass('placeholder'); 5314 $button.append($label, $icon); 5315 $custom.append($button, $list); 5316 $select.after($custom); 5317 } 5318 5319 $(document).on('click', '.shopgrade-change-modal .member-custom-select-btn', function(e) { 5320 e.preventDefault(); 5321 e.stopPropagation(); 5322 5323 var $custom = $(this).closest('.member-custom-select'); 5324 $('.shopgrade-change-modal .member-custom-select').not($custom).removeClass('active'); 5325 $custom.toggleClass('active'); 5326 }); 5327 5328 $(document).on('click', '.shopgrade-change-modal .member-custom-select-option', function(e) { 5329 e.preventDefault(); 5330 e.stopPropagation(); 5331 5332 var $option = $(this), 5333 $custom = $option.closest('.member-custom-select'), 5334 $modal = $option.closest('.shopgrade-change-modal'), 5335 $select = $modal.find('#shopgrade-select'); 5336 5337 $custom.find('.member-custom-select-option').removeClass('active'); 5338 $option.addClass('active'); 5339 $custom.find('.member-custom-select-label').text($option.text()); 5340 $custom.find('.member-custom-select-btn').toggleClass('placeholder', String($option.attr('data-value')) === ''); 5341 $custom.removeClass('active'); 5342 $select.val($option.data('value')).trigger('change'); 5343 }); 5344 5345 $('body').on('click', function(e) { 5346 if($(e.target).closest('.shopgrade-change-modal .member-custom-select').length == 0) { 5347 $('.shopgrade-change-modal .member-custom-select').removeClass('active'); 5348 } 5349 }); 5350 5351 $('.mng-settings.memberlist[data-type="member-list"] .mng-selectboxlist select.form-control').live('change',function() { 5352 // var sfl_type = $(this).attr('id').replace('sfl_',''), 5353 // val = $(this).val(); 5354 // location.replace('/manager/member/list/page/1/'+sfl_type+'/'+val); 5355 5356 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/list' : '/manager/member/list', 5357 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 5358 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 5359 stx = $(this).parents('.mng-list').find('.mng-search-box').find('#stx').val(); 5360 5361 var sgi = buildSgiSeg(); 5362 5363 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+sgi); 5364 }); 5365 5366 $('.mng-settings.memberlist[data-type="member-list"] .mng-search-box .search-btn').live('click',function(e) { 5367 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/list' : '/manager/member/list', 5368 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 5369 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 5370 stx = $(this).parents('.mng-search-box').find('#stx').val(); 5371 5372 if(checkEmojis(stx)) { 5373 e.preventDefault(); 5374 errorEmojisModal(); 5375 return false; 5376 } 5377 5378 setSiteLogs('um.list','search',{'stx':stx},'um.list'); 5379 5380 var sgi = buildSgiSeg(); 5381 if(stx.length > 0) stx = '/stx/'+stx; 5382 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+stx+sgi); 5383 }); 5384 5385 $('.mng-settings[data-type="member-list"] .mng-sortBtn').live('click',function() { 5386 if ($('.mng-sortBtn').hasClass('active') === true) { 5387 $('.mng-sortBtn').removeClass('active'); 5388 $('.mng-sortWrap').removeClass('active'); 5389 $('.mng-sortlistWrap').hide(); 5390 } else { 5391 $('.mng-sortBtn').addClass('active'); 5392 $('.mng-sortWrap').addClass('active'); 5393 $('.mng-sortlistWrap').show(); 5394 } 5395 }); 5396 5397 $('.mng-settings[data-type="member-list"] .mng-sortshopBtn').live('click',function() { 5398 if ($('.mng-sortshopBtn').hasClass('active') === true) { 5399 $('.mng-sortshopBtn').removeClass('active'); 5400 $('.mng-shopgradeWrap').removeClass('active'); 5401 $('.mng-sortshoplistWrap').hide(); 5402 } else { 5403 $('.mng-sortshopBtn').addClass('active'); 5404 $('.mng-shopgradeWrap').addClass('active'); 5405 $('.mng-sortshoplistWrap').show(); 5406 } 5407 }); 5408 5409 $('body').click(function(e){ 5410 if($(e.target).parents('.mng-sortWrap').length==0) { 5411 $('.mng-sortBtn').removeClass("active"); 5412 $('.mng-sortWrap').removeClass("active"); 5413 $('.mng-sortlistWrap').hide(); 5414 } 5415 if($(e.target).parents('.mng-shopgradeWrap').length==0) { 5416 $('.mng-sortshopBtn').removeClass("active"); 5417 $('.mng-shopgradeWrap').removeClass("active"); 5418 $('.mng-sortshoplistWrap').hide(); 5419 } 5420 }); 5421 5422 $('.member-message-btn').live('click', function() { 5423 if($(this).hasClass('member_disabled')) { 5424 siteNotice('manager'); 5425 return false;
5426 } 5427 var check_data = getMemberListCheckData($(this)), 5428 mng_settings_el = $(this).closest('.mng-settings'); 5429 5430 if( typeof check_data.error != 'undefined' && check_data.error) { 5431 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5432 return false; 5433 } 5434 5435 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'] : ''), 5436 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5437 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5438 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5439 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5440 selected_str = $.lang[LANG]['manager.list.member.message.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.message.txt.2']; 5441 5442 var modal_content = '\ 5443 <div class="mng-modal-body message-modal">\ 5444 <p class="desc">\ 5445 ' + selected_str + '\ 5446 </p>\ 5447 <div class="form-group">\ 5448 <input type="text" class="form-control" id="message-title" placeholder="ì 목" />\ 5449 </div>\ 5450 <div class="form-group clearfix">\ 5451 <textarea class="form-control" name="" id="message-content" cols="30" rows="2" placeholder="ë´ì©"></textarea>\ 5452 <label for="message-content"><span class="write-count">0</span>/1000</label>\ 5453 </div>\ 5454 <div class="form-group">\ 5455 <div class="btn-wrap">\ 5456 <span class="btn btn-xs btn-white"><i class="fa fa-sticky-note-o" aria-hidden="true"></i>íì¼ì²¨ë¶</span>\ 5457 </div>\ 5458 </div>\ 5459 </div>\ 5460 '; 5461 5462 $('#message-title, #message-content').live('keyup', function() { 5463 var type = ($(this).attr('id').match(/title/) !== null) ? 'title' : 'content', 5464 str = $(this).val(); 5465 5466 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 5467 $(this).next('label').find('.write-count').text(str.length); 5468 if(str.length > 1000 && type == 'content') { 5469 $(this).val($(this).val().substring(0, 1000)); 5470 } 5471 }); 5472 5473 var message_modal = $(this).showModalFlat('SEND MESSAGE', modal_content, true, true, function() { 5474 var message_title = $('#message-title').val(), 5475 message_content = $('#message-content').val(); 5476 5477 if(message_title.length == 0) { 5478 $('#message-title').focus(); 5479 $('#message-title').closest('.form-group').append('<div class="mng-error">ì 목ì ì ë ¥íì¸ì</div>'); 5480 return false; 5481 } 5482 if(message_content.length == 0) { 5483 $('#message-content').focus(); 5484 $('#message-content').closest('.form-group').append('<div class="mng-error">ë´ì©ì ì ë ¥íì¸ì</div>'); 5485 return false; 5486 } 5487 //ë©ìì§ ì ì¡ ê¸°ë¥ ìì . 5488 5489 message_modal.modal('hide'); 5490 mngShowToast('check', 'ì ì¡ ìë£', mng_settings_el); 5491 5492 }, 'cancel', 'send', 'w480'); 5493 }); 5494 5495 5496 // ì¼í그룹 ids 5497 function buildSgiSeg() { 5498 var ids = $('input.sgSortCheckbox:checked').map(function(){ return this.value; }).get(); 5499 if (!ids.length) { 5500 ids = $('li.active input.sgSortCheckbox').map(function(){ return this.value; }).get(); 5501 } 5502 5503 if (!ids.length) { 5504 var v = $('#sgi_current').val(); // <input type="hidden" id="sgi_current" value="1,9"> 5505 if (v) ids = v.split(','); 5506 } 5507 5508 if (!ids.length) { 5509 var m = location.pathname.match(/\/sgi\/([^\/?]+)/); 5510 if (m) ids = m[1].split(','); 5511 } 5512 5513 var seen = {}, uniq = []; 5514 for (var i=0;i<ids.length;i++){ 5515 var k = String(ids[i]); 5516 if (k && !seen[k]) { seen[k]=1; uniq.push(k); } 5517 } 5518 return uniq.length ? '/sgi/' + uniq.join(',') : ''; 5519 } 5520 5521 5522 /*$('.member-sms-btn').live('click', function() { 5523 var check_data = getMemberListCheckData($(this)), 5524 mng_settings_el = $(this).closest('.mng-settings'); 5525 5526 if( typeof check_data.error != 'undefined' && check_data.error) { 5527 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5528 return false;
5529 } 5530 5531 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> ëª '; 5532 var modal_content = '\ 5533 <div class="mng-modal-body sms-modal">\ 5534 <p class="desc">\ 5535 <span class="addressee-name">' + check_data.name + '</span> \ 5536 ' + others_str + ' ìê² SMS를 ë³´ë ëë¤.\ 5537 </p>\ 5538 <div class="sms-recharge-btn-wrap">\ 5539 <div>ìì¬ SMS <span class="sms-count point">8</span>ê±´ </div>\ 5540 <span class="sms-recharge-btn btn btn-xs btn-white">ì¶©ì í기</span>\ 5541 </div>\ 5542 <div class="form-group">\ 5543 <input type="text" class="form-control" id="sms-title" placeholder="ë³´ë´ë ë²í¸" />\ 5544 </div>\ 5545 <div class="form-group clearfix">\ 5546 <textarea class="form-control" name="" id="sms-content" cols="30" rows="2" placeholder="ë´ì©"></textarea>\ 5547 <label for="sms-content"><span class="write-count">0</span>/90 Byte</label>\ 5548 <span class="info">90ë°ì´í¸ê° ì´ê³¼ë ê²½ì° MSë¡ ì íëì´ 3ê±´ì SMSê° ì°¨ê°ë©ëë¤.</span>\ 5549 </div>\ 5550 <div class="form-group clearfix">\ 5551 <div class="btn-wrap pull-left">\ 5552 <span class="btn btn-xs btn-white"><i class="fa fa-sticky-note-o" aria-hidden="true"></i>íì¼ì²¨ë¶</span>\ 5553 </div>\ 5554 <div class="precautions pull-right">\ 5555 <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>\ 5556 </div>\ 5557 </div>\ 5558 </div>\ 5559 '; 5560 5561 $('#sms-title, #sms-content').live('keyup', function() { 5562 var type = ($(this).attr('id').match(/title/) !== null) ? 'title' : 'content', 5563 str = $(this).val(), 5564 str_len = $(this).val().length, 5565 cbyte = 0, 5566 clen = 0, 5567 maxInputByte = 90; 5568 5569 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 5570 5571 if(type == 'content') { 5572 for(var i=0; i<str_len; i++) { 5573 var is_one_char = $(this).val().charAt(i); 5574 if(escape(is_one_char).length > 4) { 5575 cbyte += 2; //korean 1 char == 2byte 5576 } else { 5577 cbyte++; 5578 } 5579 5580 if(cbyte <= maxInputByte) { 5581 clen = i + 1; 5582 } 5583 } 5584 $(this).next('label').find('.write-count').text(parseInt(cbyte)); 5585 if(parseInt(cbyte) > parseInt(maxInputByte)) { 5586 $(this).val($(this).val().substring(0, clen)); 5587 $(this).next('label').find('.write-count').text(parseInt(maxInputByte)); 5588 } 5589 } 5590 }); 5591 5592 var sms_modal = $(this).showModalFlat('SEND SMS', modal_content, true, true, function() { 5593 var sms_title = $('#sms-title').val(), 5594 sms_content = $('#sms-content').val(); 5595 5596 if(sms_title.length == 0) { 5597 $('#sms-title').focus(); 5598 $('#sms-title').closest('.form-group').append('<div class="mng-error">ë³´ë´ì¤ ë²í¸ë¥¼ ì ë ¥íì¸ì</div>'); 5599 return false; 5600 } 5601 if(sms_content.length == 0) { 5602 $('#sms-content').focus(); 5603 $('#sms-content').closest('.form-group').append('<div class="mng-error">ë´ì©ì ì ë ¥íì¸ì</div>'); 5604 return false; 5605 } 5606 //SMS ì ì¡ ê¸°ë¥ ìì . 5607 5608 5609 sms_modal.modal('hide'); 5610 mngShowToast('check', 'ì ì¡ ìë£', mng_settings_el); 5611 5612 }, 'cancel', 'send', 'w480'); 5613 5614 $('.sms-recharge-btn').click(function() { 5615 smsRechargeModal(SID); 5616 }); 5617 5618 });/*sms*/ 5619 5620 5621 /*$('.member-level-btn .dropdown-item').live('click', function() { 5622 var level = parseInt($(this).text().trim()), 5623 check_data = getMemberListCheckData($(this)), 5624 mng_settings_el = $(this).closest('.mng-settings'); 5625 5626 if( typeof check_data.error != 'undefined' && check_data.error) { 5627 $(this).showModalFlat('INFORMATION', check_data.error, true, false, '', 'ok'); 5628 return false; 5629 } 5630 5631 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> ëª '; 5632 var modal_content = '\ 5633 <div class="mng-modal-body level-modal">\ 5634 <p class="addressee-wrap">\ 5635 <span class="addressee-name">' + check_data.name + '</span> \ 5636 ' + others_str + ' ì íì ë 벨ì <br><span class="point">' + level + '</span> (ì¼)ë¡ ì ì©íìê² ìµëê¹?\ 5637 </p>\ 5638 </div>\ 5639 '; 5640 5641 var level_modal = $(this).showModalFlat('íì ë±ê¸ ë³ê²½', modal_content, true, true, function() { 5642 var uids = check_data.ids;ã 5643 5644 $.ajax({ 5645 type: 'POST', 5646 url: '/umember/update/type/level', 5647 data: { sid : SID, uids : uids, val : level }, 5648 dataType: 'json', 5649 async: true, 5650 success: function(data) { 5651 if(typeof data.error != 'undefined' && data.error) { 5652 // alert(data.error); 5653 if(level_modal.find('.error').length == 0) level_modal.find('.level-modal').append('<span class="error">' + data.error + '</span>'); 5654 else level_modal.find('.level-modal').find('.error').text(data.error); 5655 return false;
5656 } 5657 5658 $.each(uids, function(i,v) { 5659 $(mng_settings_el).find('.mng-list table tbody tr[data-uid="'+v+'"]').find('.level').text(level); 5660 }); 5661 5662 level_modal.modal('hide'); 5663 mngShowToast('check', 'ì ì¥ìë£', mng_settings_el); 5664 } 5665 }); 5666 5667 5668 }); 5669 5670 });/*level-all*/ 5671 5672 5673 $('#member-level-select').live('change', function() { 5674 var conf = confirm("ì ííì íìì ë 벨ì ë³ê²½íìê² ìµëê¹?"); 5675 if(conf){ 5676 var uid = $(this).closest('tr').attr('data-uid') 5677 var level = $(this).val(); 5678 5679 if(typeof uid == 'undefined' || !uid) { 5680 window.location.reload(); 5681 return false; 5682 } 5683 5684 $.ajax({ 5685 type: 'POST', 5686 url: '/umember/update/type/level', 5687 data: { sid : SID, uids : uid, val : level }, 5688 dataType: 'json', 5689 async: true, 5690 success: function(data) { 5691 if(typeof data.error != 'undefined' && data.error) { 5692 alert(data.error); 5693 return false; 5694 } 5695 5696 // setSiteLogs('um.edit','level.one',{'id':uid,'level':level},'um.list'); 5697 } 5698 }); 5699 }else{ 5700 window.location.reload(); 5701 return false; 5702 } 5703 5704 }); 5705 5706 $('.member-leave-btn').live('click', function() { 5707 if($(this).hasClass('member_disabled')) { 5708 siteNotice('manager'); 5709 return false; 5710 } 5711 var check_data = getMemberListCheckData($(this)), 5712 mng_settings_el = $(this).closest('.mng-settings'); 5713 5714 if( typeof check_data.error != 'undefined' && check_data.error) { 5715 $(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'); 5716 return false; 5717 } 5718 5719 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'] : ''), 5720 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5721 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5722 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5723 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5724 selected_str = $.lang[LANG]['manager.list.member.leave.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.leave.txt.2']; 5725 5726 var modal_content = '\ 5727 <div class="mng-modal-body leave-modal">\ 5728 <p class="addressee-wrap">\ 5729 ' + selected_str + '\ 5730 </p>\ 5731 </div>\ 5732 '; 5733 5734 var level_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.leave.title'], modal_content, true, true, function() { 5735 var uids = check_data.ids; 5736 5737 $.ajax({ 5738 type: 'POST', 5739 url: '/umember/update/type/leave', 5740 data: { sid : SID, uids : uids, val : 'deny' }, 5741 dataType: 'json', 5742 async: true, 5743 success: function(data) { 5744 if(typeof data.error != 'undefined' && data.error) { 5745 // alert(data.error); 5746 if(level_modal.find('.error').length == 0) level_modal.find('.leave-modal').append('<span class="error">' + data.error + '</span>'); 5747 else level_modal.find('.leave-modal').find('.error').text(data.error); 5748 return false; 5749 } else { 5750 level_modal.modal('hide'); 5751 window.location.reload(); 5752 } 5753 5754 } 5755 }); 5756 5757 5758 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 5759 5760 }); 5761 5762 5763 $('.member-block-btn').live('click', function() { 5764 if($(this).hasClass('member_disabled')) { 5765 siteNotice('manager'); 5766 return false; 5767 } 5768 var check_data = getMemberListCheckData($(this)), 5769 mng_settings_el = $(this).closest('.mng-settings'); 5770 5771 if( typeof check_data.error != 'undefined' && check_data.error) { 5772 $(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'); 5773 return false; 5774 } 5775 5776 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'] : ''), 5777 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 5778 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 5779 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 5780 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 5781 selected_str = $.lang[LANG]['manager.list.member.block.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.block.txt.2']; 5782 5783 var modal_content = '\ 5784 <div class="mng-modal-body block-modal">\ 5785 <p class="addressee-wrap">\ 5786 ' + selected_str + '\ 5787 </p>\ 5788 </div>\ 5789 '; 5790 5791 var block_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.block.title'], modal_content, true, true, function() { 5792 var val = check_data.ids; 5793 5794 $.ajax({ 5795 type: 'POST', 5796 url: '/umember/set/type/block', 5797 data: { sid : SID, key : 'id', val : val }, 5798 dataType: 'json', 5799 async: true, 5800 success: function(data) { 5801 if(typeof data.error != 'undefined' && data.error) { 5802 // alert(data.error); 5803 if(block_modal.find('.error').length == 0) block_modal.find('.block-modal').append('<span class="error">' + data.error + '</span>'); 5804 else block_modal.find('.block-modal').find('.error').text(data.error); 5805 return false;
5806 } else { 5807 block_modal.modal('hide'); 5808 window.location.reload(); 5809 } 5810 } 5811 }); 5812 5813 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 5814 }); 5815 5816 let startX, startY; 5817 $('.fullcover-scroll.payment .address-item') 5818 .live('click',function(e){ 5819 if( $(e.target).closest('.edit btn-edit-addr').length > 0) { 5820 return; 5821 } 5822 5823 5824 }) 5825 .live('mousedown', function(e) { 5826 startX = e.clientX; 5827 startY = e.clientY; 5828 }) 5829 .live('mouseup', function(e) { 5830 const dx = Math.abs(e.clientX - startX); 5831 const dy = Math.abs(e.clientY - startY); 5832 5833 // ëëê·¸ê° ê±°ì ììì¼ë©´ í´ë¦ì¼ë¡ íë¨ 5834 if (dx < 5 && dy < 5) { 5835 // í´ë¦ ëì ìí 5836 $(this).find('input[type="radio"]').prop('checked',true) 5837 // console.log('í´ë¦ë¨'); 5838 } else { 5839 // ëëê·¸í ê²ì¼ë¡ íë¨íì¬ ë¬´ì 5840 console.log('í ì¤í¸ ì í ê°ì§ë¨, í´ë¦ 무ì'); 5841 } 5842 }); 5843 5844 $('.adm-member-addr').live('click',function(){ 5845 const action = $(this).data('action'); 5846 switch (action){ 5847 case "adm-edit" : 5848 getaddrList("manager", false, function(result) { 5849 }); 5850 break; 5851 } 5852 }); 5853 5854 5855 // 주ì 목ë¡, 기본 주ì ì¤ì 5856 $('.btn-load-addresses, .btn-default-address, .btn-add-addr, .btn-edit-addr,.address-delete').live('click',function(){ 5857 //if (!property?.SID || !property?.UMEMBER?.id) return; 5858 5859 const action = $(this).data('action'); 5860 let currentPage = ''; 5861 const elcurPage = $('.btn-load-addresses'); 5862 if(elcurPage.hasClass('mypage')){ 5863 currentPage = 'mypage'; 5864 } else if (elcurPage.parent().hasClass('smpage-btn')){ 5865 currentPage = 'payment'; 5866 } else { 5867 currentPage = 'manager'; 5868 } 5869 5870 if (!action) return; 5871 5872 // ëª©ë¡ ë²í¼ ëë ìë > 5873 // ì¶ê° íì ìì ì ì¥í기 ëë ìë 5874 // 기본 주ì ì¤ì í기 ëë ì ë 5875 if (action === 'getList') { 5876 getaddrList(currentPage); 5877 } else if (action == "add") { 5878 if ($('.address-item').length <= 14) { 5879 editAndaddPoppup("N","add",currentPage); 5880 } 5881 } else if (action == "edit") { 5882 editAndaddPoppup("N","edit",currentPage,$(this)); 5883 } else if (action =="delete") { 5884 deletePopup(currentPage,$(this)); 5885 } else if (action === 'setDefault') { 5886 var seq = $(this).attr('seq'); 5887 if(!seq) return; 5888 5889 $.ajax({ 5890 type: 'POST', 5891 url: '/umember/get/type/smAddressList', 5892 data: { 5893 sid: property.SID, 5894 uid: property.UMEMBER.id, 5895 seq: seq, 5896 action: 'setDefault' 5897 }, 5898 dataType: 'json', 5899 success: function (data) { 5900 5901 //$addresslist_popup.modal('hide'); 5902 5903 if (data?.error) { 5904 alert(data.error); 5905 getaddrList(currentPage); 5906 return; 5907 } else { 5908 //$addresslist_popup.one('hidden.bs.modal', function () { 5909 // setTimeout(function() { 5910 // getaddrList(currentPage); 5911 // updateAddressUI(data,currentPage); 5912 5913 // }, '50'); 5914 getaddrList(currentPage,true); 5915 5916 if(currentPage == "payment"){ 5917 var elSeq = $('.sm-parent').attr('data-smseq'); 5918 var elDefault = $('.sm-parent').find('.sm-default-addr').hasClass("hide"); 5919 5920 if(!elDefault || elSeq == seq){ 5921 updateAddressUI(data,currentPage); 5922 } 5923 } else { 5924 updateAddressUI(data,currentPage); 5925 } 5926 //}); 5927 } 5928 } 5929 }); 5930 } 5931 }); 5932 window.checkNumberPopup = function(el) { 5933 var val = el.val(); 5934 el.val(val.replace(/[^0-9]/g,'')); 5935 } 5936 // 주ì ê°ì ¸ì¤ê¸° 5937 var getaddrList = function(currentPage,changeHtml = false ) { 5938 $.ajax({ 5939 type: 'POST', 5940 url: '/umember/get/type/smAddressList', 5941 data: { 5942 sid: (typeof property !== 'undefined' && property?.SID) ? property.SID : SID, 5943 uid: (currentPage=='manager') ? $('.memberinfo-modal .member-info-input').val() : property.UMEMBER.id, 5944 action: 'getList' 5945 }, 5946 dataType: 'json', 5947 success: function (data) { 5948 // if(currentPage === "manager" && callback){ 5949 // callback(data); 5950 // return true; 5951 // } 5952 if (data?.error) { 5953 alert(data.error); 5954 return; 5955 } 5956 if (data.length > 0) { 5957 // ê°ì ¸ì¨ 주ì íì ì 그리기 5958 // console.log(changeHtml); 5959 var changehtm = showList(data, currentPage,changeHtml); 5960 if(changehtm){ 5961 // console.log(changehtm);
5962 const $tempDom = $('<div>').html(changehtm); 5963 const $newItems = $tempDom.find('li.address-item'); 5964 5965 const $list = $addresslist_popup.find('ul.address-list'); 5966 5967 // 기존 li ì ê±° í ì li ì½ì 5968 $list.empty().append($newItems); 5969 } 5970 if(data.length >= 15) { 5971 5972 $('.btn-add-addr').addClass('pointer-none'); 5973 } 5974 5975 } else { 5976 // ê°ì ¸ì¨ 주ìx 5977 editAndaddPoppup("Y","add",currentPage); 5978 } 5979 5980 } 5981 }); 5982 } 5983 5984 // 주ì 그리기 5985 var showList = function(d,currentPage,changeHtml = false) { 5986 5987 if(currentPage == "manager") { 5988 $('.memberinfo-modal').closest('.flat-modal').hide(); 5989 $('.memberinfo-modal').closest('.flat-modal').next('.modal-backdrop').hide(); 5990 } 5991 var content_li = ''; 5992 $.each(d,function(i,v){ 5993 const isDefault = v.is_default == 1 ? 'show' : 'hide'; 5994 const name = v.to_name; 5995 const alias = v.alias || ''; 5996 const aliasel = (v.alias) ? 'open' : 'hide'; 5997 const seq = v.seq; 5998 const tel = v.to_tel; 5999 6000 6001 const to_addr1 = v.to_addr1 || ''; 6002 let postCode = ''; 6003 let addr1 = ''; 6004 6005 if (to_addr1.includes('||')) { 6006 const parts = to_addr1.split('||'); 6007 postCode = parts[0].trim(); 6008 addr1 = parts[1].trim(); 6009 } else { 6010 postCode = ''; 6011 addr1 = to_addr1.trim(); 6012 } 6013 6014 const addr2 = v.to_addr2 || ''; 6015 content_li += ` 6016 <li class="address-item"> 6017 <div class="div1"> 6018 <span class="name">${name}</span> 6019 <span class="tag ${!alias ? 'hide' : ''}" edit-tag="${escape(alias)}">${alias ? '(' + alias + ')' : ''}</span> 6020 <span class="default ${isDefault}">기본 ë°°ì¡ì§</span> 6021 <div class="newcheckbox hand"> 6022 <div class="newcheckboxSvgRadio"> 6023 <label> 6024 <input type="radio" name="temp" value="${seq}" ${v.is_default == 1 ? 'checked' : ''}> 6025 <svg viewBox="0 0 18 18" width="18" height="18"> 6026 <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> 6027 </svg> 6028 <svg class="active" viewBox="0 0 18 18" width="18" height="18"> 6029 <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> 6030 <circle fill="#4789e7" cx="9" cy="9" r="6"></circle> 6031 </svg> 6032 </laberl> 6033 </div> 6034 </div> 6035 </div> 6036 <div class="div2"> 6037 <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> 6038 </div> 6039 <div class="div3 phone">${tel}</div> 6040 <div class="div4 actions clearfix"> 6041 <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> 6042 <div data-action="setDefault" seq ="${v.seq}" class=" ${currentPage == "manager" ? 'hide' : ''} btn-default-address ${(v.is_default == 1) ? 'hide': ''}" style="">기본 ë°°ì¡ì§ ì¤ì </div> 6043 </div> 6044 </li> 6045 `; 6046 }); 6047 6048 var modal_content =` 6049 <div class="btn-add-addr ${currentPage == "manager" ? 'hide' : ''}" data-action="add" > 6050 <div> 6051 <svg viewBox="0 0 15 15" width="15" height="15"> 6052 <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> 6053 </svg>
6054 <span>ë°°ì¡ì§ ì¶ê°</span> 6055 </div> 6056 </div> 6057 <ul class="fullcover-scroll address-list ${currentPage}"> 6058 ${content_li} 6059 </ul> 6060 ` 6061 if(changeHtml) return content_li; 6062 $addresslist_popup = $(this).showModalFlat("ë°°ì¡ì§ 목ë¡", modal_content, true, (currentPage == "mypage" ||currentPage == "manager" ) ? false : true , function(){ 6063 6064 6065 // ê²°ì íì´ì§ì ëª©ë¡ íì ìì íì¸ ë²í¼ í´ë¦ ì 6066 $("#no-fouc").removeClass("scroll-lock-fullcover-popup"); 6067 var seq = $addresslist_popup.find('.address-item input[type="radio"]:checked').attr('value'); 6068 6069 $.ajax({ 6070 type: 'POST', 6071 url: '/umember/get/type/smAddressList', 6072 data: { 6073 sid: property.SID, 6074 uid: property.UMEMBER.id, 6075 seq:seq, 6076 action: 'getExistAddr', 6077 }, 6078 dataType: 'json', 6079 success: function (data) { 6080 if (data?.error) { 6081 alert(data.error); 6082 $addresslist_popup.modal('hide'); 6083 getaddrList(currentPage); 6084 return; 6085 } else { 6086 UpdateelSeq(seq); 6087 updateAddressUI(data,currentPage); 6088 $addresslist_popup.modal('hide'); 6089 6090 } 6091 } 6092 }); 6093 }, (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(){ 6094 $("#no-fouc").removeClass("scroll-lock-fullcover-popup"); 6095 6096 if(currentPage == "manager") { 6097 $('.memberinfo-modal').closest('.flat-modal').show(); 6098 $('.memberinfo-modal').closest('.flat-modal').next('.modal-backdrop').show(); 6099 } 6100 },function(){ 6101 6102 // if($addresslist_popup.closest('#flat-modal1').length >0 ){ 6103 // $addresslist_popup.closest('#flat-modal1').attr('id','flat-modal'); 6104 // } 6105 6106 }); 6107 6108 if($("#no-fouc").addClass("scroll-lock-fullcover-popup")); 6109 6110 6111 } 6112 6113 // ë§ì´íì´ì§ íì ìì 주ì를 ë±ë¡íê±°ë ê²°ì íì´ì§ íì ìì ì ì¥ ë²í¼ì í´ë¦íì ë ë°ì´í° ë°ì 6114 var updateAddressUI = function(d,cPage){ 6115 6116 if(cPage == "mypage"){ 6117 var removeEl = $('.sm-parent.emptyFlag'); // ìì ì체를 ë´ì 6118 if (removeEl.length) { 6119 // optional í´ëì¤ ì ê±° 6120 removeEl.find('.cl-s-form-wrap.empty').removeClass('empty'); 6121 removeEl.find('.optional').removeClass('optional'); 6122 // flexbox ìì input ì ê±° 6123 removeEl.find('.flexbox').children('input').remove(); 6124 } 6125 } 6126 6127 6128 var $sm = $('.sm-parent'); 6129 var $sm_btn = $sm.find('.btn-load-addresses div span'); 6130 var $sm_name = $sm.find('.sm-name'); 6131 var $sm_alias = $sm.find('.sm-alias'); 6132 var $sm_default = $sm.find('.sm-default-addr'); 6133 6134 const $sm_addr1 = $sm.find('.sm-addr1 span').first(); // [ì°í¸ë²í¸] 6135 const $sm_addr2 = $sm.find('.sm-addr1 span').last(); // 주ì 6136 const $sm_tel = $sm.find('.sm-tel'); // 주ì2 6137 6138 d?.alias ? $sm_alias.text('(' + d.alias + ')').removeClass('hide') : $sm_alias.text('').addClass('hide'); 6139 6140 $sm.removeClass('emptyFlag'); 6141 6142 6143 6144 (cPage == "mypage") ? $sm_btn.text('ë³ê²½í기') : $sm_btn.text('ë°°ì¡ì§ 목ë¡'); 6145 6146 $sm_name.text(d?.to_name); 6147 6148 const tempArr = d.to_addr1?.split('||') || []; 6149 tempArr[0] ? $sm_addr1.text('[' + tempArr[0] + ']').removeClass('hide') : $sm_addr1.addClass('hide'); 6150 $sm_addr2.text(tempArr[1] +' '+d?.to_addr2); 6151 $sm_tel.text(d?.to_tel); 6152 $sm.find('.noaddress').addClass('hide'); 6153 6154 if($('.btn-load-addresses.empty').length > 0) { 6155 $('.btn-load-addresses.empty').removeClass('empty'); 6156 } 6157 6158 if(cPage == "payment") { 6159 6160 if (+d.is_default > 0) { 6161 $sm_default.removeClass("hide"); 6162 } else { 6163 $sm_default.addClass("hide"); 6164 } 6165 6166 $('#reciever-name').val(d.to_name); 6167 $('#reciever-phone').val(d.to_tel); 6168 $('#reciever-postcode').val(tempArr[0]); 6169 $('#reciever-addr1').val(tempArr[1]); 6170 $('#reciever-addr2').val(d.to_addr2); 6171 changeDeliveryPrice($(this).closest('form').attr('data-sid')); 6172 // console.log($(this)); 6173 } 6174 } 6175 6176 var editAndaddPoppup = function(fix_addr = "N", mode = "", cpage = "",select = ""){ 6177 var dontclick_label = ""; 6178 var opa = ""; 6179 6180 if (fix_addr === "Y") { 6181 dontclick_label = 'disabled checked'; 6182 opa = "opa"; 6183 } else if (mode === "edit") { 6184 var $a_item = select.closest('.address-item'); 6185 6186 if ($a_item.find('.default.show').length > 0) { 6187 dontclick_label = 'disabled checked'; 6188 opa = "opa"; 6189 } 6190 } 6191 6192 var modal_content = ` 6193 <div> 6194 <div class="cl-s-info">ë°°ì¡ì§ ì ë³´</div> 6195 <div class="col-xs-12 col-sm-12 col-md-12 no-padding"> 6196 <div class="cl-s-form-wrap"> 6197 <div class="cl-s-form-group"> 6198 <input type="text" class="cl-s-form-control-popup" id="addrPopup-alias"name ="alias" required> 6199 <label for="input" class="cl-s-control-label">ë°°ì¡ì§ëª </label> 6200 </div> 6201 </div> 6202 </div> 6203 <div class="col-xs-6 col-sm-6 col-md-6 no-padding p-r-5"> 6204 <div class="cl-s-form-wrap"> 6205 <div class="cl-s-form-group"> 6206 <input type="text" class="cl-s-form-control-popup" id="addrPopup-name" name="to_name" required="required"> 6207 <label for="input" class="cl-s-control-label">ì´ë¦<span class="input-star">*</span></label> 6208 6209 </div> 6210 </div> 6211 </div> 6212 <div class="col-xs-6 col-sm-6 col-md-6 no-padding p-l-5"> 6213 <div class="cl-s-form-wrap"> 6214 <div class="cl-s-form-group"> 6215 <input type="text" class="cl-s-form-control-popup" id="addrPopup-phone" name="to_tel" required="required" onkeyup="checkNumberPopup($(this))"> 6216 <label for="input" class="cl-s-control-label">ì°ë½ì²<span class="input-star">*</span></label> 6217 </div> 6218 </div> 6219 </div> 6220 <div class="col-xs-12 col-sm-12 col-md-12 no-padding clearfix"> 6221 <div class="cl-s-form-wrap"> 6222 <div class="cl-s-form-group"> 6223 <input type="hidden" class="cl-s-form-control-popup" id="addrPopup-postcode" name="addr1" required="required" value=""> 6224 <input type="text" class="cl-s-form-control-popup" id="addrPopup-addr1" name="addr2" required="required" readonly onfocus="addrSearchModal('addrPopup')"> 6225 <label for="input" class="cl-s-control-label">주ì<span class="input-star">*</span></label> 6226 </div> 6227 </div> 6228 <div class="cl-s-form-wrap"> 6229 <div class="cl-s-form-group"> 6230 <input type="text" class="cl-s-form-control-popup" id="addrPopup-addr2" name="addr3" required> 6231 <label for="input" class="cl-s-control-label">ìì¸ì£¼ì</label> 6232 </div> 6233 </div> 6234 </div> 6235 <span class="pull-left checkbox-wrap ${cpage == "manager" ? 'hide' : ''}"> 6236 <div class="cl-s-checkbox ${opa}"> 6237 <label> 6238 <input type="checkbox" id="addrPopup-set" name="is_default" ${dontclick_label}> 6239 <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> 6240 <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> 6241 기본 ë°°ì¡ì§ ì¤ì 6242 </label> 6243 </div> 6244 </span> 6245 </div> 6246 ` 6247 6248 var $addPopup = $(this).showModalFlat( (mode == "add") ? "ë°°ì¡ì§ ì¶ê°" : "ë°°ì¡ì§ ìì " , modal_content, true, true , function(){ 6249 6250 $addPopup.find('.cl-s-form-wrap').removeClass('empty'); 6251 6252 let focused = false;
6253 let flagCheck = false; 6254 6255 $addPopup.find('.cl-s-form-wrap').each(function (i,e) { 6256 const $wrap = $(this); 6257 const $inputs = $wrap.find('input:not([type=hidden]), textarea'); 6258 const hasError = $wrap.hasClass('error'); 6259 6260 let isEmpty = false; 6261 6262 // ì¤ì§ required="required" ë¡ ëª ìë íëë§ ê²ì¬ 6263 $inputs.each(function () { 6264 const input = this; 6265 const $input_id = $(input).attr('id'); 6266 let error_str= ""; 6267 // requiredë§ ê²ì¬ 6268 if (input.getAttribute('required') === 'required') { 6269 // console.log($(this)); 6270 const val = $(input).val()?.trim(); 6271 const $wrap = $(input).closest('.cl-s-form-wrap'); 6272 const $errorLabel = $wrap.next('.cl-s-control-label.error'); 6273 6274 // 기존 ìë¬ ì ê±° 6275 $errorLabel.remove(); 6276 6277 if (!val) { 6278 isEmpty = true; 6279 error_str = ""; 6280 6281 switch($input_id){ 6282 case "addrPopup-name" : 6283 error_str = " ì´ë¦ì ì ë ¥í´ ì£¼ì¸ì."; 6284 break; 6285 case "addrPopup-phone" : 6286 error_str = " ì°ë½ì²ë¥¼ ì ë ¥í´ ì£¼ì¸ì." 6287 break; 6288 case "addrPopup-addr1" : 6289 error_str = " 주ì 찾기를 íµí´ 주ì를 ì ë ¥í´ì£¼ì¸ì." 6290 break; 6291 } 6292 // ì ìë¬ ì¶ê° 6293 $wrap.after( 6294 '<label for="input" class="cl-s-control-label error"><i class="cl-icon alert02"></i>' + error_str + '</label>' 6295 ); 6296 } 6297 } 6298 }); 6299 6300 if (isEmpty) { 6301 $wrap.addClass('empty'); 6302 flagCheck = true; 6303 } 6304 6305 // í¬ì»¤ì¤: 첫 ë²ì§¸ error ëë empty í목 6306 if ((isEmpty || hasError) && !focused) { 6307 flagCheck = true; 6308 const $focusTarget = $wrap.find('input, textarea').filter(':visible').first(); 6309 if ($focusTarget.length > 0) { 6310 $focusTarget.focus(); 6311 focused = true; 6312 } 6313 } 6314 }); 6315 6316 if (flagCheck) return true; 6317 6318 6319 const formValues = { 6320 to_name: $addPopup.find('#addrPopup-name').val()?.trim(), 6321 to_tel: $addPopup.find('#addrPopup-phone').val()?.trim(), 6322 to_addr1: `${$addPopup.find('#addrPopup-postcode').val()?.trim()}||${$addPopup.find('#addrPopup-addr1').val()?.trim()}`, 6323 to_addr2: $addPopup.find('#addrPopup-addr2').val()?.trim(), 6324 alias: $addPopup.find('#addrPopup-alias').val()?.trim(), 6325 is_default: $addPopup.find('#addrPopup-set').prop('checked') ? '1' : '0' 6326 }; 6327 6328 if(mode == "add"){ 6329 $.ajax({ 6330 type: 'POST', 6331 url: '/umember/get/type/smAddressList', 6332 data: { 6333 sid: property.SID, 6334 uid: property.UMEMBER.id, 6335 action: 'add', 6336 fixaddr : fix_addr, 6337 value : formValues 6338 }, 6339 dataType: 'json', 6340 success: function (data) { 6341 if (data?.error) { 6342 alert(data.error); 6343 $addPopup.modal('hide'); 6344 getaddrList(cpage); 6345 return; 6346 } else { 6347 if( typeof $addresslist_popup !== "undefined" && $addresslist_popup.length > 0) { 6348 $addresslist_popup.modal('hide'); 6349 } 6350 6351 if(cpage == "mypage" && formValues.is_default == "1"){ 6352 updateAddressUI(formValues,cpage); 6353 } 6354 else if ( 6355 (cpage == "payment" && fix_addr == "Y") || 6356 (cpage == "payment" && formValues.is_default > 0 && $('.sm-default-addr:not(.hide)').length > 0) 6357 ) { 6358 updateAddressUI(formValues,cpage); 6359 UpdateelSeq(data["seq"]); 6360 } 6361 $addPopup.modal('hide'); 6362 getaddrList(cpage); 6363 } 6364 } 6365 }); 6366 } else if (mode == "edit") { 6367 6368 var $tempitem = select.closest('.address-item'); 6369 var radio_value = $tempitem.find('input[type="radio"]').val() || ''; 6370 if (!radio_value) return true; 6371 6372 if(cpage == "manager" && $('#member-postcode').length > 0 && formValues.is_default > 0) { 6373 $('#member-addr1').val($addPopup.find('#addrPopup-addr1').val()?.trim()) ; 6374 $('#member-addr2').val(formValues.to_addr2) ; 6375 // console.log('afaf'); 6376 $('#member-postcode').attr('value',$addPopup.find('#addrPopup-postcode').val()?.trim()); 6377 6378 var temp_uid = $('.memberinfo-modal .member-info-input').val(); 6379 $('.mng-list table tr[data-uid="' + temp_uid + '"]').find('.'+'addr').text(formValues.to_addr1 + formValues.to_addr2); 6380 6381 } 6382 $.ajax({ 6383 type: 'POST', 6384 url: '/umember/get/type/smAddressList', 6385 data: { 6386 sid: (typeof property !== 'undefined' && property.SID) ? property.SID : SID, 6387 uid: (cpage=='manager') ? $('.memberinfo-modal .member-info-input').val() : property.UMEMBER.id, 6388 action: 'edit', 6389 seq : radio_value, 6390 value : formValues 6391 }, 6392 dataType: 'json', 6393 success: function (data) { 6394 if (data?.error) { 6395 alert(data.error); 6396 $addPopup.modal('hide'); 6397 getaddrList(cpage); 6398 return; 6399 } else { 6400 $addPopup.modal('hide'); 6401 $addresslist_popup.modal('hide'); 6402 6403 getaddrList(cpage); 6404 6405 var elSeq = $('.sm-parent').attr('data-smseq'); 6406 var elDefault = $('.sm-parent').find('.sm-default-addr').hasClass("hide"); 6407 6408 if(cpage =="payment" && !elDefault && formValues["is_default"] == 1 || 6409 cpage =="payment" && elSeq == radio_value 6410 ){ 6411 updateAddressUI(formValues,cpage); 6412 } else if(cpage != "payment"){ 6413 6414 updateAddressUI(formValues,cpage); 6415 } 6416 } 6417 } 6418 }); 6419 6420 } 6421 6422 6423 6424 }, '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(){ 6425 console.log('a'); 6426 },function(){}); 6427 6428 if(mode == "edit") { 6429 if($addresslist_popup.length > 0) { 6430 6431 var $item = select.closest('.address-item'); 6432 6433 var name_edit = $item.find('.name').text().trim(); 6434 var aliasAttr = unescape($item.find('.tag').attr('edit-tag')); 6435 var alias_edit = aliasAttr ? aliasAttr.trim() : ''; 6436 var is_default_edit = $item.find('.default.show').length > 0 ? '1' : '0'; 6437 var postcodeAttr = $item.find('[edit-postcode]').attr('edit-postcode'); 6438 var postcode_edit = postcodeAttr ? postcodeAttr.trim() : '';
6439 var addr1Attr = unescape($item.find('[edit-addr1]').attr('edit-addr1')); 6440 var address1_edit = addr1Attr ? addr1Attr.trim() : ''; 6441 var addr2Attr = unescape($item.find('[edit-addr2]').attr('edit-addr2')); 6442 var address2_edit = addr2Attr ? addr2Attr.trim() : ''; 6443 var phone_edit = $item.find('.div3.phone').text().trim(); 6444 if (mode === 'edit') { 6445 $addPopup.find('#addrPopup-alias').val(alias_edit); 6446 $addPopup.find('#addrPopup-name').val(name_edit); 6447 $addPopup.find('#addrPopup-phone').val(phone_edit); 6448 $addPopup.find('#addrPopup-postcode').val(postcode_edit); 6449 $addPopup.find('#addrPopup-addr1').val(address1_edit).addClass('has-value'); 6450 $addPopup.find('#addrPopup-addr2').val(address2_edit); 6451 $addPopup.find('#addrPopup-set').prop('checked', is_default_edit === '1'); 6452 } 6453 } 6454 } 6455 } 6456 6457 var deletePopup = function(cpage,c_this){ 6458 6459 $addresslist_popup.addClass('hide'); 6460 var $tempitem = $(c_this).closest('.address-item'); 6461 var radio_value = $tempitem.find('input[type="radio"]').val() || ''; 6462 6463 var $addr_modal_delete = $(this).showModalFlat("주ì를 ìì íìê² ìµëê¹?", "ìì í 주ìë 복구í ì ììµëë¤. <br> ì ë§ ìì íìê² ìµëê¹?", true, true , function(){ 6464 6465 $.ajax({ 6466 type: 'POST', 6467 url: '/umember/get/type/smAddressList', 6468 data: { 6469 sid: property.SID, 6470 uid: property.UMEMBER.id, 6471 seq:radio_value, 6472 action: 'delete', 6473 }, 6474 dataType: 'json', 6475 success: function (data) { 6476 setTimeout(function() { 6477 getaddrList(cpage); 6478 },''); 6479 $addr_modal_delete.modal('hide'); 6480 $addresslist_popup.modal('hide'); 6481 } 6482 }); 6483 6484 }, 'cancel','ok','modal-dialog cl-cmmodal cl-s-btn w560 cl-p70',false,'','',function(){ 6485 $addresslist_popup.removeClass('hide'); 6486 }); 6487 6488 6489 } 6490 6491 var UpdateelSeq = function(seq){ 6492 $('.sm-parent').attr("data-smseq",seq); 6493 } 6494 6495 $('.btn-add-addr.pointer-none').live('click',function(e) { 6496 var modal = $(this).showModalFlat($.lang[LANG]['config.information'], $.lang[LANG]['shopping.addr.title.dec'], true, false, function(){ 6497 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',1) 6498 if ($backModal.next().hasClass('modal-backdrop')) { 6499 $backModal.next().css('opacity', 0.9); // ìíë ì¤íì¼ 6500 } 6501 }, 'ok', '', 'cl-p130 cl-cmmodal cl-s-btn w560 cl-p0 cl-okbtn-pbt70',true,function(){ 6502 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',1) 6503 if ($backModal.next().hasClass('modal-backdrop')) { 6504 $backModal.next().css('opacity', 0.9); // ìíë ì¤íì¼ 6505 } 6506 6507 },function(){ 6508 }); 6509 $backModal = $('#flat-modal').closest('.cl-common-modal').css('opacity',0) 6510 if ($backModal.next().hasClass('modal-backdrop')) { 6511 $backModal.next().css('opacity', 0); // ìíë ì¤íì¼ 6512 } 6513 }); 6514 6515 6516 $('.cl-s-add-addrPopup .cl-s-form-group').live('click',function(e) { 6517 if($(e.target).hasClass('cl-s-form-group')) { 6518 $(e.target).find('.cl-s-form-control-popup:not([type=hidden])').focus(); 6519 } 6520 }); 6521 $('.cl-s-form-control-popup').live({ 6522 6523 focus: function(e) { 6524 if($(this).attr('type') == 'hidden') { 6525 e.preventDefault(); 6526 return false; 6527 } 6528 if($(this).is('#addrPopup-addr2') && $('#addrPopup-addr1').val().trim().length > 0 ) { 6529 6530 const formWrap = $('#addrPopup-addr1').closest('.cl-s-form-wrap'); 6531 const nextElement = formWrap.next('.cl-s-control-label'); 6532 6533 if (nextElement.length > 0) { 6534 nextElement.remove(); 6535 } 6536 var input_id = $(this).attr('id'), 6537 input_addr1 = input_id.replace('-addr2','-addr1'); 6538 // console.log(input_addr1); 6539 if($('#'+input_addr1).val().trim().length > 0) { 6540 $('#'+input_addr1).closest('.cl-s-form-wrap').removeClass('empty'); 6541 } 6542 } 6543 $(this).closest('.cl-s-form-wrap').addClass('active'); 6544 }, 6545 blur: function(e) { 6546 $(this).closest('.cl-s-form-wrap').removeClass('active'); 6547 6548 if($(this).attr('type') == 'hidden' || $(this).is('textarea')) { 6549 e.preventDefault(); 6550 return false; 6551 } 6552 6553 var error_str = '', 6554 val = $(this).val().trim(); 6555 6556 6557 if (val.length === 0 && this.getAttribute('required') === 'required') { 6558 $(this).closest('.cl-s-form-wrap').removeClass('error').addClass('empty'); 6559 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 6560 return false;
6561 } else { 6562 $(this).closest('.cl-s-form-wrap').removeClass('empty'); 6563 $(this).closest('.cl-s-form-wrap').next('.cl-s-control-label.error').remove(); 6564 6565 if(val.length > 0 && checkEmojis(val)){ 6566 error_str = $.lang[LANG]['config.unable.emoji']; 6567 6568 } else if( ($(this).is('#addrPopup-alias') || $(this).is('#addrPopup-name')) && val.length > 50) { 6569 error_str = '50ì ì´ë´ë¡ ì ë ¥í´ ì£¼ì¸ì.'; 6570 } 6571 6572 if(error_str.length > 0) { 6573 $(this).closest('.cl-s-form-wrap').addClass('error'); 6574 if($(this).parent().find('.cl-s-control-label.error').length > 0) { 6575 $(this).parent().find('.cl-s-control-label.error').html(error_str); 6576 } else { 6577 $(this).after('<label for="input" class="cl-s-control-label error">' + error_str + '</label>'); 6578 } 6579 return false; 6580 } 6581 } 6582 6583 // ì í¨ì± íµê³¼ ì ìë¬ ë¬¸êµ¬ë¤ ì ê±° 6584 $(this).closest('.cl-s-form-wrap').removeClass('error').removeClass('empty'); 6585 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 6586 6587 } 6588 }); 6589 //ë 벨ë³ê²½ í ì¶ê° 6590 $('.member-level-btn').live('click', function() { 6591 if($(this).hasClass('member_disabled')) { 6592 siteNotice('manager'); 6593 return false; 6594 } 6595 var blank = $('input[type="checkbox"]:checked').hasClass("blank"); 6596 if(blank){ 6597 $(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'); 6598 return false; 6599 } 6600 6601 var check_data = getMemberListCheckData($(this)), 6602 mng_settings_el = $(this).closest('.mng-settings'); 6603 6604 if( typeof check_data.error != 'undefined' && check_data.error) { 6605 $(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'); 6606 return false; 6607 } 6608 6609 var first_name = (LANG == 'en' && check_data.count > 0) ? '' : '<span class="addressee-name">' + check_data.name + '</span> ', 6610 others_name = (LANG == 'en' || check_data.count < 1) ? '' : $.lang[LANG]['manager.list.member.selected.multi.1'] + '\ 6611 <span class="addressee-count point" data-toggle="tooltip" data-placement="bottom" data-html="true" data-original-title="' + check_data.names + '">\ 6612 ' + check_data.count + '</span>' + $.lang[LANG]['manager.list.member.selected.multi.2'], 6613 last_name = (LANG == 'en' && check_data.count > 0) ? $.lang[LANG]['manager.list.member.selected.multi.3'] : '', 6614 selected_str = $.lang[LANG]['manager.list.member.level.txt.1'] + first_name + others_name + last_name + $.lang[LANG]['manager.list.member.level.txt.2']; 6615 6616 //ë 벨ì«ìë²í¼ ìì± 6617 var level_btn = ""; 6618 for(var i=1; i < 11; i++){ 6619 level_btn += '<button class="btn-lg btn-default level-btn" value="' + i + '">' + i + '</button>'; 6620 } 6621 6622 var modal_content = '\ 6623 <div class="mng-modal-body level-modal">\ 6624 <p class="addressee-wrap">\ 6625 ' + selected_str + '\ 6626 </p>\ 6627 ' + level_btn + '\ 6628 </div>\ 6629 '; 6630 6631 var level_modal = $(this).showModalFlat($.lang[LANG]['manager.list.member.level.title'], modal_content, true, true, function() { 6632 var uids = check_data.ids; 6633 var level = $(".level-modal").children(".active").val(); 6634 6635 if(level == "undefined" || !level){ 6636 alert("ë 벨ì ì íí´ ì£¼ì¸ì"); 6637 return false; 6638 } 6639 6640 if(typeof uids == 'undefined' || !uids) { 6641 window.location.reload(); 6642 return false; 6643 } 6644 6645 $.ajax({ 6646 type: 'POST', 6647 url: '/umember/update/type/level', 6648 data: { sid : SID, uids : uids, val : level }, 6649 dataType: 'json', 6650 async: true, 6651 success: function(data) { 6652 if(typeof data.error != 'undefined' && data.error) { 6653 //alert(data.error); 6654 if(level_modal.find('.error').length == 0) level_modal.find('.level-modal').append('<span class="error">' + data.error + '</span>'); 6655 else level_modal.find('.level-modal').find('.error').text(data.error); 6656 return false; 6657 } else { 6658 level_modal.modal('hide'); 6659 } 6660 location.reload(true); 6661 } 6662 }); 6663 6664 }, 'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0',true); 6665 }); 6666 6667 6668 // ì¼íë±ê¸ ë³ê²½ í ì¶ê° 6669 $('.member-shopgrade-btn').live('click', function() { 6670 if($(this).hasClass('member_disabled')) { 6671 siteNotice('manager'); 6672 return false;
6673 } 6674 var blank = $('input[type="checkbox"]:checked').hasClass("blank"); 6675 if(blank){ 6676 $(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'); 6677 return false; 6678 } 6679 6680 var check_data = getMemberListCheckData($(this)), 6681 mng_settings_el = $(this).closest('.mng-settings'); 6682 6683 if( typeof check_data.error != 'undefined' && check_data.error) { 6684 $(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'); 6685 return false; 6686 } 6687 6688 var selected_str = '<span class="shopgrade-member-id">' + check_data.name + '</span>'; 6689 if (check_data.count > 0) { 6690 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>'; 6691 } 6692 var notice_send_enabled = (typeof shopgradeNoticeSendEnabled == 'undefined') ? true : !!shopgradeNoticeSendEnabled; 6693 var notice_disabled_class = notice_send_enabled ? '' : ' shopgrade-notice-disabled'; 6694 var notice_checked_attr = notice_send_enabled ? ' checked' : ''; 6695 var notice_disabled_attr = notice_send_enabled ? '' : ' disabled'; 6696 6697 // ì¼íë±ê¸ select 6698 var shopgrade_btn = 6699 '<select id="shopgrade-select" class="form-control shopgrade-select member-native-select" disabled>' + 6700 ' <option value="">ë¡ë© ì¤â¦</option>' + 6701 '</select>'; 6702 6703 var modal_content = '\ 6704 <div class="mng-modal-body sg-modal">\ 6705 <table class="grade-create-table">\ 6706 <tr>\ 6707 <td class="form-title form-title-chagne">ëìíì</td>\ 6708 <td>\ 6709 <div class="form-inline2">\ 6710 <p class="shopgrade-name">'+ selected_str +'</p>\ 6711 </div>\ 6712 </td>\ 6713 </tr>\ 6714 <tr><td colspan="2"> </td></tr>\ 6715 <tr>\ 6716 <td class="form-title form-title-chagne">ë±ê¸</td>\ 6717 <td>\ 6718 <div class="form-inline2">\ 6719 ' + shopgrade_btn + '\ 6720 </div>\ 6721 </td>\ 6722 </tr>\ 6723 </table>\ 6724 <label class="shopgrade-notice-row' + notice_disabled_class + '">\ 6725 <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>\ 6726 <span class="shopgrade-notice-text">\ 6727 <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>• ì림í¡: ëìë³´ë > ì림 > ì¹´ì¹´ì¤ ìë¦¼í¡ ì¤ì >
6727 ì¼íë±ê¸ ë³ê²½ ì림ì ì¼ì£¼ì¸ì.<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>\ 6728 <span class="shopgrade-notice-desc">íììê² ì´ë©ì¼, ì림í¡ì¼ë¡ ìë´ë¥¼ ë°ì¡í©ëë¤.</span>\ 6729 </span>\ 6730 </label>\ 6731 </div>\ 6732 '; 6733 6734 var shopgrade_modal = $(this).showModalFlat('ì¼í ë±ê¸ ë³ê²½', modal_content, true, true, function () { 6735 var uids = check_data.ids; 6736 var grade_id = shopgrade_modal.find('#shopgrade-select').val(); 6737 var send_notice = (notice_send_enabled && shopgrade_modal.find('#shopgrade-notice-send').is(':checked')) ? 'Y' : 'N'; 6738 // console.log('uids: ', uids); 6739 if (!grade_id) { 6740 alert('ì¼íë±ê¸ì ì í í´ ì£¼ì¸ì'); 6741 return false; 6742 } 6743 6744 if (!confirm('ì íí íìì ì¼íë±ê¸ì ë³ê²½íìê² ìµëê¹?')) return false; 6745 6746 if (!uids) { 6747 window.location.reload(); 6748 return false; 6749 } 6750 6751 $.ajax({ 6752 type: 'POST', 6753 url: '/shop_grade/check_update', 6754 data: { sid: SID, uids: uids, grade_id: grade_id, send_notice: send_notice }, 6755 dataType: 'json', 6756 async: true, 6757 success: function (data) { 6758 if (typeof data.error !== 'undefined' && data.error) { 6759 if (shopgrade_modal.find('.error').length === 0) 6760 shopgrade_modal.find('.sg-modal').append('<span class="error">' + data.error + '</span>'); 6761 else 6762 shopgrade_modal.find('.sg-modal .error').text(data.error); 6763 return false; 6764 } else { 6765 shopgrade_modal.modal('hide'); 6766 } 6767 location.reload(true); 6768 }, 6769 6770 }); 6771 }, 'cancel', '', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cover shopgrade-change-modal', true); 6772 shopgrade_modal.find('.shopgrade-notice-tooltip').tooltip({ 6773 container: 'body', 6774 template: '<div class="tooltip shopgrade-notice-tooltip-popover" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' 6775 }); 6776 shopgrade_modal.find('.shopgrade-notice-tooltip').on('click', function(e) { 6777 e.preventDefault(); 6778 e.stopPropagation(); 6779 }); 6780 6781 setTimeout(function () { 6782 var $sel = shopgrade_modal.find('#shopgrade-select'); 6783 $.ajax({ 6784 type: 'POST', 6785 url: '/shop_grade/get_list', 6786 data: { sid: SID }, 6787 dataType: 'json', 6788 success: function (data) { 6789 if (data && data.success && $.isArray(data.list) && data.list.length) { 6790 var opts = '<option value="">ë±ê¸ ì í</option>'; 6791 $.each(data.list, function (_, g) { 6792 var id = (g.grade_id != null) ? g.grade_id : (g.id != null ? g.id : g.seq); 6793 var name = g.grade_name || g.name || g.title || ('ë±ê¸ ' + id); 6794 if (id != null) opts += '<option value="' + id + '">' + name + '</option>'; 6795 }); 6796 $sel.html(opts).prop('disabled', false); // disabled í´ì 6797 renderShopgradeChangeSelect(shopgrade_modal); 6798 } else { 6799 $sel.html('<option value="">ë±ê¸ ìì</option>').prop('disabled', false); 6800 renderShopgradeChangeSelect(shopgrade_modal); 6801 } 6802 }, 6803 error: function () { 6804 $sel.html('<option value="">ë¡ë ì¤í¨</option>').prop('disabled', false); 6805 renderShopgradeChangeSelect(shopgrade_modal); 6806 } 6807 }); 6808 }, 0); 6809 6810 }); 6811 6812 6813 6814 6815 /* ì¼íë±ê¸ ì¤ì shopgrade start */ 6816 $('.shopGrade').on('click', function () { 6817 if(typeof canConfigureShopgrade != 'undefined' && !canConfigureShopgrade) return false; 6818 let currentShopgradeAutoPolicyCycleType = '2'; 6819 let currentShopgradeAutoPolicyEnabled = (typeof shopgradeAutoPolicyEnabled != 'undefined') ? !!shopgradeAutoPolicyEnabled : false; 6820 6821 $.ajax({ 6822 url: '/shop_grade/get_list', 6823 type: 'post', 6824 data: { sid : SID }, 6825 dataType: 'json', 6826 success: function (data) { 6827 if (data.success) { 6828 group_list = data.list; 6829 openShoppingGradeModal.call($('.shopGrade')); 6830 6831 // policy 6832 $.ajax({ 6833 url: '/shop_grade/get_policy', 6834 type: 'post', 6835 data: { sid: SID }, 6836 dataType: 'json', 6837 success: function (res) { 6838 const policy = res.success && res.policy ? res.policy : null; 6839 const html = renderPolicyBox( 6840 policy?.cycle_type, 6841 policy?.accumulate_month 6842 );
6843 currentShopgradeAutoPolicyEnabled = !!(policy && policy.cycle_type); 6844 shopgradeAutoPolicyEnabled = currentShopgradeAutoPolicyEnabled; 6845 currentShopgradeAutoPolicyCycleType = policy?.cycle_type ? String(policy.cycle_type) : '2'; 6846 $('.policy-box').html(html); 6847 $('.policy-area').toggleClass('policy-empty-area', !policy || !policy.cycle_type); 6848 } 6849 }); 6850 6851 } else { 6852 alert('ë±ê¸ 목ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤.'); 6853 } 6854 }, 6855 error: function () { 6856 alert('ìë² ì¤ë¥ë¡ ë±ê¸ 목ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤.'); 6857 } 6858 }); 6859 6860 function escapeShopgradeText(value) { 6861 return $('<div/>').text(value || '').html(); 6862 } 6863 6864 function renderGroupList(groups) { 6865 let html = ''; 6866 groups.forEach(g => { 6867 const gradeName = g.grade_name || ''; 6868 const sgSeq = g.seq; 6869 const isDefaultGrade = String(g.grade_seq) === '0'; 6870 const autoIcon = g.use_auto == 1 ? '<span class="grade_auto-badge">ìë ë±ê¸</span>' : ''; 6871 const defaultIcon = isDefaultGrade ? '<span class="grade-default-badge">기본 ë±ê¸</span>' : ''; 6872 const editIcon = ` 6873 <button class="edit-group-btn" data-group="${sgSeq}" title="ìì "> 6874 <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> 6875 <span class="shopgrade-action-text">ë±ê¸ ìì </span> 6876 </button>`; 6877 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>` : ''; 6878 6879 let gradeDesc = '<ul class="grade-desc-list">'; 6880 let hasGradeDesc = false; 6881 6882 // ê¸°ì¤ 6883 if (isDefaultGrade) { 6884 gradeDesc += ` 6885 <li class="grade-desc-item"> 6886 <strong class="grade-desc-title">기ì¤</strong> 6887 <span class="grade-desc-content">ê°ì ì ì ì©</span> 6888 </li>`; 6889 hasGradeDesc = true; 6890 } else if (g.use_auto == 1) { 6891 gradeDesc += ` 6892 <li class="grade-desc-item"> 6893 <strong class="grade-desc-title">기ì¤</strong> 6894 <span class="grade-desc-content">${Number(g.use_auto_amount_min || 0).toLocaleString()}ì ì´ì ${Number(g.use_auto_amount_max || 0).toLocaleString()}ì ë¯¸ë§ êµ¬ë§¤</span> 6895 </li>`; 6896 hasGradeDesc = true; 6897 } 6898 6899 // íí 6900 if (g.discount_use == 1 || g.reserve_use == 1) { 6901 let discountPart = ''; 6902 let reservePart = ''; 6903 6904 if (g.discount_use == 1) { 6905 const discountUnit = g.discount_type == '1' ? 'ì' : '%'; 6906 const discountMaxPart = g.discount_type == '0' ? ` (ìµë ${Number(g.discount_max || 0).toLocaleString()}ì)` : ''; 6907 discountPart = `${Number(g.discount_amount || 0).toLocaleString()}ì ì´ì 구매 ì ${Number(g.discount_value || 0).toLocaleStr
6907ing()}${discountUnit} í ì¸${discountMaxPart}`; 6908 } 6909 if (g.reserve_use == 1) { 6910 const reserveUnit = g.reserve_type == '1' ? 'ì' : '%'; 6911 const reserveMaxPart = g.reserve_type == '0' ? ` (ìµë ${Number(g.reserve_max || 0).toLocaleString()}ì)` : ''; 6912 reservePart = `${Number(g.reserve_amount || 0).toLocaleString()}ì ì´ì 구매 ì ${Number(g.reserve_value || 0).toLocaleString()}${reserveUnit} ì 립${reserveMaxPart}`; 6913 } 6914 let benefitHtml = ''; 6915 if (discountPart) benefitHtml += `<span class="benefit-line">${discountPart}</span>`; 6916 if (reservePart) benefitHtml += `<span class="benefit-line ${discountPart ? 'indent' : ''}">${reservePart}</span>`; 6917 6918 gradeDesc += ` 6919 <li class="grade-desc-item"> 6920 <strong class="grade-desc-title">íí</strong> 6921 ${benefitHtml} 6922 </li>`; 6923 hasGradeDesc = true; 6924 } 6925 6926 // ë°°ì¡ë¹ 6927 if (g.delivery_benefit == 1) { 6928 gradeDesc += ` 6929 <li class="grade-desc-item"> 6930 <strong class="grade-desc-title">ë°°ì¡ë¹</strong> 6931 <span class="grade-desc-content">ë°°ì¡ë¹ 무ë£</span> 6932 </li>`; 6933 hasGradeDesc = true; 6934 } 6935 6936 if (!hasGradeDesc) { 6937 gradeDesc += ` 6938 <li class="grade-desc-item grade-desc-empty"> 6939 <strong class="grade-desc-title"></strong> 6940 <span class="grade-desc-content grade-desc-empty-text">ë´ì© ìì</span> 6941 </li>`; 6942 } 6943 6944 gradeDesc += '</ul>'; 6945 6946 html += ` 6947 <div class="grade-block" data-seq="${sgSeq}" ${g.grade_seq == 0 ? 'data-fixed="true"' : ''}> 6948 <div class="grade-line"> 6949 <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
694915.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> 6950 <span class="grade-name">${gradeName}${defaultIcon}<span class="auto-icon">${isDefaultGrade ? '' : autoIcon}</span></span> 6951 </div> 6952 <div class="grade-desc">${gradeDesc}</div> 6953 <div class="grade-actions">${isDefaultGrade ? editIcon : editIcon + trashIcon}</div> 6954 </div> 6955 `; 6956 }); 6957 return html; 6958 } 6959 6960 function renderPolicyBox(cycle_type, accumulate_month) { 6961 if (!cycle_type) { 6962 return ` 6963 <div class="policy-empty-state"> 6964 <div class="policy-empty-title" style="font-size:15px !important;font-weight:600 !important;line-height:22.5px !important;">ì¤ì ë ì ì± ì´ ììµëë¤.</div> 6965 <div class="policy-empty-desc">ë±ê¸ì 구매 ê¸ì¡ 기ì¤ì¼ë¡ ìë ì¡°ì íë ¤ë©´ ì ì± ì ì¤ì í´ì£¼ì¸ì.</div> 6966 <button class="auto-adjust-setting policy-empty-setting"> 6967 <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;"> 6968 <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"/> 6969 </svg><span class="shopgrade-action-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ì ì± ì¤ì í기</span> 6970 </button> 6971 </div> 6972 `; 6973 } else{ 6974 const cycleText = cycle_type === '2' 6975 ? '<span style="color:#222428 !important;">ì ë¨ì (매ì 1ì¼ ê°±ì )</span>' 6976 : '주 ë¨ì (매주 ììì¼ ê°±ì )'; 6977 const accText = cycle_type === '2' 6978 ? `<span style="color:#222428 !important;">ìµê·¼ ${accumulate_month}ê°ìê°ì ì´ êµ¬ë§¤ ê¸ì¡</span>` 6979 : 'ìµê·¼ 1주ì¼ê°ì ì´ êµ¬ë§¤ ê¸ì¡'; 6980 6981 return ` 6982 <div class="policy-row"> 6983 <div class="policy-label">ìë ë³ê²½ 주기</div> 6984 <div class="policy-value">${cycleText}</div> 6985 </div> 6986 <div class="policy-row"> 6987 <div class="policy-label">ëì 기ê°</div> 6988 <div class="policy-value">${accText}</div> 6989 </div> 6990 `; 6991 } 6992 } 6993 6994 function openShoppingGradeModal() { 6995 $('#modalAutopolicy').remove(); 6996 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>'; 6997 const shopgradeSettingTooltipContent = '<div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸ íìë¤ì ë±ê¸ì ì§ì í´ë³´ì¸ì.</div><div>' + shopgradeSettingTooltipBullet + 'íìê°ì ì 모ë íìì 기본ë±ê¸ì¼ë¡ ì§ì ë©ëë¤.</div><div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸/ë¸ëë ì´ìì ë§ê² ë±ê¸ ìë ì¡°ì ì´ íìíë¤ë©´ ì¤ì í´ ë³´ì¸ì.</div><div>' + shopgradeSettingTooltipBullet + 'ìì±í ë±ê¸ì ìì ì, í´ë¹ ë±ê¸ì ìì ëê³ ê¸°ë³¸ë±ê¸ì¼ë¡ ë³ê²½ë©ëë¤.</div>'; 6998 const shopgradeAutoTooltipContent = '<div>' + shopgradeSettingTooltipBullet + 'ì¬ì´í¸ íìë¤ì ë±ê¸ì 주기ì ë§ì¶° ìëì¼ë¡ ë³ê²½í©ëë¤.</div><div>' + shopgradeSettingTooltipBullet + 'ìë ì¡°ì ì ì¬ì©íì§ ìë ë±ê¸ì íìì ìí¥ë°ì§ ììµëë¤.</div>'; 6999 7000 const setGroup_modal = ` 7001 <div class="shopping-grade-modal">
7002 <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> 7003 <div class="grade-grid"> 7004 <div class="grade-grid-left"> 7005 <div class="grade-label">ë±ê¸ ì¤ì 7006 <span class="config-tooltip"> 7007 <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"/> 7008 </svg> 7009 </span> 7010 </div> 7011 </div> 7012 <div class="grade-grid-right"> 7013 <div class="grade-list-wrap">${renderGroupList(group_list)}</div> 7014 <div class="grade-header"> 7015 <button class="create-group-btn"> 7016 <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> 7017 <span class="shopgrade-add-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ë±ê¸ ì¶ê°</span> 7018 </button> 7019 </div> 7020 </div> 7021 </div> 7022 <div class="grade-grid"> 7023 <div class="grade-grid-left"> 7024 <div class="grade-label">ë±ê¸ ìë ì¡°ì 7025 <span class="config-tooltip"> 7026 <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"/> 7027 </svg> 7028 </span> 7029 </div> 7030 </div> 7031 <div class="grade-grid-right"> 7032 <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> 7033 <div class="policy-area"> 7034 <div class="gradeauto-line" style="font-size:15px !important;font-weight:600 !important;">ì ì± </div> 7035 <div class="policy-box"></div> 7036 <div class="grade-header policy-setting-footer"> 7037 <button class="auto-adjust-setting"> 7038 <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;"> 7039 <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
7039-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"/> 7040 </svg><span class="shopgrade-action-text" style="font-size:15px !important;font-weight:600 !important;line-height:21px !important;">ì¤ì í기</span> 7041 </button> 7042 </div> 7043 </div> 7044 </div> 7045 </div> 7046 </div> 7047 7048 `; 7049 7050 modal = $(this).showModalFlat( 7051 'ì¼í ë±ê¸ ì¤ì ', 7052 setGroup_modal, 7053 true, 7054 true, 7055 function () { // íì¸ ë²í¼ ì½ë°± 7056 if (hasShopgradeAutoCriteriaGap()) { 7057 showShopgradeCriteriaGapNotice(); 7058 return; 7059 } 7060 window.location.reload(); 7061 }, 7062 'ë«ê¸°', 7063 'ë«ê¸°', 7064 'cl-cmmodal cl-s-btn cl-p130 cl-p0 cover shopgrade-setting-modal', 7065 true, 7066 function () { // ë«ê¸° ë²í¼ ì½ë°± 7067 window.location.reload(); 7068 } 7069 ); 7070 modal.find('.modal-footer .close-button-dialog').remove(); 7071 modal.find('.modal-footer .ok-button-dialog') 7072 .removeClass('btn-primary ok-button-dialog') 7073 .addClass('btn-default close-button-dialog shopgrade-setting-close-action'); 7074 modal.find('.shopgrade-setting-info-popover').popover({ 7075 html: true, 7076 trigger: 'hover', 7077 placement: 'right' 7078 }); 7079 7080 // esc ë°©ì§ mspark 7081 $(document).on('keydown.disableEsc', function (e) { 7082 if (e.key === "Escape" || e.keyCode === 27) { 7083 e.preventDefault(); 7084 e.stopPropagation(); 7085 return false; 7086 } 7087 }); 7088 7089 bindEditEvents(modal); 7090 7091 setTimeout(() => { 7092 bindDragAndDrop(); // <== ëëê·¸ì¤ëë¡ íì±í 7093 }, 100); 7094 7095 } 7096 7097 function getShopgradeAutoCriteriaIntervals() { 7098 const intervals = []; 7099 $.each(group_list || [], function (_, grade) { 7100 if (!grade || String(grade.use_auto) !== '1') return true; 7101 if (String(grade.grade_seq) === '0') return true; 7102 7103 const min = Number(String(grade.use_auto_amount_min || '').replace(/,/g, '')); 7104 const max = Number(String(grade.use_auto_amount_max || '').replace(/,/g, '')); 7105 if (!isFinite(min) || !isFinite(max) || min >= max) return true; 7106 7107 intervals.push({ min: min, max: max }); 7108 }); 7109 7110 intervals.sort(function (a, b) { 7111 if (a.min === b.min) return a.max - b.max; 7112 return a.min - b.min; 7113 }); 7114 7115 return intervals; 7116 } 7117 7118 function hasShopgradeAutoCriteriaGap() { 7119 const intervals = getShopgradeAutoCriteriaIntervals(); 7120 if (intervals.length < 2) return false; 7121 7122 let coveredMax = intervals[0].max; 7123 for (let i = 1; i < intervals.length; i++) { 7124 if (coveredMax < intervals[i].min) return true; 7125 coveredMax = Math.max(coveredMax, intervals[i].max); 7126 } 7127 7128 return false; 7129 } 7130 7131 function getDefaultShopgradeName() { 7132 let defaultName = 'ì¨ìë±ê¸'; 7133 $.each(group_list || [], function (_, grade) { 7134 if (grade && String(grade.grade_seq) === '0' && grade.grade_name) { 7135 defaultName = grade.grade_name; 7136 return false; 7137 } 7138 }); 7139 return defaultName; 7140 } 7141 7142 function showShopgradeCriteriaGapNotice() { 7143 const defaultGradeName = escapeShopgradeText(getDefaultShopgradeName()); 7144 const html = ` 7145 <div class="delete-grade-modal"> 7146 <div class="delete-grade-message"> 7147 ë±ê¸ ê¸°ì¤ ì¬ì´ì ì ì©ëì§ ìë 구매ê¸ì¡ 구ê°ì´ ììµëë¤.<br> 7148 ì¼ë¶ íìì 기ì¤ì ë§ë ë±ê¸ì´ ììµëë¤.<br> 7149 í´ë¹ íìì 기본 ë±ê¸(${defaultGradeName})ì¼ë¡ ì ì©ë©ëë¤. 7150 </div> 7151 </div> 7152 `; 7153 7154 const noticeModal = $(window).showModalFlat( 7155 'ìë´', 7156 html, 7157 true, 7158 false, 7159 '', 7160 'ok', 7161 '', 7162 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal shopgrade-gap-notice-modal', 7163 true, 7164 function () { 7165 $('.modal-overlay-blocker').remove(); 7166 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 7167 } 7168 ); 7169 7170 setTimeout(() => { 7171 $('.modal-dialog.cl-cmmodal') 7172 .not(':last') 7173 .addClass('shopgrade-auto-policy-covered') 7174 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 7175 }, 10); 7176 7177 return noticeModal; 7178 } 7179 7180 function bindDragAndDrop() { 7181 $('.grade-list-wrap').sortable({ 7182 handle: '.drag-handle', 7183 items: '.grade-block:not([data-fixed="true"])', // grade_seq=0 ì ì ì¸ 7184 placeholder: 'grade-placeholder', 7185 axis: 'y', 7186 update: function () { 7187 const order = []; 7188 $('.grade-list-wrap .grade-block').each((idx, el) => { 7189 const $el = $(el); 7190 const seq = $el.data('seq'); 7191 const fixed = $el.data('fixed'); 7192 7193 if (!fixed) { 7194 order.push({ seq: seq, grade_seq: idx}); 7195 } 7196 }); 7197 7198 // ìë²ì ì ë°ì´í¸ ìì² 7199 $.ajax({ 7200 url: '/shop_grade/update_gradeseq', 7201 type: 'POST', 7202 data: { 7203 sid: SID, 7204 order: JSON.stringify(order) 7205 }, 7206 success: function (res) { 7207 if (typeof res === 'string') res = JSON.parse(res); 7208 if (res.success) { 7209 console.log('ë±ê¸ ììê° ì ì¥ëììµëë¤.'); 7210 } else { 7211 alert('ìì ì ì¥ ì¤í¨: ' + (res.error || 'ì ì ìì')); 7212 } 7213 }, 7214 error: function () { 7215 alert('ìì ì ì¥ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.'); 7216 } 7217 }); 7218 } 7219 }); 7220 } 7221 7222 function bindEditEvents() { 7223 $(document).off('click', '.edit-group-btn').on('click', '.edit-group-btn', function () { 7224 const sgSeq = $(this).data('group'); 7225 7226 $.ajax({ 7227 type: 'POST', 7228 url: '/shop_grade/get_one', 7229 data: { seq: sgSeq, sid: SID }, 7230 dataType: 'json', 7231 success: function (res) { 7232 if (res.success && res.item) { 7233 openGroupEditModal(res.item); 7234 } else { 7235 alert('ë±ê¸ ì 보를 ë¶ë¬ì¤ì§ 못íìµëë¤.'); 7236 } 7237 }, 7238 error: function () { 7239 alert('ìë² ì¤ë¥ê° ë°ìíìµëë¤.'); 7240 } 7241 }); 7242 }); 7243 } 7244 7245 $(document).off('click', '.auto-adjust-setting').on('click', '.auto-adjust-setting', function () { 7246 $('#modalAutopolicy').remove(); 7247 $.ajax({ 7248 type: 'POST', 7249 url: '/shop_grade/get_policy', 7250 data: { sid: SID }, 7251 dataType: 'json', 7252 success: function (res) { 7253 openAutoAdjustModal(res.policy, function () { 7254 $.ajax({ 7255 type: 'POST', 7256 url: '/shop_grade/get_policy', 7257 data: { sid: SID }, 7258 dataType: 'json', 7259 success: function (res2) { 7260 const policy = res2.success && res2.policy ? res2.policy : null;
7261 const html = renderPolicyBox(policy ? policy.cycle_type : null, policy ? policy.accumulate_month : null); 7262 currentShopgradeAutoPolicyEnabled = !!(policy && policy.cycle_type); 7263 shopgradeAutoPolicyEnabled = currentShopgradeAutoPolicyEnabled; 7264 currentShopgradeAutoPolicyCycleType = policy && policy.cycle_type ? String(policy.cycle_type) : '2'; 7265 $('.modal-content .policy-box').html(html); 7266 $('.modal-content .policy-area').toggleClass('policy-empty-area', !policy || !policy.cycle_type); 7267 } 7268 }); 7269 }); 7270 } 7271 }); 7272 }); 7273 7274 // ë±ê¸ ìëì¡°ì ì¤ì 7275 function openAutoAdjustModal(policy, onSaveCallback) { 7276 const autogradecycle = $.lang[LANG]['manager.list.member.shopgrade.autogradecycle'], 7277 autogradepolicyperiod = $.lang[LANG]['manager.list.member.shopgrade.autogradepolicyperiod']; 7278 const restoreAutoPolicyParentModal = function () { 7279 $('.auto-policy-month-select-floating-menu').remove(); 7280 $('.auto-policy-month-select').removeClass('open has-floating-menu'); 7281 $('.modal-overlay-blocker.shopgrade-auto-policy-backdrop').remove(); 7282 $('.shopgrade-auto-policy-covered .modal-overlay-blocker').remove(); 7283 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 7284 }; 7285 const modalAutopolicy = ` 7286 <form id="auto-adjust-form"> 7287 <input type="hidden" name="base_date"> 7288 <input type="hidden" name="start_date"> 7289 <input type="hidden" name="end_date"> 7290 <div class="mng-modal-body"> 7291 <table class="grade-create-table"> 7292 <tr> 7293 <td class="form-title"><span class="shopgrade-auto-policy-title-label">ìë ë³ê²½ 주기</span><span class="config-tooltip"> 7294 <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"/> 7295 </svg> 7296 </span> 7297 </td> 7298 <td> 7299 <div class="form-inline cycle_type"> 7300 <label> 7301 <input type="radio" name="cycle_type" value="1"> 7302 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7303 <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> 7304 </svg> 7305 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7306 <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> 7307 <circle cx="9" cy="9" r="6"></circle> 7308 </svg>주 ë¨ì(매주 ììì¼ ê°±ì ) 7309 </label> 7310 <label> 7311 <input type="radio" name="cycle_type" value="2"> 7312 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7313 <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> 7314 </svg> 7315 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18"> 7316 <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> 7317 <circle cx="9" cy="9" r="6"></circle> 7318 </svg>ì ë¨ì(매ì 1ì¼ ê°±ì ) 7319 </label> 7320 </div> 7321 </td> 7322 </tr> 7323 <tr> 7324 <td class="form-title"><span class="shopgrade-auto-policy-title-label">ëì 기ê°</span><span class="config-tooltip"> 7325 <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"/>
7325<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"/> 7326 </svg> 7327 </span> 7328 </td> 7329 <td> 7330 <div class="form-inline"> 7331 <select name="accumulate_month" class="grade_select"> 7332 <option value="1">ìµê·¼ 1ê°ì</option> 7333 <option value="2">ìµê·¼ 2ê°ì</option> 7334 <option value="3">ìµê·¼ 3ê°ì</option> 7335 <option value="6">ìµê·¼ 6ê°ì</option> 7336 <option value="12">ìµê·¼ 12ê°ì</option> 7337 <option value="24">ìµê·¼ 24ê°ì</option> 7338 <option value="36">ìµê·¼ 36ê°ì</option> 7339 <option value="48">ìµê·¼ 48ê°ì</option> 7340 <option value="60">ìµê·¼ 60ê°ì</option> 7341 <option value="72">ìµê·¼ 72ê°ì</option> 7342 </select> 7343 ê°ì ì´ êµ¬ë§¤ ê¸ì¡ 7344 </div> 7345 </td> 7346 </tr> 7347 <tr> 7348 <td class="form-title">
7348ë³ê²½ ìì ìì</td> 7349 <td class="policy-preview"></td> 7350 </tr> 7351 </table> 7352 </div> 7353 </form> 7354 `; 7355 7356 const policy_modal = $('<div>').showModalFlat( 7357 'ë±ê¸ ìë ì¡°ì ì¤ì ', 7358 modalAutopolicy, 7359 true, 7360 true, 7361 function () { 7362 const formData = $('#auto-adjust-form').serializeArray(); 7363 const data = { sid: SID }; 7364 formData.forEach(e => data[e.name] = e.value); 7365 7366 $.ajax({ 7367 type: 'POST', 7368 url: '/shop_grade/update_policy', 7369 data: data, 7370 dataType: 'json', 7371 success: function (res) { 7372 if (res.success) { 7373 alert('ì¤ì ì´ ì ì¥ëììµëë¤.'); 7374 policy_modal.modal('hide'); 7375 $('#modalAutopolicy').remove(); 7376 restoreAutoPolicyParentModal(); 7377 7378 if (typeof onSaveCallback === 'function') { 7379 onSaveCallback(); 7380 } 7381 7382 } else { 7383 alert('ì¤ì ì ì¥ ì¤í¨: ' + res.error); 7384 } 7385 }, 7386 error: function () { 7387 alert('ìë² ì¤ë¥ ë°ì'); 7388 } 7389 }); 7390 }, 7391 'ì·¨ì', 7392 'ì ì¥', 7393 'cl-cmmodal cl-s-btn w560 cl-p130 cl-p0 cover shopgrade-auto-policy-modal', 7394 true, 7395 restoreAutoPolicyParentModal, 7396 null, 7397 restoreAutoPolicyParentModal 7398 ); 7399 policy_modal.addClass('shopgrade-auto-policy-modal-scroll'); 7400 7401 setTimeout(() => { 7402 7403 $('.modal-dialog.cl-cmmodal') 7404 .not(':last') // ê°ì¥ ë§ì§ë§ì ì´ë¦° ëª¨ë¬ ì ì¸ 7405 .addClass('shopgrade-auto-policy-covered') 7406 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 7407 7408 const $form = $('#auto-adjust-form'); 7409 const $cycleType = $form.find('input[name="cycle_type"]'); 7410 const $accumulateSelect = $form.find('select[name="accumulate_month"]'); 7411 7412 if (!policy) { 7413 $cycleType.filter('[value="2"]').prop('checked', true); 7414 $accumulateSelect.val('1'); 7415 } 7416 7417 if (policy) { 7418 $cycleType.filter(`[value="${policy.cycle_type}"]`).prop('checked', true); 7419 $accumulateSelect.val(policy.accumulate_month); 7420 } 7421 7422 function syncAutoPolicyMonthSelect() { 7423 const $custom = $form.find('.auto-policy-month-select'); 7424 if (!$custom.length) return; 7425 7426 const selectedText = $accumulateSelect.find('option:selected').text(); 7427 $custom.find('.auto-policy-month-select-value').text(selectedText); 7428 $custom.find('.auto-policy-month-select-option').removeClass('selected'); 7429 $custom.find(`.auto-policy-month-select-option[data-value="${$accumulateSelect.val()}"]`).addClass('selected'); 7430 $custom.toggleClass('disabled', $accumulateSelect.prop('disabled')); 7431 } 7432 7433 function buildAutoPolicyMonthSelect() { 7434 if ($accumulateSelect.next('.auto-policy-month-select').length) return; 7435 7436 const $custom = $('<div/>', { 'class': 'auto-policy-month-select', tabindex: 0 }); 7437 const $button = $('<button/>', { type: 'button', 'class': 'auto-policy-month-select-btn' }); 7438 const $value = $('<span/>', { 'class': 'auto-policy-month-select-value' }); 7439 const $menu = $('<div/>', { 'class': 'auto-policy-month-select-menu' }); 7440 7441 $accumulateSelect.find('option').each(function () { 7442 const $option = $(this); 7443 $menu.append($('<button/>', { 7444 type: 'button', 7445 'class': 'auto-policy-month-select-option', 7446 'data-value': $option.val(), 7447 text: $option.text() 7448 })); 7449 }); 7450 7451 $button.append($value); 7452 $custom.append($button, $menu); 7453 $accumulateSelect.addClass('auto-policy-native-select').after($custom); 7454 syncAutoPolicyMonthSelect(); 7455 } 7456 7457 function removeAutoPolicyFloatingMonthSelect() { 7458 $('.auto-policy-month-select-floating-menu').remove(); 7459 $('.auto-policy-month-select').removeClass('open has-floating-menu'); 7460 } 7461 7462 function openAutoPolicyFloatingMonthSelect($wrap) { 7463 removeAutoPolicyFloatingMonthSelect(); 7464 7465 const $button = $wrap.find('.auto-policy-month-select-btn'); 7466 const offset = $button.offset(); 7467 const $menu = $wrap.find('.auto-policy-month-select-menu').clone(); 7468 7469 $wrap.addClass('open has-floating-menu'); 7470 $menu 7471 .addClass('auto-policy-month-select-floating-menu') 7472 .css({ 7473 top: offset.top + $button.outerHeight() + 2, 7474 left: offset.left, 7475 width: $button.outerWidth() 7476 }) 7477 .appendTo('body') 7478 .show(); 7479 } 7480 7481 buildAutoPolicyMonthSelect(); 7482 7483 $(document).off('click.autoPolicyMonthSelect').on('click.autoPolicyMonthSelect', function (e) { 7484 if (!$(e.target).closest('.auto-policy-month-select, .auto-policy-month-select-floating-menu').length) { 7485 removeAutoPolicyFloatingMonthSelect(); 7486 } 7487 }); 7488 7489 $form.off('click.autoPolicyMonthSelectBtn', '.auto-policy-month-select-btn').on('click.autoPolicyMonthSelectBtn', '.auto-policy-month-select-btn', function (e) { 7490 e.preventDefault(); 7491 e.stopPropagation(); 7492 const $wrap = $(this).closest('.auto-policy-month-select'); 7493 if ($wrap.hasClass('disabled')) return; 7494 if ($wrap.hasClass('open')) { 7495 removeAutoPolicyFloatingMonthSelect(); 7496 return; 7497 } 7498 openAutoPolicyFloatingMonthSelect($wrap); 7499 }); 7500 7501 $form.off('click.autoPolicyMonthSelectOption', '.auto-policy-month-select-option').on('click.autoPolicyMonthSelectOption', '.auto-policy-month-select-option', function (e) { 7502 e.preventDefault(); 7503 e.stopPropagation(); 7504 const $option = $(this); 7505 $accumulateSelect.val($option.attr('data-value')); 7506 syncAutoPolicyMonthSelect(); 7507 removeAutoPolicyFloatingMonthSelect(); 7508 $accumulateSelect.trigger('change'); 7509 }); 7510 7511 $(document).off('click.autoPolicyMonthSelectFloatingOption').on('click.autoPolicyMonthSelectFloatingOption', '.auto-policy-month-select-floating-menu .auto-policy-month-select-option', function (e) { 7512 e.preventDefault(); 7513 e.stopPropagation(); 7514 const $option = $(this); 7515 $accumulateSelect.val($option.attr('data-value')); 7516 syncAutoPolicyMonthSelect(); 7517 removeAutoPolicyFloatingMonthSelect(); 7518 $accumulateSelect.trigger('change'); 7519 }); 7520 7521 function formatDateLocal(date) { 7522 return date.getFullYear() + '-' + 7523 String(date.getMonth() + 1).padStart(2, '0') + '-' + 7524 String(date.getDate()).padStart(2, '0'); 7525 } 7526 7527 $form.find('input, select').off('change.policyPreview').on('change.policyPreview', function () { 7528 const type = $form.find('input[name="cycle_type"]:checked').val();
7529 const month = parseInt($form.find('select[name="accumulate_month"]').val(), 10); 7530 const today = new Date(); 7531 7532 if (type === '1') { 7533 $form.find('select[name="accumulate_month"]').prop('disabled', true); 7534 } else { 7535 $form.find('select[name="accumulate_month"]').prop('disabled', false); 7536 } 7537 syncAutoPolicyMonthSelect(); 7538 7539 let start, end, baseDate; 7540 7541 if (type === '1') { 7542 const day = today.getDay(); 7543 const diffToMon = ((1 - day + 7) % 7) || 7; 7544 baseDate = new Date(today); 7545 baseDate.setDate(today.getDate() + diffToMon); 7546 start = new Date(baseDate); 7547 start.setDate(start.getDate() - 7); 7548 end = new Date(baseDate); 7549 end.setDate(end.getDate() - 1); 7550 } else { 7551 baseDate = new Date(today.getFullYear(), today.getMonth() + 1, 1); // 기ì¤ì¼: ë¤ìë¬ 1ì¼ 7552 start = new Date(today.getFullYear(), today.getMonth() + 1 - month, 1); // ëì ììì¼ 7553 end = new Date(today.getFullYear(), today.getMonth() + 1, 0); // ëì ì¢ ë£ì¼ (ì´ë²ë¬ ë§ì¼) 7554 } 7555 const baseDateFormatted = formatDateLocal(baseDate); 7556 const startStr = formatDateLocal(start); 7557 const endStr = formatDateLocal(end); 7558 7559 const preview = ` 7560 <div class="grade-changeex shopgrade-auto-policy-preview-text"> 7561 <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> ê°ì ì´ ëì 기ì¤ì¼ë¡ ë³ê²½ë©ëë¤. 7562 </div> 7563 `; 7564 7565 $('.policy-preview').html(preview); 7566 $form.find('input[name="base_date"]').val(baseDateFormatted); 7567 $form.find('input[name="start_date"]').val(startStr); 7568 $form.find('input[name="end_date"]').val(endStr); 7569 }); 7570 7571 $form.find('input, select').trigger('change'); 7572 }, 50); 7573 } 7574 7575 // ë±ê¸ ì¶ê° 7576 $(document).off('click', '.create-group-btn').on('click', '.create-group-btn', function () { 7577 openGradeModal('add', {}); 7578 }); 7579 7580 // ë±ê¸ ìì 7581 function openGroupEditModal(data) { 7582 openGradeModal('edit', data); 7583 } 7584 7585 7586 function stripNumberOnly($form) { 7587 $form.find('input[numberOnly]').each(function () { 7588 this.value = normalizeIntegerInputValue(this.value); 7589 }); 7590 } 7591 7592 function normalizeIntegerInputValue(value, max) { 7593 value = (value == null) ? '' : String(value).replace(/,/g, '').trim(); 7594 if (value === '') return ''; 7595 7596 const num = parseFloat(value.replace(/[^0-9.]/g, '')); 7597 if (!isFinite(num)) return ''; 7598 7599 let intValue = Math.floor(num); 7600 if (typeof max !== 'undefined') intValue = Math.min(intValue, max); 7601 return String(intValue); 7602 } 7603 7604 function formatNumberFieldsOnce($form) { 7605 const names = [ 7606 'use_auto_amount_min', 'use_auto_amount_max', 7607 'discount_amount', 'discount_value', 'discount_max', 7608 'reserve_amount', 'reserve_value', 'reserve_max' 7609 ]; 7610 names.forEach((n) => { 7611 const $el = $form.find(`input[name="${n}"]`); 7612 if (!$el.length) return; 7613 let v = $el.val(); 7614 if (v == null || v === '') return; 7615 v = normalizeIntegerInputValue(v); 7616 const withComma = (window.addCommas ? window.addCommas(v) : String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ',')); 7617 $el.val(withComma); 7618 }); 7619 } 7620 7621 function alertShopgradeAutoPolicyRequired() { 7622 alert('ë±ê¸ ìë ì¡°ì ì¤ì ì í´ì£¼ì¸ì.'); 7623 } 7624 7625 function syncShopgradeAutoPolicyToggle($form) { 7626 if (!$form || !$form.length) $form = $('#grade-form').last(); 7627 const $useAuto = $form.find('input[name="use_auto"]'); 7628 if (!$useAuto.length) return; 7629 7630 const disabled = !currentShopgradeAutoPolicyEnabled; 7631 const $switch = $useAuto.closest('.simple-switch'); 7632 $switch.toggleClass('shopgrade-auto-policy-disabled', disabled); 7633 $useAuto.attr('aria-disabled', disabled ? 'true' : 'false'); 7634 7635 if (disabled) { 7636 $useAuto.prop('checked', false); 7637 $form.find('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]') 7638 .prop('required', false) 7639 .prop('disabled', true) 7640 .removeClass('input-error'); 7641 $form.find('.criteria-row').hide(); 7642 $form.find('.criteria-divider, .auto-error-row').hide(); 7643 } 7644 } 7645 7646 function openGradeModal(mode, data = {}) { 7647 const isDefaultGrade = mode === 'edit' && String(data.grade_seq) === '0'; 7648 const title = (mode === 'edit') ? 'ì¼í ë±ê¸ ìì ' : 'ì¼í ë±ê¸ ì¶ê°'; 7649 const html = getGradeFormHtml(data, mode); 7650 const useShopgradeFormStyle = mode === 'add' || mode === 'edit'; 7651 const modalClass = 'cl-cmmodal cl-s-btn cl-p130 cl-p0 cover' + (useShopgradeFormStyle ? ' shopgrade-add-modal' : ''); 7652 const removeShopgradeModalOverlay = function () { 7653 $('.modal-overlay-blocker').remove(); 7654 $('.shopgrade-add-modal-covered').removeClass('shopgrade-add-modal-covered'); 7655 $('.shopgrade-add-modal-covered-wrap').removeClass('shopgrade-add-modal-covered-wrap'); 7656 }; 7657
7658 const modal = $('<div>').showModalFlat( 7659 title, 7660 html, 7661 true, 7662 true, 7663 function onConfirm() { 7664 const $form = $('#grade-form').last(); 7665 const $input = $form.find('.grade_name'); 7666 const gradeNameVal = $.trim($input.val()); 7667 $input.val(gradeNameVal); 7668 $form.find('.input-error').removeClass('input-error'); 7669 $('.grade-error-text, .auto-error-row').remove(); 7670 $form.find('.shopgrade-has-error').removeClass('shopgrade-has-error'); 7671 let valid = true; 7672 let $firstInvalid = $(); 7673 if ($.trim($input.val()) === '') { 7674 $input.closest('tr').addClass('shopgrade-has-error'); 7675 $input.addClass('input-error') 7676 .after(` 7677 <div class="grade-error-text"> 7678 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7679 <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> 7680 <rect x="6" y="3" width="1" height="5"></rect> 7681 <rect x="6" y="9" width="1" height="1"></rect> 7682 </svg> ë±ê¸ ì´ë¦ì ì ë ¥ í´ ì£¼ì¸ì. 7683 </div> 7684 `).focus(); 7685 $input.next('.grade-error-text').contents().filter(function () { 7686 return this.nodeType === 3; 7687 }).remove(); 7688 $input.next('.grade-error-text').append(document.createTextNode('ë±ê¸ ì´ë¦ì ì ë ¥í´ì£¼ì¸ì.')); 7689 7690 $(document).off('input.grade_name').on('input.grade_name', 'input.grade_name', function () { 7691 const $t = $(this); 7692 if ($t.val().trim().length > 0) { 7693 $t.removeClass('input-error'); 7694 $t.next('.grade-error-text').remove(); 7695 $t.closest('tr').removeClass('shopgrade-has-error'); 7696 } 7697 }); 7698 $firstInvalid = $input; 7699 valid = false; 7700 } 7701 7702 const isAutoChecked = !isDefaultGrade && $form.find('input[name="use_auto"]').is(':checked'); 7703 const isDiscountChecked = $form.find('input[name="discount_use"]').is(':checked'); 7704 const isReserveChecked = $form.find('input[name="reserve_use"]').is(':checked'); 7705 7706 if (isAutoChecked && !currentShopgradeAutoPolicyEnabled) { 7707 syncShopgradeAutoPolicyToggle($form); 7708 alertShopgradeAutoPolicyRequired(); 7709 return false; 7710 } 7711 7712 function reqInput($el) { 7713 const val = $.trim($el.val()); 7714 const num = Number(String(val).replace(/,/g, '')); 7715 7716 if (val === '' || val === '0' || (!isNaN(num) && num === 0)) { 7717 $el.addClass('input-error'); 7718 if (!$firstInvalid.length) $firstInvalid = $el; 7719 valid = false; 7720 } else { 7721 $el.removeClass('input-error'); 7722 } 7723 } 7724 7725 function reqSelect($el) { 7726 const val = $.trim($el.val()); 7727 7728 if (val === '' || val == null) { 7729 $el.addClass('input-error'); 7730 if (!$firstInvalid.length) $firstInvalid = $el; 7731 valid = false; 7732 } else { 7733 $el.removeClass('input-error'); 7734 } 7735 } 7736 7737 // ê°ì ìíì ë°ë¼ íì ê²ì¬ 7738 reqInput($input); 7739 if (gradeNameVal !== '') { 7740 let hasDuplicateGradeName = false; 7741 $.each(group_list || [], function (_, grade) { 7742 if (!grade) return true; 7743 if (mode === 'edit' && String(grade.seq) === String(data.seq)) return true; 7744 if ($.trim(grade.grade_name || '') === gradeNameVal) { 7745 hasDuplicateGradeName = true; 7746 return false; 7747 } 7748 }); 7749 7750 if (hasDuplicateGradeName) { 7751 $input.next('.grade-error-text').remove(); 7752 $input.closest('tr').addClass('shopgrade-has-error'); 7753 $input.addClass('input-error').after(` 7754 <div class="grade-error-text"> 7755 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7756 <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> 7757 <rect x="6" y="3" width="1" height="5"></rect> 7758 <rect x="6" y="9" width="1" height="1"></rect> 7759 </svg> 7760 </div> 7761 `); 7762 $input.next('.grade-error-text').append(document.createTextNode('ì´ë¯¸ ìì±ë ë±ê¸ì´ë¦ ì ëë¤.')); 7763 if (!$firstInvalid.length) $firstInvalid = $input; 7764 valid = false;
7765 } 7766 } 7767 7768 if (isAutoChecked) { 7769 reqInput($form.find('input[name="use_auto_amount_min"]')); 7770 reqInput($form.find('input[name="use_auto_amount_max"]')); 7771 } 7772 if (isDiscountChecked) { 7773 reqInput($form.find('input[name="discount_amount"]')); 7774 reqInput($form.find('input[name="discount_value"]')); 7775 reqSelect($form.find('select[name="discount_type"]')); 7776 if ($form.find('select[name="discount_type"]').val() === '0') { 7777 reqInput($form.find('input[name="discount_max"]')); 7778 } 7779 } 7780 if (isReserveChecked) { 7781 reqInput($form.find('input[name="reserve_amount"]')); 7782 reqInput($form.find('input[name="reserve_value"]')); 7783 reqSelect($form.find('select[name="reserve_type"]')); 7784 if ($form.find('select[name="reserve_type"]').val() === '0') { 7785 reqInput($form.find('input[name="reserve_max"]')); 7786 } 7787 } 7788 7789 if (isAutoChecked) { 7790 const $autoMin = $form.find('input[name="use_auto_amount_min"]'); 7791 const $autoMax = $form.find('input[name="use_auto_amount_max"]'); 7792 const autoMinVal = $.trim($autoMin.val()); 7793 const autoMaxVal = $.trim($autoMax.val()); 7794 const autoMin = Number(String(autoMinVal).replace(/,/g, '')); 7795 const autoMax = Number(String(autoMaxVal).replace(/,/g, '')); 7796 let hasAutoOverlap = false; 7797 7798 if (autoMinVal !== '' && autoMaxVal !== '' && autoMin > 0 && autoMax > 0 && autoMin < autoMax) { 7799 $.each(group_list || [], function (_, grade) { 7800 if (!grade || String(grade.use_auto) !== '1') return true; 7801 if (String(grade.grade_seq) === '0') return true; 7802 if (mode === 'edit' && String(grade.seq) === String(data.seq)) return true; 7803 7804 const gradeMin = Number(String(grade.use_auto_amount_min || 0).replace(/,/g, '')); 7805 const gradeMax = Number(String(grade.use_auto_amount_max || 0).replace(/,/g, '')) || 1000000000000; 7806 if (autoMin < gradeMax && autoMax > gradeMin) { 7807 hasAutoOverlap = true; 7808 return false; 7809 } 7810 }); 7811 } 7812 7813 if (hasAutoOverlap) { 7814 $('.auto-error-row').remove(); 7815 $form.find('.criteria-row').after(` 7816 <div class="auto-error-text auto-error-row"> 7817 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7818 <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> 7819 <rect x="6" y="3" width="1" height="5"></rect> 7820 <rect x="6" y="9" width="1" height="1"></rect> 7821 </svg> ì¤ë³µë 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤. 7822 </div> 7823 `); 7824 $form.find('.auto-error-row').last().contents().filter(function () { 7825 return this.nodeType === 3; 7826 }).remove(); 7827 $form.find('.auto-error-row').last().append(document.createTextNode('ëì¼í 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤.')); 7828 $autoMin.add($autoMax).addClass('input-error'); 7829 if (!$firstInvalid.length) $firstInvalid = $autoMin; 7830 valid = false; 7831 } 7832 } 7833 if (!valid) { 7834 if ($firstInvalid.length) $firstInvalid.focus(); 7835 return false; 7836 } 7837 7838 // ìë² ì ì¡ ì ì«ì ì ì 7839 stripNumberOnly($form); 7840 const formData = new FormData($form[0]); 7841 formData.append('sid', SID); 7842 if (mode === 'edit' && typeof data.seq !== 'undefined') { 7843 formData.append('seq', data.seq); 7844 } 7845 if (isDefaultGrade) { 7846 if (typeof formData.set === 'function') { 7847 formData.set('use_auto', '0'); 7848 formData.set('use_auto_amount_min', '0'); 7849 formData.set('use_auto_amount_max', '0'); 7850 } else { 7851 formData.append('use_auto_amount_min', '0'); 7852 formData.append('use_auto_amount_max', '0'); 7853 } 7854 } 7855 if ($form.find('select[name="discount_type"]').val() === '1') { 7856 if (typeof formData.set === 'function') formData.set('discount_max', '0'); 7857 else formData.append('discount_max', '0'); 7858 } 7859 if ($form.find('select[name="reserve_type"]').val() === '1') { 7860 if (typeof formData.set === 'function') formData.set('reserve_max', '0'); 7861 else formData.append('reserve_max', '0'); 7862 } 7863 7864 const url = (mode === 'edit') 7865 ? '/shop_grade/update/type/edit' 7866 : '/shop_grade/update/type/add'; 7867 7868 // ìí í¸ë¦¬ê±°(ë·° ê°±ì ) 7869 $form.find('input[name="use_auto"]').trigger('change'); 7870 $form.find('input[name="discount_use"]').trigger('change'); 7871 $form.find('input[name="reserve_use"]').trigger('change'); 7872 7873 $.ajax({ 7874 type: 'POST', 7875 url, 7876 data: formData, 7877 processData: false, 7878 contentType: false, 7879 dataType: 'json', 7880 success: function (res) { 7881 if ((mode === 'edit' && res.success) || (mode === 'add' && !res.error)) { 7882 alert(mode === 'edit' ? 'ìì ëììµëë¤.' : 'ì ì¥ëììµëë¤.'); 7883 modal.modal('hide'); 7884 removeShopgradeModalOverlay(); 7885 refreshGradeList(); 7886 return; 7887 } 7888 7889 // ìë¬ ì²ë¦¬ 7890 const err = res.error; 7891 if (err === 'auto_policy_required') { 7892 syncShopgradeAutoPolicyToggle($form); 7893 alertShopgradeAutoPolicyRequired(); 7894 return; 7895 } 7896 if (err === 'grade_name') { 7897 const $in = $form.find('.grade_name'); 7898 $in.next('.grade-error-text').remove(); 7899 $in.closest('tr').addClass('shopgrade-has-error'); 7900 $in.addClass('input-error').after(` 7901 <div class="grade-error-text"> 7902 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7903 <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> 7904 <rect x="6" y="3" width="1" height="5"></rect> 7905 <rect x="6" y="9" width="1" height="1"></rect> 7906 </svg> ì¤ë³µë ë±ê¸ ì´ë¦ ì ëë¤. 7907 </div> 7908 `).focus(); 7909 $in.next('.grade-error-text').contents().filter(function () { 7910 return this.nodeType === 3; 7911 }).remove(); 7912 $in.next('.grade-error-text').append(document.createTextNode('ì´ë¯¸ ìì±ë ë±ê¸ì´ë¦ ì ëë¤.')); 7913 $(document).off('input.grade_name').on('input.grade_name', 'input.grade_name', function () { 7914 const $t = $(this); 7915 if ($t.val().trim().length > 0) { 7916 $t.removeClass('input-error'); 7917 $t.next('.grade-error-text').remove(); 7918 $t.closest('tr').removeClass('shopgrade-has-error'); 7919 } 7920 }); 7921 return; 7922 } 7923 7924 if (err === 'use_auto') { 7925 $('.auto-error-row').remove(); 7926 const $autoMin = $form.find('input[name="use_auto_amount_min"]'); 7927 const $autoMax = $form.find('input[name="use_auto_amount_max"]'); 7928 const autoMinVal = $.trim($autoMin.val()); 7929 const autoMaxVal = $.trim($autoMax.val()); 7930 if (autoMinVal === '' || autoMaxVal === '') { 7931 $autoMin.add($autoMax).filter(function () { 7932 return $.trim($(this).val()) === ''; 7933 }).addClass('input-error'); 7934 return; 7935 } 7936 $form.find('.criteria-row').after(` 7937 <div class="auto-error-text auto-error-row"> 7938 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7939 <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> 7940 <rect x="6" y="3" width="1" height="5"></rect> 7941 <rect x="6" y="9" width="1" height="1"></rect> 7942 </svg> ì¤ë³µë 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤. 7943 </div> 7944 `); 7945 $form.find('.auto-error-row').last().contents().filter(function () { 7946 return this.nodeType === 3; 7947 }).remove(); 7948 $form.find('.auto-error-row').last().append(document.createTextNode('ëì¼í 기ì¤ì ì¼íë±ê¸ì´ ì¡´ì¬í©ëë¤.')); 7949 $autoMin.add($autoMax).addClass('input-error'); 7950 return; 7951 } 7952
7953 if (err === 'invalid_range') { 7954 $('.auto-error-row').remove(); 7955 $form.find('.criteria-row').after(` 7956 <div class="auto-error-text auto-error-row"> 7957 <svg viewBox="0 0 13 13" width="13" height="13" fill="currentColor"> 7958 <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> 7959 <rect x="6" y="3" width="1" height="5"></rect> 7960 <rect x="6" y="9" width="1" height="1"></rect> 7961 </svg> ìµìê°ì´ ìµëê°ë³´ë¤ í¬ê±°ë ê°ìµëë¤. 7962 </div> 7963 `); 7964 $form.find('.auto-error-row').last().contents().filter(function () { 7965 return this.nodeType === 3; 7966 }).remove(); 7967 $form.find('.auto-error-row').last().append(document.createTextNode('ìµìê°ì´ ìµëê°ë³´ë¤ í¬ê±°ë ê°ìµëë¤.')); 7968 $form.find('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]').addClass('input-error'); 7969 return; 7970 } 7971 7972 if (err === 'nama_full') { 7973 alert('ì¼íë±ê¸ì ìµë 20ê°ê¹ì§ë§ ë±ë¡í ì ììµëë¤.'); 7974 return; 7975 } 7976 7977 alert(res.error || 'ì²ë¦¬ì ì¤í¨íìµëë¤.'); 7978 }, 7979 error: function () { 7980 alert('ìë² ì¤ë¥ê° ë°ìíìµëë¤.'); 7981 } 7982 }); 7983 }, 7984 'ì·¨ì', 7985 'ì ì¥', 7986 modalClass, 7987 true, 7988 removeShopgradeModalOverlay, 7989 '', 7990 removeShopgradeModalOverlay 7991 ); 7992 7993 if (useShopgradeFormStyle) { 7994 modal.addClass('shopgrade-add-modal-scroll'); 7995 $('.modal-dialog.shopgrade-setting-modal') 7996 .addClass('shopgrade-add-modal-covered') 7997 .closest('.modal') 7998 .addClass('shopgrade-add-modal-covered-wrap'); 7999 modal.find('.config-tooltip svg.sg-grade-use') 8000 .attr({ 8001 'xmlns': 'http://www.w3.org/2000/svg', 8002 'viewBox': '0 0 13 13', 8003 'width': '13', 8004 'height': '13' 8005 }) 8006 .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"/>'); 8007 modal.find('#grade-form input[type="text"]').not('.grade_name').attr('placeholder', '0'); 8008 modal.find('select[name="discount_type"], select[name="reserve_type"]').each(function () { 8009 var $select = $(this); 8010 var $wonOption = $select.find('option[value="1"]'); 8011 var $percentOption = $select.find('option[value="0"]'); 8012 if ($wonOption.length && $percentOption.length) { 8013 $wonOption.insertBefore($percentOption); 8014 } 8015 }); 8016 modal.find('.modal-footer .close-button-dialog').text('ì·¨ì'); 8017 modal.find('.delivery-benefit-toggle-row').closest('tr').addClass('delivery-benefit-row'); 8018 modal.find('.grade-create-table tr:has(td[colspan] hr)').addClass('shopgrade-hr-row'); 8019 var $criteriaRow = modal.find('.criteria-row'); 8020 $criteriaRow.closest('tr').addClass('auto-grade-row'); 8021 var $autoMin = $criteriaRow.find('input[name="use_auto_amount_min"]'); 8022 var $autoMax = $criteriaRow.find('input[name="use_auto_amount_max"]'); 8023 var criteriaCycleText = currentShopgradeAutoPolicyCycleType === '1' ? '매주' : '매ì'; 8024 if ($criteriaRow.length && $autoMin.length && $autoMax.length) { 8025 $criteriaRow.empty().append( 8026 $('<div/>', { 'class': 'form-inline3 criteria-title' }).append( 8027 document.createTextNode('ë±ê¸ 충족 ê¸°ì¤ : '), 8028 $('<span/>', { 'class': 'criteria-cycle', text: criteriaCycleText }) 8029 ), 8030 $('<div/>', { 'class': 'criteria-amount-row criteria-amount-line' }).append( 8031 $('<span/>', { 'class': 'criteria-label', text: '구매 ê¸ì¡' }), 8032 $('<span/>', { 'class': 'criteria-input-wrap' }).append($autoMin), 8033 $('<span/>', { 'class': 'criteria-unit', text: 'ì ì´ì,' }), 8034 $('<span/>', { 'class': 'criteria-input-wrap' }).append($autoMax), 8035 $('<span/>', { 'class': 'criteria-unit', text: 'ì 미ë§' }) 8036 ) 8037 ); 8038 } 8039 } 8040 8041 // ëª¨ë¬ ê²¹ì¹¨ ë°©ì§ ì¤ë²ë ì´ 8042 setTimeout(() => { 8043 const $coveredModals = $('.modal-dialog.cl-cmmodal').not(':last'); 8044 if (useShopgradeFormStyle) { 8045 $coveredModals.filter('.shopgrade-setting-modal') 8046 .addClass('shopgrade-add-modal-covered') 8047 .closest('.modal') 8048 .addClass('shopgrade-add-modal-covered-wrap'); 8049 } else { 8050 $coveredModals.append('<div class="modal-overlay-blocker"></div>'); 8051 } 8052 const $gradeForm = $('#grade-form').last(); 8053 formatNumberFieldsOnce($gradeForm); 8054 $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'); 8055 syncShopgradeAutoPolicyToggle($gradeForm); 8056 if (useShopgradeFormStyle) { 8057 modal.find('.discount-benefit-row:not(.discount-max-row), .reserve-benefit-row:not(.reserve-max-row)').each(function () { 8058 var $row = $(this); 8059 var isDiscountRow = $row.hasClass('discount-benefit-row'); 8060 $row.closest('tr').addClass(isDiscountRow ? 'discount-benefit-form-row' : 'reserve-benefit-form-row'); 8061 var isEnabled = isDiscountRow 8062 ? modal.find('input[name="discount_use"]').is(':checked') 8063 : modal.find('input[name="reserve_use"]').is(':checked'); 8064 var $amount = $row.find('.pos-relative').first().detach(); 8065 var $value = $row.find('input.input-ms').first().detach(); 8066 var $select = $row.find('select').first().detach(); 8067 var $label = $row.find('span').last().detach(); 8068 var $amountUnit = $amount.children('.pos-span, .pos-span1, .pos-span2').last(); 8069 var $conditionSpan = $amount.children('span').not('.pos-span, .pos-span1, .pos-span2').last(); 8070 var amountUnitText = $.trim($amountUnit.text()); 8071 var amountConditionText = $.trim($amount.contents().filter(function () { 8072 return this.nodeType === 3; 8073 }).text()); 8074 if (!amountConditionText && $conditionSpan.length) { 8075 amountConditionText = $.trim($conditionSpan.text()); 8076 } 8077 $conditionSpan.remove(); 8078 $amountUnit.remove(); 8079 $amount.contents().filter(function () { 8080 return this.nodeType === 3; 8081 }).remove(); 8082 var conditionText = amountConditionText || $.trim($row.contents().filter(function () { 8083 return this.nodeType === 3; 8084 }).text()); 8085 if (amountUnitText) { 8086 conditionText = amountUnitText + (conditionText ? ' ' + conditionText : ''); 8087 } 8088 $row.empty().addClass('shopgrade-benefit-line').append( 8089 $amount, 8090 $('<span/>', { 'class': 'benefit-condition', text: conditionText }), 8091 $value, 8092 $select, 8093 $label 8094 ); 8095 $row.css('display', isEnabled ? 'grid' : 'none'); 8096 }); 8097 modal.find('.discount-max-row, .reserve-max-row').each(function () { 8098 var $row = $(this); 8099 var isDiscountRow = $row.hasClass('discount-max-row'); 8100 var isEnabled = isDiscountRow 8101 ? modal.find('input[name="discount_use"]').is(':checked') 8102 : modal.find('input[name="reserve_use"]').is(':checked'); 8103 var $maxLabel = $row.find('.max-label').first().detach(); 8104 var $maxInput = $row.find('.pos-relative').first().detach(); 8105 $maxInput.children('.pos-span, .pos-span1, .pos-span2').last().addClass('benefit-max-unit'); 8106 $row.empty().addClass('shopgrade-benefit-max-line').append( 8107 $('<span/>', { 'class': 'benefit-condition' }), 8108 $maxLabel, 8109 $maxInput, 8110 $('<span/>', { 'class': 'benefit-unit-placeholder' }) 8111 ); 8112 var isPercent = isDiscountRow 8113 ? modal.find('select[name="discount_type"]').val() === '0' 8114 : modal.find('select[name="reserve_type"]').val() === '0'; 8115 $row.css('display', (isEnabled && isPercent) ? 'grid' : 'none'); 8116 }); 8117 $gradeForm.find('input[name="discount_use"], input[name="reserve_use"], select[name="discount_type"], select[name="reserve_type"]').trigger('change'); 8118 modal.find('select[name="discount_type"], select[name="reserve_type"]').each(function () { 8119 var $select = $(this); 8120 if ($select.next('.shopgrade-type-select').length) return;
8121 var $custom = $('<div/>', { 'class': 'shopgrade-type-select', tabindex: 0 }); 8122 var $button = $('<button/>', { type: 'button', 'class': 'shopgrade-type-select-btn' }); 8123 var $value = $('<span/>', { 'class': 'shopgrade-type-select-value', text: $select.find('option:selected').text() }); 8124 var $menu = $('<div/>', { 'class': 'shopgrade-type-select-menu' }); 8125 $select.find('option').each(function () { 8126 var $option = $(this); 8127 $menu.append($('<button/>', { 8128 type: 'button', 8129 'class': 'shopgrade-type-select-option' + ($option.is(':selected') ? ' selected' : ''), 8130 'data-value': $option.val(), 8131 text: $option.text() 8132 })); 8133 }); 8134 $button.append($value); 8135 $custom.append($button, $menu); 8136 $select.addClass('shopgrade-native-type-select').after($custom); 8137 }); 8138 syncShopgradeBenefitRows($gradeForm); 8139 } 8140 }, 10); 8141 } 8142 8143 8144 8145 function normalizeGradeFormData(data = {}, mode = 'edit') { 8146 const isAddMode = mode === 'add'; 8147 const isDefaultGrade = mode === 'edit' && String(data.grade_seq) === '0'; 8148 const emptyIfNull = (value, fallback = '') => { 8149 return (value === null || typeof value === 'undefined' || value === 'null') ? fallback : value; 8150 }; 8151 const isEmptyValue = (value) => { 8152 return value === null || typeof value === 'undefined' || value === '' || value === 'null'; 8153 }; 8154 const isEmptyNumberValue = (value) => { 8155 return isEmptyValue(value) || String(value) === '0'; 8156 }; 8157 const emptyIfNoNumber = (value) => { 8158 return isEmptyNumberValue(value) ? '' : normalizeIntegerInputValue(value); 8159 }; 8160 const hasNoBenefitSettings = (fields) => { 8161 return fields.every((field) => isEmptyNumberValue(data[field])); 8162 }; 8163 const defaultBenefitType = isAddMode ? '0' : '1'; 8164 return { 8165 seq: emptyIfNull(data.seq), 8166 grade_seq: emptyIfNull(data.grade_seq), 8167 grade_name: emptyIfNull(data.grade_name), 8168 use_auto: isDefaultGrade ? 0 : (hasNoBenefitSettings(['use_auto_amount_min', 'use_auto_amount_max']) ? 0 : emptyIfNull(data.use_auto, 0)), 8169 use_auto_amount_min: isDefaultGrade ? '' : emptyIfNoNumber(data.use_auto_amount_min), 8170 use_auto_amount_max: isDefaultGrade ? '' : emptyIfNoNumber(data.use_auto_amount_max), 8171 discount_use: isAddMode ? 1 : (hasNoBenefitSettings(['discount_amount', 'discount_value', 'discount_max']) ? 0 : emptyIfNull(data.discount_use, 0)), 8172 discount_amount: emptyIfNoNumber(data.discount_amount), 8173 discount_value: emptyIfNoNumber(data.discount_value), 8174 discount_type: emptyIfNull(data.discount_type, defaultBenefitType), 8175 discount_max: emptyIfNoNumber(data.discount_max), 8176 reserve_use: isAddMode ? 1 : (hasNoBenefitSettings(['reserve_amount', 'reserve_value', 'reserve_max']) ? 0 : emptyIfNull(data.reserve_use, 0)), 8177 reserve_amount: emptyIfNoNumber(data.reserve_amount), 8178 reserve_value: emptyIfNoNumber(data.reserve_value), 8179 reserve_type: emptyIfNull(data.reserve_type, defaultBenefitType), 8180 reserve_max: emptyIfNoNumber(data.reserve_max), 8181 delivery_benefit: isAddMode ? 1 : emptyIfNull(data.delivery_benefit, 0) 8182 }; 8183 } 8184 8185 function getGradeFormHtml(data = {}, mode = 'edit') { 8186 const { 8187 grade_seq = '', 8188 grade_name = '', 8189 use_auto = 0, 8190 use_auto_amount_min = '', 8191 use_auto_amount_max = '', 8192 discount_use = 1, 8193 discount_amount = '', 8194 discount_value = '', 8195 discount_type = '0', 8196 discount_max = '', 8197 reserve_use = 1, 8198 reserve_amount = '', 8199 reserve_value = '', 8200 reserve_type = '0', 8201 reserve_max = '', 8202 delivery_benefit = 0 8203 } = normalizeGradeFormData(data, mode); 8204 const isDefaultGrade = mode === 'edit' && String(grade_seq) === '0'; 8205 8206 const slAutouse = '• ììì ì¤ì í ë±ê¸ ìë ì¡°ì ì´ ë°ìë©ëë¤. í´ë¹ ë±ê¸ì ì¬ì©ì ìì¹ ìì ê²½ì° ìëì¼ë¡ ë±ê¸ ë³ê²½ì´ ëì§ ììµëë¤.<br><br>• 충족 기ì¤ì ì´ ì¤ê²°ì ê¸ì¡ìì ê°ì¢ í ì¸,ì¿ í°,ì 립ê¸, ë°°ì¡ë¹ ë± ííì´ ì ì¸ë ê¸ì¡) ê¸°ì¤ ì ëë¤.', 8207 slAddbenefit= $.lang[LANG]['manager.list.member.shopgrade.addbenefit'], 8208 slSavebenefit=$.lang[LANG]['manager.list.member.shopgrade.s
8208avebenefit'], 8209 slDelibenefit=$.lang[LANG]['manager.list.member.shopgrade.delibenefit']; 8210 8211 return ` 8212 <form id="grade-form"> 8213 <div class="mng-modal-body"> 8214 <table class="grade-create-table"> 8215 <tr> 8216 <td class="form-title">ë±ê¸ ì´ë¦</td> 8217 <td> 8218 <div class="form-inline"> 8219 <input type="text" name="grade_name" class="grade_name" required 8220 placeholder="ë±ê¸ ì´ë¦ì ì ë ¥ í´ ì£¼ì¸ì." value="${grade_name}"> 8221 </div> 8222 </td> 8223 </tr> 8224 8225 ${isDefaultGrade ? '' : ` 8226 <tr> 8227 <td class="form-title">ìë ë±ê¸ ì¬ì© 8228 <span class="config-tooltip"> 8229 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8230 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slAutouse}"> 8231 <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"/> 8232 <rect x="6" y="9" width="1" height="1"/> 8233 <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"/> 8234 </svg> 8235 </span> 8236 </td> 8237 <td> 8238 <div class="toggle-switch"> 8239 <label class="simple-switch"> 8240 <input type="checkbox" name="use_auto" class="simple-switch-input" value="1" ${(use_auto == 1 && currentShopgradeAutoPolicyEnabled) ? 'checked' : ''}> 8241 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8242 <span class="simple-switch-handle"></span> 8243 </label> 8244 </div> 8245 8246 <div class="criteria-row" style="display: ${use_auto == 1 ? 'block' : 'none'};"> 8247 <div class="form-inline3">ë±ê¸ 충족 ê¸°ì¤ : <span class="criteria-cycle">${currentShopgradeAutoPolicyCycleType === '1' ? '매주' : '매ì'}</span></div> 8248 <div class="form-inline"> 8249 구매 ê¸ì¡ 8250 <div class="pos-relative"> 8251 <input type="text" name="use_auto_amount_min" class="input-ss" numberOnly data-keep-comma value="${use_auto_amount_min}"> 8252 <span class="pos-span1">ì ì´ì,</span> 8253 <input type="text" name="use_auto_amount_max" class="input-ss" numberOnly data-keep-comma value="${use_auto_amount_max}"> 8254 <span class="pos-span2">ì 미ë§</span> 8255 </div> 8256 </div> 8257 </div> 8258 </td> 8259 </tr> 8260 `} 8261 8262 <tr><td colspan="2"><hr></td></tr> 8263 8264 <tr> 8265 <td class="form-title">ì¶ê° í ì¸ íí 8266 <span class="config-tooltip"> 8267 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8268 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slAddbenefit}"> 8269 <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"/> 8270 <rect x="6" y="9" width="1" height="1"/> 8271 <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"/> 8272 </svg> 8273 </span> 8274 </td> 8275 <td> 8276 <div class="toggle-switch"> 8277 <label class="simple-switch"> 8278 <input type="checkbox" name="discount_use" class="simple-switch-input" value="1" ${discount_use == 1 ? 'checked' : ''}> 8279 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8280 <span class="simple-switch-handle"></span> 8281 </label> 8282 </div> 8283 8284 <div class="form-inline3 discount-benefit-row" style="display: ${discount_use == 1 ? '' : 'none'};"> 8285 <div class="pos-relative"> 8286 <input type="text" name="discount_amount" class="input-mm" numberOnly data-keep-comma value="${discount_amount}"> 8287 <span class="pos-span">ì</span> 8288 <span>ì´ì 구매 ì</span> 8289 </div> 8290 <input type="text" name="discount_value" class="input-ms" numberOnly data-keep-comma value="${discount_value}"> 8291 <select name="discount_type"> 8292 <option value="0" ${discount_type == '0' ? 'selected' : ''}>%</option> 8293 <option value="1" ${discount_type == '1' ? 'selected' : ''}>ì</option> 8294 </select> 8295 <span>
8295í ì¸</span> 8296 </div> 8297 8298 <div class="form-inline1 discount-benefit-row discount-max-row" style="display: ${(discount_use == 1 && discount_type == '0') ? '' : 'none'};"> 8299 <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> 8300 <div class="pos-relative"> 8301 <input type="text" name="discount_max" class="input-mm" numberOnly data-keep-comma value="${discount_max}"> 8302 <span class="pos-span">ì</span> 8303 </div> 8304 </div> 8305 </td> 8306 </tr> 8307 8308 <tr> 8309 <td class="form-title">ì¶ê° ì 립 íí 8310 <span class="config-tooltip"> 8311 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8312 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slSavebenefit}"> 8313 <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"/> 8314 <rect x="6" y="9" width="1" height="1"/> 8315 <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"/> 8316 </svg> 8317 </span> 8318 </td> 8319 <td> 8320 <div class="toggle-switch"> 8321 <label class="simple-switch"> 8322 <input type="checkbox" name="reserve_use" class="simple-switch-input" value="1" ${reserve_use == 1 ? 'checked' : ''}> 8323 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8324 <span class="simple-switch-handle"></span> 8325 </label> 8326 </div> 8327 8328 <div class="form-inline3 reserve-benefit-row" style="display: ${reserve_use == 1 ? '' : 'none'};"> 8329 <div class="pos-relative"> 8330 <input type="text" name="reserve_amount" class="input-mm" numberOnly data-keep-comma value="${reserve_amount}"> 8331 <span class="pos-span">ì</span> 8332 <span>ì´ì 구매 ì</span> 8333 </div> 8334 <input type="text" name="reserve_value" class="input-ms" numberOnly data-keep-comma value="${reserve_value}"> 8335 <select name="reserve_type"> 8336 <option value="0" ${reserve_type == '0' ? 'selected' : ''}>%</option> 8337 <option value="1" ${reserve_type == '1' ? 'selected' : ''}>ì</option> 8338 </select> 8339 <span>ì 립</span> 8340 </div> 8341 8342 <div class="form-inline1 reserve-benefit-row reserve-max-row" style="display: ${(reserve_use == 1 && reserve_type == '0') ? '' : 'none'};"> 8343 <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> 8344 <div class="pos-relative"> 8345 <input type="text" name="reserve_max" class="input-mm" numberOnly data-keep-comma value="${reserve_max}"> 8346 <span class="pos-span">ì</span> 8347 </div> 8348 </div> 8349 </td> 8350 </tr> 8351 8352 <tr> 8353 <td class="form-title">ë°°ì¡ë¹ ë¬´ë£ 8354 <span class="config-tooltip"> 8355 <svg class="sg-grade-use" viewBox="0 0 13 13" width="13" height="13" tabindex="0" 8356 data-toggle="tooltip" data-placement="right" data-html="true" data-original-title="${slDelibenefit}"> 8357 <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"/> 8358 <rect x="6" y="9" width="1" height="1"/> 8359 <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.
835966 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"/> 8360 </svg> 8361 </span> 8362 </td> 8363 <td> 8364 <div class="delivery-benefit-toggle-row"> 8365 <div class="toggle-switch"> 8366 <label class="simple-switch"> 8367 <input type="checkbox" name="delivery_benefit" class="simple-switch-input delivery-toggle" value="1" ${delivery_benefit == 1 ? 'checked' : ''}> 8368 <span class="simple-switch-label" data-on="On" data-off="Off"></span> 8369 <span class="simple-switch-handle"></span> 8370 </label> 8371 </div> 8372 </div> 8373 </td> 8374 </tr> 8375 8376 </table> 8377 </div> 8378 </form> 8379 `; 8380 } 8381 8382 8383 $(document).off('blur.keepComma', 'input[numberOnly][data-keep-comma]').on('blur.keepComma', 'input[numberOnly][data-keep-comma]', function () { 8384 var v = $(this).val(); 8385 v = (typeof removeCommas === 'function') ? removeCommas(v) : String(v).replace(/,/g, ''); 8386 if (typeof addCommas === 'function') { 8387 $(this).val(addCommas(v)); 8388 } else { 8389 $(this).val(String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ',')); 8390 } 8391 }); 8392 8393 function stripNumberOnly($form) { 8394 $form.find('input[numberOnly]').each(function () { 8395 this.value = (typeof removeCommas === 'function') 8396 ? removeCommas(this.value) 8397 : String(this.value).replace(/,/g, ''); 8398 }); 8399 } 8400 8401 $(function () { 8402 $('input[numberOnly]').each(function () { 8403 var v = $(this).val(); 8404 if (v) { 8405 v = v.replace(/,/g, ''); // í¹ì 기존 ì½¤ë§ ì ê±° 8406 $(this).val(v.replace(/\B(?=(\d{3})+(?!\d))/g, ",")); // ì²ë¨ì ì½¤ë§ ì°ê¸° 8407 } 8408 }); 8409 }); 8410 8411 8412 8413 function getShopgradeCriteriaDisplay() { 8414 return $(window).width() <= 767 ? 'flex' : 'block'; 8415 } 8416 8417 $(document).off('change', '.simple-switch-input').on('change', '.simple-switch-input', function (e) { 8418 const $tr = $(this).closest('tr'); 8419 8420 if ($tr.find('td:first').text().includes('ìë')) { 8421 if ($(this).attr('name') === 'use_auto' && !currentShopgradeAutoPolicyEnabled) { 8422 const $form = $(this).closest('#grade-form'); 8423 syncShopgradeAutoPolicyToggle($form); 8424 if (e.originalEvent) alertShopgradeAutoPolicyRequired(); 8425 return false; 8426 } 8427 const checked = $(this).is(':checked'); 8428 $('.criteria-row').css('display', checked ? getShopgradeCriteriaDisplay() : 'none'); 8429 $('.criteria-divider, .auto-error-row').toggle(checked); 8430 } 8431 }); 8432 8433 $(document).off('click.shopgradeAutoPolicy', '#grade-form .shopgrade-auto-policy-disabled') 8434 .on('click.shopgradeAutoPolicy', '#grade-form .shopgrade-auto-policy-disabled', function (e) { 8435 e.preventDefault(); 8436 e.stopImmediatePropagation(); 8437 const $form = $(this).closest('#grade-form'); 8438 syncShopgradeAutoPolicyToggle($form); 8439 alertShopgradeAutoPolicyRequired(); 8440 return false; 8441 }); 8442 8443 $(window).off('resize.shopgradeCriteria').on('resize.shopgradeCriteria', function () { 8444 $('.shopgrade-add-modal .criteria-row:visible').css('display', getShopgradeCriteriaDisplay()); 8445 }); 8446 8447 function syncShopgradeBenefitRows($form) { 8448 if (!$form || !$form.length) $form = $('#grade-form').last(); 8449 8450 var $discountType = $form.find('select[name="discount_type"]'); 8451 var $discountUse = $form.find('input[name="discount_use"]'); 8452 var $discountMax = $form.find('input[name="discount_max"]'); 8453 var showDiscountRows = $discountUse.is(':checked'); 8454 var showDiscountMax = showDiscountRows && $discountType.val() === '0'; 8455 8456 $form.find('tr.discount-benefit-form-row') 8457 .toggleClass('shopgrade-benefit-off', !showDiscountRows); 8458 $form.find('.discount-benefit-row').not('.discount-max-row') 8459 .toggleClass('shopgrade-benefit-hidden', !showDiscountRows) 8460 .css('display', showDiscountRows ? 'grid' : 'none'); 8461 8462 $form.find('.discount-max-row') 8463 .toggleClass('shopgrade-benefit-hidden shopgrade-max-hidden', !showDiscountMax) 8464 .css('display', showDiscountMax ? 'grid' : 'none'); 8465 $form.find('input[name="discount_amount"], input[name="discount_value"], select[name="discount_type"]') 8466 .prop('required', showDiscountRows) 8467 .prop('disabled', !showDiscountRows); 8468 $discountMax.prop('required', showDiscountMax).prop('disabled', !showDiscountMax); 8469 if (!showDiscountRows) { 8470 $form.find('input[name="discount_amount"], input[name="discount_value"], input[name="discount_max"]').removeClass('input-error'); 8471 } else if (!showDiscountMax) { 8472 $discountMax.removeClass('input-error').val(''); 8473 } 8474 8475 var $reserveType = $form.find('select[name="reserve_type"]'); 8476 var $reserveUse = $form.find('input[name="reserve_use"]'); 8477 var $reserveMax = $form.find('input[name="reserve_max"]'); 8478 var showReserveRows = $reserveUse.is(':checked'); 8479 var showReserveMax = showReserveRows && $reserveType.val() === '0'; 8480 8481 $form.find('tr.reserve-benefit-form-row') 8482 .toggleClass('shopgrade-benefit-off', !showReserveRows); 8483 $form.find('.reserve-benefit-row').not('.reserve-max-row') 8484 .toggleClass('shopgrade-benefit-hidden', !showReserveRows) 8485 .css('display', showReserveRows ? 'grid' : 'none'); 8486 8487 $form.find('.reserve-max-row') 8488 .toggleClass('shopgrade-benefit-hidden shopgrade-max-hidden', !showReserveMax) 8489 .css('display', showReserveMax ? 'grid' : 'none'); 8490 $form.find('input[name="reserve_amount"], input[name="reserve_value"], select[name="reserve_type"]') 8491 .prop('required', showReserveRows) 8492 .prop('disabled', !showReserveRows); 8493 $reserveMax.prop('required', showReserveMax).prop('disabled', !showReserveMax); 8494 if (!showReserveRows) { 8495 $form.find('input[name="reserve_amount"], input[name="reserve_value"], input[name="reserve_max"]').removeClass('input-error'); 8496 } else if (!showReserveMax) { 8497 $reserveMax.removeClass('input-error').val(''); 8498 } 8499 } 8500 8501 $(document).off('click.shopgradeTypeSelect').on('click.shopgradeTypeSelect', function (e) { 8502 if (!$(e.target).closest('.shopgrade-type-select').length) { 8503 $('.shopgrade-type-select').removeClass('open'); 8504 } 8505 }); 8506 8507 $(document).off('click.shopgradeTypeSelectBtn', '.shopgrade-type-select-btn').on('click.shopgradeTypeSelectBtn', '.shopgrade-type-select-btn', function (e) { 8508 e.preventDefault(); 8509 e.stopPropagation(); 8510 var $wrap = $(this).closest('.shopgrade-type-select'); 8511 $('.shopgrade-type-select').not($wrap).removeClass('open'); 8512 $wrap.toggleClass('open'); 8513 }); 8514 8515 $(document).off('click.shopgradeTypeSelectOption', '.shopgrade-type-select-option').on('click.shopgradeTypeSelectOption', '.shopgrade-type-select-option', function (e) { 8516 e.preventDefault(); 8517 e.stopPropagation(); 8518 var $option = $(this); 8519 var $wrap = $option.closest('.shopgrade-type-select'); 8520 var $select = $wrap.prev('select.shopgrade-native-type-select'); 8521 var selectedValue = $option.attr('data-value'); 8522 var $form = $select.closest('#grade-form'); 8523 $select.val(selectedValue); 8524 if ($select[0]) { 8525 $select[0].dispatchEvent(new Event('change', { bubbles: true })); 8526 } else { 8527 $select.trigger('change'); 8528 } 8529 syncShopgradeBenefitRows($form); 8530 $wrap.find('.shopgrade-type-select-value').text($option.text()); 8531 $wrap.find('.shopgrade-type-select-option').removeClass('selected'); 8532 $option.addClass('selected'); 8533 $wrap.removeClass('open'); 8534 }); 8535 8536 let isComposing = false;
8537 8538 // ê³µíµ íí°ë§ í¨ì 8539 function filterGroupName($input) { 8540 let val = $input.val(); 8541 val = val.replace(/[^a-zA-Zê°-í£ ]/g, ''); 8542 if (val.length > 40) val = val.substring(0, 40); 8543 $input.val(val); 8544 } 8545 8546 // ì¡°í© ì ë ¥ ìì 8547 $(document).on('compositionstart', '.grade_name', function () { 8548 isComposing = true; 8549 }); 8550 8551 // ì¡°í© ì ë ¥ ëë¬ì ë íí°ë§ 8552 $(document).on('compositionend', '.grade_name', function () { 8553 isComposing = false; 8554 filterGroupName($(this)); 8555 }); 8556 8557 // ì¼ë° ì ë ¥ ì¤ì¼ ë (ì문 ì ë ¥ ë±) 8558 $(document).on('input', '.grade_name', function () { 8559 if (!isComposing) { 8560 filterGroupName($(this)); 8561 } 8562 }); 8563 8564 $(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) { 8565 const $target = $(this); 8566 const $form = $target.closest('#grade-form'); 8567 const isUserChange = !!e.originalEvent; 8568 8569 if ($target.hasClass('input-mm') || $target.hasClass('input-ms') || $target.hasClass('input-ss')) { 8570 $target.val(normalizeIntegerInputValue($target.val(), 99999999)); 8571 } 8572 8573 if ($target.attr('name') === 'discount_type' || $target.attr('name') === 'discount_value') { 8574 const $type = $form.find('select[name="discount_type"]'); 8575 const $value = $form.find('input[name="discount_value"]'); 8576 const $discountMax = $form.find('input[name="discount_max"]'); 8577 const isPercent = $type.val() === '0'; 8578 $value.attr(isPercent ? { min: 0, max: 100 } : { min: 0, max: 99999999 }); 8579 8580 if ($target.attr('name') === 'discount_type' && isUserChange) { 8581 $value.removeClass('input-error').val(''); 8582 $discountMax.removeClass('input-error').val(''); 8583 } else if ($target.attr('name') === 'discount_value') { 8584 $value.val(normalizeIntegerInputValue($value.val(), isPercent ? 100 : 99999999)); 8585 } 8586 8587 syncShopgradeBenefitRows($form); 8588 } 8589 8590 if ($target.attr('name') === 'reserve_type' || $target.attr('name') === 'reserve_value') { 8591 const $type = $form.find('select[name="reserve_type"]'); 8592 const $value = $form.find('input[name="reserve_value"]'); 8593 const $reserveMax = $form.find('input[name="reserve_max"]'); 8594 const isPercent = $type.val() === '0'; 8595 $value.attr(isPercent ? { min: 0, max: 100 } : { min: 0, max: 99999999 }); 8596 8597 if ($target.attr('name') === 'reserve_type' && isUserChange) { 8598 $value.removeClass('input-error').val(''); 8599 $reserveMax.removeClass('input-error').val(''); 8600 } else if ($target.attr('name') === 'reserve_value') { 8601 $value.val(normalizeIntegerInputValue($value.val(), isPercent ? 100 : 99999999)); 8602 } 8603 8604 syncShopgradeBenefitRows($form); 8605 } 8606 }); 8607 8608 // 1. ìë ë±ê¸ ì²´í¬ ìíì ë°ë¼ ê¸°ì¤ íë required ì¬ë¶ ì¤ì 8609 $(document).on('change', 'input[name="use_auto"]', function () { 8610 const isChecked = $(this).is(':checked'); 8611 $('input[name="use_auto_amount_min"], input[name="use_auto_amount_max"]') 8612 .prop('required', isChecked) 8613 .prop('disabled', !isChecked); 8614 }); 8615 8616 // 2. í ì¸ íí íë ì ì´ 8617 $(document).on('change', 'input[name="discount_use"]', function () { 8618 const $form = $(this).closest('#grade-form'); 8619 syncShopgradeBenefitRows($form); 8620 }); 8621 8622 // 3. ì 립 íí íë ì ì´ 8623 $(document).on('change', 'input[name="reserve_use"]', function () { 8624 const $form = $(this).closest('#grade-form'); 8625 syncShopgradeBenefitRows($form); 8626 }); 8627 8628 $(document).off('input.shopgradeRequired change.shopgradeRequired', '#grade-form input, #grade-form select') 8629 .on('input.shopgradeRequired change.shopgradeRequired', '#grade-form input, #grade-form select', function () { 8630 const $field = $(this); 8631 const val = $.trim($field.val()); 8632 if (val !== '' && val !== '0') { 8633 $field.removeClass('input-error'); 8634 if ($field.hasClass('grade_name')) { 8635 $field.next('.grade-error-text').remove(); 8636 $field.closest('tr').removeClass('shopgrade-has-error'); 8637 } 8638 } 8639 }); 8640 8641 8642 // ë±ê¸ ìì 8643 $(document).off('click', '.delete-group-btn').on('click', '.delete-group-btn', function () {
8644 const gradeSeq = $(this).data('sgseq'); 8645 const gradeName = $(this).data('gradename'); 8646 8647 // ë±ê¸ì í¬í¨ë íì ì ì¡°í 8648 $.ajax({ 8649 type: 'POST', 8650 url: '/shop_grade/shopgrade_member_count', 8651 dataType: 'json', 8652 data: { sid: SID, grade_id: gradeSeq }, 8653 success: function (res) { 8654 const memberCount = res.count || 0; 8655 8656 if (memberCount > 0) { 8657 const warnModal = $(this).showModalFlat( 8658 'ì¼í ë±ê¸ ìì ', 8659 ` 8660 <div class="delete-grade-modal"> 8661 <div class="delete-grade-name-row"> 8662 <span class="delete-grade-name-label">ë±ê¸ëª </span> 8663 <span class="delete-grade-name-value">[ ${gradeName} ]</span> 8664 </div> 8665 <div class="delete-grade-message"> 8666 ì´ ë±ê¸ì íìì´ <strong>${memberCount}</strong>ëª ììµëë¤.<br> 8667 <span class="delete-grade-danger">ìì </span> íë©´ 기본 ë±ê¸ì¼ë¡ ë´ë ¤ê°ëë¤. 8668 </div> 8669 </div> 8670 `, 8671 true, 8672 true, 8673 function () { 8674 $.ajax({ // 기존 ì¨ìì¼ë¡ 리ì 8675 type: 'POST', 8676 url: '/shop_grade/shopgrade_member_reset', 8677 dataType: 'json', 8678 data: { sid: SID, grade_id: gradeSeq }, 8679 success: function (resetRes) { 8680 $.ajax({ 8681 type: 'POST', 8682 url: '/shop_grade/update/type/delete', 8683 dataType: 'json', 8684 data: { sid: SID, seq: gradeSeq }, 8685 success: function (res) { 8686 if (res.success) { 8687 alert('ìì ëììµëë¤.'); 8688 warnModal.modal('hide'); 8689 $('.modal-overlay-blocker').remove(); 8690 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8691 refreshGradeList(); 8692 } else { 8693 alert('ìì ì¤í¨: ' + res.error); 8694 } 8695 } 8696 }); 8697 } 8698 }); 8699 }, 8700 'ì·¨ì', 8701 'ìì ', 8702 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal', 8703 true, 8704 function () { 8705 $('.modal-overlay-blocker').remove(); 8706 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8707 } 8708 ); 8709 8710 setTimeout(() => { 8711 $('.modal-dialog.cl-cmmodal') 8712 .not(':last') 8713 .addClass('shopgrade-auto-policy-covered') 8714 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 8715 }, 10); 8716 8717 } else { 8718 8719 const confirmModal = $(this).showModalFlat( 8720 'ì¼í ë±ê¸ ìì ', 8721 ` 8722 <div class="delete-grade-modal"> 8723 <div class="delete-grade-name-row"> 8724 <span class="delete-grade-name-label">ë±ê¸ëª </span> 8725 <span class="delete-grade-name-value">[ ${gradeName} ]</span> 8726 </div> 8727 <div class="delete-grade-message"> 8728 ìì ë ì¼í ë±ê¸ì 복구 ë¶ê°ë¥í©ëë¤.<br> 8729 ì¼í ë±ê¸ì <span class="delete-grade-danger">ìì </span> íìê² ìµëê¹? 8730 </div> 8731 </div> 8732 `, 8733 true, 8734 true, 8735 function () { 8736 $.ajax({ 8737 type: 'POST', 8738 url: '/shop_grade/update/type/delete', 8739 dataType: 'json', 8740 data: { sid: SID, seq: gradeSeq }, 8741 success: function (res) { 8742 if (res.success) { 8743 alert('ìì ëììµëë¤.'); 8744 confirmModal.modal('hide'); 8745 $('.modal-overlay-blocker').remove(); 8746 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8747 refreshGradeList(); 8748 } else { 8749 alert('ìì ì¤í¨: ' + res.error); 8750 } 8751 } 8752 }); 8753 }, 8754 'ì·¨ì', 8755 'ìì ', 8756 'cl-cmmodal cl-s-btn cl-p0 shopgrade-delete-confirm-modal', 8757 true, 8758 function () { 8759 $('.modal-overlay-blocker').remove(); 8760 $('.shopgrade-auto-policy-covered').removeClass('shopgrade-auto-policy-covered'); 8761 } 8762 ); 8763 8764 setTimeout(() => { 8765 $('.modal-dialog.cl-cmmodal') 8766 .not(':last') 8767 .addClass('shopgrade-auto-policy-covered') 8768 .append('<div class="modal-overlay-blocker shopgrade-auto-policy-backdrop"></div>'); 8769 }, 10); 8770 } 8771 } 8772 }); 8773 }); 8774 8775 // ë±ê¸ 리ì¤í¸ ìë¡ê³ 침 8776 function refreshGradeList() { 8777 $.ajax({ 8778 type: 'POST', 8779 url: '/shop_grade/get_list', 8780 dataType: 'json', 8781 data: { sid: SID }, 8782 success: function (res) { 8783 if (res.success) { 8784 group_list = res.list; 8785 const newListHtml = renderGroupList(group_list); 8786 modal.find('.grade-list-wrap').html(newListHtml); 8787 bindEditEvents(modal); 8788 } 8789 } 8790 }); 8791 } 8792 8793 8794 }); 8795 /* ì¼íë±ê¸ ì¤ì end */ 8796 8797 function hasShopgradeSettingOpenParam() { 8798 var params = new URLSearchParams(window.location.search || ''); 8799 return params.get('open_shopgrade_setting') == '1'; 8800 } 8801 8802 function removeShopgradeSettingOpenParam() { 8803 if(typeof history == 'undefined' || typeof history.replaceState != 'function') return; 8804 8805 var url = new URL(window.location.href); 8806 url.searchParams.delete('open_shopgrade_setting'); 8807 history.replaceState({}, document.title, url.pathname + url.search + url.hash); 8808 } 8809 8810 function openShopgradeSettingModalFromUrl() { 8811 if(!hasShopgradeSettingOpenParam()) return; 8812 8813 removeShopgradeSettingOpenParam(); 8814 setTimeout(function() { 8815 var $btn = $('.shopgrade-setting-btn.shopGrade').not('.shopping_disabled, .ss_user_noActive').first(); 8816 if($btn.length == 0) $btn = $('.shopGrade').not('.shopping_disabled, .ss_user_noActive').first(); 8817 if(typeof canConfigureShopgrade != 'undefined' && !canConfigureShopgrade) return; 8818 if($btn.length > 0) $btn.trigger('click'); 8819 }, 300); 8820 } 8821 8822 openShopgradeSettingModalFromUrl(); 8823 8824 8825 8826 8827 8828 8829 8830
8831 $('input[type="checkbox"].cl-etc-input-val').live('click',function(){ 8832 if($(this).is(":checked")===true) { 8833 8834 console.log($(this).prop('checked')); 8835 $(this).prop('checked',true); 8836 } else { 8837 8838 console.log($(this).prop('checked')); 8839 $(this).prop('checked',false); 8840 } 8841 8842 }); 8843 8844 $('.member-info').live('click', function() { 8845 var isGabia = ($('.dashboard_u.gabia').length > 0) ? true : false, 8846 checkViewMode = ($(this).find('.collection-view').length > 0) ? true : false, 8847 uid = $(this).closest('tr').attr('data-uid'), 8848 mng_settings_el = $(this).closest('.mng-settings'), 8849 list_type = mng_settings_el.attr('data-type'), 8850 list_str = '', 8851 no_active_btn = $('div[data-ssuser]').attr('data-ssuser'); 8852 8853 $.post('/umember/lists/type/memberinfo', { sid : SID, val : uid }, function(data) { 8854 if(typeof data.error != 'undefined' && data.error) { 8855 alert(data.error); 8856 return false; 8857 } 8858 var page_type = $('.mng-settings').attr('data-type'), 8859 slog_p = ''; 8860 if(typeof page_type != 'undefined' && page_type) { 8861 if(page_type == 'member-waitlist') setSiteLogs('um.wait','info',{'id':uid},'um.waitlist'); 8862 else setSiteLogs('um.list','info',{'id':uid},'um.list'); 8863 } 8864 var cert_use = $('.memberlist-table').attr('data-cert'); 8865 $.each(data, function(k,o) { 8866 if(isGabia && $.inArray(k, ['cert_date','cert_adult_date']) > -1) return true; 8867 var cl_name = (o['name']) ? o['name'] : $.lang[LANG]['manager.list.info.'+k], 8868 cl_type = (o['type']) ? o['type'] : 'text', 8869 cl_val = (o['value']) ? o['value'].replace(/\"/g,'"').replace(/\'/g,''').replace(/\</g,'<').replace(/\>/g,'>') : '', 8870 pass_field = ['no','addr2','umseq'], 8871 disabled_field = ['id','approvaldate'], 8872 cl_jcol_list_type = ((o['type']=='check') || (o['type']=='radio')) ? 'cl-etc-list-type' : ''; 8873 8874 list_str += ($.inArray(k,pass_field) > -1) ? '' : '\ 8875 <div class="form-group">\ 8876 <label class="memW-title control-label '+cl_jcol_list_type+' " id="member-'+ k + '-label">'+ cl_name + '</label>\ 8877 <div class="memW-info-wrap">\ 8878 '; 8879 8880 if(k=='birth') cl_val = (cl_val=='0000-00-00') ? '' : cl_val; 8881 8882 switch(k) { 8883 case 'no': 8884 case 'addr2': 8885 case 'umseq': 8886 break; 8887 8888 case 'addr1': 8889 var addr2_str = (data['addr2']['value']) ? '||' + data['addr2']['value'] : '|| ', 8890 addr_str = (cl_val.indexOf('||') === -1) ? ' || '+cl_val+addr2_str : cl_val+addr2_str, 8891 addr = addr_str.split('||'), 8892 plan_type = (typeof property != 'undefined' && property) ? property.VALIDTYPE : VALIDTYPE, 8893 checkSM = (typeof plan_type != 'undefined' && (plan_type == 'SM' || plan_type == 'SHOPPING')) ? true : false, 8894 usedAddrSearchModal = (checkSM || o['addrsearch']) ? 'readonly onclick="addrSearchModal(\'member\')"' : ''; 8895 ; 8896 8897 var sm_addr = (data && data.umseq) ? data.umseq : '', 8898 sm_name = (sm_addr && sm_addr.to_name) ? sm_addr.to_name : '', 8899 sm_alias = (sm_addr && sm_addr.alias) ? sm_addr.alias : '', 8900 sm_tel = (sm_addr && sm_addr.to_tel) ? sm_addr.to_tel : '', 8901 addr_list_btn =''; 8902 addr_default_html = ''; 8903 if(sm_addr || checkSM) { 8904 8905 addr_list_btn += '\ 8906 <div class="cl-s-form-wrap btn-load-addresses adm-member-addr '+(!sm_addr? 'hide' : '' )+' " data-action="adm-edit">\ 8907 <div class="cl-s-form-group "><span>ë°°ì¡ì§ 목ë¡</span>\ 8908 </div>\ 8909 </div>'; 8910 8911 addr_default_html += '\ 8912 <div class="sm-parent '+ (!sm_addr ? 'emptyFlag' : '') +'">\ 8913 <div class="cl-s-form-wrap">\ 8914 <div class="cl-s-form-group">\ 8915 <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>\ 8916 <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>\ 8917 <div class="cl-s-form-control"><div class="sm-tel">'+sm_tel+'</div></div>\ 8918 <div class="cl-s-form-control noaddress" style="text-align:center; padding:20px; color:#999;">ë±ë¡ë ë°°ì¡ì§ê° ììµëë¤.</div>\ 8919 </div>\ 8920 </div>\ 8921 </div>\ 8922 '; 8923 } 8924 8925 if(list_type == 'member-list') { 8926 if(sm_addr || checkSM) { list_str += addr_list_btn; } 8927 8928 list_str += '\ 8929 <input class="hide" id="member-postcode" type="hidden" value="' + addr[0].trim() + '">\ 8930 <div class="cl-common-form-wrap nonplace-holder">\ 8931 <div class="cl-common-form-group">\ 8932 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + addr[1].trim() + '" ' + usedAddrSearchModal + ' name="member-'+ k + '" required="required">\ 8933 </div>\ 8934 </div>\ 8935 <div class="cl-common-form-wrap nonplace-holder">\ 8936 <div class="cl-common-form-group">\ 8937 <input class="member-info-input form-control" id="member-addr2" type="text" value="' + escapeHtml(addr[2].trim()) + '" name="member-addr2" required="required">\ 8938 </div>\ 8939 </div>\ 8940 '; 8941 8942 if (sm_addr || checkSM) { list_str += addr_default_html;} 8943 } else { 8944 list_str += '\ 8945 <input class="hide" id="member-postcode" type="hidden" value="' + addr[0].trim() + '">\ 8946 <span id="member-'+ k + '" '+usedAddrSearchModal+'>' 8947 + addr[1].trim() + ((addr[2].trim() != '') ? '<br>'+addr[2].trim() : '') + 8948 '</span>\ 8949 '; 8950 } 8951 break; 8952 case 'gender': 8953 if(list_type == 'member-list') { 8954 var disabled = (cert_use == 'Y' || cert_use == 'A' || checkViewMode) ? ' disabled':''; 8955 list_str += '\ 8956 <select class="form-control" name="member-'+ k + '" id="member-'+ k+ '"'+disabled+'>\ 8957 <option value="">ì í</option>'; 8958 if(o['value'] == '01') { 8959 list_str += '\ 8960 <option value="01" selected>ë¨</option>\ 8961 <option value="02">ì¬</option>'; 8962 } else if(o['value'] == '02') { 8963 list_str += '\ 8964 <option value="01">ë¨</option>\ 8965 <option value="02" selected>ì¬</option>'; 8966 } else { 8967 list_str += '\ 8968 <option value="01">ë¨</option>\ 8969 <option value="02">ì¬</option>'; 8970 } 8971 list_str += '\ 8972 </select>\ 8973 <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>\ 8974 '; 8975 } else { 8976 var gender_val = (cl_val)? ((cl_val == '01')? 'ë¨':'ì¬'):'';
8977 list_str += '\ 8978 <span id="member-'+ k + '">' 8979 + gender_val + 8980 '</span>\ 8981 '; 8982 } 8983 8984 break; 8985 case 'memo': 8986 var m_count = cl_val.length, 8987 checkReadonly = (checkViewMode) ? 'readonly' : ''; 8988 if(list_type == 'member-list') { 8989 list_str += '\ 8990 <textarea class="form-control" name="member-'+ k + '" id="member-'+ k+ '" rows="3" '+checkReadonly+'>' + cl_val + '</textarea>\ 8991 <label for="member-'+ k + '"><span class="write-count">' + m_count + '</span>/1000</label>\ 8992 '; 8993 } else { 8994 list_str += '\ 8995 <span id="member-'+ k+ '">' + cl_val + '</span>'; 8996 } 8997 break; 8998 8999 case 'birth': 9000 if(list_type == 'member-list') { 9001 var disabled = (cert_use == 'Y' || cert_use == 'A') ? ' disabled':''; 9002 list_str += '\ 9003 <div class="cl-common-form-wrap nonplace-holder">\ 9004 <div class="cl-common-form-group'+disabled+'">\ 9005 <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+'>\ 9006 </div>\ 9007 </div>\ 9008 '; 9009 } else { 9010 list_str += '\ 9011 <span id="member-'+ k + '" class="birthKeyCheck" onkeyup="auto_date_format(event, this)" onkeypress="auto_date_format(event, this)">' 9012 + cl_val + 9013 '</span>\ 9014 '; 9015 } 9016 9017 break; 9018 9019 case 'cert_date': 9020 case 'cert_adult_date': 9021 if(list_type == 'member-list') { 9022 list_str += '\ 9023 <div class="cl-common-form-wrap nonplace-holder member-'+ k + '-wrap">'; 9024 if(cl_val != '' && cl_val != '0000-00-00 00:00:00') { 9025 list_str += '\ 9026 <div class="cl-common-form-group">\ 9027 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + cl_val + '" name="member-'+ k + '" required="required" ' + prev_val + ' disabled>\ 9028 </div>'; 9029 } 9030 list_str += '\ 9031 </div>\ 9032 '; 9033 } else { 9034 if(cl_val != '' && cl_val != '0000-00-00 00:00:00') { 9035 list_str += '\ 9036 <span id="member-'+ k + '">' 9037 + cl_val + 9038 '</span>\ 9039 '; 9040 } 9041 } 9042 9043 break; 9044 default: 9045 var disabled = ($.inArray(k,disabled_field) > -1) ? 'disabled' : '', 9046 prev_val = (k == 'email' || k == 'nick') ? 'data-prev="' + cl_val + '"' : '', 9047 cl_type_str = ''; 9048 9049 if(list_type == 'member-list') { 9050 if($.inArray(k, ['name', 'tel']) > -1 && (cert_use == 'Y' || cert_use == 'A')) disabled = 'disabled'; 9051 var list_jcolval = [o['jcol_val']]; 9052 if((cl_type=='select') || (cl_type=='check') || (cl_type=='radio')) { 9053 list_jcolval = (o['jcol_val'].indexOf('`') > -1) ? o['jcol_val'].split('`') : list_jcolval; 9054 } 9055 switch (cl_type) { 9056 case 'memo': 9057 cl_type_str += '<textarea class="form-control" name="member-'+ k + '" id="member-'+ k+ '" rows="3">' + cl_val + '</textarea>'; 9058 break; 9059 case 'select': 9060 if(list_jcolval.length > 0) { 9061 cl_type_str += '\ 9062 <select class="form-control etc-select" name="member-'+ k + '" id="member-'+ k+ '"'+disabled+'>\ 9063 <option value="">ì í</option>'; 9064 $.each(list_jcolval, function(i,v) { 9065 var selected = (v==cl_val) ? 'selected' : ''; 9066 cl_type_str += '\ 9067 <option value="'+v+'" '+selected+'>'+v+'</option>\ 9068 '; 9069 }); 9070 cl_type_str += '\ 9071 </select>\ 9072 <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>\ 9073 '; 9074 } 9075 9076 break; 9077 9078 case 'radio': 9079 if(list_jcolval.length > 0) { 9080 $.each(list_jcolval, function(i,v) { 9081 var checked = (v==cl_val) ? 'checked' : ''; 9082 cl_type_str += '\ 9083 <div class="newcheckbox cl-etc-jcoltype">\ 9084 <label>\ 9085 <div class="newcheckboxSvgRadio">\ 9086 <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+'>\ 9087 <svg viewBox="0 0 18 18" width="18" height="18">\ 9088 <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
90880-4.41 3.59-8 8-8s8 3.59 8 8C17 13.41 13.41 17 9 17z"/>\ 9089 </svg>\ 9090 <svg class="active" viewBox="0 0 18 18" width="18" height="18">\ 9091 <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"/>\ 9092 <circle cx="9" cy="9" r="6"/>\ 9093 </svg>\ 9094 </div>\ 9095 <span>'+v+'</span>\ 9096 </label>\ 9097 </div>\ 9098 '; 9099 }); 9100 } 9101 9102 break; 9103 9104 case 'check': 9105 if(list_jcolval.length > 0) { 9106 $.each(list_jcolval, function(i,v) { 9107 var checked = ((cl_val.indexOf('`') > -1) && (cl_val.indexOf(v.trim()) > -1)) ? 'checked' : (v==cl_val ? 'checked' : ''); 9108 cl_type_str += '\ 9109 <div class="newcheckbox cl-etc-jcoltype">\ 9110 <label>\ 9111 <div class="newcheckboxSvg">\ 9112 <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+'>\ 9113 <svg viewBox="0 0 16 16" width="16" height="16">\ 9114 <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>\ 9115 <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>\ 9116 </svg>\ 9117 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 9118 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 9119 <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>\ 9120 </svg>\ 9121 </div>\ 9122 <span>'+v+'</span>\ 9123 </label>\ 9124 </div>\ 9125 '; 9126 }); 9127 } 9128 9129 break; 9130 9131 case 'fupload': 9132 var fileResult = $.umember.fileurlcreate(cl_val); 9133 var download_link = fileResult.download_link; 9134 var file_data = fileResult.file_data; 9135 cl_type_str += $.umember.fileHtmlRender(k, { 9136 val : file_data || '', 9137 type : "type2", 9138 type2_downlink : download_link, 9139 }) 9140 9141 break; 9142 9143 default: 9144 cl_type_str += '\ 9145 <div class="cl-common-form-wrap nonplace-holder" id="member-'+ k + '">\ 9146 <div class="cl-common-form-group '+disabled+'">\ 9147 <input class="member-info-input form-control" id="member-'+ k + '" type="text" value="' + cl_val + '" ' + disabled + ' name="member-'+ k + '" required="required" ' + prev_val + '>\ 9148 </div>\ 9149 </div>'; 9150 break; 9151 } 9152 9153 list_str += cl_type_str; 9154 9155 } else { 9156 if((cl_type=='select') || (cl_type=='check') || (cl_type=='radio')) { 9157 cl_val = (cl_val.indexOf('`') > -1) ? cl_val.replace(/`/gi,',') : cl_val; 9158 } 9159 9160 if(cl_type=='fupload' && cl_val) { 9161 var templink = $.umember.fileurlcreate(cl_val|| ''); 9162 9163 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>' 9164 cl_val = '' 9165 + '<div class="fupload-cell">' 9166 + '<span class="file-name">' + templink.file_info.name + '</span>' 9167 + templink.download_link // <a href="... " class="file-download-btn" target="_blank"> 9168 + tempdownicon // <svg ...>
9169 + '</a>' 9170 + '</div>'; 9171 } 9172 9173 list_str += '\ 9174 <span id="member-'+ k + '">' 9175 + cl_val + 9176 '</span>\ 9177 '; 9178 } 9179 break; 9180 } 9181 list_str += ($.inArray(k,pass_field) > -1) ? '' : '\ 9182 </div>\ 9183 </div>\ 9184 '; 9185 }); 9186 9187 var modal_view = (checkViewMode) ? 'readonly' : '', 9188 modal_content = '\ 9189 <div class="mng-modal-body info-modal '+modal_view+'" data-uid="' + uid + '" data-list-type="' + list_type + '">\ 9190 <div class="form-horizontal">\ 9191 ' + list_str + '\ 9192 </div>\ 9193 </div>\ 9194 '; 9195 if(list_type == 'member-list') { 9196 var closed_txt = (checkViewMode) ? 'close' : 'cancel'; 9197 var info_modal = $(this).showModalFlat($.lang[LANG]['manager.member.details.title'], modal_content, true, !checkViewMode, function() { 9198 9199 var info_data = {}, 9200 regExp_arr = ['name','nick','email','tel','birth'], 9201 regexp = { 9202 name: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9203 nick: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9204 email: /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 9205 tel: /^[0-9-+]*$/, 9206 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])$/, 9207 }, 9208 check_error = false, 9209 slog_more = '', 9210 slog_more_array = {}, 9211 etc_Array = [], 9212 etc_i= 0; 9213 9214 $('.info-modal').find('.form-control:not([disabled])').each(function(i) { 9215 var type = $(this).attr('id').replace(/(member\-)|(\-\d)/gi,''), 9216 type_str = $(this).closest('.form-group').find('.control-label').text(), 9217 error_str = '', 9218 etc_type_arr = etc_Array[type]; 9219 9220 if($(this).parents('.newcheckbox').hasClass('cl-etc-jcoltype')) { 9221 9222 if($(this).is(":checked")) { 9223 val = $(this).val().trim(); 9224 var check_jcol_first = false; 9225 if((typeof $(this).parents('.form-group').attr('data-jcolval')=='undefined') || (!$(this).parents('.form-group').attr('data-jcolval'))) { 9226 check_jcol_first = true; 9227 $(this).parents('.form-group').attr('data-jcolval',val); 9228 } 9229 9230 var jcolVal = $(this).parents('.form-group').attr('data-jcolval'); 9231 if($(this).parents('.form-group').find('.cl-etc-input-val:checked').length>1 && val && !check_jcol_first) { 9232 val = jcolVal + '`' + val; 9233 val = val.replace(/\`$/gi, ''); 9234 $(this).parents('.form-group').attr('data-jcolval',val); 9235 } 9236 } else { 9237 if($(this).parents('.form-group').find('.cl-etc-input-val:checked').length==0) val = ''; 9238 } 9239 9240 } else val = $(this).val().trim(); 9241 9242 if(typeof $(this).parents('.form-group').attr('data-jcolval') != 'undefined' && $(this).parents('.form-group').attr('data-jcolval')) { 9243 val = $(this).parents('.form-group').attr('data-jcolval'); 9244 } 9245 9246 var emoji_val = (type.indexOf('addr') > -1) ? $('#member-addr1').val().trim() + ' ' + $('#member-addr2').val().trim() : val; 9247 if(checkEmojis(emoji_val)) error_str = $.lang[LANG]['config.unable.emoji']; 9248 else { 9249 // if(type == 'addr1') slog_more += type_str+' : '+val; 9250 // else if(type == 'addr2') slog_more += ' '+val+'<br>'; 9251 // else slog_more += type_str+' : '+val+'<br>'; 9252 9253 if((val.length == 0 && type != 'email') || regExp_arr.indexOf(type) == -1) { 9254 9255 if(type == 'addr1') val = $('#member-postcode').val() + ' || ' + val; 9256 info_data[type] = val; 9257 9258 if(type=='addr2') { 9259 slog_more_array[type_str] = info_data['addr1'] + ' ' + val; 9260 } else slog_more_array[type_str] = val; 9261 9262 return true; 9263 } 9264 if(!regexp[type].test(val)) { 9265 error_str = $.lang[LANG]['siteum.regexp.check.'+type]; 9266 if(val.length == 0 && type == 'email') error_str = $.lang[LANG]['manager.check.required.message']; 9267 } else if(type == 'nick' && (val.length < 1 || val.length > 20)) { 9268 error_str = $.lang[LANG]['siteum.regexp.check.nick']; 9269 } else { 9270 $(this).closest('.form-group').removeClass('has-error'); 9271 $(this).parent().find('.mng-error').remove(); 9272 info_data[type] = val; 9273 slog_more_array[type_str] = val; 9274 } 9275 9276 9277 9278 } 9279 var this_group = $(this).closest('.form-group'); 9280 if(error_str.length > 0) { 9281 var error_icon = '\
9282 <svg class="error-icon" viewBox="0 0 13 13" width="13" height="13">\ 9283 <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"/>\ 9284 <rect x="6" y="3" width="1" height="5"/>\ 9285 <rect x="6" y="9" width="1" height="1"/>\ 9286 </svg>\ 9287 '; 9288 9289 this_group.addClass('has-error'); 9290 if(this_group.find('.mng-error').length > 0 ) this_group.find('.mng-error').html(error_icon + error_str); 9291 else this_group.append('<span class="mng-error">' + error_icon + error_str + '</span>'); 9292 9293 if($(this).closest('.form-horizontal').find('.has-error').length == 0) $(this).focus(); 9294 } 9295 }).promise().done(function() { 9296 9297 check_error = ($('.info-modal').find('.has-error').length == 0) ? true : false; 9298 if(!check_error) { 9299 $('.info-modal').find('.has-error').first().find('input').focus(); 9300 return false; 9301 } else { 9302 // deletes í´ëì¤ê° ìë íì¼ë¤ ìì§ 9303 var deletedFiles = []; 9304 $('.info-modal .valueCheck[data-etcidx]').each(function() { 9305 var $inputElement = $(this); 9306 9307 deletedFiles.push({ 9308 file_name: $inputElement.attr('data-file-name'), 9309 etcIdx: $inputElement.attr('data-etcidx'), 9310 id: $inputElement.attr('data-id') 9311 }); 9312 }); 9313 $.processON(); 9314 9315 $.ajax({ 9316 type: 'POST', 9317 url: '/umember/update/type/member', 9318 data: { sid : SID, val: JSON.stringify(info_data), uid : uid ,addrnoupdate : data.umseq,deleted_files: JSON.stringify(deletedFiles)}, 9319 dataType: 'json', 9320 async: true, 9321 success: function(data) { 9322 9323 if(typeof data.error != 'undefined' && data.error) { 9324 $.each(data.error, function(key,str) { 9325 if(info_modal.find('#member-'+key).length > 0 ) { 9326 info_modal.find('#member-'+key).focus(); 9327 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); 9328 else info_modal.find('#member-'+key).closest('.form-group').append('<span class="mng-error">' + str + '</span>'); 9329 } else { alert(str); return false; } 9330 }); 9331 $.processOFF(); 9332 9333 if(info_modal.find('.mng-error').length > 0) return false; 9334 } 9335 $.processOFF(); // ì±ê³µ ììë processOFF í¸ì¶ 9336 9337 slog_more += '\ 9338 <div class="slog-jcol-wrap">\ 9339 <ul class="slog-jcol-ul">\ 9340 '; 9341 $.each(slog_more_array, function(key,v){ 9342 v = (v.indexOf('`')>-1) ? v.replace(/`/gi,', ') : v; 9343 slog_more += '\ 9344 <li class="slog-jcol-li">\ 9345 <div class="slog-jcol-title">'+key+'</div>\ 9346 <div class="slog-jcol-contents">'+v+'</div>\ 9347 </li>\ 9348 '; 9349 }); 9350 9351 slog_more += '\ 9352 </ul>\ 9353 </div>\ 9354 '; 9355 9356 //console.log(slog_more); 9357 setSiteLogs('um.edit','info',{'id':uid,'more':slog_more},'um.list'); 9358 9359 info_modal.find('.mng-error').remove(); 9360 info_data.addr = info_data.addr1+' '+info_data.addr2; 9361 console.log(info_data); 9362 $.each(info_data, function(k, v) { 9363 if(k == 'gender') { 9364 v = (v == '01')? 'ë¨':'ì¬'; 9365 } 9366 $('.mng-list table tr[data-uid="' + uid + '"]').find('.'+k).text(v); 9367 }); 9368 9369 info_modal.modal('hide'); 9370 }, 9371 error: function(xhr, status, error) { 9372 console.error('AJAX ìì² ì¤í¨:', error); 9373 $.processOFF(); // ìë¬ ììë processOFF í¸ì¶ 9374 } 9375 }); 9376 } 9377 9378 }); 9379 9380 }, closed_txt, 'save', 'memberinfo-modal cl-cmmodal cl-s-btn cover', true, '', function() { 9381 9382 var regexp = { 9383 name: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9384 nick: /^[a-zA-Z0-9ã±-ã ã -ã £ê°-í£ ]*$/i, 9385 email: /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/i, 9386 tel: /^[0-9-+]*$/, 9387 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])$/, 9388 }; 9389 9390 var info_recheck_regexp = function(input,event_type) { 9391 var type = $(input).attr('id').replace(/member-/i,''), 9392 val = $(input).val().trim(), 9393 emoji_val = (type.indexOf('addr') > -1) ? $('#member-addr1').val().trim() + ' ' + $('#member-addr2').val().trim() : '', 9394 error_str = ''; 9395 9396 if(checkEmojis(emoji_val)) error_str = $.lang[LANG]['config.unable.emoji']; 9397 else if(regexp.hasOwnProperty(type)) { 9398 if(!regexp[type].test(val)) error_str = $.lang[LANG]['siteum.regexp.check.'+type]; 9399 else { 9400 var checkDuplicate = ( event_type == 'blur' && 9401 $.inArray(type, ['email','nick']) > -1 && 9402 typeof $(input).attr('data-prev') != 'undefined' && 9403 $(input).attr('data-prev').trim().toLowerCase() != val.toLowerCase() 9404 ) ? true : false;
9405 if(type == 'email' && $('input#member-id').val().trim().toLowerCase() == val.toLowerCase()) checkDuplicate = false; 9406 else if(type == 'nick' && ($('input#member-nick').val().trim().length < 1 || $('input#member-nick').val().trim().length > 20)) { 9407 checkDuplicate = false; 9408 error_str = $.lang[LANG]['siteum.regexp.check.nick']; 9409 } 9410 if(checkDuplicate) { 9411 var splan = (typeof VALIDTYPE != 'undefined' && VALIDTYPE) ? VALIDTYPE : ''; 9412 $.post('/umember/join/used_check', { sid : SID, field : type, data : val, splan : splan }, function(check_result) { 9413 if(typeof check_result.error != 'undefined' && check_result.error) { 9414 error_str = check_result.error; 9415 } 9416 }, 'json'); 9417 } 9418 } 9419 } 9420 9421 9422 if(error_str.length > 0) { 9423 var error_html = '<span class="mng-error">\ 9424 <svg class="error-icon" viewBox="0 0 13 13" width="13" height="13">\ 9425 <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"/>\ 9426 <rect x="6" y="3" width="1" height="5"/>\ 9427 <rect x="6" y="9" width="1" height="1"/>\ 9428 </svg>' + error_str + '</span>\ 9429 '; 9430 9431 $(input).closest('.form-group').addClass('has-error'); 9432 if($(input).closest('.form-group').find('.mng-error').length > 0) $(input).closest('.form-group').find('.mng-error').replaceWith(error_html); 9433 else $(input).closest('.form-group').append(error_html); 9434 } else { 9435 $(input).closest('.form-group').removeClass('has-error').find('.mng-error').remove(); 9436 } 9437 } 9438 9439 $('.info-modal .form-control').live({ 9440 keyup : function(e) { info_recheck_regexp($(this),'keyup'); }, 9441 blur : function(e) { info_recheck_regexp($(this),'blur'); } 9442 }); 9443 9444 }); 9445 9446 9447 $('#member-memo').live('keyup', function() { 9448 var str = $(this).val(); 9449 if(str.length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 9450 $(this).next('label').find('.write-count').text(str.length); 9451 if(str.length > 1000) { 9452 $(this).val($(this).val().substring(0, 1000)); 9453 } 9454 }); 9455 if(no_active_btn) $('.memberinfo-modal.cl-cmmodal .ok-button-dialog.btn-sm').addClass(no_active_btn); 9456 } else { // only show__ 9457 var info_modal = $(this).showModalFlat($.lang[LANG]['manager.member.details.title'], modal_content, true, false, '', 'ok', '', 'member-waitlist cl-cmmodal cl-s-btn cover'); 9458 if(no_active_btn) $('.member-waitlist.cl-cmmodal .ok-button-dialog.btn-sm').addClass(no_active_btn); 9459 } 9460 9461 9462 }, 'json'); 9463 9464 }); 9465 9466 /***************************************************************************************************************************************member-list page END*/ 9467 9468 9469 9470 9471 9472 /*********************************************************************************************************************************member-waitlist page START*/ 9473 $('.approval-btn, .deny-btn').live('click', function() { 9474 if($(this).hasClass('member_disabled')) { 9475 siteNotice('manager'); 9476 return false; 9477 } 9478 var position = $(this).closest('td'), 9479 uno = $(this).closest('tr').attr('data-uno'), 9480 uid = $(this).closest('tr').attr('data-uid'), 9481 result = ($(this).hasClass('approval-btn')) ? 'hand' : 'deny', 9482 wait_cnt = parseInt($(this).closest('.mng-wrap').find('.wait-count').text()), 9483 isDeny = $(this).hasClass('deny-btn') ? true : false, 9484 applyhtml = ''; 9485 9486 if(isDeny) $(this).parents('tr[data-uno="'+uno+'"]').find('.member-info').addClass('hide'); 9487 9488 $.post('/umember/update/type/approval', { sid : SID, val : result, uid : uid, uno : uno }, function(data) { 9489 if(typeof data.error != 'undefined' && data.error) { 9490 alert(data.error); 9491 return false; 9492 } 9493 9494 applyhtml += '\ 9495 <span>'+$.lang[LANG]['manager.wait-list.approval.'+result]+'</span>\ 9496 <span>('+data.result.um_approvaldate+')</span>\ 9497 '; 9498 $('.mng-settings[data-type="member-waitlist"]').find('.wait-count').text(wait_cnt-1); 9499 position.html(applyhtml).addClass('approval-status'); 9500 }, 'json'); 9501 9502 }); 9503 /***********************************************************************************************************************************member-waitlist page END*/ 9504 9505 /********************************************************************************************************************************member-blocklist page START*/ 9506 9507 $('.block-add-btn').live('click', function() { 9508 if($(this).hasClass('member_disabled')) { 9509 siteNotice('manager'); 9510 return false;
9511 } 9512 var mng_settings_el = $(this).closest('.mng-settings'), 9513 add_content = '\ 9514 <div class="form-row">\ 9515 <div class="form-inline clearfix">\ 9516 <div class="form-group col-sm-5">\ 9517 <select id="block-type" class="form-control" name="block-type" placeholder="Search">\ 9518 <option value="id">íì ìì´ë</option>\ 9519 <option value="ip">IP</option>\ 9520 </select>\ 9521 </div>\ 9522 <div class="form-group col-sm-7"><input class="form-control" type="text" id="block-data"/></div>\ 9523 </div>\ 9524 </div>\ 9525 '; 9526 9527 var modal = $(this).showModalFlat('Block data add', add_content, true, true, function() { 9528 var key = modal.find('#block-type').val(), 9529 val = modal.find('#block-data').val().trim(), 9530 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; 9531 9532 if(key === null) { 9533 modal.find('#block-type').click(); 9534 return false; 9535 } else if(modal.find('.error').length > 0) { 9536 modal.find('#block-data').focus(); 9537 return false; 9538 } else if (modal.find('#block-data').val().trim().length == 0) { 9539 modal.find('#block-data').focus(); 9540 modal.find('#block-data').parent().append('<span class="error">ë´ì©ì ì ë ¥íì¸ì</span>'); 9541 return false; 9542 } else if (key == 'ip' && !regExp_ip.test(val)) { 9543 modal.find('#block-data').focus(); 9544 modal.find('#block-data').parent().append('<span class="error">ip íìì´ ì¬ë°ë¥´ì§ ììµëë¤.</span>'); 9545 return false; 9546 } 9547 9548 $.ajax({ 9549 type: 'POST', 9550 url: '/umember/set/type/block', 9551 data: { sid : SID, key : key, val : val }, 9552 dataType: 'json', 9553 async: true, 9554 success: function(data) { 9555 9556 if(typeof data.error != 'undefined' && data.error) { 9557 if(modal.find('.error').length == 0) modal.find('#block-data').focus().parent().append('<span class="error">' + data.error + '</span>'); 9558 else modal.find('#block-data').focus().next('.error').text(data.error); 9559 return false; 9560 } else { 9561 modal.modal('hide'); 9562 window.location.reload(); 9563 } 9564 9565 } 9566 }); 9567 9568 9569 }, 'cancel','save', 'block-add-modal'); 9570 9571 $('#block-data').live({ 9572 keyup: function() { 9573 $(this).parent().find('.error').remove(); 9574 } 9575 }); 9576 9577 9578 }); 9579 9580 $('.block-clear-btn').live('click', function() { 9581 if($(this).hasClass('member_disabled')) { 9582 siteNotice('manager'); 9583 return false; 9584 } 9585 var block_type = $(this).closest('tr').find('.type').attr('data-type'), 9586 block_val = $(this).closest('tr').find('.val').text().trim(), 9587 block_id = $(this).closest('tr').find('.id').text().trim(), 9588 block_data = $(this).closest('tr').attr('data-id'), 9589 is_uadmin = $(this).parents('.mng-member').attr('data-uadmin'); 9590 9591 if(block_data == 0) return false; 9592 else { 9593 var modal_content = '\ 9594 <div class="mng-modal-body clear-modal">\ 9595 <p class="addressee-wrap">\ 9596 ' + $.lang[LANG]['manager.block-list.block.clear.txt.1'] + '\ 9597 <span class="addressee-name">' + block_id + '</span> \ 9598 ' + $.lang[LANG]['manager.block-list.block.clear.txt.2'] + '\ 9599 </p>\ 9600 </div>\ 9601 '; 9602 9603 var modal = $(this).showModalFlat($.lang[LANG]['manager.block-list.block.clear.title'], modal_content, true, true, function() { 9604 9605 $.ajax({ 9606 type: 'POST', 9607 url: '/umember/delete/type/block', 9608 data: { sid : SID, val : block_data, block_type : block_type, block_val : block_val }, 9609 async: true, 9610 success: function(data) { 9611 if(typeof data.error != 'undefined' && data.error) { 9612 alert(data.error); 9613 return false;
9614 } else { 9615 var cntTr = $(this).parents('table').length; 9616 9617 if(cntTr > 0) window.location.reload(); 9618 else location.href = is_uadmin+'/member/blocklist'; 9619 } 9620 } 9621 }); 9622 9623 },'cancel','','cl-cmmodal cl-s-btn w560 cl-p130 cl-p0'); 9624 9625 } 9626 9627 }); 9628 9629 /**********************************************************************************************************************************member-blocklist page END*/ 9630 9631 9632 /********************************************************************************************************************************member-leavelist page START*/ 9633 $('.leavelist .mng-selectboxlist select.form-control').live('change',function() { 9634 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/leavelist' : '/manager/member/leavelist', 9635 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 9636 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 9637 stx = $(this).parents('.mng-list').find('.mng-search-box').find('#stx').val(); 9638 9639 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view); 9640 }); 9641 9642 $('.leavelist .mng-search-box .search-btn').live('click',function(e) { 9643 var url_str = ($('header').hasClass('_admin')) ? '/_admin/member/leavelist' : '/manager/member/leavelist', 9644 sfl_sort = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_sort').val(), 9645 sfl_view = $(this).parents('.mng-list').find('.mng-subMenu-list').find('#sfl_view').val(), 9646 stx = $(this).parents('.mng-search-box').find('#stx').val(); 9647 9648 if(checkEmojis(stx)) { 9649 e.preventDefault(); 9650 errorEmojisModal(); 9651 return false; 9652 } 9653 9654 setSiteLogs('um.leavelist','search',{'stx':stx},'um.leavelist'); 9655 9656 if(stx.length > 0) stx = '/stx/'+stx; 9657 location.replace(url_str+'/page/1/sort/'+sfl_sort+'/view/'+sfl_view+stx); 9658 }); 9659 9660 function escapeHtml(str) { 9661 return str 9662 .replace(/&/g, '&') 9663 .replace(/"/g, '"') 9664 .replace(/'/g, ''') 9665 .replace(/</g, '<') 9666 .replace(/>/g, '>'); 9667 } 9668 /**********************************************************************************************************************************member-leavelist page END*/ 9669 9670 9671 /****************************************************************************************************************************************Mypage Modal START*/ 9672 $('.my-cl-edit').live({ 9673 click: function() { 9674 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'), 9675 sid = $('#mypage-modal').attr('data-sid'), 9676 uid = $('#mypage-modal').attr('data-uid'); 9677 9678 var clInput = function(type, value) { 9679 if(type == 'id') return; 9680 var str = '\ 9681 <div class="input-group my-cl-update-wrap">\ 9682 '; 9683 9684 $.each(value, function(i,v) { 9685 9686 if(type == 'addr') { 9687 var plan_type = (typeof property != 'undefined' && property) ? property.VALIDTYPE : VALIDTYPE, 9688 checkSM = (typeof plan_type != 'undefined' && (plan_type == 'SM' || plan_type == 'SHOPPING')) ? true : false, 9689 usedAddrSearchModal = (checkSM && i==1) ? 'readonly onclick="addrSearchModal(\'my-input\')"' : ''; 9690 field_name = (i == 0) ? 'postcode' : type + i, 9691 hide_class = (i == 0) ? 'hide' : ''; 9692 9693 str += '\ 9694 <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 + '>\ 9695 '; 9696 } else { 9697 str += '\ 9698 <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 + '"/>\ 9699 '; 9700 } 9701 9702 }); 9703 str += '\ 9704 </div>\ 9705 '; 9706 return str; 9707 } 9708 $(this).hide(); 9709 cl.find('.my-cl-cancel,.my-cl-save').show(); 9710 cl.addClass('update-mode'); 9711 cl.children().each(function() { 9712 var type = $(this).attr('data-type'), 9713 value = $(this).find('.my-data').map(function() { return $(this).text().trim(); }).get(), 9714 input_text = clInput(type,value); 9715 9716 if(type != 'id') $(input_text).prependTo($(this).find('.mng-panel-body')); 9717 if(cl.children('.focus').length == 0) $(this).addClass('focus').find('input').focus(); 9718 }); 9719 9720 9721 9722 } 9723 }); 9724 9725 $('.my-cl-cancel').live({ 9726 click: function() { 9727 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'); 9728 9729 cl.find('.mng-error').remove(); 9730 cl.find('.my-cl-cancel,.my-cl-save').hide(); 9731 cl.find('.my-cl-edit').show(); 9732 cl.removeClass('update-mode'); 9733 cl.children().each(function() { 9734 $(this).find('.my-cl-update-wrap').remove(); 9735 }); 9736 } 9737 }); 9738 9739 $('.my-cl-save').live({ 9740 click: function() { 9741 var cl = $('.mng-settings[data-type="profile"]').find('.cl-wrap'), 9742 sid = $('#mypage-modal').attr('data-sid'), 9743 uid = $('#mypage-modal').attr('data-uid'), 9744 cl_data = {}, 9745 check_error = false;
9746 9747 if(cl.find('.has-error').length > 0) cl.find('.has-error').addClass('foucs').find('.my-cl-update').first().focus(); 9748 9749 var recheck_regexp = function(input) { 9750 var field = input.attr('data-type'), 9751 val = input.val(), 9752 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 9753 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 9754 reg = new RegExp(reg_pattern), 9755 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 9756 9757 if(reg_has && !reg.test(val)) { 9758 input.closest('.mng-panel-body').find('.mng-error').text(reg_ex); 9759 } else { 9760 input.closest('.mng-panel').removeClass('has-error').find('.mng-error').remove(); 9761 } 9762 } 9763 9764 $('#mypage-modal .mng-settings[data-type="profile"] .my-cl-update').live({ 9765 focus: function(e) { $(this).closest('.mng-panel').addClass('focus').siblings().removeClass('foucs'); }, 9766 keyup : function(e) { recheck_regexp($(this)); }, 9767 blur : function(e) { $(this).closest('.mng-panel').removeClass('focus'); } 9768 }); 9769 9770 cl.children('.mng-panel:not([data-type="id"])').each(function() { 9771 var field = $(this).attr('data-type'), 9772 optional = $(this).hasClass('optional') ? true : false, 9773 value = $(this).find('.my-cl-update').map(function() { return $(this).val().trim(); }).get(), 9774 this_cl = $(this), 9775 // prev_value = $(this).find('.my-data').map(function() { return $(this).text().trim(); }).get(), 9776 error_str = '', 9777 reg_has = (typeof COLLECTION_REGEX[field] != 'undefined' && COLLECTION_REGEX[field]) ? true : false, 9778 reg_pattern = (reg_has) ? COLLECTION_REGEX[field]['pattern_j'] : '', 9779 reg = new RegExp(reg_pattern), 9780 reg_ex = (reg_has) ? COLLECTION_REGEX[field]['ex'] : ''; 9781 9782 $.each(value, function(i,v) { 9783 9784 if(field == 'addr' && i == 0) return true; 9785 9786 var field_name = (field == 'addr') ? field + i : field, 9787 this_wrap = this_cl.find('.mng-panel-body'); 9788 9789 if(optional && v.length==0 && i==0) error_str = $.lang[LANG]['manager.check.required.message']; 9790 else if(reg_has && !reg.test(v)) { 9791 error_str = (v.length == 0 && !optional) ? '' : COLLECTION_REGEX[field]['error']; 9792 } 9793 9794 if(error_str.length > 0) { 9795 this_cl.addClass('has-error'); 9796 if(this_wrap.find('.mng-error').length > 0) this_wrap.find('.mng-error').text(error_str); 9797 else this_wrap.append('<span class="mng-error">' + error_str + '</span>'); 9798 9799 if(cl.find('.mng-panel.focus').length == 0) this_cl.find('.my-input-'+field_name).focus(); 9800 } else { 9801 this_cl.removeClass('has-error'); 9802 this_wrap.find('.mng-error').remove(); 9803 9804 if(field == 'addr' && i == 1) { 9805 var postcode = $('#my-input-postcode').val(); 9806 v = (typeof postcode != 'undefined' && postcode) ? postcode.trim() + '|| ' + v : ' || ' + v; 9807 } 9808 9809 cl_data[field_name] = v; 9810 } 9811 }); 9812 }).promise().done(function() { 9813 var check_error = (cl.find('.has-error').length == 0) ? true : false; 9814 9815 if(!check_error) { 9816 cl.find('.has-error').first().first('input').focus(); 9817 } else { 9818 $.ajax({ 9819 type: 'POST', 9820 url: '/umember/update/type/member', 9821 data: { sid : sid, val: JSON.stringify(cl_data), uid : uid }, 9822 dataType: 'json', 9823 async: true, 9824 success: function(data) { 9825 // if(typeof data.error != 'undefined' && data.error) { 9826 // alert(data.error); 9827 // return false; 9828 // } 9829 if(typeof data.error != 'undefined' && data.error) { 9830 $.each(data.error, function(key,str) {
9831 if(cl.find('#my-input-'+key).length > 0 ) { 9832 cl.find('#my-input-'+key).focus(); 9833 cl.find('#my-input-'+key).closest('.mng-panel-body').append('<span class="mng-error">' + str + '</span>'); 9834 } else { alert(str); return false; } 9835 }); 9836 if(cl.find('.mng-error').length > 0) return false; 9837 } 9838 cl.find('.mng-error').remove(); 9839 9840 cl.find('.my-cl-cancel,.my-cl-save').hide(); 9841 cl.find('.my-cl-edit').show(); 9842 cl.removeClass('update-mode'); 9843 $.each(cl_data,function(k,v) { 9844 9845 if(k == 'addr1') { 9846 var addr_arr = v.split('||'), 9847 postcode_str = (addr_arr[0]) ? addr_arr[0].trim() : ''; 9848 cl.find('.my-postcode').text(postcode_str); 9849 v = (addr_arr[1]) ? addr_arr[1].trim() : ''; 9850 } 9851 9852 cl.find('.my-'+k).text(v); 9853 9854 if(k == 'nick') { 9855 if($('._admin_dashboard .site-info .site-data .site-username').length > 0) { 9856 $('._admin_dashboard .site-info .site-data .site-username').text(v).attr('data-user-name',v); 9857 } 9858 if($('#mobile-nav').length > 0) $('#mobile-nav .login-nick span').text(v); 9859 } 9860 }); 9861 cl.find('.my-cl-update-wrap').remove(); 9862 } 9863 }); 9864 } 9865 9866 }); 9867 9868 9869 } 9870 }); 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 $('.mng-siteUM-modal .my-image-edit').live({ 9882 click: function() { 9883 var sid = $('#mypage-modal').attr('data-sid'), 9884 uid = $('#mypage-modal').attr('data-uid'), 9885 src = $('.mng-settings[data-type="profile"]').find('.my-image').attr('src'); 9886 9887 $.umember.showMyImageUploadModal(sid, uid, src); 9888 } 9889 }); 9890 9891 9892 $('.mng-siteUM-modal .my-password-save').live({ 9893 click: function() { 9894 var mypageModal = $('#mypage-modal'), 9895 myPasswordWrap = mypageModal.find('.mng-settings[data-type="password-change"]'), 9896 mng_settings_el = $(this).closest('.mng-settings'); 9897 9898 myPasswordWrap.find('input.form-control').each(function() { 9899 var field = $(this).attr('id').trim().replace(/input-/,''), 9900 val = $(this).val(), 9901 errorEL = $(this).next('.mng-error'), 9902 error_str = '', 9903 reg_has = (field != 'new-password-checked') ? true : false, 9904 reg_pattern = (reg_has) ? COLLECTION_REGEX['password']['pattern_j'] : '', 9905 reg = new RegExp(reg_pattern), 9906 reg_error = (reg_has) ? COLLECTION_REGEX['password']['error'] : ''; 9907 9908 if(val.length == 0) error_str = $.lang[LANG]['siteum.regexp.password.input']; 9909 else { 9910 if(reg_has && !reg.test($(this).val()) ) error_str = reg_error; 9911 else if( field == 'new-password-checked' && ($(this).val() != myPasswordWrap.find('#input-new-password').val())) error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 9912 } 9913 9914 if(error_str.length > 0) { 9915 if(errorEL.length > 0 ) errorEL.addClass('empty').text(error_str); 9916 else $(this).after('<span class="mng-error empty">'+ $.lang[LANG]['siteum.regexp.password.input'] + '</span>'); 9917 9918 if(myPasswordWrap.find('.mng-panel-body.focus').length == 0) $(this).focus(); 9919 else { myPasswordWrap.find('.mng-panel-body.focus input').focus(); } 9920 } else { 9921 errorEL.remove(); 9922 $(this).closest('.mng-panel-body').removeClass('focus'); 9923 } 9924 }); 9925 9926 9927 if(myPasswordWrap.find('.mng-error').length == 0) { 9928 var uid = mypageModal.find('.my-id').text(), 9929 pw = hex_md5(myPasswordWrap.find('#input-password').val()), 9930 new_pw = hex_md5(myPasswordWrap.find('#input-new-password').val()); 9931 9932 $.post('/umember/password/change', { uid : uid, pw : pw, new_pw : new_pw }, function(data) { 9933 if(typeof data.error != 'undefined' && data.error) { 9934 $.each(data.error, function(key,str) { 9935 if(mypageModal.find('#input-'+key).length > 0) { 9936 mypageModal.find('#input-'+key).closest('.mng-panel-body').append('<span class="mng-error">' + str + '</span>'); 9937 mypageModal.find('#input-'+key).focus(); 9938 } else { alert(str,'/manager/member'); return false; } 9939 }); 9940 if(mypageModal.find('.mng-error').length > 0) return false; 9941 } 9942 mypageModal.find('input.form-control').val(''); 9943 mngShowToast('check', $.lang[LANG]['siteum.forgot.pw.success'], mng_settings_el); 9944 9945 }, 'json'); 9946 } 9947 9948 9949 9950 9951 } 9952 }); 9953 9954 $('.mng-siteUM-modal .mng-settings[data-type="password-change"] input.form-control').live({ 9955 focus: function() { 9956 $(this).closest('.mng-panel-body').addClass('focus').siblings().removeClass('focus'); 9957 }, 9958 blur: function() { 9959 $(this).closest('.mng-panel-body').removeClass('focus'); 9960 }, 9961 keyup: function() { 9962 9963 var field = $(this).attr('id').trim().replace(/input-/,''), 9964 groupEl = $(this).closest('.mng-panel-body'), 9965 errorEL = $(this).next('.mng-error'), 9966 reg_pw = (field == 'new-password-checked') ? field : 'password', 9967 reg_has = (typeof COLLECTION_REGEX[reg_pw] != 'undefined' && COLLECTION_REGEX[reg_pw]) ? true : false, 9968 reg_pattern = (reg_has) ? COLLECTION_REGEX[reg_pw]['pattern_j'] : '', 9969 reg_ex = (reg_has) ? COLLECTION_REGEX[reg_pw]['ex'] : ''; 9970 9971 if(field == 'new-password' || field == 'new-password-checked') { 9972 var pwEl = $('.mng-settings[data-type="password-change"]').find('#input-new-password'), 9973 pw2El = $('.mng-settings[data-type="password-change"]').find('#input-new-password-checked'), 9974 error_str = $.lang[LANG]['siteum.regexp.pw.invalid']; 9975 9976 if(pwEl.val() == pw2El.val()) { 9977 pw2El.next('.mng-error').remove(); 9978 } else { 9979 if(pw2El.val().length > 0) { 9980 if(pw2El.next('.mng-error').length > 0) pw2El.next('.mng-error').removeClass('empty').text(error_str); 9981 else pw2El.closest('.mng-panel-body').append('<span class="mng-error">'+ error_str + '</span>'); 9982 } 9983 } 9984 9985 } 9986 9987 if(reg_has && errorEL.length > 0) { 9988 var reg = new RegExp(reg_pattern); 9989 if(reg.test($(this).val())) errorEL.remove(); 9990 else { errorEL.removeClass('empty').text(reg_ex); } 9991 } 9992 9993 } 9994 }); 9995 9996 $('.mng-siteUM-modal .my-account-remove').live({ 9997 click: function() { 9998 var sid = $('#mypage-modal').attr('data-sid'), 9999 uid = $('#mypage-modal').attr('data-uid'); 10000 10001 var content = '\ 10002 <div class="mng-in-flat-modal-wrap">\ 10003 <div class="my-account-remove-info text-left">\ 10004 <strong>' + $.lang[LANG]['manager.mypage.my-remove.txt.1'] + '</strong>\ 10005 <ol>\ 10006 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.2'] + '</li>\ 10007 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.3'] + '</li>\ 10008 <li>' + $.lang[LANG]['manager.mypage.my-remove.txt.4'] + '</li>\ 10009 </ol>\ 10010 </div>\ 10011 <div class="my-account-remove-check clearfix">\ 10012 <div class="checkboxs hand">\ 10013 <input type="checkbox" class="my-account-remove-agree" id="my-account-remove-agree">\ 10014 <strong>' + $.lang[LANG]['manager.mypage.my-remove.agree.txt'] + '</strong>\ 10015 </div>\ 10016 </div>\ 10017 </div>\ 10018 '; 10019 10020 $('.my-account-remove-agree').live({ 10021 click: function() { 10022 if($(this).prop('checked')) $(this).closest('.my-account-remove-check').find('.mng-error').remove(); 10023 } 10024 }); 10025 10026 $('.my-account-remove-input-password').live({ 10027 keyup: function() { 10028 if($(this).val().length > 0) $(this).closest('.form-group').find('.mng-error').remove(); 10029 } 10030 }); 10031 10032 var agreeModal = $(this).showModalFlat('DELETE ACCOUNT', content, true, true, function() { 10033 var checked = agreeModal.find('#my-account-remove-agree').prop('checked'), 10034 errorEL = agreeModal.find('.my-account-remove-check').find('.mng-error'), 10035 error_str = (!checked) ? $.lang[LANG]['manager.mypage.my-remove.agree.check'] : ''; 10036 10037 if(!checked) { 10038 if(errorEL.length > 0) errorEL.text(error_str); 10039 else $('.my-account-remove-check').append('<span class="mng-error">' + error_str + '</span>'); 10040 return false;
10041 } 10042 10043 var udata_content = '\ 10044 <div class="mng-in-flat-modal-wrap padding-top-0">\ 10045 <p style="margin-bottom: 15px;">' + $.lang[LANG]['manager.mypage.my-remove.description'] + '</p>\ 10046 <span class="form-group">\ 10047 <input class="form-control" type="password" id="input-password" placeholder="' + $.lang[LANG]['siteum.regexp.password.input'] + '">\ 10048 </span>\ 10049 </div>\ 10050 '; 10051 10052 var removeModal = $(this).showModalFlat('DELETE ACCOUNT', udata_content, true, true, function() { 10053 var pw = removeModal.find('#input-password').val(); 10054 10055 if(pw.length == 0) { 10056 if(removeModal.find('.mng-error').length > 0) removeModal.find('.mng-error').text($.lang[LANG]["siteum.regexp.password.input"]); 10057 else removeModal.find('.form-group').append('<span class="mng-error">' + $.lang[LANG]["siteum.regexp.password.input"] + '</span>'); 10058 10059 removeModal.find('#input-password').focus(); 10060 return false; 10061 } else { 10062 $.processON('Deleting....'); 10063 var remove_data = { 10064 'id' : uid, 10065 'password' : hex_md5(pw), 10066 }; 10067 10068 removeModal.find('.mng-error').remove(); 10069 $.post('/umember/login/remove', { data : JSON.stringify(remove_data) }, function(data) { 10070 if(typeof data.error != 'undefined' && data.error) { 10071 $.processOFF(); 10072 $.each(data.error, function(key,str) { 10073 if(removeModal.find('#input-'+key).length > 0 ) { 10074 removeModal.find('#input-'+key).closest('.form-group').append('<span class="mng-error">' + str + '</span>'); 10075 removeModal.find('#input-'+key).focus(); 10076 } else { alert(str); return false; } 10077 }); 10078 if(removeModal.find('.mng-error').length > 0) return false; 10079 } 10080 10081 removeModal.modal('hide'); 10082 agreeModal.modal('hide'); 10083 $('#mypage-modal').modal('hide'); 10084 $.umember.init(); 10085 setTimeout(function() { 10086 $.processOFF(); 10087 var successModal = $(this).showModalFlat('INFORMATION', $.lang[LANG]['manager.mypage.my-remove.success'], true, false, '', 'ok'); 10088 }, '1000'); 10089 10090 }, 'json'); 10091 } 10092 10093 10094 }, 'cancel', 'manager.mypage.my-remove.last-btn', 'mng-mypage-modal'); /*removeModal:: END*/ 10095 10096 10097 10098 }, 'cancel', '', 'w480 mng-mypage-modal'); /*agreeModal:: END*/ 10099 10100 10101 } 10102 }); 10103 10104 10105 10106 10107 /******************************************************************************************************************************************Mypage Modal END*/ 10108 10109}); 10110 10111// psearch 모ë°ì¼ í ì¢ì° ê·¸ë¼ë°ì´ì ì¶ê° *********************************************************************************************************************** 10112document.addEventListener('DOMContentLoaded', () => { 10113 const wrap = document.querySelector('.dsgn-body .psearch-body .psearch-tabs'); 10114 const nav = wrap && wrap.querySelector('.dsgn-body .psearch-body .psearch-tab-nav, .psearch-tab-nav'); 10115 if (!wrap || !nav) return; 10116 10117 const MOBILE_MQ = window.matchMedia('(max-width: 767px)'); 10118 const isOverflowing = () => nav.scrollWidth > nav.clientWidth + 1; 10119 10120 /* ========================= 10121 1) 모ë°ì¼ ê·¸ë¼ë°ì´ì (íì´ë) 10122 ========================= */ 10123 const updateFade = () => { 10124 const max = nav.scrollWidth - nav.clientWidth; 10125 10126 if (!MOBILE_MQ.matches || max <= 1) { 10127 wrap.classList.remove('has-left', 'has-right'); 10128 return; 10129 } 10130 10131 wrap.classList.toggle('has-left', nav.scrollLeft > 1); 10132 wrap.classList.toggle('has-right', nav.scrollLeft < max - 1); 10133 }; 10134 10135 nav.addEventListener('scroll', updateFade, { passive: true }); 10136 window.addEventListener('resize', updateFade); 10137 MOBILE_MQ.addEventListener?.('change', updateFade); 10138 requestAnimationFrame(() => requestAnimationFrame(updateFade)); 10139 10140 10141 /* ========================= 10142 2) PC(ë§ì°ì¤) ëëê·¸ ì¤í¬ë¡¤ (í´ë¦ ì´ë¦¬ë ë²ì ) 10143 - threshold ì´ì ìì§ìì ëë§ dragë¡ ì í 10144 - ê·¸ëë§ setPointerCapture + preventDefault 10145 ========================= */ 10146 const DRAG_THRESHOLD = 6; 10147 10148 let pointerId = null; 10149 let down = false; 10150 let dragging = false; 10151 let startX = 0; 10152 let startLeft = 0; 10153 let moved = 0; 10154 let suppressClick = false; 10155 10156 nav.addEventListener('pointerdown', (e) => { 10157 if (e.pointerType !== 'mouse') return; 10158 if (!isOverflowing()) return; 10159 if (e.button !== 0) return; 10160 10161 down = true; 10162 dragging = false;
10163 suppressClick = false; 10164 moved = 0; 10165 10166 pointerId = e.pointerId; 10167 startX = e.clientX; 10168 startLeft = nav.scrollLeft; 10169 }); 10170 10171 nav.addEventListener('pointermove', (e) => { 10172 if (!down) return; 10173 if (e.pointerId !== pointerId) return; 10174 10175 const dx = e.clientX - startX; 10176 moved = Math.max(moved, Math.abs(dx)); 10177 10178 // threshold ëì´ê°ë ìê° ëëê·¸ 모ëë¡ ì í 10179 if (!dragging && moved >= DRAG_THRESHOLD) { 10180 dragging = true; 10181 suppressClick = true; 10182 nav.classList.add('is-dragging'); 10183 nav.setPointerCapture?.(pointerId); 10184 } 10185 10186 if (dragging) { 10187 nav.scrollLeft = startLeft - dx; 10188 e.preventDefault(); // ëëê·¸ ì¤ìë§ í ì¤í¸ ì í ë°©ì§ 10189 updateFade(); 10190 } 10191 }); 10192 10193 const endPointer = () => { 10194 if (!down) return; 10195 down = false; 10196 10197 if (dragging) { 10198 nav.classList.remove('is-dragging'); 10199 } 10200 10201 dragging = false; 10202 pointerId = null; 10203 10204 // ëëê·¸ ì§í í´ë¦ 1íë§ ë§ê³ ë¤ì í´ë¦ì ì ì 10205 if (suppressClick) { 10206 setTimeout(() => { suppressClick = false; }, 0); 10207 } 10208 }; 10209 10210 nav.addEventListener('pointerup', endPointer); 10211 nav.addEventListener('pointercancel', endPointer); 10212 window.addEventListener('blur', endPointer); 10213 10214 // ì§ì§ ëëê·¸ìë ê²½ì°ìë§ í´ë¦ ì°¨ë¨ 10215 nav.addEventListener('click', (e) => { 10216 if (suppressClick) { 10217 e.preventDefault(); 10218 e.stopPropagation(); 10219 } 10220 }, true); 10221 10222 10223 /* ========================= 10224 3) ëì ë°°ê²½ì â ê·¸ë¼ë°ì´ì ì ìë ì¶ì¶ 10225 ========================= */ 10226 const applyDynamicBg = () => { 10227 const bg = getComputedStyle(wrap).backgroundColor; 10228 10229 if (bg === 'rgba(0, 0, 0, 0)' || bg === 'transparent') { 10230 let parent = wrap.parentElement; 10231 while (parent) { 10232 const parentBg = getComputedStyle(parent).backgroundColor; 10233 if (parentBg !== 'rgba(0, 0, 0, 0)' && parentBg !== 'transparent') { 10234 wrap.style.setProperty('--tab-bg', parentBg); 10235 return; 10236 } 10237 parent = parent.parentElement; 10238 } 10239 } else { 10240 wrap.style.setProperty('--tab-bg', bg); 10241 } 10242 }; 10243 10244 applyDynamicBg(); 10245 window.addEventListener('resize', applyDynamicBg); 10246}); 10247// psearch 모ë°ì¼ í ì¢ì° ê·¸ë¼ë°ì´ì ì¶ê° end **************************************************************************************************************** 10248 10249/***********************************************************************************************************************************member-config page START*/ 10250var collectionSortable = function(cancel) { 10251 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'; 10252 10253 $('#join-collections,#mjoin-collections').sortable({ 10254 items: '.collection-item:not(.fix[data-type="email"])', 10255 handle: '.icon-move', 10256 cancel: cancel, 10257 scroll: true, 10258 placeholder: 'collection-item-placeholder', 10259 update: function(event,ui) { 10260 $.processON(); 10261 10262 var update_data = {}, 10263 new_data = {}, 10264 d_index = 0; 10265 10266 $('#join-collections').children('.collection-item').each(function(i,v){ 10267 var org_idx = $(this).attr('data-idx'), 10268 new_idx = $(this).index(), 10269 item_seq = $(this).attr('data-seq'); 10270 10271 if(org_idx!=new_idx) { 10272 $(this).attr('data-idx',new_idx); 10273 update_data[d_index] = { 10274 seq : item_seq, 10275 idx : new_idx 10276 } 10277 d_index++; 10278 } 10279 }); 10280 10281 $.ajax({ 10282 type: 'POST', 10283 url: '/umember/setJoinCollections/type/jcol_update', 10284 data: { sid: SID, update_data: update_data }, 10285 dataType: 'json', 10286 async: true, 10287 success: function(data) { 10288 if(typeof data.error != 'undefined' && data.error) { 10289 alert(data.error); 10290 return false; 10291 } 10292 10293 var slog_field = {'field_name':$(ui.item).find('.collection-name').text().trim(),'field':$(ui.item).attr('data-type')}; 10294 setSiteLogs('um.config.collection','sort',slog_field,'um.config.collection'); 10295 }, 10296 complete: function () { 10297 $.processOFF(); 10298 } 10299 }); 10300 } 10301 }).disableSelection(); 10302 10303} 10304 10305var collectionItem = function(name,etc) { 10306 var types = ''; 10307 10308 $.each(COLLECTION_TYPES, function(k,v) {
10309 types = types + '<option value="' + k + '" '+((k == 'text') ? 'selected' : '')+'>' + v + '</option>'; 10310 }); 10311 10312 var jcollection_select_type = ['text','memo','radio','check','select','fupload'], 10313 collectionAdd = (!name) ? 'additem' : '', 10314 str = '\ 10315 <div class="collection-item ' + collectionAdd + '" data-type="etc' + etc + '" data-etc="' + etc + '" data-orgjcoltype="text" data-jcoltype="" data-seq="">\ 10316 <div class="collection-info">\ 10317 <span class="icons icon-move cl-sort-handle hand">\ 10318 <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>\ 10319 </span>\ 10320 <span class="collection-name">' + name + '</span>\ 10321 </div>\ 10322 <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']+'">\ 10323 <div class="collection-config">\ 10324 <div class="icons hand">\ 10325 <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>\ 10326 </div>\ 10327 <div class="icons hand">\ 10328 <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>\ 10329 </div>\ 10330 <div class="use-option-check">\ 10331 <div class="checkboxs hand newcheckbox">\ 10332 <label>\ 10333 <div class="newcheckboxSvg">\ 10334 <input type="checkbox" class="collection-item-used" id="collection-item-used-additem"/>\ 10335 <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>\ 10336 <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>\ 10337 <!--<label for="collection-item-used-additem"></label>-->\ 10338 </div>\ 10339 </label>\ 10340 </div>\ 10341 <div class="checkboxs hand newcheckbox">\ 10342 <label>\ 10343 <div class="newcheckboxSvg">\ 10344 <input type="checkbox" class="collection-item-optional" id="collection-item-optional-additem"/>\ 10345 <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>\ 10346 <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>\ 10347 <!--<label for="collection-item-optional-additem"></label>-->\ 10348 </div>\ 10349 </label>\ 10350 </div>\ 10351 </div>\ 10352 </div>\ 10353 <div class="clear"></div>\ 10354 <div class="collection-item-content" style="display:none;">\ 10355 <div class="collection-item-content-wrap">\ 10356 <div class="collection-type-selectbox common-selectbox">\ 10357 <select name="jcollection-select-type" class="setting-small-input selectpicker dropdown jcollection-select">\ 10358 '; 10359 $.each(jcollection_select_type, function(i,v){ 10360 var selected = (v=='text') ? 'selected' : ''; 10361 str += '<option class="jcollection-type-opt" value="'+v+'" '+selected+'>'+$.lang[LANG]['manager.config.siteUM.jcollections.'+v]+'</option>'; 10362 }); 10363 10364 str += '\ 10365 </select>\ 10366 <svg viewBox="0 0 8 4" width="8" height="4"><polygon points="0 0 4 4 8 0 "></polygon></svg>\ 10367 </div> \ 10368 <span class="collection-type-info hand">\ 10369 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
10369<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>\ 10370 </span>\ 10371 </div>\ 10372 <div class="description-wrap hide">\ 10373 <div class="description-input hide">\ 10374 <div class="cl-common-form-wrap nonplace-holder">\ 10375 <div class="cl-common-form-group">\ 10376 <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']+'">\ 10377 </div>\ 10378 </div>\ 10379 </div>\ 10380 <div class="newcheckbox hand">\ 10381 <label>\ 10382 <div class="newcheckboxSvg">\ 10383 <input type="checkbox" class="" id="collection-description" name="description" value="">\ 10384 <svg viewBox="0 0 16 16" width="16" height="16">\ 10385 <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>\ 10386 <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>\ 10387 </svg>\ 10388 <svg class="active" viewBox="0 0 16 16" width="16" height="16">\ 10389 <rect x="2" y="2" class="st6" width="12" height="12"></rect>\ 10390 <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>\ 10391 </svg>\ 10392 </div>\ 10393 '+$.lang[LANG]['manager.config.siteUM.jcollections.description.text']+'\ 10394 </label>\ 10395 </div>\ 10396 </div>\ 10397 <div class="jcol-btn-wrap">\ 10398 <div class="jcol-btn-cancel jcol-btn hand">\ 10399 '+$.lang[LANG]['manager.config.jcollection.item.btn.cancel']+'\ 10400 </div>\ 10401 <div class="jcol-btn-save jcol-btn hand">\ 10402 '+$.lang[LANG]['manager.config.jcollection.item.btn.save']+'\ 10403 </div>\ 10404 </div>\ 10405 </div>\ 10406 </div>\ 10407 '; 10408 return str; 10409} 10410 10411var addCollectionInput = function(cl_name) { 10412 var cl_name = (typeof cl_name == 'undefined' || !cl_name) ? '' : cl_name, 10413 str = '\ 10414 <div class="collection-update">\ 10415 <div class="input-group">\ 10416 <input type="text" class="collection-update-name form-control" placeholder="' + $.lang[LANG]['manager.join.cl.item.name.enter'] + '" value="' + cl_name + '"/>\ 10417 <span class="input-group-btn">\ 10418 <button class="collection-update-save btn btn-active">\ 10419 <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>\ 10420 </button>\ 10421 </span>\ 10422 <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>\ 10423 </div>\ 10424 </div>\ 10425 '; 10426 return str; 10427} 10428 10429//keyup birth 10430var auto_date_format = function( e, oThis ){ 10431 var num_arr = [ 10432 97, 98, 99, 100, 101, 102, 103, 104, 105, 96, 10433 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 10434 ] 10435 10436 var key_code = ( e.which ) ? e.which : e.keyCode; 10437 10438 if((num_arr.indexOf( Number( key_code ) ) != -1) || (key_code != 229) || (key_code != 0)){ 10439 var len = oThis.value.length; 10440 if( len == 4 && (key_code != 8)) oThis.value += '-'; 10441 if( len == 7 && (key_code != 8)) oThis.value += '-'; 10442 } 10443} 10444 10445var myinfoChangeBtn = function(e) { 10446 var sid = (typeof $(e).attr('data-sid')!='undefined') ? $(e).attr('data-sid') : property['SID']; 10447 if(property.UMEMBER.check_sns) { 10448 $(location).attr('href','/_myinfo'); 10449 return false; 10450 } 10451 10452 var str = '\ 10453 <div>\ 10454 <div class="cl-s-form-wrap">\ 10455 <div class="cl-s-form-group">\ 10456 <input type="password" class="cl-s-form-control" id="check-password" required="required">\ 10457 <label for="input" class="cl-s-control-label">'+ $.lang[LANG]['manager.mypage.personal.info.pw.input'] +'</label>\ 10458 </div>\ 10459 </div>\ 10460 </div>\ 10461 '; 10462 10463 $('.flat-modal .modal').modal('hide'); 10464 var checkMyinfoPwMdoal = $(e).showModalFlat($.lang[LANG]['manager.mypage.personal.info.pw.title'],str,true,true,function () { 10465 10466 var pw_val = $('#check-password').val().trim(); 10467 if(!pw_val) { 10468 $('#check-password').closest('.cl-s-form-wrap').addClass('empty'); 10469 $('#check-password').focus(); 10470 return false;
10471 } else if(checkEmojis(pw_val)) { 10472 $('#check-password').focus(); 10473 return false; 10474 } 10475 10476 $.post('/_check_mypw', { sid:sid, pw:hex_md5(pw_val) }, function(data) { 10477 if(typeof data.error != 'undefined' && data.error) { 10478 $('#check-password').closest('.cl-s-form-wrap').removeClass('empty').addClass('error'); 10479 if($('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').length > 0) { 10480 $('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').html(data.error); 10481 } else { 10482 $('#check-password').after('<label for="input" class="cl-s-control-label error">' + data.error + '</label>'); 10483 } 10484 $('#check-password').val('').focus(); 10485 return false; 10486 } else { 10487 checkMyinfoPwMdoal.modal('hide'); 10488 $(location).attr('href','/_myinfo'); 10489 } 10490 },'json'); 10491 10492 },'ë«ê¸°',$.lang[LANG]['manager.mypage.personal.info.pw.btn'],'cl-s-product-pw cl-modal cl-s-btn w620',false,'', function() { 10493 10494 $('.cl-s-product-pw .cl-s-form-group').on('click',function(e) { 10495 if($(e.target).hasClass('cl-s-form-group')) { 10496 $(e.target).find('.cl-s-form-control:not([type=hidden])').focus(); 10497 } 10498 }); 10499 10500 $('.cl-s-product-pw .cl-s-form-control').on({ 10501 keyup: function(e) { 10502 if($(this).val().trim().length == 0) { 10503 $(this).closest('.cl-s-form-wrap').removeClass('error'); 10504 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10505 } 10506 }, 10507 focus: function(e) { 10508 $(this).closest('.cl-s-form-wrap').addClass('active'); 10509 }, 10510 blur: function(e) { 10511 $(this).closest('.cl-s-form-wrap').removeClass('active'); 10512 10513 var val = $(this).val().trim(); 10514 if(val.length == 0) { 10515 $(this).closest('.cl-s-form-wrap').removeClass('error').addClass('empty'); 10516 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10517 return false; 10518 } else if(checkEmojis(val)) { 10519 $('#check-password').closest('.cl-s-form-wrap').removeClass('empty').addClass('error'); 10520 if($('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').length > 0) { 10521 $('#check-password').closest('.cl-s-form-wrap').find('.cl-s-control-label.error').html($.lang[LANG]['config.unable.emoji']); 10522 } else { 10523 $('#check-password').after('<label for="input" class="cl-s-control-label error">' + $.lang[LANG]['config.unable.emoji'] + '</label>'); 10524 } 10525 $('#check-password').val('').focus(); 10526 return false; 10527 } 10528 10529 $(this).closest('.cl-s-form-wrap').removeClass('error').removeClass('empty'); 10530 $(this).closest('.cl-s-form-wrap').find('.cl-s-control-label.error').remove(); 10531 } 10532 }); 10533 10534 }); 10535} 10536 10537/* 10538var smsRechargeModal = function(sid) { 10539 var recharge_plan = { 10540 'plan-5000': { name : '5,000ì', content: '250ê±´', price: '20ì'}, 10541 'plan-10000': { name : '10,000ì', content: '500ê±´', price: '20ì'}, 10542 'plan-20000': { name : '20,000ì', content: '1100ê±´<span class="additional">(ë³´ëì¤ 100ê±´ í¬í¨)</span>', price: '18.2ì'}, 10543 'plan-30000': { name : '30,000ì', content: '1800ê±´<span class="additional">(ë³´ëì¤ 300ê±´ í¬í¨)</span>', price: '16.7ì'}, 10544 'plan-50000': { name : '50,000ì', content: '3100ê±´<span class="additional">(ë³´ëì¤ 600ê±´ í¬í¨)</span>', price: '16.1ì'}, 10545 } 10546 var modal_content = '\ 10547 <div class="mng-modal-body recharge-modal">\ 10548 <div class="row">\ 10549 <div class="recharge-head clearfix">\ 10550 <div class="col-xs-4 col-sm-4 col-md-4 plan">ê¸ì¡ë³(VATë³ë)</div>\ 10551 <div class="col-xs-4 col-sm-4 col-md-6 content">ì¶©ì SMS ê±´ì</div>\ 10552 <div class="col-xs-4 col-sm-4 col-md-2 price">ë¨ê°</div>\ 10553 </div>\ 10554 '; 10555 $.each(recharge_plan, function(i,v) { 10556 modal_content = modal_content + '\ 10557 <div class="recharge-item clearfix">\ 10558 <div class="col-xs-4 col-sm-4 col-md-4 plan">\ 10559 <div class="radio-inline">\ 10560 <input type="radio" id="recharge-'+ i + '" name="recharge-plan" value="'+ i +'">\ 10561 <label for="recharge-' + i + '">' + v['name'] + '</label>\ 10562 </div>\ 10563 </div>\ 10564 <div class="col-xs-4 col-sm-4 col-md-6 content">' + v['content'] + '</div>\ 10565 <div class="col-xs-4 col-sm-4 col-md-2 price">' + v['price'] + '</div>\ 10566 </div>\ 10567 '; 10568 }); 10569 modal_content = modal_content + '\ 10570 <div class="recharge-payment clearfix">\ 10571 <div class="col-xs-4 col-sm-4 col-md-3">ê²°ì ë°©ë²</div>\ 10572 <div class="col-xs-4 col-sm-4 col-md-9">\ 10573 <div class="radio-group">\ 10574 <div class="radio-inline">\ 10575 <input type="radio" class="payment-method-radio" id="payment-method-card" name="payment-method-radio" value="card">\ 10576 <label for="payment-method-card">ì ì©ì¹´ë</label>\ 10577 </div>\ 10578 <div class="radio-inline">\ 10579 <input type="radio" class="payment-method-radio" id="payment-method-vbank" name="payment-method-radio" value="vbank">\ 10580 <label for="payment-method-vbank">ê°ìê³ì¢</label>\ 10581 </div>\ 10582 </div>\ 10583 </div>\ 10584 </div>\ 10585 </div>\ 10586 </div>\ 10587 '; 10588 10589 var recharge_modal = $(this).showModalFlat('문ìë©ìì§(SMS) ì¶©ì ', modal_content, true, true, function() { 10590 10591 //문ìë©ìì§(SMS) ì¶©ì ê¸°ë¥ ìì . 10592 10593 10594 recharge_modal.modal('hide'); 10595 }, 'cancel', 'ì¶©ì í기', 'w480'); 10596 10597} 10598/*sms*/ 10599 10600var setJcolError = function(col_item, error_selector, error_text) { 10601 var error_str = '\ 10602 <div class="error_wrap '+error_selector+'-error">\ 10603 <span class="error_svg">\ 10604 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13">
10604<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>\ 10605 </span>\ 10606 <span class="error_str">\ 10607 '+$.lang[LANG]['manager.config.jcollection.item.error.'+error_text]+'\ 10608 </span>\ 10609 </div>'; 10610 10611 col_item.find('.'+error_selector+'.empty').removeClass('jcol_error').addClass('jcol_error'); 10612 10613 return error_str; 10614 10615} 10616 10617var getJcollectionItemOptionVal = function(t) { 10618 var opt_str = ''; 10619 $.each(t.find('.jcollection-item-option'), function(i,v) { 10620 var opt_name = $(this).find('.jcol-option-name').val().trim(), 10621 split_str = (i==(t.find('.jcollection-item-option').length-1)) ? '' : '`', 10622 error_str = ''; 10623 10624 // if(!opt_name) { 10625 // $(this).find('.jcol-option-name').removeClass('empty').addClass('empty'); 10626 10627 // error_str = setJcolError(t, 'jcol-option-name', 'opt_name'); 10628 // $(this).find('.error_wrap.jcol-option-name-error').remove(); 10629 // $(this).find('.jcol-option-name').after(error_str); 10630 10631 // return false; 10632 // } else { 10633 // $(this).find('.jcol-option-name').removeClass('empty').removeClass('jcol_error'); 10634 // $(this).find('.error_wrap.jcol-option-name-error').remove(); 10635 // } 10636 10637 // t.removeClass('empty'); 10638 opt_str += opt_name + split_str; 10639 }); 10640 10641 return opt_str; 10642}; 10643 10644var setJoinCollectionData = function(t, sid){ 10645 /* 10646 sid : sid 10647 mb_id : mb_id 10648 collection_type : email/addr/...etc1... 10649 used : true / false 10650 require : optional 10651 name : name 10652 type : type (text(ë¨ë¬¸í), memo(ì¥ë¬¸í), radio(ë¨ì¼ì íí), check(ë¤ì¤ì íí), select(목ë¡ì íí)) 10653 idx : idx 10654 val : val 10655 regdate : regdate 10656 */ 10657 10658 var data = {}; 10659 10660 t.each(function(i,v) { 10661 var collection_type = (typeof $(this).attr('data-collectiontype')!='undefined') ? $(this).attr('data-collectiontype') : 'etc1', 10662 seq = (typeof $(this).attr('data-seq') != 'undefined') ? $(this).attr('data-seq') : '', 10663 used = (typeof $(this).attr('data-used') != 'undefined') ? $(this).attr('data-used') : 'false', 10664 require = (typeof $(this).attr('data-require')!='undefined') ? $(this).attr('data-require') : 'false', 10665 name = (typeof $(this).attr('data-name')!='undefined') ? (!$(this).attr('data-name') ? $(this).find('.jcollection_item_input').val() : $(this).attr('data-name')) : '', 10666 type = (typeof $(this).attr('data-type')!='undefined') ? $(this).attr('data-type') : 'text', 10667 idx = (typeof $(this).attr('data-idx')!='undefined') ? $(this).attr('data-idx') : '0', 10668 val = ''; 10669 10670 val = getJcollectionItemOptionVal($(this)); 10671 10672 used = (used===false) ? 'false' : 'true'; 10673 require = (require===false) ? 'false' : 'true'; 10674 10675 data[collection_type] = { 10676 sid : sid, 10677 seq : seq, 10678 collection_type : collection_type, 10679 used : used, 10680 require : require, 10681 name : name, 10682 type : type, 10683 idx : idx, 10684 val : val 10685 } 10686 }); 10687 console.log(data); 10688 10689 return data; 10690} 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706/*************************************************************************************************************************************member-config page END*/ 10707 10708 10709 10710 10711/*************************************************************************************************************************************member-list page START*/ 10712 10713var getMemberListCheckData = function(el) { 10714 var select_count = el.closest('.mng-list').find('tr.active td.no input[type="checkbox"]:checked').length - 1, 10715 select_ids = el.closest('.mng-list').find('tr.active').map(function() { return $(this).find('td.id').text().trim(); }).get(), 10716 select_name = '', 10717 select_names = ''; 10718 10719 if(select_count < 0) return { error: $.lang[LANG]['manager.list.member.selected.empty'] }; 10720 el.closest('.mng-list').find('tr.active').map(function(i) { 10721 if(i==0) select_name = $(this).find('td.id').text().trim(); 10722 else select_names = select_names + ((select_names.length > 0) ? ', ' : '') + $(this).find('td.id').text().trim(); 10723 }); 10724 10725 var result = { 10726 count : select_count, 10727 ids : select_ids, 10728 name : select_name, 10729 names : select_names 10730 }; 10731 10732 return result; 10733} 10734 10735// var dissmissCert = function(el, uid) { 10736// var id = $(el).attr('id'); 10737// var dismiss = ''; 10738// if(id == 'member-cert_date-button') { 10739// dismiss = 'cert'; 10740// } else if (id == 'member-cert_adult_date-button') { 10741// dismiss = 'adult'; 10742// } 10743 10744// $.ajax({ 10745// type: 'POST', 10746// url: '/umember/update/type/dismiss_cert', 10747// data: { sid : SID, uid : uid, dismiss : dismiss }, 10748// dataType: 'json', 10749// async: true, 10750// success: function(data) { 10751// if(data.affected_rows > 0) { 10752// var modalTitle = ''; 10753// if(data.um_cert == 'N') { 10754// modalTitle = '본ì¸ì¸ì¦ì´ í´ì ëììµëë¤.'; 10755// $('.member-cert_date-wrap').html(''); 10756// } else if (data.um_cert_adult == 'N') { 10757// modalTitle = 'ì±ì¸ì¸ì¦ì´ í´ì ëììµëë¤.'; 10758// $('.member-cert_adult_date-wrap').html(''); 10759// } 10760// $(this).showModalFlat(modalTitle, 'í´ë¹ ê³ì ì ì¸ì¦ì´ í´ì ëì´ ì¸ì¦ ì´ì ìíë¡ ë³µêµ¬ëììµëë¤.', true, false, function() { 10761// location.reload(); 10762// }, 'ok', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-close-btn'); 10763// } else { 10764// alert('error'); 10765// } 10766// } 10767// }); 10768// } 10769/*************************************************************************************************************************************member-list page END*/ 10770 10771var mngShowToast = function(icon,message,el,time) { 10772 console.log('mngShowToast') 10773 if($('.mng-toast-wrap').length > 0 ) $('.mng-toast-wrap.remove').remove();
10774 if(typeof time == 'undefined') time = 800; 10775 var icon = "fa fa-"+icon, 10776 toast = '\ 10777 <div class="mng-toast-wrap">\ 10778 <div class="mng-toast">\ 10779 <span class="mng-toast-icon"><i class="' + icon + '"></i></span>\ 10780 <span class="mng-toast-message">' + message + ' </span>\ 10781 </div>\ 10782 </div>\ 10783 '; 10784 10785 el.find('.mng-title, .mng-wrap').addClass('mng-toast-showing').animate({ 10786 'opacity': 0.3, 10787 'pointer-events': 'none' 10788 }, { 10789 duration: '.5s', 10790 easing: 'easeInOutCubic' 10791 },50).delay(time).fadeIn(100, function() { 10792 $(this).animate({ 10793 'opacity': 1, 10794 'pointer-events': 'auto' 10795 }, { 10796 duration: '.5s', 10797 easing: 'easeInOutCubic' 10798 }, 100).removeClass('mng-toast-showing'); 10799 }); 10800 10801 $(toast).appendTo(el).css({ 10802 'opacity': 0, 10803 'margin-top': '-10px' 10804 }).animate({ 10805 'opacity': 1, 10806 'margin-top': '0px' 10807 }, { 10808 duration: '.7s', 10809 easing: 'easeInOutCubic' 10810 },50).delay(time).fadeOut(100, function() { $(this).addClass('remove'); }); 10811 10812} 10813 10814var howToApplyCert = function() { 10815 var mobile = (window.innerWidth<768) ? 'm.' : '', 10816 str = '\ 10817 <div class="guide-top lang-'+LANG+'">\ 10818 <h3 class="modal-title guidetitle">'+$.lang[LANG]['manager.cert.guide.title']+'</h3>\ 10819 <div class="guide-menu">\ 10820 <ul>'; 10821 for (var i=0;i<3;i++) { 10822 var menuactive = (i==0) ? 'active' : ''; 10823 str = str + '<li class="hand '+menuactive+'">'; 10824 if(i==2) str = str + '<div class="line left"></div>'; 10825 else if(i==1) { 10826 str = str +'\ 10827 <div class="line left"></div>\ 10828 <div class="line right"></div>\ 10829 '; 10830 } 10831 str = str + '<p>'+$.lang[LANG]['manager.cert.guide.step.'+mobile+i]+'</p>'; 10832 if(i==0) str = str + '<div class="line right"></div>'; 10833 str = str + '</li>'; 10834 }; 10835 str += '\ 10836 </ul>\ 10837 </div>\ 10838 </div>\ 10839 <div class="guide-wrap">\ 10840 <div class="step">\ 10841 <div id="step1">\ 10842 <h3>'+$.lang[LANG]['manager.cert.guide.step.1.title']+'</h3>\ 10843 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.1']+'</h4>\ 10844 <p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.1']+'</p>\ 10845 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.2']+'</h4>\ 10846 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_01_'+LANG+'.jpg">\ 10847 '; 10848 if(LANG == 'ko') { 10849 str += '\ 10850 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.1.sub.title.3']+'</h4>\ 10851 <p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.3']+'</p>\ 10852 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_02_'+LANG+'.jpg">\ 10853 '; 10854 } 10855 str += '\ 10856 </div>\ 10857 <hr class="line">\ 10858 <div id="step2">\ 10859 <h3>'+$.lang[LANG]['manager.cert.guide.step.2.title']+'</h3>\ 10860 <div class="step2-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.1']+'</div>\ 10861 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_03_'+LANG+'.jpg">\ 10862 <div class="step2-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.2']+'</div>\ 10863 <div class="step2-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.3']+'</div>\ 10864 '; 10865 if(LANG == 'ko') { 10866 str += '\ 10867 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_04_'+LANG+'.jpg">'; 10868 } else { 10869 str += '\ 10870 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_05_'+LANG+'.jpg">\ 10871 '; 10872 } 10873 str += '\ 10874 <div class="step2-step text-left">\ 10875 <span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.4']+'\ 10876 '; 10877 if(LANG != 'ko') { 10878 str += '<p>'+$.lang[LANG]['manager.cert.guide.step.1.sub.3']+'</p>\ 10879 '; 10880 } 10881 str += '\ 10882 </div>'; 10883 if(LANG == 'ko') { 10884 str += '\ 10885 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_05_'+LANG+'.jpg">'; 10886 } 10887 str += '\ 10888 <div class="step2-step text-left"><span>STEP 05.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.5']+'</div>\ 10889 <div class="step2-step text-left">\ 10890 <span>STEP 06.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.6']+'\ 10891 <p>'+$.lang[LANG]['manager.cert.guide.step.2.txt.6.sub']+'</p>\ 10892 </div>\ 10893 <div class="step2-step text-left"><span>STEP 07.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.7']+'</div>\ 10894 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_06_'+LANG+'.jpg">\ 10895 <div class="step2-step text-left"><span>STEP 08.</span>'+$.lang[LANG]['manager.cert.guide.step.2.txt.8']+'</div>\ 10896 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_07_'+LANG+'.jpg">\ 10897 </div>\ 10898 <hr class="line">\ 10899 <div id="step3">\ 10900 <h3>'+$.lang[LANG]['manager.cert.guide.step.3.title']+'</h3>\ 10901 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.1']+'</h4>\ 10902 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-1']+'</p>\ 10903 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-2']+'</div>\ 10904 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_08_'+LANG+'.jpg">\ 10905 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-3']+'</div>\ 10906 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_09_'+LANG+'.jpg">\ 10907 <div class="step3-step text-left"><span>
10907STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-4']+'</div>\ 10908 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_10_'+LANG+'.jpg">\ 10909 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.1-5']+'</div>\ 10910 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_11_'+LANG+'.jpg">\ 10911 \ 10912 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.2']+'</h4>\ 10913 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-1']+'</p>\ 10914 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-2']+'</div>\ 10915 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_12_'+LANG+'.jpg">\ 10916 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-3']+'</div>\ 10917 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_13_'+LANG+'.jpg">\ 10918 <div class="step3-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-4']+'</div>\ 10919 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_14_'+LANG+'.jpg">\ 10920 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.2-5']+'</div>\ 10921 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_15_'+LANG+'.jpg">\ 10922 \ 10923 <h4 class="text-left">'+$.lang[LANG]['manager.cert.guide.step.3.sub.title.3']+'</h4>\ 10924 <p>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-1']+'</p>\ 10925 <div class="step3-step text-left"><span>STEP 01.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-2']+'</div>\ 10926 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_16_'+LANG+'.jpg">\ 10927 <div class="step3-step text-left"><span>STEP 02.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-3']+'</div>\ 10928 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_17_'+LANG+'.jpg">\ 10929 <div class="step3-step text-left"><span>STEP 03.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-4']+'</div>\ 10930 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_18_'+LANG+'.jpg">\ 10931 <div class="step3-step text-left"><span>STEP 04.</span>'+$.lang[LANG]['manager.cert.guide.step.3.txt.3-5']+'</div>\ 10932 <img class="img-responsive" src="//storage.googleapis.com/i.addblock.net/member/cert_guide/'+LANG+'/verification_guide_19_'+LANG+'.jpg">\ 10933 </div>\ 10934 </div>\ 10935 <div class="modal-footer guideClose">\ 10936 <button type="button" class="btn btn-default btn-sm close-button-dialog clostbtnfalse" data-dismiss="modal">'+$.lang[LANG]['config.close']+'</button>\ 10937 </div>\ 10938 </div>\ 10939 '; 10940 10941 var certApplyGuideModal = $(this).showModalFlat('',str,true,false,'','close','','guidePopup cl-cmmodal cl-s-btn cover w700 cert-guide-modal', false ,'',function() { 10942 $(window).resize(function () { 10943 var mobile = (window.innerWidth<768) ? 'm.' : ''; 10944 10945 $('.cert-guide-modal .guide-menu li').each(function(i) { 10946 $(this).find('p').html($.lang[LANG]['manager.cert.guide.step.'+mobile+i]); 10947 }); 10948 }); 10949 $.guidePopup.scrollevent(); 10950 }); 10951}
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.