From f0386a84bf228a12c2696adb10b727a6fd89dac2 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Tue, 20 Dec 2016 22:27:51 +0800 Subject: [PATCH] Update 2016-12-20.22.23 Add vendor_id to subscriptions table Add Event is_allday to user_events table Add logfiles viewer for admin --- app/Entities/BaseRepository.php | 5 + app/Entities/Payments/Payment.php | 5 + app/Entities/Subscriptions/Subscription.php | 5 + app/Http/Controllers/Api/EventsController.php | 2 + app/Http/Controllers/SubscriptionsController.php | 6 +- app/Http/Middleware/Authenticate.php | 2 +- app/Http/Middleware/RoleMiddleware.php | 2 +- config/app.php | 1 + database/factories/ModelFactory.php | 15 +- resources/lang/id/subscription.php | 1 + resources/views/auth/login.blade.php | 2 +- resources/views/layouts/guest.blade.php | 2 +- resources/views/payments/index.blade.php | 4 +- .../views/projects/features-export-html.blade.php | 8 +- resources/views/projects/payments.blade.php | 2 +- resources/views/reports/log-files.blade.php | 53 ++++++ resources/views/subscriptions/create.blade.php | 1 + resources/views/subscriptions/edit.blade.php | 1 + resources/views/subscriptions/index.blade.php | 9 +- resources/views/users/calendar-vue.blade.php | 197 +++++++++++++++++++++ resources/views/users/calendar.blade.php | 32 ++-- routes/web/account.php | 2 +- routes/web/calendar.php | 13 +- routes/web/reports.php | 28 +++ tests/api/ApiEventsTest.php | 1 + tests/auth/MemberChangePasswordTest.php | 8 +- tests/auth/MemberRegistrationAndLoginTest.php | 24 +-- tests/auth/MemberResetPasswordTest.php | 7 +- tests/functional/ManageSubscriptionsTest.php | 16 +- 29 files changed, 380 insertions(+), 74 deletions(-) create mode 100755 resources/views/reports/log-files.blade.php create mode 100644 resources/views/users/calendar-vue.blade.php diff --git a/app/Entities/BaseRepository.php b/app/Entities/BaseRepository.php index f2b18fc..a36755d 100755 --- a/app/Entities/BaseRepository.php +++ b/app/Entities/BaseRepository.php @@ -21,6 +21,11 @@ abstract class BaseRepository extends EloquentRepository { return User::orderBy('name')->hasRoles(['worker'])->pluck('name','id'); } + public function getVendorsList() + { + return User::orderBy('name')->hasRoles(['vendor'])->pluck('name','id'); + } + public function getProjectsList() { return Project::orderBy('name')->pluck('name','id'); diff --git a/app/Entities/Payments/Payment.php b/app/Entities/Payments/Payment.php index f8d9bf4..910ea0b 100755 --- a/app/Entities/Payments/Payment.php +++ b/app/Entities/Payments/Payment.php @@ -24,4 +24,9 @@ class Payment extends Model { { return $this->belongsTo(User::class, 'customer_id'); } + + public function type() + { + return paymentTypes($this->type_id); + } } diff --git a/app/Entities/Subscriptions/Subscription.php b/app/Entities/Subscriptions/Subscription.php index 8158418..5df7e34 100755 --- a/app/Entities/Subscriptions/Subscription.php +++ b/app/Entities/Subscriptions/Subscription.php @@ -25,6 +25,11 @@ class Subscription extends Model { return $this->belongsTo(User::class,'customer_id'); } + public function vendor() + { + return $this->belongsTo(User::class,'vendor_id'); + } + public function status() { return $this->status_id ? 'Aktif' : 'Non Aktif'; diff --git a/app/Http/Controllers/Api/EventsController.php b/app/Http/Controllers/Api/EventsController.php index b1678f7..fb11d13 100644 --- a/app/Http/Controllers/Api/EventsController.php +++ b/app/Http/Controllers/Api/EventsController.php @@ -89,6 +89,7 @@ class EventsController extends Controller 'id' => 'required|numeric|exists:user_events,id', 'title' => 'required|string|max:60', 'body' => 'string|max:255', + 'is_allday' => '', ]); $event = Event::findOrFail($request->get('id')); @@ -96,6 +97,7 @@ class EventsController extends Controller $event->title = $request->get('title'); $event->body = $request->get('body'); + $event->is_allday = !!$request->get('is_allday'); $event->save(); diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 967b470..11974ad 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -29,7 +29,8 @@ class SubscriptionsController extends Controller { { $projects = $this->repo->getProjectsList(); $customers = $this->repo->getCustomersList(); - return view('subscriptions.create', compact('projects','customers')); + $vendors = $this->repo->getVendorsList(); + return view('subscriptions.create', compact('projects','customers','vendors')); } public function store(CreateRequest $req) @@ -50,7 +51,8 @@ class SubscriptionsController extends Controller { $subscription = $this->repo->requireById($subscriptionId); $projects = $this->repo->getProjectsList(); $customers = $this->repo->getCustomersList(); - return view('subscriptions.edit',compact('subscription','projects','customers')); + $vendors = $this->repo->getVendorsList(); + return view('subscriptions.edit',compact('subscription','projects','customers','vendors')); } public function update(UpdateRequest $req, $subscriptionId) diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 1cbe354..67abcae 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -21,7 +21,7 @@ class Authenticate if ($request->ajax() || $request->wantsJson()) { return response('Unauthorized.', 401); } else { - return redirect()->guest('auth/login'); + return redirect()->guest('login'); } } diff --git a/app/Http/Middleware/RoleMiddleware.php b/app/Http/Middleware/RoleMiddleware.php index dacf9d7..8b39782 100644 --- a/app/Http/Middleware/RoleMiddleware.php +++ b/app/Http/Middleware/RoleMiddleware.php @@ -18,7 +18,7 @@ class RoleMiddleware $nameArray = explode('|', $names); if (auth()->check() == false) { - return redirect()->guest('auth/login'); + return redirect()->guest('login'); } // Cek apakah grup user ada di dalam array $nameArray? diff --git a/config/app.php b/config/app.php index 19332d5..24857a3 100644 --- a/config/app.php +++ b/config/app.php @@ -109,6 +109,7 @@ return [ */ 'log' => env('APP_LOG', 'daily'), + 'log_max_files' => 30, /* |-------------------------------------------------------------------------- diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index ae7ec2f..cb80e08 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -8,17 +8,6 @@ use App\Entities\Subscriptions\Subscription; use App\Entities\Users\Event; use App\Entities\Users\User; -/* -|-------------------------------------------------------------------------- -| Model Factories -|-------------------------------------------------------------------------- -| -| Here you may define all of your model factories. Model factories give -| you a convenient way to create models for testing and seeding your -| database. Just tell the factory how a default model should look. -| -*/ - $factory->define(User::class, function (Faker\Generator $faker) { return [ 'name' => $faker->name, @@ -73,6 +62,9 @@ $factory->define(Subscription::class, function (Faker\Generator $faker) { $customer = factory(User::class)->create(); $customer->assignRole('customer'); $customerId = $customer->id; + $vendor = factory(User::class)->create(); + $vendor->assignRole('vendor'); + $vendorId = $vendor->id; $startDate = Carbon::parse($faker->dateTimeBetween('-1 year', '-1 month')->format('Y-m-d')); return [ @@ -87,6 +79,7 @@ $factory->define(Subscription::class, function (Faker\Generator $faker) { 'due_date' => $startDate->addYears(1)->format('Y-m-d'), 'remark' => $faker->paragraph, 'customer_id' => $customerId, + 'vendor_id' => $vendorId, ]; }); diff --git a/resources/lang/id/subscription.php b/resources/lang/id/subscription.php index 1446da1..a22a99a 100644 --- a/resources/lang/id/subscription.php +++ b/resources/lang/id/subscription.php @@ -28,4 +28,5 @@ return [ 'back_to_index' => 'Kembali ke daftar Langganan', 'customer' => 'Customer', 'project' => 'Project', + 'vendor' => 'Vendor', ]; \ No newline at end of file diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index eb53528..cbb81d5 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -3,6 +3,7 @@ @section('title', trans('auth.login')) @section('content') +@include('flash::message')
Logo {{ Option::get('app_owner') }} @@ -10,7 +11,6 @@

