first
This commit is contained in:
1113
modules/admin/theme/kimsq-dark/front.css
Normal file
1113
modules/admin/theme/kimsq-dark/front.css
Normal file
File diff suppressed because it is too large
Load Diff
34
modules/admin/theme/kimsq-dark/front.js
Normal file
34
modules/admin/theme/kimsq-dark/front.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var _isFullSize = false;
|
||||
var _isCodeEdit = false;
|
||||
function editFullSize(id,obj)
|
||||
{
|
||||
if (_isCodeEdit)
|
||||
{
|
||||
_codefullscreen();
|
||||
}
|
||||
else {
|
||||
if (_isFullSize == false)
|
||||
{
|
||||
obj.title = '원래대로';
|
||||
$('#'+id).addClass('rb-fullsize');
|
||||
_isFullSize = true;
|
||||
}
|
||||
else {
|
||||
obj.title = '전체화면';
|
||||
$('#'+id).removeClass('rb-fullsize');
|
||||
_isFullSize = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function goHref_parent(url) {
|
||||
parent.location.href = url;
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
$('[data-tooltip="tooltip"]').tooltip({
|
||||
html: true
|
||||
})
|
||||
$('.js-tooltip').tooltip()
|
||||
})
|
||||
283
modules/admin/theme/kimsq-dark/front.php
Normal file
283
modules/admin/theme/kimsq-dark/front.php
Normal file
@@ -0,0 +1,283 @@
|
||||
|
||||
<header class="navbar navbar-expand fixed-top navbar-dark bg-dark" role="navigation" data-scroll-header>
|
||||
|
||||
<?php if($g['device'] && $module == 'dashboard'):?>
|
||||
<a class="navbar-brand" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.shortcut" style="margin-left:0;">
|
||||
<i class="kf kf-bi-01 fa-lg" style="color:#000;"></i>
|
||||
</a>
|
||||
<?php else:?>
|
||||
<a class="navbar-brand" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard<?php if($g['mobile']&&$_SESSION['pcmode']!='Y'):?>&front=mobile.shortcut<?php endif?>">
|
||||
<span class="badge badge-light"><?php echo $MD['name']?></span>
|
||||
</a>
|
||||
<?php if($module == 'dashboard' && ($front == 'main' || $front == 'mobile.dashboard')):?>
|
||||
<i class="fa fa-cog rb-modal-dashboard js-tooltip d-none" title="대시보드 꾸미기" data-toggle="modal" data-target="#modal_window"></i>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
<div class="navbar-collapse collapse">
|
||||
<?php if($g['device']&&$module=='dashboard'):?>
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li<?php if($front=='mobile.shortcut'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.shortcut">바로가기</a></li>
|
||||
<li<?php if($front=='mobile.dashboard'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.dashboard">대시보드</a></li>
|
||||
<li<?php if($front=='mobile.site'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.site">사이트</a></li>
|
||||
</ul>
|
||||
<?php else:?>
|
||||
<ul class="navbar-nav mr-auto" id="rb-admin-ul-tabs">
|
||||
<?php $_front =explode('_' , $front); ?>
|
||||
<?php $_menuCount=$d['amenu']?count($d['amenu']):0;if(!$nosite&&$_menuCount):?>
|
||||
|
||||
<?php if($_i<=10):?>
|
||||
<?php $_i=1;foreach($d['amenu'] as $_k => $_v):?>
|
||||
<li id="rb-more-tab-<?php echo $_i?>" class="nav-item">
|
||||
<a class="nav-link<?php if($_front[0] == $_k):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=<?php echo $_k ?>">
|
||||
<?php echo $_v ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php $_i++;endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_i>10):?>
|
||||
<li class="nav-item dropdown rb-more-tabs d-block d-sm-none">
|
||||
<a class="nav-link dropdown-toggle" href="#." data-toggle="dropdown">더보기</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<?php $_i=1;foreach($d['amenu'] as $_k => $_v):?>
|
||||
<a id="rb-more-tabs-<?php echo $_i?>" class="dropdown-item<?php if($front == $_k):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=<?php echo $_k?>">
|
||||
<?php echo $_v?>
|
||||
</a>
|
||||
<?php $_i++;endforeach?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
</ul>
|
||||
<?php endif?>
|
||||
|
||||
|
||||
|
||||
<ul class="navbar-nav my-0">
|
||||
|
||||
<?php if($module!='dashboard'):?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($front == '_info'):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=_info">
|
||||
<i class="fa fa-question-circle fa-lg"></i> 안내
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php $exists_bookmark=getDbRows($table['s_admpage'],'memberuid='.$my['uid']." and url='".$g['s'].'/?r='.$r.'&m='.$m.'&module='.$module.'&front='.$front."'")?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<i id="_bookmark_star_" class="fa fa-lg fa-star<?php if($exists_bookmark):?> rb-star-fill text-primary<?php else:?>-o<?php endif?>"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right p-0">
|
||||
<div class="card border-dark rounded-0 mb-0" style="width: 300px">
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1 px-2 bg-white border-secondary">
|
||||
북마크
|
||||
<div>
|
||||
|
||||
<div id="_bookmark_notyet_" class="btn-group btn-group-sm dropdown<?php if($exists_bookmark):?> d-none<?php endif?>">
|
||||
|
||||
<button type="button" class="btn btn-outline-secondary rb-bookmark-add">북마크에 추가</button>
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-body" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div id="rb-bookmark-dropdown1" class="dropdown-menu">
|
||||
<a href="#." class="dropdown-item rb-bookmark-add">북마크에 추가</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a href="#." data-toggle="modal" data-target="#modal_window" class="dropdown-item rb-modal-bookmark">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="_bookmark_already_" class="btn-group btn-group-sm <?php if(!$exists_bookmark):?> d-none<?php endif?>">
|
||||
<button type="button" class="btn btn-light disabled">추가됨</button>
|
||||
<button type="button" class="btn btn-light dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div id="rb-bookmark-dropdown2" class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item b-bookmark-del" href="#">북마크에서 삭제</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item rb-modal-bookmark" href="#" data-toggle="modal" data-target="#modal_window">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="_add_bookmark_" class="list-group list-group-flush rb-scrollbar">
|
||||
<?php $ADMPAGE = getDbArray($table['s_admpage'],'memberuid='.$my['uid'],'*','gid','asc',0,1)?>
|
||||
<?php while($R=db_fetch_array($ADMPAGE)):?>
|
||||
<a href="<?php echo $R['url']?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center" id="_now_bookmark_<?php echo $R['uid']?>">
|
||||
<?php echo $R['name']?>
|
||||
<i class="fa fa-fw fa-file-text-o"></i>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php if(!db_num_rows($ADMPAGE)):?><a class="list-group-item"><i class="fa fa-fw fa-file-text-o"></i>등록된 북마크가 없습니다</a><?php endif?>
|
||||
</div>
|
||||
<div class="card-footer p-0 border-top-0">
|
||||
<a href="#." data-toggle="modal" data-target="#modal_window" class="rb-modal-bookmark btn btn-link btn-block">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<?php if ($my['super'] && !$my['adm_site']): ?>
|
||||
<?php
|
||||
$SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p);
|
||||
$SITEN = db_num_rows($SITES);
|
||||
?>
|
||||
<?php if($SITEN>1 && ($module!='admin' && $module!='project')):?>
|
||||
<li class="nav-item d-none" data-role="siteSelector">
|
||||
<div class="input-group input-group-sm mt-1 ml-2 border border-primary">
|
||||
<div class="input-group-append" style="margin-left: 0;">
|
||||
<a class="input-group-text muted-link" href="<?php echo $g['s']?>/?r=<?php echo $SD['id']?>&m=<?php echo $m?>&pickmodule=site&panel=Y" target="_parent" data-toggle="tooltip" title="사이트관리">
|
||||
<i class="<?php echo $SD['icon']?> fa-lg" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
<select class="form-control custom-select" onchange="goHref_parent('<?php echo $g['s']?>/?m=<?php echo $m?>&pickmodule=<?php echo $module?>&panel=Y&pickfront=<?php echo $front?>&r='+this.value);" style="margin-left: -1px;min-width:100px">
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['id']?>"<?php if($r==$S['id']):?> selected<?php endif?>><?php echo $S['label']?></option>
|
||||
<?php endwhile?>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php else: ?>
|
||||
<?php
|
||||
$SITES = getArrayString($my['adm_site']);
|
||||
$SITEN = $SITES[count];
|
||||
?>
|
||||
<?php if($SITEN>1 && ($module!='admin' && $module!='project')):?>
|
||||
<li class="nav-item d-none" data-role="siteSelector">
|
||||
<div class="input-group input-group-sm mt-1 ml-2 border border-primary">
|
||||
<div class="input-group-append" style="margin-left: 0;">
|
||||
<a class="input-group-text muted-link" href="<?php echo $g['s']?>/?r=<?php echo $_SD['id']?>&m=<?php echo $m?>&pickmodule=site&panel=Y" target="_parent">
|
||||
<i class="<?php echo $SD['icon']?> fa-lg" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
<select class="form-control custom-select" onchange="goHref_parent('<?php echo $g['s']?>/?m=<?php echo $m?>&pickmodule=<?php echo $module?>&panel=Y&pickfront=<?php echo $front?>&r='+this.value);" style="margin-left: -1px;min-width:100px">
|
||||
<?php $_i=0;foreach($SITES['data'] as $val):?>
|
||||
<?php $_SD = getUidData($table['s_site'],$val); ?>
|
||||
<option value="<?php echo $_SD['id']?>"<?php if($r==$_SD['id']):?> selected<?php endif?>><?php echo $_SD['label']?></option>
|
||||
<?php $_i++;endforeach?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php endif; ?>
|
||||
|
||||
</ul>
|
||||
|
||||
</div><!-- /.navbar-collapse -->
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
<main id="rb-admin-page-content">
|
||||
<?php include $g['adm_module'] ?>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
document.body.onload = tabSetting;
|
||||
document.body.onresize = tabSetting;
|
||||
|
||||
<?php if($g['device']):?>
|
||||
$('#bs-example-navbar-collapse-1').on('show.bs.collapse', function () {
|
||||
$("#_navbar_header_").addClass('rb-header-bottom-line');
|
||||
});
|
||||
$('#bs-example-navbar-collapse-1').on('hide.bs.collapse', function () {
|
||||
$("#_navbar_header_").removeClass('rb-header-bottom-line');
|
||||
});
|
||||
getId('_add_bookmark_').style.maxHeight = '205px';
|
||||
<?php endif?>
|
||||
$('#bs-example-navbar-collapse-1 [data-toggle=dropdown]').on('click', function(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
$(this).parent().siblings().removeClass('open');
|
||||
$(this).parent().toggleClass('open');
|
||||
});
|
||||
$(".rb-help-btn").click(function(){
|
||||
$(this).button('toggle');
|
||||
});
|
||||
$('.rb-modal-bookmark').on('click',function() {
|
||||
modalSetting('modal_window','<?php echo getModalLink('&m=admin&module=admin&front=modal.bookmark')?>');
|
||||
});
|
||||
$('.rb-bookmark-add').on('click',function() {
|
||||
frames._action_frame_admin.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&a=bookmark&_addmodule=<?php echo $module?>&_addfront=<?php echo $front?>';
|
||||
});
|
||||
$('.rb-bookmark-del').on('click',function() {
|
||||
frames._action_frame_admin.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&a=bookmark_delete&deltype=hidden&_addmodule=<?php echo $module?>&_addfront=<?php echo $front?>';
|
||||
});
|
||||
});
|
||||
function tabSetting()
|
||||
{
|
||||
<?php if($g['device']):?>
|
||||
$('#bs-example-navbar-collapse-1').removeClass('navbar-collapse');
|
||||
if(document.body.scrollWidth > 750) $('#bs-example-navbar-collapse-1').addClass('navbar-collapse');
|
||||
else $('#bs-example-navbar-collapse-1').removeClass('navbar-collapse');
|
||||
<?php endif?>
|
||||
|
||||
var i;
|
||||
var bodyWidth = document.body.scrollWidth;
|
||||
var allTabnum = <?php echo (int)$_menuCount?>;
|
||||
var showTabnum = allTabnum;
|
||||
var showTabMore = false;
|
||||
|
||||
if (allTabnum > 3)
|
||||
{
|
||||
if (bodyWidth >= 0 && bodyWidth < 360)
|
||||
{
|
||||
showTabnum = 2;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 360 && bodyWidth < 523)
|
||||
{
|
||||
showTabnum = 3;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 523 && bodyWidth < 640)
|
||||
{
|
||||
showTabnum = 4;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 640 && bodyWidth < 750)
|
||||
{
|
||||
showTabnum = 5;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 750 && bodyWidth < 1100)
|
||||
{
|
||||
showTabnum = 8;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 1100 && bodyWidth < 1400)
|
||||
{
|
||||
showTabnum = 10;
|
||||
showTabMore = false;
|
||||
}
|
||||
else if (bodyWidth >= 1400)
|
||||
{
|
||||
showTabnum = allTabnum;
|
||||
showTabMore = false;
|
||||
}
|
||||
}
|
||||
for (i = 1; i <= allTabnum; i++)
|
||||
{
|
||||
$('#rb-more-tab-'+i).removeClass('d-none');
|
||||
$('#rb-more-tabs-'+i).removeClass('d-none');
|
||||
}
|
||||
for (i = showTabnum+1; i <= allTabnum; i++) $('#rb-more-tab-'+i).addClass('d-none');
|
||||
for (i = 0; i <= showTabnum; i++) $('#rb-more-tabs-'+i).addClass('d-none');
|
||||
if (showTabMore == true) $('.rb-more-tabs').removeClass('d-none');
|
||||
else $('.rb-more-tabs').addClass('d-none');
|
||||
}
|
||||
|
||||
// 북마크 dropdown 내부클릭시 dropdown 유지
|
||||
$('.dropdown-body').on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
</script>
|
||||
196
modules/admin/theme/kimsq-dark/login.css
Normal file
196
modules/admin/theme/kimsq-dark/login.css
Normal file
@@ -0,0 +1,196 @@
|
||||
@charset "utf-8";
|
||||
@import url(https://fonts.googleapis.com/earlyaccess/notosanskr.css);
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #343a40 !important;
|
||||
font-family: 'Noto Sans KR', "돋움", dotum, '나눔고딕', 'Nanum Gothic', sans-serif, FontAwesome, kimsq !important;
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
a {
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
.rb-root {
|
||||
display: table;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rb-login {
|
||||
display: table-cell;
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
padding: 10% 0 100px;
|
||||
}
|
||||
|
||||
#rb-login .card {
|
||||
margin: 0 auto 15px;
|
||||
color: #ccc;
|
||||
background-color: rgb(39, 44, 50);
|
||||
border: 1px solid #222;
|
||||
border-radius: 3px;
|
||||
color: #999;
|
||||
box-shadow: 0px 2px 2px #222;
|
||||
}
|
||||
|
||||
#rb-login .card-header h1 {
|
||||
margin-bottom: 0;
|
||||
font-size: 18px
|
||||
}
|
||||
|
||||
#rb-login .card-header a {
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
#rb-login .card-header a:hover {
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
#rb-login .card .form-group label {
|
||||
font-weight: normal;
|
||||
display: block;
|
||||
margin-bottom: 7px
|
||||
}
|
||||
|
||||
#rb-login .form-login .label-link {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
#rb-login .panel .form-control.input-lg {
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
#rb-login .card-footer ul {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
#rb-login .card-foote a {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.form-control,
|
||||
.form-control[readonly] {
|
||||
background-color: rgb(31, 34, 39);
|
||||
color: rgb(171, 175, 181);
|
||||
border-color: rgb(27, 30, 36);
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
/*반응형 설정*/
|
||||
|
||||
@media (min-width: 481px) {
|
||||
#rb-login .card {
|
||||
width: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
/*background-color: #fff !important*/
|
||||
}
|
||||
|
||||
#rb-login {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rb-login .card {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
border-radius: none;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
#rb-login .card-footer {
|
||||
/*background-color: transparent;*/
|
||||
}
|
||||
|
||||
#rb-login h1 {
|
||||
font-size: 20px
|
||||
}
|
||||
|
||||
#rb-login .btn.btn-primary {
|
||||
width: 100%;
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#modal-pwReset {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
#modal-pwReset .modal-header,
|
||||
#modal-pwReset .card-header {
|
||||
background-color: #0069d9;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
#modal-pwReset .modal-content {
|
||||
border-radius: .45rem;
|
||||
}
|
||||
|
||||
#modal-pwReset .nav-tabs .nav-link:focus,
|
||||
#modal-pwReset .nav-tabs .nav-link:hover {
|
||||
border-color: #0069d9 #0069d9 #fff;
|
||||
}
|
||||
|
||||
#modal-pwReset .form-control,
|
||||
#modal-pwReset .form-control[readonly] {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0;
|
||||
color: #495057;
|
||||
}
|
||||
|
||||
.btn-light {
|
||||
color: #24292e;
|
||||
user-select: none;
|
||||
background-color: #eff3f6;
|
||||
background-image: linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%);
|
||||
background-repeat: repeat-x;
|
||||
background-position: -1px -1px;
|
||||
background-size: 110% 110%;
|
||||
border: 1px solid rgba(27, 31, 35, 0.2);
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-light:hover,
|
||||
.btn-light.hover {
|
||||
background-color: #e6ebf1;
|
||||
background-image: linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-position: -.5em;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active,
|
||||
.btn-light:not(:disabled):not(.disabled):active,
|
||||
.show>.btn-light.dropdown-toggle {
|
||||
background-color: #e9ecef;
|
||||
background-image: none;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active:focus,
|
||||
.btn-light:not(:disabled):not(.disabled):active:focus,
|
||||
.show>.btn-light.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
|
||||
}
|
||||
535
modules/admin/theme/kimsq-dark/login.php
Normal file
535
modules/admin/theme/kimsq-dark/login.php
Normal file
@@ -0,0 +1,535 @@
|
||||
<div class="rb-root">
|
||||
<div id="rb-login">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h1>
|
||||
<a href="<?php echo $g['r']?>/">
|
||||
<i class="kf-bi-01"></i>
|
||||
</a>
|
||||
<small>관리자 모드</small>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="loginForm" role="form" name="loginform" id="admin-loginform" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="login">
|
||||
<input type="hidden" name="referer" value="<?php echo $referer ? $referer : $_SERVER['HTTP_REFERER']?>">
|
||||
<input type="hidden" name="usertype" value="admin">
|
||||
<input type="hidden" name="pickgoods" value="<?php echo $pickgoods ?>">
|
||||
<input type="hidden" name="form" value="">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="id" class="control-label">아이디 또는 이메일</label>
|
||||
<input type="text" name="id" class="form-control input-lg" id="id" placeholder="" value="" autofocus required autocapitalize="off" autocorrect="off" tabindex="1">
|
||||
<div class="invalid-feedback mt-2" data-role="idErrorBlock"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pw" class="control-label">비밀번호</label>
|
||||
<input type="password" name="pw" class="form-control input-lg" id="pw" placeholder="" value="" required tabindex="2">
|
||||
<div class="invalid-feedback mt-2" data-role="passwordErrorBlock"></div>
|
||||
</div>
|
||||
|
||||
<div class="custom-control custom-checkbox mb-2">
|
||||
<input type="checkbox" class="custom-control-input" id="login_cookie" name="login_cookie" value="checked" data-toggle="collapse" data-target="#collapsealert">
|
||||
<label class="custom-control-label" for="login_cookie">로그인 상태 유지</label>
|
||||
</div>
|
||||
|
||||
<div class="collapse" id="collapsealert" style="">
|
||||
<div class="alert alert-danger f12 mb-3">
|
||||
개인정보 보호를 위해, 개인 PC에서만 사용해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit" id="rb-submit" data-role="submit" tabindex="3">
|
||||
<span class="not-loading">로그인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 로그인중 ...</span>
|
||||
</button>
|
||||
|
||||
|
||||
<p class="mt-3">
|
||||
<a href="#modal-pwReset" data-toggle="modal">
|
||||
<small>비밀번호를 잊으셨나요?</small>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 모달 : modal-pwReset : 비밀번호 초기화 -->
|
||||
<div class="modal fade" id="modal-pwReset" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document" style="max-width: 400px;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header border-bottom-0 d-flex flex-column" style="">
|
||||
<h5 class="modal-title mx-auto h6">관리자 비밀번호 재설정</h5>
|
||||
</div>
|
||||
|
||||
<?php if ($d['member']['join_byEmail'] || $d['member']['join_byPhone']): ?>
|
||||
<div class="card border-0" style="margin-top: -15px" data-role="confirm_code">
|
||||
|
||||
<div class="card-header">
|
||||
<ul class="nav nav-tabs nav-justified card-header-tabs f14">
|
||||
<?php if ($d['member']['join_byEmail']): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo $d['member']['join_byEmail']?' active':'' ?>" id="tab-email" data-toggle="tab" href="#pane-pw-email">
|
||||
이메일로 받기
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['member']['join_byPhone']): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo ($d['member']['join_byPhone'] && !$d['member']['join_byEmail'])?' active':'' ?>" id="tab-phone" data-toggle="tab" href="#pane-pw-phone">
|
||||
휴대폰으로 받기
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card-body ">
|
||||
|
||||
<div class="tab-content text-center">
|
||||
<div class="tab-pane <?php echo $d['member']['join_byEmail']?' show active':'' ?>" id="pane-pw-email" role="tabpanel" aria-labelledby="tab-email">
|
||||
|
||||
<div class="input-group input-group-lg mt-3">
|
||||
<input type="email" class="form-control" name="email" placeholder="이메일 주소" tabindex="1" autocorrect="off" autocapitalize="off" required value="">
|
||||
<div class="invalid-tooltip" data-role="emailErrorBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-act="send_code" data-type="email" data-device="desktop">
|
||||
<span class="not-loading">다음</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-none mt-3" data-role="verify_email_area">
|
||||
<small class="form-text text-success my-3">
|
||||
인증번호를 발송했습니다.(유효시간 <?php echo $d['member']['join_keyexpire'] ?>분)
|
||||
<span data-role="countdown" data-email-countdown="">[00:00]</span><br>
|
||||
위 메일로 발송된 6자리 인증번호를 입력해 주세요.<br>
|
||||
인증번호가 오지 않으면 입력하신 정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
|
||||
<div class="input-group input-group-lg">
|
||||
<input type="number" class="form-control" name="confirm_email_code" data-role="confirm_email_code" placeholder="인증번호 입력">
|
||||
<div class="invalid-tooltip" data-role="emailCodeBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary" type="button" data-act="confirm_code" data-type="email" data-device="desktop">
|
||||
<span class="not-loading">확인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.d-none -->
|
||||
|
||||
</div><!-- /.tab-pane -->
|
||||
<div class="tab-pane <?php echo ($d['member']['join_byPhone'] && !$d['member']['join_byEmail'])?' show active':'' ?>" id="pane-pw-phone" role="tabpanel" aria-labelledby="tab-phone">
|
||||
|
||||
<div class="input-group input-group-lg mt-3">
|
||||
<input type="tel" class="form-control" name="phone" placeholder="휴대폰 번호" tabindex="1" autocorrect="off" autocapitalize="off" required>
|
||||
<div class="invalid-tooltip" data-role="phoneErrorBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-act="send_code" data-type="phone" data-device="desktop">
|
||||
<span class="not-loading">다음</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-none mt-3" data-role="verify_phone_area">
|
||||
<small class="form-text text-success my-3">
|
||||
인증번호를 발송했습니다.(유효시간 <?php echo $d['member']['join_keyexpire'] ?>분)
|
||||
<span data-role="countdown" data-phone-countdown="">[00:00]</span><br>
|
||||
위 휴대폰으로 발송된 6자리 인증번호를 입력해 주세요.<br>
|
||||
인증번호가 오지 않으면 입력하신 정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
|
||||
<div class="input-group input-group-lg">
|
||||
<input type="number" class="form-control" name="confirm_phone_code" data-role="confirm_phone_code" placeholder="인증번호 입력">
|
||||
<div class="invalid-tooltip" data-role="phoneCodeBlock">인증번호를 입력해주세요.</div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary" type="button" data-act="confirm_code" data-type="phone" data-device="desktop">
|
||||
<span class="not-loading">확인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.d-none -->
|
||||
|
||||
</div><!-- /.tab-pane -->
|
||||
|
||||
</div><!-- /.tab-content -->
|
||||
|
||||
<ul class="list-unstyled f13 text-muted mt-4 mb-1">
|
||||
<li>본인인증을 통해 비밀번호를 재설정 하실 수 있습니다.</li>
|
||||
<li>인증번호를 받을 곳을 선택해 주세요.</li>
|
||||
<li>비밀번호는 암호화 저장되어 분실 시 찾아드릴 수 없습니다.</li>
|
||||
</ul>
|
||||
|
||||
</div><!-- /.card-body tab-content-->
|
||||
</div><!-- /.card -->
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="card d-none" data-role="change_pw">
|
||||
<div class="card-body">
|
||||
<form id="pwResetForm" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="member">
|
||||
<input type="hidden" name="a" value="pw_reset">
|
||||
<input type="hidden" name="act" value="change_pw">
|
||||
<input type="hidden" name="device" value="desktop">
|
||||
<input type="hidden" name="code" value="">
|
||||
<input type="hidden" name="target" value="">
|
||||
<input type="hidden" name="type" value="">
|
||||
<input type="hidden" name="check_pw1" value="0">
|
||||
<input type="hidden" name="check_pw2" value="0">
|
||||
<input type="hidden" name="usertype" value="admin">
|
||||
|
||||
<div class="form-group position-relative">
|
||||
<label>비밀번호(6~16자리)</label>
|
||||
<input type="password" class="form-control form-control-lg" name="pw1" placeholder="" autocorrect="off" autocapitalize="off" data-role="pw1">
|
||||
<div class="invalid-tooltip" data-role="pw1CodeBlock" id="pw1-feedback"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group position-relative">
|
||||
<label>비밀번호 재입력</label>
|
||||
<input type="password" class="form-control form-control-lg" name="pw2" placeholder="" autocorrect="off" autocapitalize="off" data-role="pw2">
|
||||
<div class="invalid-tooltip" data-role="pw2CodeBlock" id="pw2-feedback"></div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 mb-3">
|
||||
<button type="submit" class="btn btn-outline-primary btn-lg btn-block" data-role="submit">
|
||||
<span class="not-loading">변경하기</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 변경중 ...</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
|
||||
|
||||
|
||||
<div class="modal-footer justify-content-center py-2">
|
||||
<button type="button" class="btn btn-link muted-link" data-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- https://github.com/hilios/jQuery.countdown -->
|
||||
<?php getImport('jquery.countdown','jquery.countdown.min','2.2.0','js')?>
|
||||
|
||||
<script>
|
||||
|
||||
var modal_pwReset = $('#modal-pwReset')
|
||||
|
||||
|
||||
$(function () {
|
||||
|
||||
$('#admin-loginform').submit(function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true);
|
||||
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
// 로그인 에러 흔적 초기화
|
||||
$("#admin-loginform").find('.form-control').keyup(function() {
|
||||
$(this).removeClass('is-invalid')
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
function doPwCountdown(type) {
|
||||
modal_pwReset.find('[data-'+type+'-countdown]').each(function() {
|
||||
var $this = $(this), finalDate = $(this).data(type+'-countdown');
|
||||
$this.html('');
|
||||
$this.countdown(finalDate, function(event) {
|
||||
$this.html('['+event.strftime('%M:%S')+']');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function pwResetCheck(obj,layer) {
|
||||
var f = document.getElementById('pwResetForm');
|
||||
if (!obj.value)
|
||||
{
|
||||
obj.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj.name == 'pw1') {
|
||||
f.classList.remove('was-validated');
|
||||
|
||||
if (f.pw1.value.length < 6 || f.pw1.value.length > 16) {
|
||||
|
||||
f.check_pw1.value = '0';
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
getId(layer).innerHTML = '영문/숫자 2개 이상의 조합으로 최소 6~16자로 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz")) {
|
||||
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"1234567890")) {
|
||||
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
f.pw1.classList.add('is-valid');
|
||||
f.pw1.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
f.check_pw1.value = '1';
|
||||
}
|
||||
|
||||
if (obj.name == 'pw2') {
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
if (f.pw1.value != f.pw2.value)
|
||||
{
|
||||
getId(layer).innerHTML = '비밀번호가 일치하지 않습니다.';
|
||||
f.classList.remove('was-validated');
|
||||
obj.focus();
|
||||
f.check_pw2.value = '0';
|
||||
return false;
|
||||
}
|
||||
|
||||
f.pw2.classList.add('is-valid');
|
||||
f.pw2.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
|
||||
f.check_pw2.value = '1';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
|
||||
modal_pwReset.on('show.bs.modal', function (e) {
|
||||
var modal = modal_pwReset
|
||||
|
||||
//화면 초기화
|
||||
modal.find('[data-role="confirm_code"]').removeClass('d-none')
|
||||
modal.find('[data-role="change_pw"]').addClass('d-none')
|
||||
modal.find('#tab-email').tab('show')
|
||||
modal.find('[data-act="send_code"]').prop("disabled",false)
|
||||
modal.find('[data-act="send_code"] .not-loading').text('다음')
|
||||
modal.find('[data-act="confirm_code"]').prop("disabled",false)
|
||||
modal.find('[type="number"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="email"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="phone"]').val('').removeClass('is-invalid')
|
||||
modal.find('[data-role="verify_email_area"]').addClass('d-none')
|
||||
modal.find('[data-role="verify_phone_area"]').addClass('d-none')
|
||||
modal.find('[data-role="pw1"]').val('').removeClass('is-invalid')
|
||||
modal.find('[data-role="pw2"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="check_pw1"]').val(0)
|
||||
modal.find('[name="check_pw2"]').val(0)
|
||||
modal.find('[data-role="submit"]').prop("disabled",false)
|
||||
})
|
||||
modal_pwReset.on('shown.bs.modal', function (e) {
|
||||
var modal = modal_pwReset
|
||||
modal.find('[name="email"]').trigger('focus')
|
||||
|
||||
})
|
||||
modal_pwReset.find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid') //에러 발생후 다시 입력 시도시에 에러 흔적 초기화
|
||||
});
|
||||
|
||||
//비밀번호 유용성 체크
|
||||
modal_pwReset.find('[data-role="change_pw"] input').keyup(function(){
|
||||
var modal = modal_pwReset
|
||||
var item = $(this).data('role')
|
||||
var item_pw_check = modal.find('[name=check_pw]').val()
|
||||
if (item =='pw1') {
|
||||
element = document.querySelector('[name="pw1"]');
|
||||
pwResetCheck(element,'pw1-feedback')
|
||||
}
|
||||
if (item =='pw2') {
|
||||
element = document.querySelector('[name="pw2"]');
|
||||
pwResetCheck(element,'pw2-feedback')
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
modal_pwReset.find('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var pane = $(this).attr('id')
|
||||
if (pane=='tab-email') modal_pwReset.find('[name="email"]').focus()
|
||||
if (pane=='tab-phone') modal_pwReset.find('[name="phone"]').focus()
|
||||
})
|
||||
|
||||
// 본인인증 코드발송
|
||||
modal_pwReset.on('click','[data-act="send_code"]',function(){
|
||||
var modal = modal_pwReset
|
||||
var button = $(this)
|
||||
var act = 'send_code'
|
||||
var type = button.attr('data-type')
|
||||
var device = button.attr('data-device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = modal.find('[name="email"]')
|
||||
var _input = document.querySelector('#modal-pwReset [name="email"]');
|
||||
var target = input.val()
|
||||
var msg = modal.find('[data-role="emailErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 이메일 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일을 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkEmailAddr(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = modal.find('[name="phone"]')
|
||||
var _input = document.querySelector('#modal-pwReset [name="phone"]');
|
||||
var target = input.val()
|
||||
var msg = modal.find('[data-role="phoneErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 휴대폰번호 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkPhoneNumber(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
button.attr('disabled',true) //버튼 로딩처리
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&target='+target+'&device='+device+'&usertype=admin'
|
||||
|
||||
getIframeForAction();
|
||||
|
||||
//modal.find('[data-act=confirm_code]').attr('data-type',type);
|
||||
//modal.find('[type=number]').attr('data-role','confirm_'+type+'_code').attr('name','confirm_'+type+'_code');
|
||||
//modal.find('.invalid-tooltip').attr('data-role',type+'CodeBlock');
|
||||
modal.find('[data-role=countdown]').text('');
|
||||
|
||||
modal.find('[data-role="target"]').text(target)
|
||||
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 본인인증 코드확인
|
||||
modal_pwReset.on('click','[data-act="confirm_code"]',function(){
|
||||
var modal = modal_pwReset
|
||||
var button = $(this)
|
||||
var act = 'confirm_code'
|
||||
var type = button.data('type')
|
||||
var device = button.data('device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = modal.find('[name="confirm_email_code"]')
|
||||
var code = input.val()
|
||||
var msg = modal.find('[data-role="emailCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = modal.find('[name="confirm_phone_code"]')
|
||||
var code = input.val()
|
||||
var msg = modal.find('[data-role="phoneCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
button.attr('disabled',true) //버튼 로딩처리
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&code='+code+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 비밀번호 변경
|
||||
$('#pwResetForm').submit( function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
|
||||
if (f.check_pw1.value == '0' || f.check_pw2.value == '0') {
|
||||
return false;
|
||||
}
|
||||
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true); //버튼 로딩처리
|
||||
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
899
modules/admin/theme/kimsq-white/front.css
Normal file
899
modules/admin/theme/kimsq-white/front.css
Normal file
@@ -0,0 +1,899 @@
|
||||
@charset "utf-8";
|
||||
|
||||
/* ------------------ 공통사항 --------------------*/
|
||||
body {
|
||||
padding-top: 3.5rem;
|
||||
background-color: #fff !important;
|
||||
padding: 0;
|
||||
font-family: 'NotoSans', '돋움', dotum, sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 1.3rem;
|
||||
color: #222;
|
||||
letter-spacing: -.5px;
|
||||
overflow: -moz-scrollbars-vertical;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #6698e8;
|
||||
}
|
||||
|
||||
code {
|
||||
background: transparent
|
||||
}
|
||||
|
||||
#rb-body.lang-en {
|
||||
font-family: 'NotoSans', Helvetica, Arial, 'Liberation Sans', sans-serif;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#rb-admin-page-content {
|
||||
padding-top: 3.34rem
|
||||
}
|
||||
|
||||
.navbar {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1);
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
|
||||
#rb-bookmark-dropdown1 {
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
left: -24px;
|
||||
background: #fff;
|
||||
border: #cccccc solid 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#rb-bookmark-dropdown2 {
|
||||
position: absolute;
|
||||
top: 34px;
|
||||
left: -71px;
|
||||
background: #fff;
|
||||
border: #cccccc solid 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
/* ------------------ navbar --------------------*/
|
||||
|
||||
|
||||
/* ------------------ tabs --------------------*/
|
||||
.navbar {
|
||||
font-family: 'NotoSans', sans-serif, '돋움', dotum, sans-serif;
|
||||
}
|
||||
|
||||
.navbar .navbar-nav {
|
||||
border-bottom: 0
|
||||
}
|
||||
|
||||
.navbar .navbar-nav .nav-item {
|
||||
/*margin-right: 20px;*/
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.navbar .navbar-nav li a.nav-link {
|
||||
position: relative;
|
||||
color: rgba(0, 0, 0, .5) !important;
|
||||
font-size: 15px
|
||||
}
|
||||
|
||||
.navbar-nav>li a.nav-link.active::before,
|
||||
.navbar-nav>li a.nav-link.active:focus::before,
|
||||
.navbar-nav>li a.nav-link.active:hover::before {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
left: 0;
|
||||
bottom: -9px;
|
||||
content: '';
|
||||
background-color: #007bff;
|
||||
color: rgba(0, 0, 0, .9);
|
||||
;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sidebar
|
||||
*/
|
||||
|
||||
.sidebar {
|
||||
position: fixed;
|
||||
top: 3.4rem;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1000;
|
||||
padding: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
/* Scrollable contents if viewport is shorter than content. */
|
||||
border-right: 1px solid rgba(0, 0, 0, .1);
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.sidebar.sidebar-right {
|
||||
left: auto;
|
||||
right: 0;
|
||||
border-right: none;
|
||||
border-left: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.sidebar .nav {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.sidebar .nav-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sidebar .nav-item+.nav-item {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.sidebar .nav-link {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.sidebar .card {
|
||||
margin-bottom: 0;
|
||||
border-radius: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
.sidebar .card~.card {
|
||||
margin-top: -1px
|
||||
}
|
||||
|
||||
.sidebar .card-body {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.sidebar .list-group-item.active {
|
||||
border-width: 1px !important;
|
||||
border-style: solid !important;
|
||||
border-color: rgb(0, 123, 255) !important;
|
||||
border-image: initial !important;
|
||||
}
|
||||
|
||||
.sidebar .list-group-item.active .badge-dark {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ------------------ button --------------------*/
|
||||
|
||||
/*본문*/
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
.h1,
|
||||
.h2,
|
||||
.h3,
|
||||
.h4,
|
||||
.h5,
|
||||
.h6 {
|
||||
font-family: 'NotoSans', sans-serif, '돋움', dotum, sans-serif;
|
||||
margin: 0 0 20px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.h2,
|
||||
h2 {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.h3,
|
||||
h3 {
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
.h4,
|
||||
h4 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.page-body-header {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.page-header {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 9px;
|
||||
margin: 0 0px 20px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1)
|
||||
}
|
||||
|
||||
.page-header h1,
|
||||
.page-header h2,
|
||||
.page-header h3,
|
||||
.page-headerh4,
|
||||
.page-header h5,
|
||||
.page-header h6 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.subnav-item {
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 6px 14px;
|
||||
font-weight: 600;
|
||||
line-height: 20px;
|
||||
color: #586069;
|
||||
border: 1px solid #e1e4e8;
|
||||
}
|
||||
|
||||
.subnav-item+.subnav-item {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.subnav-item:first-child {
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
|
||||
.subnav-item:last-child {
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
/* ------------------ icon panel --------------------*/
|
||||
|
||||
/*color*/
|
||||
|
||||
.text-gray {
|
||||
color: #586069 !important;
|
||||
}
|
||||
|
||||
.text-gray-light {
|
||||
color: #959da5 !important;
|
||||
}
|
||||
|
||||
.text-gray-dark {
|
||||
color: #24292e !important;
|
||||
}
|
||||
|
||||
.link-gray {
|
||||
color: #586069 !important;
|
||||
}
|
||||
|
||||
.link-gray-dark {
|
||||
color: #24292e !important;
|
||||
}
|
||||
|
||||
.link-gray-dark:hover {
|
||||
color: #0366d6 !important;
|
||||
}
|
||||
|
||||
.border-top {
|
||||
border-top: 1px #e1e4e8 solid !important;
|
||||
}
|
||||
|
||||
.border-gray-light {
|
||||
border-color: #eaecef !important;
|
||||
}
|
||||
|
||||
/*form*/
|
||||
|
||||
.col-form-label-lg {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.form-control[readonly] {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.form-control-plaintext {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
background-color: #343b43;
|
||||
color: #999;
|
||||
border: 1px solid #222;
|
||||
}
|
||||
|
||||
.input-group-text {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
/* tab */
|
||||
.nav-tabs {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link:hover {}
|
||||
|
||||
.nav-tabs .nav-link.active {}
|
||||
|
||||
.nav-tabs .nav-link.active:first-child {}
|
||||
|
||||
|
||||
|
||||
/* ------------------ table --------------------*/
|
||||
.table {}
|
||||
|
||||
.table thead th {
|
||||
border-bottom: none;
|
||||
padding: .75rem;
|
||||
line-height: 1;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.table thead th,
|
||||
.table tbody td {
|
||||
white-space: nowrap !important;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.table-bordered td,
|
||||
.table-bordered th {
|
||||
border: 1px solid rgba(0,0,0,.125);
|
||||
}
|
||||
|
||||
.table-active,
|
||||
.table-active>td,
|
||||
.table-active>th {
|
||||
background-color: #007bff;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.table tbody .table-active td .badge-dark,
|
||||
.table tbody .table-active td a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#rb-body .card .card-header.rb-icon .icon {
|
||||
float: left;
|
||||
border-right: 1px solid #c9c9c9;
|
||||
width: 41px;
|
||||
height: 100%;
|
||||
box-shadow: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/*comment*/
|
||||
.form-control,
|
||||
.input-group-lg>.form-control {
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.border-default {
|
||||
border-color: #222
|
||||
}
|
||||
|
||||
.btn.btn-block {
|
||||
border-radius: 4rem
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ------------------ 즐겨찾기 --------------------*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ------------------ 토글 레이어 --------------------*/
|
||||
#bs-example-navbar-collapse-1 .rb-toggle-layer {
|
||||
padding: 0;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
#bs-example-navbar-collapse-1 .rb-toggle-layer .panel {
|
||||
margin: 0;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#bs-example-navbar-collapse-1 .rb-toggle-layer .panel-title {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
#bs-example-navbar-collapse-1 .rb-toggle-layer .list-group {
|
||||
max-height: 450px;
|
||||
max-height: calc(100vh - 300px);
|
||||
max-height: -moz-calc(100vh - 300px);
|
||||
max-height: -webkit-calc(100vh - 300px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#bs-example-navbar-collapse-1 .rb-toggle-layer .panel-footer a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
color: #777
|
||||
}
|
||||
|
||||
.rb-box {
|
||||
position: relative;
|
||||
background-color: #444;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
padding: 8px;
|
||||
margin: 4px;
|
||||
width: 70px;
|
||||
height: 65px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 1px 2px #222 !important;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------ 풀사이즈 편집 --------------------*/
|
||||
.rb-fullsize {
|
||||
position: fixed;
|
||||
z-index: 1000000;
|
||||
top: -35px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0 width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.rb-fullsize textarea {
|
||||
position: fixed;
|
||||
top: 47px;
|
||||
left: 3px;
|
||||
width: 99.5%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.rb-fullsize .rb-submit button {
|
||||
position: fixed;
|
||||
bottom: 5px;
|
||||
width: 99%;
|
||||
height: 40px;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
margin: 0 5px 0 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* CodeMirror */
|
||||
.CodeMirror .CodeMirror-scroll {
|
||||
line-height: 1.5 !important;
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
/* ------------------ footer --------------------*/
|
||||
.rb-admin-footer {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 0;
|
||||
margin-top: 0;
|
||||
color: #777;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------ modal close --------------------*/
|
||||
.rb-close-white {
|
||||
color: #fff;
|
||||
text-shadow: 0 1px 0 #ffffff;
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
/* ------------------ 모바일 디바이스 접속 --------------------*/
|
||||
#rb-body.rb-device-connect {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#rb-body.rb-device-connect .rb-navbar-nav {
|
||||
margin-top: 36px;
|
||||
}
|
||||
|
||||
#rb-body.rb-device-connect .mobile-tabs li {
|
||||
width: 33.3333%;
|
||||
}
|
||||
|
||||
/* ------------------ 기타 --------------------*/
|
||||
#rb-body .rb-modal-dashboard {
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
top: 8px;
|
||||
}
|
||||
|
||||
#rb-body.rb-device-connect .rb-modal-dashboard {
|
||||
font-size: 14px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#rb-body.rb-device-connect .rb-modal-dashboard i {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
/* ------------------ 미디어쿼리 --------------------*/
|
||||
@media (min-width: 768px) {
|
||||
#bs-example-navbar-collapse-1 .rb-notifications-layer {
|
||||
width: 260px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
#rb-body select.form-control {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#rb-body .input-group select.form-control {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width:992px) {
|
||||
#rb-body .rb-navbar-nav>li:first-child>a {
|
||||
-webkit-border-radius: 4px 0 0 0;
|
||||
-moz-border-radius: 4px 0 0 0;
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
|
||||
#rb-body .rb-navbar-nav>li:last-child>a {
|
||||
-webkit-border-radius: 1px 4px 0 0;
|
||||
-moz-border-radius: 1px 4px 0 0;
|
||||
border-radius: 1px 4px 0 0;
|
||||
}
|
||||
|
||||
#rb-body .tab-content {
|
||||
-webkit-border-radius: 0 0 4px 4px;
|
||||
-moz-border-radius: 0 0 4px 4px;
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
|
||||
#rb-body .rb-navbar-nav.rb-item-03 li {
|
||||
width: 33.3%;
|
||||
}
|
||||
|
||||
#rb-body .rb-navbar-nav.rb-item-04 li {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*테마*/
|
||||
/*content*/
|
||||
|
||||
/*table*/
|
||||
|
||||
|
||||
|
||||
/*component*/
|
||||
|
||||
/* modal */
|
||||
|
||||
.modal .modal-header {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1);
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.modal .modal-header .close {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.modal .modal-body iframe body {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
border-top: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
/*list-group*/
|
||||
|
||||
|
||||
/*badge*/
|
||||
.badge-dark {
|
||||
color: #586069;
|
||||
background-color: rgba(27, 31, 35, .08);
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
/*button*/
|
||||
.btn {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
/* padding: 6px 12px; */
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.btn-light:focus,
|
||||
.btn-light.focus {
|
||||
box-shadow: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
|
||||
}
|
||||
|
||||
[data-toggle="buttons"].btn-group .btn-light {
|
||||
color: #999;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
[data-toggle="buttons"].btn-group .btn-light.active {
|
||||
color: #fff !important;
|
||||
background-color: #0366d6 !important;
|
||||
border-color: #0366d6;
|
||||
}
|
||||
|
||||
.btn-sm {
|
||||
padding: 3px 10px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
|
||||
.btn,
|
||||
[role="button"] {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.btn-light {
|
||||
color: #24292e;
|
||||
user-select: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(27, 31, 35, 0.2);
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.btn-light:hover,
|
||||
.btn-light.hover {
|
||||
background-color: #e6ebf1;
|
||||
background-image: linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-position: -.5em;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active,
|
||||
.btn-light:not(:disabled):not(.disabled):active,
|
||||
.show>.btn-light.dropdown-toggle {
|
||||
background-color: #e9ecef;
|
||||
background-image: none;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active:focus,
|
||||
.btn-light:not(:disabled):not(.disabled):active:focus,
|
||||
.show>.btn-light.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
|
||||
}
|
||||
|
||||
|
||||
.btn-danger {
|
||||
color: #cb2431;
|
||||
border: 1px solid rgba(27, 31, 35, 0.2);
|
||||
background-color: #fafbfc;
|
||||
background-image: linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%);
|
||||
}
|
||||
|
||||
.btn-danger:hover {
|
||||
color: #fff;
|
||||
background-color: #cb2431;
|
||||
background-image: linear-gradient(-180deg, #de4450 0%, #cb2431 90%);
|
||||
border-color: rgba(27, 31, 35, 0.5);
|
||||
}
|
||||
|
||||
.btn-danger:active,
|
||||
.btn-danger.active {
|
||||
color: #fff;
|
||||
background-color: #b5202c;
|
||||
background-image: none;
|
||||
border-color: rgba(27, 31, 35, 0.5);
|
||||
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
|
||||
}
|
||||
|
||||
.btn-danger:disabled,
|
||||
.btn-danger.disabled {
|
||||
color: rgba(203, 36, 49, 0.4);
|
||||
background-color: #eff3f6;
|
||||
background-image: none;
|
||||
border-color: rgba(27, 31, 35, 0.2);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-outline-primary.disabled,
|
||||
.btn-outline-primary:disabled {
|
||||
color: #555;
|
||||
background-color: transparent;
|
||||
border-color: #555;
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
|
||||
|
||||
/*tooltip*/
|
||||
.tooltip-inner {
|
||||
background-color: #0366d6;
|
||||
}
|
||||
|
||||
.tooltip.bs-tooltip-top .arrow::before,
|
||||
.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
|
||||
border-top-color: #0366d6
|
||||
}
|
||||
|
||||
/* input-group */
|
||||
|
||||
/*form*/
|
||||
|
||||
.form-group label {
|
||||
font-size: 13px;
|
||||
font-weight: 300;
|
||||
color: #6c757d
|
||||
}
|
||||
|
||||
.col-form-label {
|
||||
color: #444
|
||||
}
|
||||
|
||||
.custom-checkbox,
|
||||
.custom-radio {
|
||||
/* line-height: 1.85rem; */
|
||||
}
|
||||
|
||||
/*badge*/
|
||||
|
||||
|
||||
/*card*/
|
||||
|
||||
.card-header.p-0 a.d-block {
|
||||
padding: .75rem 1.25rem
|
||||
}
|
||||
|
||||
.card-header.p-0 a.d-block::before {
|
||||
display: inline-block;
|
||||
margin-left: 1rem;
|
||||
margin-right: -.45rem;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
float: right;
|
||||
content: "\f0d7";
|
||||
}
|
||||
|
||||
.card-header.p-0 a.d-block.collapsed::before {
|
||||
content: "\f0da";
|
||||
}
|
||||
|
||||
.card-header.bg-primary {
|
||||
border-bottom: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.card-header,
|
||||
.card-footer {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.card>.list-group:last-child .list-group-item:last-child {
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
/*유틸리티*/
|
||||
.bg-dark {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid #222;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1) !important;
|
||||
}
|
||||
|
||||
.border-left {
|
||||
border-left: 1px solid rgba(0, 0, 0, .1) !important;
|
||||
}
|
||||
|
||||
|
||||
/*tree*/
|
||||
.sidebar .rb-tree {
|
||||
font-family: 'NotoSans','돋움', dotum, sans-serif, FontAwesome;
|
||||
}
|
||||
|
||||
.sidebar .rb-tree li:before {
|
||||
border-left: 1px solid rgba(0, 0, 0, .2) !important;
|
||||
}
|
||||
|
||||
.sidebar .rb-tree li:after {
|
||||
border-top: 1px solid rgba(0, 0, 0, .2) !important;
|
||||
}
|
||||
|
||||
.sidebar .rb-tree .rb-active {
|
||||
color: rgb(0, 123, 255);
|
||||
}
|
||||
|
||||
.sidebar .rb-tree a {}
|
||||
|
||||
.sidebar .rb-tree a u {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/*기본 모듈개별*/
|
||||
#catebody .dd-item .dd-handle {
|
||||
background-color: rgba(0, 0, 0, .03);
|
||||
}
|
||||
|
||||
.sidebar .dd-handle {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/*datepicker 스타일 초기화*/
|
||||
.input-daterange .input-group-addon {
|
||||
width: auto !important;
|
||||
min-width: auto !important;
|
||||
font-weight: normal !important;
|
||||
background-color: #fff;
|
||||
text-align: center !important;
|
||||
text-shadow: none !important;
|
||||
vertical-align: middle !important;
|
||||
border: solid transparent !important;
|
||||
border-width: 1px 0 !important;
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
/* readme */
|
||||
.rb-docs {
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
/* markdown-body */
|
||||
.markdown-body .form-control,
|
||||
.markdown-body {
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
/* 라이선스 */
|
||||
.badge-standard {
|
||||
color: #fff;
|
||||
background-color: #007bff;
|
||||
}
|
||||
.badge-premium {
|
||||
color: #fff;
|
||||
background-color: #563d7c;
|
||||
}
|
||||
34
modules/admin/theme/kimsq-white/front.js
Normal file
34
modules/admin/theme/kimsq-white/front.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var _isFullSize = false;
|
||||
var _isCodeEdit = false;
|
||||
function editFullSize(id,obj)
|
||||
{
|
||||
if (_isCodeEdit)
|
||||
{
|
||||
_codefullscreen();
|
||||
}
|
||||
else {
|
||||
if (_isFullSize == false)
|
||||
{
|
||||
obj.title = '원래대로';
|
||||
$('#'+id).addClass('rb-fullsize');
|
||||
_isFullSize = true;
|
||||
}
|
||||
else {
|
||||
obj.title = '전체화면';
|
||||
$('#'+id).removeClass('rb-fullsize');
|
||||
_isFullSize = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function goHref_parent(url) {
|
||||
parent.location.href = url;
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
$('[data-tooltip="tooltip"]').tooltip({
|
||||
html: true
|
||||
})
|
||||
$('.js-tooltip').tooltip()
|
||||
})
|
||||
283
modules/admin/theme/kimsq-white/front.php
Normal file
283
modules/admin/theme/kimsq-white/front.php
Normal file
@@ -0,0 +1,283 @@
|
||||
|
||||
<header class="navbar navbar-expand fixed-top navbar-dark bg-dark" role="navigation" data-scroll-header>
|
||||
|
||||
<?php if($g['device'] && $module == 'dashboard'):?>
|
||||
<a class="navbar-brand" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.shortcut" style="margin-left:0;">
|
||||
<i class="kf kf-bi-01 fa-lg" style="color:#000;"></i>
|
||||
</a>
|
||||
<?php else:?>
|
||||
<a class="navbar-brand" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard<?php if($g['mobile']&&$_SESSION['pcmode']!='Y'):?>&front=mobile.shortcut<?php endif?>">
|
||||
<span class="badge badge-light"><?php echo $MD['name']?></span>
|
||||
</a>
|
||||
<?php if($module == 'dashboard' && ($front == 'main' || $front == 'mobile.dashboard')):?>
|
||||
<i class="fa fa-cog rb-modal-dashboard js-tooltip d-none" title="대시보드 꾸미기" data-toggle="modal" data-target="#modal_window"></i>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
<div class="navbar-collapse collapse">
|
||||
<?php if($g['device']&&$module=='dashboard'):?>
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li<?php if($front=='mobile.shortcut'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.shortcut">바로가기</a></li>
|
||||
<li<?php if($front=='mobile.dashboard'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.dashboard">대시보드</a></li>
|
||||
<li<?php if($front=='mobile.site'):?> class="active"<?php endif?>><a href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=admin&module=dashboard&front=mobile.site">사이트</a></li>
|
||||
</ul>
|
||||
<?php else:?>
|
||||
<ul class="navbar-nav mr-auto" id="rb-admin-ul-tabs">
|
||||
<?php $_front =explode('_' , $front); ?>
|
||||
<?php $_menuCount=$d['amenu']?count($d['amenu']):0;if(!$nosite&&$_menuCount):?>
|
||||
|
||||
<?php if($_i<=10):?>
|
||||
<?php $_i=1;foreach($d['amenu'] as $_k => $_v):?>
|
||||
<li id="rb-more-tab-<?php echo $_i?>" class="nav-item">
|
||||
<a class="nav-link<?php if($_front[0] == $_k):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=<?php echo $_k ?>">
|
||||
<?php echo $_v ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php $_i++;endforeach?>
|
||||
<?php endif?>
|
||||
|
||||
<?php if($_i>10):?>
|
||||
<li class="nav-item dropdown rb-more-tabs d-block d-sm-none">
|
||||
<a class="nav-link dropdown-toggle" href="#." data-toggle="dropdown">더보기</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<?php $_i=1;foreach($d['amenu'] as $_k => $_v):?>
|
||||
<a id="rb-more-tabs-<?php echo $_i?>" class="dropdown-item<?php if($front == $_k):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=<?php echo $_k?>">
|
||||
<?php echo $_v?>
|
||||
</a>
|
||||
<?php $_i++;endforeach?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php endif?>
|
||||
|
||||
</ul>
|
||||
<?php endif?>
|
||||
|
||||
|
||||
|
||||
<ul class="navbar-nav my-0">
|
||||
|
||||
<?php if($module!='dashboard'):?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php if($front == '_info'):?> active<?php endif?>" href="<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&module=<?php echo $module?>&front=_info">
|
||||
<i class="fa fa-question-circle fa-lg"></i> 안내
|
||||
</a>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php $exists_bookmark=getDbRows($table['s_admpage'],'memberuid='.$my['uid']." and url='".$g['s'].'/?r='.$r.'&m='.$m.'&module='.$module.'&front='.$front."'")?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<i id="_bookmark_star_" class="fa fa-lg fa-star<?php if($exists_bookmark):?> rb-star-fill text-primary<?php else:?>-o<?php endif?>"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right p-0">
|
||||
<div class="card border-dark rounded-0 mb-0" style="width: 300px">
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1 px-2 bg-white border-secondary">
|
||||
북마크
|
||||
<div>
|
||||
|
||||
<div id="_bookmark_notyet_" class="btn-group btn-group-sm dropdown<?php if($exists_bookmark):?> d-none<?php endif?>">
|
||||
|
||||
<button type="button" class="btn btn-outline-secondary rb-bookmark-add">북마크에 추가</button>
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-body" data-toggle="dropdown">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div id="rb-bookmark-dropdown1" class="dropdown-menu">
|
||||
<a href="#." class="dropdown-item rb-bookmark-add">북마크에 추가</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a href="#." data-toggle="modal" data-target="#modal_window" class="dropdown-item rb-modal-bookmark">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="_bookmark_already_" class="btn-group btn-group-sm <?php if(!$exists_bookmark):?> d-none<?php endif?>">
|
||||
<button type="button" class="btn btn-light disabled">추가됨</button>
|
||||
<button type="button" class="btn btn-light dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
|
||||
<span class="sr-only">Toggle Dropdown</span>
|
||||
</button>
|
||||
<div id="rb-bookmark-dropdown2" class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item b-bookmark-del" href="#">북마크에서 삭제</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item rb-modal-bookmark" href="#" data-toggle="modal" data-target="#modal_window">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="_add_bookmark_" class="list-group list-group-flush rb-scrollbar">
|
||||
<?php $ADMPAGE = getDbArray($table['s_admpage'],'memberuid='.$my['uid'],'*','gid','asc',0,1)?>
|
||||
<?php while($R=db_fetch_array($ADMPAGE)):?>
|
||||
<a href="<?php echo $R['url']?>" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center" id="_now_bookmark_<?php echo $R['uid']?>">
|
||||
<?php echo $R['name']?>
|
||||
<i class="fa fa-fw fa-file-text-o"></i>
|
||||
</a>
|
||||
<?php endwhile?>
|
||||
<?php if(!db_num_rows($ADMPAGE)):?><a class="list-group-item"><i class="fa fa-fw fa-file-text-o"></i>등록된 북마크가 없습니다</a><?php endif?>
|
||||
</div>
|
||||
<div class="card-footer p-0 border-top-0">
|
||||
<a href="#." data-toggle="modal" data-target="#modal_window" class="rb-modal-bookmark btn btn-link btn-block">북마크 관리</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<?php if ($my['super'] && !$my['adm_site']): ?>
|
||||
<?php
|
||||
$SITES = getDbArray($table['s_site'],'','*','gid','asc',0,$p);
|
||||
$SITEN = db_num_rows($SITES);
|
||||
?>
|
||||
<?php if($SITEN>1 && ($module!='admin' && $module!='project')):?>
|
||||
<li class="nav-item d-none" data-role="siteSelector">
|
||||
<div class="input-group input-group-sm mt-1 ml-2 border border-primary">
|
||||
<div class="input-group-append" style="margin-left: 0;">
|
||||
<a class="input-group-text muted-link" href="<?php echo $g['s']?>/?r=<?php echo $SD['id']?>&m=<?php echo $m?>&pickmodule=site&panel=Y" target="_parent" data-toggle="tooltip" title="사이트관리">
|
||||
<i class="<?php echo $SD['icon']?$SD['icon']:'fa fa-home'?> fa-lg" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
<select class="form-control custom-select" onchange="goHref_parent('<?php echo $g['s']?>/?m=<?php echo $m?>&pickmodule=<?php echo $module?>&panel=Y&pickfront=<?php echo $front?>&r='+this.value);" style="margin-left: -1px;min-width:100px">
|
||||
<?php while($S = db_fetch_array($SITES)):?>
|
||||
<option value="<?php echo $S['id']?>"<?php if($r==$S['id']):?> selected<?php endif?>><?php echo $S['label']?></option>
|
||||
<?php endwhile?>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
|
||||
<?php else: ?>
|
||||
<?php
|
||||
$SITES = getArrayString($my['adm_site']);
|
||||
$SITEN = $SITES[count];
|
||||
?>
|
||||
<?php if($SITEN>1 && ($module!='admin' && $module!='project')):?>
|
||||
<li class="nav-item d-none" data-role="siteSelector">
|
||||
<div class="input-group input-group-sm mt-1 ml-2 border border-primary">
|
||||
<div class="input-group-append" style="margin-left: 0;">
|
||||
<a class="input-group-text muted-link" href="<?php echo $g['s']?>/?r=<?php echo $_SD['id']?>&m=<?php echo $m?>&pickmodule=site&panel=Y" target="_parent">
|
||||
<i class="<?php echo $SD['icon']?> fa-lg" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
<select class="form-control custom-select" onchange="goHref_parent('<?php echo $g['s']?>/?m=<?php echo $m?>&pickmodule=<?php echo $module?>&panel=Y&pickfront=<?php echo $front?>&r='+this.value);" style="margin-left: -1px;min-width:100px">
|
||||
<?php $_i=0;foreach($SITES['data'] as $val):?>
|
||||
<?php $_SD = getUidData($table['s_site'],$val); ?>
|
||||
<option value="<?php echo $_SD['id']?>"<?php if($r==$_SD['id']):?> selected<?php endif?>><?php echo $_SD['label']?></option>
|
||||
<?php $_i++;endforeach?>
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif?>
|
||||
<?php endif; ?>
|
||||
|
||||
</ul>
|
||||
|
||||
</div><!-- /.navbar-collapse -->
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
<main id="rb-admin-page-content">
|
||||
<?php include $g['adm_module'] ?>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
document.body.onload = tabSetting;
|
||||
document.body.onresize = tabSetting;
|
||||
|
||||
<?php if($g['device']):?>
|
||||
$('#bs-example-navbar-collapse-1').on('show.bs.collapse', function () {
|
||||
$("#_navbar_header_").addClass('rb-header-bottom-line');
|
||||
});
|
||||
$('#bs-example-navbar-collapse-1').on('hide.bs.collapse', function () {
|
||||
$("#_navbar_header_").removeClass('rb-header-bottom-line');
|
||||
});
|
||||
getId('_add_bookmark_').style.maxHeight = '205px';
|
||||
<?php endif?>
|
||||
$('#bs-example-navbar-collapse-1 [data-toggle=dropdown]').on('click', function(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
$(this).parent().siblings().removeClass('open');
|
||||
$(this).parent().toggleClass('open');
|
||||
});
|
||||
$(".rb-help-btn").click(function(){
|
||||
$(this).button('toggle');
|
||||
});
|
||||
$('.rb-modal-bookmark').on('click',function() {
|
||||
modalSetting('modal_window','<?php echo getModalLink('&m=admin&module=admin&front=modal.bookmark')?>');
|
||||
});
|
||||
$('.rb-bookmark-add').on('click',function() {
|
||||
frames._action_frame_admin.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&a=bookmark&_addmodule=<?php echo $module?>&_addfront=<?php echo $front?>';
|
||||
});
|
||||
$('.rb-bookmark-del').on('click',function() {
|
||||
frames._action_frame_admin.location.href = '<?php echo $g['s']?>/?r=<?php echo $r?>&m=<?php echo $m?>&a=bookmark_delete&deltype=hidden&_addmodule=<?php echo $module?>&_addfront=<?php echo $front?>';
|
||||
});
|
||||
});
|
||||
function tabSetting()
|
||||
{
|
||||
<?php if($g['device']):?>
|
||||
$('#bs-example-navbar-collapse-1').removeClass('navbar-collapse');
|
||||
if(document.body.scrollWidth > 750) $('#bs-example-navbar-collapse-1').addClass('navbar-collapse');
|
||||
else $('#bs-example-navbar-collapse-1').removeClass('navbar-collapse');
|
||||
<?php endif?>
|
||||
|
||||
var i;
|
||||
var bodyWidth = document.body.scrollWidth;
|
||||
var allTabnum = <?php echo (int)$_menuCount?>;
|
||||
var showTabnum = allTabnum;
|
||||
var showTabMore = false;
|
||||
|
||||
if (allTabnum > 3)
|
||||
{
|
||||
if (bodyWidth >= 0 && bodyWidth < 360)
|
||||
{
|
||||
showTabnum = 2;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 360 && bodyWidth < 523)
|
||||
{
|
||||
showTabnum = 3;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 523 && bodyWidth < 640)
|
||||
{
|
||||
showTabnum = 4;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 640 && bodyWidth < 750)
|
||||
{
|
||||
showTabnum = 5;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 750 && bodyWidth < 1100)
|
||||
{
|
||||
showTabnum = 8;
|
||||
showTabMore = true;
|
||||
}
|
||||
else if (bodyWidth >= 1100 && bodyWidth < 1400)
|
||||
{
|
||||
showTabnum = 10;
|
||||
showTabMore = false;
|
||||
}
|
||||
else if (bodyWidth >= 1400)
|
||||
{
|
||||
showTabnum = allTabnum;
|
||||
showTabMore = false;
|
||||
}
|
||||
}
|
||||
for (i = 1; i <= allTabnum; i++)
|
||||
{
|
||||
$('#rb-more-tab-'+i).removeClass('d-none');
|
||||
$('#rb-more-tabs-'+i).removeClass('d-none');
|
||||
}
|
||||
for (i = showTabnum+1; i <= allTabnum; i++) $('#rb-more-tab-'+i).addClass('d-none');
|
||||
for (i = 0; i <= showTabnum; i++) $('#rb-more-tabs-'+i).addClass('d-none');
|
||||
if (showTabMore == true) $('.rb-more-tabs').removeClass('d-none');
|
||||
else $('.rb-more-tabs').addClass('d-none');
|
||||
}
|
||||
|
||||
// 북마크 dropdown 내부클릭시 dropdown 유지
|
||||
$('.dropdown-body').on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
</script>
|
||||
183
modules/admin/theme/kimsq-white/login.css
Normal file
183
modules/admin/theme/kimsq-white/login.css
Normal file
@@ -0,0 +1,183 @@
|
||||
@charset "utf-8";
|
||||
@import url(https://fonts.googleapis.com/earlyaccess/notosanskr.css);
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #f9f9f9;
|
||||
font-family: 'Noto Sans KR', "돋움", dotum, '나눔고딕', 'Nanum Gothic', sans-serif, FontAwesome, kimsq !important;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #444
|
||||
}
|
||||
|
||||
.rb-root {
|
||||
display: table;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rb-login {
|
||||
display: table-cell;
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
padding: 10% 0 100px;
|
||||
}
|
||||
|
||||
#rb-login .card {
|
||||
margin: 0 auto 15px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#rb-login .card-header h1 {
|
||||
margin-bottom: 0;
|
||||
font-size: 18px
|
||||
}
|
||||
|
||||
#rb-login .card-header a:hover {
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
#rb-login .card .form-group label {
|
||||
font-weight: normal;
|
||||
display: block;
|
||||
margin-bottom: 7px
|
||||
}
|
||||
|
||||
#rb-login .form-login .label-link {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
#rb-login .panel .form-control.input-lg {
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
#rb-login .card-footer ul {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
#rb-login .card-foote a {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.form-control,
|
||||
.form-control[readonly] {
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0
|
||||
}
|
||||
|
||||
/*반응형 설정*/
|
||||
|
||||
@media (min-width: 481px) {
|
||||
#rb-login .card {
|
||||
width: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
/*background-color: #fff !important*/
|
||||
}
|
||||
|
||||
#rb-login {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rb-login .card {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
border-radius: none;
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
#rb-login .card-footer {
|
||||
/*background-color: transparent;*/
|
||||
}
|
||||
|
||||
#rb-login h1 {
|
||||
font-size: 20px
|
||||
}
|
||||
|
||||
#rb-login .btn.btn-primary {
|
||||
width: 100%;
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#modal-pwReset {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
#modal-pwReset .modal-header,
|
||||
#modal-pwReset .card-header {
|
||||
background-color: #0069d9;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
#modal-pwReset .modal-content {
|
||||
border-radius: .45rem;
|
||||
}
|
||||
|
||||
#modal-pwReset .nav-tabs .nav-link:focus,
|
||||
#modal-pwReset .nav-tabs .nav-link:hover {
|
||||
border-color: #0069d9 #0069d9 #fff;
|
||||
}
|
||||
|
||||
#modal-pwReset .form-control,
|
||||
#modal-pwReset .form-control[readonly] {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0;
|
||||
color: #495057;
|
||||
}
|
||||
|
||||
.btn-light {
|
||||
color: #24292e;
|
||||
user-select: none;
|
||||
background-color: #eff3f6;
|
||||
background-image: linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%);
|
||||
background-repeat: repeat-x;
|
||||
background-position: -1px -1px;
|
||||
background-size: 110% 110%;
|
||||
border: 1px solid rgba(27, 31, 35, 0.2);
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-light:hover,
|
||||
.btn-light.hover {
|
||||
background-color: #e6ebf1;
|
||||
background-image: linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);
|
||||
background-position: -.5em;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active,
|
||||
.btn-light:not(:disabled):not(.disabled):active,
|
||||
.show>.btn-light.dropdown-toggle {
|
||||
background-color: #e9ecef;
|
||||
background-image: none;
|
||||
border-color: rgba(27, 31, 35, 0.35);
|
||||
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
|
||||
}
|
||||
|
||||
.btn-light:not(:disabled):not(.disabled).active:focus,
|
||||
.btn-light:not(:disabled):not(.disabled):active:focus,
|
||||
.show>.btn-light.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
|
||||
}
|
||||
540
modules/admin/theme/kimsq-white/login.php
Normal file
540
modules/admin/theme/kimsq-white/login.php
Normal file
@@ -0,0 +1,540 @@
|
||||
<div class="rb-root">
|
||||
<div id="rb-login">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header">
|
||||
<h1>
|
||||
<a href="<?php echo $g['r']?>/">
|
||||
<i class="kf-bi-01"></i>
|
||||
</a>
|
||||
<small>관리자 모드</small>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="loginForm" role="form" name="loginform" id="admin-loginform" action="<?php echo $g['s']?>/" method="post">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="a" value="login">
|
||||
<input type="hidden" name="referer" value="<?php echo $referer ? $referer : $_SERVER['HTTP_REFERER']?>">
|
||||
<input type="hidden" name="usertype" value="admin">
|
||||
<input type="hidden" name="pickgoods" value="<?php echo $pickgoods ?>">
|
||||
<input type="hidden" name="form" value="">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="id" class="control-label">아이디 또는 이메일</label>
|
||||
<input type="text" name="id" class="form-control input-lg" id="id" placeholder="" value="" autofocus required autocapitalize="off" autocorrect="off" tabindex="1">
|
||||
<div class="invalid-feedback mt-2" data-role="idErrorBlock"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pw" class="control-label">비밀번호</label>
|
||||
<input type="password" name="pw" class="form-control input-lg" id="pw" placeholder="" value="" required tabindex="2">
|
||||
<div class="invalid-feedback mt-2" data-role="passwordErrorBlock"></div>
|
||||
</div>
|
||||
|
||||
<div class="custom-control custom-checkbox mb-3">
|
||||
<input type="checkbox" class="custom-control-input" id="login_cookie" name="login_cookie" value="checked" data-toggle="collapse" data-target="#collapsealert">
|
||||
<label class="custom-control-label" for="login_cookie">로그인 상태 유지</label>
|
||||
</div>
|
||||
|
||||
<div class="collapse" id="collapsealert" style="">
|
||||
<div class="alert alert-danger f12 mb-3">
|
||||
개인정보 보호를 위해, 개인 PC에서만 사용해 주세요.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit" id="rb-submit" data-role="submit" tabindex="3">
|
||||
<span class="not-loading">로그인</span>
|
||||
<span class="is-loading">
|
||||
<div class="d-flex align-items-center justify-content-center">
|
||||
<span class="spinner-border spinner-border-sm mr-2" role="status" aria-hidden="true"></span>
|
||||
<span>로그인중...</span>
|
||||
</div>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
|
||||
<p class="mt-3">
|
||||
<a href="#modal-pwReset" data-toggle="modal">
|
||||
<small>비밀번호를 잊으셨나요?</small>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 모달 : modal-pwReset : 비밀번호 초기화 -->
|
||||
<div class="modal fade" id="modal-pwReset" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document" style="max-width: 400px;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header border-bottom-0 d-flex flex-column" style="">
|
||||
<h5 class="modal-title mx-auto h6">관리자 비밀번호 재설정</h5>
|
||||
</div>
|
||||
|
||||
<?php if ($d['member']['join_byEmail'] || $d['member']['join_byPhone']): ?>
|
||||
<div class="card border-0" style="margin-top: -15px" data-role="confirm_code">
|
||||
|
||||
<div class="card-header">
|
||||
<ul class="nav nav-tabs nav-justified card-header-tabs f14">
|
||||
<?php if ($d['member']['join_byEmail']): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo $d['member']['join_byEmail']?' active':'' ?>" id="tab-email" data-toggle="tab" href="#pane-pw-email">
|
||||
이메일로 받기
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['member']['join_byPhone']): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo ($d['member']['join_byPhone'] && !$d['member']['join_byEmail'])?' active':'' ?>" id="tab-phone" data-toggle="tab" href="#pane-pw-phone">
|
||||
휴대폰으로 받기
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card-body ">
|
||||
|
||||
<div class="tab-content text-center">
|
||||
<div class="tab-pane <?php echo $d['member']['join_byEmail']?' show active':'' ?>" id="pane-pw-email" role="tabpanel" aria-labelledby="tab-email">
|
||||
|
||||
<div class="input-group input-group-lg mt-3">
|
||||
<input type="email" class="form-control" name="email" placeholder="이메일 주소" tabindex="1" autocorrect="off" autocapitalize="off" required value="">
|
||||
<div class="invalid-tooltip" data-role="emailErrorBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-act="send_code" data-type="email" data-device="desktop">
|
||||
<span class="not-loading">다음</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-none mt-3" data-role="verify_email_area">
|
||||
<small class="form-text text-success my-3">
|
||||
인증번호를 발송했습니다.(유효시간 <?php echo $d['member']['join_keyexpire'] ?>분)
|
||||
<span data-role="countdown" data-email-countdown="">[00:00]</span><br>
|
||||
위 메일로 발송된 6자리 인증번호를 입력해 주세요.<br>
|
||||
인증번호가 오지 않으면 입력하신 정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
|
||||
<div class="input-group input-group-lg">
|
||||
<input type="number" class="form-control" name="confirm_email_code" data-role="confirm_email_code" placeholder="인증번호 입력">
|
||||
<div class="invalid-tooltip" data-role="emailCodeBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary" type="button" data-act="confirm_code" data-type="email" data-device="desktop">
|
||||
<span class="not-loading">확인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.d-none -->
|
||||
|
||||
</div><!-- /.tab-pane -->
|
||||
<div class="tab-pane <?php echo ($d['member']['join_byPhone'] && !$d['member']['join_byEmail'])?' show active':'' ?>" id="pane-pw-phone" role="tabpanel" aria-labelledby="tab-phone">
|
||||
|
||||
<div class="input-group input-group-lg mt-3">
|
||||
<input type="tel" class="form-control" name="phone" placeholder="휴대폰 번호" tabindex="1" autocorrect="off" autocapitalize="off" required>
|
||||
<div class="invalid-tooltip" data-role="phoneErrorBlock"></div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-light" type="button" data-act="send_code" data-type="phone" data-device="desktop">
|
||||
<span class="not-loading">다음</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-none mt-3" data-role="verify_phone_area">
|
||||
<small class="form-text text-success my-3">
|
||||
인증번호를 발송했습니다.(유효시간 <?php echo $d['member']['join_keyexpire'] ?>분)
|
||||
<span data-role="countdown" data-phone-countdown="">[00:00]</span><br>
|
||||
위 휴대폰으로 발송된 6자리 인증번호를 입력해 주세요.<br>
|
||||
인증번호가 오지 않으면 입력하신 정보가 정확한지 확인하여 주세요.
|
||||
</small>
|
||||
|
||||
<div class="input-group input-group-lg">
|
||||
<input type="number" class="form-control" name="confirm_phone_code" data-role="confirm_phone_code" placeholder="인증번호 입력">
|
||||
<div class="invalid-tooltip" data-role="phoneCodeBlock">인증번호를 입력해주세요.</div>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary" type="button" data-act="confirm_code" data-type="phone" data-device="desktop">
|
||||
<span class="not-loading">확인</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-spin"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.d-none -->
|
||||
|
||||
</div><!-- /.tab-pane -->
|
||||
|
||||
</div><!-- /.tab-content -->
|
||||
|
||||
<ul class="list-unstyled f13 text-muted mt-4 mb-1">
|
||||
<li>본인인증을 통해 비밀번호를 재설정 하실 수 있습니다.</li>
|
||||
<li>인증번호를 받을 곳을 선택해 주세요.</li>
|
||||
<li>비밀번호는 암호화 저장되어 분실 시 찾아드릴 수 없습니다.</li>
|
||||
</ul>
|
||||
|
||||
</div><!-- /.card-body tab-content-->
|
||||
</div><!-- /.card -->
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="card d-none" data-role="change_pw">
|
||||
<div class="card-body">
|
||||
<form id="pwResetForm" role="form" action="<?php echo $g['s']?>/" method="post" autocomplete="off">
|
||||
<input type="hidden" name="r" value="<?php echo $r?>">
|
||||
<input type="hidden" name="m" value="member">
|
||||
<input type="hidden" name="a" value="pw_reset">
|
||||
<input type="hidden" name="act" value="change_pw">
|
||||
<input type="hidden" name="device" value="desktop">
|
||||
<input type="hidden" name="code" value="">
|
||||
<input type="hidden" name="target" value="">
|
||||
<input type="hidden" name="type" value="">
|
||||
<input type="hidden" name="check_pw1" value="0">
|
||||
<input type="hidden" name="check_pw2" value="0">
|
||||
<input type="hidden" name="usertype" value="admin">
|
||||
|
||||
<div class="form-group position-relative">
|
||||
<label>비밀번호(6~16자리)</label>
|
||||
<input type="password" class="form-control form-control-lg" name="pw1" placeholder="" autocorrect="off" autocapitalize="off" data-role="pw1">
|
||||
<div class="invalid-tooltip" data-role="pw1CodeBlock" id="pw1-feedback"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group position-relative">
|
||||
<label>비밀번호 재입력</label>
|
||||
<input type="password" class="form-control form-control-lg" name="pw2" placeholder="" autocorrect="off" autocapitalize="off" data-role="pw2">
|
||||
<div class="invalid-tooltip" data-role="pw2CodeBlock" id="pw2-feedback"></div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 mb-3">
|
||||
<button type="submit" class="btn btn-outline-primary btn-lg btn-block" data-role="submit">
|
||||
<span class="not-loading">변경하기</span>
|
||||
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 변경중 ...</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
|
||||
|
||||
|
||||
<div class="modal-footer justify-content-center py-2">
|
||||
<button type="button" class="btn btn-link muted-link" data-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- https://github.com/hilios/jQuery.countdown -->
|
||||
<?php getImport('jquery.countdown','jquery.countdown.min','2.2.0','js')?>
|
||||
|
||||
<script>
|
||||
|
||||
var modal_pwReset = $('#modal-pwReset')
|
||||
|
||||
|
||||
$(function () {
|
||||
|
||||
$('#admin-loginform').submit(function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true);
|
||||
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
// 로그인 에러 흔적 초기화
|
||||
$("#admin-loginform").find('.form-control').keyup(function() {
|
||||
$(this).removeClass('is-invalid')
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
function doPwCountdown(type) {
|
||||
modal_pwReset.find('[data-'+type+'-countdown]').each(function() {
|
||||
var $this = $(this), finalDate = $(this).data(type+'-countdown');
|
||||
$this.html('');
|
||||
$this.countdown(finalDate, function(event) {
|
||||
$this.html('['+event.strftime('%M:%S')+']');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function pwResetCheck(obj,layer) {
|
||||
var f = document.getElementById('pwResetForm');
|
||||
if (!obj.value)
|
||||
{
|
||||
obj.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj.name == 'pw1') {
|
||||
f.classList.remove('was-validated');
|
||||
|
||||
if (f.pw1.value.length < 6 || f.pw1.value.length > 16) {
|
||||
|
||||
f.check_pw1.value = '0';
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
getId(layer).innerHTML = '영문/숫자 2개 이상의 조합으로 최소 6~16자로 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz")) {
|
||||
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
if (getTypeCheck(f.pw1.value,"1234567890")) {
|
||||
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n영문/숫자 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
|
||||
obj.focus();
|
||||
return false;
|
||||
}
|
||||
f.pw1.classList.add('is-valid');
|
||||
f.pw1.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
f.check_pw1.value = '1';
|
||||
}
|
||||
|
||||
if (obj.name == 'pw2') {
|
||||
f.classList.remove('was-validated');
|
||||
obj.classList.add('is-invalid');
|
||||
obj.classList.remove('is-valid');
|
||||
|
||||
if (f.pw1.value != f.pw2.value)
|
||||
{
|
||||
getId(layer).innerHTML = '비밀번호가 일치하지 않습니다.';
|
||||
f.classList.remove('was-validated');
|
||||
obj.focus();
|
||||
f.check_pw2.value = '0';
|
||||
return false;
|
||||
}
|
||||
|
||||
f.pw2.classList.add('is-valid');
|
||||
f.pw2.classList.remove('is-invalid');
|
||||
getId(layer).innerHTML = '';
|
||||
|
||||
f.check_pw2.value = '1';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
|
||||
modal_pwReset.on('show.bs.modal', function (e) {
|
||||
var modal = modal_pwReset
|
||||
|
||||
//화면 초기화
|
||||
modal.find('[data-role="confirm_code"]').removeClass('d-none')
|
||||
modal.find('[data-role="change_pw"]').addClass('d-none')
|
||||
modal.find('#tab-email').tab('show')
|
||||
modal.find('[data-act="send_code"]').prop("disabled",false)
|
||||
modal.find('[data-act="send_code"] .not-loading').text('다음')
|
||||
modal.find('[data-act="confirm_code"]').prop("disabled",false)
|
||||
modal.find('[type="number"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="email"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="phone"]').val('').removeClass('is-invalid')
|
||||
modal.find('[data-role="verify_email_area"]').addClass('d-none')
|
||||
modal.find('[data-role="verify_phone_area"]').addClass('d-none')
|
||||
modal.find('[data-role="pw1"]').val('').removeClass('is-invalid')
|
||||
modal.find('[data-role="pw2"]').val('').removeClass('is-invalid')
|
||||
modal.find('[name="check_pw1"]').val(0)
|
||||
modal.find('[name="check_pw2"]').val(0)
|
||||
modal.find('[data-role="submit"]').prop("disabled",false)
|
||||
})
|
||||
modal_pwReset.on('shown.bs.modal', function (e) {
|
||||
var modal = modal_pwReset
|
||||
modal.find('[name="email"]').trigger('focus')
|
||||
|
||||
})
|
||||
modal_pwReset.find('input').keyup(function() {
|
||||
$(this).removeClass('is-invalid') //에러 발생후 다시 입력 시도시에 에러 흔적 초기화
|
||||
});
|
||||
|
||||
//비밀번호 유용성 체크
|
||||
modal_pwReset.find('[data-role="change_pw"] input').keyup(function(){
|
||||
var modal = modal_pwReset
|
||||
var item = $(this).data('role')
|
||||
var item_pw_check = modal.find('[name=check_pw]').val()
|
||||
if (item =='pw1') {
|
||||
element = document.querySelector('[name="pw1"]');
|
||||
pwResetCheck(element,'pw1-feedback')
|
||||
}
|
||||
if (item =='pw2') {
|
||||
element = document.querySelector('[name="pw2"]');
|
||||
pwResetCheck(element,'pw2-feedback')
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
modal_pwReset.find('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var pane = $(this).attr('id')
|
||||
if (pane=='tab-email') modal_pwReset.find('[name="email"]').focus()
|
||||
if (pane=='tab-phone') modal_pwReset.find('[name="phone"]').focus()
|
||||
})
|
||||
|
||||
// 본인인증 코드발송
|
||||
modal_pwReset.on('click','[data-act="send_code"]',function(){
|
||||
var modal = modal_pwReset
|
||||
var button = $(this)
|
||||
var act = 'send_code'
|
||||
var type = button.attr('data-type')
|
||||
var device = button.attr('data-device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = modal.find('[name="email"]')
|
||||
var _input = document.querySelector('#modal-pwReset [name="email"]');
|
||||
var target = input.val()
|
||||
var msg = modal.find('[data-role="emailErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 이메일 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일을 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkEmailAddr(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('이메일 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = modal.find('[name="phone"]')
|
||||
var _input = document.querySelector('#modal-pwReset [name="phone"]');
|
||||
var target = input.val()
|
||||
var msg = modal.find('[data-role="phoneErrorBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 휴대폰번호 입력폼 유효성 체크
|
||||
if (!target) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
if (!chkPhoneNumber(_input.value)) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('휴대폰 번호 형식이 아닙니다.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
button.attr('disabled',true) //버튼 로딩처리
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&target='+target+'&device='+device+'&usertype=admin'
|
||||
|
||||
getIframeForAction();
|
||||
|
||||
//modal.find('[data-act=confirm_code]').attr('data-type',type);
|
||||
//modal.find('[type=number]').attr('data-role','confirm_'+type+'_code').attr('name','confirm_'+type+'_code');
|
||||
//modal.find('.invalid-tooltip').attr('data-role',type+'CodeBlock');
|
||||
modal.find('[data-role=countdown]').text('');
|
||||
|
||||
modal.find('[data-role="target"]').text(target)
|
||||
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 본인인증 코드확인
|
||||
modal_pwReset.on('click','[data-act="confirm_code"]',function(){
|
||||
var modal = modal_pwReset
|
||||
var button = $(this)
|
||||
var act = 'confirm_code'
|
||||
var type = button.data('type')
|
||||
var device = button.data('device')
|
||||
|
||||
if (type=='email') {
|
||||
var input = modal.find('[name="confirm_email_code"]')
|
||||
var code = input.val()
|
||||
var msg = modal.find('[data-role="emailCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (type=='phone') {
|
||||
var input = modal.find('[name="confirm_phone_code"]')
|
||||
var code = input.val()
|
||||
var msg = modal.find('[data-role="phoneCodeBlock"]')
|
||||
|
||||
// 상태초기화
|
||||
input.removeClass('is-invalid is-valid')
|
||||
|
||||
// 인증번호 입력폼 유효성 체크
|
||||
if (!code) {
|
||||
input.focus()
|
||||
input.addClass('is-invalid')
|
||||
msg.text('인증번호를 입력해주세요.')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
button.attr('disabled',true) //버튼 로딩처리
|
||||
var url = rooturl+'/?r='+raccount+'&m=member&a=pw_reset&act='+act+'&type='+type+'&code='+code+'&device='+device
|
||||
|
||||
getIframeForAction();
|
||||
setTimeout(function() {
|
||||
frames.__iframe_for_action__.location.href = url;
|
||||
}, 700);
|
||||
|
||||
});
|
||||
|
||||
// 비밀번호 변경
|
||||
$('#pwResetForm').submit( function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var form = $(this)
|
||||
var formID = form.attr('id')
|
||||
var f = document.getElementById(formID);
|
||||
|
||||
if (f.check_pw1.value == '0' || f.check_pw2.value == '0') {
|
||||
return false;
|
||||
}
|
||||
|
||||
form.find('[name="form"]').val('#'+formID);
|
||||
form.find('[type="submit"]').attr("disabled",true); //버튼 로딩처리
|
||||
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
|
||||
setTimeout(function(){
|
||||
getIframeForAction(f);
|
||||
f.submit();
|
||||
}, 500);
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user