This commit is contained in:
Jaybe
2025-03-05 14:02:29 +09:00
commit 247a7808d3
357 changed files with 161196 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
<?=$this->renderSection('footer')?>
<?php if(getenv('MY_SERVER_NAME') == 'resta') { ?>
<div class="footer-info">
<p class="footer-info-business">사업자명 : 주식회사 리스타 ㅣ 대표자명 : 송명석 ㅣ 사업자번호 : 568-86-03133</p>
<p class="footer-info-address">주소 : 서울특별시 강남구 테헤란로25길 19, 5층(역삼동) ㅣ 대표번호 : 02-508-3789</p>
</div>
<?php }?>
</body>
</html>
+12
View File
@@ -0,0 +1,12 @@
<?=$this->include('templates/header.php')?>
<?=$this->renderSection('body')?>
<div class="app">
<div class="wrap d-flex">
<?=$this->include('templates/inc/navbar.php')?>
<?=$this->renderSection('content')?>
</div>
<?=$this->renderSection('modal')?>
</div>
<?=$this->renderSection('script')?>
<?=$this->include('templates/footer.php')?>
+17
View File
@@ -0,0 +1,17 @@
<?=$this->include('templates/header.php')?>
<!-- exam scss 파일 연결 -->
<link href="/static/css/exam/_account.css" rel="stylesheet">
<link href="/static/css/exam/_agree.css" rel="stylesheet">
<link href="/static/css/exam/_etc.css" rel="stylesheet">
<!-- //exam scss 파일 연결 -->
<?=$this->renderSection('body')?>
<div class="app">
<div class="wrap d-flex">
<?=$this->include('templates/inc/navbar_example.php')?>
<?=$this->renderSection('content')?>
</div>
<?=$this->renderSection('modal')?>
</div>
<?=$this->renderSection('script')?>
<?=$this->include('templates/footer.php')?>
+28
View File
@@ -0,0 +1,28 @@
<!doctype html>
<html lang="ko">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta name="format-detection" content="telephone=no"><!-- 전화번호 인식 하지 않도록 제어 -->
<link href="/static/node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/node_modules/daterangepicker/daterangepicker.css" rel="stylesheet">
<link href="/static/css/ui.css?<?=date('Ymd')?>" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="/static/node_modules/jquery-ui/dist/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined"/>
<title><?= $this->renderSection('title') ?></title>
<script src="/static/node_modules/jquery/dist/jquery.min.js"></script>
<script src="/static/node_modules/jquery-ui/dist/jquery-ui.min.js"></script>
<script src="/static/node_modules/moment/moment.js"></script>
<script src="/static/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/node_modules/daterangepicker/daterangepicker.js"></script>
<script src="/static/js/ui.js?<?=date('Ymd')?>"></script>
<script src="/static/js/index.js?<?=date('Ymd')?>"></script>
<script src="/static/js/clipboard.min.js?<?=date('Ymd')?>"></script>
<?=$this->renderSection('header')?>
</head>
<body>
<?=$this->renderSection('guestContent')?>
@@ -0,0 +1,21 @@
<!-- 차트 확인 Modal -->
<div class="modal fade" id="chart-modal" tabindex="-1" aria-labelledby="chartModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="chartModalLabel">차트 확인</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div id="chartContainer" style="width: 100%; height: 400px;"></div>
<div class="chart-buttons">
<button class="btn btn-secondary btn_viewChart" data-chart="cpa">현재 DB단가/유효DB/수익률</button>
<button class="btn btn-secondary btn_viewChart" data-chart="spend">지출액</button>
<button class="btn btn-secondary btn_viewChart" data-chart="sales">매출액</button>
<button class="btn btn-secondary btn_viewChart" data-chart="margin">수익</button>
<button class="btn btn-secondary btn_viewChart" data-chart="click">클릭수/노출수</button>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,359 @@
<!--헤더-->
<?=$this->section('header');?>
<link href="/static/css/scheduler.css" rel="stylesheet">
<script src="/static/js/scheduler.js"></script>
<?=$this->endSection();?>
<div class="modal automationModal fade" id="automationModal" tabindex="-1" aria-labelledby="automationModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-body">
<div class="regi-content">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<div class="step">
<ol id="myTab" role="tablist">
<li class="active" type="button" id="schedule-tab" data-bs-toggle="tab" data-bs-target="#schedule" type="button" aria-controls="schedule" aria-selected="true">
<strong>일정</strong>
</li>
<li id="target-tab" data-bs-toggle="tab" data-bs-target="#target" type="button" aria-controls="target" aria-selected="false">
<strong>대상</strong>
</li>
<li id="condition-tab" data-bs-toggle="tab" data-bs-target="#condition" type="button" aria-controls="condition" aria-selected="false">
<strong>조건</strong>
<p id="text-condition-1">
<span class="typeText"></span>
<span class="typeValueText"></span>
<span class="compareText"></span>
</p>
</li>
<li id="preactice-tab" data-bs-toggle="tab" data-bs-target="#preactice" type="button" aria-controls="preactice" aria-selected="false">
<strong>실행</strong>
</li>
<li id="detailed-tab" data-bs-toggle="tab" data-bs-target="#detailed" type="button" aria-controls="messages" aria-selected="false">
<strong>상세정보</strong>
<p id="detailText">
<span id="subjectText"></span><br>
<span id="descriptionText"></span>
</p>
</li>
</ol>
</div>
<div class="detail-wrap">
<input type="hidden" name="seq">
<div class="detail show active" id="schedule" role="tabpanel" aria-labelledby="schedule-tab" tabindex="0">
<table id="scheduleTable"></table>
<label for="onceExecution" class="mt15"><input type="checkbox" name="exec_once" id="onceExecution"> 하루에 한번만 실행</label>
</div>
<div class="detail" id="target" role="tabpanel" aria-labelledby="target-tab" tabindex="1">
<ul class="tab" id="targetTab">
<li class="active" data-tab="advertiser"><a href="javascript:void(0);">광고주</a></li>
<li data-tab="account"><a href="javascript:void(0);">매체광고주</a></li>
<li data-tab="campaign"><a href="javascript:void(0);">캠페인</a></li>
<li data-tab="adgroup"><a href="javascript:void(0);">광고그룹</a></li>
<li data-tab="ad"><a href="javascript:void(0);">광고</a></li>
</ul>
<div id="targetCreateType" class="targetCreateType">
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="target_create_type" value="target_sum" id="targetSum">
<label class="form-check-label" for="targetSum">
합산 적용
</label>
</div>
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="target_create_type" value="target_seperate" id="targetSeperate">
<label class="form-check-label" for="targetSeperate">
개별 적용
</label>
</div>
</div>
<div class="search">
<form name="search-target-form" class="search d-flex justify-content-center w-100">
<div class="input">
<input type="text" placeholder="검색어를 입력하세요" id="showTargetAdv">
<button class="btn-primary" id="search_target_btn" type="submit">조회</button>
</div>
</form>
</div>
<!-- <table class="table tbl-header w-100" id="targetCheckedTable">
<colgroup>
<col style="width:12%">
<col style="width:12%">
<col style="width:28%">
<col style="width:30%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="5" class="text-center">선택 항목(선택 후 상단 탭 클릭 시 소속 항목 조회가 가능합니다)</th>
</tr>
</thead>
<tbody></tbody>
</table> -->
<!-- 대상 컨텐츠 -->
<p class="sche-info-txt">선택 항목(선택 후 상단 탭 클릭 시 소속 항목 조회가 가능합니다)</p>
<table class="table tbl-header targetTable w-100" id="targetTable">
<!-- <colgroup>
<col style="width:12%">
<col style="width:12%">
<col style="width:26%">
<col style="width:30%">
<col style="width:12%">
<col style="width:8%">
</colgroup> -->
<thead>
<tr>
<th scope="col" class="text-center">매체</th>
<th scope="col" class="text-center">분류</th>
<th scope="col" class="text-center">ID</th>
<th scope="col" class="text-center">제목</th>
<th scope="col" class="text-center">상태</th>
<th scope="col" class="text-center"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table class="table tbl-header targetSelectTable w-100 mt-4" id="targetSelectTable">
<colgroup>
<col style="width:17%">
<col style="width:17%">
<col style="width:17%">
<col style="width:17%">
<col style="width:20%">
<col style="width:11%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="6" class="text-center">적용 항목</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<!-- 조건 컨텐츠 -->
<div class="detail" id="condition" role="tabpanel" aria-labelledby="condition-tab" tabindex="2">
<div class="d-flex align-items-center mb15">
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="operation" value="and" id="operationAnd">
<label class="form-check-label" for="operationAnd">
모두 일치
</label>
</div>
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="operation" value="or" id="operationOr">
<label class="form-check-label" for="operationOr">
하나만 일치
</label>
</div>
</div>
<table class="table tbl-header conditionTable" id="conditionTable">
<colgroup>
<col>
<col style="width:45%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col">항목</th>
<th scope="col">구분</th>
<th scope="col"><button type="button" class="btn-add">추가</button></th>
</tr>
</thead>
<tbody>
<tr id="condition-1">
<td>
<div class="form-flex">
<select name="type" class="form-select conditionType">
<option value="">조건 항목</option>
<option value="status">상태</option>
<option value="budget">예산</option>
<option value="dbcost">DB단가</option>
<option value="unique_total">유효DB</option>
<option value="spend">지출액</option>
<option value="margin">수익</option>
<option value="margin_rate">수익률</option>
<option value="sales">매출액</option>
<!-- <option value="impression">노출수</option>
<option value="click">링크클릭</option>
<option value="cpc">CPC</option>
<option value="ctr">CTR</option> -->
<option value="conversion">DB전환률</option>
</select>
<select name="type_value_status" class="form-select conditionTypeValueStatus" style="display: none;">
<option value="">상태값 선택</option>
<option value="ON">ON</option>
<option value="OFF">OFF</option>
</select>
<input type="text" name="type_value" class="form-control conditionTypeValue" placeholder="조건값" oninput="onlyNumberLeadingDashAndDot(this);">
</div>
</td>
<td colspan="2">
<div class="form-flex">
<select name="compare" class="form-select conditionCompare">
<option value="">일치여부</option>
<option value="greater">초과</option>
<option value="greater_equal">보다 크거나 같음</option>
<option value="less">미만</option>
<option value="less_equal">보다 작거나 같음</option>
<option value="equal">같음</option>
<option value="not_equal">같지않음</option>
</select>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 실행 컨텐츠 -->
<div class="detail" id="preactice" role="tabpanel" aria-labelledby="preactice-tab" tabindex="3">
<div id="execSearchWrap">
<ul class="tab" id="execTab">
<li class="active" data-tab="campaign"><a href="javascript:void(0);">캠페인</a></li>
<li data-tab="adgroup"><a href="javascript:void(0);">광고그룹</a></li>
<li data-tab="ad"><a href="javascript:void(0);">광고</a></li>
</ul>
<div class="search">
<div class="d-flex align-items-center mb-2">
<input class="form-check-input" type="checkbox" value="1" id="searchAll">
<label class="form-check-label" for="searchAll">
전체검색
</label>
</div>
<form name="search-exec-form" class="search d-flex justify-content-center w-100">
<div class="input">
<input type="text" placeholder="검색어를 입력하세요" id="showExecAdv">
<button class="btn-primary" id="search_exec_btn" type="submit">조회</button>
</div>
</form>
</div>
<table class="table tbl-header execTable w-100 mt-4" id="execTable">
<!-- <colgroup>
<col style="width:10%">
<col style="width:10%">
<col style="width:30%">
<col style="width:40%">
<col style="width:10%">
</colgroup> -->
<thead>
<tr>
<th scope="col">매체</th>
<th scope="col">분류</th>
<th scope="col">ID</th>
<th scope="col">제목</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<table class="table tbl-header w-100 mt-4 execSelectTable" id="execSelectTable">
<colgroup>
<col style="width:10%">
<col style="width:10%">
<col style="width:10%">
<col style="width:10%">
<col style="width:10%">
<col style="width:11%">
<col style="width:11%">
<col style="width:18%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="9" class="text-center">
적용 항목
<div class="callTargetBtnBox">
<button class="callTargetBtn btn-primary">대상 불러오기</button>
</div>
</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<td colspan="5">일괄 적용</td>
<td colspan="2">
<div class="mb5">
<select name="all_exec_condition_type" class="form-select">
<option value="">실행항목</option>
<option value="status">상태</option>
<option value="budget">예산</option>
</select>
</div>
<select name="all_exec_condition_type_budget" class="form-select">
<option value="">단위</option>
<option value="won">원</option>
<option value="percent">%</option>
</select>
</td>
<td>
<select name="all_exec_condition_value_status" class="form-select" style="display: none;">
<option value="">상태값</option>
<option value="ON">ON</option>
<option value="OFF">OFF</option>
</select>
<input type="text" name="all_exec_condition_value" class="form-control"placeholder="예산">
</td>
<td></td>
</tr>
</tfoot>
</table>
<table class="table tbl-header w-100 mt-4 slackSendTable" id="slackSendTable">
<thead>
<tr>
<th scope="col" class="text-center">슬랙 메세지 보내기</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="form-flex">
<input type="text" name="slack_webhook" class="form-control" placeholder="웹훅 URL">
<input type="text" name="slack_msg" class="form-control" placeholder="메세지">
</div>
</td>
</tr>
</tbody>
</table>
<p><a href="https://carelabs-dm.atlassian.net/wiki/external/NGU5YTNlYjYwYTI0NDliMjg5NzhiYTg3MjEwZTJhODc" target="_blank">▶ 슬랙 웹훅 생성 메뉴얼 참고</a></p>
</div>
<!-- 상세정보 컨텐츠 -->
<div class="detail" id="detailed" role="tabpanel" aria-labelledby="detailed-tab" tabindex="4">
<table class="table tbl-side" id="detailTable">
<colgroup>
<col style="width:35%">
<col>
</colgroup>
<tr>
<th scope="row">제목*</th>
<td>
<input type="text" name="subject" class="form-control bg">
</td>
</tr>
<tr>
<th scope="row">설명</th>
<td>
<textarea name="description" class="form-control"></textarea>
</td>
</tr>
</table>
<!-- <div class="btn-area">
<button type="button" id="createAutomationBtn" class="btn-special">저장</button>
<button type="button" id="updateAutomationBtn" class="btn-special" style="display: none;">수정</button>
</div> -->
</div>
</div>
</div>
<div class="btn-area">
<button type="button" id="createAutomationBtn" class="btn-special">저장</button>
<button type="button" id="updateAutomationBtn" class="btn-special" style="display: none;">수정</button>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,474 @@
<div class="modal fade" id="automationModal" tabindex="-1" aria-labelledby="automationModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-body">
<div class="regi-content">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<div class="step">
<ol id="myTab" role="tablist">
<li class="active" type="button" id="schedule-tab" data-bs-toggle="tab" data-bs-target="#schedule" type="button" aria-controls="schedule" aria-selected="true">
<strong>일정</strong>
<p id="scheduleText"></p>
</li>
<li id="target-tab" data-bs-toggle="tab" data-bs-target="#target" type="button" aria-controls="target" aria-selected="false">
<strong>대상</strong>
</li>
<li id="condition-tab" data-bs-toggle="tab" data-bs-target="#condition" type="button" aria-controls="condition" aria-selected="false">
<strong>조건</strong>
<p id="text-condition-1">
<span class="typeText"></span>
<span class="typeValueText"></span>
<span class="compareText"></span>
</p>
</li>
<li id="preactice-tab" data-bs-toggle="tab" data-bs-target="#preactice" type="button" aria-controls="preactice" aria-selected="false">
<strong>실행</strong>
</li>
<li id="detailed-tab" data-bs-toggle="tab" data-bs-target="#detailed" type="button" aria-controls="messages" aria-selected="false">
<strong>상세정보</strong>
<p id="detailText">
<span id="subjectText"></span><br>
<span id="descriptionText"></span>
</p>
</li>
</ol>
</div>
<div class="detail-wrap">
<input type="hidden" name="seq">
<div class="detail show active" id="schedule" role="tabpanel" aria-labelledby="schedule-tab" tabindex="0">
<table class="table tbl-side" id="scheduleTable">
<colgroup>
<col style="width:35%">
<col>
</colgroup>
<tr>
<th scope="row">다음 시간마다 규칙적으로 실행</th>
<td>
<input type="text" name="type_value" class="form-control short" oninput="onlyNumber(this);" maxlength="3" autocomplete="off"/>
<select name="exec_type" class="form-select short" id="execType">
<option value="minute"></option>
<option value="hour">시간</option>
<option value="day"></option>
<option value="week"></option>
<option value="month"></option>
</select>
<p></p>
</td>
</tr>
<tr id="weekdayRow">
<th scope="row">요일</th>
<td>
<div class="week-radio">
<div class="day">
<input type="radio" name="exec_week" value="2" id="day01">
<label for="day01"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="3" id="day02">
<label for="day02"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="4" id="day03">
<label for="day03"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="5" id="day04">
<label for="day04"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="6" id="day05">
<label for="day05"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="7" id="day06">
<label for="day06"></label>
</div>
<div class="day">
<input type="radio" name="exec_week" value="1" id="day07">
<label for="day07"></label>
</div>
</div>
</td>
</tr>
<tr id="nextDateRow">
<th scope="row">다음 날짜에</th>
<td>
<select name="month_type" class="form-select" id="monthType">
<option value="" selected>선택</option>
<option value="start_day">매달 첫번째 </option>
<option value="end_day">매달 마지막 </option>
<option value="first">처음</option>
<option value="last">마지막</option>
<option value="day">날짜</option>
</select>
<select name="month_day" class="form-select" id="monthDay">
<option value="" selected>선택</option>
<?php
for ($i = 1; $i <= 31; $i++) {
echo "<option value='$i'>".$i."일</option>";
}
?>
</select>
<select name="month_week" class="form-select" id="monthWeek">
<option value="" selected>선택</option>
<option value="2">월</option>
<option value="3">화</option>
<option value="4">수</option>
<option value="5">목</option>
<option value="6">금</option>
<option value="7">토</option>
<option value="1">일</option>
</select>
</td>
</tr>
<tr id="timeRow">
<th scope="row">시간</th>
<td>
<?php
$interval = new DateInterval('PT30M');
$time = new DateTime('00:00');
$end = new DateTime('24:00');
ob_start();
while ($time < $end) {
$value = $time->format('H:i');
echo "<option value='$value'>$value</option>";
$time->add($interval);
}
$timeOptions = ob_get_clean();
?>
<select name="exec_time" id="execTime" class="form-select middle">
<option value="" selected>선택</option>
<?php echo $timeOptions; ?>
</select>
</td>
</tr>
<tr id="criteriaTimeRow">
<th scope="row">시작 일시</th>
<td>
<div class="form-flex">
<input type="text" name="criteria_time" class="form-control" readonly>
</div>
</td>
</tr>
<tr>
<th scope="row">제외 시간</th>
<td>
<div class="form-flex">
<select name="ignore_start_time" class="form-select middle">
<option value="" selected>선택</option>
<?php echo $timeOptions; ?>
</select>
<span>~</span>
<select name="ignore_end_time" class="form-select middle">
<option value="">선택</option>
<?php echo $timeOptions; ?>
</select>
</div>
</td>
</tr>
</table>
</div>
<div class="detail" id="target" role="tabpanel" aria-labelledby="target-tab" tabindex="1">
<ul class="tab" id="targetTab">
<li class="active" data-tab="advertiser"><a href="#">광고주</a></li>
<li data-tab="account"><a href="#">매체광고주</a></li>
<li data-tab="campaign"><a href="#">캠페인</a></li>
<li data-tab="adgroup"><a href="#">광고그룹</a></li>
<li data-tab="ad"><a href="#">광고</a></li>
</ul>
<div id="targetCreateType">
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="target_create_type" value="target_sum" id="targetSum">
<label class="form-check-label" for="targetSum">
합산 적용
</label>
</div>
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="target_create_type" value="target_seperate" id="targetSeperate">
<label class="form-check-label" for="targetSeperate">
개별 적용
</label>
</div>
</div>
<div class="search">
<form name="search-target-form" class="search d-flex justify-content-center w-100">
<div class="input">
<input type="text" placeholder="검색어를 입력하세요" id="showTargetAdv">
<button class="btn-primary" id="search_target_btn" type="submit">조회</button>
</div>
</form>
</div>
<table class="table tbl-header w-100" id="targetCheckedTable">
<colgroup>
<col style="width:12%">
<col style="width:12%">
<col style="width:28%">
<col style="width:30%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="5" class="text-center">선택 항목(선택 후 상단 탭 클릭 시 소속 항목 조회가 가능합니다)</th>
</tr>
</thead>
<tbody></tbody>
</table>
<table class="table tbl-header w-100" id="targetTable">
<colgroup>
<col style="width:12%">
<col style="width:12%">
<col style="width:28%">
<col style="width:30%">
<col style="width:10%">
<col style="width:8%">
</colgroup>
<thead>
<tr>
<th scope="col" class="text-center">매체</th>
<th scope="col" class="text-center">분류</th>
<th scope="col" class="text-center">ID</th>
<th scope="col" class="text-center">제목</th>
<th scope="col" class="text-center">상태</th>
<th scope="col" class="text-center"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<table class="table tbl-header w-100 mt-4" id="targetSelectTable">
<colgroup>
<col style="width:12%">
<col style="width:12%">
<col style="width:28%">
<col style="width:30%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="5" class="text-center">적용 항목</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="detail" id="condition" role="tabpanel" aria-labelledby="condition-tab" tabindex="2">
<div class="d-flex align-items-center mb-2">
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="operation" value="and" id="operationAnd">
<label class="form-check-label" for="operationAnd">
모두 일치
</label>
</div>
<div class="d-flex align-items-center">
<input class="form-check-input" type="radio" name="operation" value="or" id="operationOr">
<label class="form-check-label" for="operationOr">
하나만 일치
</label>
</div>
</div>
<table class="table tbl-header" id="conditionTable">
<colgroup>
<col>
<col style="width:45%">
<col style="width:5%">
</colgroup>
<thead>
<tr>
<th scope="col">항목</th>
<th scope="col">구분</th>
<th scope="col"><button type="button" class="btn-add">추가</button></th>
</tr>
</thead>
<tbody>
<tr id="condition-1">
<td>
<div class="form-flex">
<!-- <input type="text" name="order" placeholder="순서(1~)" class="form-control conditionOrder" oninput="onlyNumber(this);" maxlength="3"> -->
<select name="type" class="form-select conditionType">
<option value="">조건 항목</option>
<option value="status">상태</option>
<option value="budget">예산</option>
<option value="dbcost">DB단가</option>
<option value="unique_total">유효DB</option>
<option value="spend">지출액</option>
<option value="margin">수익</option>
<option value="margin_rate">수익률</option>
<option value="sales">매출액</option>
<!-- <option value="impression">노출수</option>
<option value="click">링크클릭</option>
<option value="cpc">CPC</option>
<option value="ctr">CTR</option> -->
<option value="conversion">DB전환률</option>
</select>
<select name="type_value_status" class="form-select conditionTypeValueStatus" style="display: none;">
<option value="">상태값 선택</option>
<option value="ON">ON</option>
<option value="OFF">OFF</option>
</select>
<input type="text" name="type_value" class="form-control conditionTypeValue" placeholder="조건값" oninput="onlyNumberLeadingDashAndDot(this);">
</div>
</td>
<td colspan="2">
<div class="form-flex">
<select name="compare" class="form-select conditionCompare">
<option value="">일치여부</option>
<option value="greater">초과</option>
<option value="greater_equal">보다 크거나 같음</option>
<option value="less">미만</option>
<option value="less_equal">보다 작거나 같음</option>
<option value="equal">같음</option>
<option value="not_equal">같지않음</option>
</select>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="detail" id="preactice" role="tabpanel" aria-labelledby="preactice-tab" tabindex="3">
<div id="execSearchWrap">
<ul class="tab" id="execTab">
<li class="active" data-tab="campaign"><a href="#">캠페인</a></li>
<li data-tab="adgroup"><a href="#">광고그룹</a></li>
<li data-tab="ad"><a href="#">광고</a></li>
</ul>
<div class="search">
<div class="d-flex align-items-center mb-2">
<input class="form-check-input" type="checkbox" value="1" id="searchAll">
<label class="form-check-label" for="searchAll">
전체검색
</label>
</div>
<form name="search-exec-form" class="search d-flex justify-content-center w-100">
<div class="input">
<input type="text" placeholder="검색어를 입력하세요" id="showExecAdv">
<button class="btn-primary" id="search_exec_btn" type="submit">조회</button>
</div>
</form>
</div>
<table class="table tbl-header w-100 mt-4" id="execTable">
<colgroup>
<col style="width:10%">
<col style="width:10%">
<col style="width:30%">
<col style="width:40%">
<col style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col">매체</th>
<th scope="col">분류</th>
<th scope="col">ID</th>
<th scope="col">제목</th>
<th scope="col">상태</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<table class="table tbl-header w-100 mt-4 execSelectTable" id="execSelectTable">
<colgroup>
<col style="width:8%">
<col style="width:8%">
<col style="width:10%">
<col style="width:14%">
<col style="width:20%">
<col style="width:15%">
<col style="width:15%">
<col style="width:12%">
</colgroup>
<thead>
<tr>
<th scope="col" colspan="8" class="text-center">
적용 항목
<div class="callTargetBtnBox">
<button class="callTargetBtn btn-primary">대상 불러오기</button>
</div>
</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<td colspan="5">일괄 적용</td>
<td>
<select name="all_exec_condition_type" class="form-select">
<option value="">실행항목</option>
<option value="status">상태</option>
<option value="budget">예산</option>
</select>
</td>
<td>
<select name="all_exec_condition_value_status" class="form-select" style="display: none;">
<option value="">상태값</option>
<option value="ON">ON</option>
<option value="OFF">OFF</option>
</select>
<input type="text" name="all_exec_condition_value" class="form-control"placeholder="예산">
</td>
<td>
<select name="all_exec_condition_type_budget" class="form-select">
<option value="">단위</option>
<option value="won">원</option>
<option value="percent">%</option>
</select>
</td>
</tr>
</tfoot>
</table>
<table class="table tbl-header w-100 mt-4 slackSendTable" id="slackSendTable">
<thead>
<tr>
<th scope="col" class="text-center">슬랙 메세지 보내기</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="form-flex">
<input type="text" name="slack_webhook" class="form-control" placeholder="웹훅 URL">
<input type="text" name="slack_msg" class="form-control" placeholder="메세지">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="detail" id="detailed" role="tabpanel" aria-labelledby="detailed-tab" tabindex="4">
<table class="table tbl-side" id="detailTable">
<colgroup>
<col style="width:35%">
<col>
</colgroup>
<tr>
<th scope="row">제목*</th>
<td>
<input type="text" name="subject" class="form-control bg">
</td>
</tr>
<tr>
<th scope="row">설명</th>
<td>
<textarea name="description" class="form-control"></textarea>
</td>
</tr>
</table>
<duv class="btn-area">
<button type="button" id="createAutomationBtn" class="btn-special">저장</button>
<button type="button" id="updateAutomationBtn" class="btn-special" style="display: none;">수정</button>
</duv>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,31 @@
<div class="modal fade" id="advLogModal" tabindex="-1" aria-labelledby="logModal" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title" id="logModal"><i class="ico-log"></i> 광고별 자동화 로그 <span></span></h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="section client-list automationBtnWrap">
<h3 class="content-title toggle">
<i class="bi bi-chevron-up"></i>
소속 자동화 목록
</h3>
<div class="row" id="automation-list"></div>
</div>
<table class="table tbl-dark advLogTable" id="advLogTable" style="width: 100%;">
<thead class="table-dark">
<tr>
<th scope="col">제목</th>
<th scope="col">작성자</th>
<th scope="col">결과</th>
<th scope="col">마지막 실행</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
@@ -0,0 +1,48 @@
<div class="modal fade" id="advChangeLogModal" tabindex="-1" aria-labelledby="advChangeLogModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title" id="advChangeLogModalLabel"><i class="bi bi-file-text"></i> 변경 내역</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul class="change-list m-2"></ul>
</div>
</div>
</div>
</div>
<!-- <div class="modal fade" id="advChangeLogModal" tabindex="-1" aria-labelledby="advChangeLogModal" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title" id="advChangeLogModal"><i class="ico-log"></i> 변경 내역 <span></span></h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<table class="table tbl-dark" id="advChangeLogTable" style="width: 100%;">
<colgroup>
<col style="width:10%;">
<col style="width:20%;">
<col style="width:10%;">
<col style="width:30%;">
<col style="width:10%;">
<col style="width:20%;">
</colgroup>
<thead class="table-dark">
<tr>
<th scope="col">매체</th>
<th scope="col">ID</th>
<th scope="col">분류</th>
<th scope="col">변경값</th>
<th scope="col">사용자</th>
<th scope="col">변경일자</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div> -->
+102
View File
@@ -0,0 +1,102 @@
<?php
$uri = current_url(true)->getPath();
?>
<div class="left-side">
<button type="button" class="btn-menu">메뉴보기</button>
<h1 class="logo">
<?php
$homeUrl = auth()->user()->inGroup('superadmin', 'admin', 'developer', 'user') ? '/' : '/integrate';
$logoPath = "/img/" . getenv('MY_SERVER_NAME') . "_logo.png";
$logoAlt = ucfirst(getenv('MY_SERVER_NAME'));
?>
<a href="<?php echo $homeUrl; ?>">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . $logoPath)) { ?>
<img src="<?php echo $logoPath; ?>" alt="<?php echo $logoAlt; ?>">
<?php } else { ?>
<?php echo $logoAlt; ?>
<?php } ?>
</a>
</h1>
<div class="nav-wrap">
<ul class="nav flex-column">
<?php if (auth()->user()->inGroup('superadmin', 'admin', 'developer', 'user', 'test')) {?>
<li>
<button data-bs-toggle="collapse" data-bs-target="#advertisements" aria-expanded="false"><i class="bi bi-graph-up-arrow"></i>통합 광고관리</button>
<div class="collapse" id="advertisements">
<ul class="btn-toggle-nav">
<li><a href="/advertisements" class="<?php if($uri === '/advertisements'){ echo "active";}?>">통합 광고관리</a></li>
<li><a href="/etcmanager" class="<?php if($uri === '/etcmanager'){ echo "active";}?>">기타 광고관리</a></li>
<li><a href="/automation" class="<?php if($uri === '/automation'){ echo "active";}?>">자동화 관리</a></li>
</ul>
</div>
</li>
<?php }?>
<li>
<button data-bs-toggle="collapse" data-bs-target="#integrate" aria-expanded="false"><i class="bi bi-person-lines-fill"></i>통합 DB관리</button>
<div class="collapse" id="integrate">
<ul class="btn-toggle-nav">
<li><a href="/integrate" class="<?php if($uri === '/integrate'){ echo "active";}?>">통합 DB관리</a></li>
<li><a href="/integrate/download" class="<?php if($uri === '/integrate/download'){ echo "active";}?>">다운로드</a></li>
</ul>
</div>
</li>
<?php
if (auth()->user()->inGroup('superadmin', 'admin', 'developer', 'user', 'test')) {
if(getenv('MY_SERVER_NAME') === 'carelabs'){
?>
<li>
<button data-bs-toggle="collapse" data-bs-target="#accounting" aria-expanded="false"><i class="bi bi-cash-coin"></i>회계 관리</button>
<div class="collapse" id="accounting">
<ul class="btn-toggle-nav">
<li><a href="/accounting/withdraw" class="<?php if($uri === '/accounting/withdraw' || $uri === '/accounting/withdrawList'){ echo "active";}?>">출금요청</a></li>
<li><a href="/accounting/tax" class="<?php if($uri === '/accounting/tax' || $uri === '/accounting/taxList'){ echo "active";}?>">세금계산서 요청</a></li>
<li><a href="/accounting/unpaid" class="<?php if($uri === '/accounting/unpaid'){ echo "active";}?>">미수금 관리</a></li>
</ul>
</div>
</li>
<li>
<a href="/humanresource/management" class="<?php if($uri === '/humanresource/management'){ echo "active";}?>"><button><i class="bi bi-alarm-fill"></i>시차 관리</button></a>
</li>
<?php }?>
<li>
<button data-bs-toggle="collapse" data-bs-target="#event" aria-expanded="false"><i class="bi bi-calendar-week"></i>이벤트</button>
<div class="collapse" id="event">
<ul class="btn-toggle-nav">
<li><a href="/eventmanage/event" class="<?php if($uri === '/eventmanage/event'){ echo "active";}?>">이벤트 관리</a></li>
<li><a href="/eventmanage/advertiser" class="<?php if($uri === '/eventmanage/advertiser'){ echo "active";}?>">광고주 관리</a></li>
<li><a href="/eventmanage/media" class="<?php if($uri === '/eventmanage/media'){ echo "active";}?>">매체 관리</a></li>
<li><a href="/eventmanage/change" class="<?php if($uri === '/eventmanage/change'){ echo "active";}?>">전환 관리</a></li>
<li><a href="/eventmanage/blacklist" class="<?php if($uri === '/eventmanage/blacklist'){ echo "active";}?>">블랙리스트 관리</a></li>
<?php if(getenv('MY_SERVER_NAME') === 'carelabs'){?>
<li><a href="https://event.hotblood.co.kr/example" target="_reference">레퍼런스</a></li>
<?php }?>
</ul>
</div>
</li>
<?php if (auth()->user()->inGroup('superadmin', 'developer', 'admin', 'user')) {?>
<li>
<button data-bs-toggle="collapse" data-bs-target="#user" aria-expanded="false"><i class="bi bi-person-badge-fill"></i>회원 관리</button>
<div class="collapse" id="user">
<ul class="btn-toggle-nav">
<li><a href="/company" class="<?php if($uri === '/company'){ echo "active";}?>">광고주/광고대행사 관리</a></li>
<li><a href="/user" class="<?php if($uri === '/user'){ echo "active";}?>">회원 관리</a></li>
</ul>
</div>
</li>
<?php }?>
<?php }?>
</ul>
</div>
<div class="user-nav">
<p><?php echo auth()->user()->username;?> 로그인 중</p>
<div class="util-nav">
<a href="/mypage"><span>마이페이지</span></a>
<a href="/logout"><span>로그아웃</span></a>
</div>
</div>
<div class="btn-top">
<a href="#" class="head"><i class="bi bi-chevron-double-up"></i><span class="sr-only">TOP</span></a>
<a href="#" class="list"><i class="bi bi-chevron-up"></i><span class="sr-only">Up To List</span></a>
</div>
</div>
@@ -0,0 +1,53 @@
<div class="left-side">
<button type="button" class="btn-menu">메뉴보기</button>
<h1 class="logo"><a href="/"><img src="/img/logo.png" alt="CHAIN 열혈광고"></a></h1>
<div class="nav-wrap">
<ul class="nav flex-column">
<li>
<button data-bs-toggle="collapse" data-bs-target="#ad" aria-expanded="false"><i class="bi bi-graph-up-arrow"></i>광고 관리</button>
<div class="collapse" id="ad">
<ul class="btn-toggle-nav">
<li><a href="/advertisements/facebook" class="">페이스북</a></li>
<li><a href="/example/kakao" class="">카카오 모먼트</a></li>
<li><a href="/example/google" class="active">구글 애드워즈</a></li>
<li><a href="/example/etc" class="">기타</a></li>
</ul>
</div>
</li>
<li>
<a href="/example/db"><button><i class="bi bi-people-fill"></i>통합 DB 관리</button></a>
</li>
<li>
<button data-bs-toggle="collapse" data-bs-target="#accounting" aria-expanded="false"><i class="bi bi-cash-coin"></i>회계 관리</button>
<div class="collapse" id="accounting">
<ul class="btn-toggle-nav">
<li><a href="/example/withdraw">출금요청</a></li>
<li><a href="/example/tax" class="active">세금계산서 요청</a></li>
<li><a href="/example/unpaid">미수금 관리</a></li>
</ul>
</div>
</li>
<li>
<a href="/example/manage"><button><i class="bi bi-person-vcard-fill"></i>인사 관리</button></a>
</li>
<li>
<button data-bs-toggle="collapse" data-bs-target="#event" aria-expanded="false"><i class="bi bi-calendar-week"></i>이벤트</button>
<div class="collapse" id="event">
<ul class="btn-toggle-nav">
<li><a href="/example/event_manage">이벤트 관리</a></li>
<li><a href="/company/list" class="">광고주 관리</a></li>
<li><a href="/example/media_manage">매체 관리</a></li>
<li><a href="/example/change_manage">전환 관리</a></li>
<li><a href="/example/exel">엑셀 업로드</a></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="util-nav">
<a href="#">마이페이지</a>
<a href="/logout">로그아웃</a>
</div>
</div>
<script>
</script>