{{ Option::get('app_name','Aplikasi Laravel') }}

- @include('flash::message') @include('auth.partials._errors') {!! Form::open(['route'=>'auth.login']) !!}
diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php index 0a17f06..846cf45 100755 --- a/resources/views/layouts/guest.blade.php +++ b/resources/views/layouts/guest.blade.php @@ -13,7 +13,7 @@ {{-- {!! Html::style('assets/css/bootstrap-theme.min.css') !!} --}} {{-- {!! Html::style('assets/css/font-awesome.min.css') !!} --}} {{-- {!! Html::style('assets/css/sb-admin-2.css') !!} --}} - {!! Html::style('assets/css/app.css') !!} + {!! Html::style('assets/css/app.s.css') !!} @yield('ext_css') diff --git a/resources/views/payments/index.blade.php b/resources/views/payments/index.blade.php index d0ec9b9..787e5ae 100755 --- a/resources/views/payments/index.blade.php +++ b/resources/views/payments/index.blade.php @@ -29,9 +29,9 @@ @forelse($payments as $key => $payment) {{ $payments->firstItem() + $key }} - {!! link_to_route('projects.payments', $payment->project->name, [$payment->project_id], ['title' => 'Lihat seluruh Pembayaran Project ini']) !!} + {!! link_to_route('projects.payments', $payment->project->name, [$payment->project_id], ['title' => 'Lihat seluruh Pembayaran Project ini']) !!} [{{ $payment->type() }}] {{ $payment->date }} - {{ formatRp($payment->amount) }} + {{ $payment->present()->amount }} {{ $payment->description }} {{ $payment->customer->name }} diff --git a/resources/views/projects/features-export-html.blade.php b/resources/views/projects/features-export-html.blade.php index 7887857..ca5a358 100755 --- a/resources/views/projects/features-export-html.blade.php +++ b/resources/views/projects/features-export-html.blade.php @@ -10,15 +10,15 @@ {{-- --}} {{ $project->name }} - {!! Html::style('assets/css/app.css') !!} + {!! Html::style('assets/css/app.s.css') !!} - +

