feat: calendar and statistics in overview page

This commit is contained in:
myuqinurrohman 2025-03-20 13:24:54 +07:00
parent 46261e7412
commit 0bd398b3a0
6 changed files with 1503 additions and 401 deletions

View File

@ -3,13 +3,61 @@
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use App\Models\Cooperation;
use App\Models\Media;
use App\Models\Order;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class OverviewController extends Controller
{
public function index(){
return view('dashboard.overview.index', [
'title' => 'Ikhtisar',
]);
$data = [
'title' => 'Ikhtisar'
];
if(is_role(['3'])){
$mediaId = Auth::user()->company->media->id;
$media = Media::with('cooperations')->findOrFail($mediaId);
$user = User::with(['announcements'])->find(Auth::id());
// Data pengumuman
$data['announcements'] = $user->announcements()
->where(function ($query) {
$query->where('announcements_users.category', '=', 'general');
})
->get();
// Data pengajuan kerjasama
$data['cooperationRequests'] = $media->cooperations()
->where(function ($query) {
$query->where('media_cooperations.status', '=', '0');
})
->get();
// Data Kerjasama
$data['cooperationMedia'] = $media->cooperations->filter(function ($cooperation) use ($mediaId){
return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty();
});
// Data media order
$data['mediaOrders'] = $media->orders()
->where(function ($query) {
$query->where('media_orders.status', '=', '1');
})
->get();
}else if(is_role(['1'])){
// Data pengajuan kerjasama
$data['cooperationRequests'] = Cooperation::all();
// Data media order
$data['mediaOrders'] = Order::with(['cooperation'])->get();
}
return view('dashboard.overview.index', $data);
}
}

View File

