├── .styleci.yml ├── sandbox_destroy.sh ├── .eslintignore ├── resources ├── views │ ├── page.blade.php │ ├── welcome.blade.php │ ├── layouts │ │ ├── partials │ │ │ ├── scripts_auth.blade.php │ │ │ ├── scripts.blade.php │ │ │ ├── contentheader.blade.php │ │ │ ├── footer.blade.php │ │ │ ├── sidebar_with_spatie_menu.blade.php │ │ │ ├── htmlheader.blade.php │ │ │ ├── sidebar.blade.php │ │ │ └── controlsidebar.blade.php │ │ ├── auth.blade.php │ │ ├── errors.blade.php │ │ └── app.blade.php │ ├── auth │ │ ├── partials │ │ │ └── social_login.blade.php │ │ ├── terms.blade.php │ │ ├── register.blade.php │ │ ├── login.blade.php │ │ ├── passwords │ │ │ ├── email.blade.php │ │ │ ├── reset.blade.php │ │ │ ├── email.withoutvue.blade.php │ │ │ └── reset.withoutvue.blade.php │ │ ├── login.withoutvue.blade.php │ │ └── register.withoutvue.blade.php │ ├── home.blade.php │ └── errors │ │ ├── 503.blade.php │ │ ├── 500.blade.php │ │ └── 404.blade.php ├── assets │ ├── img │ │ ├── app-bg.png │ │ ├── arrow1.png │ │ ├── arrow2.png │ │ ├── mobile.png │ │ ├── intro01.png │ │ ├── intro02.png │ │ ├── intro03.png │ │ ├── item-01.png │ │ └── item-02.png │ ├── js │ │ ├── components │ │ │ └── auth │ │ │ │ ├── redirect.js │ │ │ │ ├── fade.css │ │ │ │ ├── InitializeIcheck.js │ │ │ │ ├── EmailResetPasswordForm.vue │ │ │ │ ├── ResetPasswordForm.vue │ │ │ │ ├── RegisterForm.vue │ │ │ │ └── LoginForm.vue │ │ ├── app-landing.js │ │ ├── bootstrap.js │ │ └── smoothscroll.js │ └── css │ │ ├── README.md │ │ ├── pratt_landing.min.css │ │ └── pratt_landing.css └── lang │ └── en │ └── message.php ├── public ├── css │ ├── blue.png │ └── blue@2x.png ├── img │ ├── app-bg.png │ ├── arrow1.png │ ├── arrow2.png │ ├── mobile.png │ ├── intro01.png │ ├── intro02.png │ ├── intro03.png │ ├── item-01.png │ ├── item-02.png │ ├── AcachaAdminLTE.png │ ├── AcachaAdminLTE600x314.png │ └── AcachaAdminLTE600x600.png ├── fonts │ ├── ionicons.eot │ ├── ionicons.ttf │ ├── ionicons.woff │ ├── FontAwesome.otf │ ├── ionicons.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── mix-manifest.json ├── src ├── Console │ ├── stubs │ │ ├── route_with_resource_controller.stub │ │ ├── menu.stub │ │ ├── route_with_controller.stub │ │ ├── route.stub │ │ ├── method.stub │ │ ├── AdminUserSeeder.php │ │ └── view.blade.php │ ├── AdminLTEAdminAlt.php │ ├── PublishAdminLTEAlt.php │ ├── PublishAdminLTESidebarAlt.php │ ├── CreatesModels.php │ ├── Routes │ │ ├── GeneratesCode.php │ │ ├── RegularRoute.php │ │ ├── ControllerResourceRoute.php │ │ ├── ControllerRoute.php │ │ ├── Controller.php │ │ └── Route.php │ ├── AdminLTEMenuAlt.php │ ├── HasEmail.php │ ├── HasUsername.php │ ├── Menus │ │ ├── RegularMenu.php │ │ └── Menu.php │ ├── MakeMVC.php │ ├── MakeV.php │ ├── MakeVC.php │ ├── AdminLTEAdmin.php │ ├── PublishAdminLTESidebar.php │ ├── MakeAdminUserSeeder.php │ ├── Username.php │ ├── MakeView.php │ ├── AdminLTEMenu.php │ ├── Installable.php │ ├── MakeMenu.php │ └── PublishAdminLTE.php ├── Facades │ └── AdminLTE.php ├── Exceptions │ ├── RouteTypeNotValid.php │ ├── SpatieMenuAlreadyExists.php │ └── SpatieMenuDoesNotExists.php ├── Http │ └── Middleware │ │ └── GuestUser.php └── stubs │ ├── NoGuestForgotPasswordController.php │ ├── HomeController.php │ ├── User.php │ ├── LoginController.php │ ├── RegisterController.php │ ├── ForgotPasswordController.php │ ├── auth.php │ └── ResetPasswordController.php ├── mix-manifest.json ├── studio.json ├── test.sh ├── PSR2.xml ├── .editorconfig ├── CHANGELOG.md ├── sandbox_setup.sh ├── .env.dusk.local ├── .env.dusk.testing ├── .eslintrc.js ├── ISSUE_TEMPLATE.md ├── database └── migrations │ └── username_login │ └── 2014_10_12_200000_add_username_to_users_table.php ├── routes ├── api.php └── web.php ├── LICENSE.txt ├── LICENSE.md ├── phpunit.xml ├── CONTRIBUTING.md ├── package.json ├── composer.json ├── webpack.mix.js ├── PULL_REQUEST_TEMPLATE.md ├── .php_cs ├── config ├── adminlte.php ├── menu.php └── database.php ├── CODE_OF_CONDUCT.md ├── CONDUCT.md └── OLD-README.md /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: psr2 2 | -------------------------------------------------------------------------------- /sandbox_destroy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm -rf sandbox 3 | 4 | 5 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | public/*.js 2 | resources/assets/js/smoothscroll.js -------------------------------------------------------------------------------- /resources/views/page.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.app') 2 | 3 | -------------------------------------------------------------------------------- /resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.landing') 2 | 3 | -------------------------------------------------------------------------------- /public/css/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/css/blue.png -------------------------------------------------------------------------------- /public/img/app-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/app-bg.png -------------------------------------------------------------------------------- /public/img/arrow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/arrow1.png -------------------------------------------------------------------------------- /public/img/arrow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/arrow2.png -------------------------------------------------------------------------------- /public/img/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/mobile.png -------------------------------------------------------------------------------- /public/css/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/css/blue@2x.png -------------------------------------------------------------------------------- /public/img/intro01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/intro01.png -------------------------------------------------------------------------------- /public/img/intro02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/intro02.png -------------------------------------------------------------------------------- /public/img/intro03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/intro03.png -------------------------------------------------------------------------------- /public/img/item-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/item-01.png -------------------------------------------------------------------------------- /public/img/item-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/item-02.png -------------------------------------------------------------------------------- /public/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/ionicons.eot -------------------------------------------------------------------------------- /public/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/ionicons.ttf -------------------------------------------------------------------------------- /public/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/ionicons.woff -------------------------------------------------------------------------------- /public/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /src/Console/stubs/route_with_resource_controller.stub: -------------------------------------------------------------------------------- 1 | Route::resource('$ROUTE_LINK$', '$ROUTE_CONTROLLER$'); 2 | 3 | -------------------------------------------------------------------------------- /public/img/AcachaAdminLTE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/AcachaAdminLTE.png -------------------------------------------------------------------------------- /resources/assets/img/app-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/app-bg.png -------------------------------------------------------------------------------- /resources/assets/img/arrow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/arrow1.png -------------------------------------------------------------------------------- /resources/assets/img/arrow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/arrow2.png -------------------------------------------------------------------------------- /resources/assets/img/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/mobile.png -------------------------------------------------------------------------------- /src/Console/stubs/menu.stub: -------------------------------------------------------------------------------- 1 | ->add(Link::toUrl('$MENU_LINK$', '$MENU_NAME$')) 2 | -------------------------------------------------------------------------------- /mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "public/js/app.js": "public/js/app.js", 3 | "public/js/app-landing.js": "public/js/app-landing.js" 4 | } -------------------------------------------------------------------------------- /resources/assets/img/intro01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/intro01.png -------------------------------------------------------------------------------- /resources/assets/img/intro02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/intro02.png -------------------------------------------------------------------------------- /resources/assets/img/intro03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/intro03.png -------------------------------------------------------------------------------- /resources/assets/img/item-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/item-01.png -------------------------------------------------------------------------------- /resources/assets/img/item-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/resources/assets/img/item-02.png -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/img/AcachaAdminLTE600x314.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/AcachaAdminLTE600x314.png -------------------------------------------------------------------------------- /public/img/AcachaAdminLTE600x600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/img/AcachaAdminLTE600x600.png -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/Console/stubs/route_with_controller.stub: -------------------------------------------------------------------------------- 1 | Route::$ROUTE_METHOD$('$ROUTE_LINK$', '$ROUTE_CONTROLLER$')->name('$ROUTE_NAME$'); 2 | 3 | -------------------------------------------------------------------------------- /studio.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "paths": [ 4 | "../../../acacha/helpers", 5 | "../../../acacha/user" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /resources/views/layouts/partials/scripts_auth.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdbootstrap/adminlte-laravel/master/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /resources/views/layouts/auth.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @include('adminlte::layouts.partials.htmlheader') 5 | 6 | @yield('content') 7 | 8 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/redirect.js: -------------------------------------------------------------------------------- 1 | export default { 2 | methods: { 3 | redirect (response) { 4 | window.location.reload() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/fade.css: -------------------------------------------------------------------------------- 1 | .fade-enter-active, .fade-leave-active { 2 | transition: opacity 1s ease; 3 | } 4 | 5 | .fade-enter, .fade-leave-to { 6 | opacity: 0; 7 | } -------------------------------------------------------------------------------- /src/Console/stubs/route.stub: -------------------------------------------------------------------------------- 1 | Route::$ROUTE_METHOD$('$ROUTE_LINK$', function () { 2 | $data = []; 3 | return view('$ROUTE_VIEW$',$data); 4 | })->name('$ROUTE_NAME$'); 5 | 6 | -------------------------------------------------------------------------------- /src/Console/stubs/method.stub: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 4 | */ 5 | public function $METHOD$() 6 | { 7 | $data = []; 8 | return view('$VIEW$',$data); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./sandbox_setup.sh 3 | cd sandbox 4 | ./vendor/bin/phpunit --coverage-text --coverage-clover=../coverage.clover 5 | php artisan dusk:install 6 | php artisan serve --env=dusk.local & 7 | php artisan dusk 8 | cd .. 9 | ./sandbox_destroy.sh 10 | 11 | -------------------------------------------------------------------------------- /PSR2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | My PSR2 standard. 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 4 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /src/Console/AdminLTEAdminAlt.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @include('adminlte::layouts.partials.htmlheader') 5 | 6 |
7 | 8 |
9 | 10 | @yield('main-content') 11 |
12 |
13 | @section('scripts') 14 | @include('adminlte::layouts.partials.scripts') 15 | @show 16 | 17 | -------------------------------------------------------------------------------- /src/Exceptions/SpatieMenuAlreadyExists.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /resources/views/layouts/partials/contentheader.blade.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |

4 | @yield('contentheader_title', 'Page Header here') 5 | @yield('contentheader_description') 6 |

7 | 11 |
-------------------------------------------------------------------------------- /sandbox_setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if ! type "laravel" > /dev/null; then 3 | composer global require "laravel/installer" 4 | fi 5 | if ! type "adminlte-laravel" > /dev/null; then 6 | composer global require "acacha/adminlte-laravel-installer:dev-master" 7 | fi 8 | if ! type "llum" > /dev/null; then 9 | composer global require "acacha/llum" 10 | fi 11 | export PATH="~/.composer/vendor/bin:~/.config/composer/vendor:$PATH" 12 | rm -rf sandbox 13 | laravel new sandbox 14 | cd sandbox 15 | adminlte-laravel --dev install 16 | 17 | -------------------------------------------------------------------------------- /src/Exceptions/SpatieMenuDoesNotExists.php: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /src/Console/stubs/AdminUserSeeder.php: -------------------------------------------------------------------------------- 1 | create([ 20 | "name" => env('ADMIN_USER', "$USER_NAME$"), 21 | "email" => env('ADMIN_EMAIL', "$USER_EMAIL"), 22 | "password" => bcrypt(env('ADMIN_PWD', '123456'))]); 23 | } catch (\Illuminate\Database\QueryException $exception) { 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Http/Middleware/GuestUser.php: -------------------------------------------------------------------------------- 1 | share('signedIn', auth()->check()); 24 | view()->share('user', auth()->user() ?: new User); 25 | 26 | return $next($request); 27 | } 28 | } -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | env: { 8 | browser: true, 9 | jquery: true, 10 | }, 11 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 12 | extends: 'standard', 13 | // required to lint *.vue files 14 | plugins: [ 15 | 'html' 16 | ], 17 | // add your custom rules here 18 | 'rules': { 19 | // allow paren-less arrow functions 20 | 'arrow-parens': 0, 21 | // allow async-await 22 | 'generator-star-spacing': 0, 23 | // allow debugger during development 24 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/stubs/NoGuestForgotPasswordController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /resources/assets/js/app-landing.js: -------------------------------------------------------------------------------- 1 | /** 2 | * First we will load all of this project's JavaScript dependencies which 3 | * includes Vue and other libraries. It is a great starting point when 4 | * building robust, powerful web applications using Vue and Laravel. 5 | */ 6 | 7 | window.$ = window.jQuery = require('jquery') 8 | 9 | require('./smoothscroll') 10 | 11 | require('bootstrap') 12 | 13 | window.Vue = require('vue') 14 | 15 | /** 16 | * Next, we will create a fresh Vue application instance and attach it to 17 | * the page. Then, you may begin adding components to this application 18 | * or customize the JavaScript scaffolding to fit your unique needs. 19 | */ 20 | 21 | /* eslint-disable no-undef, no-unused-vars */ 22 | const app = new Vue({ 23 | el: '#app' 24 | }) 25 | 26 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Detailed description 4 | 5 | Provide a detailed description of the change or addition you are proposing. 6 | 7 | Make it clear if the issue is a bug, an enhancement or just a question. 8 | 9 | ## Context 10 | 11 | Why is this change important to you? How would you use it? 12 | 13 | How can it benefit other users? 14 | 15 | ## Possible implementation 16 | 17 | Not obligatory, but suggest an idea for implementing addition or change. 18 | 19 | ## Your environment 20 | 21 | Include as many relevant details about the environment you experienced the bug in and how to reproduce it. 22 | 23 | * Version used (e.g. PHP 5.6, HHVM 3): 24 | * Operating system and version (e.g. Ubuntu 16.04, Windows 7): 25 | * Link to your project: 26 | * ... 27 | * ... 28 | -------------------------------------------------------------------------------- /src/stubs/HomeController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 27 | } 28 | 29 | /** 30 | * Show the application dashboard. 31 | * 32 | * @return Response 33 | */ 34 | public function index() 35 | { 36 | return view('adminlte::home'); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /database/migrations/username_login/2014_10_12_200000_add_username_to_users_table.php: -------------------------------------------------------------------------------- 1 | string('username')->unique()->nullable()->after('name'); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | * 24 | * @return void 25 | */ 26 | public function down() 27 | { 28 | Schema::table('users', function (Blueprint $table) { 29 | $table->dropColumn('username'); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 17 | return $request->user(); 18 | }); 19 | 20 | Route::group(['prefix' => 'v1','middleware' => 'auth:api'], function () { 21 | // Route::resource('task', 'TasksController'); 22 | 23 | //Please do not remove this if you want adminlte:route and adminlte:link commands to works correctly. 24 | #adminlte_api_routes 25 | }); 26 | -------------------------------------------------------------------------------- /src/stubs/User.php: -------------------------------------------------------------------------------- 1 | 'datetime', 38 | ]; 39 | } -------------------------------------------------------------------------------- /resources/assets/css/README.md: -------------------------------------------------------------------------------- 1 | # Source of CSS files 2 | 3 | All files are taken from AdminLTE project https://github.com/almasaeed2010/AdminLTE 4 | 5 | Some files are obtained from Bower installed same way AdminLTE to avoid problems. 6 | 7 | This package only provides/supports AdminLTE files for a Blank page as seen in: 8 | 9 | https://github.com/almasaeed2010/AdminLTE/blob/master/pages/examples/blank.html 10 | 11 | If you need more assets, css, javascript dependencies, etc, please you have to install it yourself. 12 | 13 | ./ is base folder of AdminLTE 14 | 15 | ## Files 16 | 17 | ### Pratt Landing Page 18 | 19 | http://blacktie.co/2013/10/pratt-app-landing-page/ 20 | 21 | ### ADMINLTE 22 | 23 | bootstrap.min.css: 24 | ./bower_components/bootstrap/dist/css/bootstrap.min.css 25 | 26 | font-awesome.min.css: 27 | ./bower_components/font-awesome/css/font-awesome.min.css 28 | 29 | ionicons.min.css: 30 | ../../bower_components/Ionicons/css/ionicons.min.css 31 | -------------------------------------------------------------------------------- /routes/web.php: -------------------------------------------------------------------------------- 1 | 'auth'], function () { 24 | // Route::get('/link1', function () { 25 | // // Uses Auth Middleware 26 | // }); 27 | 28 | //Please do not remove this if you want adminlte:route and adminlte:link commands to works correctly. 29 | #adminlte_routes 30 | }); 31 | -------------------------------------------------------------------------------- /resources/views/auth/partials/social_login.blade.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.app') 2 | 3 | @section('htmlheader_title') 4 | {{ trans('adminlte_lang::message.home') }} 5 | @endsection 6 | 7 | 8 | @section('main-content') 9 |
10 |
11 |
12 | 13 | 14 |
15 |
16 |