{{ trans('project.features') }} {{ $project->name }}

@foreach($features as $key => $feature)

{{ $feature->name }}

- +
@@ -41,7 +41,7 @@ @endforeach

Biaya Pembuatan

-
{{ trans('app.description') }}
{!! nl2br($feature->description) !!}
+
diff --git a/resources/views/projects/payments.blade.php b/resources/views/projects/payments.blade.php index 1e7c1c7..76cfb4e 100755 --- a/resources/views/projects/payments.blade.php +++ b/resources/views/projects/payments.blade.php @@ -37,7 +37,7 @@ - + @empty diff --git a/resources/views/reports/log-files.blade.php b/resources/views/reports/log-files.blade.php new file mode 100755 index 0000000..a651c9f --- /dev/null +++ b/resources/views/reports/log-files.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.app') + +@section('title','Log Files') + +@section('content') + +
+
+
+
{{ trans('app.table_no') }}{{ $payment->date }} {{ formatRp($payment->amount) }} {{ $payment->customer->name }}{{ $payment->description }}{{ $payment->description }} [{{ $payment->type() }}] {!! html_link_to_route('payments.show','',[$payment->id],['class' => 'btn btn-info btn-xs','icon' => 'search','title' => 'Lihat ' . trans('payment.show')]) !!}
+ + + + + + + + + @forelse($logFiles as $key => $logFile) + + + + + + + + @empty + + + + @endforelse + +
#Nama FileUkuranTanggal Jam{{ trans('app.action') }}
{{ $key + 1 }}{{ $logFile->getFilename() }}{{ formatSizeUnits($logFile->getSize()) }}{{ date('Y-m-d H:i:s', $logFile->getMTime()) }} + {!! html_link_to_route('log-files.download','',[$logFile->getFilename()],[ + 'class'=>'btn btn-default btn-xs', + 'icon' => 'download', + 'id' => 'download-' . $logFile->getFilename(), + 'title' => 'Download file ' . $logFile->getFilename() + ]) !!} + {!! html_link_to_route('log-files.show','',[$logFile->getFilename()],[ + 'class'=>'btn btn-default btn-xs', + 'icon' => 'search', + 'id' => 'view-' . $logFile->getFilename(), + 'title' => 'View file ' . $logFile->getFilename(), + 'target' => '_blank', + ]) !!} +
Belum ada file logFile
+
+
+
+@endsection diff --git a/resources/views/subscriptions/create.blade.php b/resources/views/subscriptions/create.blade.php index 404fd12..3d98053 100755 --- a/resources/views/subscriptions/create.blade.php +++ b/resources/views/subscriptions/create.blade.php @@ -41,6 +41,7 @@
{!! FormField::select('customer_id', $customers,['label'=> trans('subscription.customer'),'value' => Request::get('customer_id')]) !!} {!! FormField::select('project_id', $projects,['label'=> trans('subscription.project'),'value' => Request::get('project_id')]) !!} + {!! FormField::select('vendor_id', $vendors,['label'=> trans('subscription.vendor'),'value' => Request::get('vendor_id')]) !!} {!! FormField::textarea('remark',['label'=> trans('subscription.remark')]) !!}
diff --git a/resources/views/subscriptions/edit.blade.php b/resources/views/subscriptions/edit.blade.php index 1e0ccc0..40152d6 100755 --- a/resources/views/subscriptions/edit.blade.php +++ b/resources/views/subscriptions/edit.blade.php @@ -36,6 +36,7 @@
{!! FormField::select('customer_id', $customers,['label'=> trans('subscription.customer')]) !!} {!! FormField::select('project_id', $projects,['label'=> trans('subscription.project')]) !!} + {!! FormField::select('vendor_id', $vendors,['label'=> trans('subscription.vendor')]) !!} {!! FormField::radios('status_id', ['Non Active','Active'],['label'=> trans('app.status')]) !!} {!! FormField::textarea('remark',['label'=> trans('subscription.remark')]) !!} diff --git a/resources/views/subscriptions/index.blade.php b/resources/views/subscriptions/index.blade.php index 205ee42..abf278d 100755 --- a/resources/views/subscriptions/index.blade.php +++ b/resources/views/subscriptions/index.blade.php @@ -20,7 +20,7 @@ {{ trans('app.table_no') }} {{ trans('subscription.domain_name') }} {{ trans('subscription.hosting_capacity') }} - {{ trans('subscription.start_date') }} + {{ trans('subscription.vendor') }} {{ trans('subscription.due_date') }} {{ trans('subscription.extension_price') }} {{ trans('app.status') }} @@ -32,8 +32,11 @@ {{ $subscriptions->firstItem() + $key }} {{ $subscription->domain_name }} {{ $subscription->hosting_capacity }} - {{ dateId($subscription->start_date) }} - {{ dateId($subscription->due_date) }} + {{ $subscription->vendor->name }} + {{ dateId($subscription->due_date) }} {{ formatRp($subscription->domain_price + $subscription->hosting_price) }} {{ $subscription->status() }} diff --git a/resources/views/users/calendar-vue.blade.php b/resources/views/users/calendar-vue.blade.php new file mode 100644 index 0000000..120cfec --- /dev/null +++ b/resources/views/users/calendar-vue.blade.php @@ -0,0 +1,197 @@ +@extends('layouts.app') + +@section('title', 'Safety Calendar') + +@section('content') + +
+
+
+
+

Safety Calendar Click to add/edit events

+
+
+
+ +
+
+
+
+
+
+
+ +@endsection + +@section('ext_css') +{!! Html::style(url('assets/css/plugins/fullcalendar.min.css')) !!} +@endsection + +@section('ext_js') +{!! Html::script(url('assets/js/plugins/moment.min.js')) !!} +{!! Html::script(url('assets/js/plugins/fullcalendar.min.js')) !!} +{!! Html::script(url('assets/js/plugins/vue.min.js')) !!} +{!! Html::script(url('assets/js/plugins/vue-resource.min.js')) !!} +@endsection + +@section('script') + +@endsection \ No newline at end of file diff --git a/resources/views/users/calendar.blade.php b/resources/views/users/calendar.blade.php index 82b7748..dbac6d5 100644 --- a/resources/views/users/calendar.blade.php +++ b/resources/views/users/calendar.blade.php @@ -94,7 +94,12 @@ - +
+ +
+ +
+