Browse Source

Add new subscription type: Maintenance

Add sidebar menu item: Vendor
Fix some views
pull/1/head
Nafies Luthfi 8 years ago
parent
commit
45242f49ae
  1. 2
      app/Entities/BaseRepository.php
  2. 7
      app/Entities/Projects/Project.php
  3. 2
      app/Entities/Subscriptions/Type.php
  4. 2
      public/assets/css/app.css
  5. 7376
      public/assets/css/app.s.css
  6. 1
      public/assets/css/app.s.css.map
  7. 5
      resources/lang/id/subscription.php
  8. 4
      resources/views/layouts/app.blade.php
  9. 8
      resources/views/layouts/guest.blade.php
  10. 1
      resources/views/layouts/partials/sidebar.blade.php
  11. 3
      resources/views/layouts/print.blade.php
  12. 5
      resources/views/projects/partials/project-show.blade.php
  13. 5
      resources/views/subscriptions/partials/subscription-show.blade.php
  14. 4
      resources/views/vendors/index.blade.php
  15. 21
      tests/Unit/Models/ProjectTest.php
  16. 3
      tests/Unit/References/SubscriptionTypeTest.php

2
app/Entities/BaseRepository.php

@ -37,7 +37,7 @@ abstract class BaseRepository extends EloquentRepository
public function getVendorsList()
{
return Customer::orderBy('name')->pluck('name', 'id');
return Vendor::orderBy('name')->pluck('name', 'id');
}
public function getProjectsList()

7
app/Entities/Projects/Project.php

@ -21,7 +21,12 @@ class Project extends Model
public function nameLink()
{
return link_to_route('projects.show', $this->name, [$this->id]);
return link_to_route('projects.show', $this->name, [$this->id], [
'title' => trans(
'app.show_detail_title',
['name' => $this->name, 'type' => trans('project.project')]
),
]);
}
public function jobs()

2
app/Entities/Subscriptions/Type.php

@ -9,11 +9,13 @@ class Type extends ReferenceAbstract
protected static $lists = [
1 => 'domain',
2 => 'hosting',
3 => 'maintenance',
];
protected static $colors = [
1 => '#337ab7',
2 => '#4caf50',
3 => '#00b3ff',
];
public static function getNameById($singleId)

2
public/assets/css/app.css
File diff suppressed because it is too large
View File

7376
public/assets/css/app.s.css
File diff suppressed because it is too large
View File

1
public/assets/css/app.s.css.map
File diff suppressed because it is too large
View File

5
resources/lang/id/subscription.php

@ -44,7 +44,8 @@ return [
// Types
'types' => [
'domain' => 'Domain',
'hosting' => 'Hosting',
'domain' => 'Domain',
'hosting' => 'Hosting',
'maintenance' => 'Maintenance',
],
];

4
resources/views/layouts/app.blade.php

@ -10,7 +10,7 @@
<title>@yield('title', Option::get('app_name', 'Aplikasi Laravel'))</title>
@yield('ext_css')
{!! Html::style('assets/css/app.s.css') !!}
{!! Html::style('assets/css/app.css') !!}
</head>
<body>
<div id="wrapper">
@ -52,4 +52,4 @@
@yield('script')
</body>
</html>
</html>

8
resources/views/layouts/guest.blade.php

