first
This commit is contained in:
95
safekiso-server/modules/base/views/main/list.ejs
Normal file
95
safekiso-server/modules/base/views/main/list.ejs
Normal file
@@ -0,0 +1,95 @@
|
||||
<div class="col-sm-12">
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<div class="dt-responsive table-responsive">
|
||||
<table id="multi-colum-dt" class="table table-striped table-bordered nowrap">
|
||||
<thead>
|
||||
<tr align="center">
|
||||
<% for(var i=0; i<data[0].length; i++) {%>
|
||||
<th align="center">
|
||||
<%= data[0][i]%>
|
||||
<% if (i === 2) { %>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%i = 5 %>
|
||||
<%} %>
|
||||
|
||||
|
||||
</th>
|
||||
<% } %>
|
||||
<th>
|
||||
담기
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for(var i=1; i<data.length; i++) {%>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td style="display:none;">
|
||||
|
||||
<% if (data[i][0] === '블랜딩') { %>
|
||||
<%- '['+ data[i][0] + '][' + data[i][1] + ']' %>
|
||||
<%} else { %>
|
||||
<%- '['+ data[i][0] + '][' + data[i][1] + '][' + data[i][2] + ']' %>
|
||||
<%}%>
|
||||
|
||||
</td>
|
||||
<td style="display:none;">
|
||||
<% if (data[i][0] === '블랜딩') { %>
|
||||
<%- data[i][0] + ' ' + data[i][1] %>
|
||||
<%} else { %>
|
||||
<%- data[i][2] %>
|
||||
<%}%>
|
||||
</td>
|
||||
|
||||
<% for(var j=0; j<data[i].length; j++) {%>
|
||||
|
||||
<% if (j === 6) { %>
|
||||
<td align="right">
|
||||
<%} else { %>
|
||||
<td>
|
||||
<%}%>
|
||||
|
||||
|
||||
<%- data[i][j].replace(/\n/gi, '<br>')%>
|
||||
|
||||
<% if (j === 2) { %>
|
||||
|
||||
<% if (data[i][j+1] === '1') { %>
|
||||
<label class="label label-primary">스페셜티</label>
|
||||
<%} %>
|
||||
<% if (data[i][j+2] === '1') { %>
|
||||
<label class="label label-success">품절임박!</label>
|
||||
<%} %>
|
||||
<% if (data[i][j+3] === '1') { %>
|
||||
<label class="label label-warning">신규입고!</label>
|
||||
<%} %>
|
||||
|
||||
<% j = 5 %>
|
||||
|
||||
<%} %>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
<% } %>
|
||||
<td align="center">
|
||||
<a href="#!" onclick="handleCustomEvent(event)"><i class="fa fa-shopping-cart f-w-600 f-16 text-c-blue"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
70
safekiso-server/modules/base/views/main/pages/error.ejs
Normal file
70
safekiso-server/modules/base/views/main/pages/error.ejs
Normal file
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
|
||||
<%- include("../partials/head", {infos: infos}) %>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/feather/css/feather.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/themify-icons/themify-icons.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/icofont/css/icofont.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/font-awesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/css/pages.css">
|
||||
</head>
|
||||
|
||||
<body themebg-pattern="theme6">
|
||||
|
||||
<div id="pcoded" class="pcoded">
|
||||
<div class="pcoded-overlay-box"></div>
|
||||
<div class="pcoded-container navbar-wrapper">
|
||||
<nav class="navbar header-navbar pcoded-header" header-theme="theme6">
|
||||
<div class="navbar-wrapper">
|
||||
<div class="navbar-logo">
|
||||
<a href="/">
|
||||
<font size="+1" color="white"><%=__(infos.appInfo.name)%></font>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-container container-fluid">
|
||||
<ul class="nav-left">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<section class="login-block offline-404">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div class="card auth-box">
|
||||
<div class="card-block text-center">
|
||||
<form>
|
||||
<h1><%=errorCode%></h1>
|
||||
<h2 class="m-b-15 text-muted"><%=errorMessage%></h2>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<%- include("../partials/js-base", {infos: infos}) %>
|
||||
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/bower_components/modernizr/js/modernizr.js"></script>
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/bower_components/modernizr/js/css-scrollbars.js"></script>
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/js/script.js"></script>
|
||||
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
|
||||
|
||||
</html>
|
||||
114
safekiso-server/modules/base/views/main/pages/index.ejs
Normal file
114
safekiso-server/modules/base/views/main/pages/index.ejs
Normal file
@@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
<!--
|
||||
<script ...></script>
|
||||
-->
|
||||
|
||||
|
||||
<%- include("../partials/head", { infos: infos }) %>
|
||||
<!--<title>... -->
|
||||
<!--<meta... -->
|
||||
<!--<link... -->
|
||||
</head>
|
||||
<body>
|
||||
<div class="loader-bg">
|
||||
<div class="loader-bar"></div>
|
||||
</div>
|
||||
<div id="pcoded" class="pcoded">
|
||||
<div class="pcoded-overlay-box"></div>
|
||||
<div class="pcoded-container navbar-wrapper">
|
||||
<%- include("../partials/top-navbar", { infos: infos }) %>
|
||||
<!-- <nav... -->
|
||||
<!-- </nav> -->
|
||||
|
||||
<div class="pcoded-main-container">
|
||||
<div class="pcoded-wrapper">
|
||||
|
||||
<%- include(infos.localPath + "/partials/side-navbar", { infos: infos }) %>
|
||||
<!-- <nav class="pcoded-navbar"> -->
|
||||
<!-- </nav> -->
|
||||
|
||||
<div class="pcoded-content">
|
||||
|
||||
|
||||
<%- include(infos.localPath + "/partials/hub", { infos: infos }) %>
|
||||
<!-- <div class="page-header card"> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div class="pcoded-inner-content"> -->
|
||||
<!-- </div> -->
|
||||
<!-- <div id="styleSelector"> -->
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
|
||||
<div id="styleSelector">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--[if lt IE 10]>
|
||||
<div class="ie-warning">
|
||||
<h1>Warning!!</h1>
|
||||
<p>You are using an outdated version of Internet Explorer, please upgrade
|
||||
<br/>to any of the following web browsers to access this website.
|
||||
</p>
|
||||
<div class="iew-container">
|
||||
<ul class="iew-download">
|
||||
<li>
|
||||
<a href="http://www.google.com/chrome/">
|
||||
<img src="/images/browser/chrome.png" alt="Chrome">
|
||||
<div>Chrome</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.mozilla.org/en-US/firefox/new/">
|
||||
<img src="/images/browser/firefox.png" alt="Firefox">
|
||||
<div>Firefox</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.opera.com">
|
||||
<img src="/images/browser/opera.png" alt="Opera">
|
||||
<div>Opera</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.apple.com/safari/">
|
||||
<img src="/images/browser/safari.png" alt="Safari">
|
||||
<div>Safari</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie">
|
||||
<img src="/images/browser/ie.png" alt="">
|
||||
<div>IE (9 & above)</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Sorry for the inconvenience!</p>
|
||||
</div>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/scripts-body", { infos: infos }) %>
|
||||
<!--
|
||||
<script ...></script>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
<!--
|
||||
<script ...></script>
|
||||
-->
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
74
safekiso-server/modules/base/views/main/pages/next.ejs
Normal file
74
safekiso-server/modules/base/views/main/pages/next.ejs
Normal file
@@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
|
||||
<%- include("../partials/head", {infos: infos}) %>
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/feather/css/feather.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/themify-icons/themify-icons.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/icofont/css/icofont.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/icon/font-awesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/admindek/css/pages.css">
|
||||
</head>
|
||||
|
||||
<body themebg-pattern="theme6">
|
||||
|
||||
<div id="pcoded" class="pcoded">
|
||||
<div class="pcoded-overlay-box"></div>
|
||||
<div class="pcoded-container navbar-wrapper">
|
||||
<nav class="navbar header-navbar pcoded-header" header-theme="theme6">
|
||||
<div class="navbar-wrapper">
|
||||
<div class="navbar-logo">
|
||||
<a href="/">
|
||||
<font size="+1" color="white"><%=__(infos.appInfo.name)%></font>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-container container-fluid">
|
||||
<ul class="nav-left">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<section class="login-block offline-404">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div class="card auth-box">
|
||||
<div class="card-block text-center">
|
||||
<form>
|
||||
<h1><%=bigTitle%></h1>
|
||||
<h2 class="m-b-15 text-muted"><%=smallTitle%></h2>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<p></p>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<a href="<%=nextUrl%>" class="btn btn-inverse m-t-30"><%=nextTitle%></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<%- include("../partials/js-base", {infos: infos}) %>
|
||||
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/bower_components/modernizr/js/modernizr.js"></script>
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/bower_components/modernizr/js/css-scrollbars.js"></script>
|
||||
<script type="ca8f5c520f76c1b85a9e7c0b-text/javascript" src="/admindek/js/script.js"></script>
|
||||
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
|
||||
|
||||
</html>
|
||||
186
safekiso-server/modules/base/views/main/pages/reset.ejs
Normal file
186
safekiso-server/modules/base/views/main/pages/reset.ejs
Normal file
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
|
||||
<head>
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
|
||||
<%- include("../partials/head", {infos: infos}) %>
|
||||
<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/css/widget.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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="/icon/themify-icons/themify-icons.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/icofont/css/icofont.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/font-awesome/css/font-awesome.min.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/pages.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
<body themebg-pattern="theme1">
|
||||
|
||||
<div class="theme-loader">
|
||||
<div class="loader-track">
|
||||
<div class="preloader-wrapper">
|
||||
<div class="spinner-layer spinner-blue">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-red">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-yellow">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-green">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="login-block">
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<form class="md-float-material form-material" action="/reset/email" method="post">
|
||||
<div class="text-center">
|
||||
<font size="+2" color="black"><%=__(infos.appInfo.name)%></font>
|
||||
</div>
|
||||
<div class="auth-box card">
|
||||
<div class="card-block">
|
||||
<div class="row m-b-20">
|
||||
<div class="col-md-12">
|
||||
<h3 class="text-left">비밀번호 찾기</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-primary">
|
||||
<input type="text" name="email-address" class="form-control fill" required="">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">이메일 주소를 입력하세요.</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-primary btn-md btn-block waves-effect text-center m-b-20">비밀번호 재설정 메일 받기</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<p class="text-inverse text-left"><a href="/signin"><b>로그인으로 돌아가기</b></a></p>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/js-base", {infos: infos}) %>
|
||||
<script type="9359117a77ba86f2cd9f4ff3-text/javascript" src="/admindek/js/pcoded.min.js"></script>
|
||||
<script type="9359117a77ba86f2cd9f4ff3-text/javascript" src="/admindek/js/vertical/vertical-layout.min.js"></script>
|
||||
<script type="9359117a77ba86f2cd9f4ff3-text/javascript" src="/admindek/js/script.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
// $('#dt-ajax-array').DataTable();
|
||||
// card js start
|
||||
console.log('huk document ready...')
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
197
safekiso-server/modules/base/views/main/pages/signin.ejs
Normal file
197
safekiso-server/modules/base/views/main/pages/signin.ejs
Normal file
@@ -0,0 +1,197 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
|
||||
<head>
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
|
||||
<%- include("../partials/head", { infos: infos }) %>
|
||||
<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/css/widget.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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="/icon/themify-icons/themify-icons.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/icofont/css/icofont.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/font-awesome/css/font-awesome.min.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/pages.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body themebg-pattern="theme1">
|
||||
|
||||
<div class="theme-loader">
|
||||
<div class="loader-track">
|
||||
<div class="preloader-wrapper">
|
||||
<div class="spinner-layer spinner-blue">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-red">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-yellow">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-green">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="login-block">
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<form class="md-float-material form-material" action="/signin/email<%= infos.query.loc !=='' ? '?loc=' + encodeURIComponent(infos.query.loc) : '' %>" method="post" >
|
||||
<div class="text-center">
|
||||
<font size="+2" color="black"><%=__(infos.appInfo.name)%></font>
|
||||
</div>
|
||||
<div class="auth-box card">
|
||||
<div class="card-block">
|
||||
<div class="row m-b-20">
|
||||
<div class="col-md-12">
|
||||
<h3 class="text-center txt-primary">로그인</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-20">
|
||||
|
||||
<%
|
||||
|
||||
console.log('infos.query.loc=', infos.query.loc)
|
||||
|
||||
%>
|
||||
|
||||
<% if (infos.appInfo.type !== 'fleetco') { %>
|
||||
<div class="col-md-6">
|
||||
<a href="javascript:void(0);" onclick="doSignin('facebook')" class="btn btn-facebook m-b-20 btn-block waves-effect waves-light"><i class="icofont icofont-social-facebook"></i>페이스북</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a href="javascript:void(0);" onclick="doSignin('google')" class="btn btn-google-plus m-b-20 btn-block waves-effect waves-light"><i class="icofont icofont-social-google-plus"></i>구글</a>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
|
||||
|
||||
<% if (infos.appInfo.type === 'chachachak' || infos.appInfo.type === 'linkcare' || infos.appInfo.type === 'hatch') { %>
|
||||
<div class="col-md-6">
|
||||
<a href="javascript:void(0);" onclick="doSignin('kakao')" class=" m-b-20 waves-effect waves-light"><img src="/images/kakao_login_btn_medium_narrow.png" width="190" height="44"></a>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<a href="javascript:void(0);" onclick="doSignin('apple')" class="btn btn-google-plus m-b-20 btn-block waves-effect waves-light"><i class="icofont icofont-social-google-plus"></i>애플</a>
|
||||
</div>
|
||||
|
||||
|
||||
<% } %>
|
||||
</div>
|
||||
<p class="text-muted text-center p-b-5">아이디/패스워드로 로그인 하기</p>
|
||||
|
||||
<div class="form-group form-primary">
|
||||
<input type="text" name="userName" class="form-control fill" required="" autocomplete="off">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">이메일 주소</label>
|
||||
</div>
|
||||
<div class="form-group form-primary">
|
||||
<input type="password" name="password" class="form-control fill" required="" autocomplete="off">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">비밀번호</label>
|
||||
</div>
|
||||
<div class="row m-t-25 text-left">
|
||||
<div class="col-12">
|
||||
<div class="checkbox-fade fade-in-primary">
|
||||
<label>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<div class="forgot-phone text-right float-right">
|
||||
<a href="/reset" class="text-right f-w-600"> 비밀번호 찾기</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-30">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-primary btn-md btn-block waves-effect text-center m-b-20">로그인</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-inverse text-left">무료 회원 가입은 <a href="/signup"> <b style='color:red !important;'>여기</b> </a>를 누르세요</p>
|
||||
<p class="text-inverse text-left">메인 화면으로 <a href="/"><b style='color:blue !important;'>돌아가기</b></a></p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/scripts-body", { infos: infos }) %>
|
||||
|
||||
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
201
safekiso-server/modules/base/views/main/pages/signin_bak.ejs
Normal file
201
safekiso-server/modules/base/views/main/pages/signin_bak.ejs
Normal file
@@ -0,0 +1,201 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
|
||||
<head>
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
<%- include("../partials/head", { infos: infos }) %>
|
||||
<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/css/widget.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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="/icon/themify-icons/themify-icons.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/icofont/css/icofont.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/font-awesome/css/font-awesome.min.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/pages.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body themebg-pattern="theme1">
|
||||
|
||||
<div class="theme-loader">
|
||||
<div class="loader-track">
|
||||
<div class="preloader-wrapper">
|
||||
<div class="spinner-layer spinner-blue">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-red">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-yellow">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-green">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="login-block">
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<form class="md-float-material form-material" action="/signin/email<%= infos.query.loc !=='' ? '?loc=' + encodeURIComponent(infos.query.loc) : '' %>" method="post" >
|
||||
<div class="text-center">
|
||||
<font size="+2" color="black"><%=__(infos.appInfo.name)%></font>
|
||||
</div>
|
||||
<div class="auth-box card">
|
||||
<div class="card-block">
|
||||
<div class="row m-b-20">
|
||||
<div class="col-md-12">
|
||||
<h3 class="text-center txt-primary">로그인</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-20">
|
||||
|
||||
<%
|
||||
|
||||
console.log('infos.query.loc=', infos.query.loc)
|
||||
|
||||
%>
|
||||
|
||||
<% if (infos.appInfo.type !== 'fleetco') { %>
|
||||
<div class="col-md-6">
|
||||
<a href="/signin/facebook<%= infos.query.loc !== undefined ? '?loc=' + encodeURIComponent(infos.query.loc) : '' %>" class="btn btn-facebook m-b-20 btn-block waves-effect waves-light"><i class="icofont icofont-social-facebook"></i>페이스북</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a href="/signin/google<%= infos.query.loc !== undefined ? '?loc=' + encodeURIComponent(infos.query.loc) : '' %>" class="btn btn-google-plus m-b-20 btn-block waves-effect waves-light"><i class="icofont icofont-social-google-plus"></i>구글</a>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
|
||||
|
||||
<% if (infos.appInfo.type === 'chachachak' || infos.appInfo.type === 'linkcare') { %>
|
||||
<div class="col-md-6">
|
||||
<a href="/signin/kakao<%= infos.query.loc !== undefined ? '?loc=' + encodeURIComponent(infos.query.loc) : '' %>" class=" m-b-20 waves-effect waves-light"><img src="/images/kakao_login_btn_medium_narrow.png" width="190" height="44"></a>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
<p class="text-muted text-center p-b-5">아이디/패스워드로 로그인 하기</p>
|
||||
|
||||
<div class="form-group form-primary">
|
||||
<input type="text" name="userName" class="form-control fill" required="" autocomplete="off">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">이메일 주소</label>
|
||||
</div>
|
||||
<div class="form-group form-primary">
|
||||
<input type="password" name="password" class="form-control fill" required="" autocomplete="off">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">비밀번호</label>
|
||||
</div>
|
||||
<div class="row m-t-25 text-left">
|
||||
<div class="col-12">
|
||||
<div class="checkbox-fade fade-in-primary">
|
||||
<label>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<div class="forgot-phone text-right float-right">
|
||||
<a href="/reset" class="text-right f-w-600"> 비밀번호 찾기</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-30">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-primary btn-md btn-block waves-effect text-center m-b-20">로그인</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-inverse text-left">무료 회원 가입은 <a href="/signup"> <b>여기 </b></a>를 누르세요</p>
|
||||
<p class="text-inverse text-left"><a href="/"><b>메인 화면으로 돌아가기</b></a></p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/js-base", { infos: infos }) %>
|
||||
|
||||
|
||||
<script type="text/javascript" src="/admindek/js/pcoded.min.js"></script>
|
||||
<script type="text/javascript" src="/admindek/js/vertical/vertical-layout.min.js"></script>
|
||||
<script type="text/javascript" src="/admindek/js/script.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
'use strict'
|
||||
$(document).ready(function() {
|
||||
console.log('huk document ready...')
|
||||
})
|
||||
</script>
|
||||
|
||||
<%- include("../partials/footer", { infos: infos }) %>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
252
safekiso-server/modules/base/views/main/pages/signup.ejs
Normal file
252
safekiso-server/modules/base/views/main/pages/signup.ejs
Normal file
@@ -0,0 +1,252 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
|
||||
<head>
|
||||
<title><%=__(infos.appInfo.name)%></title>
|
||||
<%- include(infos.localPath + "/partials/gtag", {}) %>
|
||||
<%- include("../partials/scripts-header", { infos: infos }) %>
|
||||
|
||||
<%- include("../partials/head", { infos: infos }) %>
|
||||
<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/css/widget.css">
|
||||
|
||||
|
||||
|
||||
|
||||
<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="/icon/themify-icons/themify-icons.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/icofont/css/icofont.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/icon/font-awesome/css/font-awesome.min.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/pages.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
|
||||
<body themebg-pattern="theme1">
|
||||
|
||||
<div class="theme-loader">
|
||||
<div class="loader-track">
|
||||
<div class="preloader-wrapper">
|
||||
<div class="spinner-layer spinner-blue">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-red">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-yellow">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-layer spinner-green">
|
||||
<div class="circle-clipper left">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="gap-patch">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
<div class="circle-clipper right">
|
||||
<div class="circle"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="login-block">
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<form class="md-float-material form-material" action="/signup/email" method="post" >
|
||||
<div class="text-center">
|
||||
<font size="+2" color="black"><%=__(infos.appInfo.name)%></font>
|
||||
</div>
|
||||
<div class="auth-box card">
|
||||
<div class="card-block">
|
||||
<div class="row m-b-20">
|
||||
<div class="col-md-12">
|
||||
<h3 class="text-center txt-primary">가입하기</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-20">
|
||||
|
||||
|
||||
<% if (infos.appInfo.type !== 'fleetco') { %>
|
||||
<div class="col-md-6">
|
||||
<button class="btn btn-facebook m-b-20 btn-block" onclick="doSignin('facebook')"><i class="icofont icofont-social-facebook"></i>페이스북</button>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button class="btn btn-google-plus m-b-20 btn-block" onclick="doSignin('google')"><i class="icofont icofont-social-google-plus"></i>구글</button>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
<p class="text-muted text-center p-b-5">아이디/패스워드로 가입하기</p>
|
||||
<div class="form-group form-primary">
|
||||
<input type="text" id="userName" name="userName" class="form-control fill" required="">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">이메일 주소를 입력하세요.</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group form-primary">
|
||||
<input type="password" id="password" name="password" class="form-control fill" required="">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">비밀번호를 입력하세요.</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group form-primary">
|
||||
<input type="password" name="confirm-password" class="form-control fill" required="">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">비밀번호를 다시 한번 입력하세요.</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-25 text-left">
|
||||
<div class="col-md-12">
|
||||
<div class="checkbox-fade fade-in-primary">
|
||||
<label>
|
||||
<input type="checkbox" value="">
|
||||
<span class="cr"><i class="cr-icon icofont icofont-ui-check txt-primary"></i></span>
|
||||
<span class="text-inverse"><a target="_blank" href="https://standard.go.kr/KSCI/personal/stipulation.do"><b style='color:blue;'>서비스 이용 약관</b></a>에 동의 합니다.</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="checkbox-fade fade-in-primary">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t-30">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-primary btn-md btn-block waves-effect text-center m-b-20">입력한 아이디/패스워드로 가입하기</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<p class="text-inverse text-left">로그인 화면으로 <a href="/signin"><b style='color:blue !important;'>돌아가기</b></a></p>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<div class="modal fade modal-flex" id="Modal-overflow" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body model-container">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h5 class="font-header">Some text above the scrollable box</h5>
|
||||
<p>This is Photoshop's version of Lorem IpThis is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit.</p>
|
||||
<div class="overflow-container">
|
||||
<h5>Overflow container</h5>
|
||||
</div>
|
||||
<img src="/admindek/images/Modal/overflow.jpg" alt="" class="img img-fluid" />
|
||||
<p class="p-t-15">Similique velit aut et cumque illum consequatur doloribus quis ipsam sunt sint qui impedit nihil voluptate animi nesciunt corporis aspernatur quaerat sed rem voluptas commodi magnam porro eum sunt quis ullam aut odit laudantium quia soluta corrupti aut qui officiis hic voluptatibus aut itaque voluptates qui expedita minus autem aliquid et debitis omnis provident quia voluptate illo tempora illum maiores perferendis dolorem recusandae ut reprehenderit ad est eum occaecati quam non et quod amet illo id doloremque vitae porro porro sit amet voluptatem quia laboriosam aliquam quia quis facilis eveniet dolorum sunt neque rerum earum ut eaque ab tenetur quia nam quis rerum cumque eos excepturi nostrum qui distinctio porro enim vitae eligendi accusantium quia possimus et autem error repellendus vitae ad quia laborum minima autem nulla optio ad ea nobis animi illo voluptates cum recusandae temporibus voluptate amet quam excepturi odio quia suscipit inventore et rerum quos rerum aut doloribus aut consequatur earum impedit reiciendis saepe voluptates exercitationem maxime culpa saepe ducimus culpa ut aliquam magnam aut veniam sit totam architecto vel distinctio aspernatur aut qui labore quaerat rerum voluptatem sapiente sint sed explicabo et hic laboriosam sit nesciunt et minus et aut dignissimos ut porro incidunt sint et nihil id tempora aut et illum molestiae aperiam minus earum repellendus tempora illo itaque amet facilis quia rem iure quod corrupti dolores et sequi sunt ipsa labore quia unde qui blanditiis ut eos at quia beatae sit repellat quibusdam neque natus expedita sed perspiciatis atque quas voluptatem autem velit enim qui omnis molestiae et repellat sapiente corporis ipsam sed veritatis in quo quod et occaecati quia rerum iusto cumque accusamus numquam sunt quo sequi id molestiae consequatur doloribus molestiae autem nisi nostrum blanditiis et nihil sed nobis incidunt omnis quos minima eius quo accusamus qui ea minus aut est tempora quia inventore ad delectus vel et accusamus fuga eius ipsa aliquam alias sint maxime quae enim atque corrupti libero eos nesciunt et voluptas velit numquam illo non qui quaerat enim omnis et ex asperiores inventore quisquam est enim labore ut nobis consequatur fuga ut quo vel molestiae alias eius quod aspernatur laudantium pariatur eius fuga inventore esse at alias repudiandae perspiciatis id qui fuga consequatur recusandae atque iste commodi sapiente eaque labore ipsa aut sint quo vel recusandae ab iusto ducimus minus voluptas ex et illo commodi ipsa pariatur qui quae adipisci saepe dicta delectus nostrum illum incidunt laboriosam est maxime eum debitis et explicabo quia doloribus quod occaecati tempore tempora labore nihil enim recusandae et dolorum temporibus molestiae sint non porro neque minus provident reprehenderit similique illum voluptate qui dicta dolorum totam quia ut nihil dolore fugiat laboriosam molestiae eveniet omnis consequatur non magni nemo consequatur laboriosam non facilis harum eaque illo pariatur rerum dolores quis autem nemo aut enim tenetur pariatur et non quam repudiandae quia aliquam sunt corporis aperiam natus aut reprehenderit non non illum cum laboriosam nulla quaerat eligendi laudantium perspiciatis.</p>
|
||||
</div>
|
||||
<div class="p-15">
|
||||
<h5 class="font-header">Some text above the scrollable box</h5>
|
||||
<p>This is Photoshop's version of Lorem IpThis is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<%- include("../partials/js-base", { infos: infos }) %>
|
||||
<script type="text/javascript" src="/admindek/js/pcoded.min.js"></script>
|
||||
<script type="text/javascript" src="/admindek/js/vertical/vertical-layout.min.js"></script>
|
||||
<script type="text/javascript" src="/admindek/js/script.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
// $('#dt-ajax-array').DataTable();
|
||||
// card js start
|
||||
console.log('huk document ready...')
|
||||
$("#userName").change(function(){
|
||||
//실행할 내용
|
||||
console.log('userName changed...');
|
||||
});
|
||||
|
||||
$("#password").change(function(){
|
||||
//실행할 내용
|
||||
console.log('password changed...');
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
<%- include("../partials/scripts-footer", { infos: infos }) %>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
116
safekiso-server/modules/base/views/main/partials/content-hub.ejs
Normal file
116
safekiso-server/modules/base/views/main/partials/content-hub.ejs
Normal 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> -->
|
||||
|
||||
|
||||
<%} %>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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 }) %>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
<script src="/admindek/js/rocket-loader.min.js" data-cf-settings="9359117a77ba86f2cd9f4ff3-|49" defer=""></script>
|
||||
109
safekiso-server/modules/base/views/main/partials/head.ejs
Normal file
109
safekiso-server/modules/base/views/main/partials/head.ejs
Normal 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>
|
||||
|
||||
<%} %>
|
||||
41
safekiso-server/modules/base/views/main/partials/hub.ejs
Normal file
41
safekiso-server/modules/base/views/main/partials/hub.ejs
Normal 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 })%><%
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -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>
|
||||
40
safekiso-server/modules/base/views/main/partials/my.ejs
Normal file
40
safekiso-server/modules/base/views/main/partials/my.ejs
Normal 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>
|
||||
46
safekiso-server/modules/base/views/main/partials/note.ejs
Normal file
46
safekiso-server/modules/base/views/main/partials/note.ejs
Normal 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>
|
||||
9438
safekiso-server/modules/base/views/main/partials/scripts-body.ejs
Normal file
9438
safekiso-server/modules/base/views/main/partials/scripts-body.ejs
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
36
safekiso-server/modules/base/views/main/partials/support.ejs
Normal file
36
safekiso-server/modules/base/views/main/partials/support.ejs
Normal 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>
|
||||
112
safekiso-server/modules/base/views/main/partials/top-navbar.ejs
Normal file
112
safekiso-server/modules/base/views/main/partials/top-navbar.ejs
Normal 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>
|
||||
@@ -0,0 +1,93 @@
|
||||
<div class="card table-card">
|
||||
<div class="card-header">
|
||||
<h5>Application Sales</h5>
|
||||
<div class="card-header-right">
|
||||
<ul class="list-unstyled card-option">
|
||||
<li class="first-opt"><i class="feather icon-chevron-left open-card-option"></i></li>
|
||||
<li><i class="feather icon-maximize full-card"></i></li>
|
||||
<li><i class="feather icon-minus minimize-card"></i></li>
|
||||
<li><i class="feather icon-refresh-cw reload-card"></i></li>
|
||||
<li><i class="feather icon-trash close-card"></i></li>
|
||||
<li><i class="feather icon-chevron-left open-card-option"></i></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-block p-b-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-borderless m-b-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Application</th>
|
||||
<th>Sales</th>
|
||||
<th>Change</th>
|
||||
<th>Avg Price</th>
|
||||
<th>Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-inline-block align-middle">
|
||||
<h6>Able Pro</h6>
|
||||
<p class="text-muted m-b-0">Powerful Admin Theme</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>16,300</td>
|
||||
<td>
|
||||
<div id="app-sale1" style="height:50px"></div>
|
||||
</td>
|
||||
<td>$53</td>
|
||||
<td class="text-c-blue">$15,652</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-inline-block align-middle">
|
||||
<h6>Photoshop</h6>
|
||||
<p class="text-muted m-b-0">Design Software</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>26,421</td>
|
||||
<td>
|
||||
<div id="app-sale2" style="height:50px"></div>
|
||||
</td>
|
||||
<td>$35</td>
|
||||
<td class="text-c-blue">$18,785</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-inline-block align-middle">
|
||||
<h6>Guruable</h6>
|
||||
<p class="text-muted m-b-0">Best Admin Template</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>8,265</td>
|
||||
<td>
|
||||
<div id="app-sale3" style="height:50px"></div>
|
||||
</td>
|
||||
<td>$98</td>
|
||||
<td class="text-c-blue">$9,652</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-inline-block align-middle">
|
||||
<h6>Flatable</h6>
|
||||
<p class="text-muted m-b-0">Admin App</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>10,652</td>
|
||||
<td>
|
||||
<div id="app-sale4" style="height:50px"></div>
|
||||
</td>
|
||||
<td>$20</td>
|
||||
<td class="text-c-blue">$7,856</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div class="text-right">
|
||||
<a href="#!" class=" b-b-primary text-primary">View all Projects</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div class="card sale-card">
|
||||
<div class="card-header">
|
||||
<h5>Deals Analytics</h5>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
<div id="deal-analytic-chart" class="chart-shadow" style="height:300px"></div>
|
||||
</div>
|
||||
</div>
|
||||
109
safekiso-server/modules/base/views/main/widgets/admin-edit.ejs
Normal file
109
safekiso-server/modules/base/views/main/widgets/admin-edit.ejs
Normal file
@@ -0,0 +1,109 @@
|
||||
<% if (infos.loc === '/admin/notice/edit') { %>
|
||||
<!-- start of body -->
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<i class="icofont icofont-close-line-circled"></i>
|
||||
<strong><%=__('태그는 입력하실 수 없습니다.')%></strong>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<input type="hidden" id="notice-serial" value="<%=(hero !== null) ? hero.serial : ''%>">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('제목')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="notice-title" type="text" class="form-control" value="<%=(hero !== null) ? hero.title : ''%>" placeholder="<%=__('공지 제목을 입력해 주세요.')%>" class="required" onchange="updateNoticePreview('preview-notice-title', this.value)">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('내용')%></label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="notice-detail" rows="5" cols="5" class="form-control" value="" placeholder="<%=__('공지 내용을 입력해 주세요. 태그는 입력하실 수 없습니다.')%>" class="required" onchange="updateNoticePreview('preview-notice-detail', this.value)"><%=(hero !== null) ? hero.detail : ''%></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('<%=(hero !== null) ? 'update' : 'insert'%>', {target: 'notice'})"><%=(hero !== null) ? __('수정') : __('저장')%></button>
|
||||
|
||||
<% if (hero !== null) { %>
|
||||
<button class="btn btn-danger waves-effect waves-light" onclick="doAllThingsInSafe('delete', {target: 'notice', hero: '<%-hero.serial%>'})"><%=__('삭제')%></button>
|
||||
<% } %>
|
||||
|
||||
<button class="btn btn-info waves-effect waves-light"><%=__('미리보기')%></button>
|
||||
|
||||
|
||||
<BR><BR><BR>
|
||||
|
||||
<div id="notice-preview" style="display:'block'">
|
||||
<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(infos.basePath + "/widgets/item-notice", { infos: infos, hero: hero ? hero : {created: '2020년 2월 29일 오후 4시 33분'} }) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- end of body -->
|
||||
|
||||
|
||||
<%} else if (infos.loc === '/admin/faq/edit') {%>
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<i class="icofont icofont-close-line-circled"></i>
|
||||
<strong><%=__('태그는 입력하실 수 없습니다.')%></strong>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<input type="hidden" id="faq-serial" value="<%=(hero !== null) ? hero.serial : ''%>">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('질문')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="faq-question" type="text" class="form-control" value="<%=(hero !== null) ? hero.question : ''%>" placeholder="<%=__('질문을 입력해 주세요.')%>" class="required" onchange="updateFAQPreview('preview-faq-question', this.value)">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('답변')%></label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="faq-answer" rows="5" cols="5" class="form-control" value="" placeholder="<%=__('답변 내용을 입력해 주세요. 태그는 입력하실 수 없습니다.')%>" class="required" onchange="updateFAQPreview('preview-faq-answer', this.value)"><%=(hero !== null) ? hero.answer : ''%></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('<%=(hero !== null) ? 'update' : 'insert'%>', {target: 'faq'})"><%=(hero !== null) ? __('수정') : __('저장')%></button>
|
||||
|
||||
<button class="btn btn-info waves-effect waves-light"><%=__('미리보기')%></button>
|
||||
|
||||
<% if (hero !== null) { %>
|
||||
<button class="btn btn-danger waves-effect waves-light" onclick="doAllThingsInSafe('delete', {target: 'faq', hero: '<%-hero.serial%>'})"><%=__('삭제')%></button>
|
||||
<% } %>
|
||||
|
||||
|
||||
<BR><BR><BR>
|
||||
|
||||
<div id="notice-preview" style="display:'block'">
|
||||
<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(infos.basePath + "/widgets/item-faq", { infos: infos, hero: hero }) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- end of body -->
|
||||
|
||||
|
||||
<%} else {%>
|
||||
<%} %>
|
||||
126
safekiso-server/modules/base/views/main/widgets/admin-etc.ejs
Normal file
126
safekiso-server/modules/base/views/main/widgets/admin-etc.ejs
Normal file
@@ -0,0 +1,126 @@
|
||||
|
||||
<div class="col-sm-12">
|
||||
<form class="animation-type">
|
||||
<div class="container">
|
||||
<div class="row ">
|
||||
<div class="col-lg-4 offset-lg-3 col-md-12">
|
||||
<div class="m-b-30">
|
||||
<select class="form-control form-control-default waves-effect input input--dropdown js--animations">
|
||||
<optgroup label="Attention Seekers">
|
||||
<option value="bounce">bounce</option>
|
||||
<option value="flash">flash</option>
|
||||
<option value="pulse">pulse</option>
|
||||
<option value="rubberBand">rubberBand</option>
|
||||
<option value="shake">shake</option>
|
||||
<option value="swing">swing</option>
|
||||
<option value="tada">tada</option>
|
||||
<option value="wobble">wobble</option>
|
||||
<option value="jello">jello</option>
|
||||
</optgroup>
|
||||
<optgroup label="Bouncing Entrances">
|
||||
<option value="bounceIn">bounceIn</option>
|
||||
<option value="bounceInDown">bounceInDown</option>
|
||||
<option value="bounceInLeft">bounceInLeft</option>
|
||||
<option value="bounceInRight">bounceInRight</option>
|
||||
<option value="bounceInUp">bounceInUp</option>
|
||||
</optgroup>
|
||||
<optgroup label="Bouncing Exits">
|
||||
<option value="bounceOut">bounceOut</option>
|
||||
<option value="bounceOutDown">bounceOutDown</option>
|
||||
<option value="bounceOutLeft">bounceOutLeft</option>
|
||||
<option value="bounceOutRight">bounceOutRight</option>
|
||||
<option value="bounceOutUp">bounceOutUp</option>
|
||||
</optgroup>
|
||||
<optgroup label="Fading Entrances">
|
||||
<option value="fadeIn">fadeIn</option>
|
||||
<option value="fadeInDown">fadeInDown</option>
|
||||
<option value="fadeInDownBig">fadeInDownBig</option>
|
||||
<option value="fadeInLeft">fadeInLeft</option>
|
||||
<option value="fadeInLeftBig">fadeInLeftBig</option>
|
||||
<option value="fadeInRight">fadeInRight</option>
|
||||
<option value="fadeInRightBig">fadeInRightBig</option>
|
||||
<option value="fadeInUp">fadeInUp</option>
|
||||
<option value="fadeInUpBig">fadeInUpBig</option>
|
||||
</optgroup>
|
||||
<optgroup label="Fading Exits">
|
||||
<option value="fadeOut">fadeOut</option>
|
||||
<option value="fadeOutDown">fadeOutDown</option>
|
||||
<option value="fadeOutDownBig">fadeOutDownBig</option>
|
||||
<option value="fadeOutLeft">fadeOutLeft</option>
|
||||
<option value="fadeOutLeftBig">fadeOutLeftBig</option>
|
||||
<option value="fadeOutRight">fadeOutRight</option>
|
||||
<option value="fadeOutRightBig">fadeOutRightBig</option>
|
||||
<option value="fadeOutUp">fadeOutUp</option>
|
||||
<option value="fadeOutUpBig">fadeOutUpBig</option>
|
||||
</optgroup>
|
||||
<optgroup label="Flippers">
|
||||
<option value="flip">flip</option>
|
||||
<option value="flipInX">flipInX</option>
|
||||
<option value="flipInY">flipInY</option>
|
||||
<option value="flipOutX">flipOutX</option>
|
||||
<option value="flipOutY">flipOutY</option>
|
||||
</optgroup>
|
||||
<optgroup label="Lightspeed">
|
||||
<option value="lightSpeedIn">lightSpeedIn</option>
|
||||
<option value="lightSpeedOut">lightSpeedOut</option>
|
||||
</optgroup>
|
||||
<optgroup label="Rotating Entrances">
|
||||
<option value="rotateIn">rotateIn</option>
|
||||
<option value="rotateInDownLeft">rotateInDownLeft</option>
|
||||
<option value="rotateInDownRight">rotateInDownRight</option>
|
||||
<option value="rotateInUpLeft">rotateInUpLeft</option>
|
||||
<option value="rotateInUpRight">rotateInUpRight</option>
|
||||
</optgroup>
|
||||
<optgroup label="Rotating Exits">
|
||||
<option value="rotateOut">rotateOut</option>
|
||||
<option value="rotateOutDownLeft">rotateOutDownLeft</option>
|
||||
<option value="rotateOutDownRight">rotateOutDownRight</option>
|
||||
<option value="rotateOutUpLeft">rotateOutUpLeft</option>
|
||||
<option value="rotateOutUpRight">rotateOutUpRight</option>
|
||||
</optgroup>
|
||||
<optgroup label="Sliding Entrances">
|
||||
<option value="slideInUp">slideInUp</option>
|
||||
<option value="slideInDown">slideInDown</option>
|
||||
<option value="slideInLeft">slideInLeft</option>
|
||||
<option value="slideInRight">slideInRight</option>
|
||||
</optgroup>
|
||||
<optgroup label="Sliding Exits">
|
||||
<option value="slideOutUp">slideOutUp</option>
|
||||
<option value="slideOutDown">slideOutDown</option>
|
||||
<option value="slideOutLeft">slideOutLeft</option>
|
||||
<option value="slideOutRight">slideOutRight</option>
|
||||
</optgroup>
|
||||
<optgroup label="Zoom Entrances">
|
||||
<option value="zoomIn">zoomIn</option>
|
||||
<option value="zoomInDown">zoomInDown</option>
|
||||
<option value="zoomInLeft">zoomInLeft</option>
|
||||
<option value="zoomInRight">zoomInRight</option>
|
||||
<option value="zoomInUp">zoomInUp</option>
|
||||
</optgroup>
|
||||
<optgroup label="Zoom Exits">
|
||||
<option value="zoomOut">zoomOut</option>
|
||||
<option value="zoomOutDown">zoomOutDown</option>
|
||||
<option value="zoomOutLeft">zoomOutLeft</option>
|
||||
<option value="zoomOutRight">zoomOutRight</option>
|
||||
<option value="zoomOutUp">zoomOutUp</option>
|
||||
</optgroup>
|
||||
<optgroup label="Specials">
|
||||
<option value="hinge">hinge</option>
|
||||
<option value="rollIn">rollIn</option>
|
||||
<option value="rollOut">rollOut</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-12">
|
||||
<button type="button" class="btn btn-primary btn-md waves-effect waves-light butt js--triggerAnimation">Animate me!</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div id="animationSandbox">
|
||||
<div class="text-center animation-image">
|
||||
<img class="d-block img-fluid img-thumbnail" src="/images/guitar.jpg" alt="Third slide">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
119
safekiso-server/modules/base/views/main/widgets/admin-info.ejs
Normal file
119
safekiso-server/modules/base/views/main/widgets/admin-info.ejs
Normal file
@@ -0,0 +1,119 @@
|
||||
<%console.log('businessInfo=', businessInfo)%>
|
||||
<%console.log('(businessInfo !== null=', (businessInfo !== null))%>
|
||||
|
||||
|
||||
<!-- start of body -->
|
||||
<div id="businessInfo-board" class="alert <%=(businessInfo === null) ? 'alert-danger' : 'alert-primary'%> icons-alert">
|
||||
<p><h4 id="businessInfo-board-message"><%=__((businessInfo !== null) ? __('사업자 정보가 표시되고 있습니다.') : __('사업자 정보가 표시되지 않고 있습니다.'))%><h4></p>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('업체명')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-name" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.name : ''%>" placeholder="<%=__('업체명을 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('대표자')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-owner" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.owner : ''%>" placeholder="<%=__('대표자명을 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('주소')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-address" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.address : ''%>" placeholder="<%=__('주소를 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('전화번호')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-phone" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.phone : ''%>" placeholder="<%=__('전화번호를 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('이메일')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-email" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.email : ''%>" placeholder="<%=__('이메일 주소를 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('사업자 등록번호')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-registration_number" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.registration_number : ''%>" placeholder="<%=__('사업자 등록번호를 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('통신판매 번호')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-capp_biz_cd" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.capp_biz_cd : ''%>" placeholder="<%=__('통신판매 번호를 입력하세요. 공란으로 두시면 항목이 표시되지 않습니다.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('메모')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="businessInfo-note" type="text" class="form-control" value="<%=(businessInfo !== null) ? businessInfo.note : ''%>" placeholder="<%=__('간단한 소개말을 입력해 주세요.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('businessInfo', {op: 'update'})"><%=__('사업자 정보 변경')%></button>
|
||||
<button class="btn btn-danger waves-effect waves-light" onclick="doAllThingsInSafe('businessInfo', {op: 'delete'})"><%=__('사업자 정보 표시 안함')%></button>
|
||||
|
||||
<!-- end of body -->
|
||||
|
||||
<BR><BR><BR>
|
||||
|
||||
|
||||
<div id="businessInfo-preview" style="display:<%=(businessInfo !== null) ? 'block' : 'none'%>">
|
||||
<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 -->
|
||||
|
||||
<dl class="dl-horizontal row">
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('업체명')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-name" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.name : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('대표자')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-owner" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.owner : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('주소')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-address" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.address : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('전화번호')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-phone" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.phone : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('이메일')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-email" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.email : ''%></dd>
|
||||
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('사업자 등록번호')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-registration_number" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.registration_number : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('통신판매 번호')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-capp_biz_cd" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.capp_biz_cd : ''%></dd>
|
||||
|
||||
<dt class="col-sm-3" style="display:'block'"><%=__('간단 소개')%></dt>
|
||||
<dd class="col-sm-9" id="businessInfo-preview-note" style="display:'block'"><%=(businessInfo !== null) ? businessInfo.note : ''%></dd>
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
<!-- end of body -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
189
safekiso-server/modules/base/views/main/widgets/admin-list.ejs
Normal file
189
safekiso-server/modules/base/views/main/widgets/admin-list.ejs
Normal file
@@ -0,0 +1,189 @@
|
||||
<div class="dt-responsive table-responsive">
|
||||
<table id="target-list" class="table table-striped table-bordered nowrap">
|
||||
<% if (infos.loc === '/admin/notice') { %>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('Title')%></th>
|
||||
<th><%=__('Detail')%></th>
|
||||
<th><%=__('Flags')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('Title')%></th>
|
||||
<th><%=__('Detail')%></th>
|
||||
<th><%=__('Flags')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<%} else if (infos.loc === '/admin/faq') {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('Question')%></th>
|
||||
<th><%=__('Answer')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('Question')%></th>
|
||||
<th><%=__('Answer')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<%} else if (infos.loc === '/admin/support') {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('Name')%></th>
|
||||
<th><%=__('Message')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('Name')%></th>
|
||||
<th><%=__('Message')%></th>
|
||||
<th><%=__('Status')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
<th><%=__('Action')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<%} else if (infos.loc === '/admin/users') {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Name')%></th>
|
||||
<th><%=__('Type')%></th>
|
||||
<th><%=__('Level')%></th>
|
||||
<th><%=__('cReal')%></th>
|
||||
<th><%=__('cBonus')%></th>
|
||||
<th><%=__('Lock')%></th>
|
||||
<th><%=__('Statue')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Name')%></th>
|
||||
<th><%=__('Type')%></th>
|
||||
<th><%=__('Level')%></th>
|
||||
<th><%=__('cReal')%></th>
|
||||
<th><%=__('cBonus')%></th>
|
||||
<th><%=__('Lock')%></th>
|
||||
<th><%=__('Statue')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<%} else if (infos.loc === '/admin/logs/user') {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Tag')%></th>
|
||||
<th><%=__('Data')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Tag')%></th>
|
||||
<th><%=__('Data')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<%} else if (infos.loc === '/admin/logs/credit') {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Tag')%></th>
|
||||
<th><%=__('Real')%></th>
|
||||
<th><%=__('Bonus')%></th>
|
||||
<th><%=__('Memo')%></th>
|
||||
<th><%=__('By')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><%=__('UID')%></th>
|
||||
<th><%=__('Tag')%></th>
|
||||
<th><%=__('Real')%></th>
|
||||
<th><%=__('Bonus')%></th>
|
||||
<th><%=__('Memo')%></th>
|
||||
<th><%=__('By')%></th>
|
||||
<th><%=__('Created')%></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
|
||||
<%} else {%>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Who</th>
|
||||
<th>Want</th>
|
||||
<th>Some</th>
|
||||
<th>Pie</th>
|
||||
<th>?</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Who</th>
|
||||
<th>Want</th>
|
||||
<th>Some</th>
|
||||
<th>Pie</th>
|
||||
<th>?</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<%} %>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<% if (infos.loc === '/admin/notice') { %>
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="window.location.href = '/admin/notice/edit'"><%=__('새 공지 작성')%></button>
|
||||
<%} else if (infos.loc === '/admin/faq') {%>
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="window.location.href = '/admin/faq/edit'""><%=__('새 FAQ 작성')%></button>
|
||||
|
||||
<%} else if (infos.loc === '/admin/support') {%>
|
||||
|
||||
<%} else if (infos.loc === '/admin/users') {%>
|
||||
|
||||
<%} else if (infos.loc === '/admin/logs/user') {%>
|
||||
<pre id="json-renderer" class="json-body" style="display:'none'"></pre>
|
||||
|
||||
<%} else if (infos.loc === '/admin/logs/credit') {%>
|
||||
|
||||
<%} else {%>
|
||||
<%} %>
|
||||
@@ -0,0 +1,49 @@
|
||||
<!-- start of body -->
|
||||
<div id="maintenance-board" class="alert <%=(maintenanceInfo !== null) ? 'alert-danger' : 'alert-primary'%> icons-alert">
|
||||
<p><h4 id="maintenance-board-message"><%=__((maintenanceInfo !== null) ? __('지금은 점검중 입니다.') : __('지금은 점검중이 아닙니다.'))%><h4></p>
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('점검 제목')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="maintenance-title" type="text" class="form-control" value="<%=(maintenanceInfo !== null) ? __(maintenanceInfo.title) : ''%>" placeholder="<%=__('임시점검, 긴급점검, 정기점검 등...')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('간단한 설명')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="maintenance-description" type="text" class="form-control" value="<%=(maintenanceInfo !== null) ? __(maintenanceInfo.description) : ''%>" placeholder="<%=__('무슨 무슨 사유로 점검을 진행중입니다.')%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('완료 예정 일시')%></label>
|
||||
<div class="col-sm-10">
|
||||
<input id="maintenance-until" type="datetime-local" class="form-control" value="<%=(maintenanceInfo !== null) ? __(maintenanceInfo.until) : ''%>" class="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label"><%=__('점검 범위')%></label>
|
||||
<div class="col-sm-10">
|
||||
<select id="maintenance-type" name="select" class="form-control">
|
||||
<option value="all" <%=(maintenanceInfo !== null) ? (maintenanceInfo.type === 'all' ? 'selected' : '') : 'select'%>><%=__('전체 (web, api, buy)')%></option>
|
||||
<option value="web" <%=(maintenanceInfo !== null) ? (maintenanceInfo.type === 'web' ? 'selected' : '') : ''%>><%=__('웹 사이트만')%></option>
|
||||
<option value="api" <%=(maintenanceInfo !== null) ? (maintenanceInfo.type === 'api' ? 'selected' : '') : ''%>><%=__('api 호출만')%></option>
|
||||
<option value="buy" <%=(maintenanceInfo !== null) ? (maintenanceInfo.type === 'buy' ? 'selected' : '') : ''%>><%=__('구매만')%></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="maintenance-off-btns" style="display:<%=(maintenanceInfo !== null) ? 'none' : 'block'%>">
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('maintenance', {op: 'update'})"><%=__('입력대로 점검 개시')%></button>
|
||||
<button class="btn btn-danger waves-effect waves-light" onclick="doAllThingsInSafe('maintenance', {op: 'urgent'})"><%=__('전체, 완료시까지, 긴급 점검 개시')%></button>
|
||||
</div>
|
||||
|
||||
<div id="maintenance-on-btns" style="display:<%=(maintenanceInfo !== null) ? 'block' : 'none'%>">
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('maintenance', {op: 'update'})"><%=__('입력대로 점검 변경')%></button>
|
||||
<button class="btn btn-danger waves-effect waves-light" onclick="doAllThingsInSafe('maintenance', {op: 'end'})"><%=__('점검 종료')%></button>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- end of body -->
|
||||
194
safekiso-server/modules/base/views/main/widgets/admin-multi.ejs
Normal file
194
safekiso-server/modules/base/views/main/widgets/admin-multi.ejs
Normal file
@@ -0,0 +1,194 @@
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5>Multi-Column Ordering</h5>
|
||||
<span>DataTables allows ordering by multiple columns at the same time, which can be activated in a number of different ways</span>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
<div class="dt-responsive table-responsive">
|
||||
<table id="multi-colum-dt" class="table table-striped table-bordered nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Position</th>
|
||||
<th>Office</th>
|
||||
<th>Age</th>
|
||||
<th>Start date</th>
|
||||
<th>Salary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Tiger Nixon</td>
|
||||
<td>System Architect</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>61</td>
|
||||
<td>2011/04/25</td>
|
||||
<td>$320,800</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Garrett Winters</td>
|
||||
<td>Accountant</td>
|
||||
<td>Tokyo</td>
|
||||
<td>63</td>
|
||||
<td>2011/07/25</td>
|
||||
<td>$170,750</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ashton Cox</td>
|
||||
<td>Junior Technical Author</td>
|
||||
<td>San Francisco</td>
|
||||
<td>66</td>
|
||||
<td>2009/01/12</td>
|
||||
<td>$86,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Cedric Kelly</td>
|
||||
<td>Senior Javascript Developer</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>22</td>
|
||||
<td>2012/03/29</td>
|
||||
<td>$433,060</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Airi Satou</td>
|
||||
<td>Accountant</td>
|
||||
<td>Tokyo</td>
|
||||
<td>33</td>
|
||||
<td>2008/11/28</td>
|
||||
<td>$162,700</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brielle Williamson</td>
|
||||
<td>Integration Specialist</td>
|
||||
<td>New York</td>
|
||||
<td>61</td>
|
||||
<td>2012/12/02</td>
|
||||
<td>$372,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Herrod Chandler</td>
|
||||
<td>Sales Assistant</td>
|
||||
<td>San Francisco</td>
|
||||
<td>59</td>
|
||||
<td>2012/08/06</td>
|
||||
<td>$137,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rhona Davidson</td>
|
||||
<td>Integration Specialist</td>
|
||||
<td>Tokyo</td>
|
||||
<td>55</td>
|
||||
<td>2010/10/14</td>
|
||||
<td>$327,900</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Colleen Hurst</td>
|
||||
<td>Javascript Developer</td>
|
||||
<td>San Francisco</td>
|
||||
<td>39</td>
|
||||
<td>2009/09/15</td>
|
||||
<td>$205,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sonya Frost</td>
|
||||
<td>Software Engineer</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>23</td>
|
||||
<td>2008/12/13</td>
|
||||
<td>$103,600</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jena Gaines</td>
|
||||
<td>Office Manager</td>
|
||||
<td>London</td>
|
||||
<td>30</td>
|
||||
<td>2008/12/19</td>
|
||||
<td>$90,560</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Quinn Flynn</td>
|
||||
<td>Support Lead</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>22</td>
|
||||
<td>2013/03/03</td>
|
||||
<td>$342,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Charde Marshall</td>
|
||||
<td>Regional Director</td>
|
||||
<td>San Francisco</td>
|
||||
<td>36</td>
|
||||
<td>2008/10/16</td>
|
||||
<td>$470,600</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Haley Kennedy</td>
|
||||
<td>Senior Marketing Designer</td>
|
||||
<td>London</td>
|
||||
<td>43</td>
|
||||
<td>2012/12/18</td>
|
||||
<td>$313,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tatyana Fitzpatrick</td>
|
||||
<td>Regional Director</td>
|
||||
<td>London</td>
|
||||
<td>19</td>
|
||||
<td>2010/03/17</td>
|
||||
<td>$385,750</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Michael Silva</td>
|
||||
<td>Marketing Designer</td>
|
||||
<td>London</td>
|
||||
<td>66</td>
|
||||
<td>2012/11/27</td>
|
||||
<td>$198,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Paul Byrd</td>
|
||||
<td>Chief Financial Officer (CFO)</td>
|
||||
<td>New York</td>
|
||||
<td>64</td>
|
||||
<td>2010/06/09</td>
|
||||
<td>$725,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gloria Little</td>
|
||||
<td>Systems Administrator</td>
|
||||
<td>New York</td>
|
||||
<td>59</td>
|
||||
<td>2009/04/10</td>
|
||||
<td>$237,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bradley Greer</td>
|
||||
<td>Software Engineer</td>
|
||||
<td>London</td>
|
||||
<td>41</td>
|
||||
<td>2012/10/13</td>
|
||||
<td>$132,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dai Rios</td>
|
||||
<td>Personnel Lead</td>
|
||||
<td>Edinburgh</td>
|
||||
<td>35</td>
|
||||
<td>2012/09/26</td>
|
||||
<td>$217,500</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Position</th>
|
||||
<th>Office</th>
|
||||
<th>Age</th>
|
||||
<th>Start date</th>
|
||||
<th>Salary</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div class="card sale-card">
|
||||
<div class="card-header">
|
||||
<h5>Deals Analytics</h5>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
<div id="deal-analytic-chart" class="chart-shadow" style="height:300px"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,72 @@
|
||||
|
||||
|
||||
|
||||
<form id="form-upload" action="/api/upload">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">업로드할 파일</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="upload-file" type="file" name="files" multiple class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="progress">
|
||||
<div id="progress-upload" class="progress-bar progress-bar-striped progress-bar-primary" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
|
||||
<BR><BR>
|
||||
|
||||
<button class="btn btn-primary waves-effect waves-light" onclick="doAllThingsInSafe('upload', {target: 'just', uploadFiles: uploadFiles})">업로드</button>
|
||||
|
||||
<BR><BR><BR>
|
||||
|
||||
|
||||
|
||||
<div id="file-list" style="display:'block'">
|
||||
<div class="col-md-12">
|
||||
<ul id="ul-files" class="list-view">
|
||||
<li>
|
||||
<div class="card list-view-media">
|
||||
<div class="card-block">
|
||||
<div class="media">
|
||||
<a class="media-left" href="#">
|
||||
<img class="media-object card-list-img" src="/admindek/images/avatar-2.jpg" alt="Generic placeholder image">
|
||||
</a>
|
||||
<div class="media-body text-right">
|
||||
<div class="col-xs-12">
|
||||
<h6 class="d-inline-block">
|
||||
filename : xxxxx.jpg
|
||||
</h6>
|
||||
</div>
|
||||
<p>link url : https://inspond.com/files/30jfdfjqwrjasfj.jpg
|
||||
</p>
|
||||
<div class="m-t-15">
|
||||
<button type="button" data-toggle="tooltip" title="Delete" class="btn btn-mini waves-effect waves-light">
|
||||
<span class="fa fa-trash"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<nav aria-label="...">
|
||||
<ul id="ul-pagination" class="pagination">
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#" tabindex="-1">Previous</a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
||||
<li class="page-item active">
|
||||
<a class="page-link" href="#">2 <span class="sr-only">(current)</span></a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="#">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<p>
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
|
||||
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
||||
</p>
|
||||
14
safekiso-server/modules/base/views/main/widgets/home.ejs
Normal file
14
safekiso-server/modules/base/views/main/widgets/home.ejs
Normal file
@@ -0,0 +1,14 @@
|
||||
<p>
|
||||
폰드원(Pond One)은 인스폰드에서 사용하는 서버 템플릿입니다.
|
||||
node.js, mysql, redis등으로 만들어 졌으며 모듈화에 대단히 신경을 써서
|
||||
생산성을 높이는데 주안점을 두었습니다.
|
||||
폰드원은 다음과 같은 기능을 바로 사용할 수 있습니다.
|
||||
|
||||
</p>
|
||||
<ol>
|
||||
<li>redis 세션을 사용해서 로드 밸런싱 대응이 가능</li>
|
||||
<li>Facebook, Google+, 아이디 패스워드 방식의 가입, 로그인 지원</li>
|
||||
<li>기반 이벤트 : cron, userAdd, userIn, userOut</li>
|
||||
<li>기본 기능 : 관리자 편집 가능한 공지, 자주묻는 질문, 일대일 게시판, 나의 정보</li>
|
||||
<li>다양한 일반적 사용예에 대응하는 웹 UI Kit 사용</li>
|
||||
</ol>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="row m-b-20 received-chat">
|
||||
<div class="col-auto p-r-0">
|
||||
<img src="/images/avatar-2.jpg" alt="user image" class="img-radius img-40">
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="msg">
|
||||
<p class="m-b-0"><%-(hero ? hero.message ? hero.message.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></p>
|
||||
</div>
|
||||
<p class="text-muted m-b-0"><i class="fa fa-clock-o m-r-10"></i><%-(hero ? hero.created ? hero.created.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="row m-b-20 send-chat">
|
||||
<div class="col">
|
||||
<div class="msg">
|
||||
<p class="m-b-0"><%-(hero ? hero.message ? hero.message.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></p>
|
||||
</div>
|
||||
<p class="text-muted m-b-0"><i class="fa fa-clock-o m-r-10"></i><%-(hero ? hero.created ? hero.created.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></p>
|
||||
</div>
|
||||
<div class="col-auto p-l-0">
|
||||
<img src="/images/avatar-3.jpg" alt="user image" class="img-radius img-40">
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-info">
|
||||
<strong><%-(hero ? hero.message ? hero.message.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></strong>
|
||||
<code><%-(hero ? hero.created ? hero.created.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></code>
|
||||
</div>
|
||||
</div>
|
||||
15
safekiso-server/modules/base/views/main/widgets/item-faq.ejs
Normal file
15
safekiso-server/modules/base/views/main/widgets/item-faq.ejs
Normal file
@@ -0,0 +1,15 @@
|
||||
<div class="card list-view-media">
|
||||
<div class="card-block">
|
||||
<div class="media">
|
||||
<a class="media-left" href="#">
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<div class="col-xs-12">
|
||||
<h6 class="d-inline-block" id="preview-faq-question"><%-(hero ? hero.question ? hero.question.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></h6>
|
||||
</div>
|
||||
<BR>
|
||||
<p id="preview-faq-answer"><%-hero ? hero.answer ? hero.answer.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : ''%></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
<div class="col-sm-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 id="preview-notice-title"><%-(hero ? hero.title ? hero.title.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : '')%></h5>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
<p class="content-group" id="preview-notice-detail">
|
||||
|
||||
<%-hero ? hero.detail ? hero.detail.replace(/(?:\r\n|\r|\n)/g, '<BR>') : '' : ''%>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div class="text-right">
|
||||
<span class="text-muted heading-text m-r-5" id="preview-notice-created"><%=hero? hero.created : ''%></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
64
safekiso-server/modules/base/views/main/widgets/my-edit.ejs
Normal file
64
safekiso-server/modules/base/views/main/widgets/my-edit.ejs
Normal file
@@ -0,0 +1,64 @@
|
||||
<div class="col-md-12">
|
||||
<form id="from-profile" autocomplete="off" style="">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">외부 표시 이름<span class="mytooltip tooltip-effect-5"><span class="tooltip-item">(!)</span><span class="tooltip-content clearfix"><span class="tooltip-text">다른 사람들에게 보여지는 이름이므로 신중하게 결정하세요!</span></span></span></label>
|
||||
<div class="col-sm-9"> <input id="my-display-name" type="text" class="form-control" value=""> </div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">프로필 사진 주소</label>
|
||||
<div class="col-sm-9"> <input id="my-photo-url" type="text" class="form-control" value=""> <input id="profile_file" type="file" accept="image/*" class="form-control"> </div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">이메일</label>
|
||||
<div class="col-sm-9"> <input id="my-infos-email" type="text" class="form-control" value=""> </div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">핸드폰</label>
|
||||
<div class="col-sm-9"> <input id="my-infos-mobile" type="text" class="form-control" value=""> </div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">우편번호</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="right-icon-control">
|
||||
<div class="input-group input-group-button">
|
||||
<input id="my-infos-zipcode" type="text" class="form-control" value="">
|
||||
<div class="input-group-append"> <button class="btn btn-primary waves-effect waves-light" type="button" onclick="doAllThingsInSafe('local/op', {target: 'address'})"><i class="feather icon-search"></i></button> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">주소</label>
|
||||
<div class="col-sm-9"> <input id="my-infos-address" type="text" class="form-control" value=""> </div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-3 col-form-label">상세 주소</label>
|
||||
<div class="col-sm-9"> <input id="my-infos-addressDetail" type="text" class="form-control" value=""> </div>
|
||||
</div>
|
||||
<div id="my-password-console" style="display=none;">
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">비밀번호</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="my-password" type="password" class="form-control" placeholder="비밀번호 변경을 원하는 경우 입력하세요." autocomplete="new-password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">비밀번호 확인</label>
|
||||
<div class="col-sm-10">
|
||||
<input id="my-password-confirm" type="password" class="form-control" placeholder="비밀번호 변경을 원하는 경우 입력하세요." autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-primary btn-add-task waves-effect waves-light m-t-10" href="#" onclick="doAllThingsInSafe('update', {target: 'profile'})">저장하고 종료</a>
|
||||
<a class="btn btn-primary btn-add-task waves-effect waves-light m-t-10" href="#" onclick="doAllThingsInSafe('goto', {target: '/my'})">수정 취소</a>
|
||||
</div>
|
||||
37
safekiso-server/modules/base/views/main/widgets/my.ejs
Normal file
37
safekiso-server/modules/base/views/main/widgets/my.ejs
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="col-md-12">
|
||||
<div id="div-profile-bg" class="card">
|
||||
<div class="card-block">
|
||||
<div id="div-profile" class="col-sm-12">
|
||||
<dl class="dl-horizontal row">
|
||||
<dt class="col-sm-3">로그인 방법</dt>
|
||||
<dd id="my-login-provider" class="col-sm-9">id/password</dd>
|
||||
<dt class="col-sm-3">외부 표시 이름 <span class="mytooltip tooltip-effect-5"><span class="tooltip-item">(!)</span><span class="tooltip-content clearfix"><span class="tooltip-text">다른 사람들에게 보여지는 이름이므로 신중하게 결정하세요!</span></span></span></dt>
|
||||
<dd id="my-display-name" class="col-sm-9">졸리(jolly/id)</dd>
|
||||
<dt class="col-sm-3">프로필 사진</dt>
|
||||
<dd id="my-photo-url" class="col-sm-9"><img height="180" width="180" src="/images/no_profile.png" style="object-fit: contain;"></dd>
|
||||
<dt class="col-sm-3">이메일</dt>
|
||||
<dd id="my-infos-email" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">핸드폰번호</dt>
|
||||
<dd id="my-infos-mobile" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">우편번호</dt>
|
||||
<dd id="my-infos-zipcode" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">주소</dt>
|
||||
<dd id="my-infos-address" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">상세 주소</dt>
|
||||
<dd id="my-infos-addressDetail" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">기타</dt>
|
||||
<dd id="my-etc" class="col-sm-9"></dd>
|
||||
<dt class="col-sm-3">최종 수정일</dt>
|
||||
<dd id="my-updated" class="col-sm-9">2020년 9월 1일 화요일 오전 2:13</dd>
|
||||
<dt class="col-sm-3">가입일</dt>
|
||||
<dd id="my-created" class="col-sm-9">2020년 7월 22일 수요일 오후 11:46</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-primary btn-add-task waves-effect waves-light m-t-10" href="#" onclick="doAllThingsInSafe('goto', {target: '/my/edit'})">정보 수정</a>
|
||||
<a class="btn btn-danger btn-add-task waves-effect waves-light m-t-10" href="#" onclick="doAllThingsInSafe('withdrawal', {})">서비스 탈퇴하기</a>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class="col-md-12">
|
||||
<div class="mail-body">
|
||||
<div class="mail-body-content email-read">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 id="note-title">코로나19 확산 방지를 위한 방문 면회 제한에 대한 안내</h5>
|
||||
<h6 id="note-updated" class="float-right">08:23 AM</h6>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
<div class="media m-b-20">
|
||||
<div class="media-left photo-table">
|
||||
<a href="#">
|
||||
<img class="media-object img-radius" src="/images/avatar-3.jpg" alt="E-mail User">
|
||||
</a>
|
||||
</div>
|
||||
<div class="media-body photo-contant">
|
||||
<a href="#">
|
||||
<h6 id="note-sender" class="user-name txt-primary">졸리 행복한 데이케어 센터</h6>
|
||||
</a>
|
||||
<div>
|
||||
<h6 class="email-welcome-txt"></h6>
|
||||
<p id="note-content" class="email-content">
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div id="note-attachments" class="m-t-15">
|
||||
<i class="icofont icofont-clip f-20 m-r-10"></i>Attachments <b>(3)</b>
|
||||
<div class="row mail-img m-b-20">
|
||||
<div class="col-sm-4 col-md-2 col-xs-12">
|
||||
<a href="#"><img class="card-img-top img-fluid img-thumbnail" src="/images/card-block/card1.jpg" alt="Card image cap"></a>
|
||||
</div>
|
||||
<div class="col-sm-4 col-md-2 col-xs-12">
|
||||
<a href="#"><img class="card-img-top img-fluid img-thumbnail" src="/images/card-block/card2.jpg" alt="Card image cap"></a>
|
||||
</div>
|
||||
<div class="col-sm-4 col-md-2 col-xs-12">
|
||||
<a href="#"><img class="card-img-top img-fluid img-thumbnail" src="/images/card-block/card13.jpg" alt="Card image cap"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<div class="col-md-12">
|
||||
<div class="mail-body">
|
||||
<div class="mail-body">
|
||||
<div class="mail-body-content">
|
||||
<form class="form-material">
|
||||
<div class="form-group form-primary">
|
||||
<input id="note-receivers" type="text" name="footer-email" class="form-control" required="" readonly>
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">수신</label>
|
||||
</div>
|
||||
<div class="form-group form-primary">
|
||||
<input id="note-title" type="text" name="footer-email" class="form-control" required="">
|
||||
<span class="form-bar"></span>
|
||||
<label class="float-label">제목</label>
|
||||
</div>
|
||||
<div id="summernote"></div>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-md-12">
|
||||
<input type="file" id="files" style="display: none" accept="*" multiple>
|
||||
<button onclick="doAllThingsInSafe('local/op', {target: 'file'})" class="btn waves-effect waves-light btn-info btn-round btn-block">첨부할 파일 선택</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="row mail-img m-b-20" id="preview-console">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="text-right m-t-20">
|
||||
<% if (infos.loc === '/note/new') {%>
|
||||
<button class="btn btn-primary" onclick="doAllThingsInSafe('local/upload', {target: 'note:new', cid: getParams['cid'] })">저장하기</button>
|
||||
<%} else {%>
|
||||
<button class="btn btn-primary" onclick="doAllThingsInSafe('local/upload', {target: 'note:edit', cid: getParams['cid']})">저장하기</button>
|
||||
<%} %>
|
||||
</div>
|
||||
</div>
|
||||
59
safekiso-server/modules/base/views/main/widgets/note.ejs
Normal file
59
safekiso-server/modules/base/views/main/widgets/note.ejs
Normal file
@@ -0,0 +1,59 @@
|
||||
<div class="col-md-12">
|
||||
<div class="mail-body">
|
||||
<div class="mail-body-header">
|
||||
</div>
|
||||
<div class="mail-body-content">
|
||||
<div class="table-responsive">
|
||||
<table id="noteListTable" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>보낸이</th>
|
||||
<th>제목</th>
|
||||
<th>첨부파일</th>
|
||||
<th>읽은날</th>
|
||||
<th>보낸날</th>
|
||||
<th>기능</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="read">
|
||||
<td>졸리 행복한 데이케어 센터</td>
|
||||
<td><a href="/note/detail?nid=xxx" class="email-name waves-effect">코로나19 유행으로 인한 방문 면회 제한에 대한 안내</a></td>
|
||||
<td class="email-attch"><i class="icofont icofont-clip"></i></td>
|
||||
<td class="email-time">08:01 AM</td>
|
||||
<td class="email-time">08:01 AM</td>
|
||||
<td>
|
||||
<a href="/note/edit?nid=xxx"><i class="icon feather icon-edit f-w-600 f-16 m-r-15 text-c-green"></i></a>
|
||||
<a href="javascript:;" data-toggle="tooltip" data-html="true" title="name<br>type<br><em>Tooltip</em> <u>with</u> <b>HTML</b>"><i class="icon feather icon-play f-w-600 f-16 m-r-15 text-c-yellow"></i></a>
|
||||
<a href="javascript:;" onclick="doAllThingsInSafe('delete', {target: 'note', hero: 'xxx'})"><i class="icon feather icon-trash-2 f-w-600 f-16 text-c-red"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<nav aria-label="...">
|
||||
<ul id="ul-pagination" class="pagination justify-content-center">
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#" tabindex="-1">Prev</a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
||||
<li class="page-item active">
|
||||
<a class="page-link" href="#">2 <span class="sr-only">(Current)</span></a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="#">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div id="note-button-console" class="col-md-12" style="display:none;">
|
||||
<div class="text-right m-t-20">
|
||||
<button class="btn btn-primary" onclick="doAllThingsInSafe('goto', {target: '/note/new?cid=' + getParams['cid']})">새 노트 작성</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
<%
|
||||
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var hero = list[i]
|
||||
hero.created = moment(hero.created).fromNow()
|
||||
%><%-include(infos.basePath + "/widgets/item-notice", { infos: infos, hero: hero }) %><%
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -0,0 +1,73 @@
|
||||
<p> <strong> 1. Purpose of processing personal information </strong> Inspond Co., Ltd. ('www.inspond.com' or 'www.inspond.com') processes personal information for the following purposes. Do not use it for any purpose other than the purpose.
|
||||
<br>-Confirmation of the customer's intention to sign up for membership, identification of the user by providing service to the customer, authentication, maintenance and management of membership, payment of goods or services, supply of goods or services Supply, shipping, etc.
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 2. Consignment of Personal Information Processing </strong>
|
||||
<br>
|
||||
<br> ① <em class="emphasis"> Inspond Co., Ltd. ('www.inspond.com') </em> In order to process information, we entrust personal information processing as follows: </p> ② <em class="emphasis"> Inspond Co., Ltd. ('www.inspond.com' or 'www.inspond. com ') </em> is prohibited from processing personal information, technical and administrative protection measures, restrictions on reconsignment, management, supervision and damages to trustees in accordance with Article 25 of the Personal Information Protection Act. Responsibilities such as compensation are stated in documents such as contracts and supervised by the trustees for the safe handling of personal information.
|
||||
<br>
|
||||
<br> ③ If the contents of the consignment service or the trustee are changed, this individual will be delayed without delay. We will disclose it through the information processing policy.
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 3. Rights and obligations of data subjects and how to exercise them As a personal data subject, you can exercise the following rights: </strong> </p>
|
||||
<p class='ls2'> ① > ("www.inspond.com" or "www.inspond.com"), at any time, may exercise the following privacy rights:
|
||||
<br> 1. Request to view personal information
|
||||
<br> 2. Error Request to be corrected, etc.
|
||||
<br> 3. Request to delete
|
||||
<br> 4. Request to stop processing </p>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 4. Creating items of personal information to be processed </strong>
|
||||
<br>
|
||||
<br> ① <em class="emphasis"> <Note) Inspond> ('www.inspond.com' or 'www.inspond.com' ) </em> processes the following personal information items: </p>
|
||||
<p class='ls2'> 1
|
||||
<Personal information collected and stored>
|
||||
<br>-Required items: Login ID, payment record, access IP information, cookie, service usage record, access log
|
||||
<br>-Optional: </p>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 5. Destruction of personal information <em class = "emphasis"> Inspond Co., Ltd. ('www.inspond.com') </em> is in principle an individual Destroy information. The procedures, deadlines and methods of destruction are as follows: </strong> </p>
|
||||
<p class='ls2'>-Destruction procedure
|
||||
<br> After the purpose of the purpose, the information entered by the user is transferred to a separate DB ( In case of paper, it will be destroyed after being stored for a certain period of time according to internal policy and other related laws. At this time, the personal information transferred to the DB will not be used for any other purpose unless required by law.
|
||||
<br> -Destroyed users' personal information will be retained if the retention period of personal information has passed. Within 5 days of the end of the period, when the personal information becomes unnecessary, such as achieving the purpose of processing personal information, abolishing the service, terminating the business, etc. Destroy. </p>
|
||||
<p class='ls2'> </p>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 6. Measures to ensure the safety of personal information <em class = "emphasis"> Inspond Co., Ltd. ('www.inspond.com') </em> is required to comply with Article 29 of the Personal Information Protection Act to We are taking the necessary technical, administrative and physical measures. </strong> </p>
|
||||
<p class='ls2'> 1. Minimization and Training of Personal Information Handling Employees
|
||||
<br> We have implemented measures to manage personal information by designating employees who handle personal information and limiting it to the person in charge.
|
||||
<br>
|
||||
<br> 2. Encryption of personal information
|
||||
<br> User's personal information is stored and managed with a password, so only the user can know and important data is a separate security function such as encrypting file and transmission data or using file lock function. Is being used.
|
||||
<br>
|
||||
<br> 3. Restricting access to personal information
|
||||
<br> We are taking necessary measures to control access to personal information by granting, modifying and erasing access to the database system that processes personal information. To control unauthorized access.
|
||||
<br>
|
||||
<br> </p>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 7. Personal Information Protection Officer </strong> </p>
|
||||
<br> ① Note) Inspond ('www.inspond.com' or 'www.inspond.com') is responsible for the processing of personal information. In order to handle complaints and remedy damages related to the processing of personal information, the following personal information protection officer is designated.
|
||||
<P class='ls2'>
|
||||
<br> ▶ Personal Information Protection Officer
|
||||
<br> Name: Kim Jae-soon
|
||||
<br> Title: Personal information manager
|
||||
<br> Title: Director
|
||||
<br> Contact: 010-5027-7214, jolly73@inspond.com,
|
||||
<br> ※ Personal information protection department
|
||||
<br>
|
||||
<br> ▶ Department in charge of privacy protection
|
||||
<br> Department: Development Team
|
||||
<br> Contact person: Jaesun Kim
|
||||
<br> Contact:, jolly73@inspond.com,
|
||||
<br> ② The data subject shall be responsible for all personal information related inquiries, complaints and damages caused by using the service (or business) of Inspond Co., Ltd. (www.inspond.com). You can contact the Privacy Officer and further to the department. Note) Inspond ('www.inspond.com' or 'www.inspond.com') will respond promptly to and respond to inquiries from the data subject. </p>
|
||||
<br>
|
||||
<br>
|
||||
<p class='lh6 bs4'> <strong> 8. Changes to the Privacy Policy </strong> </p>
|
||||
<p> ① This Privacy Policy applies from the effective date. If changes, additions, deletions and corrections are made in accordance with the laws and policies, the changes will be enforced. We will notify you via announcement a day ago. </p>
|
||||
</p>
|
||||
120
safekiso-server/modules/base/views/main/widgets/privacy-ko.ejs
Normal file
120
safekiso-server/modules/base/views/main/widgets/privacy-ko.ejs
Normal file
@@ -0,0 +1,120 @@
|
||||
<ol>
|
||||
<li><strong>개인정보 처리의 목적</strong>
|
||||
<ol>
|
||||
<li><주) 인스폰드>(‘www.inspond.com’이하 ‘www.inspond.com’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.
|
||||
<ol>
|
||||
<li>고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>개인정보처리 위탁</strong>
|
||||
<ol>
|
||||
<li><주) 인스폰드>('www.inspond.com')은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.</li>
|
||||
<li><주) 인스폰드>('www.inspond.com'이하 'www.inspond.com')은(는) 위탁계약 체결시 개인정보 보호법 제25조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.</li>
|
||||
<li>위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>정보주체의 권리, 의무 및 그 행사방법</strong>
|
||||
<ol>
|
||||
<li>정보주체는 <주) 인스폰드>(‘www.inspond.com’이하 ‘www.inspond.com) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.
|
||||
<ol>
|
||||
<li>개인정보 열람 요구</li>
|
||||
<li>오류 등이 있을 경우 정정 요구</li>
|
||||
<li>삭제 요구</li>
|
||||
<li>처리정지 요구</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>처리하는 개인정보의 항목</strong>
|
||||
<ol>
|
||||
<li><주) 인스폰드>('www.inspond.com'이하 'www.inspond.com')은(는) 다음의 개인정보 항목을 처리하고 있습니다.
|
||||
<ol>
|
||||
<li>필수항목 : 로그인ID, 결제기록, 접속 IP 정보, 쿠키, 서비스 이용 기록, 접속 로그</li>
|
||||
<li>선택항목 :</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>개인정보 파기</strong>
|
||||
<ol>
|
||||
<li><주) 인스폰드>('www.inspond.com')은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.
|
||||
<ol>
|
||||
<li>파기 절차
|
||||
<ol>
|
||||
<li>이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>파기 기한
|
||||
<ol>
|
||||
<li><span style="color: rgb(0, 0, 0); font-family: "Malgun Gothic"; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.</span> </li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>개인정보의 안정성 확보 조치</strong>
|
||||
<ol>
|
||||
<li><주) 인스폰드>('www.inspond.com')은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.
|
||||
<ol>
|
||||
<li>개인정보 취급 직원의 최소화 및 교육개인정보 취급 직원의 최소화 및 교육
|
||||
<ol>
|
||||
<li>개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>개인정보의 암호화개인정보의 암호화
|
||||
<ol>
|
||||
<li>이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>개인정보에 대한 접근 제한
|
||||
<ol>
|
||||
<li>개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>개인정보 보호책임자</strong>
|
||||
<ol>
|
||||
<li>주) 인스폰드(‘www.inspond.com’이하 ‘www.inspond.com) 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.
|
||||
<ol>
|
||||
<li>개인정보 보호책임자
|
||||
<p>성명 :김재순</p>
|
||||
<p>직책 :개인정보 관리 책임자</p>
|
||||
<p>직급 :이사</p>
|
||||
<p>연락처 :010-5027-7214,
|
||||
<a href="mailto:jolly73@inspond.com">jolly73@inspond.com</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>개인정보 보호 담당부서</p>
|
||||
<p>부서명 :개발팀</p>
|
||||
<p>담당자 :김재순</p>
|
||||
<p>연락처 :
|
||||
<a href="mailto:jolly73@inspond.com,">jolly73@inspond.com</a>
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>
|
||||
<p>정보주체께서는 주) 인스폰드(‘www.inspond.com’이하 ‘www.inspond.com) 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. 주) 인스폰드(‘www.inspond.com’이하 ‘www.inspond.com) 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<br>
|
||||
<li><strong>개인정보 처리방침 변경</strong>
|
||||
<ol>
|
||||
<li>이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -0,0 +1,40 @@
|
||||
<div class="card chat-card">
|
||||
<div class="card-block">
|
||||
<div id="support-chat">
|
||||
|
||||
<%
|
||||
|
||||
for (var i = 0; i < one2one.length; i++) {
|
||||
var hero = one2one[i]
|
||||
hero.created = moment(hero.created).fromNow()
|
||||
if (hero.type === 'send') {
|
||||
%><%-include(infos.basePath + "/widgets/item-chat-send", { infos: infos, hero: hero }) %><%
|
||||
} else if (hero.type === 'received') {
|
||||
%><%-include(infos.basePath + "/widgets/item-chat-received", { infos: infos, hero: hero }) %><%
|
||||
} else if (hero.type === 'system') {
|
||||
%><%-include(infos.basePath + "/widgets/item-chat-system", { infos: infos, hero: hero }) %><%
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
</div>
|
||||
|
||||
<div class="right-icon-control">
|
||||
<div class="input-group input-group-button">
|
||||
<input id="support-message" type="text" class="form-control" placeholder="문의할 내용을 입력해 주세요.">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary waves-effect waves-light" type="button" onclick="doAllThingsInSafe('insert', {target: 'support:ask'})"><i class="feather icon-message-circle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="text-right">
|
||||
<a href="javascript:void(0);" onclick="doAllThingsInSafe('delete', {target: 'support:ask'})"><i class="feather icon-trash-2 f-w-600 f-16 text-c-red"></i>상담내역 삭제</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,82 @@
|
||||
<div class="card chat-card">
|
||||
<div class="card-block">
|
||||
|
||||
<div id="support-chat" class="col-md-12">
|
||||
|
||||
<div class="row m-b-20 send-chat">
|
||||
<div class="col">
|
||||
<div class="msg">
|
||||
<p class="m-b-0">이건 보낸 채팅, 그러니까 고객이 문의한 내용을 보여 주는 겁니다.</p>
|
||||
</div>
|
||||
<p class="text-muted m-b-0"><i class="fa fa-clock-o m-r-10"></i>2020년 9월 2일 오전 9시 6분</p>
|
||||
</div>
|
||||
<div class="col-auto p-l-0">
|
||||
<img src="/images/avatar-3.jpg" alt="user image" class="img-radius img-40"> 여기에 사용자 이름.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row m-b-20 received-chat">
|
||||
<div class="col-auto p-r-0">
|
||||
<img src="/images/avatar-2.jpg" alt="user image" class="img-radius img-40">관리자 이름
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="msg">
|
||||
<p class="m-b-0">응답한 내용이 나옵니다. </p>
|
||||
</div>
|
||||
<p class="text-muted m-b-0"><i class="fa fa-clock-o m-r-10"></i>2020년 9월 2일 오전 9시 6분</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-info">
|
||||
<strong>이걸로 대화를 종료 합니다. </strong>
|
||||
<code>몇시간 전</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="right-icon-control">
|
||||
<div class="input-group input-group-button">
|
||||
<input id="support-message" type="text" class="form-control" placeholder="답변할 내용을 입력해 주세요.">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary waves-effect waves-light" type="button" onclick="doAllThingsInSafe('insert', {target: 'support:reply'})"><i class="feather icon-message-circle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="text-center">
|
||||
|
||||
|
||||
<div class="col-md-12">
|
||||
<nav aria-label="...">
|
||||
<ul id="ul-pagination" class="pagination justify-content-center">
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#" tabindex="-1">Prev</a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
||||
<li class="page-item active">
|
||||
<a class="page-link" href="#">2 <span class="sr-only">(Current)</span></a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="#">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<%
|
||||
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var hero = list[i]
|
||||
%><%-include(infos.basePath + "/widgets/item-faq", { infos: infos, hero: hero }) %><%
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -0,0 +1,34 @@
|
||||
<dl class="dl-horizontal row">
|
||||
<% if (businessInfo.name !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('업체명')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.name%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.owner !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('대표자')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.owner%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.address !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('주소')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.address%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.phone !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('전화번호')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.phone%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.email !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('이메일')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.email%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.registration_number !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('사업자 등록번호')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.registration_number%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.capp_biz_cd !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('통신판매 번호')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.capp_biz_cd%></dd>
|
||||
<% } %>
|
||||
<% if (businessInfo.note !== '') { %>
|
||||
<dt class="col-sm-3"><%=__('간단 소개')%></dt>
|
||||
<dd class="col-sm-9"><%=businessInfo.note%></dd>
|
||||
<% } %>
|
||||
</dl>
|
||||
43
safekiso-server/modules/base/views/main/widgets/support.ejs
Normal file
43
safekiso-server/modules/base/views/main/widgets/support.ejs
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="col-md-12">
|
||||
<div class="mail-body">
|
||||
<div class="mail-body-header">
|
||||
</div>
|
||||
<div class="mail-body-content">
|
||||
<div class="table-responsive">
|
||||
<table id="supportListTable" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>보낸이</th>
|
||||
<th>최근 내용</th>
|
||||
<th>최근 갱신일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>불만이 많은 졸리</td>
|
||||
<td><a href="/admin/support/detail?sid=xxx" class="email-name waves-effect">도대체 언제 배송되는 겁니까?</a></td>
|
||||
<td class="email-time">08:01 AM</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<nav aria-label="...">
|
||||
<ul id="ul-pagination" class="pagination justify-content-center">
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#" tabindex="-1">Prev</a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">1</a></li>
|
||||
<li class="page-item active">
|
||||
<a class="page-link" href="#">2 <span class="sr-only">(Current)</span></a>
|
||||
</li>
|
||||
<li class="page-item"><a class="page-link" href="#">3</a></li>
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="#">Next</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<p>
|
||||
This page displayed because current location(loc=<%= infos.loc %>, rawLoc=<%= infos.rawLoc %>) is unknown...
|
||||
</p>
|
||||
Reference in New Issue
Block a user