@ -11,6 +11,7 @@
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Ikhtisar</h3>
</div><!-- .nk-block-head-content -->
{{-- {{dd($cooperationRequests)}} --}}
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
@ -18,17 +19,9 @@
<ul class="nk-block-tools g-3">
<li>
<div class="drodown">
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
<div class="dropdown-menu dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Last 30 Days</span></a></li>
<li><a href="#"><span>Last 6 Months</span></a></li>
<li><a href="#"><span>Last 1 Years</span></a></li>
</ul>
</div>
<a href="javascript:void(0);" class="btn btn-white btn-dim btn-outline-light"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span>{{idn_date(now(), 'l, d F Y')}}</a>
</div>
</li>
<li class="nk-block-tools-opt"><a href="#" class="btn btn-primary"><em class="icon ni ni-reports"></em><span>Reports</span></a></li>
</ul>
</div>
</div>
@ -37,136 +30,44 @@
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="row g-gs">
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="col-xxl-3 col-md-6">
<div class="card card-full overflow-hidden">
<div class="nk-ecwg nk-ecwg7 h-100">
<div class="card-inner flex-grow-1">
<div class="card-title-group mb-4">
<div class="card-title">
<h6 class="title">Today Orders</h6>
<h6 class="title">Statistik Isu</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">1,945</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayOrders"></canvas>
</div>
</div>
<div class="info"><span class="change up text-danger"><em class="icon ni ni-arrow-long-up"></em>4.63%</span><span> vs. last week</span></div>
<div class="nk-ecwg7-ck">
<canvas class="ecommerce-doughnut-s1" id="issueStatistics"></canvas>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Revenue</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">$2,338</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayRevenue"></canvas>
</div>
</div>
<div class="info"><span class="change down text-danger"><em class="icon ni ni-arrow-long-down"></em>2.34%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Customers</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">847</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayCustomers"></canvas>
</div>
</div>
<div class="info"><span class="change up text-danger"><em class="icon ni ni-arrow-long-up"></em>4.63%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Visitors</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">23,485</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayVisitors"></canvas>
</div>
</div>
<div class="info"><span class="change down text-danger"><em class="icon ni ni-arrow-long-down"></em>2.34%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-6">
<div class="card card-full">
<div class="nk-ecwg nk-ecwg8 h-100">
<div class="card-inner">
<div class="card-title-group mb-3">
<div class="card-title">
<h6 class="title">Sales Statistics</h6>
</div>
<div class="card-tools">
<div class="dropdown">
<a href="#" class="dropdown-toggle link link-light link-sm dropdown-indicator" data-bs-toggle="dropdown">Weekly</a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Daily</span></a></li>
<li><a href="#" class="active"><span>Weekly</span></a></li>
<li><a href="#"><span>Monthly</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<ul class="nk-ecwg8-legends">
<ul class="nk-ecwg7-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#6576ff"></span>
<span>Total Order</span>
<span class="dot dot-lg sq" data-bg="#FE4F2D"></span>
<span>Krisis</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#eb6459"></span>
<span>Cancelled Order</span>
<span class="dot dot-lg sq" data-bg="#E50046"></span>
<span>Negatif</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#5CB338"></span>
<span>Netral</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#3572EF"></span>
<span>Positif</span>
</div>
</li>
</ul>
<div class="nk-ecwg8-ck">
<canvas class="ecommerce-line-chart-s4" id="salesStatistics"></canvas>
</div>
<div class="chart-label-group ps-5">
<div class="chart-label">01 Jul, 2020</div>
<div class="chart-label">30 Jul, 2020</div>
</div>
</div><!-- .card-inner -->
</div>
</div><!-- .card -->
@ -177,29 +78,53 @@
<div class="card-inner flex-grow-1">
<div class="card-title-group mb-4">
<div class="card-title">
<h6 class="title">Order Statistics</h6>
<h6 class="title">Statistik Kanal Monitoring Media</h6>
</div>
</div>
<div class="nk-ecwg7-ck">
<canvas class="ecommerce-doughnut-s1" id="orderStatistics"></canvas>
<canvas class="ecommerce-doughnut-s1" id="mediaMonitoringStatistics"></canvas>
</div>
<ul class="nk-ecwg7-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#816bff"></span>
<span>Completed</span>
<span class="dot dot-lg sq" data-bg="#1877F2"></span>
<span>Facebook</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#13c9f2"></span>
<span>Processing</span>
<span class="dot dot-lg sq" data-bg="#1DA1F2"></span>
<span>Twitter</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#ff82b7"></span>
<span>Cancelled</span>
<span class="dot dot-lg sq" data-bg="#28A745"></span>
<span>Website</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#FF0000"></span>
<span>YouTube</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#E4405F"></span>
<span>Instagram</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#00F2EA"></span>
<span>TikTok</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#333333"></span>
<span>Cetak</span>
</div>
</li>
</ul>
@ -208,281 +133,95 @@
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-md-6">
<div class="card h-100">
<div class="card-inner">
<div class="card-title-group mb-2">
<div class="card-title">
<h6 class="title">Store Statistics</h6>
<div class="card card-full overflow-hidden">
<div class="nk-ecwg nk-ecwg7 h-100">
<div class="card-inner flex-grow-1">
<div class="card-title-group mb-4">
<div class="card-title">
<h6 class="title">Statistik Media Order</h6>
</div>
</div>
</div>
<ul class="nk-store-statistics">
<li class="item">
<div class="info">
<div class="title">Orders</div>
<div class="count">1,795</div>
</div>
<em class="icon bg-primary-dim ni ni-bag"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Customers</div>
<div class="count">2,327</div>
</div>
<em class="icon bg-info-dim ni ni-users"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Products</div>
<div class="count">674</div>
</div>
<em class="icon bg-pink-dim ni ni-box"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Categories</div>
<div class="count">68</div>
</div>
<em class="icon bg-purple-dim ni ni-server"></em>
</li>
</ul>
</div><!-- .card-inner -->
<div class="nk-ecwg7-ck">
<canvas class="ecommerce-doughnut-s1" id="mediaOrderStatistics"></canvas>
</div>
<ul class="nk-ecwg7-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#FFB200"></span>
<span>Menunggu</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#4F75FF"></span>
<span>Diterima</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#E50046"></span>
<span>Ditolak</span>
</div>
</li>
</ul>
</div><!-- .card-inner -->
</div>
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-8">
<div class="card card-full">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Recent Orders</h6>
<div class="col-xxl-3 col-md-6">
<div class="card card-full overflow-hidden">
<div class="nk-ecwg nk-ecwg7 h-100">
<div class="card-inner flex-grow-1">
<div class="card-title-group mb-4">
<div class="card-title">
<h6 class="title">Statistik Kanal Rekap Konten</h6>
</div>
</div>
</div>
<div class="nk-ecwg7-ck">
<canvas class="ecommerce-doughnut-s1" id="recapContentChannelStatistics"></canvas>
</div>
<ul class="nk-ecwg7-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#1877F2"></span>
<span>Facebook</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#E4405F"></span>
<span>Instagram</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#00F2EA"></span>
<span>TikTok</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#1DA1F2"></span>
<span>Twitter</span>
</div>
</li>
</ul>
</div><!-- .card-inner -->
</div>
<div class="nk-tb-list mt-n2">
<div class="nk-tb-item nk-tb-head">
<div class="nk-tb-col"><span>Order No.</span></div>
<div class="nk-tb-col tb-col-sm"><span>Customer</span></div>
<div class="nk-tb-col tb-col-md"><span>Date</span></div>
<div class="nk-tb-col"><span>Amount</span></div>
<div class="nk-tb-col"><span class="d-none d-sm-inline">Status</span></div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95954</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-purple-dim">
<span>AB</span>
</div>
<div class="user-name">
<span class="tb-lead">Abu Bin Ishtiyak</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/11/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">4,596.75 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95850</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-azure-dim">
<span>DE</span>
</div>
<div class="user-name">
<span class="tb-lead">Desiree Edwards</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/02/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">596.75 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-danger">Cancelled</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95812</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-warning-dim">
<img src="./images/avatar/b-sm.jpg" alt="">
</div>
<div class="user-name">
<span class="tb-lead">Blanca Schultz</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/01/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">199.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95256</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-purple-dim">
<span>NL</span>
</div>
<div class="user-name">
<span class="tb-lead">Naomi Lawrence</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">01/29/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">1099.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95135</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-success-dim">
<span>CH</span>
</div>
<div class="user-name">
<span class="tb-lead">Cassandra Hogan</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">01/29/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">1099.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-warning">Due</span>
</div>
</div>
</div>
</div><!-- .card -->
</div>
<div class="col-xxl-4 col-md-8 col-lg-6">
<div class="card h-100">
<div class="card-inner">
<div class="card-title-group mb-2">
<div class="card-title">
<h6 class="title">Top products</h6>
</div>
<div class="card-tools">
<div class="dropdown">
<a href="#" class="dropdown-toggle link link-light link-sm dropdown-indicator" data-bs-toggle="dropdown">Weekly</a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Daily</span></a></li>
<li><a href="#" class="active"><span>Weekly</span></a></li>
<li><a href="#"><span>Monthly</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<ul class="nk-top-products">
<li class="item">
<div class="thumb">
<img src="./images/product/a.png" alt="">
</div>
<div class="info">
<div class="title">Pink Fitness Tracker</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/b.png" alt="">
</div>
<div class="info">
<div class="title">Purple Smartwatch</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/c.png" alt="">
</div>
<div class="info">
<div class="title">Black Smartwatch</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/d.png" alt="">
</div>
<div class="info">
<div class="title">Black Headphones</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/e.png" alt="">
</div>
<div class="info">
<div class="title">iPhone 7 Headphones</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
</ul>
</div><!-- .card-inner -->
</div><!-- .card -->
</div><!-- .col -->
</div><!-- .row -->
</div><!-- .nk-block -->
<div class="nk-block">
<div class="card">
<div class="card-inner">
<div id="calendar" class="nk-calendar"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer')
@include('partials.dashboard.footer', ['overview_page' => true])

View File

@ -0,0 +1,238 @@
<script>
"use strict";
!function (NioApp, $) {
"use strict"; // Variable
var $win = $(window),
$body = $('body'),
breaks = NioApp.Break;
NioApp.Calendar = function () {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var yyyy = today.getFullYear();
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate() + 1);
var t_dd = String(tomorrow.getDate()).padStart(2, '0');
var t_mm = String(tomorrow.getMonth() + 1).padStart(2, '0');
var t_yyyy = tomorrow.getFullYear();
var yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
var y_dd = String(yesterday.getDate()).padStart(2, '0');
var y_mm = String(yesterday.getMonth() + 1).padStart(2, '0');
var y_yyyy = yesterday.getFullYear();
var YM = yyyy + '-' + mm;
var YESTERDAY = y_yyyy + '-' + y_mm + '-' + y_dd;
var TODAY = yyyy + '-' + mm + '-' + dd;
var TOMORROW = t_yyyy + '-' + t_mm + '-' + t_dd;
var month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var calendarEl = document.getElementById('calendar');
var eventsEl = document.getElementById('externalEvents');
var removeEvent = document.getElementById('removeEvent');
var addEventBtn = $('#addEvent');
var addEventForm = $('#addEventForm');
var addEventPopup = $('#addEventPopup');
var updateEventBtn = $('#updateEvent');
var editEventForm = $('#editEventForm');
var editEventPopup = $('#editEventPopup');
var previewEventPopup = $('#previewEventPopup');
var deleteEventBtn = $('#deleteEvent');
var mobileView = NioApp.Win.width < NioApp.Break.md ? true : false;
var calendar = new FullCalendar.Calendar(calendarEl, {
timeZone: 'UTC',
initialView: mobileView ? 'listWeek' : 'dayGridMonth',
themeSystem: 'bootstrap',
headerToolbar: {
left: 'title prev,next',
center: null,
right: 'today dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
height: 800,
contentHeight: 780,
aspectRatio: 3,
editable: true,
droppable: true,
views: {
dayGridMonth: {
dayMaxEventRows: false
}
},
direction: NioApp.State.isRTL ? "rtl" : "ltr",
nowIndicator: true,
now: TODAY + 'T09:25:00',
eventDragStart: function eventDragStart(info) {
$('.popover').popover('hide');
},
eventMouseEnter: function eventMouseEnter(info) {
$(info.el).popover({
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
title: info.event._def.title,
content: info.event._def.extendedProps.description,
placement: 'top'
});
info.event._def.extendedProps.description ? $(info.el).popover('show') : $(info.el).popover('hide');
},
eventMouseLeave: function eventMouseLeave(info) {
$(info.el).popover('hide');
},
eventClick: function eventClick(info) {
// Get data
var title = info.event._def.title;
var description = info.event._def.extendedProps.description;
var start = info.event._instance.range.start;
var startDate = start.getFullYear() + '-' + String(start.getMonth() + 1).padStart(2, '0') + '-' + String(start.getDate()).padStart(2, '0');
var startTime = start.toUTCString().split(' ');
startTime = startTime[startTime.length - 2];
startTime = startTime == '00:00:00' ? '' : startTime;
var end = info.event._instance.range.end;
var endDate = end.getFullYear() + '-' + String(end.getMonth() + 1).padStart(2, '0') + '-' + String(end.getDate()).padStart(2, '0');
var endTime = end.toUTCString().split(' ');
endTime = endTime[endTime.length - 2];
endTime = endTime == '00:00:00' ? '' : endTime;
var className = info.event._def.ui.classNames[0].slice(3);
var eventId = info.event._def.publicId; //Set data in eidt form
$('#edit-event-title').val(title);
$('#edit-event-start-date').val(startDate).datepicker('update');
$('#edit-event-end-date').val(endDate).datepicker('update');
$('#edit-event-start-time').val(startTime);
$('#edit-event-end-time').val(endTime);
$('#edit-event-description').val(description);
$('#edit-event-theme').val(className);
$('#edit-event-theme').trigger('change.select2');
editEventForm.attr('data-id', eventId); // Set data in preview
var previewStart = String(start.getDate()).padStart(2, '0') + ' ' + month[start.getMonth()] + ' ' + start.getFullYear() + (startTime ? ' - ' + to12(startTime) : '');
var previewEnd = String(end.getDate()).padStart(2, '0') + ' ' + month[end.getMonth()] + ' ' + end.getFullYear() + (endTime ? ' - ' + to12(endTime) : '');
$('#preview-event-title').text(title);
$('#preview-event-header').addClass('fc-' + className);
$('#preview-event-start').text(previewStart);
$('#preview-event-end').text(previewEnd);
$('#preview-event-description').text(description);
!description ? $('#preview-event-description-check').css('display', 'none') : null;
previewEventPopup.modal('show');
$('.popover').popover('hide');
},
events: [
@foreach($cooperationRequests as $cm)
{
id: 'default-event-id-' + Math.floor(Math.random() * 9999999),
title: "Pengajuan Kerjasama: {{$cm->name}}",
start: "{{idn_date($cm->start_date, 'Y-m-d')}}",
end: "{{idn_date(\Carbon\Carbon::parse($cm->end_date)->addDay(), 'Y-m-d')}}",
className: "fc-event-info",
description: "Periode pengajuan: {{idn_date($cm->start_date, 'd F Y')}} s.d. {{idn_date($cm->end_date, 'd F Y')}}. Mengajukan kepada {{$cm->media->count()}} media."
},
@endforeach
@foreach($mediaOrders as $mo)
{
id: 'default-event-id-' + Math.floor(Math.random() * 9999999),
title: "Media Order Kerjasama: {{$mo->cooperation->name}}",
start: "{{idn_date($mo->start_date, 'Y-m-d')}}",
end: "{{idn_date(\Carbon\Carbon::parse($mo->end_date)->addDay(), 'Y-m-d')}}",
className: "fc-event-primary",
description: "Periode kegiatan media order: {{idn_date($mo->start_date, 'd F Y')}} s.d. {{idn_date($mo->end_date, 'd F Y')}}."
},
@endforeach
]
});
calendar.render(); //Add event
addEventBtn.on("click", function (e) {
e.preventDefault();
var eventTitle = $('#event-title').val();
var eventStartDate = $('#event-start-date').val();
var eventEndDate = $('#event-end-date').val();
var eventStartTime = $('#event-start-time').val();
var eventEndTime = $('#event-end-time').val();
var eventDescription = $('#event-description').val();
var eventTheme = $('#event-theme').val();
var eventStartTimeCheck = eventStartTime ? 'T' + eventStartTime + 'Z' : '';
var eventEndTimeCheck = eventEndTime ? 'T' + eventEndTime + 'Z' : '';
console.log(eventStartTime);
calendar.addEvent({
id: 'added-event-id-' + Math.floor(Math.random() * 9999999),
title: eventTitle,
start: eventStartDate + eventStartTimeCheck,
end: eventEndDate + eventEndTimeCheck,
className: "fc-" + eventTheme,
description: eventDescription
});
addEventPopup.modal('hide');
});
updateEventBtn.on("click", function (e) {
e.preventDefault();
var eventTitle = $('#edit-event-title').val();
var eventStartDate = $('#edit-event-start-date').val();
var eventEndDate = $('#edit-event-end-date').val();
var eventStartTime = $('#edit-event-start-time').val();
var eventEndTime = $('#edit-event-end-time').val();
var eventDescription = $('#edit-event-description').val();
var eventTheme = $('#edit-event-theme').val();
var eventStartTimeCheck = eventStartTime ? 'T' + eventStartTime + 'Z' : '';
var eventEndTimeCheck = eventEndTime ? 'T' + eventEndTime + 'Z' : '';
var selectEvent = calendar.getEventById(editEventForm[0].dataset.id);
selectEvent.remove();
calendar.addEvent({
id: editEventForm[0].dataset.id,
title: eventTitle,
start: eventStartDate + eventStartTimeCheck,
end: eventEndDate + eventEndTimeCheck,
className: "fc-" + eventTheme,
description: eventDescription
});
editEventPopup.modal('hide');
});
deleteEventBtn.on("click", function (e) {
e.preventDefault();
var selectEvent = calendar.getEventById(editEventForm[0].dataset.id);
selectEvent.remove();
});
function to12(time) {
time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) {
time = time.slice(1);
time.pop();
time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12;
}
time = time.join('');
return time;
}
function customCalSelect(cat) {
if (!cat.id) {
return cat.text;
}
var $cat = $('<span class="fc-' + cat.element.value + '"> <span class="dot"></span>' + cat.text + '</span>');
return $cat;
}
;
NioApp.Select2('.select-calendar-theme', {
templateResult: customCalSelect
});
addEventPopup.on('hidden.bs.modal', function (e) {
setTimeout(function () {
$('#addEventForm input,#addEventForm textarea').val('');
$('#event-theme').val('event-primary');
$('#event-theme').trigger('change.select2');
}, 1000);
});
previewEventPopup.on('hidden.bs.modal', function (e) {
$('#preview-event-header').removeClass().addClass('modal-header');
});
};
NioApp.coms.docReady.push(NioApp.Calendar);
}(NioApp, jQuery);
</script>

