Skip to content
Snippets Groups Projects
Commit 157d0515 authored by gazandi's avatar gazandi
Browse files

merge

parents 12b563fc ecffaed6
No related merge requests found
Pipeline #3006 skipped
Showing
with 697 additions and 201 deletions
<?php
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class TableAccessed extends Event
{
use SerializesModels;
private $model;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($model)
{
$this->model = $model;
}
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return [];
}
public function getModel() { return $this->model; }
}
<?php
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class TableModified extends Event
{
use SerializesModels;
private $model;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($model)
{
$this->model = $model;
}
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return [];
}
public function getModel() { return $this->model; }
}
......@@ -36,13 +36,19 @@ class RoleController extends Controller
public function index($userId)
{
return view('menu.manageRole', ['id'=>$userId,'dataRole' => User::find($userId)->roles()->get()]);
$model = User::find($userId)->roles()->get();
\Event::fire(new \App\Events\TableAccessed($model));
return view('menu.manageRole', ['id'=>$userId,'dataRole' => $model]);
}
public function store($userId)
{
$data = Input::all();
if (UsersRoles::create(["id_user"=>$userId, "id_role"=>Input::get('id_role')])){}
if (UsersRoles::create([
"id_user"=>$userId,
"id_role"=>Input::get('id_role'),
'created_by' => Auth::user()->id
])){}
return redirect('/user/'.$userId.'/role');
}
......
......@@ -59,6 +59,8 @@ class ScheduleController extends Controller
{
$all = Schedule::where('id_user', Auth::user()->id)->get();
}
// \Event::fire(new \App\Events\TableAccessed($all));
foreach ($all as $jadwal) {
$tmp = [];
$tmp = $jadwal;
......@@ -83,6 +85,7 @@ class ScheduleController extends Controller
$sched->time = Input::get('time','');
$sched->amount = Input::get('amount',1);
$sched->is_done = Input::get('is_done', 0);
$sched->created_by = Auth::user()->id;
$sched->id = 0;
$sched->save();
$tps = Tps::find($sched->id_tps);
......@@ -141,6 +144,7 @@ class ScheduleController extends Controller
if(Input::has('amount'))
$sched->amount = Input::get('amount');
$sched->is_done = Input::get('is_done');
\Event::fire(new \App\Events\TableModified($sched));
$sched->save();
$tps = Tps::find($sched->id_tps);
$this->notifySupir('TPS '.$tps->nama.' penuh, jadwal anda di TPS tersebut berubah');
......@@ -150,6 +154,7 @@ class ScheduleController extends Controller
{
if($sched->is_done!=Input::get('is_done')){
$sched->is_done = Input::get('is_done');
\Event::fire(new \App\Events\TableModified($sched));
$sched->save();
$tps = Tps::find($sched->id_tps);
$tps->capacity_now += $sched->amount;
......@@ -159,6 +164,7 @@ class ScheduleController extends Controller
$tps->capacity_now = $tps->capacity_full;
$tps->is_full = 1;
}
\Event::fire(new \App\Events\TableModified($tps));
$tps->save();
}
return redirect('/schedule');
......
......@@ -53,6 +53,7 @@ class TpsController extends Controller
{
$all = Tps::where('id_manager', Auth::user()->id)->get();
}
\Event::fire(new \App\Events\TableAccessed($all));
foreach ($all as $tps) {
$tmp = [];
$tmp = $tps;
......@@ -70,7 +71,12 @@ class TpsController extends Controller
$tps->nama = Input::get('name','');
$tps->is_full = Input::get('is_full', 0);
$tps->id_manager = Input::get('idPengelola', 0);
$tps->created_by = Auth::user()->id;
$tps->id = 0;
$tps->latitude = Input::get('latitude', 0);
$tps->longitude = Input::get('longitude', 0);
$tps->save();
//$tps = Tps::create(Input::all());
return redirect('/tps');
......@@ -108,7 +114,12 @@ class TpsController extends Controller
$tps->nama = Input::get('name', '');
$tps->is_full = Input::get('is_full', 0);
$tps->id_manager = Input::get('idPengelola', 0);
$tps->latitude = Input::get('latitude', 0);
$tps->longitude = Input::get('longitude', 0);
$tps->save();
\Event::fire(new \App\Events\TableModified($tps));
return redirect('/tps');
}
......
......@@ -44,6 +44,7 @@ class UserController extends Controller
public function index()
{
\Event::fire(new \App\Events\TableAccessed(User::all()));
return view('menu.user', ['data' => User::all()]);
}
......@@ -53,6 +54,7 @@ class UserController extends Controller
'name' => Input::get('name'),
'email' => Input::get('email'),
'password' => bcrypt(Input::get('password')),
'created_by' => Auth::user()->id
]);
return redirect('/user');
}
......@@ -85,6 +87,7 @@ class UserController extends Controller
'email' => Input::get('email'),
'password' => bcrypt(Input::get('password')),
]);
\Event::fire(new \App\Events\TableModified($user));
return redirect('/user');
}
......
<?php
namespace App\Listeners;
use App\Events\TableAccessed;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Carbon\Carbon;
class LastAccessUpdate
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param TableAccessed $event
* @return void
*/
public function handle(TableAccessed $event)
{
foreach ($event->getModel() as $row) {
$row->seen_at = Carbon::now();
$row->seen_by = \Auth::user()->id;
$row->save();
}
}
}
<?php
namespace App\Listeners;
use App\Events\TableModified;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Carbon\Carbon;
class LastModifyUpdate
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param TableModified $event
* @return void
*/
public function handle(TableModified $event)
{
$event->getModel()->updated_by = \Auth::user()->id;
$event->getModel()->save();
}
}
<?php
namespace App\Listeners;
use App\Events\SomeEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\User;
use Carbon\Carbon;
class LoginLogger
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param SomeEvent $event
* @return void
*/
public function handle(User $user)
{
$user->last_login = Carbon::now();
$user->save();
}
}
......@@ -13,8 +13,14 @@ class EventServiceProvider extends ServiceProvider
* @var array
*/
protected $listen = [
'App\Events\SomeEvent' => [
'App\Listeners\EventListener',
'auth.login' => [
'App\Listeners\LoginLogger',
],
'App\Events\TableAccessed' => [
'App\Listeners\LastAccessUpdate',
],
'App\Events\TableModified' => [
'App\Listeners\LastModifyUpdate',
],
];
......
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddLastLoginColumnToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->timestamp('last_login')->after('remember_token');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('last_login');
});
}
}
fonts @ a44abd0e
Subproject commit a44abd0e742ad6e7fd8d8bc4c3cad5155c9f3a92
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
DirectoryIndex index.php
RewriteEngine On
Options +FollowSymLinks
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
<<<<<<< HEAD
<!DOCTYPE html>
<html lang="en" >
<head>
......@@ -46,6 +47,51 @@
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
=======
@extends('layouts.app')
<!-- Main Content -->
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Reset Password</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<form class="form-horizontal" role="form" method="POST" action="{{ url('/password/email') }}">
{!! csrf_field() !!}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email" value="{{ old('email') }}">
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
<i class="fa fa-btn fa-envelope"></i>Send Password Reset Link
</button>
</div>
</div>
</form>
</div>
>>>>>>> ecffaed687c3ade83aae1f82fbedc122ce76264b
</div>
</div>
</div>
......
......@@ -11,155 +11,16 @@
<i class="icon-bdg_expand2 text-active"></i>
</a> </li>
<li><a href>Home</a></li>
<li class="active"><i class="fa fa-angle-right"></i>Chart</li>
<li class="active"><i class="fa fa-angle-right"></i>Map</li>
</ul>
</div>
<div class="wrapper-lg bg-light">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading font-semibold">
Responsive Table
<div class="panel-heading font-semibold" style="height: 400px; padding: 2px;">
<div id="map" style="height: 100%;"></div>
</div>
<div class="row wrapper-sm">
<div class="col-sm-5">
<select class="input-sm form-control w-sm inline v-middle">
<option value="0">Bulk action</option>
<option value="1">Delete selected</option>
<option value="2">Bulk edit</option>
<option value="3">Export</option>
</select>
<button class="btn btn-sm btn-default">Apply</button>
</div>
<div class="col-sm-4">
</div>
<div class="col-sm-3">
<div class="input-group">
<input type="text" class="input-sm form-control" placeholder="Search">
<span class="input-group-btn">
<button class="btn btn-sm btn-default" type="button">Go!</button>
</span>
</div>
</div>
</div>
<div class="table-responsive">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th style="width:20px;">
<label class="checkbox-inline ">
<input type="checkbox"><i></i>
</label>
</th>
<th>Project</th>
<th>Task</th>
<th>Date</th>
<th style="width:30px;"></th>
</tr>
</thead>
<tbody>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Idrawfast</td>
<td>4c</td>
<td>Jul 25, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Formasa</td>
<td>8c</td>
<td>Jul 22, 2013</td>
<td>
<a href ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Avatar system</td>
<td>15c</td>
<td>Jul 15, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Throwdown</td>
<td>4c</td>
<td>Jul 11, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Idrawfast</td>
<td>4c</td>
<td>Jul 7, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Formasa</td>
<td>8c</td>
<td>Jul 3, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Avatar system</td>
<td>15c</td>
<td>Jul 2, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
<tr>
<td><label class="checkbox-inline "><input type="checkbox" name="post[]"><i></i></label></td>
<td>Videodown</td>
<td>4c</td>
<td>Jul 1, 2013</td>
<td>
<a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
<footer class="panel-footer">
<div class="row">
<div class="col-sm-4 hidden-xs">
<select class="input-sm form-control w-sm inline v-middle">
<option value="0">Bulk action</option>
<option value="1">Delete selected</option>
<option value="2">Bulk edit</option>
<option value="3">Export</option>
</select>
<button class="btn btn-sm btn-default">Apply</button>
</div>
<div class="col-sm-4 text-center">
<small class="text-muted inline m-t-sm m-b-sm">showing 20-30 of 50 items</small>
</div>
<div class="col-sm-4 text-right text-center-xs">
<ul class="pagination pagination-sm m-t-none m-b-none">
<li><a href><i class="icon-bdg_arrow4"></i></a></li>
<li><a href>1</a></li>
<li><a href>2</a></li>
<li><a href>3</a></li>
<li><a href>4</a></li>
<li><a href>5</a></li>
<li><a href><i class="icon-bdg_arrow3"></i></a></li>
</ul>
</div>
</div>
</footer>
</div>
</div>
</div>
......@@ -167,4 +28,42 @@
</div>
</div>
</div>
<script>
function initMap() {
var customMapType = new google.maps.StyledMapType([{"featureType":"road","stylers":[{"hue":"#5e00ff"},{"saturation":-79}]},{"featureType":"poi","stylers":[{"saturation":-78},{"hue":"#6600ff"},{"lightness":-47},{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"lightness":22}]},{"featureType":"landscape","stylers":[{"hue":"#6600ff"},{"saturation":-11}]},{},{},{"featureType":"water","stylers":[{"saturation":-65},{"hue":"#1900ff"},{"lightness":8}]},{"featureType":"road.local","stylers":[{"weight":1.3},{"lightness":30}]},{"featureType":"transit","stylers":[{"visibility":"simplified"},{"hue":"#5e00ff"},{"saturation":-16}]},{"featureType":"transit.line","stylers":[{"saturation":-72}]},{}], {
name: 'Custom Style'
});
var customMapTypeId = 'custom_style';
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: {lat: -6.914744, lng: 107.609810},
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, customMapTypeId]
}
});
var trashCan = {
path: 'M585.82,235.876H209.179c-39.621,0-71.728,32.082-71.728,71.703l38.865,412.675c0,39.597,32.131,71.703,71.751,71.703 h304.89c39.62,0,71.751-32.106,71.751-71.703l32.888-412.675C657.547,267.958,625.441,235.876,585.82,235.876z M301.839,666.41 c0,19.786-16.053,35.814-35.864,35.814c-19.81,0-35.863-16.053-35.863-35.814V343.467c0-19.786,16.053-35.888,35.863-35.888 c19.811,0,35.864,16.102,35.864,35.888V666.41L301.839,666.41z M427.385,666.41c0,19.786-16.053,35.814-35.863,35.814 c-19.81,0-35.863-16.053-35.863-35.814V343.467c0-19.786,16.053-35.888,35.863-35.888c19.811,0,35.863,16.102,35.863,35.888 V666.41z M552.933,666.41c0,19.786-16.054,35.814-35.864,35.814s-35.863-16.053-35.863-35.814V343.467 c0-19.786,16.053-35.888,35.863-35.888s35.864,16.102,35.864,35.888V666.41z M190.027,200.013L624.27,88.299 c23.981-6.148,38.425-30.594,32.252-54.576c-6.172-23.982-30.618-38.425-54.6-32.326L468.446,35.748 c-12.369-18.347-35.205-27.983-57.845-22.177l-52.088,13.443c-22.641,5.831-37.986,25.275-39.987,47.306l-150.847,38.84 c-23.982,6.148-38.401,30.594-32.253,54.576C141.599,191.742,166.045,206.136,190.027,200.013z',
fillColor: 'black',
fillOpacity: 1,
scale: 0.02,
strokeColor: 'black',
strokeWeight: 0.1
};
var marker = new google.maps.Marker({
position: map.getCenter(),
icon: trashCan,
map: map
});
map.mapTypes.set(customMapTypeId, customMapType);
map.setMapTypeId(customMapTypeId);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAQhtIUXQLjOphZJncykzuYoH85EWJ9JMc&callback=initMap">
</script>
@endsection
......@@ -41,18 +41,8 @@
<div class="form-group">
<label class="col-sm-2 control-label">Kapasitas Sekarang</label>
<div class="col-sm-10">
<input ondrag="sliderNowChanges()" id="capacity_now" name="capacity_now" value="<?php echo $data->capacity_now; ?>" ui-jq="slider" ui-options="{
min: 0,
max: 500,
step: 1,
value: <?php echo $data->capacity_now; ?>
}" class="slider slider-horizontal form-control" type="text"> <span id="span_capacity_now"class="m-l-sm font-bold">
<script type="text/javascript">
function sliderNowChanges(){
document.getElementById("span_capacity_now").innerHTML =
document.getElementById("capacity_now").value;
}
</script>
<input id="capacity_now" name="capacity_now" value="<?php echo $data->capacity_now; ?>" class="form-control" type="text"> <span id="span_capacity_now"class="m-l-sm font-bold">
</span>
</div>
</div>
......@@ -60,21 +50,9 @@
<div class="form-group">
<label class="col-sm-2 control-label">Kapasitas Penuh</label>
<div class="col-sm-10">
<input onchange="sliderFullChanges()" id="capacity_full" name="capacity_full" value="<?php echo $data->capacity_full; ?>" ui-jq="slider" ui-options="{
min: 0,
max: 500,
step: 1,
value: <?php echo $data->capacity_full; ?>
}" class="slider slider-horizontal form-control" type="text"> <span id="span_capacity_full" class="m-l-sm font-bold">
</span>
<input id="capacity_full" name="capacity_full" value="<?php echo $data->capacity_full; ?>" type="text" class="form-control">
</div>
</div>
<script type="text/javascript">
function sliderFullChanges(){
document.getElementById("span_capacity_full").innerHTML =
document.getElementById("capacity_full").value;
}
</script>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
......@@ -113,6 +91,17 @@
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-12">Lokasi TPS</label>
<div class="col-sm-12" style="height: 400px; padding: 2px;">
<input type="hidden" id='latitude' name='latitude' value='<?php echo $data->latitude; ?>'>
<input type="hidden" id='longitude' name='longitude' value='<?php echo $data->longitude; ?>'>
<div id="map" style="height: 100%;"></div>
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<a href="{{ url('/tps') }}"><button type="button" class="btn btn-default m-r-sm">Cancel</button></a>
......@@ -126,4 +115,52 @@
</div>
</div>
<script>
var marker = null;
function initMap() {
var customMapType = new google.maps.StyledMapType([{"featureType":"road","stylers":[{"hue":"#5e00ff"},{"saturation":-79}]},{"featureType":"poi","stylers":[{"saturation":-78},{"hue":"#6600ff"},{"lightness":-47},{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"lightness":22}]},{"featureType":"landscape","stylers":[{"hue":"#6600ff"},{"saturation":-11}]},{},{},{"featureType":"water","stylers":[{"saturation":-65},{"hue":"#1900ff"},{"lightness":8}]},{"featureType":"road.local","stylers":[{"weight":1.3},{"lightness":30}]},{"featureType":"transit","stylers":[{"visibility":"simplified"},{"hue":"#5e00ff"},{"saturation":-16}]},{"featureType":"transit.line","stylers":[{"saturation":-72}]},{}], {
name: 'Custom Style'
});
var customMapTypeId = 'custom_style';
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: {lat: -6.914744, lng: 107.609810},
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, customMapTypeId]
}
});
marker = new google.maps.Marker({
position: new google.maps.LatLng(<?=$data->latitude?>,<?=$data->longitude?>),
map: map
});
map.addListener('click', function(e) {
placeMarkerAndPanTo(e.latLng, map);
});
map.mapTypes.set(customMapTypeId, customMapType);
map.setMapTypeId(customMapTypeId);
}
function placeMarkerAndPanTo(latLng, map) {
marker.setPosition(latLng);
//update
document.getElementById('latitude').value = latLng.lat();
document.getElementById('longitude').value = latLng.lng();
//map.panTo(latLng);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAQhtIUXQLjOphZJncykzuYoH85EWJ9JMc&callback=initMap">
</script>
@endsection
\ No newline at end of file
......@@ -40,24 +40,14 @@
<div class="form-group">
<label class="col-sm-2 control-label">Kapasitas Sekarang</label>
<div class="col-sm-10">
<input id="slider" name="capacity_now" value="50" ui-jq="slider" ui-options="{
min: 0,
max: 500,
step: 1,
value: 50
}" class="slider slider-horizontal form-control" type="text"> <span class="m-l-sm font-bold"></span>
<input id="slider" name="capacity_now" value="0" class="form-control" type="number">
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-2 control-label">Kapasitas Penuh</label>
<div class="col-sm-10">
<input id="slider" name="capacity_full" value="50" ui-jq="slider" ui-options="{
min: 0,
max: 500,
step: 1,
value: 50
}" class="slider slider-horizontal form-control" type="text"> <span class="m-l-sm font-bold"></span>
<input id="slider" name="capacity_full" value="0" class="form-control" type="number">
</div>
</div>
......@@ -90,6 +80,18 @@
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-12">Lokasi TPS</label>
<div class="col-sm-12" style="height: 400px; padding: 2px;">
<input type="hidden" id='latitude' name='latitude' value='0'>
<input type="hidden" id='longitude' name='longitude' value='0'>
<div id="map" style="height: 100%;"></div>
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<a href="{{ url('/tps') }}"><button type="button" class="btn btn-default m-r-sm">Cancel</button></a>
......@@ -104,4 +106,51 @@
</div>
</div>
<script>
var marker = null;
function initMap() {
var customMapType = new google.maps.StyledMapType([{"featureType":"road","stylers":[{"hue":"#5e00ff"},{"saturation":-79}]},{"featureType":"poi","stylers":[{"saturation":-78},{"hue":"#6600ff"},{"lightness":-47},{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"lightness":22}]},{"featureType":"landscape","stylers":[{"hue":"#6600ff"},{"saturation":-11}]},{},{},{"featureType":"water","stylers":[{"saturation":-65},{"hue":"#1900ff"},{"lightness":8}]},{"featureType":"road.local","stylers":[{"weight":1.3},{"lightness":30}]},{"featureType":"transit","stylers":[{"visibility":"simplified"},{"hue":"#5e00ff"},{"saturation":-16}]},{"featureType":"transit.line","stylers":[{"saturation":-72}]},{}], {
name: 'Custom Style'
});
var customMapTypeId = 'custom_style';
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: {lat: -6.914744, lng: 107.609810},
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, customMapTypeId]
}
});
map.addListener('click', function(e) {
placeMarkerAndPanTo(e.latLng, map);
});
map.mapTypes.set(customMapTypeId, customMapType);
map.setMapTypeId(customMapTypeId);
}
function placeMarkerAndPanTo(latLng, map) {
if (marker == null) {
marker = new google.maps.Marker({
position: latLng,
map: map
});
} else {
marker.setPosition(latLng);
}
//update
document.getElementById('latitude').value = latLng.lat();
document.getElementById('longitude').value = latLng.lng();
//map.panTo(latLng);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAQhtIUXQLjOphZJncykzuYoH85EWJ9JMc&callback=initMap">
</script>
@endsection
\ No newline at end of file
......@@ -29,6 +29,14 @@ foreach ($data as $tps ) {
</ul>
</div>
<div>
<form action="tpssearch.blade.php" method="GET">
Search TPS:
<input type="search" name="key">
<input type="submit">
</form>
</div>
<div class="wrapper-lg bg-light">
<div class="row">
<!-- Pie Chart-->
......
<?php
$jumlahPenuh = 0;
$jumlahTakPenuh = 0;
foreach ($data as $tps ) {
if($tps->is_full==0){
$jumlahTakPenuh+=1;
}else{
$jumlahPenuh+=1;
}
}
?>
@extends('layouts.app')
@section('content')
{!! csrf_field() !!}
<div class="hbox hbox-auto-xs hbox-auto-sm ng-scope">
<div class="col">
<div class="app-content-body ">
<div class="bg-light lter">
<ul class="breadcrumb bg-grey-breadcrumb m-b-none">
<li><a href="#" class="btn no-shadow" ui-toggle-class="app-aside-folded" target=".app">
<i class="icon-bdg_expand1 text"></i>
<i class="icon-bdg_expand2 text-active"></i>
</a> </li>
<li><a href="{{ url('/') }}">Home</a></li>
<li class="active"><i class="fa fa-angle-right"></i>TPS</li>
</ul>
</div>
<div class="wrapper-lg bg-light">
<div class="row">
<!-- Pie Chart-->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading font-regular">Statistik TPS</div>
<div class="panel-body no-padder">
<div class="col-xs-8">
<div class="wrapper text-center">
<div ui-jq="sparkline" ui-options="[<?=$jumlahPenuh?>,<?=$jumlahTakPenuh?>], {type:'pie', height:140, sliceColors:['#001080','#8dc80e']}" class="sparkline inline text-center"></div>
<div class="line pull-in"></div>
</div>
</div>
<div class="col-xs-4 border-left">
<div class="wrapper">
<div class="text-xs">
<ul class="sparkline-info">
<li class="mb20 text-info font-light"><i class="fa fa-circle text-info"></i> Penuh</li>
<li class="mb20 text-success font-light"><i class="fa fa-circle text-success"></i> Takpenuh</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading font-semibold">
TPS Table
</div>
<div class="row wrapper-sm">
<div class="col-sm-5">
</div>
<div class="col-sm-6">
</div>
<div class="col-sm-1">
<a href="{{ url('/tps/create') }}"><button class="btn m-b-sm m-r-sm btn-info">Create</button></a>
</div>
</div>
<div class="row wrapper-sm">
<div class="col-sm-5">
<select id="aksi2" class="input-sm form-control w-sm inline v-middle">
<option value="0">Bulk action</option>
<option value="1">Delete selected</option>
<option value="2">Bulk edit</option>
</select>
<button onclick="aksi2();return false;" class="btn btn-sm btn-default">Apply</button>
</div>
<div class="col-sm-4">
</div>
<div class="col-sm-3">
<div class="input-group">
<input type="text" class="input-sm form-control" placeholder="Search">
<span class="input-group-btn">
<button class="btn btn-sm btn-default" type="button">Go!</button>
</span>
</div>
</div>
</div>
<div class="table-responsive">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th style="width:20px;">
<label class="checkbox-inline ">
<!-- <input type="checkbox"><i></i> -->
</label>
</th>
<th>Nama</th>
<th>Kapasitas saat ini</th>
<th>Kapasitas penuh</th>
<th>Manager</th>
<th>Tidak penuh</th>
</tr>
</thead>
<tbody>
<form id="deleteForm" method="POST">
{!! csrf_field() !!}
<input type="hidden" name="_method" value="DELETE">
@foreach ($data as $tps)
@if (str_contains($tps->nama, <?php $_POST["key"];?>)
<tr>
<td><label class="checkbox-inline "><input type="radio" name="id" value="<?=$tps->id?>"><i></i></label></td>
<td><?php echo $tps->nama;?></td>
<td><?php echo $tps->capacity_now;?></td>
<td><?php echo $tps->capacity_full;?></td>
<td><?php echo $tps->managerName;?></td>
<td>
<?php if($tps->is_full==0){?>
<a class="active"><i class="fa fa-check text-success text-active"></i></a>
<?php }else{?>
<a class="active"><i class="fa fa-times text-danger text-active"></i></a><?php }?>
</td>
</tr>
@endif
@endforeach
</form>
</tbody>
</table>
</div>
<footer class="panel-footer">
<div class="row">
<div class="col-sm-4 hidden-xs">
<select id="aksi" class="input-sm form-control w-sm inline v-middle">
<option value="0">Bulk action</option>
<option value="1">Delete selected</option>
<option value="2">Bulk edit</option>
</select>
<button onclick="aksi();return false;" class="btn btn-sm btn-default">Apply</button>
</div>
<script type="text/javascript">
function aksi(){
var lol = document.getElementById("aksi").value;
var KumpulanId = document.getElementsByName("id");
var id ;
for (i = 0; i < KumpulanId.length; i++) {
if (KumpulanId[i].checked) {
id = KumpulanId[i].value;
break;
}
}
if(id==null){
window.alert('pilih salah satu');
lol=3;
}
if(lol==0){
window.location.href = '/templatePPL2/public/tps';
}
if(lol==1){
var s = '/templatePPL2/public/tps/'+id;
document.getElementById("deleteForm").action = s;
document.getElementById("deleteForm").submit();
}
if(lol==2){
var s = '/templatePPL2/public/tps/'+id+'/edit';
window.location.href = s;
}
}
function aksi2(){
var lol = document.getElementById("aksi2").value;
var KumpulanId = document.getElementsByName("id");
var id ;
for (i = 0; i < KumpulanId.length; i++) {
if (KumpulanId[i].checked) {
id = KumpulanId[i].value;
break;
}
}
if(id==null){
window.alert('pilih salah satu');
lol=3;
}
if(lol==0){
window.location.href = '/templatePPL2/public/tps';
}
if(lol==1){
var s = '/templatePPL2/public/tps/'+id;
document.getElementById("deleteForm").action = s;
document.getElementById("deleteForm").submit();
}
if(lol==2){
var s = '/templatePPL2/public/tps/'+id+'/edit';
window.location.href = s;
}
}
</script>
<div class="col-sm-4 text-center">
<small class="text-muted inline m-t-sm m-b-sm">showing 20-30 of 50 items</small>
</div>
<div class="col-sm-4 text-right text-center-xs">
<ul class="pagination pagination-sm m-t-none m-b-none">
<li><a href><i class="icon-bdg_arrow4"></i></a></li>
<li><a href>1</a></li>
<li><a href>2</a></li>
<li><a href>3</a></li>
<li><a href>4</a></li>
<li><a href>5</a></li>
<li><a href><i class="icon-bdg_arrow3"></i></a></li>
</ul>
</div>
</div>
</footer>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment