Browse Source

Change application installation page and controller action

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
c6221527ee
  1. 6
      app/Http/Controllers/InstallationController.php
  2. 10
      resources/lang/id/app_install.php
  3. 42
      resources/views/auth/app-install.blade.php
  4. 4
      resources/views/layouts/partials/footer.blade.php
  5. 4
      routes/web/account.php
  6. 10
      tests/Feature/InstallationTest.php

6
app/Http/Controllers/InstallationController.php

@ -19,15 +19,15 @@ class InstallationController extends Controller
$this->middleware('guest');
}
public function getRegister()
public function index()
{
if (User::count()) {
return redirect()->route('auth.login');
}
return view('auth.register');
return view('auth.app-install');
}
public function postRegister(RegisterRequest $request)
public function store(RegisterRequest $request)
{
$agencyData = collect($request->only('agency_name', 'agency_website', 'email'))
->map(function ($value, $key) {

10
resources/lang/id/app_install.php

@ -0,0 +1,10 @@
<?php
return [
'header' => 'Install <span class="text-primary">'.config('app.name').'</span>',
'agency_info_text' => 'Silakan isi formulir di bawah ini untuk membuat Agensi.',
'admin_info_text' => 'Silakan isi formulir di bawah ini untuk membuat akun Administrator.',
'admin_name' => 'Nama Administrator',
'admin_email' => 'Email Administrator',
'button' => 'Install Free PMO',
];

42
resources/views/auth/register.blade.php → resources/views/auth/app-install.blade.php

@ -1,45 +1,45 @@
@extends('layouts.guest')
@section('title', trans('auth.register'))
@section('title', 'Install '.config('app.name'))
@section('content')
<div class="col-md-6 col-md-offset-3">
<div class="login-panel panel panel-default">
<h2 class="page-header text-center text-muted">{!! trans('app_install.header') !!}</h2>
<div class="panel panel-default">
<div class="panel-body">
<div class="text-center">
{!! appLogoImage(['style' => 'width:150px']) !!}
<h3>{{ config('app.name') }}</h3>
</div>
<hr>
{!! Form::open(['route' => 'app.install', 'class' => '']) !!}
<p>Silakan isi formulir di bawah ini untuk membuat akun Administrator dan Agensi.</p>
{!! Form::open(['route' => 'app.install']) !!}
<div class="row">
<div class="col-md-6">
{!! FormField::text('agency_name', ['required' => true, 'label' => trans('agency.name')]) !!}
<div class="col-sm-6">
<div class="text-center">
{!! appLogoImage(['style' => 'width:150px']) !!}
<h3>{{ config('app.name') }}</h3>
</div>
</div>
<div class="col-md-6">
<div class="col-sm-6">
<p>{{ trans('app_install.agency_info_text') }}</p>
{!! FormField::text('agency_name', ['required' => true, 'label' => trans('agency.name')]) !!}
{!! FormField::text('agency_website', ['required' => true, 'label' => trans('agency.website')]) !!}
</div>
</div>
<hr style="margin: 10px 0;">
<p>{{ trans('app_install.admin_info_text') }}</p>
<div class="row">
<div class="col-md-6">
{!! FormField::text('name', ['required' => true, 'label' => trans('user.name')]) !!}
<div class="col-sm-6">
{!! FormField::text('name', ['required' => true, 'label' => trans('app_install.admin_name')]) !!}
</div>
<div class="col-md-6">
{!! FormField::email('email', ['required' => true, 'label' => trans('auth.email')]) !!}
<div class="col-sm-6">
{!! FormField::email('email', ['required' => true, 'label' => trans('app_install.admin_email')]) !!}
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-sm-6">
{!! FormField::password('password', ['required' => true, 'label' => trans('auth.password')]) !!}
</div>
<div class="col-md-6">
<div class="col-sm-6">
{!! FormField::password('password_confirmation', ['required' => true, 'label' => trans('auth.password_confirmation')]) !!}
</div>
</div>
<div class="form-group">
{!! Form::submit(trans('auth.register'), ['class' => 'btn btn-success']) !!}
</div>
{!! Form::submit(trans('app_install.button'), ['class' => 'btn btn-success btn-block btn-lg']) !!}
{!! Form::close() !!}
</div>
</div>

4
resources/views/layouts/partials/footer.blade.php

@ -2,9 +2,7 @@
<div id="copy" class="hidden-print">
Powered by <a href="{{ url('https://github.com/nafiesl/free-pmo') }}" target="_blank">Free PMO</a>,
and developed with pleasure by the
<a href="{{ url('https://github.com/nafiesl/free-pmo/graphs/contributors') }}" target="_blank">
Contributors
</a>
<a href="{{ url('https://github.com/nafiesl/free-pmo/graphs/contributors') }}" target="_blank">Contributors</a>.
</div>
{{-- Free PMO is an opensource software you are free to remove this footer text or section. --}}
</footer>

4
routes/web/account.php

@ -3,8 +3,8 @@
* Installation Routes
*/
Route::group(['middleware' => 'web'], function () {
Route::get('app-install', ['as' => 'app.install', 'uses' => 'InstallationController@getRegister']);
Route::post('app-install', ['as' => 'app.install', 'uses' => 'InstallationController@postRegister']);
Route::get('app-install', ['as' => 'app.install', 'uses' => 'InstallationController@index']);
Route::post('app-install', ['as' => 'app.install', 'uses' => 'InstallationController@store']);
});
// Authentication Routes...

10
tests/Feature/InstallationTest.php

@ -13,7 +13,7 @@ use Tests\TestCase;
class InstallationTest extends TestCase
{
/** @test */
public function user_cannot_visit_register_page_if_user_already_exists_in_database()
public function user_cannot_visit_install_page_if_user_already_exists_in_database()
{
factory(User::class)->create(['email' => 'member@app.dev']);
$this->visit(route('app.install'));
@ -21,13 +21,13 @@ class InstallationTest extends TestCase
}
/** @test */
public function registration_validation()
public function application_install_form_validation()
{
$this->visit(route('app.install'));
$this->seePageIs(route('app.install'));
$this->submitForm(trans('auth.register'), [
$this->submitForm(trans('app_install.button'), [
'name' => 'Nama Member',
'email' => 'email',
'password' => 'password',
@ -38,12 +38,12 @@ class InstallationTest extends TestCase
}
/** @test */
public function member_register_successfully()
public function application_install_successfully()
{
$this->visit(route('app.install'));
$this->seePageIs(route('app.install'));
$this->submitForm(trans('auth.register'), [
$this->submitForm(trans('app_install.button'), [
'agency_name' => 'Nama Agensi',
'agency_website' => 'https://example.com',
'name' => 'Nama Admin',

Loading…
Cancel
Save