View File

@ -0,0 +1,248 @@
<script>
"use strict";
!function (NioApp, $) {
"use strict"; // Variable
var $win = $(window),
$body = $('body'),
breaks = NioApp.Break;
NioApp.Calendar = function () {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var yyyy = today.getFullYear();
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate() + 1);
var t_dd = String(tomorrow.getDate()).padStart(2, '0');
var t_mm = String(tomorrow.getMonth() + 1).padStart(2, '0');
var t_yyyy = tomorrow.getFullYear();
var yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
var y_dd = String(yesterday.getDate()).padStart(2, '0');
var y_mm = String(yesterday.getMonth() + 1).padStart(2, '0');
var y_yyyy = yesterday.getFullYear();
var YM = yyyy + '-' + mm;
var YESTERDAY = y_yyyy + '-' + y_mm + '-' + y_dd;
var TODAY = yyyy + '-' + mm + '-' + dd;
var TOMORROW = t_yyyy + '-' + t_mm + '-' + t_dd;
var month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var calendarEl = document.getElementById('calendar');
var eventsEl = document.getElementById('externalEvents');
var removeEvent = document.getElementById('removeEvent');
var addEventBtn = $('#addEvent');
var addEventForm = $('#addEventForm');
var addEventPopup = $('#addEventPopup');
var updateEventBtn = $('#updateEvent');
var editEventForm = $('#editEventForm');
var editEventPopup = $('#editEventPopup');
var previewEventPopup = $('#previewEventPopup');
var deleteEventBtn = $('#deleteEvent');
var mobileView = NioApp.Win.width < NioApp.Break.md ? true : false;
var calendar = new FullCalendar.Calendar(calendarEl, {
timeZone: 'UTC',
initialView: mobileView ? 'listWeek' : 'dayGridMonth',
themeSystem: 'bootstrap',
headerToolbar: {
left: 'title prev,next',
center: null,
right: 'today dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
height: 800,
contentHeight: 780,
aspectRatio: 3,
editable: true,
droppable: true,
views: {
dayGridMonth: {
dayMaxEventRows: false
}
},
direction: NioApp.State.isRTL ? "rtl" : "ltr",
nowIndicator: true,
now: TODAY + 'T09:25:00',
eventDragStart: function eventDragStart(info) {
$('.popover').popover('hide');
},
eventMouseEnter: function eventMouseEnter(info) {
$(info.el).popover({
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
title: info.event._def.title,
content: info.event._def.extendedProps.description,
placement: 'top'
});
info.event._def.extendedProps.description ? $(info.el).popover('show') : $(info.el).popover('hide');
},
eventMouseLeave: function eventMouseLeave(info) {
$(info.el).popover('hide');
},
eventClick: function eventClick(info) {
// Get data
var title = info.event._def.title;
var description = info.event._def.extendedProps.description;
var start = info.event._instance.range.start;
var startDate = start.getFullYear() + '-' + String(start.getMonth() + 1).padStart(2, '0') + '-' + String(start.getDate()).padStart(2, '0');
var startTime = start.toUTCString().split(' ');
startTime = startTime[startTime.length - 2];
startTime = startTime == '00:00:00' ? '' : startTime;
var end = info.event._instance.range.end;
var endDate = end.getFullYear() + '-' + String(end.getMonth() + 1).padStart(2, '0') + '-' + String(end.getDate()).padStart(2, '0');
var endTime = end.toUTCString().split(' ');
endTime = endTime[endTime.length - 2];
endTime = endTime == '00:00:00' ? '' : endTime;
var className = info.event._def.ui.classNames[0].slice(3);
var eventId = info.event._def.publicId; //Set data in eidt form
$('#edit-event-title').val(title);
$('#edit-event-start-date').val(startDate).datepicker('update');
$('#edit-event-end-date').val(endDate).datepicker('update');
$('#edit-event-start-time').val(startTime);
$('#edit-event-end-time').val(endTime);
$('#edit-event-description').val(description);
$('#edit-event-theme').val(className);
$('#edit-event-theme').trigger('change.select2');
editEventForm.attr('data-id', eventId); // Set data in preview
var previewStart = String(start.getDate()).padStart(2, '0') + ' ' + month[start.getMonth()] + ' ' + start.getFullYear() + (startTime ? ' - ' + to12(startTime) : '');
var previewEnd = String(end.getDate()).padStart(2, '0') + ' ' + month[end.getMonth()] + ' ' + end.getFullYear() + (endTime ? ' - ' + to12(endTime) : '');
$('#preview-event-title').text(title);
$('#preview-event-header').addClass('fc-' + className);
$('#preview-event-start').text(previewStart);
$('#preview-event-end').text(previewEnd);
$('#preview-event-description').text(description);
!description ? $('#preview-event-description-check').css('display', 'none') : null;
previewEventPopup.modal('show');
$('.popover').popover('hide');
},
events: [
@foreach($announcements as $announcement)
{
id: 'default-event-id-' + Math.floor(Math.random() * 9999999),
title: "Pengumuman",
start: "{{idn_date($announcement->created_at, 'Y-m-d')}}",
className: "fc-event-danger-dim",
description: "Pengumuman: {{$announcement->headline}}. Selengkapnya Anda bisa baca pada menu pengumuman."
},
@endforeach
@foreach($cooperationRequests as $cm)
{
id: 'default-event-id-' + Math.floor(Math.random() * 9999999),
title: "Ajuan Kerjasama: {{$cm->name}}",
start: "{{idn_date($cm->start_date, 'Y-m-d')}}",
end: "{{idn_date(\Carbon\Carbon::parse($cm->end_date)->addDay(), 'Y-m-d')}}",
className: "fc-event-info",
description: "Simedkom mengajukan kerjasama. Periode pengajuan: {{idn_date($cm->start_date, 'd F Y')}} s.d. {{idn_date($cm->end_date, 'd F Y')}}. Selengkapnya lihat pada menu 'Ajuan Kerjasama'."
},
@endforeach
@foreach($mediaOrders as $mo)
{
id: 'default-event-id-' + Math.floor(Math.random() * 9999999),
title: "Media Order Kerjasama: {{$mo->cooperation->name}}",
start: "{{idn_date($mo->start_date, 'Y-m-d')}}",
end: "{{idn_date(\Carbon\Carbon::parse($mo->end_date)->addDay(), 'Y-m-d')}}",
className: "fc-event-primary",
description: "Periode kegiatan media order: {{idn_date($mo->start_date, 'd F Y')}} s.d. {{idn_date($mo->end_date, 'd F Y')}}."
},
@endforeach
]
});
calendar.render(); //Add event
addEventBtn.on("click", function (e) {
e.preventDefault();
var eventTitle = $('#event-title').val();
var eventStartDate = $('#event-start-date').val();
var eventEndDate = $('#event-end-date').val();
var eventStartTime = $('#event-start-time').val();
var eventEndTime = $('#event-end-time').val();
var eventDescription = $('#event-description').val();
var eventTheme = $('#event-theme').val();
var eventStartTimeCheck = eventStartTime ? 'T' + eventStartTime + 'Z' : '';
var eventEndTimeCheck = eventEndTime ? 'T' + eventEndTime + 'Z' : '';
console.log(eventStartTime);
calendar.addEvent({
id: 'added-event-id-' + Math.floor(Math.random() * 9999999),
title: eventTitle,
start: eventStartDate + eventStartTimeCheck,
end: eventEndDate + eventEndTimeCheck,
className: "fc-" + eventTheme,
description: eventDescription
});
addEventPopup.modal('hide');
});
updateEventBtn.on("click", function (e) {
e.preventDefault();
var eventTitle = $('#edit-event-title').val();
var eventStartDate = $('#edit-event-start-date').val();
var eventEndDate = $('#edit-event-end-date').val();
var eventStartTime = $('#edit-event-start-time').val();
var eventEndTime = $('#edit-event-end-time').val();
var eventDescription = $('#edit-event-description').val();
var eventTheme = $('#edit-event-theme').val();
var eventStartTimeCheck = eventStartTime ? 'T' + eventStartTime + 'Z' : '';
var eventEndTimeCheck = eventEndTime ? 'T' + eventEndTime + 'Z' : '';
var selectEvent = calendar.getEventById(editEventForm[0].dataset.id);
selectEvent.remove();
calendar.addEvent({
id: editEventForm[0].dataset.id,
title: eventTitle,
start: eventStartDate + eventStartTimeCheck,
end: eventEndDate + eventEndTimeCheck,
className: "fc-" + eventTheme,
description: eventDescription
});
editEventPopup.modal('hide');
});
deleteEventBtn.on("click", function (e) {
e.preventDefault();
var selectEvent = calendar.getEventById(editEventForm[0].dataset.id);
selectEvent.remove();
});
function to12(time) {
time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) {
time = time.slice(1);
time.pop();
time[5] = +time[0] < 12 ? ' AM' : ' PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12;
}
time = time.join('');
return time;
}
function customCalSelect(cat) {
if (!cat.id) {
return cat.text;
}
var $cat = $('<span class="fc-' + cat.element.value + '"> <span class="dot"></span>' + cat.text + '</span>');
return $cat;
}
;
NioApp.Select2('.select-calendar-theme', {
templateResult: customCalSelect
});
addEventPopup.on('hidden.bs.modal', function (e) {
setTimeout(function () {
$('#addEventForm input,#addEventForm textarea').val('');
$('#event-theme').val('event-primary');
$('#event-theme').trigger('change.select2');
}, 1000);
});
previewEventPopup.on('hidden.bs.modal', function (e) {
$('#preview-event-header').removeClass().addClass('modal-header');
});
};
NioApp.coms.docReady.push(NioApp.Calendar);
}(NioApp, jQuery);
</script>

