This commit is contained in:
2026-04-07 14:50:23 +09:00
commit b4e485502b
4778 changed files with 2017091 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5><%=__(pageTitle)%></h5>
</div>
<div class="card-block">
<!-- start of body -->
<% if (infos.loc === '/admin/info') { %>
<%- include("../widgets/admin-info", { infos: infos, businessInfo: businessInfo }) %>
<%} else if (infos.loc === '/admin/statistics') {%>
<%- include("../widgets/blank", { infos: infos }) %>
<%} else if (infos.loc === '/admin/notice') {%>
<%- include("../widgets/admin-list", { infos: infos }) %>
<%} else if (infos.loc === '/admin/notice/edit') {%>
<%- include("../widgets/admin-edit", { infos: infos, hero: hero }) %>
<%} else if (infos.loc === '/admin/faq') {%>
<%- include("../widgets/admin-list", { infos: infos }) %>
<%} else if (infos.loc === '/admin/faq/edit') {%>
<%- include("../widgets/admin-edit", { infos: infos, hero: hero }) %>
<%} else if (infos.loc === '/admin/support') {%>
<%- include("../widgets/support", { infos: infos }) %>
<%} else if (infos.loc === '/admin/support/detail') {%>
<%- include("../widgets/support-detail", { infos: infos }) %>
<%} else if (infos.loc === '/admin/users') {%>
<%- include("../widgets/admin-list", { infos: infos }) %>
<%} else if (infos.loc === '/admin/logs') {%>
<%- include("../widgets/admin-list", { infos: infos }) %>
<%} else if (infos.loc === '/admin/logs/user') {
if (hero === null) {
%><%- include("../widgets/admin-list", { infos: infos, hero: hero }) %><%
} else {
%><%- include("../widgets/admin-list", { infos: infos, hero: hero }) %><%
}
%>
<%} else if (infos.loc === '/admin/logs/credit') {
if (hero === null) {
%><%- include("../widgets/admin-list", { infos: infos, hero: hero }) %><%
} else {
%><%- include("../widgets/admin-list", { infos: infos, hero: hero }) %><%
}
%>
<%} else if (infos.loc === '/admin/logs/credit') {%>
<%- include("../widgets/admin-list", { infos: infos }) %>
<%} else if (infos.loc === '/admin/etc') {%>
<%- include("../widgets/admin-etc", { infos: infos }) %>
<%} else if (infos.loc === '/admin/maintenance') {%>
<%- include("../widgets/admin-maintenance", { infos: infos, maintenanceInfo: maintenanceInfo }) %>
<%} else if (infos.loc === '/admin/upload') {%>
<%- include("../widgets/admin-upload", { infos: infos }) %>
<%} %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>Blank Page Sample</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/dummy", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>폰드원(Pond One)이 뭔가요?</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/home", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,116 @@
<% if (infos.loc === '/') { %>
<%- include("./content-home", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/my') {%>
<%- include("./content-my", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/notice') {%>
<%- include("./content-notice", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/support') {%>
<%- include("./content-support", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/privacy') {%>
<% if (infos.rawLoc === '/privacy?lang=ko') { %>
<%- include("./content-privacy-ko", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else {%>
<%- include("./content-privacy-en", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%}%>
<%} else if (infos.loc === '/sample') {%>
<%- include("./content-sample", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/admin') {%>
<%- include("./content-admin", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else if (infos.loc === '/blank') {%>
<%- include("./content-blank", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} else {%>
<%- include("./content-unknown", { infos: infos }) %>
<!-- <div class="page-header card"> -->
<!-- </div> -->
<!-- <div class="pcoded-inner-content"> -->
<!-- </div> -->
<!-- <div id="styleSelector"> -->
<!-- </div> -->
<%} %>

View File

@@ -0,0 +1,24 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>나의 정보</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/my", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>알리는 말씀</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/notice", { infos: infos, list: list, moment: moment }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>Privacy policy</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/privacy-en", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>개인정보 보호 정책</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/privacy-ko", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,27 @@
<div class="page-header card">
<div class="row align-items-end">
<div class="col-lg-8">
<div class="page-header-title">
<i class="feather icon-watch bg-c-blue"></i>
<div class="d-inline">
<h5>Sample page</h5>
<span>lorem ipsum dolor sit amet, consectetur adipisicing elit</span>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="page-header-breadcrumb">
<ul class=" breadcrumb breadcrumb-title">
<li class="breadcrumb-item">
<a href="index.html"><i class="feather icon-home"></i></a>
</li>
<li class="breadcrumb-item">
<a href="#!">Sample page</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<%- include("./content-blank", { infos: infos }) %>

View File

@@ -0,0 +1,69 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>자주 묻는 질문과 답변</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/support-faq", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
<% if (infos.userInfo.loginFlag === true) {%>
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>일대일 문의 <small>(실시간 채팅이 아니며, 관리자가 업무시간중에 확인 후 답변 드립니다.)</small></h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/support-1to1", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
<% } %>
<% if (businessInfo !== null) { %>
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>사업자 정보</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/support-infos", { infos: infos, businessInfo: businessInfo }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
<%} %>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<h5>Unknown Page Location</h5>
</div>
<div class="card-block">
<!-- start of body -->
<%- include("../widgets/unknown", { infos: infos }) %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,2 @@
<script src="/admindek/js/rocket-loader.min.js" data-cf-settings="9359117a77ba86f2cd9f4ff3-|49" defer=""></script>

View File

@@ -0,0 +1,109 @@
<title><%=__(infos.appInfo.name)%></title>
<!--[if lt IE 10]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimal-ui">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!--[if IE ]>
<meta http-equiv="refresh" content="0; url=http://www.inspond.com/">
<![endif]-->
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Quicksand:500,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/admindek/pages/waves/css/waves.min.css" type="text/css" media="all">
<link rel="stylesheet" type="text/css" href="/admindek/icon/feather/css/feather.css">
<link rel="stylesheet" type="text/css" href="/admindek/css/font-awesome-n.min.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/fontawesome-stars.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-1to10.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-horizontal.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-movie.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-pill.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-reversed.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/bars-square.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/css-stars.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery-bar-rating/css/fontawesome-stars-o.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/animate.css/css/animate.css">
<link rel="stylesheet" type="text/css" href="/admindek/icon/icofont/css/icofont.css">
<link rel="stylesheet" type="text/css" href="/admindek/css/widget.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/datatables.net-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" type="text/css" href="/admindek/pages/data-table/css/buttons.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" type="text/css" href="/admindek/icon/themify-icons/themify-icons.css">
<link rel="stylesheet" type="text/css" href="/admindek/bower_components/jquery.steps/css/jquery.steps.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="/admindek/css/style.css">
<link rel="stylesheet" type="text/css" href="/admindek/css/pages.css">
<link rel="stylesheet" type="text/css" href="/json-browse/jquery.json-browse.css">
<link rel="stylesheet" type="text/css" href="/admindek/pages/notification/notification.css">
<style>
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
/* prevent horizontal scrollbar */
overflow-x: auto;
/* add padding to account for vertical scrollbar */
padding-right: 20px;
background: #87ceeb;
z-index: 2;
}
.post-imv-cover {
object-fit: scale-down;
}
</style>
<% if (infos.loc === '/note/new') {%>
<style>
.note-editable script {
display: inline-table;
visibility: hidden;
height: 0px !important;
width: 0px !important;
margin: 0 !important;
padding: 0 !important;
font-size: 0 !important;
}
.note-editable script:before {
display: block;
width: 32px;
height: 32px;
content: "";
visibility: visible;
background-image: url(http://png-1.findicons.com/files/icons/1861/xml_docs_x_tended/128/crystal_js.png);
background-repeat: no-repeat;
background-size: 32px;
}
</style>
<%} %>

View File

@@ -0,0 +1,41 @@
<%
if (infos.loc === '/') {
%><%-include("./content-home", { infos: infos })%><%
} else if (infos.loc === '/my' || infos.loc === '/my/new' || infos.loc === '/my/edit') {
%><%-include(infos.basePath + "/partials/my", { infos: infos })%><%
} else if (infos.loc === '/note' || infos.loc === '/note/new' || infos.loc === '/note/edit' || infos.loc === '/note/detail') {
%><%-include(infos.basePath + "/partials/note", { infos: infos })%><%
} else if (infos.loc === '/notice') {
%><%-include(infos.basePath + "/partials/content-notice", { infos: infos })%><%
} else if (infos.loc === '/support') {
%><%-include(infos.basePath + "/partials/content-support", { infos: infos })%><%
} else if (infos.loc === '/privacy') {
if (infos.rawLoc === '/privacy?lang=ko') {
%><%-include(infos.basePath + "/partials/content-privacy-ko", { infos: infos })%><%
} else {
%><%-include(infos.basePath + "/partials/content-privacy-en", { infos: infos })%><%
}
} else if (infos.loc.startsWith('/admin')) {
%><%-include(infos.basePath + "/partials/content-admin", { infos: infos })%><%
} else if (infos.loc === '/blank') {
%><%-include(infos.basePath + "/partials/content-blank", { infos: infos })%><%
} else if (infos.loc === '/sample') {
%><%-include(infos.basePath + "/partials/content-sample", { infos: infos })%><%
} else {
%><%-include(infos.basePath + "/partials/content-unknown", { infos: infos })%><%
}
%>

View File

@@ -0,0 +1,6 @@
<script type="text/javascript" src="/admindek/bower_components/jquery/js/jquery.min.js"></script>
<script type="text/javascript" src="/admindek/bower_components/jquery-ui/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/admindek/bower_components/popper.js/js/popper.min.js"></script>
<script type="text/javascript" src="/admindek/bower_components/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/admindek/pages/waves/js/waves.min.js"></script>
<script type="text/javascript" src="/admindek/bower_components/jquery-slimscroll/js/jquery.slimscroll.js"></script>

View File

@@ -0,0 +1,40 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<% if (infos.loc === '/my') { %>
<h5>나의 정보</h5>
<%} else if (infos.loc === '/my/new') {%>
<h5>나의 정보 수정</h5>
<%} else if (infos.loc === '/my/edit') {%>
<h5>나의 정보 수정</h5>
<%} %>
</div>
<div class="card-block">
<!-- start of body -->
<% if (infos.loc === '/my') { %>
<%- include("../widgets/my", { infos: infos }) %>
<%} else if (infos.loc === '/my/new') {%>
<%- include("../widgets/my-edit", { infos: infos }) %>
<%} else if (infos.loc === '/my/edit') {%>
<%- include("../widgets/my-edit", { infos: infos }) %>
<%} %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,46 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<% if (infos.loc === '/note') { %>
<h5 id="note-page-title">노트 리스트</h5>
<%} else if (infos.loc === '/note/new') {%>
<h5 id="note-page-title">새로운 노트 작성</h5>
<%} else if (infos.loc === '/note/edit') {%>
<h5>노트 수정</h5>
<%} else if (infos.loc === '/note/detail') {%>
<h5>노트 보기</h5>
<%} %>
</div>
<div class="card-block">
<!-- start of body -->
<% if (infos.loc === '/note') { %>
<%- include("../widgets/note", { infos: infos }) %>
<%} else if (infos.loc === '/note/new') {%>
<%- include("../widgets/note-edit", { infos: infos }) %>
<%} else if (infos.loc === '/note/edit') {%>
<%- include("../widgets/note-edit", { infos: infos }) %>
<%} else if (infos.loc === '/note/detail') {%>
<%- include("../widgets/note-detail", { infos: infos }) %>
<%} %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,229 @@
<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>

View File

@@ -0,0 +1,187 @@
<script type="text/javascript">
'use strict';
var pageLoadingInfo = {
url: window.location.href
}
pageLoadingInfo.timerInitAt = Date.now();
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
if (typeof Object.assign != 'function') {
// Must be writable: true, enumerable: false, configurable: true
Object.defineProperty(Object, "assign", {
value: function assign(target, varArgs) { // .length of function is 2
'use strict';
if (target == null) { // TypeError if undefined or null
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var index = 1; index < arguments.length; index++) {
var nextSource = arguments[index];
if (nextSource != null) { // Skip over if undefined or null
for (var nextKey in nextSource) {
// Avoid bugs when hasOwnProperty is shadowed
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
},
writable: true,
configurable: true
});
}
Array.prototype.remove = Array.prototype.remove || function(val){
var i = this.length;
while(i--){
if (this[i] === val){
this.splice(i,1);
}
}
};
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position) {
position = position || 0;
return this.indexOf(searchString, position) === position;
};
}
function doAllThingsInSafe(opType, param) {
// console.log('typeof _doAllThingsInSafe = ', typeof _doAllThingsInSafe)
if (typeof _doAllThingsInSafe === 'function') {
_doAllThingsInSafe(opType, param)
} else {
alert('page not loaded yet. try again after few seconds...')
}
}
function getDomain (url) {
url = url.replace(/(https?:\/\/)?(www.)?/i, '')
if (url.indexOf('/') !== -1) {
return url.split('/')[0].toLowerCase()
}
return url
}
var currentHost = window.location.host.toLowerCase()
var domainKey = null
var currentDomain = getDomain(window.location.href)
if (currentDomain.indexOf(':') != -1) {
var tmpAry = currentDomain.split(':')
currentDomain = tmpAry[0]
}
var apiUrl = '/api'
// console.log('currentHost = ' + currentHost)
// console.log('currentDomain = ' + currentDomain)
// console.log('apiUrl = ' + apiUrl)
// console.log('domainKey = ' + domainKey)
var eventAryPool = {}
function pushDataToLayer(data) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push(data);
// console.log('window.dataLayer=', window.dataLayer)
}
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
/**
* detect IE
* returns version of IE or false, if browser is not Internet Explorer
*/
function detectIE() {
var ua = window.navigator.userAgent;
// Test values; Uncomment to check result …
// IE 10
// ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';
// IE 11
// ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';
// Edge 12 (Spartan)
// ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';
// Edge 13
// ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older => return version number
return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
}
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11 => return version number
var rv = ua.indexOf('rv:');
return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
}
var edge = ua.indexOf('Edge/');
if (edge > 0) {
// Edge (IE 12+) => return version number
return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
}
// other browser
return false;
}
// Get IE or Edge browser version
var version = detectIE();
if (version === false) {
// console.log('detectIE=IE/Edge')
} else if (version >= 12) {
// console.log('detectIE=Edge ' + version)
} else {
// console.log('detectIE=Ie ' + version)
alert('본 사이트는 이 브라우저에서 사용하실 수 없습니다. 개발자에게 문의해 주세요.')
}
// console.log('userAgent=', window.navigator.userAgent)
</script>

View File

@@ -0,0 +1,96 @@
<nav class="pcoded-navbar">
<div class="nav-list">
<div class="pcoded-inner-navbar main-menu">
<div class="pcoded-navigation-label">메뉴</div>
<ul class="pcoded-item pcoded-left-item">
<li class="<%=(infos.loc =='/notice') ? 'active' : ''%>">
<a href="/notice" class="waves-effect waves-dark">
<span class="pcoded-micon">
<i class="fa fa-microphone"></i>
</span>
<span class="pcoded-mtext">공지사항</span>
</a>
</li>
<% if (infos.userInfo.loginFlag === true) { %>
<li class="<%=(infos.loc =='/my') ? 'active' : ''%>">
<a href="/my" class="waves-effect waves-dark">
<span class="pcoded-micon">
<i class="fa fa-user"></i>
</span>
<span class="pcoded-mtext">나의 정보</span>
</a>
</li>
<%} %>
<li class="<%=(infos.loc =='/support') ? 'active' : ''%>">
<a href="/support" class="waves-effect waves-dark">
<span class="pcoded-micon">
<i class="fa fa-question"></i>
</span>
<span class="pcoded-mtext">고객지원</span>
</a>
</li>
<li class="pcoded-hasmenu <%=(infos.loc ==='/privacy') ? 'active pcoded-trigger' : ''%>">
<a href="javascript:void(0)" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="fa fa-lock"></i></span>
<span class="pcoded-mtext">개인정보 보호</span>
</a>
<ul class="pcoded-submenu">
<li class="<%=(infos.rawLoc ==='/privacy?lang=ko') ? 'active' : ''%>">
<a href="/privacy?lang=ko" class="waves-effect waves-dark">
<span class="pcoded-mtext">한국어</span>
</a>
</li>
<li class="<%=(infos.rawLoc ==='/privacy?lang=en') ? 'active' : ''%>">
<a href="/privacy?lang=en" class="waves-effect waves-dark">
<span class="pcoded-mtext">영어</span>
</a>
</li>
</ul>
</li>
<li class="pcoded-hasmenu <%=(infos.loc ==='/sample' || infos.loc ==='/blank') ? 'active pcoded-trigger' : ''%>">
<a href="javascript:void(0)" class="waves-effect waves-dark">
<span class="pcoded-micon"><i class="feather icon-home"></i></span>
<span class="pcoded-mtext">기타 페이지</span>
</a>
<ul class="pcoded-submenu">
<li class="<%=(infos.loc ==='/blank') ? 'active' : ''%>">
<a href="/blank" class="waves-effect waves-dark">
<span class="pcoded-mtext">기본 빈 페이지</span>
</a>
</li>
<li class="<%=(infos.loc ==='/sample') ? 'active' : ''%>">
<a href="/sample" class="waves-effect waves-dark">
<span class="pcoded-mtext">기본 틀 페이지</span>
</a>
</li>
<li class="<%=(infos.loc ==='/404') ? 'active' : ''%>">
<a href="/404" class="waves-effect waves-dark">
<span class="pcoded-mtext">404 페이지</span>
</a>
</li>
</ul>
</li>
<% if (infos.userInfo.loginFlag === true) { %>
<% if (infos.userInfo.adminFlag === true) { %>
<li class="<%=(infos.loc =='/admin') ? 'active' : ''%>">
<a href="/admin" class="waves-effect waves-dark">
<span class="pcoded-micon">
<i class="fa fa-cog"></i>
</span>
<span class="pcoded-mtext">관리자</span>
</a>
</li>
<%} %>
<%} %>
</ul>
</div>
</div>
</nav>

View File

@@ -0,0 +1,36 @@
<div class="pcoded-inner-content">
<div class="main-body">
<div class="page-wrapper">
<div class="page-body">
<div class="row">
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<% if (infos.loc === '/support') { %>
<h5>1:1 문의 리스트</h5>
<%} else if (infos.loc === '/support/detail') {%>
<h5>1:1 문의</h5>
<%} %>
</div>
<div class="card-block">
<!-- start of body -->
<% if (infos.loc === '/support') { %>
<%- include("../widgets/support", { infos: infos }) %>
<%} else if (infos.loc === '/support/detail') {%>
<%- include("../widgets/support-detail", { infos: infos }) %>
<%} %>
<!-- end of body -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,112 @@
<nav class="navbar header-navbar pcoded-header">
<div class="navbar-wrapper">
<div class="navbar-logo">
<a href="/">
<font size="+1" color="white"><%=__(infos.appInfo.name)%> </font>
<% if (infos.appInfo.type === 'chachachak') { %>
<font size="-1" color="white"> 車에 관한 지식과 경험 공유</font>
<% } else { %>
<% } %>
</a>
<% if (infos.appInfo.type === 'chachachak') { %>
<a class="mobile-menu" id="mobile-collapse" href="#!">
<i class="feather icon-menu icon-toggle-right"></i>
</a>
<a class="mobile-options waves-effect waves-light">
<i class="feather icon-more-horizontal"></i>
</a>
<% } else { %>
<a class="mobile-menu" id="mobile-collapse" href="#!">
<i class="feather icon-menu icon-toggle-right"></i>
</a>
<a class="mobile-options waves-effect waves-light">
<i class="feather icon-more-horizontal"></i>
</a>
<% } %>
</div>
<div class="navbar-container container-fluid">
<ul class="nav-left">
<!--
Search, full-screen
-->
</ul>
<ul class="nav-right">
<li class="header-notification">
<div class="dropdown-primary dropdown">
<div class="displayChatbox dropdown-toggle" data-toggle="dropdown">
<i class="feather icon-message-square"></i>
<% if (infos.userInfo.loginFlag === true) { %>
<% if (infos.userInfo.messageCount > 0) { %>
<span class="badge bg-c-green"><%=infos.userInfo.messageCount%></span>
<%} %>
<%} %>
</div>
</div>
</li>
<li class="user-profile header-notification">
<div class="dropdown-primary dropdown">
<% if (infos.userInfo.loginFlag === true) { %>
<div class="dropdown-toggle" data-toggle="dropdown">
<% if (infos.userInfo.loginFlag === true) { %>
<% if (infos.userInfo.profileUrl === '') { %>
<!--<img src="/images/user-anonym.png" class="img-radius" alt="User-Profile-Image">-->
<%} else {%>
<!--<img src="<%=infos.userInfo.profileUrl%>" class="img-radius" alt="User-Profile-Image">-->
<%} %>
<span><%=infos.userInfo.profile.display_name%></span>
<%} %>
<i class="feather icon-chevron-down"></i>
</div>
<%} else {%>
<div>
<!--<img src="/images/user-anonym.png" class="img-radius" alt="User-Profile-Image">-->
<a href="/signin?loc=<%=infos.rawLoc%>">
<span><b style='color:red;'>로그인</b></span>
</a>
</div>
<%} %>
<ul class="show-notification profile-notification dropdown-menu" data-dropdown-in="fadeIn" data-dropdown-out="fadeOut">
<% if (infos.userInfo.loginFlag === true) { %>
<li>
<a href="/my">
<i class="feather icon-user"></i> 내 정보
</a>
</li>
<li>
<a href="/signout">
<i class="feather icon-log-out"></i> 로그아웃
</a>
</li>
<%} else {%>
<li>
<a href="/signin">
<i class="feather icon-log-in"></i> <b style='color:red;'>로그인</b>
</a>
</li>
<%} %>
</ul>
</div>
</li>
</ul>
</div>
</div>
</nav>