Home

17 | 18 |
19 | 21 | 23 |
24 |
25 |
26 | {{ trans('adminlte_lang::message.logged') }}. Start creating your amazing application! 27 |
28 | 29 |
30 | 31 | 32 |
33 |
34 |
35 | @endsection 36 | -------------------------------------------------------------------------------- /src/Console/Menus/RegularMenu.php: -------------------------------------------------------------------------------- 1 | $this->getReplacements()[0], 44 | 'MENU_NAME' => $this->getReplacements()[1] 45 | ]; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/Console/MakeMVC.php: -------------------------------------------------------------------------------- 1 | createModel($this->argument('link')); 42 | parent::handle(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) 2016 :author_name <:author_email> 4 | 5 | > Permission is hereby granted, free of charge, to any person obtaining a copy 6 | > of this software and associated documentation files (the "Software"), to deal 7 | > in the Software without restriction, including without limitation the rights 8 | > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | > copies of the Software, and to permit persons to whom the Software is 10 | > furnished to do so, subject to the following conditions: 11 | > 12 | > The above copyright notice and this permission notice shall be included in 13 | > all copies or substantial portions of the Software. 14 | > 15 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | > THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/Console/stubs/view.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::page') 2 | 3 | @section('htmlheader_title') 4 | Change Title here! 5 | @endsection 6 | 7 | 8 | @section('main-content') 9 |
10 |
11 |
12 | 13 |
14 |
15 |

Example box

16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | Put your content here 25 |
26 | 27 |
28 |
29 |
30 |
31 | @endsection 32 | -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.errors') 2 | 3 | @section('htmlheader_title') 4 | {{ trans('adminlte_lang::message.serviceunavailable') }} 5 | @endsection 6 | 7 | @section('main-content') 8 | 9 |
10 |

503

11 |
12 |

Oops! {{ trans('adminlte_lang::message.somethingwrong') }}

13 |

14 | {{ trans('adminlte_lang::message.mainwhile') }} {{ trans('adminlte_lang::message.returndashboard') }} {{ trans('adminlte_lang::message.usingsearch') }} 15 |

16 |
17 |
18 | 19 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | @endsection 27 | -------------------------------------------------------------------------------- /src/Console/Routes/RegularRoute.php: -------------------------------------------------------------------------------- 1 | $link = $this->getReplacements()[0], 44 | 'ROUTE_VIEW' => $this->getReplacements()[1], 45 | 'ROUTE_METHOD' => $this->getReplacements()[2], 46 | 'ROUTE_NAME' => dot_path($link), 47 | ]; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /resources/views/auth/terms.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/errors/500.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.errors') 2 | 3 | @section('htmlheader_title') 4 | {{ trans('adminlte_lang::message.servererror') }} 5 | @endsection 6 | 7 | @section('main-content') 8 | 9 |
10 |

500

11 |
12 |

Oops! {{ trans('adminlte_lang::message.somethingwrong') }}

13 |

14 | {{ trans('adminlte_lang::message.wewillwork') }} 15 | {{ trans('adminlte_lang::message.mainwhile') }} {{ trans('adminlte_lang::message.returndashboard') }} {{ trans('adminlte_lang::message.usingsearch') }} 16 |

17 |
18 |
19 | 20 |
21 | 22 |
23 |
24 |
25 |
26 |
27 | @endsection -------------------------------------------------------------------------------- /src/Console/Routes/ControllerResourceRoute.php: -------------------------------------------------------------------------------- 1 | $this->getReplacements()[0], 47 | 'ROUTE_CONTROLLER' => $this->controller($this->getReplacements()[1]), 48 | ]; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.errors') 2 | 3 | @section('htmlheader_title') 4 | {{ trans('adminlte_lang::message.pagenotfound') }} 5 | @endsection 6 | 7 | @section('main-content') 8 | 9 |
10 |

404

11 |
12 |

Oops! {{ trans('adminlte_lang::message.pagenotfound') }}.

13 |

14 | {{ trans('adminlte_lang::message.notfindpage') }} 15 | {{ trans('adminlte_lang::message.mainwhile') }} {{ trans('adminlte_lang::message.returndashboard') }} {{ trans('adminlte_lang::message.usingsearch') }} 16 |