View File

@ -0,0 +1,818 @@
<script>
"use strict";
!function (NioApp, $) {
"use strict";
var totalSales = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'Sales',
lineTension: .3,
datasets: [{
label: "Sales",
color: "#9d72ff",
background: NioApp.hexRGB('#9d72ff', .25),
data: [130, 105, 125, 115, 110, 95, 131, 110, 115, 120, 111, 97, 113, 107, 122, 100, 85, 110, 130, 107, 90, 105, 123, 115, 100, 117, 125, 95, 137, 101]
}]
};
var totalOrders = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'Orders',
lineTension: .3,
datasets: [{
label: "Orders",
color: "#7de1f8",
background: NioApp.hexRGB('#7de1f8', .25),
data: [85, 125, 105, 115, 130, 106, 141, 110, 95, 120, 111, 105, 113, 107, 122, 100, 95, 110, 120, 107, 100, 105, 123, 115, 110, 117, 125, 75, 95, 101]
}]
};
var totalCustomers = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'Customers',
lineTension: .3,
datasets: [{
label: "Customers",
color: "#83bcff",
background: NioApp.hexRGB('#83bcff', .25),
data: [92, 105, 125, 85, 110, 106, 131, 105, 110, 115, 135, 105, 120, 85, 122, 100, 125, 110, 120, 125, 85, 105, 123, 115, 90, 117, 125, 100, 95, 65]
}]
};
function ecommerceLineS1(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-line-chart-s1');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
label: _get_data.datasets[i].label,
tension: _get_data.lineTension,
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderColor: _get_data.datasets[i].color,
pointBorderColor: 'transparent',
pointBackgroundColor: 'transparent',
pointHoverBackgroundColor: "#fff",
pointHoverBorderColor: _get_data.datasets[i].color,
pointBorderWidth: 2,
pointHoverRadius: 4,
pointHoverBorderWidth: 2,
pointRadius: 4,
pointHitRadius: 4,
data: _get_data.datasets[i].data
});
}
var chart = new Chart(selectCanvas, {
type: 'line',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return data['labels'][tooltipItem[0]['index']];
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']] + ' ' + _get_data.dataUnit;
}
},
backgroundColor: '#1c2b46',
titleFontSize: 10,
titleFontColor: '#fff',
titleMarginBottom: 4,
bodyFontColor: '#fff',
bodyFontSize: 10,
bodySpacing: 4,
yPadding: 6,
xPadding: 6,
footerMarginTop: 0,
displayColors: false
},
scales: {
yAxes: [{
display: false,
ticks: {
beginAtZero: true,
fontSize: 12,
fontColor: '#9eaecf',
padding: 0
},
gridLines: {
color: NioApp.hexRGB("#526484", .2),
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2)
}
}],
xAxes: [{
display: false,
ticks: {
fontSize: 12,
fontColor: '#9eaecf',
source: 'auto',
padding: 0,
reverse: NioApp.State.isRTL
},
gridLines: {
color: "transparent",
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2),
offsetGridLines: true
}
}]
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceLineS1();
});
var storeVisitors = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'People',
lineTension: .1,
datasets: [{
label: "Current Month",
color: "#9d72ff",
dash: 0,
background: "transparent",
data: [4110, 4220, 4810, 5480, 4600, 5670, 6660, 4830, 5590, 5730, 4790, 4950, 5100, 5800, 5950, 5850, 5950, 4450, 4900, 8000, 7200, 7250, 7900, 8950, 6300, 7200, 7250, 7650, 6950, 4750]
}]
};
function ecommerceLineS2(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-line-chart-s2');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
label: _get_data.datasets[i].label,
tension: _get_data.lineTension,
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderDash: _get_data.datasets[i].dash,
borderColor: _get_data.datasets[i].color,
pointBorderColor: 'transparent',
pointBackgroundColor: 'transparent',
pointHoverBackgroundColor: "#fff",
pointHoverBorderColor: _get_data.datasets[i].color,
pointBorderWidth: 2,
pointHoverRadius: 4,
pointHoverBorderWidth: 2,
pointRadius: 4,
pointHitRadius: 4,
data: _get_data.datasets[i].data
});
}
var chart = new Chart(selectCanvas, {
type: 'line',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return data['labels'][tooltipItem[0]['index']];
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']];
}
},
backgroundColor: '#1c2b46',
titleFontSize: 13,
titleFontColor: '#fff',
titleMarginBottom: 6,
bodyFontColor: '#fff',
bodyFontSize: 12,
bodySpacing: 4,
yPadding: 10,
xPadding: 10,
footerMarginTop: 0,
displayColors: false
},
scales: {
yAxes: [{
display: true,
position: NioApp.State.isRTL ? "right" : "left",
ticks: {
fontSize: 12,
fontColor: '#9eaecf',
padding: 8,
stepSize: 2400,
display: false
},
gridLines: {
color: NioApp.hexRGB("#526484", .2),
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2)
}
}],
xAxes: [{
display: false,
ticks: {
fontSize: 12,
fontColor: '#9eaecf',
source: 'auto',
padding: 0,
reverse: NioApp.State.isRTL
},
gridLines: {
color: "transparent",
tickMarkLength: 0,
zeroLineColor: 'transparent',
offsetGridLines: true
}
}]
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceLineS2();
});
var todayOrders = {
labels: ["12AM - 02AM", "02AM - 04AM", "04AM - 06AM", "06AM - 08AM", "08AM - 10AM", "10AM - 12PM", "12PM - 02PM", "02PM - 04PM", "04PM - 06PM", "06PM - 08PM", "08PM - 10PM", "10PM - 12PM"],
dataUnit: 'Orders',
lineTension: .3,
datasets: [{
label: "Orders",
color: "#854fff",
background: "transparent",
data: [92, 105, 125, 85, 110, 106, 131, 105, 110, 131, 105, 110]
}]
};
var todayRevenue = {
labels: ["12AM - 02AM", "02AM - 04AM", "04AM - 06AM", "06AM - 08AM", "08AM - 10AM", "10AM - 12PM", "12PM - 02PM", "02PM - 04PM", "04PM - 06PM", "06PM - 08PM", "08PM - 10PM", "10PM - 12PM"],
dataUnit: 'Orders',
lineTension: .3,
datasets: [{
label: "Revenue",
color: "#33d895",
background: "transparent",
data: [92, 105, 125, 85, 110, 106, 131, 105, 110, 131, 105, 110]
}]
};
var todayCustomers = {
labels: ["12AM - 02AM", "02AM - 04AM", "04AM - 06AM", "06AM - 08AM", "08AM - 10AM", "10AM - 12PM", "12PM - 02PM", "02PM - 04PM", "04PM - 06PM", "06PM - 08PM", "08PM - 10PM", "10PM - 12PM"],
dataUnit: 'Orders',
lineTension: .3,
datasets: [{
label: "Customers",
color: "#ff63a5",
background: "transparent",
data: [92, 105, 125, 85, 110, 106, 131, 105, 110, 131, 105, 110]
}]
};
var todayVisitors = {
labels: ["12AM - 02AM", "02AM - 04AM", "04AM - 06AM", "06AM - 08AM", "08AM - 10AM", "10AM - 12PM", "12PM - 02PM", "02PM - 04PM", "04PM - 06PM", "06PM - 08PM", "08PM - 10PM", "10PM - 12PM"],
dataUnit: 'Orders',
lineTension: .3,
datasets: [{
label: "Visitors",
color: "#559bfb",
background: "transparent",
data: [92, 105, 125, 85, 110, 106, 131, 105, 110, 131, 105, 110]
}]
};
function ecommerceLineS3(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-line-chart-s3');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
label: _get_data.datasets[i].label,
tension: _get_data.lineTension,
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderColor: _get_data.datasets[i].color,
pointBorderColor: 'transparent',
pointBackgroundColor: 'transparent',
pointHoverBackgroundColor: "#fff",
pointHoverBorderColor: _get_data.datasets[i].color,
pointBorderWidth: 2,
pointHoverRadius: 4,
pointHoverBorderWidth: 2,
pointRadius: 4,
pointHitRadius: 4,
data: _get_data.datasets[i].data
});
}
var chart = new Chart(selectCanvas, {
type: 'line',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return false;
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']] + ' ' + _get_data.dataUnit;
}
},
backgroundColor: '#1c2b46',
titleFontSize: 8,
titleFontColor: '#fff',
titleMarginBottom: 4,
bodyFontColor: '#fff',
bodyFontSize: 8,
bodySpacing: 4,
yPadding: 6,
xPadding: 6,
footerMarginTop: 0,
displayColors: false
},
scales: {
yAxes: [{
display: false,
ticks: {
beginAtZero: false,
fontSize: 12,
fontColor: '#9eaecf',
padding: 0
},
gridLines: {
color: NioApp.hexRGB("#526484", .2),
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2)
}
}],
xAxes: [{
display: false,
ticks: {
fontSize: 12,
fontColor: '#9eaecf',
source: 'auto',
padding: 0,
reverse: NioApp.State.isRTL
},
gridLines: {
color: "transparent",
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2),
offsetGridLines: true
}
}]
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceLineS3();
});
var salesStatistics = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'People',
lineTension: .4,
datasets: [{
label: "Total orders",
color: "#9d72ff",
dash: 0,
background: NioApp.hexRGB('#9d72ff', .15),
data: [3710, 4820, 4810, 5480, 5300, 5670, 6660, 4830, 5590, 5730, 4790, 4950, 5100, 5800, 5950, 5850, 5950, 4450, 4900, 8000, 7200, 7250, 7900, 8950, 6300, 7200, 7250, 7650, 6950, 4750]
}, {
label: "Canceled orders",
color: "#eb6459",
dash: [5],
background: "transparent",
data: [110, 220, 810, 480, 600, 670, 660, 830, 590, 730, 790, 950, 100, 800, 950, 850, 950, 450, 900, 0, 200, 250, 900, 950, 300, 200, 250, 650, 950, 750]
}]
};
function ecommerceLineS4(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-line-chart-s4');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
label: _get_data.datasets[i].label,
tension: _get_data.lineTension,
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderDash: _get_data.datasets[i].dash,
borderColor: _get_data.datasets[i].color,
pointBorderColor: 'transparent',
pointBackgroundColor: 'transparent',
pointHoverBackgroundColor: "#fff",
pointHoverBorderColor: _get_data.datasets[i].color,
pointBorderWidth: 2,
pointHoverRadius: 4,
pointHoverBorderWidth: 2,
pointRadius: 4,
pointHitRadius: 4,
data: _get_data.datasets[i].data
});
}
var chart = new Chart(selectCanvas, {
type: 'line',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return data['labels'][tooltipItem[0]['index']];
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']];
}
},
backgroundColor: '#1c2b46',
titleFontSize: 13,
titleFontColor: '#fff',
titleMarginBottom: 6,
bodyFontColor: '#fff',
bodyFontSize: 12,
bodySpacing: 4,
yPadding: 10,
xPadding: 10,
footerMarginTop: 0,
displayColors: false
},
scales: {
yAxes: [{
display: true,
stacked: _get_data.stacked ? _get_data.stacked : false,
position: NioApp.State.isRTL ? "right" : "left",
ticks: {
beginAtZero: true,
fontSize: 11,
fontColor: '#9eaecf',
padding: 10,
callback: function callback(value, index, values) {
return '$ ' + value;
},
min: 0,
stepSize: 3000
},
gridLines: {
color: NioApp.hexRGB("#526484", .2),
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2)
}
}],
xAxes: [{
display: false,
stacked: _get_data.stacked ? _get_data.stacked : false,
ticks: {
fontSize: 9,
fontColor: '#9eaecf',
source: 'auto',
padding: 10,
reverse: NioApp.State.isRTL
},
gridLines: {
color: "transparent",
tickMarkLength: 0,
zeroLineColor: 'transparent'
}
}]
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceLineS4();
});
var averargeOrder = {
labels: ["01 Jan", "02 Jan", "03 Jan", "04 Jan", "05 Jan", "06 Jan", "07 Jan", "08 Jan", "09 Jan", "10 Jan", "11 Jan", "12 Jan", "13 Jan", "14 Jan", "15 Jan", "16 Jan", "17 Jan", "18 Jan", "19 Jan", "20 Jan", "21 Jan", "22 Jan", "23 Jan", "24 Jan", "25 Jan", "26 Jan", "27 Jan", "28 Jan", "29 Jan", "30 Jan"],
dataUnit: 'People',
lineTension: .1,
datasets: [{
label: "Active Users",
color: "#b695ff",
background: "#b695ff",
data: [1110, 1220, 1310, 980, 900, 770, 1060, 830, 690, 730, 790, 950, 1100, 800, 1250, 850, 950, 450, 900, 1000, 1200, 1250, 900, 950, 1300, 1200, 1250, 650, 950, 750]
}]
};
function ecommerceBarS1(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-bar-chart-s1');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
label: _get_data.datasets[i].label,
tension: _get_data.lineTension,
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderColor: _get_data.datasets[i].color,
data: _get_data.datasets[i].data,
barPercentage: .7,
categoryPercentage: .7
});
}
var chart = new Chart(selectCanvas, {
type: 'bar',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return false; //data['labels'][tooltipItem[0]['index']];
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']];
}
},
backgroundColor: '#1c2b46',
titleFontSize: 9,
titleFontColor: '#fff',
titleMarginBottom: 6,
bodyFontColor: '#fff',
bodyFontSize: 9,
bodySpacing: 4,
yPadding: 6,
xPadding: 6,
footerMarginTop: 0,
displayColors: false
},
scales: {
yAxes: [{
display: true,
position: NioApp.State.isRTL ? "right" : "left",
ticks: {
beginAtZero: false,
fontSize: 12,
fontColor: '#9eaecf',
padding: 0,
display: false,
stepSize: 100
},
gridLines: {
color: NioApp.hexRGB("#526484", .2),
tickMarkLength: 0,
zeroLineColor: NioApp.hexRGB("#526484", .2)
}
}],
xAxes: [{
display: false,
ticks: {
fontSize: 12,
fontColor: '#9eaecf',
source: 'auto',
padding: 0,
reverse: NioApp.State.isRTL
},
gridLines: {
color: "transparent",
tickMarkLength: 0,
zeroLineColor: 'transparent',
offsetGridLines: true
}
}]
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceBarS1();
});
var trafficSources = {
labels: ["Organic Search", "Social Media", "Referrals", "Others"],
dataUnit: 'People',
legend: false,
datasets: [{
borderColor: "#fff",
background: ["#b695ff", "#b8acff", "#ffa9ce", "#f9db7b"],
data: [4305, 859, 482, 138]
}]
};
var issueStatistics = {
labels: ["Krisis", "Negatif", "Netral", "Positif"],
dataUnit: 'Data',
legend: false,
datasets: [{
borderColor: "#fff",
background: ["#FE4F2D", "#E50046", "#5CB338", "#3572EF"],
data: [100, 100, 100, 100]
}]
};
var mediaMonitoringStatistics = {
labels: ["Facebook", "Twitter", "Website", "YouTube", "Intagram", "TikTok", "Cetak"],
dataUnit: 'Data',
legend: false,
datasets: [{
borderColor: "#fff",
background: ["#1877F2", "#1DA1F2", "#28A745", "#FF0000", "#E4405F", "#00F2EA", "#333333"],
data: [100, 100, 100, 100, 100, 100, 100]
}]
};
var mediaOrderStatistics = {
labels: ["Menunggu", "Diterima", "Ditolak"],
dataUnit: 'Data',
legend: false,
datasets: [{
borderColor: "#fff",
background: ["#FFB200", "#4F75FF", "#E50046"],
data: [100, 100, 100]
}]
};
var recapContentChannelStatistics = {
labels: ["Facebook", "Twitter", "Website", "YouTube", "Intagram", "TikTok", "Cetak"],
dataUnit: 'Data',
legend: false,
datasets: [{
borderColor: "#fff",
background: ["#1877F2", "#1DA1F2", "#28A745", "#FF0000", "#E4405F", "#00F2EA", "#333333"],
data: [100, 100, 100, 100, 100, 100, 100]
}]
};
function ecommerceDoughnutS1(selector, set_data) {
var $selector = selector ? $(selector) : $('.ecommerce-doughnut-s1');
$selector.each(function () {
var $self = $(this),
_self_id = $self.attr('id'),
_get_data = typeof set_data === 'undefined' ? eval(_self_id) : set_data;
var selectCanvas = document.getElementById(_self_id).getContext("2d");
var chart_data = [];
for (var i = 0; i < _get_data.datasets.length; i++) {
chart_data.push({
backgroundColor: _get_data.datasets[i].background,
borderWidth: 2,
borderColor: _get_data.datasets[i].borderColor,
hoverBorderColor: _get_data.datasets[i].borderColor,
data: _get_data.datasets[i].data
});
}
var chart = new Chart(selectCanvas, {
type: 'doughnut',
data: {
labels: _get_data.labels,
datasets: chart_data
},
options: {
legend: {
display: _get_data.legend ? _get_data.legend : false,
rtl: NioApp.State.isRTL,
labels: {
boxWidth: 12,
padding: 20,
fontColor: '#6783b8'
}
},
rotation: -1.5,
cutoutPercentage: 70,
maintainAspectRatio: false,
tooltips: {
enabled: true,
rtl: NioApp.State.isRTL,
callbacks: {
title: function title(tooltipItem, data) {
return data['labels'][tooltipItem[0]['index']];
},
label: function label(tooltipItem, data) {
return data.datasets[tooltipItem.datasetIndex]['data'][tooltipItem['index']] + ' ' + _get_data.dataUnit;
}
},
backgroundColor: '#1c2b46',
titleFontSize: 13,
titleFontColor: '#fff',
titleMarginBottom: 6,
bodyFontColor: '#fff',
bodyFontSize: 12,
bodySpacing: 4,
yPadding: 10,
xPadding: 10,
footerMarginTop: 0,
displayColors: false
}
}
});
});
} // init chart
NioApp.coms.docReady.push(function () {
ecommerceDoughnutS1();
});
}(NioApp, jQuery);
</script>

View File

@ -113,6 +113,17 @@
@include('partials.app.datatable', ['datatable' => $datatable])
@endif
@if (isset($overview_page))
<script src="{{asset('assets/dashboard/js/libs/fullcalendar.js?ver=3.0.3')}}"></script>
@include('partials.app.overview-statistics')
@if(is_role(['1']))
@include('partials.app.calendars.admin')
@elseif (is_role(['3']))
@include('partials.app.calendars.media')
@endif
@endif
@if (isset($rich_editor))
<link rel="stylesheet" href="{{asset('assets/dashboard/css/editors/tinymce.css?ver=3.0.3')}}">
<script src="{{asset('assets/dashboard/js/libs/editors/tinymce.js?ver=3.0.3')}}"></script>