230 lines
6.8 KiB
Plaintext
230 lines
6.8 KiB
Plaintext
|
|
<script type="text/javascript">
|
|
'use strict';
|
|
|
|
function __removeHash () {
|
|
var scrollV, scrollH, loc = window.location;
|
|
if ("pushState" in history)
|
|
history.pushState("", document.title, loc.pathname + loc.search);
|
|
else {
|
|
// Prevent scrolling by storing the page's current scroll offset
|
|
scrollV = document.body.scrollTop;
|
|
scrollH = document.body.scrollLeft;
|
|
|
|
loc.hash = "";
|
|
|
|
// Restore the scroll offset, should be flicker free
|
|
document.body.scrollTop = scrollV;
|
|
document.body.scrollLeft = scrollH;
|
|
}
|
|
}
|
|
|
|
function getJsonFromUrl (url) {
|
|
__removeHash ()
|
|
if(!url) url = location.href;
|
|
var question = url.indexOf("?");
|
|
var hash = url.indexOf("#");
|
|
if(hash==-1 && question==-1) return {};
|
|
if(hash==-1) hash = url.length;
|
|
var query = question==-1 || hash==question+1 ? url.substring(hash) :
|
|
url.substring(question+1,hash);
|
|
var result = {};
|
|
query.split("&").forEach(function(part) {
|
|
if(!part) return;
|
|
part = part.split("+").join(" "); // replace every + with space, regexp-free version
|
|
var eq = part.indexOf("=");
|
|
var key = eq>-1 ? part.substr(0,eq) : part;
|
|
var val = eq>-1 ? decodeURIComponent(part.substr(eq+1)) : "";
|
|
var from = key.indexOf("[");
|
|
if(from==-1) result[decodeURIComponent(key)] = val;
|
|
else {
|
|
var to = key.indexOf("]",from);
|
|
var index = decodeURIComponent(key.substring(from+1,to));
|
|
key = decodeURIComponent(key.substring(0,from));
|
|
if(!result[key]) result[key] = [];
|
|
if(!index) result[key].push(val);
|
|
else result[key][index] = val;
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
|
|
function doSignin (tag) {
|
|
|
|
var getParams = getJsonFromUrl()
|
|
var xCommFlag = (typeof xCommApp == 'object')
|
|
var nextUrl = ''
|
|
|
|
switch (tag) {
|
|
|
|
case 'google':
|
|
nextUrl = '/signin/google' + (getParams['loc'] ? '?loc=' + encodeURIComponent(getParams['loc']) : '')
|
|
break;
|
|
|
|
case 'facebook':
|
|
nextUrl = '/signin/facebook' + (getParams['loc'] ? '?loc=' + encodeURIComponent(getParams['loc']) : '')
|
|
break;
|
|
|
|
case 'kakao':
|
|
nextUrl = '/signin/kakao' + (getParams['loc'] ? '?loc=' + encodeURIComponent(getParams['loc']) : '')
|
|
break;
|
|
|
|
case 'apple':
|
|
nextUrl = '/signin/apple' + (getParams['loc'] ? '?loc=' + encodeURIComponent(getParams['loc']) : '')
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
console.log('in doSignin(), tag = ', tag)
|
|
console.log('in doSignin(), getParams = ', getParams)
|
|
console.log('in doSignin(), xCommFlag = ', xCommFlag)
|
|
console.log('in doSignin(), nextUrl = ', nextUrl)
|
|
|
|
if (nextUrl == '') {
|
|
alert('error! unknown signin tag : ' + tag)
|
|
} else {
|
|
if (xCommFlag == true && tag == 'google') {
|
|
var toAppMessage = {
|
|
cmd: 'local/op',
|
|
target: 'signin',
|
|
tag: tag,
|
|
}
|
|
xCommApp.postMessage(JSON.stringify(toAppMessage))
|
|
} else {
|
|
window.location.href = nextUrl
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function setCookie(name,value,days) {
|
|
var expires = "";
|
|
if (days) {
|
|
var date = new Date();
|
|
date.setTime(date.getTime() + (days*24*60*60*1000));
|
|
expires = "; expires=" + date.toUTCString();
|
|
}
|
|
document.cookie = name + "=" + (value || "") + expires + "; path=/";
|
|
}
|
|
|
|
function getCookie(name) {
|
|
var nameEQ = name + "=";
|
|
var ca = document.cookie.split(';');
|
|
for(var i=0;i < ca.length;i++) {
|
|
var c = ca[i];
|
|
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
|
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function eraseCookie(name) {
|
|
document.cookie = name+'=; Max-Age=-99999999;';
|
|
}
|
|
|
|
function makeRandomID (len) {
|
|
var text = "";
|
|
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
|
|
for (var i = 0; i < len; i++)
|
|
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
|
|
return text;
|
|
}
|
|
|
|
var uid = 'anonymous'
|
|
var randomID = null
|
|
|
|
|
|
|
|
function reportToServer (tag, data) {
|
|
if (randomID === null) {
|
|
var randomIDCookieName = 'init_003'
|
|
var randomIDCookie = getCookie(randomIDCookieName)
|
|
|
|
if (randomIDCookie === null) {
|
|
randomID = makeRandomID(8)
|
|
} else {
|
|
randomID = randomIDCookie
|
|
}
|
|
setCookie(randomIDCookieName, randomID, 3)
|
|
}
|
|
|
|
var repotData = {
|
|
tag: tag,
|
|
randomID: randomID
|
|
}
|
|
|
|
switch (tag) {
|
|
case 'stat_done':
|
|
case 'stat_error':
|
|
case 'stat_stopped':
|
|
repotData.fileInfo = data.remote.fileInfo
|
|
repotData.hashElapsedTime = data.hashElapsedTime ? data.hashElapsedTime : 'N/A'
|
|
repotData.uploadElapsedTime = data.uploadElapsedTime ? data.uploadElapsedTime : 'N/A'
|
|
repotData.statElapsedTime = data.statElapsedTime ? data.statElapsedTime : 'N/A'
|
|
repotData.totalElapsedTime = data.totalElapsedTime ? data.totalElapsedTime : 'N/A'
|
|
repotData.statMesureInfo = data.statMesureInfo ? data.statMesureInfo : 'N/A'
|
|
repotData.statMesureInfo.start = undefined
|
|
repotData.statMesureInfo.end = undefined
|
|
break;
|
|
|
|
case 'page_load':
|
|
repotData.url = data.url
|
|
repotData.documentReadyElapsedTime = data.documentReadyElapsedTime ? data.documentReadyElapsedTime : 'N/A'
|
|
repotData.windowLoadElapsedTime = data.windowLoadElapsedTime ? data.windowLoadElapsedTime : 'N/A'
|
|
break;
|
|
|
|
case 'dev_no_report':
|
|
repotData = null
|
|
break;
|
|
|
|
default:
|
|
repotData.raw = data
|
|
|
|
}
|
|
if (repotData !== null) {
|
|
axios.post('/report?tag=' + tag, repotData, { withCredentials: true })
|
|
.then(function (response) {
|
|
// console.log('report response from axios:', response)
|
|
})
|
|
.catch(function (error) {
|
|
console.error('report response from axios. errro =', error)
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function addWindowOnloadEvent(func) {
|
|
var oldWindowOnload = window.onload;
|
|
if (typeof func === 'function') {
|
|
if (typeof window.onload === 'function') {
|
|
window.onload = function () {
|
|
oldWindowOnload();
|
|
func();
|
|
}
|
|
} else {
|
|
window.onload = func;
|
|
}
|
|
}
|
|
}
|
|
|
|
addWindowOnloadEvent(function () {
|
|
pageLoadingInfo.windowLoadAt = Date.now();
|
|
pageLoadingInfo.windowLoadElapsedTime = (pageLoadingInfo.windowLoadAt - pageLoadingInfo.timerInitAt) / 1000
|
|
// console.log('window.onload(), pageLoadingInfo=', pageLoadingInfo)
|
|
reportToServer('page_load', pageLoadingInfo)
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
|
|
|
<script src="/admindek/js/rocket-loader.min.js" data-cf-settings="f4ce04a230934521555bcbbf-|49" defer=""></script>
|