17 |
18 |
19 | 20 |
21 | 22 |
23 |
24 |
25 |
26 |
27 | @endsection -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests/Feature 14 | 15 | 16 | ./tests/Unit 17 | 18 | 19 | 20 | 21 | ./app 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/Console/Routes/ControllerRoute.php: -------------------------------------------------------------------------------- 1 | $link = $this->getReplacements()[0], 47 | 'ROUTE_CONTROLLER' => $this->controller($this->getReplacements()[1]), 48 | 'ROUTE_METHOD' => $this->getReplacements()[2], 49 | 'ROUTE_NAME' => dot_path($link), 50 | ]; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Contributions are **welcome** and will be fully **credited**. 4 | 5 | We accept contributions via Pull Requests on [Github](https://github.com/acacha/adminlte-laravel). 6 | 7 | 8 | ## Pull Requests 9 | 10 | - **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - Check the code style with ``$ composer check-style`` and fix it with ``$ composer fix-style``. 11 | 12 | - **Add tests!** - Your patch won't be accepted if it doesn't have tests. 13 | 14 | - **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. 15 | 16 | - **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. 17 | 18 | - **Create feature branches** - Don't ask us to pull from your master branch. 19 | 20 | - **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. 21 | 22 | - **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting. 23 | 24 | 25 | ## Running Tests 26 | 27 | ``` bash 28 | $ composer test 29 | ``` 30 | 31 | 32 | **Happy coding**! 33 | -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Register 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 |
11 |
12 | 15 | 16 | @if (count($errors) > 0) 17 |
18 | Whoops! {{ trans('adminlte_lang::message.someproblems') }}

19 |
    20 | @foreach ($errors->all() as $error) 21 |
  • {{ $error }}
  • 22 | @endforeach 23 |
24 |
25 | @endif 26 | 27 |
28 | 29 | 30 | 31 | 32 | @include('adminlte::auth.partials.social_login') 33 | 34 | {{ trans('adminlte_lang::message.membership') }} 35 |
36 |
37 |
38 | 39 | @include('adminlte::layouts.partials.scripts_auth') 40 | 41 | @include('adminlte::auth.terms') 42 | 43 | 44 | 45 | @endsection 46 | -------------------------------------------------------------------------------- /resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Log in 5 | @endsection 6 | 7 | @section('content') 8 | 9 |
10 | 40 |
41 | @include('adminlte::layouts.partials.scripts_auth') 42 | 43 | 44 | @endsection 45 | -------------------------------------------------------------------------------- /resources/views/layouts/partials/sidebar_with_spatie_menu.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 38 | -------------------------------------------------------------------------------- /src/Console/Routes/Controller.php: -------------------------------------------------------------------------------- 1 | info('Running command ' . $command = $this->command()); 41 | passthru($command); 42 | } 43 | 44 | /** 45 | * Obtain command. 46 | * 47 | * @return string 48 | */ 49 | protected function command() 50 | { 51 | $api = $this->option('api') ? ' --api ' : ''; 52 | $action = $this->argument('action') ? ' ' . $this->argument('action') . ' ' : ''; 53 | return 'php artisan make:route ' . $this->argument('link') . $action . ' --type=' . $this->option('type') . 54 | ' --method=' . $this->option('method') . 55 | $api . 56 | ' -a --menu'; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /resources/assets/css/pratt_landing.min.css: -------------------------------------------------------------------------------- 1 | #showcase,hr{display:block}#headerwrap,#showcase{background-color:#34495e}#features,#showcase{padding-top:50px;padding-bottom:50px}#c,.centered{text-align:center}body{background-color:#f2f2f2;font-family:Lato;font-weight:300;font-size:16px;color:#555;padding-top:50px;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch}h1,h2,h3,h4,h5,h6{font-family:Raleway;font-weight:300;color:#333}p{line-height:28px;margin-bottom:25px}#footerwrap,#headerwrap h5,#headerwrap p{text-align:left;color:#fff}a{color:#3bc492;word-wrap:break-word;-webkit-transition:color .1s ease-in,background .1s ease-in;-moz-transition:color .1s ease-in,background .1s ease-in;-ms-transition:color .1s ease-in,background .1s ease-in;-o-transition:color .1s ease-in,background .1s ease-in;transition:color .1s ease-in,background .1s ease-in}a:focus,a:hover{color:#c0392b;text-decoration:none;outline:0}a:after,a:before{-webkit-transition:color .1s ease-in,background .1s ease-in;-moz-transition:color .1s ease-in,background .1s ease-in;-ms-transition:color .1s ease-in,background .1s ease-in;-o-transition:color .1s ease-in,background .1s ease-in;transition:color .1s ease-in,background .1s ease-in}hr{height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}#headerwrap{padding-top:60px}#headerwrap h1{margin-top:30px;color:#fff;font-size:70px}#headerwrap h3{color:#fff;font-size:30px}#headerwrap h5{font-weight:700}#intro{padding-top:50px;border-top:#bdc3c7 solid 5px}#features .ac a{font-size:20px}#c p,#showcase h1{color:#fff}#footerwrap{background-color:#2f2f2f;padding-top:40px;padding-bottom:60px}#footerwrap h3{font-size:28px;color:#fff}#footerwrap p{color:#fff;font-size:18px}#c{background:#222;padding-top:15px} -------------------------------------------------------------------------------- /resources/views/layouts/partials/htmlheader.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | AdminLTE 2 with Laravel - @yield('htmlheader_title', 'Your title here') 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 19 | 20 | 34 | 35 | -------------------------------------------------------------------------------- /src/Console/MakeVC.php: -------------------------------------------------------------------------------- 1 | info('Running command ' . $command = $this->command()); 42 | passthru($command); 43 | } 44 | 45 | /** 46 | * Obtain command. 47 | * 48 | * @return string 49 | */ 50 | protected function command() 51 | { 52 | $api = $this->option('api') ? ' --api ' : ''; 53 | $action = $this->argument('action') ? ' ' . $this->argument('action') . ' ' : ''; 54 | return 'php artisan make:route ' . $this->argument('link') . $action . ' --type=' . $this->option('type') . 55 | ' --method=' . $this->option('method') . 56 | $api . 57 | ' -a --menu'; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Console/AdminLTEAdmin.php: -------------------------------------------------------------------------------- 1 | createAdminUser(); 33 | $this->info('User ' . $this->username() . '(' . $this->email() . ') ' . 34 | $this->passwordInfo() . ' created succesfully!'); 35 | $this->call('make:adminUserSeeder'); 36 | $this->info('A database seed has been created to permanently add admin user to database.'); 37 | } 38 | 39 | /** 40 | * Create admin user. 41 | */ 42 | protected function createAdminUser() 43 | { 44 | try { 45 | User::factory()->create([ 46 | "name" => env('ADMIN_USER', $this->username()), 47 | "email" => env('ADMIN_EMAIL', $this->email()), 48 | "password" => bcrypt(env('ADMIN_PWD', '123456'))]); 49 | } catch (\Illuminate\Database\QueryException $exception) { 50 | } 51 | } 52 | 53 | /** 54 | * Get password info. 55 | */ 56 | protected function passwordInfo() 57 | { 58 | if (env('ADMIN_PWD', '123456') == '123456') { 59 | return 'with password 123456'; 60 | } 61 | return 'with the environemnt password (env var ADMIN_PWD)'; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "npm run development", 5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 7 | "watch-poll": "npm run watch -- --watch-poll", 8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", 9 | "prod": "npm run production", 10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", 11 | "lint": "./node_modules/.bin/eslint --ext .js,.vue resources/assets/js", 12 | "stats": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --config=node_modules/laravel-mix/setup/webpack.config.js --profile --json > stats.json" 13 | }, 14 | "devDependencies": { 15 | "acacha-forms": "^1.0.0", 16 | "admin-lte": "^2.4.2", 17 | "axios": "^0.21", 18 | "babel-eslint": "^7.1.1", 19 | "bootstrap": "3.4.1", 20 | "popper.js": "^1.12", 21 | "cross-env": "^5.0.1", 22 | "eslint": "^4.18.2", 23 | "eslint-friendly-formatter": "^2.0.7", 24 | "eslint-loader": "^1.6.1", 25 | "eslint-plugin-html": "^2.0.0", 26 | "eslint-config-standard": "^6.2.1", 27 | "eslint-plugin-promise": "^3.4.0", 28 | "eslint-plugin-standard": "^2.0.1", 29 | "font-awesome": "^4.7.0", 30 | "icheck": "^1.0.2", 31 | "ionicons": "^3.0.0", 32 | "jquery": "^3.5", 33 | "laravel-mix": "^6.0", 34 | "lodash": "^4.17.21", 35 | "vue": "^2.5.7" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Password recovery 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 |
11 | 12 | 45 |
46 | 47 | @include('adminlte::layouts.partials.scripts_auth') 48 | 49 | 58 | 59 | 60 | @endsection 61 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "acacha/admin-lte-template-laravel", 3 | "description": "AdminLTE template applied to Laravel Scaffolding", 4 | "license": "MIT", 5 | "type": "package", 6 | "keywords": ["bootstrap", "theme", "admin", "template", "administrator","admin-lte","adminlte", "laravel","acacha"], 7 | "homepage": "https://github.com/acacha/adminlte-laravel", 8 | "authors": [ 9 | { 10 | "name": "Sergi Tur Badenas", 11 | "email": "sergiturbadenas@gmail.com", 12 | "homepage": "http://acacha.org" 13 | } 14 | ], 15 | "require": { 16 | "php": "^7.3", 17 | "creativeorange/gravatar": "~1.0", 18 | "laravel/framework": "^8.0", 19 | "acacha/filesystem": "^0.1.2", 20 | "acacha/helpers": "^0.1.4", 21 | "league/flysystem": "^1.0", 22 | "laravel/ui": "^3.0" 23 | }, 24 | "require-dev": { 25 | "phpunit/phpunit": "^9.0", 26 | "squizlabs/php_codesniffer": "^3.2.3", 27 | "laravel/dusk": "^6.0" 28 | }, 29 | "autoload": { 30 | "psr-4": {"Acacha\\AdminLTETemplateLaravel\\": "src"} 31 | }, 32 | "autoload-dev": { 33 | "psr-4": { 34 | "Acacha\\AdminLTETemplateLaravel\\": "tests" 35 | } 36 | }, 37 | "scripts": { 38 | "test": "./sandbox_setup.sh;cd sandbox;phpunit", 39 | "check-style": "phpcs -p --standard=PSR2.xml --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests", 40 | "fix-style": "phpcbf -p --standard=PSR2.xml --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests" 41 | }, 42 | "extra": { 43 | "branch-alias": { 44 | "dev-master": "1.0-dev" 45 | }, 46 | "laravel": { 47 | "providers": [ 48 | "Acacha\\AdminLTETemplateLaravel\\Providers\\AdminLTETemplateServiceProvider" 49 | ], 50 | "aliases": { 51 | "AdminLTE": "Acacha\\AdminLTETemplateLaravel\\Facades\\AdminLTE" 52 | } 53 | } 54 | }, 55 | "config": { 56 | "sort-packages": true 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Password reset 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 | 11 |
12 | 45 |
46 | 47 | @include('adminlte::layouts.partials.scripts_auth') 48 | 49 | 58 | 59 | 60 | @endsection 61 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | const { mix } = require('laravel-mix'); 2 | 3 | /* 4 | |-------------------------------------------------------------------------- 5 | | Mix Asset Management 6 | |-------------------------------------------------------------------------- 7 | | 8 | | Mix provides a clean, fluent API for defining some Webpack build steps 9 | | for your Laravel application. By default, we are compiling the Sass 10 | | file for the application as well as bundling up all the JS files. 11 | | 12 | */ 13 | 14 | mix.js('resources/assets/js/app.js', 'public/js') 15 | .js('resources/assets/js/app-landing.js', 'public/js/app-landing.js') 16 | .sourceMaps() 17 | .combine([ 18 | 'resources/assets/css/bootstrap.min.css', 19 | 'resources/assets/css/font-awesome.min.css', 20 | 'resources/assets/css/ionicons.min.css', 21 | 'node_modules/admin-lte/dist/css/AdminLTE.min.css', 22 | 'node_modules/admin-lte/dist/css/skins/_all-skins.css', 23 | 'node_modules/icheck/skins/square/blue.css' 24 | ], 'public/css/all.css') 25 | .combine([ 26 | 'resources/assets/css/bootstrap.min.css', 27 | 'resources/assets/css/pratt_landing.min.css' 28 | ], 'public/css/all-landing.css') 29 | // PACKAGE (ADMINLTE-LARAVEL) RESOURCES 30 | .copy('resources/assets/img/*.*','public/img/') 31 | //VENDOR RESOURCES 32 | .copy('node_modules/font-awesome/fonts/*.*','public/fonts/') 33 | .copy('node_modules/ionicons/dist/fonts/*.*','public/fonts/') 34 | .copy('node_modules/bootstrap/fonts/*.*','public/fonts/') 35 | .copy('node_modules/admin-lte/dist/css/skins/*.*','public/css/skins') 36 | .copy('node_modules/admin-lte/dist/img','public/img') 37 | .copy('node_modules/admin-lte/plugins','public/plugins') 38 | .copy('node_modules/icheck/skins/square/blue.png','public/css') 39 | .copy('node_modules/icheck/skins/square/blue@2x.png','public/css'); 40 | 41 | if (mix.config.inProduction) { 42 | mix.version(); 43 | mix.minify(); 44 | } 45 | 46 | -------------------------------------------------------------------------------- /src/Console/PublishAdminLTESidebar.php: -------------------------------------------------------------------------------- 1 | files = $files; 53 | } 54 | 55 | /** 56 | * Execute the console command. 57 | */ 58 | public function handle() 59 | { 60 | $this->processOptions(); 61 | $this->publishSidebarView(); 62 | } 63 | 64 | /** 65 | * Install views. 66 | */ 67 | private function publishSidebarView() 68 | { 69 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::sidebarView()); 70 | } 71 | 72 | /** 73 | * Process options before running command. 74 | */ 75 | private function processOptions() 76 | { 77 | $this->force = $this->option('force'); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/EmailResetPasswordForm.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 | 26 | 59 | -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | 5 | Describe your changes in detail. 6 | 7 | ## Motivation and context 8 | 9 | Why is this change required? What problem does it solve? 10 | 11 | If it fixes an open issue, please link to the issue here (if you write `fixes #num` 12 | or `closes #num`, the issue will be automatically closed when the pull is accepted.) 13 | 14 | ## How has this been tested? 15 | 16 | Please describe in detail how you tested your changes. 17 | 18 | Include details of your testing environment, and the tests you ran to 19 | see how your change affects other areas of the code, etc. 20 | 21 | ## Screenshots (if appropriate) 22 | 23 | ## Types of changes 24 | 25 | What types of changes does your code introduce? Put an `x` in all the boxes that apply: 26 | - [ ] Bug fix (non-breaking change which fixes an issue) 27 | - [ ] New feature (non-breaking change which adds functionality) 28 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 29 | 30 | ## Checklist: 31 | 32 | Go over all the following points, and put an `x` in all the boxes that apply. 33 | 34 | Please, please, please, don't send your pull request until all of the boxes are ticked. Once your pull request is created, it will trigger a build on our [continuous integration](http://www.phptherightway.com/#continuous-integration) server to make sure your [tests and code style pass](https://help.github.com/articles/about-required-status-checks/). 35 | 36 | - [ ] I have read the **[CONTRIBUTING](CONTRIBUTING.md)** document. 37 | - [ ] My pull request addresses exactly one patch/feature. 38 | - [ ] I have created a branch for this patch/feature. 39 | - [ ] Each individual commit in the pull request is meaningful. 40 | - [ ] I have added tests to cover my changes. 41 | - [ ] If my change requires a change to the documentation, I have updated it accordingly. 42 | 43 | If you're unsure about any of these, don't hesitate to ask. We're here to help! 44 | -------------------------------------------------------------------------------- /src/Console/Routes/Route.php: -------------------------------------------------------------------------------- 1 | compiler = $compiler; 46 | $this->filesystem = $filesystem; 47 | } 48 | 49 | /** 50 | * @return array 51 | */ 52 | public function getReplacements() 53 | { 54 | return $this->replacements; 55 | } 56 | 57 | /** 58 | * @param array $replacements 59 | */ 60 | public function setReplacements($replacements) 61 | { 62 | $this->replacements = $replacements; 63 | } 64 | 65 | /** 66 | * Generate route code. 67 | */ 68 | public function code() 69 | { 70 | return $this->compiler->compile( 71 | $this->filesystem->get($this->getStubPath()), 72 | $this->obtainReplacements() 73 | ); 74 | } 75 | 76 | /** 77 | * Get stub path. 78 | * 79 | * @return mixed 80 | */ 81 | abstract protected function getStubPath(); 82 | 83 | /** 84 | * Obtain replacements for stub. 85 | * 86 | * @return mixed 87 | */ 88 | abstract protected function obtainReplacements(); 89 | } 90 | -------------------------------------------------------------------------------- /src/Console/Menus/Menu.php: -------------------------------------------------------------------------------- 1 | compiler = $compiler; 47 | $this->filesystem = $filesystem; 48 | } 49 | 50 | /** 51 | * @return array 52 | */ 53 | public function getReplacements() 54 | { 55 | return $this->replacements; 56 | } 57 | 58 | /** 59 | * @param array $replacements 60 | */ 61 | public function setReplacements($replacements) 62 | { 63 | $this->replacements = $replacements; 64 | } 65 | 66 | /** 67 | * Generate route code. 68 | */ 69 | public function code() 70 | { 71 | return $this->compiler->compile( 72 | $this->filesystem->get($this->getStubPath()), 73 | $this->obtainReplacements() 74 | ); 75 | } 76 | 77 | /** 78 | * Get stub path. 79 | * 80 | * @return mixed 81 | */ 82 | abstract protected function getStubPath(); 83 | 84 | /** 85 | * Obtain replacements for stub. 86 | * 87 | * @return mixed 88 | */ 89 | abstract protected function obtainReplacements(); 90 | } 91 | -------------------------------------------------------------------------------- /.php_cs: -------------------------------------------------------------------------------- 1 | finder(DefaultFinder::create()->in(__DIR__)) 75 | ->fixers($fixers) 76 | ->level(FixerInterface::NONE_LEVEL) 77 | ->setUsingCache(true); -------------------------------------------------------------------------------- /resources/views/layouts/app.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | @section('htmlheader') 9 | @include('adminlte::layouts.partials.htmlheader') 10 | @show 11 | 12 | 32 | 33 |
34 |
35 | 36 | @include('adminlte::layouts.partials.mainheader') 37 | 38 | @include('adminlte::layouts.partials.sidebar') 39 | 40 | 41 |
42 | 43 | @include('adminlte::layouts.partials.contentheader') 44 | 45 | 46 |
47 | 48 | @yield('main-content') 49 |
50 |
51 | 52 | @include('adminlte::layouts.partials.controlsidebar') 53 | 54 | @include('adminlte::layouts.partials.footer') 55 | 56 |
57 |
58 | @section('scripts') 59 | @include('adminlte::layouts.partials.scripts') 60 | @show 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/Console/MakeAdminUserSeeder.php: -------------------------------------------------------------------------------- 1 | filesystem = $filesystem; 56 | $this->compiler = $compiler; 57 | } 58 | 59 | /** 60 | * Execute the console command. 61 | * 62 | */ 63 | public function handle() 64 | { 65 | try { 66 | $this->filesystem->overwrite( 67 | $path = database_path('seeders/' . config('AdminUserSeeder', 'AdminUserSeeder.php')), 68 | $this->compiler->compile( 69 | $this->filesystem->get($this->getStubPath()), 70 | [ 71 | "USER_NAME" => $this->username(), 72 | "USER_EMAIL" => $this->email(), 73 | ] 74 | ) 75 | ); 76 | $this->info('File ' . $path . ' created'); 77 | } catch (\Exception $e) { 78 | print_r($e->getMessage()); 79 | } 80 | } 81 | 82 | /** 83 | * Get path to stub. 84 | * 85 | * @return string 86 | */ 87 | protected function getStubPath() 88 | { 89 | return __DIR__ . '/stubs/AdminUserSeeder.php'; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/Console/Username.php: -------------------------------------------------------------------------------- 1 | files = $files; 51 | } 52 | 53 | /** 54 | * Execute the console command. 55 | */ 56 | public function handle() 57 | { 58 | $this->processOptions(); 59 | $this->publishAuthConfigFile(); 60 | $this->publishUserClass(); 61 | $this->runMigration(); 62 | } 63 | 64 | /** 65 | * Install auth config file. 66 | */ 67 | private function publishAuthConfigFile() 68 | { 69 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::authConfig()); 70 | } 71 | 72 | /** 73 | * Publish User class. 74 | */ 75 | private function publishUserClass() 76 | { 77 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::userClass()); 78 | } 79 | 80 | /** 81 | * Run migration. 82 | */ 83 | private function runMigration() 84 | { 85 | $this->info('Installing doctrine/dbal'); 86 | passthru('composer require doctrine/dbal'); 87 | $this->info('Running php artisan migrate'); 88 | passthru('php artisan migrate'); 89 | } 90 | 91 | /** 92 | * Process options before running command. 93 | */ 94 | private function processOptions() 95 | { 96 | $this->force = $this->option('force'); 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /config/adminlte.php: -------------------------------------------------------------------------------- 1 | true, 18 | 19 | /* 20 | |-------------------------------------------------------------------------- 21 | | Use GuestUser/NullUser design pattern 22 | |-------------------------------------------------------------------------- 23 | | 24 | | Acacha adminlte Laravel use GuestUser/NullUser design pattern. 25 | | Set this option to false to avoid registering GuestUser service provider. 26 | | Be careful because default provided views depends on this service so adapt 27 | | views to your requirements. 28 | | See https://github.com/acacha/user 29 | | See https://laracasts.com/series/whip-monstrous-code-into-shape/episodes/19 30 | */ 31 | 32 | 'guestuser' => true, 33 | 34 | /* 35 | |-------------------------------------------------------------------------- 36 | | Admin user migration 37 | |-------------------------------------------------------------------------- 38 | | 39 | | Allow the migration to add a unique nullable username field to the users 40 | | table 41 | */ 42 | 43 | 'add_nullable_username' => true, 44 | 45 | /* 46 | |-------------------------------------------------------------------------- 47 | | Admin user seeder name 48 | |-------------------------------------------------------------------------- 49 | | 50 | | The name of the seeder to add admin user to database. 51 | */ 52 | 53 | 'AdminUserSeeder' => 'AdminUserSeeder.php', 54 | 55 | /* 56 | |-------------------------------------------------------------------------- 57 | | Install routes 58 | |-------------------------------------------------------------------------- 59 | | 60 | | The package Service Providers installs some routes like authorization routes (Auth::route) 61 | | and /home. You could disable this routes with this option but remember then to manage the 62 | | routes in your app. 63 | */ 64 | 65 | 'install_routes' => true 66 | 67 | ]; 68 | -------------------------------------------------------------------------------- /resources/views/layouts/partials/sidebar.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 49 | -------------------------------------------------------------------------------- /src/Console/MakeView.php: -------------------------------------------------------------------------------- 1 | filesystem = $filesystem; 46 | } 47 | 48 | /** 49 | * Execute the console command. 50 | * 51 | */ 52 | public function handle() 53 | { 54 | try { 55 | $this->filesystem->make( 56 | $path = resource_path('views/' . $this->viewPath()), 57 | $this->filesystem->get($this->getStubPath()), 58 | true 59 | ); 60 | $this->info('File ' . $path . ' created'); 61 | } catch (\Exception $e) { 62 | $this->error($e->getMessage()); 63 | } 64 | } 65 | 66 | /** 67 | * Get stub path 68 | */ 69 | protected function getStubPath() 70 | { 71 | return __DIR__ . '/stubs/view.blade.php'; 72 | } 73 | 74 | /** 75 | * The view destination path. 76 | * 77 | * @return string 78 | */ 79 | protected function viewPath() 80 | { 81 | return $this->constructViewBladeName($this->argument('name')); 82 | } 83 | 84 | /** 85 | * Create full relative path to blade template from view name. 86 | * 87 | * @param $name 88 | * @return string 89 | */ 90 | protected function constructViewBladeName($name) 91 | { 92 | return $this->dottedPathToSlashesPath($name) . '.blade.php'; 93 | } 94 | 95 | /** 96 | * Converts dotted notation to path slashes. 97 | * 98 | * @param $name 99 | * @return mixed 100 | */ 101 | protected function dottedPathToSlashesPath($name) 102 | { 103 | return str_replace(".", "/", $name); 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /src/stubs/LoginController.php: -------------------------------------------------------------------------------- 1 | middleware('guest', ['except' => 'logout']); 51 | } 52 | 53 | /** 54 | * Returns field name to use at login. 55 | * 56 | * @return string 57 | */ 58 | public function username() 59 | { 60 | return config('auth.providers.users.field', 'email'); 61 | } 62 | 63 | /** 64 | * Attempt to log the user into the application. 65 | * 66 | * @param \Illuminate\Http\Request $request 67 | * @return bool 68 | */ 69 | protected function attemptLogin(Request $request) 70 | { 71 | if ($this->username() === 'email') { 72 | return $this->attemptLoginAtAuthenticatesUsers($request); 73 | } 74 | if (! $this->attemptLoginAtAuthenticatesUsers($request)) { 75 | return $this->attempLoginUsingUsernameAsAnEmail($request); 76 | } 77 | return false; 78 | } 79 | 80 | /** 81 | * Attempt to log the user into application using username as an email. 82 | * 83 | * @param \Illuminate\Http\Request $request 84 | * @return bool 85 | */ 86 | protected function attempLoginUsingUsernameAsAnEmail(Request $request) 87 | { 88 | return $this->guard()->attempt( 89 | ['email' => $request->input('username'), 'password' => $request->input('password')], 90 | $request->has('remember') 91 | ); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/stubs/RegisterController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 54 | } 55 | 56 | /** 57 | * Get a validator for an incoming registration request. 58 | * 59 | * @param array $data 60 | * @return \Illuminate\Contracts\Validation\Validator 61 | */ 62 | protected function validator(array $data) 63 | { 64 | return Validator::make($data, [ 65 | 'name' => 'required|max:255', 66 | 'username' => 'sometimes|required|max:255|unique:users', 67 | 'email' => 'required|email|max:255|unique:users', 68 | 'password' => 'required|min:8|confirmed', 69 | 'terms' => 'required', 70 | ]); 71 | } 72 | 73 | /** 74 | * Create a new user instance after a valid registration. 75 | * 76 | * @param array $data 77 | * @return User 78 | */ 79 | protected function create(array $data) 80 | { 81 | $fields = [ 82 | 'name' => $data['name'], 83 | 'email' => $data['email'], 84 | 'password' => bcrypt($data['password']), 85 | ]; 86 | if (config('auth.providers.users.field', 'email') === 'username' && isset($data['username'])) { 87 | $fields['username'] = $data['username']; 88 | } 89 | return User::create($fields); 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /resources/assets/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | /* global _ Vue */ 2 | 3 | window._ = require('lodash') 4 | window.Popper = require('popper.js').default; 5 | 6 | /** 7 | * We'll load jQuery and the Bootstrap jQuery plugin which provides support 8 | * for JavaScript based Bootstrap features such as modals and tabs. This 9 | * code may be modified to fit the specific needs of your application. 10 | */ 11 | 12 | try { 13 | window.$ = window.jQuery = require('jquery'); 14 | 15 | require('bootstrap'); 16 | } catch (e) {} 17 | 18 | require('admin-lte') 19 | require('icheck') 20 | 21 | /** 22 | * We'll load the axios HTTP library which allows us to easily issue requests 23 | * to our Laravel back-end. This library automatically handles sending the 24 | * CSRF token as a header based on the value of the "XSRF" token cookie. 25 | */ 26 | 27 | window.axios = require('axios') 28 | 29 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 30 | 31 | /** 32 | * Next we will register the CSRF Token as a common header with Axios so that 33 | * all outgoing HTTP requests automatically have it attached. This is just 34 | * a simple convenience so we don't have to attach every token manually. 35 | */ 36 | 37 | let token = document.head.querySelector('meta[name="csrf-token"]'); 38 | 39 | if (token) { 40 | window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; 41 | } else { 42 | console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); 43 | } 44 | 45 | /** 46 | * Vue is a modern JavaScript library for building interactive web interfaces 47 | * using reactive data binding and reusable components. Vue's API is clean 48 | * and simple, leaving you to focus on building your next great project. 49 | */ 50 | 51 | window.Vue = require('vue') 52 | 53 | // Use trans function in Vue (equivalent to trans() Laravel Translations helper). See htmlheader.balde.php partial. 54 | Vue.prototype.trans = (key) => { 55 | return _.get(window.trans, key, key) 56 | } 57 | 58 | // Laravel AdminLTE vue components 59 | Vue.component('register-form', require('./components/auth/RegisterForm.vue')) 60 | Vue.component('login-form', require('./components/auth/LoginForm.vue')) 61 | Vue.component('email-reset-password-form', require('./components/auth/EmailResetPasswordForm.vue')) 62 | Vue.component('reset-password-form', require('./components/auth/ResetPasswordForm.vue')) 63 | 64 | /** 65 | * Echo exposes an expressive API for subscribing to channels and listening 66 | * for events that are broadcast by Laravel. Echo and event broadcasting 67 | * allows your team to easily build robust real-time web applications. 68 | */ 69 | 70 | // import Echo from 'laravel-echo' 71 | 72 | // window.Pusher = require('pusher-js'); 73 | 74 | // window.Echo = new Echo({ 75 | // broadcaster: 'pusher', 76 | // key: 'your-pusher-key' 77 | // }); 78 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/email.withoutvue.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Password recovery 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 |
11 | 12 | 60 |
61 | 62 | @include('adminlte::layouts.partials.scripts_auth') 63 | 64 | 73 | 74 | 75 | @endsection -------------------------------------------------------------------------------- /config/menu.php: -------------------------------------------------------------------------------- 1 | prepend(' Multilevel PROVA ') 9 | // ->addParentClass('treeview') 10 | // ->add(Link::to('/link1prova', 'Link1 prova'))->addClass('treeview-menu') 11 | // ->add(Link::to('/link2prova', 'Link2 prova'))->addClass('treeview-menu') 12 | // ->url('http://www.google.com', 'Google'); 13 | //}); 14 | 15 | Menu::macro('adminlteSubmenu', function ($submenuName) { 16 | return Menu::new()->prepend(' ' . $submenuName . ' ') 17 | ->addParentClass('treeview')->addClass('treeview-menu'); 18 | }); 19 | Menu::macro('adminlteMenu', function () { 20 | return Menu::new() 21 | ->addClass('sidebar-menu')->setAttribute('data-widget', 'tree'); 22 | }); 23 | Menu::macro('adminlteSeparator', function ($title) { 24 | return Html::raw($title)->addParentClass('header'); 25 | }); 26 | 27 | Menu::macro('adminlteDefaultMenu', function ($content) { 28 | return Html::raw('' . $content . '')->html(); 29 | }); 30 | 31 | Menu::macro('sidebar', function () { 32 | return Menu::adminlteMenu() 33 | ->add(Html::raw('HEADER')->addParentClass('header')) 34 | ->action('HomeController@index', 'Home') 35 | ->link('http://www.acacha.org', Menu::adminlteDefaultMenu('Another link')) 36 | // ->url('http://www.google.com', 'Google') 37 | ->add(Menu::adminlteSeparator('Acacha Adminlte')) 38 | #adminlte_menu 39 | ->add(Menu::adminlteSeparator('SECONDARY MENU')) 40 | ->add(Menu::new()->prepend('Multilevel ') 41 | ->addParentClass('treeview') 42 | ->add(Link::to('/link1', 'Link1'))->addClass('treeview-menu') 43 | ->add(Link::to('/link2', 'Link2')) 44 | ->url('http://www.google.com', 'Google') 45 | ->add(Menu::new()->prepend('Multilevel 2 ') 46 | ->addParentClass('treeview') 47 | ->add(Link::to('/link21', 'Link21'))->addClass('treeview-menu') 48 | ->add(Link::to('/link22', 'Link22')) 49 | ->url('http://www.google.com', 'Google') 50 | ) 51 | ) 52 | // ->add( 53 | // Menu::fullsubmenuexample() 54 | // ) 55 | // ->add( 56 | // Menu::adminlteSubmenu('Best menu') 57 | // ->add(Link::to('/acacha', 'acacha')) 58 | // ->add(Link::to('/profile', 'Profile')) 59 | // ->url('http://www.google.com', 'Google') 60 | // ) 61 | ->setActiveFromRequest(); 62 | }); 63 | -------------------------------------------------------------------------------- /src/Console/AdminLTEMenu.php: -------------------------------------------------------------------------------- 1 | files = $files; 53 | } 54 | 55 | /** 56 | * Execute the console command. 57 | */ 58 | public function handle() 59 | { 60 | $this->processOptions(); 61 | $this->checkIfSpatieMenuAlreadyInstalled(); 62 | $this->installSpatieMenu(); 63 | $this->publishSpatieMenu(); 64 | $this->publishSpatieMenuConfig(); 65 | } 66 | 67 | /** 68 | * Check if spatie menu is already installed. 69 | * 70 | * @throws SpatieMenuAlreadyExists 71 | */ 72 | protected function checkIfSpatieMenuAlreadyInstalled() 73 | { 74 | if ((app()->getProvider('Spatie\Menu\Laravel\MenuServiceProvider')) && ! $this->force) { 75 | throw new SpatieMenuAlreadyExists(); 76 | } 77 | return; 78 | } 79 | 80 | /** 81 | * Install spatie/laravel-menu. 82 | */ 83 | protected function installSpatieMenu() 84 | { 85 | passthru('composer require spatie/laravel-menu'); 86 | } 87 | 88 | /** 89 | * Process options before running command. 90 | */ 91 | protected function processOptions() 92 | { 93 | $this->force = $this->option('force'); 94 | } 95 | 96 | /** 97 | * Publish sidebar with spatie menu 98 | */ 99 | protected function publishSpatieMenu() 100 | { 101 | $this->install(AdminLTE::spatieMenu()); 102 | } 103 | 104 | /** 105 | * Publish spatie menu config 106 | */ 107 | protected function publishSpatieMenuConfig() 108 | { 109 | $this->install(AdminLTE::menu()); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at sergiturbadenas@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/ResetPasswordForm.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 39 | 40 | 89 | -------------------------------------------------------------------------------- /resources/views/layouts/partials/controlsidebar.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 63 |
-------------------------------------------------------------------------------- /CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at sergiturbadenas@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [http://contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: http://contributor-covenant.org 74 | [version]: http://contributor-covenant.org/version/1/4/ 75 | -------------------------------------------------------------------------------- /src/stubs/ForgotPasswordController.php: -------------------------------------------------------------------------------- 1 | validateEmail($request); 35 | 36 | // We will send the password reset link to this user. Once we have attempted 37 | // to send the link, we will examine the response then see the message we 38 | // need to show to the user. Finally, we'll send out a proper response. 39 | $response = $this->broker()->sendResetLink( 40 | $request->only('email') 41 | ); 42 | 43 | return $response == Password::RESET_LINK_SENT 44 | ? $this->sendResetLinkResponse($request, $response) 45 | : $this->sendResetLinkFailedResponse($request, $response); 46 | } 47 | 48 | /** 49 | * Get the response for a successful password reset link. 50 | * 51 | * @param string $response 52 | * @return mixed 53 | */ 54 | protected function sendResetLinkResponse(Request $request, $response) 55 | { 56 | if ($request->expectsJson()) { 57 | return response()->json([ 58 | 'status' => trans($response) 59 | ]); 60 | } 61 | return back()->with('status', trans($response)); 62 | } 63 | 64 | /** 65 | * Get the response for a failed password reset link. 66 | * 67 | * @param Request $request 68 | * @param $response 69 | * @return mixed 70 | */ 71 | protected function sendResetLinkFailedResponse(Request $request, $response) 72 | { 73 | if ($request->expectsJson()) { 74 | return new JsonResponse([ 75 | 'message' => 'The given data was invalid.', 76 | 'errors' => [ 77 | 'email' => trans($response) 78 | ] 79 | ], 422); 80 | } 81 | return back()->withErrors( 82 | ['email' => trans($response)] 83 | ); 84 | } 85 | 86 | /** 87 | * Display the form to request a password reset link. 88 | * 89 | * @return \Illuminate\Http\Response 90 | */ 91 | public function showLinkRequestForm() 92 | { 93 | return view('adminlte::auth.passwords.email'); 94 | } 95 | 96 | /** 97 | * Create a new controller instance. 98 | * 99 | * @return void 100 | */ 101 | public function __construct() 102 | { 103 | $this->middleware('guest'); 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /resources/assets/css/pratt_landing.css: -------------------------------------------------------------------------------- 1 | /* Pratt Landing page css http://blacktie.co/demo/pratt/assets/css/main.css */ 2 | body { 3 | background-color: #f2f2f2; 4 | font-family: "Lato"; 5 | font-weight: 300; 6 | font-size: 16px; 7 | color: #555; 8 | padding-top: 50px; 9 | 10 | -webkit-font-smoothing: antialiased; 11 | -webkit-overflow-scrolling: touch; 12 | } 13 | 14 | /* Titles */ 15 | h1, h2, h3, h4, h5, h6 { 16 | font-family: "Raleway"; 17 | font-weight: 300; 18 | color: #333; 19 | } 20 | 21 | 22 | /* Paragraph & Typographic */ 23 | p { 24 | line-height: 28px; 25 | margin-bottom: 25px; 26 | } 27 | 28 | .centered { 29 | text-align: center; 30 | } 31 | 32 | /* Links */ 33 | a { 34 | color: #3bc492; 35 | word-wrap: break-word; 36 | 37 | -webkit-transition: color 0.1s ease-in, background 0.1s ease-in; 38 | -moz-transition: color 0.1s ease-in, background 0.1s ease-in; 39 | -ms-transition: color 0.1s ease-in, background 0.1s ease-in; 40 | -o-transition: color 0.1s ease-in, background 0.1s ease-in; 41 | transition: color 0.1s ease-in, background 0.1s ease-in; 42 | } 43 | 44 | a:hover, 45 | a:focus { 46 | color: #c0392b; 47 | text-decoration: none; 48 | outline: 0; 49 | } 50 | 51 | a:before, 52 | a:after { 53 | -webkit-transition: color 0.1s ease-in, background 0.1s ease-in; 54 | -moz-transition: color 0.1s ease-in, background 0.1s ease-in; 55 | -ms-transition: color 0.1s ease-in, background 0.1s ease-in; 56 | -o-transition: color 0.1s ease-in, background 0.1s ease-in; 57 | transition: color 0.1s ease-in, background 0.1s ease-in; 58 | } 59 | 60 | hr { 61 | display: block; 62 | height: 1px; 63 | border: 0; 64 | border-top: 1px solid #ccc; 65 | margin: 1em 0; 66 | padding: 0; 67 | } 68 | 69 | 70 | /* ========================================================================== 71 | Wrap Sections 72 | ========================================================================== */ 73 | 74 | #headerwrap { 75 | background-color: #34495e; 76 | padding-top: 60px; 77 | } 78 | 79 | #headerwrap h1 { 80 | margin-top: 30px; 81 | color: white; 82 | font-size: 70px; 83 | 84 | } 85 | 86 | #headerwrap h3 { 87 | color: white; 88 | font-size: 30px; 89 | } 90 | 91 | #headerwrap h5 { 92 | color: white; 93 | font-weight: 700; 94 | text-align: left; 95 | } 96 | 97 | #headerwrap p { 98 | text-align: left; 99 | color: white 100 | } 101 | 102 | /* intro Wrap */ 103 | 104 | #intro { 105 | padding-top: 50px; 106 | border-top: #bdc3c7 solid 5px; 107 | } 108 | 109 | #features { 110 | padding-top: 50px; 111 | padding-bottom: 50px; 112 | } 113 | 114 | #features .ac a{ 115 | font-size: 20px; 116 | } 117 | 118 | /* Showcase Wrap */ 119 | 120 | #showcase { 121 | display: block; 122 | background-color: #34495e; 123 | padding-top: 50px; 124 | padding-bottom: 50px; 125 | } 126 | 127 | #showcase h1 { 128 | color: white; 129 | } 130 | 131 | #footerwrap { 132 | background-color: #2f2f2f; 133 | color: white; 134 | padding-top: 40px; 135 | padding-bottom: 60px; 136 | text-align: left; 137 | } 138 | 139 | #footerwrap h3 { 140 | font-size: 28px; 141 | color: white; 142 | } 143 | 144 | #footerwrap p { 145 | color: white; 146 | font-size: 18px; 147 | } 148 | 149 | /* Copyright Wrap */ 150 | 151 | #c { 152 | background: #222222; 153 | padding-top: 15px; 154 | text-align: center; 155 | } 156 | 157 | #c p { 158 | color: white 159 | } 160 | 161 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/reset.withoutvue.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Password reset 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 | 11 |
12 | 71 |
72 | 73 | @include('adminlte::layouts.partials.scripts_auth') 74 | 75 | 84 | 85 | 86 | @endsection -------------------------------------------------------------------------------- /resources/views/auth/login.withoutvue.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Log in 5 | @endsection 6 | 7 | @section('content') 8 | 9 |
10 | 64 |
65 | @include('adminlte::layouts.partials.scripts_auth') 66 | 67 | 76 | 77 | 78 | @endsection -------------------------------------------------------------------------------- /src/Console/Installable.php: -------------------------------------------------------------------------------- 1 | $fileDst) { 22 | if (file_exists($fileDst) && !$this->force && !$this->confirmOverwrite(basename($fileDst))) { 23 | return; 24 | } 25 | if ($this->files->isFile($fileSrc)) { 26 | $this->publishFile($fileSrc, $fileDst); 27 | } elseif ($this->files->isDirectory($fileSrc)) { 28 | $this->publishDirectory($fileSrc, $fileDst); 29 | } else { 30 | $this->error("Can't locate path: <{$fileSrc}>"); 31 | } 32 | } 33 | } 34 | 35 | /** 36 | * @param $fileName 37 | * @param string $prompt 38 | * 39 | * @return bool 40 | */ 41 | protected function confirmOverwrite($fileName, $prompt = '') 42 | { 43 | $prompt = (empty($prompt)) 44 | ? $fileName.' already exists. Do you want to overwrite it? [y|N]' 45 | : $prompt; 46 | 47 | return $this->confirm($prompt, false); 48 | } 49 | 50 | /** 51 | * Create the directory to house the published files if needed. 52 | * 53 | * @param string $directory 54 | * 55 | * @return void 56 | */ 57 | protected function createParentDirectory($directory) 58 | { 59 | if (!$this->files->isDirectory($directory)) { 60 | $this->files->makeDirectory($directory, 0755, true); 61 | } 62 | } 63 | 64 | /** 65 | * Publish the file to the given path. 66 | * 67 | * @param string $from 68 | * @param string $to 69 | * 70 | * @return void 71 | */ 72 | protected function publishFile($from, $to) 73 | { 74 | $this->createParentDirectory(dirname($to)); 75 | $this->files->copy($from, $to); 76 | $this->status($from, $to, 'File'); 77 | } 78 | 79 | /** 80 | * Publish the directory to the given directory. 81 | * 82 | * @param string $from 83 | * @param string $to 84 | * 85 | * @return void 86 | */ 87 | protected function publishDirectory($from, $to) 88 | { 89 | $manager = new MountManager([ 90 | 'from' => new Flysystem(new LocalAdapter($from)), 91 | 'to' => new Flysystem(new LocalAdapter($to)), 92 | ]); 93 | foreach ($manager->listContents('from://', true) as $file) { 94 | if ($file['type'] === 'file' && (!$manager->has('to://'.$file['path']) || $this->force)) { 95 | $manager->put('to://'.$file['path'], $manager->read('from://'.$file['path'])); 96 | } 97 | } 98 | $this->status($from, $to, 'Directory'); 99 | } 100 | 101 | /** 102 | * Write a status message to the console. 103 | * 104 | * @param string $from 105 | * @param string $to 106 | * @param string $type 107 | * 108 | * @return void 109 | */ 110 | protected function status($from, $to, $type) 111 | { 112 | $from = str_replace(base_path(), '', realpath($from)); 113 | $to = str_replace(base_path(), '', realpath($to)); 114 | $this->line('Copied '. $type. ' ['. $from. 115 | '] To ['.$to.']'); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /public/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js", 3 | "/js/app-landing.js": "/js/app-landing.js", 4 | "/css/all.css": "/css/all.css", 5 | "/css/all-landing.css": "/css/all-landing.css", 6 | "/img/app-bg.png": "/img/app-bg.png", 7 | "/img/arrow1.png": "/img/arrow1.png", 8 | "/img/arrow2.png": "/img/arrow2.png", 9 | "/img/intro01.png": "/img/intro01.png", 10 | "/img/intro02.png": "/img/intro02.png", 11 | "/img/intro03.png": "/img/intro03.png", 12 | "/img/item-01.png": "/img/item-01.png", 13 | "/img/item-02.png": "/img/item-02.png", 14 | "/img/mobile.png": "/img/mobile.png", 15 | "/fonts/fontawesome-webfont.eot": "/fonts/fontawesome-webfont.eot", 16 | "/fonts/fontawesome-webfont.svg": "/fonts/fontawesome-webfont.svg", 17 | "/fonts/fontawesome-webfont.ttf": "/fonts/fontawesome-webfont.ttf", 18 | "/fonts/fontawesome-webfont.woff": "/fonts/fontawesome-webfont.woff", 19 | "/fonts/fontawesome-webfont.woff2": "/fonts/fontawesome-webfont.woff2", 20 | "/fonts/FontAwesome.otf": "/fonts/FontAwesome.otf", 21 | "/fonts/ionicons.eot": "/fonts/ionicons.eot", 22 | "/fonts/ionicons.svg": "/fonts/ionicons.svg", 23 | "/fonts/ionicons.ttf": "/fonts/ionicons.ttf", 24 | "/fonts/ionicons.woff": "/fonts/ionicons.woff", 25 | "/fonts/ionicons.woff2": "/fonts/ionicons.woff2", 26 | "/fonts/glyphicons-halflings-regular.eot": "/fonts/glyphicons-halflings-regular.eot", 27 | "/fonts/glyphicons-halflings-regular.svg": "/fonts/glyphicons-halflings-regular.svg", 28 | "/fonts/glyphicons-halflings-regular.ttf": "/fonts/glyphicons-halflings-regular.ttf", 29 | "/fonts/glyphicons-halflings-regular.woff": "/fonts/glyphicons-halflings-regular.woff", 30 | "/fonts/glyphicons-halflings-regular.woff2": "/fonts/glyphicons-halflings-regular.woff2", 31 | "/css/skins/_all-skins.css": "/css/skins/_all-skins.css", 32 | "/css/skins/_all-skins.min.css": "/css/skins/_all-skins.min.css", 33 | "/css/skins/skin-black-light.css": "/css/skins/skin-black-light.css", 34 | "/css/skins/skin-black-light.min.css": "/css/skins/skin-black-light.min.css", 35 | "/css/skins/skin-black.css": "/css/skins/skin-black.css", 36 | "/css/skins/skin-black.min.css": "/css/skins/skin-black.min.css", 37 | "/css/skins/skin-blue-light.css": "/css/skins/skin-blue-light.css", 38 | "/css/skins/skin-blue-light.min.css": "/css/skins/skin-blue-light.min.css", 39 | "/css/skins/skin-blue.css": "/css/skins/skin-blue.css", 40 | "/css/skins/skin-blue.min.css": "/css/skins/skin-blue.min.css", 41 | "/css/skins/skin-green-light.css": "/css/skins/skin-green-light.css", 42 | "/css/skins/skin-green-light.min.css": "/css/skins/skin-green-light.min.css", 43 | "/css/skins/skin-green.css": "/css/skins/skin-green.css", 44 | "/css/skins/skin-green.min.css": "/css/skins/skin-green.min.css", 45 | "/css/skins/skin-purple-light.css": "/css/skins/skin-purple-light.css", 46 | "/css/skins/skin-purple-light.min.css": "/css/skins/skin-purple-light.min.css", 47 | "/css/skins/skin-purple.css": "/css/skins/skin-purple.css", 48 | "/css/skins/skin-purple.min.css": "/css/skins/skin-purple.min.css", 49 | "/css/skins/skin-red-light.css": "/css/skins/skin-red-light.css", 50 | "/css/skins/skin-red-light.min.css": "/css/skins/skin-red-light.min.css", 51 | "/css/skins/skin-red.css": "/css/skins/skin-red.css", 52 | "/css/skins/skin-red.min.css": "/css/skins/skin-red.min.css", 53 | "/css/skins/skin-yellow-light.css": "/css/skins/skin-yellow-light.css", 54 | "/css/skins/skin-yellow-light.min.css": "/css/skins/skin-yellow-light.min.css", 55 | "/css/skins/skin-yellow.css": "/css/skins/skin-yellow.css", 56 | "/css/skins/skin-yellow.min.css": "/css/skins/skin-yellow.min.css", 57 | "/css/blue.png": "/css/blue.png", 58 | "/css/blue@2x.png": "/css/blue@2x.png" 59 | } -------------------------------------------------------------------------------- /src/stubs/auth.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'guard' => 'web', 18 | 'passwords' => 'users', 19 | ], 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Authentication Guards 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Next, you may define every authentication guard for your application. 27 | | Of course, a great default configuration has been defined for you 28 | | here which uses session storage and the Eloquent user provider. 29 | | 30 | | All authentication drivers have a user provider. This defines how the 31 | | users are actually retrieved out of your database or other storage 32 | | mechanisms used by this application to persist your user's data. 33 | | 34 | | Supported: "session", "token" 35 | | 36 | */ 37 | 38 | 'guards' => [ 39 | 'web' => [ 40 | 'driver' => 'session', 41 | 'provider' => 'users', 42 | ], 43 | 44 | 'api' => [ 45 | 'driver' => 'token', 46 | 'provider' => 'users', 47 | ], 48 | ], 49 | 50 | /* 51 | |-------------------------------------------------------------------------- 52 | | User Providers 53 | |-------------------------------------------------------------------------- 54 | | 55 | | All authentication drivers have a user provider. This defines how the 56 | | users are actually retrieved out of your database or other storage 57 | | mechanisms used by this application to persist your user's data. 58 | | 59 | | If you have multiple user tables or models you may configure multiple 60 | | sources which represent each model / table. These sources may then 61 | | be assigned to any extra authentication guards you have defined. 62 | | 63 | | Supported: "database", "eloquent" 64 | | 65 | */ 66 | 67 | 'providers' => [ 68 | 'users' => [ 69 | 'driver' => 'eloquent', 70 | 'model' => App\User::class, 71 | 'field' => 'username' // Adminlte laravel. Valid values: 'email' or 'username' 72 | ], 73 | 74 | // 'users' => [ 75 | // 'driver' => 'database', 76 | // 'table' => 'users', 77 | // 'field' => 'username' // Adminlte laravel. Valid values: 'email' or 'username' 78 | // ], 79 | ], 80 | 81 | /* 82 | |-------------------------------------------------------------------------- 83 | | Resetting Passwords 84 | |-------------------------------------------------------------------------- 85 | | 86 | | You may specify multiple password reset configurations if you have more 87 | | than one user table or model in the application and you want to have 88 | | separate password reset settings based on the specific user types. 89 | | 90 | | The expire time is the number of minutes that the reset token should be 91 | | considered valid. This security feature keeps tokens short-lived so 92 | | they have less time to be guessed. You may change this as needed. 93 | | 94 | */ 95 | 96 | 'passwords' => [ 97 | 'users' => [ 98 | 'provider' => 'users', 99 | 'table' => 'password_resets', 100 | 'expire' => 60, 101 | ], 102 | ], 103 | 104 | ]; 105 | -------------------------------------------------------------------------------- /src/stubs/ResetPasswordController.php: -------------------------------------------------------------------------------- 1 | validate($request, $this->rules(), $this->validationErrorMessages()); 35 | 36 | // Here we will attempt to reset the user's password. If it is successful we 37 | // will update the password on an actual user model and persist it to the 38 | // database. Otherwise we will parse the error and return the response. 39 | $response = $this->broker()->reset( 40 | $this->credentials($request), 41 | function ($user, $password) { 42 | $this->resetPassword($user, $password); 43 | } 44 | ); 45 | 46 | // If the password was successfully reset, we will redirect the user back to 47 | // the application's home authenticated view. If there is an error we can 48 | // redirect them back to where they came from with their error message. 49 | return $response == Password::PASSWORD_RESET 50 | ? $this->sendResetResponse($request, $response) 51 | : $this->sendResetFailedResponse($request, $response); 52 | } 53 | 54 | /** 55 | * Get the response for a successful password reset. 56 | * 57 | * @param \Illuminate\Http\Request 58 | * @param string $response 59 | * @return \Illuminate\Http\RedirectResponse 60 | */ 61 | protected function sendResetResponse(Request $request, $response) 62 | { 63 | if ($request->expectsJson()) { 64 | return response()->json([ 65 | 'status' => trans($response) 66 | ]); 67 | } 68 | return redirect($this->redirectPath()) 69 | ->with('status', trans($response)); 70 | } 71 | 72 | /** 73 | * Get the response for a failed password reset. 74 | * 75 | * @param \Illuminate\Http\Request 76 | * @param string $response 77 | * @return mixed 78 | */ 79 | protected function sendResetFailedResponse(Request $request, $response) 80 | { 81 | if ($request->expectsJson()) { 82 | return new JsonResponse(['email' => trans($response) ], 422); 83 | } 84 | return redirect()->back() 85 | ->withInput($request->only('email')) 86 | ->withErrors(['email' => trans($response)]); 87 | } 88 | 89 | /** 90 | * Display the password reset view for the given token. 91 | * 92 | * If no token is present, display the link request form. 93 | * 94 | * @param \Illuminate\Http\Request $request 95 | * @param string|null $token 96 | * @return \Illuminate\Http\Response 97 | */ 98 | public function showResetForm(Request $request, $token = null) 99 | { 100 | return view('adminlte::auth.passwords.reset')->with( 101 | ['token' => $token, 'email' => $request->email] 102 | ); 103 | } 104 | 105 | /** 106 | * Create a new controller instance. 107 | * 108 | * @return void 109 | */ 110 | public function __construct() 111 | { 112 | $this->middleware('guest'); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /resources/assets/js/smoothscroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SmoothScroll 3 | * This helper script created by DWUser.com. Copyright 2013 DWUser.com. 4 | * Dual-licensed under the GPL and MIT licenses. 5 | * All individual scripts remain property of their copyrighters. 6 | * Date: 10-Sep-2013 7 | * Version: 1.0.1 8 | */ 9 | if (!window['jQuery']) alert('The jQuery library must be included before the smoothscroll.js file. The plugin will not work propery.'); 10 | 11 | /** 12 | * jQuery.ScrollTo - Easy element scrolling using jQuery. 13 | * Copyright (c) 2007-2013 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com 14 | * Dual licensed under MIT and GPL. 15 | * @author Ariel Flesler 16 | * @version 1.4.3.1 17 | */ 18 | ;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); 19 | 20 | /** 21 | * jQuery.LocalScroll 22 | * Copyright (c) 2007-2010 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com 23 | * Dual licensed under MIT and GPL. 24 | * Date: 05/31/2010 25 | * @author Ariel Flesler 26 | * @version 1.2.8b 27 | **/ 28 | ;(function(b){function g(a,e,d){var h=e.hash.slice(1),f=document.getElementById(h)||document.getElementsByName(h)[0];if(f){a&&a.preventDefault();var c=b(d.target);if(!(d.lock&&c.is(":animated")||d.onBefore&&!1===d.onBefore(a,f,c))){d.stop&&c._scrollable().stop(!0);if(d.hash){var a=f.id==h?"id":"name",g=b(" ").attr(a,h).css({position:"absolute",top:b(window).scrollTop(),left:b(window).scrollLeft()});f[a]="";b("body").prepend(g);location=e.hash;g.remove();f[a]=h}c.scrollTo(f,d).trigger("notify.serialScroll", 29 | [f])}}}var i=location.href.replace(/#.*/,""),c=b.localScroll=function(a){b("body").localScroll(a)};c.defaults={duration:1E3,axis:"y",event:"click",stop:!0,target:window,reset:!0};c.hash=function(a){if(location.hash){a=b.extend({},c.defaults,a);a.hash=!1;if(a.reset){var e=a.duration;delete a.duration;b(a.target).scrollTo(0,a);a.duration=e}g(0,location,a)}};b.fn.localScroll=function(a){function e(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,"")==i&&(!a.filter||b(this).is(a.filter))} 30 | a=b.extend({},c.defaults,a);return a.lazy?this.bind(a.event,function(d){var c=b([d.target,d.target.parentNode]).filter(e)[0];c&&g(d,c,a)}):this.find("a,area").filter(e).bind(a.event,function(b){g(b,this,a)}).end().end()}})(jQuery); 31 | 32 | // Initialize all .smoothScroll links 33 | jQuery(function($){ $.localScroll({filter:'.smoothScroll'}); }); 34 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/RegisterForm.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 51 | 52 | 101 | -------------------------------------------------------------------------------- /config/database.php: -------------------------------------------------------------------------------- 1 | env('DB_CONNECTION', 'mysql'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Database Connections 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here are each of the database connections setup for your application. 24 | | Of course, examples of configuring each database platform that is 25 | | supported by Laravel is shown below to make development simple. 26 | | 27 | | 28 | | All database work in Laravel is done through the PHP PDO facilities 29 | | so make sure you have the driver for your particular database of 30 | | choice installed on your machine before you begin development. 31 | | 32 | */ 33 | 34 | 'connections' => [ 35 | 36 | 'sqlite' => [ 37 | 'driver' => 'sqlite', 38 | 'database' => env('DB_DATABASE', database_path('database.sqlite')), 39 | 'prefix' => '', 40 | ], 41 | 42 | 'sqlite_testing' => [ 43 | 'driver' => 'sqlite', 44 | 'database' => env('DB_DATABASE_TESTING', database_path('testing.database.sqlite')), 45 | 'prefix' => '', 46 | ], 47 | 48 | 'mysql' => [ 49 | 'driver' => 'mysql', 50 | 'host' => env('DB_HOST', '127.0.0.1'), 51 | 'port' => env('DB_PORT', '3306'), 52 | 'database' => env('DB_DATABASE', 'forge'), 53 | 'username' => env('DB_USERNAME', 'forge'), 54 | 'password' => env('DB_PASSWORD', ''), 55 | 'unix_socket' => env('DB_SOCKET', ''), 56 | 'charset' => 'utf8mb4', 57 | 'collation' => 'utf8mb4_unicode_ci', 58 | 'prefix' => '', 59 | 'strict' => true, 60 | 'engine' => null, 61 | ], 62 | 63 | 'pgsql' => [ 64 | 'driver' => 'pgsql', 65 | 'host' => env('DB_HOST', '127.0.0.1'), 66 | 'port' => env('DB_PORT', '5432'), 67 | 'database' => env('DB_DATABASE', 'forge'), 68 | 'username' => env('DB_USERNAME', 'forge'), 69 | 'password' => env('DB_PASSWORD', ''), 70 | 'charset' => 'utf8', 71 | 'prefix' => '', 72 | 'schema' => 'public', 73 | 'sslmode' => 'prefer', 74 | ], 75 | 76 | 'sqlsrv' => [ 77 | 'driver' => 'sqlsrv', 78 | 'host' => env('DB_HOST', 'localhost'), 79 | 'port' => env('DB_PORT', '1433'), 80 | 'database' => env('DB_DATABASE', 'forge'), 81 | 'username' => env('DB_USERNAME', 'forge'), 82 | 'password' => env('DB_PASSWORD', ''), 83 | 'charset' => 'utf8', 84 | 'prefix' => '', 85 | ], 86 | 87 | ], 88 | 89 | /* 90 | |-------------------------------------------------------------------------- 91 | | Migration Repository Table 92 | |-------------------------------------------------------------------------- 93 | | 94 | | This table keeps track of all the migrations that have already run for 95 | | your application. Using this information, we can determine which of 96 | | the migrations on disk haven't actually been run in the database. 97 | | 98 | */ 99 | 100 | 'migrations' => 'migrations', 101 | 102 | /* 103 | |-------------------------------------------------------------------------- 104 | | Redis Databases 105 | |-------------------------------------------------------------------------- 106 | | 107 | | Redis is an open source, fast, and advanced key-value store that also 108 | | provides a richer set of commands than a typical key-value systems 109 | | such as APC or Memcached. Laravel makes it easy to dig right in. 110 | | 111 | */ 112 | 113 | 'redis' => [ 114 | 115 | 'client' => 'predis', 116 | 117 | 'default' => [ 118 | 'host' => env('REDIS_HOST', '127.0.0.1'), 119 | 'password' => env('REDIS_PASSWORD', null), 120 | 'port' => env('REDIS_PORT', 6379), 121 | 'database' => 0, 122 | ], 123 | 124 | ], 125 | 126 | ]; 127 | -------------------------------------------------------------------------------- /OLD-README.md: -------------------------------------------------------------------------------- 1 | #AdminLTE template Laravel package 2 | A Laravel package that switch default Laravel scaffolding/boilerplate to AdminLTE template 3 | 4 | [![Total Downloads](https://poser.pugx.org/acacha/admin-lte-template-laravel/downloads.png)](https://packagist.org/packages/acacha/admin-lte-template-laravel) 5 | [![Latest Stable Version](https://poser.pugx.org/acacha/admin-lte-template-laravel/v/stable.png)](https://packagist.org/packages/acacha/admin-lte-template-laravel) 6 | 7 | #Requirements 8 | 9 | * [Composer](https://getcomposer.org/) 10 | * [Laravel](http://laravel.com/) 11 | * [AdminLTE](https://github.com/almasaeed2010/AdminLTE). You can see and AdminLTE theme preview at: http://almsaeedstudio.com/preview/ 12 | 13 | ## Laravel 5.1 notes 14 | 15 | By default this version of Laravel does not include default auth routes. See: 16 | 17 | http://laravel.com/docs/5.1/authentication 18 | 19 | You will have to add this lines at your routes.php file: 20 | 21 |
 22 | // Authentication routes...
 23 | Route::get('auth/login', 'Auth\AuthController@getLogin');
 24 | Route::post('auth/login', 'Auth\AuthController@postLogin');
 25 | Route::get('auth/logout', 'Auth\AuthController@getLogout');
 26 | 
 27 | // Registration routes...
 28 | Route::get('auth/register', 'Auth\AuthController@getRegister');
 29 | Route::post('auth/register', 'Auth\AuthController@postRegister');
 30 | 
 31 | // Password reset link request routes...
 32 | Route::get('password/email', 'Auth\PasswordController@getEmail');
 33 | Route::post('password/email', 'Auth\PasswordController@postEmail');
 34 | 
 35 | // Password reset routes...
 36 | Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
 37 | Route::post('password/reset', 'Auth\PasswordController@postReset');
 38 | 
 39 | 
40 | 41 | or: 42 | 43 |
 44 | Route::controllers([
 45 | 	'auth' => 'Auth\AuthController',
 46 | 	'password' => 'Auth\PasswordController',
 47 | ]);
 48 | 
49 | 50 | and route to /home 51 | 52 |
 53 | Route::get('/home', ['middleware' => 'auth', function () {
 54 |     return view('home');
 55 | }]);
 56 | 
57 | 58 | 59 | 60 | Also be aware of using new style (endig with ::class) when adding AdminLTETemplateServiceProvider to **config/app.php** file: 61 | 62 |
 
 63 |  // AdminLTE template provider
 64 |  'Acacha\AdminLTETemplateLaravel\app\Providers\AdminLTETemplateServiceProvider',
 65 | 
66 | 67 | ##Installation 68 | 69 | First install Laravel (http://laravel.com/docs/5.0/installation) and then Create a new Laravel project: 70 | 71 |
 72 |  $ laravel new laravel-with-admin-lte
 73 |  $ cd laravel-with-admin-lte
 74 | 
75 | 76 | Add admint-lte Laravel package with: 77 | 78 |
 79 |  $ composer require "acacha/admin-lte-template-laravel:0.*"
 80 | 
81 | 82 | Register ServiceProvider editing **config/app.php** file and adding to providers array: 83 | 84 |
 
 85 |  // AdminLTE template provider
 86 |  'Acacha\AdminLTETemplateLaravel\app\Providers\AdminLTETemplateServiceProvider',
 87 | 
88 | 89 | or in Laravel 5.1: 90 | 91 |
 
 92 | // AdminLTE template provider         
 93 | Acacha\AdminLTETemplateLaravel\app\Providers\AdminLTETemplateServiceProvider::class,
 94 | 
95 | 96 | Publish files with: 97 | 98 |
 99 |  $ php artisan vendor:publish --force --provider="Acacha\AdminLTETemplateLaravel\app\Providers\AdminLTETemplateServiceProvider"
100 | 
101 | 102 | Use force to overwrite Laravel Scaffolding packages. That's all! Open the Laravel project in your browser or homestead machine and enjoy! 103 | 104 | ##First steps, database creation, migrations and login 105 | 106 | Once package installed you have to follow the usual steps of any laravel project to Login to the admin interface: 107 | 108 | - Create a database. I recommend the use of laravel Homestead () 109 | - Create .env file and configure database acces (database name, password, etc) 110 | - Run migrations with command $ php artisan migrate 111 | - Registera a first user and Login with it 112 | 113 | ##AdminLTE 114 | 115 | AdminLTE is a Free Premium Admin control Panel Theme That Is Based On Bootstrap 3.x created by Abdullah Almsaeed. See: 116 | 117 | https://github.com/almasaeed2010/AdminLTE 118 | 119 | # Roadmap 120 | 121 | - Implement Facebook, Google and maybe twitter and github Login with Socialite 122 | - Add email html templates 123 | 124 | ## Documentation TODO 125 | 126 | - Gulp file provided to compile Boostrap and AdminLTE less files 127 | - Partial views (html header, content header, footer, etc.) to easily reuse code 128 | - Add breadcrumps with: https://github.com/davejamesmiller/laravel-breadcrumbs 129 | 130 | ## Packagist 131 | 132 | https://packagist.org/packages/acacha/admin-lte-template-laravel 133 | 134 | ## More info 135 | 136 | http://acacha.org/mediawiki/AdminLTE#adminlte-laravel 137 | -------------------------------------------------------------------------------- /resources/views/auth/register.withoutvue.blade.php: -------------------------------------------------------------------------------- 1 | @extends('adminlte::layouts.auth') 2 | 3 | @section('htmlheader_title') 4 | Register 5 | @endsection 6 | 7 | @section('content') 8 | 9 | 10 |
11 |
12 | 15 | 16 | @if (count($errors) > 0) 17 |
18 | Whoops! {{ trans('adminlte_lang::message.someproblems') }}

19 |
    20 | @foreach ($errors->all() as $error) 21 |
  • {{ $error }}
  • 22 | @endforeach 23 |
24 |
25 | @endif 26 | 27 |
28 | 29 |
30 | 31 |
32 | 33 | 34 |
35 | @if (config('auth.providers.users.field','email') === 'username') 36 |
37 | 38 | 39 |
40 | @endif 41 | 42 |
43 | 44 | 45 |
46 |
47 | 48 | 49 |
50 |
51 | 52 | 53 |
54 |
55 |
56 | 63 |
64 |
65 |
66 | 67 |
68 |
69 |
70 | 71 |
72 |
73 |
74 | 75 | @include('adminlte::auth.partials.social_login') 76 | 77 | {{ trans('adminlte_lang::message.membership') }} 78 |
79 |
80 |
81 | 82 | @include('adminlte::layouts.partials.scripts_auth') 83 | 84 | @include('adminlte::auth.terms') 85 | 86 | 95 | 96 | 97 | 98 | @endsection -------------------------------------------------------------------------------- /src/Console/MakeMenu.php: -------------------------------------------------------------------------------- 1 | RegularMenu::class, 43 | // 'another' => AnotherMenu::class, 44 | ]; 45 | 46 | /** 47 | * The name and signature of the console command. 48 | */ 49 | protected $signature = 'make:menu {link : The menu link} {name? : The menu name} 50 | {--t|type=regular : Type of menu to create (regular,todo)}'; 51 | 52 | /** 53 | * The console command description. 54 | * 55 | * @var string 56 | */ 57 | protected $description = 'Insert a menu to config/menu file'; 58 | 59 | /** 60 | * AdminLTERoute constructor. 61 | * 62 | * @param StubFileCompiler $compiler 63 | * @param Filesystem $filesystem 64 | */ 65 | public function __construct(StubFileCompiler $compiler, Filesystem $filesystem) 66 | { 67 | parent::__construct(); 68 | $this->compiler = $compiler; 69 | $this->filesystem = $filesystem; 70 | } 71 | 72 | /** 73 | * Execute the console command. 74 | */ 75 | public function handle() 76 | { 77 | $this->processInput(); 78 | $tmpfile = $this->createTmpFileWithMenu(); 79 | $path = $this->getPath($tmpfile); 80 | add_file_into_file($this->mountpoint(), $path, $dstFile = $this->destinationFile()); 81 | $this->info('Menu ' . $this->name() . ' added to ' . $dstFile . '.'); 82 | $this->postActions(); 83 | } 84 | 85 | /** 86 | * Get mountpoint. 87 | * 88 | * @return string 89 | */ 90 | protected function mountpoint() 91 | { 92 | return '#adminlte_menu'; 93 | } 94 | 95 | /** 96 | * Destination route file. 97 | * 98 | * @return string 99 | */ 100 | protected function destinationFile() 101 | { 102 | return base_path($this->menu_path); 103 | } 104 | 105 | /** 106 | * Crete tmp file with route to add. 107 | * 108 | * @return mixed 109 | */ 110 | protected function createTmpFileWithMenu() 111 | { 112 | $temp = tmpfile(); 113 | fwrite($temp, $this->getMenuCode()); 114 | return $temp; 115 | } 116 | 117 | /** 118 | * Get route code to insert depending on type. 119 | * 120 | * @return mixed 121 | */ 122 | protected function getMenuCode() 123 | { 124 | $type = $this->option('type'); 125 | $class = isset(static::$lookup[$type]) 126 | ? static::$lookup[$type] 127 | : RegularMenu::class; 128 | /** @var GeneratesCode $route */ 129 | $route = new $class($this->compiler, $this->filesystem); 130 | $route->setReplacements([ 131 | $this->argument('link'), 132 | $this->name() 133 | ]); 134 | return $route->code(); 135 | } 136 | 137 | /** 138 | * Get path from file resource. 139 | * 140 | * @param $tmpfile 141 | * @return mixed 142 | */ 143 | protected function getPath($tmpfile) 144 | { 145 | return stream_get_meta_data($tmpfile)['uri']; 146 | } 147 | 148 | /** 149 | * Get method. 150 | * 151 | * @return string 152 | */ 153 | protected function method() 154 | { 155 | if (strtolower($this->option('method')) == 'head') { 156 | return 'get'; 157 | } 158 | return strtolower($this->option('method')); 159 | } 160 | 161 | /** 162 | * Get the link name. 163 | * 164 | * @return array|string 165 | */ 166 | protected function name() 167 | { 168 | if ($this->argument('name') != null) { 169 | return $this->argument('name'); 170 | } 171 | return ucfirst($this->argument('link')); 172 | } 173 | 174 | /** 175 | * Process input. 176 | */ 177 | protected function processInput() 178 | { 179 | // $this->validateMethod(); 180 | } 181 | 182 | /** 183 | * Execute post actions (if exists) 184 | */ 185 | protected function postActions() 186 | { 187 | // 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /resources/assets/js/components/auth/LoginForm.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 44 | 45 | 129 | -------------------------------------------------------------------------------- /src/Console/PublishAdminLTE.php: -------------------------------------------------------------------------------- 1 | files = $files; 50 | } 51 | 52 | /** 53 | * Execute the console command. 54 | */ 55 | public function handle() 56 | { 57 | $this->processOptions(); 58 | 59 | //Publish 60 | $this->publishHomeController(); 61 | $this->changeRegisterController(); 62 | $this->changeLoginController(); 63 | $this->changeForgotPasswordController(); 64 | $this->publishNoGuestForgotPasswordController(); 65 | $this->changeResetPasswordController(); 66 | $this->publishPublicAssets(); 67 | $this->publishViews(); 68 | $this->publishResourceAssets(); 69 | $this->publishTests(); 70 | $this->publishLanguages(); 71 | $this->publishGravatar(); 72 | $this->publishConfig(); 73 | $this->publishWebRoutes(); 74 | $this->publishApiRoutes(); 75 | $this->publishDusk(); 76 | $this->publishDatabaseConfig(); 77 | } 78 | 79 | /** 80 | * Install Home Controller. 81 | */ 82 | private function publishHomeController() 83 | { 84 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::homeController()); 85 | } 86 | 87 | /** 88 | * Change Auth Register controller. 89 | */ 90 | private function changeRegisterController() 91 | { 92 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::registerController()); 93 | } 94 | 95 | /** 96 | * Change Auth Login controller. 97 | */ 98 | private function changeLoginController() 99 | { 100 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::loginController()); 101 | } 102 | 103 | /** 104 | * Change Auth Forgot Password controller. 105 | */ 106 | private function changeForgotPasswordController() 107 | { 108 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::forgotPasswordController()); 109 | } 110 | 111 | /** 112 | * Publish no guest forgot password Controller. 113 | */ 114 | private function publishNoGuestForgotPasswordController() 115 | { 116 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::noGuestForgotPasswordController()); 117 | } 118 | 119 | /** 120 | * Change Auth Reset Password controller. 121 | */ 122 | private function changeResetPasswordController() 123 | { 124 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::resetPasswordController()); 125 | } 126 | 127 | /** 128 | * Install public assets. 129 | */ 130 | private function publishPublicAssets() 131 | { 132 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::publicAssets()); 133 | } 134 | 135 | /** 136 | * Install views. 137 | */ 138 | private function publishViews() 139 | { 140 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::viewsToOverwrite()); 141 | } 142 | 143 | /** 144 | * Install resource assets. 145 | */ 146 | private function publishResourceAssets() 147 | { 148 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::resourceAssets()); 149 | } 150 | 151 | /** 152 | * Install resource assets. 153 | */ 154 | private function publishTests() 155 | { 156 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::tests()); 157 | } 158 | 159 | /** 160 | * Install language assets. 161 | */ 162 | private function publishLanguages() 163 | { 164 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::languages()); 165 | } 166 | 167 | /** 168 | * Install gravatar config file. 169 | */ 170 | private function publishGravatar() 171 | { 172 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::gravatar()); 173 | } 174 | 175 | /** 176 | * Publish adminlte package config. 177 | */ 178 | private function publishConfig() 179 | { 180 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::config()); 181 | } 182 | 183 | /** 184 | * Publish routes/web.php file. 185 | */ 186 | private function publishWebRoutes() 187 | { 188 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::webroutes()); 189 | } 190 | 191 | /** 192 | * Publish routes/api.php file. 193 | */ 194 | private function publishApiRoutes() 195 | { 196 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::apiroutes()); 197 | } 198 | 199 | /** 200 | * Publish dusk tests files. 201 | */ 202 | private function publishDusk() 203 | { 204 | $this->publishDuskEnvironment(); 205 | $this->publishAppServiceProvider(); 206 | } 207 | 208 | /** 209 | * Publish dusk environment files. 210 | */ 211 | private function publishDuskEnvironment() 212 | { 213 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::duskEnvironment()); 214 | } 215 | 216 | /** 217 | * Publish app/Providers/AppServiceProvider.php file. 218 | */ 219 | private function publishAppServiceProvider() 220 | { 221 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::appServiceProviderClass()); 222 | } 223 | 224 | /** 225 | * Publish config/database.php file. 226 | */ 227 | private function publishDatabaseConfig() 228 | { 229 | $this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::databaseConfig()); 230 | } 231 | 232 | /** 233 | * Process options before running command. 234 | */ 235 | private function processOptions() 236 | { 237 | $this->force = $this->option('force'); 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /resources/lang/en/message.php: -------------------------------------------------------------------------------- 1 | 'You are logged in!', 17 | 'someproblems' => 'There were some problems with your input.', 18 | 'siginsession' => 'Sign in to start your session', 19 | 'remember' => 'Remember Me', 20 | 'buttonsign' => 'Sign In', 21 | 'forgotpassword' => 'I forgot my password', 22 | 'registermember' => 'Register a new membership', 23 | 'terms' => 'I agree to the terms', 24 | 'conditions' => 'Terms and conditions', 25 | 'register' => 'Register', 26 | 'login' => 'Login', 27 | 'membership' => 'I already have a membership', 28 | 'passwordclickreset' => 'Click here to reset your password:', 29 | 'signGithub' => 'Sign in using Github', 30 | 'signFacebook' => 'Sign in using Facebook', 31 | 'signTwitter' => 'Sign in using Twitter', 32 | 'signGoogle+' => 'Sign in using Google+', 33 | 'signLinkedin' => 'Sign in using Linkedin', 34 | 'sendpassword' => 'Send Password Reset Link', 35 | 'passwordreset' => 'Reset password', 36 | 'pagenotfound' => 'Page not found', 37 | '404error' => '404 Error Page', 38 | 'notfindpage' => 'We could not find the page you were looking for.', 39 | 'mainwhile' => 'Meanwhile, you may', 40 | 'returndashboard' => 'return to dashboard', 41 | 'usingsearch' => 'or try using the search form.', 42 | 'search' => 'Search', 43 | 'servererror' => 'Server Error', 44 | '500error' => '500 Error Page', 45 | 'somethingwrong' => 'Something went wrong.', 46 | 'wewillwork' => 'We will work on fixing that right away.', 47 | 'serviceunavailable' => 'Service unavailable', 48 | '503error' => '503 Error Page', 49 | 'level' => 'Level', 50 | 'here' => 'Here', 51 | 'recentactivity' => 'Recent Activity', 52 | 'descriptionpackage' => 'A Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template', 53 | 'createdby' => 'Created by', 54 | 'seecode' => 'See code at', 55 | 'online' => 'Online', 56 | 'home' => 'Home', 57 | 'header' => 'HEADER', 58 | 'anotherlink' => 'Another Link', 59 | 'multilevel' => 'Multilevel', 60 | 'linklevel2' => 'Link in level2', 61 | 'birthday' => 'Langdon\'s Birthday', 62 | 'birthdaydate' => 'Will be 23 on April 24th', 63 | 'progress' => 'Tasks Progress', 64 | 'customtemplate' => 'Custom Template Design', 65 | 'statstab' => 'Stats Tab Content', 66 | 'generalset' => 'General Settings', 67 | 'reportpanel' => 'Report panel usage', 68 | 'checked' => 'checked', 69 | 'informationsettings' => 'Some information about this general settings option', 70 | 'togglenav' => 'Toggle navigation', 71 | 'tabmessages' => 'You have 4 messages', 72 | 'supteam' => 'Support Team', 73 | 'awesometheme' => 'Why not buy a new awesome theme?', 74 | 'allmessages' => 'See All Messages', 75 | 'notifications' => 'You have 10 notifications', 76 | 'newmembers' => '5 new members joined today', 77 | 'viewall' => 'View all', 78 | 'tasks' => 'You have 9 tasks', 79 | 'alltasks' => 'View all tasks', 80 | 'desbuttons' => 'Design some buttons', 81 | 'complete' => 'Complete', 82 | 'membersince' => 'Member since', 83 | 'followers' => 'Followers', 84 | 'sales' => 'Sales', 85 | 'friends' => 'Friends', 86 | 'profile' => 'Profile', 87 | 'signout' => 'Sign out', 88 | 'landingdescription' => 'Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template with Bootstrap 3.0 and Pratt Landing page', 89 | 'landingdescriptionpratt' => 'Acacha AdminLTE Laravel package template Landing page - Using Pratt', 90 | 'description' => 'Description', 91 | 'showcase' => 'Showcase', 92 | 'contact' => 'Contact', 93 | 'laravelpackage' => '5 package that switchs default Laravel', 94 | 'to' => 'to', 95 | 'templatewith' => 'template with', 96 | 'and' => 'and', 97 | 'gedstarted' => 'Get Started!', 98 | 'amazing' => 'Amazing admin template', 99 | 'basedadminlte' => 'Based on adminlte bootstrap theme', 100 | 'awesomepackaged' => 'Awesome packaged...', 101 | 'by' => 'by', 102 | 'at' => 'at', 103 | 'readytouse' => 'ready to use with Laravel!', 104 | 'designed' => 'Designed To Excel', 105 | 'community' => 'Community', 106 | 'see' => 'See', 107 | 'githubproject' => 'Github project', 108 | 'post' => 'post', 109 | 'issues' => 'issues', 110 | 'pullrequests' => 'Pull requests', 111 | 'schedule' => 'Schedule', 112 | 'monitoring' => 'Monitoring', 113 | 'whatnew' => 'What\'s New?', 114 | 'features' => 'Some Features', 115 | 'design' => 'First Class Design', 116 | 'retina' => 'Retina Ready Theme', 117 | 'support' => 'Awesome Support', 118 | 'responsive' => 'Responsive Design', 119 | 'screenshots' => 'Some Screenshots', 120 | 'address' => 'Address', 121 | 'dropus' => 'Drop Us A Line', 122 | 'yourname' => 'Your Name', 123 | 'emailaddress' => 'Email Address', 124 | 'enteremail' => 'Enter Email', 125 | 'yourtext' => 'Your Text', 126 | 'submit' => 'SUBMIT', 127 | 'email' => 'Email', 128 | 'username' => 'Username', 129 | 'password' => 'Password', 130 | 'retypepassword' => 'Retype password', 131 | 'fullname' => 'Full Name', 132 | 'registererror' => 'Error registering!', 133 | 'loginerror' => 'Error loging!', 134 | 'loggedin' => 'Logged in!', 135 | 'entering' => 'Entering...', 136 | 'registered' => 'User Registered!', 137 | ]; 138 | --------------------------------------------------------------------------------