1/** 2 * Figaro Login UI 3 * CCCMH OAuth飿ºãã°ã¤ã³æ©è½ 4 * 5 * @package madameFIGARO.jp 6 * @since 1.0.0 7 */ 8 9var figaroLoginUI = (function($) { 10 'use strict'; 11 12 var config = { 13 ajaxUrl: '/_auth/login_ui.php', 14 loginUrl: '/_auth/login.php', 15 mypageUrl: 'https://id.cccmh.jp/member', 16 saveUrlAction: 'save_url', 17 loginStatus: null // null=æªç¢ºèª, true=ãã°ã¤ã³æ¸ã¿, false=æªãã°ã¤ã³ 18 }; 19 20 /** 21 * åæå 22 */ 23 function init() { 24 // WordPressããã®è¨å®ãèªã¿è¾¼ã¿ï¼wp_localize_scriptï¼ 25 if (typeof figaroLoginConfig !== 'undefined') { 26 config = $.extend({}, config, figaroLoginConfig); 27 } 28 29 // ç¾å¨ãã¼ã¸ã lastPageUri ã¯ããã¼ã«ä¿åï¼ãã°ã¤ã³å¾ã®æ»ãå ã/_auth/login.php ãåç §ï¼ 30 saveLastPage(); 31 32 // ãã¼ã¸èªã¿è¾¼ã¿æã«ãã°ã¤ã³ç¶æ ãç¢ºèª 33 checkLoginStatus(); 34 35 // ã¤ãã³ããªã¹ãã¼è¨å® 36 setupEventListeners(); 37 } 38 39 /** 40 * ç¾å¨ãã¼ã¸URLã lastPageUri ã¯ããã¼ã«ä¿åãã 41 */ 42 function saveLastPage() { 43 try { 44 document.cookie = 'lastPageUri=' + encodeURIComponent(window.location.href) 45 + '; path=/; max-age=1800; SameSite=Lax; Secure'; 46 } catch (e) {} 47 } 48 49 /** 50 * ãã°ã¤ã³ç¶æ ã®ç¢ºèª 51 */ 52 function checkLoginStatus() { 53 $.ajax({ 54 url: config.ajaxUrl, 55 type: 'GET', 56 dataType: 'json', 57 cache: false, 58 success: function(response) { 59 // STGéå®ã®åä½ç¢ºèªãã°ï¼æ¬çªã¯ response.debug ãç¡ãããåºåãããªãï¼ 60 if (response.debug) { 61 console.log('[CCCMH login]', response.debug); 62 } 63 if (response.result === 'mypage') { 64 // ãã°ã¤ã³æ¸ã¿ 65 config.loginStatus = true; 66 showMypageButton(response.url); 67 } else { 68 // æªãã°ã¤ã³ 69 config.loginStatus = false; 70 showLoginButton(); 71 } 72 }, 73 error: function() { 74 // ã¨ã©ã¼æã¯æªãã°ã¤ã³æ±ã 75 config.loginStatus = false; 76 showLoginButton(); 77 } 78 }); 79 } 80 81 /** 82 * Loginãã¿ã³ã表示 83 */ 84 function showLoginButton() { 85 $('[data-login-state="logged-out"]').show(); 86 $('[data-login-state="logged-in"]').hide(); 87 } 88 89 /** 90 * Mypageãã¿ã³ã表示 91 */ 92 function showMypageButton(mypageUrl) { 93 var $el = $('[data-login-state="logged-in"]'); 94 95 // ãã¬ã¼ã¹ãã«ãã¼ãç½®æï¼æ§å®è£ ã¨åãæ¹å¼ï¼ 96 if (mypageUrl) { 97 $el.html($el.html().replace('__%CCCMH_MYPAGE_URL%__', mypageUrl)); 98 } 99 100 $('[data-login-state="logged-out"]').hide(); 101 $el.show(); 102 } 103 104 /** 105 * ãã°ã¤ã³ã¢ã¼ãã«ã表示 106 */ 107 function showLoginModal() { 108 // ç¾å¨ã®URLãä¿åï¼ãã°ã¤ã³å¾ã®æ»ãå ï¼ 109 saveCurrentUrl(); 110 111 // ã¢ã¼ãã«ã表示 112 $('#js-login-overlay').fadeIn(300); 113 $('#js-login-wrapper').fadeIn(300); 114 $('body').css('overflow', 'hidden'); 115 116 // cccmh.jpã®ãã°ã¤ã³ãã©ã¼ã ãåæå 117 // â» cccmh.jpã¯ã©ã¤ã¢ã³ãJSï¼V2ï¼ã#idc3mhV2å ã«ãã©ã¼ã ãçæ 118 initCccmhLoginForm(); 119 } 120 121 /** 122 * ãã°ã¤ã³ã¢ã¼ãã«ãé表示 123 */ 124 function hideLoginModal() { 125 $('#js-login-overlay').fadeOut(300); 126 $('#js-login-wrapper').fadeOut(300); 127 $('body').css('overflow', ''); 128 } 129 130 /** 131 * ç¾å¨ã®URLãä¿åï¼ãã°ã¤ã³å¾ã®æ»ãå ï¼ 132 */ 133 function saveCurrentUrl() { 134 var currentUrl = window.location.href; 135 136 $.ajax({ 137 url: config.loginUrl, 138 type: 'POST', 139 data: { 140 action: config.saveUrlAction, 141 url: currentUrl 142 }, 143 dataType: 'json' 144 }); 145 } 146 147 /** 148 * CCCMH ãã°ã¤ã³ãã©ã¼ã ã®åæå 149 */ 150 function initCccmhLoginForm() { 151 // cccmh.jpã®ã¯ã©ã¤ã¢ã³ãJSï¼V2: {base}/v2/client/js?client_id=...ï¼ã 152 // ãã¼ã¸èªã¿è¾¼ã¿æã« #idc3mhV2 å ã¸ãã°ã¤ã³ãã©ã¼ã ãèªåæç»ããã 153 // ã¢ã¼ãã«ã¯å¸¸æDOMã«åå¨ãã #idc3mhV2 ãééããã®ã¿ã 154 // ⻠追å ã®åæåAPIãå¿ è¦ãªå ´åã¯CCCMHã®ä»æ§ã«å¿ãã¦ããã¸è¨è¿°ããã 155 } 156 157 /** 158 * ã¤ãã³ããªã¹ãã¼è¨å® 159 */ 160 function setupEventListeners() { 161 // ã¢ã¼ãã«å¤ã¯ãªãã¯ã§éãã 162 $(document).on('click', '#js-login-overlay', function() { 163 hideLoginModal(); 164 }); 165 166 // ESCãã¼ã§éãã 167 $(document).on('keydown', function(e) { 168 if (e.key === 'Escape' || e.keyCode === 27) { 169 hideLoginModal(); 170 } 171 }); 172 173 // CCCMHã®éãããã¿ã³ï¼åççæããããã.onã§ã¤ãã³ãå§è²ï¼
174 $(document).on('click', '#idc3mhV2 .modal-close', function() { 175 hideLoginModal(); 176 }); 177 178 // WordPresså´ã®éãããã¿ã³ 179 $(document).on('click', '.login-close', function() { 180 hideLoginModal(); 181 }); 182 } 183 184 /** 185 * ãã°ã¤ã³ç¶æ ãå¤é¨ããç¢ºèª 186 * @returns {boolean|null} true=ãã°ã¤ã³æ¸ã¿, false=æªãã°ã¤ã³, null=æªç¢ºèª 187 */ 188 function isLoggedIn() { 189 return config.loginStatus; 190 } 191 192 // ãã¼ã¸èªã¿è¾¼ã¿å®äºæã«åæå 193 $(document).ready(function() { 194 init(); 195 }); 196 197 // å ¬éAPI 198 return { 199 showLoginModal: showLoginModal, 200 hideLoginModal: hideLoginModal, 201 checkLoginStatus: checkLoginStatus, 202 isLoggedIn: isLoggedIn 203 }; 204 205})(jQuery); 206 207// ã°ãã¼ãã«å¤æ°ã¨ãã¦ãã¨ã¯ã¹ãã¼ãï¼å¾æ¹äºææ§ã®ããï¼ 208var gLoginUi = figaroLoginUI;
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.