@ -9,11 +9,7 @@
<meta name="author" content="">
<title>@yield('title', Option::get('app_name', 'Aplikasi Laravel'))</title>
{{-- {!! Html::style('assets/css/bootstrap.min.css') !!} --}}
{{-- {!! 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.s.css') !!}
{!! Html::style('assets/css/app.css') !!}
@yield('ext_css')
</head>
<body>
@ -36,4 +32,4 @@
@yield('script')
</body>
</html>
</html>

1
resources/views/layouts/partials/sidebar.blade.php

@ -27,6 +27,7 @@
<li>{!! html_link_to_route('subscriptions.index', trans('subscription.subscription'), [], ['icon' => 'retweet']) !!}</li>
<li>{!! html_link_to_route('payments.index', trans('payment.payments'), [], ['icon' => 'money']) !!}</li>
<li>{!! html_link_to_route('customers.index', trans('customer.list'), [], ['icon' => 'users']) !!}</li>
<li>{!! html_link_to_route('vendors.index', trans('vendor.list'), [], ['icon' => 'users']) !!}</li>
<li>
<a href="{{ route('options.index') }}"><i class="fa fa-gears fa-fw"></i> Options <span class="fa arrow"></span></a>
<ul class="nav nav-second-level">

3
resources/views/layouts/print.blade.php

@ -2,7 +2,6 @@
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="x-csrf-token" content="<?= csrf_token() ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
@ -16,4 +15,4 @@
@yield('content')
{!! Html::script(url('assets/js/jquery.js')) !!}
</body>
</html>
</html>

5
resources/views/projects/partials/project-show.blade.php

@ -14,10 +14,7 @@
<tr>
<td>{{ trans('project.customer') }}</td>
<td>
{{ $project->present()->customerNameAndEmail }}
@if ($project->customer_id && auth()->id() == $project->owner_id)
{!! link_to_route('users.edit', trans('app.edit'), [$project->customer_id], ['title' => trans('customer.edit')]) !!}
@endif
{{ $project->customer->nameLink() }}
</td>
</tr>
</tbody>

5
resources/views/subscriptions/partials/subscription-show.blade.php

@ -1,16 +1,15 @@
<table class="table table-condensed">
<tbody>
<tr><td>{{ trans('subscription.project') }}</td><td>{{ $subscription->project->name }}</td></tr>
<tr><td>{{ trans('subscription.name') }}</td><td>{{ $subscription->name }}</td></tr>
<tr><td>{{ trans('subscription.price') }}</td><td>{{ formatRp($subscription->price) }}</td></tr>
<tr><td>{{ trans('subscription.type') }}</td><td>{{ $subscription->type }}</td></tr>
<tr><td>{{ trans('subscription.start_date') }}</td><td>{{ dateId($subscription->start_date) }}</td></tr>
<tr><td>{{ trans('subscription.due_date') }}</td><td>{{ dateId($subscription->due_date) }}</td></tr>
<tr><td>{{ trans('subscription.customer') }}</td><td>{{ $subscription->customer->name }}</td></tr>
<tr><td>{{ trans('subscription.customer') }}</td><td>{{ $subscription->customer->nameLink() }}</td></tr>
<tr>
<td>{{ trans('subscription.project') }}</td>
<td>
{{ link_to_route('projects.subscriptions', $subscription->project->name, [$subscription->project_id], ['target' => '_blank']) }}
{{ link_to_route('projects.subscriptions', $subscription->project->name, [$subscription->project_id]) }}
</td>
</tr>
<tr><td>{{ trans('subscription.notes') }}</td><td>{!! nl2br($subscription->notes) !!}</td></tr>

4
resources/views/vendors/index.blade.php

@ -25,7 +25,7 @@
<tr>
<th class="text-center">{{ trans('app.table_no') }}</th>
<th>{{ trans('vendor.name') }}</th>
<th>{{ trans('vendor.description') }}</th>
<th>{{ trans('app.notes') }}</th>
<th class="text-center">{{ trans('app.action') }}</th>
</tr>
</thead>
@ -34,7 +34,7 @@
<tr>
<td class="text-center">{{ $vendors->firstItem() + $key }}</td>
<td>{{ $vendor->name }}</td>
<td>{{ $vendor->description }}</td>
<td>{{ $vendor->notes }}</td>
<td class="text-center">
{!! link_to_route(
'vendors.index',

21
tests/Unit/Models/ProjectTest.php

@ -14,6 +14,20 @@ use Tests\TestCase;
class ProjectTest extends TestCase
{
/** @test */
public function a_project_has_name_link_method()
{
$project = factory(Project::class)->make();
$this->assertEquals(
link_to_route('projects.show', $project->name, [$project->id], [
'title' => trans(
'app.show_detail_title',
['name' => $project->name, 'type' => trans('project.project')]
),
]), $project->nameLink()
);
}
/** @test */
public function a_project_has_many_jobs()
{
$project = factory(Project::class)->create();
@ -136,13 +150,6 @@ class ProjectTest extends TestCase
}
/** @test */
public function a_project_has_name_link_method()
{
$project = factory(Project::class)->make();
$this->assertEquals(link_to_route('projects.show', $project->name, [$project->id]), $project->nameLink());
}
/** @test */
public function a_project_has_collectible_earnings_method()
{
// Collectible earnings is total of (price * avg task progress of each job)

3
tests/Unit/References/SubscriptionTypeTest.php

@ -15,6 +15,7 @@ class SubscriptionTypeTest extends TestCase
$this->assertEquals([
1 => trans('subscription.types.domain'),
2 => trans('subscription.types.hosting'),
3 => trans('subscription.types.maintenance'),
], $subscriptionType->toArray());
}
@ -25,6 +26,7 @@ class SubscriptionTypeTest extends TestCase
$this->assertEquals(trans('subscription.types.domain'), $subscriptionType->getNameById(1));
$this->assertEquals(trans('subscription.types.hosting'), $subscriptionType->getNameById(2));
$this->assertEquals(trans('subscription.types.maintenance'), $subscriptionType->getNameById(3));
}
/** @test */
@ -34,5 +36,6 @@ class SubscriptionTypeTest extends TestCase
$this->assertEquals('#337ab7', $subscriptionType->getColorById(1));
$this->assertEquals('#4caf50', $subscriptionType->getColorById(2));
$this->assertEquals('#00b3ff', $subscriptionType->getColorById(3));
}
}
Loading…
Cancel
Save