diff --git a/.env.travis b/.env.travis new file mode 100644 index 0000000..4eaba6a --- /dev/null +++ b/.env.travis @@ -0,0 +1,35 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravelUsers +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=array +SESSION_DRIVER=file +SESSION_LIFETIME=120 +QUEUE_DRIVER=sync + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..a83887f --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +github: [jeremykenedy] +patreon: jeremykenedy diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5990d9c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.gitignore b/.gitignore index 5bd44c3..bd8d2be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -### OSX BOOGERS ### +### OSX Vendor Configs ### .DS_Store *._DS_Store ._.DS_Store @@ -6,23 +6,48 @@ ._* ._.* -### WINDOWS BOOGERS ### +### Windows Vendor Configs ### Thumbs.db ### Sass ### +#bower_components/* /.sass-cache/* .sass-cache -### SUBLIMETEXT BOOGERS ### +### Sublimt Text Vendor Configs ### *.sublime-workspace -### PHPSTORM BOOGERS ### +### PHP Storm Vendor Configs ### .idea/* /.idea/* +.phpintel/* +/.phpintel/* -### DIFFERENT TYPE OF MASTER CONFIGS ### -composer.lock +### VS Code Vendor Configs ### +/.vscode + +### Vagrant/Homestead Vendor Configs ### +/.vagrant +Homestead.yaml +Homestead.json + +### Master Configs ### .env +composer.lock + +### Assets ### +/node_modules +/public/hot +/public/storage +/storage/*.key +/vendor +/storage/debugbar +/storage/framework +/storage/logs +/storage/users +packages/ + +# Debug Files +npm-debug.log +yarn-error.log -### ASSET EXCLUSIONS ### -vendor/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e378666 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,32 @@ +language: php +sudo: required +dist: trusty +group: edge + +php: + - 7.3 + - 7.4 + +sudo: false + +services: + - mysql + +before_script: + - mysql -u root -e 'create database laravelUsers;' + - curl -s http://getcomposer.org/installer | php + - php composer.phar install + - composer create-project --prefer-dist laravel/laravel laravelusers + - cp .env.travis laravelusers/.env + - cd laravelusers + - composer self-update + - composer install --prefer-source --no-interaction + - composer require laravel/ui + - composer require jeremykenedy/laravel-users + - php artisan key:generate + - php artisan vendor:publish --tag=laravelusers + - php artisan ui vue --auth + - composer dump-autoload + - php artisan clear-compiled + +script: vendor/bin/phpunit diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 index 9e39446..a97280d --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2017 +Copyright (c) 2017-2020 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index 27fbe62..8e2cdd4 --- a/composer.json +++ b/composer.json @@ -1,7 +1,12 @@ { "name": "jeremykenedy/laravel-users", - "description": "Laravel Users Management Package", - "keywords": ["laravel", "users", "management"], + "description": "Laravel Users Management CRUD Package", + "keywords": [ + "laravel", + "users", + "management", + "CRUD" + ], "license": "MIT", "type": "package", "authors": [ @@ -11,14 +16,19 @@ } ], "require": { - "php": ">=5.6.4", - "laravelcollective/html": "^5.4.0|^5.5.0" + "php": "^7.2|^8.0|^8.1|^8.2|^8.3", + "laravellux/html": "^7.1" }, "autoload": { "psr-4": { "jeremykenedy\\laravelusers\\": "src/" } }, + "autoload-dev": { + "psr-4": { + "jeremykenedy\\laravelusers\\Test\\": "tests/" + } + }, "extra": { "laravel": { "providers": [ @@ -28,5 +38,6 @@ }, "config": { "sort-packages": true - } -} \ No newline at end of file + }, + "minimum-stability": "stable" +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..4ebe5a8 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,30 @@ + + + + + ./tests/Feature + + + + + src/ + + + + + + + + + + + diff --git a/readme.md b/readme.md index 918a47a..0d3af5b 100755 --- a/readme.md +++ b/readme.md @@ -1,42 +1,68 @@ -# Laravel-Users | A Laravel Users Management [Package](https://packagist.org/packages/jeremykenedy/laravel-users) +![Laravel Users](https://github-project-images.s3-us-west-2.amazonaws.com/laravel-blocker/laravel-users-logo.png) -[![Total Downloads](https://poser.pugx.org/jeremykenedy/laravel-users/d/total.svg)](https://packagist.org/packages/jeremykenedy/laravel-users) -[![Latest Stable Version](https://poser.pugx.org/jeremykenedy/laravel-users/v/stable.svg)](https://packagist.org/packages/jeremykenedy/laravel-users) -[![License](https://poser.pugx.org/jeremykenedy/laravel-users/license.svg)](https://packagist.org/packages/jeremykenedy/laravel-users) - -## Introduction - -A Users Management [Package](https://packagist.org/packages/jeremykenedy/laravel-users) that includes all necessary routes, views, models, and controllers for a user management dashboard and associated pages for managing Laravels built in user scaffolding. -Built for Laravel 5.2, 5.3, 5.4, and 5.5+. - -## Requirements - -* [Laravel 5.2, 5.3, 5.4, and 5.5+](https://laravel.com/docs/installation) - - Example new project creation command: - - ```laravel new laravel-users-example``` - -* [Laravel Authentication Scaffolding](https://laravel.com/docs/authentication) - - Authentication installation commands: - - ```php artisan make:auth``` - ```php artisan migrate``` - -## Installation +# Laravel Users | A Laravel Users CRUD Management [Package](https://packagist.org/packages/jeremykenedy/laravel-users) +A Users Management CRUD [Package](https://packagist.org/packages/jeremykenedy/laravel-users) that includes all necessary routes, views, models, and controllers for a user management dashboard and associated pages for managing Laravels built in user scaffolding. +Easily start creating, updating, editing, and deleting users in minutes with minimal setup required; Easily search all users, helpful for large user bases. +[![Latest Stable Version](https://poser.pugx.org/jeremykenedy/laravel-users/v/stable.svg)](https://packagist.org/packages/jeremykenedy/laravel-users) +[![Total Downloads](https://poser.pugx.org/jeremykenedy/laravel-users/d/total.svg)](https://packagist.org/packages/jeremykenedy/laravel-users) +[![Travis-CI Build](https://travis-ci.org/jeremykenedy/laravel-users.svg?branch=master)](https://travis-ci.org/jeremykenedy/laravel-users) +[![StyleCI](https://styleci.io/repos/83162309/shield?branch=master)](https://styleci.io/repos/83162309) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/jeremykenedy/laravel-users/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/jeremykenedy/laravel-users/?branch=master) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + + Become a Patreon + + +#### Table of contents +- [About](#about) +- [Features](#features) +- [Requirements](#requirements) +- [Integrations](#integrations) +- [Installation Instructions](#installation-instructions) +- [Configuration](#configuration) +- [Routes](#routes) +- [Screenshots](#screenshots) +- [File Tree](#file-tree) +- [Opening an Issue](#opening-an-issue) +- [License](#license) + +### Features +| Laravel Users Features | +| :------------ | +|Full CRUD of Laravel Users| +|Works with built in [auth scaffolding](https://laravel.com/docs/5.7/authentication)| +|Works with various [Roles/ACL Packages](https://github.com/jeremykenedy/laravel-roles)| +|Uses [Language localization](https://laravel.com/docs/5.7/localization) File System| +|Uses [font awesome](https://fontawesome.com/icons), cdn can be optionally called in config| +|Can use built in [pagination](https://laravel.com/docs/5.7/pagination) and/or [datatables.js](https://datatables.net/)| +|Can search all users by name, id, or email| +|Lots of [configuration](#configuration) options| + + +### Requirements +* [Laravel 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, 7, or 8+](https://laravel.com/docs/installation) + +### Integrations +Laravel users can work out the box with or without the following roles packages: +* [jeremykenedy/laravel-roles](https://github.com/jeremykenedy/laravel-roles) +* [Zizaco/entrust](https://github.com/Zizaco/entrust) +* [romanbican/roles](https://github.com/romanbican/roles) +* [ultraware/roles](https://github.com/ultraware/roles) + +### Installation Instructions 1. From your projects root folder in terminal run: - Laravel 5.2 use: + Laravel 5.6, 5.7, 5.8, 6, 7, and 8+ use: + ``` - composer require jeremykenedy/laravel-users:1.2.0 + composer require jeremykenedy/laravel-users ``` - Laravel 5.3 use: + Laravel 5.5 use: ``` - composer require jeremykenedy/laravel-users:1.3.0 + composer require jeremykenedy/laravel-users:2.0.2 ``` Laravel 5.4 use: @@ -45,14 +71,19 @@ Built for Laravel 5.2, 5.3, 5.4, and 5.5+. composer require jeremykenedy/laravel-users:1.4.0 ``` - Laravel 5.5+ use: + Laravel 5.3 use: ``` - composer require jeremykenedy/laravel-users + composer require jeremykenedy/laravel-users:1.3.0 + ``` + + Laravel 5.2 use: + ``` + composer require jeremykenedy/laravel-users:1.2.0 ``` 2. Register Package -* Laravel 5.5 and up +* Laravel 5.5, 5.6, 5.7, 5.8, 6, 7, 8+ Uses package auto discovery feature, no need to edit the `config/app.php` file. * Laravel 5.4 and below @@ -75,25 +106,124 @@ In `config/app.php` section under `aliases` with the following: 'Html' => Collective\Html\HtmlFacade::class, ``` -4. Publish the packages language files by running the following from your projects root folder: +4. Publish the package config and language files by running the following from your projects root folder: ``` php artisan vendor:publish --tag=laravelusers ``` -## Routes +### Configuration +Laravel Users can be configured directly in [`/config/laravelusers.php`](https://github.com/jeremykenedy/laravel-users/blob/master/src/config/laravelusers.php) once you publish the assets. + +```php + /* + |-------------------------------------------------------------------------- + | Laravel-users setting + |-------------------------------------------------------------------------- + */ + + // The parent blade file + 'laravelUsersBladeExtended' => 'laravelusers::layouts.app', // 'layouts.app' + + // Enable `auth` middleware + 'authEnabled' => true, + + // Enable Optional Roles Middleware on the users assignments + 'rolesEnabled' => false, + + /* + | Enable Roles Middlware on the usability of this package. + | This requires the middleware from the roles package to be registered in `App\Http\Kernel.php` + | An Example: of roles middleware entry in protected `$routeMiddleware` array would be: + | 'role' => \jeremykenedy\LaravelRoles\Middleware\VerifyRole::class, + */ + + 'rolesMiddlwareEnabled' => true, + + // Optional Roles Middleware + 'rolesMiddlware' => 'role:admin', + + // Optional Role Model + 'roleModel' => 'jeremykenedy\LaravelRoles\Models\Role', + + // Enable Soft Deletes - Not yet setup - on the roadmap. + 'softDeletedEnabled' => false, + + // Laravel Default User Model + 'defaultUserModel' => 'App\User', + // Use the provided blade templates or extend to your own templates. + 'showUsersBlade' => 'laravelusers::usersmanagement.show-users', + 'createUserBlade' => 'laravelusers::usersmanagement.create-user', + 'showIndividualUserBlade' => 'laravelusers::usersmanagement.show-user', + 'editIndividualUserBlade' => 'laravelusers::usersmanagement.edit-user', + + // Use Package Bootstrap Flash Alerts + 'enablePackageBootstapAlerts' => true, + + // Users List Pagination + 'enablePagination' => true, + 'paginateListSize' => 25, + + // Enable Search Users- Uses jQuery Ajax + 'enableSearchUsers' => true, + + // Users List JS DataTables - not recommended use with pagination + 'enabledDatatablesJs' => false, + 'datatablesJsStartCount' => 25, + 'datatablesCssCDN' => 'https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css', + 'datatablesJsCDN' => 'https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js', + 'datatablesJsPresetCDN' => 'https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js', + + // Bootstrap Tooltips + 'tooltipsEnabled' => true, + 'enableBootstrapPopperJsCdn' => true, + 'bootstrapPopperJsCdn' => 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js', + + // Icons + 'fontAwesomeEnabled' => true, + 'fontAwesomeCdn' => 'https://use.fontawesome.com/releases/v5.0.6/css/all.css', + + // Extended blade options for packages app.blade.php + 'enableBootstrapCssCdn' => true, + 'bootstrapCssCdn' => 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css', + + 'enableAppCss' => true, + 'appCssPublicFile' => 'css/app.css', + + 'enableBootstrapJsCdn' => true, + 'bootstrapJsCdn' => 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js', + + 'enableAppJs' => true, + 'appJsPublicFile' => 'js/app.js', + + 'enablejQueryCdn' => true, + 'jQueryCdn' => 'https://code.jquery.com/jquery-3.3.1.min.js', +``` + +### Routes * ```/users``` * ```/users/{id}``` * ```/users/create``` * ```/users/{id}/edit``` -## Required Packages +###### Routes In-depth +| Method | URI | Name | Action | Middleware | +| :-------- | :--------------------- | :--------------- | :-------------------------------------------------------------------------------- | :---------- | +| GET/HEAD | users | users | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@index | web,auth | +| POST | users | users.store | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@store | web,auth | +| GET/HEAD | users/create | users.create | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@create | web,auth | +| GET/HEAD | users/{user} | users.show | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@show | web,auth | +| DELETE | users/{user} | user.destroy | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@destroy | web,auth | +| PUT/PATCH | users/{user} | users.update | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@update | web,auth | +| GET/HEAD | users/{user}/edit | users.edit | jeremykenedy\laravelusers\app\Http\Controllers\UsersManagementController@edit | web,auth | + +### Required Packages (included in this package) * [laravelcollective/html](https://packagist.org/packages/laravelcollective/html) -## Screenshots +### Screenshots ![Show Users](https://s3-us-west-2.amazonaws.com/github-project-images/laravel-users/show-users.jpg) ![Show User](https://s3-us-west-2.amazonaws.com/github-project-images/laravel-users/show-user.jpg) @@ -106,6 +236,79 @@ In `config/app.php` section under `aliases` with the following: ![Error Update](https://s3-us-west-2.amazonaws.com/github-project-images/laravel-users/error-update.jpg) ![Error Delete](https://s3-us-west-2.amazonaws.com/github-project-images/laravel-users/error-delete.jpg) -## License - -Laravel-Users | A Laravel Users Management Package is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT) +### File Tree + +```bash +laravel-users/ +├── .env.travis +├── .gitignore +├── .travis.yml +├── LICENSE +├── composer.json +├── phpunit.xml +├── readme.md +└── src + ├── App + │   └── Http + │   └── Controllers + │   └── UsersManagementController.php + ├── LaravelUsersFacade.php + ├── LaravelUsersServiceProvider.php + ├── config + │   └── laravelusers.php + ├── resources + │   ├── lang + │   │   └── en + │   │   ├── app.php + │   │   ├── forms.php + │   │   ├── laravelusers.php + │   │   └── modals.php + │   └── views + │   ├── layouts + │   │   └── app.blade.php + │   ├── modals + │   │   ├── modal-delete.blade.php + │   │   └── modal-save.blade.php + │   ├── partials + │   │   ├── bs-visibility-css.blade.php + │   │   ├── form-status.blade.php + │   │   ├── search-users-form.blade.php + │   │   └── styles.blade.php + │   ├── scripts + │   │   ├── check-changed.blade.php + │   │   ├── datatables.blade.php + │   │   ├── delete-modal-script.blade.php + │   │   ├── save-modal-script.blade.php + │   │   ├── search-users.blade.php + │   │   ├── toggleText.blade.php + │   │   └── tooltips.blade.php + │   └── usersmanagement + │   ├── create-user.blade.php + │   ├── edit-user.blade.php + │   ├── show-user.blade.php + │   └── show-users.blade.php + └── routes + └── web.php + + +``` + +* Tree command can be installed using brew: `brew install tree` +* File tree generated using command `tree -a -I '.git|node_modules|vendor|storage|tests'` + +### Opening an Issue +Before opening an issue there are a couple of considerations: +* You are all awesome! +* **Read the instructions** and make sure all steps were *followed correctly*. +* **Check** that the issue is not *specific to your development environment* setup. +* **Provide** *duplication steps*. +* **Attempt to look into the issue**, and if you *have a solution, make a pull request*. +* **Show that you have made an attempt** to *look into the issue*. +* **Check** to see if the issue you are *reporting is a duplicate* of a previous reported issue. +* **Following these instructions show me that you have tried.** +* If you have a questions send me an email to jeremykenedy@gmail.com +* Need some help, I can do my best on Slack: https://opensourcehelpgroup.slack.com +* Please be considerate that this is an open source project that I provide to the community for FREE when opening an issue. + +### License +Laravel Users | A Laravel Users Management Package is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). Enjoy! diff --git a/src/App/Http/Controllers/UsersManagementController.php b/src/App/Http/Controllers/UsersManagementController.php old mode 100644 new mode 100755 index 885cf9d..645da34 --- a/src/App/Http/Controllers/UsersManagementController.php +++ b/src/App/Http/Controllers/UsersManagementController.php @@ -2,16 +2,19 @@ namespace jeremykenedy\laravelusers\App\Http\Controllers; -use Illuminate\Foundation\Auth\RegistersUsers; -use App\Http\Controllers\Controller; +use Auth; use Illuminate\Http\Request; -use App\Http\Requests; +use Illuminate\Http\Response; +use Illuminate\Routing\Controller; +use Illuminate\Support\Facades\Hash; use Validator; -use App\User; -use Auth; class UsersManagementController extends Controller { + private $_authEnabled; + private $_rolesEnabled; + private $_rolesMiddlware; + private $_rolesMiddleWareEnabled; /** * Create a new controller instance. @@ -20,7 +23,18 @@ class UsersManagementController extends Controller */ public function __construct() { - $this->middleware('auth'); + $this->_authEnabled = config('laravelusers.authEnabled'); + $this->_rolesEnabled = config('laravelusers.rolesEnabled'); + $this->_rolesMiddlware = config('laravelusers.rolesMiddlware'); + $this->_rolesMiddleWareEnabled = config('laravelusers.rolesMiddlwareEnabled'); + + if ($this->_authEnabled) { + $this->middleware('auth'); + } + + if ($this->_rolesEnabled && $this->_rolesMiddleWareEnabled) { + $this->middleware($this->_rolesMiddlware); + } } /** @@ -30,10 +44,20 @@ public function __construct() */ public function index() { - $users = User::all(); + $pagintaionEnabled = config('laravelusers.enablePagination'); - return View('laravelusers::usersmanagement.show-users', compact('users')); + if ($pagintaionEnabled) { + $users = config('laravelusers.defaultUserModel')::paginate(config('laravelusers.paginateListSize')); + } else { + $users = config('laravelusers.defaultUserModel')::all(); + } + $data = [ + 'users' => $users, + 'pagintaionEnabled' => $pagintaionEnabled, + ]; + + return view(config('laravelusers.showUsersBlade'), $data); } /** @@ -43,124 +67,239 @@ public function index() */ public function create() { - return view('laravelusers::usersmanagement.create-user'); + $roles = []; + + if ($this->_rolesEnabled) { + $roles = config('laravelusers.roleModel')::all(); + } + + $data = [ + 'rolesEnabled' => $this->_rolesEnabled, + 'roles' => $roles, + ]; + + return view(config('laravelusers.createUserBlade'))->with($data); } /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request + * * @return \Illuminate\Http\Response */ public function store(Request $request) { + $rules = [ + 'name' => 'required|string|max:255|unique:users|alpha_dash', + 'email' => 'required|email|max:255|unique:users', + 'password' => 'required|string|confirmed|min:6', + 'password_confirmation' => 'required|string|same:password', + ]; - $validator = Validator::make($request->all(), [ - 'name' => 'required|max:255', - 'email' => 'required|email|max:255|unique:users', - 'password' => 'required|confirmed|min:6' - ]); + if ($this->_rolesEnabled) { + $rules['role'] = 'required'; + } + + $messages = [ + 'name.unique' => trans('laravelusers::laravelusers.messages.userNameTaken'), + 'name.required' => trans('laravelusers::laravelusers.messages.userNameRequired'), + 'name' => trans('laravelusers::laravelusers.messages.userNameInvalid'), + 'email.required' => trans('laravelusers::laravelusers.messages.emailRequired'), + 'email.email' => trans('laravelusers::laravelusers.messages.emailInvalid'), + 'password.required' => trans('laravelusers::laravelusers.messages.passwordRequired'), + 'password.min' => trans('laravelusers::laravelusers.messages.PasswordMin'), + 'password.max' => trans('laravelusers::laravelusers.messages.PasswordMax'), + 'role.required' => trans('laravelusers::laravelusers.messages.roleRequired'), + ]; + + $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { - $this->throwValidationException( - $request, $validator - ); - } else { - $user = new User; - $user->name = $request->input('name'); - $user->email = $request->input('email'); - $user->password = bcrypt($request->input('password')); + return back()->withErrors($validator)->withInput(); + } + + $user = config('laravelusers.defaultUserModel')::create([ + 'name' => strip_tags($request->input('name')), + 'email' => $request->input('email'), + 'password' => Hash::make($request->input('password')), + ]); + + if ($this->_rolesEnabled) { + $user->attachRole($request->input('role')); $user->save(); - return redirect('users')->with('success', 'Successfully created user!'); } + + return redirect('users')->with('success', trans('laravelusers::laravelusers.messages.user-creation-success')); } /** * Display the specified resource. * - * @param int $id + * @param int $id + * * @return \Illuminate\Http\Response */ public function show($id) { + $user = config('laravelusers.defaultUserModel')::find($id); - $user = User::find($id); - - return view('laravelusers::usersmanagement.show-user')->withUser($user); + return view(config('laravelusers.showIndividualUserBlade'))->withUser($user); } /** * Show the form for editing the specified resource. * - * @param int $id + * @param int $id + * * @return \Illuminate\Http\Response */ public function edit($id) { - $user = User::findOrFail($id); - return view('laravelusers::usersmanagement.edit-user')->withUser($user); + $user = config('laravelusers.defaultUserModel')::findOrFail($id); + $roles = []; + $currentRole = []; + + if ($this->_rolesEnabled) { + $roles = config('laravelusers.roleModel')::all(); + + foreach ($user->roles as $user_role) { + $currentRole[] = $user_role->id; + } + } + + $data = [ + 'user' => $user, + 'rolesEnabled' => $this->_rolesEnabled, + ]; + + if ($this->_rolesEnabled) { + $data['roles'] = $roles; + $data['currentRole'] = $currentRole; + } + + return view(config('laravelusers.editIndividualUserBlade'))->with($data); } /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param int $id + * @param \Illuminate\Http\Request $request + * @param int $id + * * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { + $user = config('laravelusers.defaultUserModel')::find($id); + $emailCheck = ($request->input('email') != '') && ($request->input('email') != $user->email); + $passwordCheck = $request->input('password') != null; - $currentUser = Auth::user(); - $user = User::find($id); - $emailCheck = ($request->input('email') != '') && ($request->input('email') != $currentUser->email); + $rules = [ + 'name' => 'required|max:255', + ]; if ($emailCheck) { - $validator = Validator::make($request->all(), [ - 'name' => 'required|max:255', - 'email' => 'nullable|email|max:255|unique:users', - 'password' => 'present|confirmed|min:6' - ]); - } else { - $validator = Validator::make($request->all(), [ - 'name' => 'required|max:255', - 'password' => 'nullable|confirmed|min:6' - ]); + $rules['email'] = 'required|email|max:255|unique:users'; } + + if ($passwordCheck) { + $rules['password'] = 'required|string|min:6|max:20|confirmed'; + $rules['password_confirmation'] = 'required|string|same:password'; + } + + if ($this->_rolesEnabled) { + $rules['role'] = 'required'; + } + + $validator = Validator::make($request->all(), $rules); + if ($validator->fails()) { - $this->throwValidationException( - $request, $validator - ); - } else { - $user->name = $request->input('name'); - if ($emailCheck) { - $user->email = $request->input('email'); - } - if ($request->input('password') != null) { - $user->password = bcrypt($request->input('password')); - } - $user->save(); - return back()->with('success', 'Successfully updated user'); + return back()->withErrors($validator)->withInput(); } + + $user->name = strip_tags($request->input('name')); + + if ($emailCheck) { + $user->email = $request->input('email'); + } + + if ($passwordCheck) { + $user->password = Hash::make($request->input('password')); + } + + if ($this->_rolesEnabled) { + $user->detachAllRoles(); + $user->attachRole($request->input('role')); + } + + $user->save(); + + return back()->with('success', trans('laravelusers::laravelusers.messages.update-user-success')); } /** * Remove the specified resource from storage. * - * @param int $id + * @param int $id + * * @return \Illuminate\Http\Response */ public function destroy($id) { - $currentUser = Auth::user(); - $user = User::findOrFail($id); + $user = config('laravelusers.defaultUserModel')::findOrFail($id); - if ($currentUser != $user) { + if ($currentUser->id != $user->id) { $user->delete(); - return redirect('users')->with('success', 'Successfully deleted the user!'); + + return redirect('users')->with('success', trans('laravelusers::laravelusers.messages.delete-success')); + } + + return back()->with('error', trans('laravelusers::laravelusers.messages.cannot-delete-yourself')); + } + + /** + * Method to search the users. + * + * @param Request $request + * + * @return \Illuminate\Http\Response + */ + public function search(Request $request) + { + $searchTerm = $request->input('user_search_box'); + $searchRules = [ + 'user_search_box' => 'required|string|max:255', + ]; + $searchMessages = [ + 'user_search_box.required' => 'Search term is required', + 'user_search_box.string' => 'Search term has invalid characters', + 'user_search_box.max' => 'Search term has too many characters - 255 allowed', + ]; + + $validator = Validator::make($request->all(), $searchRules, $searchMessages); + + if ($validator->fails()) { + return response()->json([ + json_encode($validator), + ], Response::HTTP_UNPROCESSABLE_ENTITY); + } + + $results = config('laravelusers.defaultUserModel')::where('id', 'like', $searchTerm.'%') + ->orWhere('name', 'like', $searchTerm.'%') + ->orWhere('email', 'like', $searchTerm.'%')->get(); + + // Attach roles to results + foreach ($results as $result) { + $roles = [ + 'roles' => $result->roles, + ]; + $result->push($roles); } - return back()->with('error', 'You cannot delete yourself!'); + return response()->json([ + json_encode($results), + ], Response::HTTP_OK); } } diff --git a/src/LaravelUsersFacade.php b/src/LaravelUsersFacade.php new file mode 100644 index 0000000..33666a2 --- /dev/null +++ b/src/LaravelUsersFacade.php @@ -0,0 +1,13 @@ +loadRoutesFrom(__DIR__.'/routes/web.php'); - $this->loadViewsFrom(__DIR__.'/resources/views/', 'laravelusers'); - $this->loadTranslationsFrom(__DIR__.'/resources/lang/en/', 'laravelusers'); - - $this->publishes([ - __DIR__.'/resources/views/' => resource_path('views/vendor/laravelusers'), - ], 'laravelusers'); - - $this->publishes([ - __DIR__.'/resources/lang/en/' => resource_path('lang/en'), - ], 'laravelusers'); - + $this->loadTranslationsFrom(__DIR__.'/resources/lang/', $this->_packageTag); } /** @@ -35,9 +32,36 @@ public function boot() */ public function register() { - include __DIR__.'/routes/web.php'; + $this->loadRoutesFrom(__DIR__.'/routes/web.php'); + $this->loadViewsFrom(__DIR__.'/resources/views/', $this->_packageTag); + $this->mergeConfigFrom(__DIR__.'/config/'.$this->_packageTag.'.php', $this->_packageTag); + $this->publishFiles(); $this->app->make('jeremykenedy\laravelusers\App\Http\Controllers\UsersManagementController'); + $this->app->singleton(jeremykenedy\laravelusers\App\Http\Controllers\UsersManagementController\UsersManagementController::class, function () { + return new App\Http\Controllers\UsersManagementController(); + }); + $this->app->alias(UsersManagementController::class, 'laravelusers'); } + /** + * Publish files for the package. + * + * @return void + */ + private function publishFiles() + { + $publishTag = $this->_packageTag; + + $this->publishes([ + __DIR__.'/config/'.$this->_packageTag.'.php' => base_path('config/'.$this->_packageTag.'.php'), + ], $publishTag); + $this->publishes([ + __DIR__.'/resources/views' => resource_path('views/vendor/'.$this->_packageTag), + ], $publishTag); + + $this->publishes([ + __DIR__.'/resources/lang' => resource_path('lang/vendor/'.$this->_packageTag), + ], $publishTag); + } } diff --git a/src/config/laravelusers.php b/src/config/laravelusers.php new file mode 100644 index 0000000..7cac389 --- /dev/null +++ b/src/config/laravelusers.php @@ -0,0 +1,89 @@ + 'laravelusers::layouts.app', // 'layouts.app' + + // Enable `auth` middleware + 'authEnabled' => true, + + // Enable Optional Roles Middleware on the users assignments + 'rolesEnabled' => false, + + /* + | Enable Roles Middlware on the usability of this package. + | This requires the middleware from the roles package to be registered in `App\Http\Kernel.php` + | An Example: of roles middleware entry in protected `$routeMiddleware` array would be: + | 'role' => \jeremykenedy\LaravelRoles\Middleware\VerifyRole::class, + */ + + 'rolesMiddlwareEnabled' => true, + + // Optional Roles Middleware + 'rolesMiddlware' => 'role:admin', + + // Optional Role Model + 'roleModel' => 'jeremykenedy\LaravelRoles\Models\Role', + + // Enable Soft Deletes - Not yet setup - on the roadmap. + 'softDeletedEnabled' => false, + + // Laravel Default User Model + 'defaultUserModel' => 'App\User', + + // Use the provided blade templates or extend to your own templates. + 'showUsersBlade' => 'laravelusers::usersmanagement.show-users', + 'createUserBlade' => 'laravelusers::usersmanagement.create-user', + 'showIndividualUserBlade' => 'laravelusers::usersmanagement.show-user', + 'editIndividualUserBlade' => 'laravelusers::usersmanagement.edit-user', + + // Use Package Bootstrap Flash Alerts + 'enablePackageBootstapAlerts' => true, + + // Users List Pagination + 'enablePagination' => true, + 'paginateListSize' => 25, + + // Enable Search Users- Uses jQuery Ajax + 'enableSearchUsers' => true, + + // Users List JS DataTables - not recommended use with pagination + 'enabledDatatablesJs' => false, + 'datatablesJsStartCount' => 25, + 'datatablesCssCDN' => 'https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css', + 'datatablesJsCDN' => 'https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js', + 'datatablesJsPresetCDN' => 'https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js', + + // Bootstrap Tooltips + 'tooltipsEnabled' => true, + 'enableBootstrapPopperJsCdn' => true, + 'bootstrapPopperJsCdn' => 'https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js', + + // Icons + 'fontAwesomeEnabled' => true, + 'fontAwesomeCdn' => 'https://use.fontawesome.com/releases/v5.0.6/css/all.css', + + // Extended blade options for packages app.blade.php + 'enableBootstrapCssCdn' => true, + 'bootstrapCssCdn' => 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css', + + 'enableAppCss' => true, + 'appCssPublicFile' => 'css/app.css', + + 'enableBootstrapJsCdn' => true, + 'bootstrapJsCdn' => 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js', + + 'enableAppJs' => true, + 'appJsPublicFile' => 'js/app.js', + + 'enablejQueryCdn' => true, + 'jQueryCdn' => 'https://code.jquery.com/jquery-3.3.1.min.js', + +]; diff --git a/src/resources/lang/ar/app.php b/src/resources/lang/ar/app.php new file mode 100644 index 0000000..d04b08a --- /dev/null +++ b/src/resources/lang/ar/app.php @@ -0,0 +1,19 @@ + [ + 'toggle-nav-alt' => 'تبديل العرض', + 'login' => 'تسجيل الدخول', + 'register' => 'تسجيل حساب جديد', + 'users' => 'المستخدمين', + 'logout' => 'تسجيل الخروج', + ], + +]; diff --git a/src/resources/lang/ar/forms.php b/src/resources/lang/ar/forms.php new file mode 100644 index 0000000..0467524 --- /dev/null +++ b/src/resources/lang/ar/forms.php @@ -0,0 +1,96 @@ + 'البريد الإليكتروني', + 'create_user_ph_email' => 'البريد الإليكتروني', + 'create_user_icon_email' => 'fa-envelope', + + 'create_user_label_username' => 'اسم المستخدم', + 'create_user_ph_username' => 'اسم المستخدم', + 'create_user_icon_username' => 'fa-user', + + 'create_user_label_firstname' => 'الاسم الأول', + 'create_user_ph_firstname' => 'الاسم الأول', + 'create_user_icon_firstname' => 'fa-user', + + 'create_user_label_lastname' => 'الاسم الأخير', + 'create_user_ph_lastname' => 'الاسم الأخير', + 'create_user_icon_lastname' => 'fa-user', + + 'create_user_label_password' => 'كلمة المرور', + 'create_user_ph_password' => 'كلمة المرور', + 'create_user_icon_password' => 'fa-lock', + + 'create_user_label_pw_confirmation' => 'تأكيد كلمة المرور', + 'create_user_ph_pw_confirmation' => 'تأكيد كلمة المرور', + 'create_user_icon_pw_confirmation' => 'fa-lock', + + 'create_user_label_location' => 'مكان المستخدم', + 'create_user_ph_location' => 'مكان المستخدم', + 'create_user_icon_location' => 'fa-map-marker', + + 'create_user_label_bio' => 'نبذة عن المستخدم', + 'create_user_ph_bio' => 'نبذة عن المستخدم', + 'create_user_icon_bio' => 'fa-pencil', + + 'create_user_label_twitter_username' => 'حساب Twitter', + 'create_user_ph_twitter_username' => 'حساب Twitter', + 'create_user_icon_twitter_username' => 'fa-twitter', + + 'create_user_label_github_username' => 'حساب GitHub', + 'create_user_ph_github_username' => 'حساب GitHub', + 'create_user_icon_github_username' => 'fa-github', + + 'create_user_label_career_title' => 'يعمل لدي', + 'create_user_ph_career_title' => 'يعمل لدي', + 'create_user_icon_career_title' => 'fa-briefcase', + + 'create_user_label_education' => 'المؤهل الدراسي', + 'create_user_ph_education' => 'المؤهل الدراسي', + 'create_user_icon_education' => 'fa-graduation-cap', + + 'create_user_label_role' => 'دور المستخدم', + 'create_user_ph_role' => 'اختر دور المستخدم', + 'create_user_icon_role' => 'fas fa-fw fas fa-shield-alt', + + 'create_user_button_text' => ' اضافة مستخدم جديد', + + // EDIT USER AS ADMINISTRATOR FORM + 'edit-user-admin-title' => 'تعديل بيانات المستخدم', + + 'label-username' => 'اسم المستخدم', + 'ph-username' => 'اسم المستخدم', + + 'label-useremail' => 'البريد الإليكتروني', + 'ph-useremail' => 'البريد الإليكتروني', + + 'label-userrole_id' => 'مستوي صلاحيات المستخدم', + 'option-label' => 'اختر مستوي', + 'option-user' => 'مستخدم', + 'option-editor' => 'محرر', + 'option-admin' => 'مدير', + 'submit-btn-text' => 'تعديل المستخدم', + + 'submit-btn-icon' => 'fa-save', + 'username-icon' => 'fa-user', + 'useremail-icon' => 'fa-envelope-o', + + 'change-pw' => 'تغيير كلمة المرور', + 'cancel' => 'الغاء', + 'save-changes' => ' حفظ التغييرات', + + // Search Users Form + 'search-users-ph' => 'البحث عن المستخدمين', + +]; diff --git a/src/resources/lang/ar/laravelusers.php b/src/resources/lang/ar/laravelusers.php new file mode 100644 index 0000000..7a1c4c2 --- /dev/null +++ b/src/resources/lang/ar/laravelusers.php @@ -0,0 +1,89 @@ + 'عرض جميع المستخدمين', + 'users-menu-alt' => 'عرض قائمة ادارة المستخدمين', + 'create-new-user' => 'اضافة مستخدم جديد', + 'show-deleted-users' => 'عرض المستخدمين المحذوفين', + 'editing-user' => 'تعديل المستخدم :name', + 'showing-user' => 'عرض المستخدم :name', + 'showing-user-title' => 'بيانات المستخدم :name', + + 'users-table' => [ + 'caption' => '{1} :userscount مستخدم وجد|[2,*] :userscount اجمالي المستخدمين', + 'id' => 'الكود', + 'name' => 'الاسم', + 'email' => 'البريد الإليكتروني', + 'role' => 'الدور', + 'created' => 'تاريخ الاضافة', + 'updated' => 'تاريخ التعديل', + 'actions' => 'اجراءات', + 'updated' => 'تاريخ التعديل', + ], + + 'buttons' => [ + 'create-new' => '', + 'delete' => ' ', + 'show' => ' ', + 'edit' => ' ', + 'back-to-users' => '', + 'back-to-user' => 'المستخدم', + 'delete-user' => ' ', + 'edit-user' => ' ', + ], + + 'tooltips' => [ + 'delete' => 'حذف', + 'show' => 'عرض', + 'edit' => 'تعديل', + 'create-new' => 'اضافة مستخدم جديد', + 'back-user' => 'عرض المستخدم', + 'back-users' => 'عرض المستخدمين', + 'email-user' => 'مراسلة :user', + 'submit-search' => 'القيام بالبحث', + 'clear-search' => 'حذف نتائج البحث', + ], + + 'messages' => [ + 'userNameTaken' => 'اسم المستخدم غير متاح', + 'userNameRequired' => 'اسم المستخدم مطلوب', + 'fNameRequired' => 'الاسم الأول مطلوب', + 'lNameRequired' => 'الاسم الأخير مطلوب', + 'emailRequired' => 'البريد الإليكتروني مطلوب', + 'emailInvalid' => 'البريد الإليكتروني غير صحيح', + 'passwordRequired' => 'كلمة المرور مطلوبة', + 'PasswordMin' => 'كلمة المرور لابد ان تكون 6 حروف علي الأقل', + 'PasswordMax' => 'أقصي طول لكلمة المرور هو 20 حرف', + 'captchaRequire' => 'كلمة التحقق مطلوبة', + 'CaptchaWrong' => 'كلمة التحقق غير صحيحة، يرجي اعادة المحاولة.', + 'roleRequired' => 'برجاء اختيار دور المستخدم', + 'user-creation-success' => 'تمت اضافة المستخدم بنجاح!', + 'update-user-success' => 'تم تعديل المستخدم بنجاح!', + 'delete-success' => 'تم حذف المستخدم بنجاح!', + 'cannot-delete-yourself' => 'لا يمكن حذف حسابك الشخصي بنفسك!', + ], + + 'show-user' => [ + 'id' => 'كود المستخدم', + 'name' => 'اسم المستخدم', + 'email' => 'البريد', + 'role' => 'الدور', + 'created' => 'اضيف ', + 'updated' => 'عُدل ', + 'labelRole' => 'الدور', + 'labelAccessLevel' => 'صلاحيات|صلاحيات', + ], + + 'search' => [ + 'title' => 'عرض نتائج البحث', + 'found-footer' => ' سجل وُجد', + 'no-results' => 'لا يوجد سجلات مطابقة', + ], +]; diff --git a/src/resources/lang/ar/modals.php b/src/resources/lang/ar/modals.php new file mode 100644 index 0000000..3dc31bd --- /dev/null +++ b/src/resources/lang/ar/modals.php @@ -0,0 +1,31 @@ + 'تأكيد الحفظ', + 'confirm_modal_title_std_msg' => 'يرجي تأكيد طلبك.', + + // Confirm Save Modal; + 'confirm_modal_button_save_text' => 'حفظ التغييرات', + 'confirm_modal_button_save_icon' => 'fa-save', + 'confirm_modal_button_cancel_text' => 'الغاء', + 'confirm_modal_button_cancel_icon' => 'fa-times', + 'edit_user__modal_text_confirm_title' => 'تأكيد الحفظ', + 'edit_user__modal_text_confirm_message' => 'يرجي تأكيد التغييرات المطلوبة', + + // Delete Modal + 'delete_user_title' => 'حذف المستخدم', + 'delete_user_message' => 'هل ترغب فعلا في حذف المستخدم :user?', + 'delete_user_btn_cancel' => ' الغاء', + 'delete_user_btn_confirm' => ' حذف المستخدم', +]; diff --git a/src/resources/lang/de/app.php b/src/resources/lang/de/app.php new file mode 100644 index 0000000..1d5524d --- /dev/null +++ b/src/resources/lang/de/app.php @@ -0,0 +1,19 @@ + [ + 'toggle-nav-alt' => 'Navigation anzeigen/ausblenden', + 'login' => 'Login', + 'register' => 'Registrieren', + 'users' => 'Benutzer', + 'logout' => 'Logout', + ], + +]; diff --git a/src/resources/lang/de/forms.php b/src/resources/lang/de/forms.php new file mode 100644 index 0000000..aeb8df5 --- /dev/null +++ b/src/resources/lang/de/forms.php @@ -0,0 +1,96 @@ + 'E-Mail', + 'create_user_ph_email' => 'E-Mail', + 'create_user_icon_email' => 'fa-envelope', + + 'create_user_label_username' => 'Benutzername', + 'create_user_ph_username' => 'Benutzername', + 'create_user_icon_username' => 'fa-user', + + 'create_user_label_firstname' => 'Vorname', + 'create_user_ph_firstname' => 'Vorname', + 'create_user_icon_firstname' => 'fa-user', + + 'create_user_label_lastname' => 'Last Name', + 'create_user_ph_lastname' => 'Last Name', + 'create_user_icon_lastname' => 'fa-user', + + 'create_user_label_password' => 'Passwort', + 'create_user_ph_password' => 'Passwort', + 'create_user_icon_password' => 'fa-lock', + + 'create_user_label_pw_confirmation' => 'Passwort bestätigen', + 'create_user_ph_pw_confirmation' => 'Passwort bestätigen', + 'create_user_icon_pw_confirmation' => 'fa-lock', + + 'create_user_label_location' => 'Ort', + 'create_user_ph_location' => 'Ort', + 'create_user_icon_location' => 'fa-map-marker', + + 'create_user_label_bio' => 'Biographie', + 'create_user_ph_bio' => 'Biographie', + 'create_user_icon_bio' => 'fa-pencil', + + 'create_user_label_twitter_username' => 'Twitter Benutzername', + 'create_user_ph_twitter_username' => 'Twitter Benutzername', + 'create_user_icon_twitter_username' => 'fa-twitter', + + 'create_user_label_github_username' => 'GitHub Benutzername', + 'create_user_ph_github_username' => 'GitHub Benutzername', + 'create_user_icon_github_username' => 'fa-github', + + 'create_user_label_career_title' => 'Beruf', + 'create_user_ph_career_title' => 'Beruf', + 'create_user_icon_career_title' => 'fa-briefcase', + + 'create_user_label_education' => 'Schulabschluß', + 'create_user_ph_education' => 'Schulabschluß', + 'create_user_icon_education' => 'fa-graduation-cap', + + 'create_user_label_role' => 'Benutzerrolle', + 'create_user_ph_role' => 'Benutzerrolle auswählen', + 'create_user_icon_role' => 'fas fa-fw fas fa-shield-alt', + + 'create_user_button_text' => ' Neuen Benutzer anlegen', + + // EDIT USER AS ADMINISTRATOR FORM + 'edit-user-admin-title' => 'Benutzer bearbeiten', + + 'label-username' => 'Benutzername', + 'ph-username' => 'Benutzername', + + 'label-useremail' => 'E-Mail', + 'ph-useremail' => 'E-Mail', + + 'label-userrole_id' => 'Zugriffstufe', + 'option-label' => 'Stufe auswählen', + 'option-user' => 'User', + 'option-editor' => 'Editor', + 'option-admin' => 'Administrator', + 'submit-btn-text' => 'Benutzer bearbeiten!', + + 'submit-btn-icon' => 'fa-save', + 'username-icon' => 'fa-user', + 'useremail-icon' => 'fa-envelope-o', + + 'change-pw' => 'Passwort ändern', + 'cancel' => 'Abbruch', + 'save-changes' => ' Änderungen speichern', + + // Search Users Form + 'search-users-ph' => 'Benutzer durchsuchen', + +]; diff --git a/src/resources/lang/de/laravelusers.php b/src/resources/lang/de/laravelusers.php new file mode 100644 index 0000000..da72e0e --- /dev/null +++ b/src/resources/lang/de/laravelusers.php @@ -0,0 +1,88 @@ + 'Alle Benutzer', + 'users-menu-alt' => 'Benutzerverwaltung anzeigen', + 'create-new-user' => 'Neuen Benutzer anlegen', + 'show-deleted-users' => 'Gelöschte Benutzer anzeigen', + 'editing-user' => 'Bearbeite Benutzer :name', + 'showing-user' => 'Zeige Nutzer :name', + 'showing-user-title' => ':name\'s Information', + + 'users-table' => [ + 'caption' => '{1} :userscount Benutzer insgesamt|[2,*] :userscount Benutzer insgesamt', + 'id' => 'ID', + 'name' => 'Name', + 'email' => 'E-Mail', + 'role' => 'Rolle', + 'created' => 'Erstellt', + 'updated' => 'Aktualisiert', + 'actions' => 'Aktionen', + ], + + 'buttons' => [ + 'create-new' => '', + 'delete' => ' ', + 'show' => ' ', + 'edit' => ' ', + 'back-to-users' => '', + 'back-to-user' => 'Zurück zum ', + 'delete-user' => ' ', + 'edit-user' => ' ', + ], + + 'tooltips' => [ + 'delete' => 'Löschen', + 'show' => 'Anzeigen', + 'edit' => 'Bearbeiten', + 'create-new' => 'Neuen Benutzer anlegen', + 'back-user' => 'Zurück zum Benutzer', + 'back-users' => 'Zurück zur Benutzerliste', + 'email-user' => 'E-Mail :user', + 'submit-search' => 'Suchen', + 'clear-search' => 'Suche zurücksetzen', + ], + + 'messages' => [ + 'userNameTaken' => 'Benutzername ist bereits vergeben', + 'userNameRequired' => 'Benutzername ist ein Pflichtfeld', + 'fNameRequired' => 'Vorname ist ein Pflichtfeld', + 'lNameRequired' => 'Nachname ist ein Pflichtfeld', + 'emailRequired' => 'E-Mail ist ein Pflichtfeld', + 'emailInvalid' => 'E-Mail is invalid', + 'passwordRequired' => 'Passwort ist ein Pflichtfeld', + 'PasswordMin' => 'Das Passwort muss mindestens 6 Zeichen lang sein', + 'PasswordMax' => 'Das Passwort darf maximal 20 Zeichen lang sein', + 'captchaRequire' => 'Captcha ist ein Pflichtfeld', + 'CaptchaWrong' => 'Captcha falsch, bitte noch einmal versuchen', + 'roleRequired' => 'Benutzerrolle ist ein Pflichtfeld', + 'user-creation-success' => 'Benutzer erfolgreich angelegt!', + 'update-user-success' => 'Benutzer erfolgreich aktualisiert!', + 'delete-success' => 'Benutzer erfolgreich gelöscht!', + 'cannot-delete-yourself' => 'Du kannst dich nicht selbst löschen.', + ], + + 'show-user' => [ + 'id' => 'Benutzer ID', + 'name' => 'Benutzername', + 'email' => 'Email', + 'role' => 'Benutzerrolle', + 'created' => 'Angelegt ', + 'updated' => 'Aktualisiert ', + 'labelRole' => 'Benutzerrolle', + 'labelAccessLevel' => ' Stufe| Stufe', + ], + + 'search' => [ + 'title' => 'Zeige Suchergebnisse', + 'found-footer' => ' Treffer gefunden', + 'no-results' => 'Keine Treffer', + ], +]; diff --git a/src/resources/lang/de/modals.php b/src/resources/lang/de/modals.php new file mode 100644 index 0000000..03583d4 --- /dev/null +++ b/src/resources/lang/de/modals.php @@ -0,0 +1,31 @@ + 'Speichern bestätigen', + 'confirm_modal_title_std_msg' => 'Please confirm your request.', + + // Confirm Save Modal; + 'confirm_modal_button_save_text' => 'Änderungen speichern', + 'confirm_modal_button_save_icon' => 'fa-save', + 'confirm_modal_button_cancel_text' => 'Abbruch', + 'confirm_modal_button_cancel_icon' => 'fa-times', + 'edit_user__modal_text_confirm_title' => 'Änderungen speichern', + 'edit_user__modal_text_confirm_message' => 'Bitte bestätigen Sie die Änderungen.', + + // Delete Modal + 'delete_user_title' => 'Benutzer löschen', + 'delete_user_message' => 'Möchten Sie den Benutzer wirklich löschen?', + 'delete_user_btn_cancel' => ' Abbruch', + 'delete_user_btn_confirm' => ' Diesen Benutzer löschen', +]; diff --git a/src/resources/lang/en/app.php b/src/resources/lang/en/app.php new file mode 100644 index 0000000..fe4e3c9 --- /dev/null +++ b/src/resources/lang/en/app.php @@ -0,0 +1,19 @@ + [ + 'toggle-nav-alt' => 'Toggle Navigation', + 'login' => 'Login', + 'register' => 'Register', + 'users' => 'Users', + 'logout' => 'Logout', + ], + +]; diff --git a/src/resources/lang/en/forms.php b/src/resources/lang/en/forms.php old mode 100644 new mode 100755 index 721c089..f84fe19 --- a/src/resources/lang/en/forms.php +++ b/src/resources/lang/en/forms.php @@ -11,75 +11,86 @@ | */ - // CREATE NEW USER FORM - 'create_user_label_email' => 'User Email', - 'create_user_ph_email' => 'User Email', - 'create_user_icon_email' => 'fa-envelope', + // CREATE NEW USER FORM + 'create_user_label_email' => 'User Email', + 'create_user_ph_email' => 'User Email', + 'create_user_icon_email' => 'fa-envelope', - 'create_user_label_username' => 'Username', - 'create_user_ph_username' => 'Username', - 'create_user_icon_username' => 'fa-user', + 'create_user_label_username' => 'Username', + 'create_user_ph_username' => 'Username', + 'create_user_icon_username' => 'fa-user', - 'create_user_label_firstname' => 'First Name', - 'create_user_ph_firstname' => 'First Name', - 'create_user_icon_firstname' => 'fa-user', + 'create_user_label_firstname' => 'First Name', + 'create_user_ph_firstname' => 'First Name', + 'create_user_icon_firstname' => 'fa-user', - 'create_user_label_lastname' => 'Last Name', - 'create_user_ph_lastname' => 'Last Name', - 'create_user_icon_lastname' => 'fa-user', + 'create_user_label_lastname' => 'Last Name', + 'create_user_ph_lastname' => 'Last Name', + 'create_user_icon_lastname' => 'fa-user', - 'create_user_label_password' => 'Password', - 'create_user_ph_password' => 'Password', - 'create_user_icon_password' => 'fa-lock', + 'create_user_label_password' => 'Password', + 'create_user_ph_password' => 'Password', + 'create_user_icon_password' => 'fa-lock', - 'create_user_label_pw_confirmation' => 'Confirm Password', - 'create_user_ph_pw_confirmation' => 'Confirm Password', - 'create_user_icon_pw_confirmation' => 'fa-lock', + 'create_user_label_pw_confirmation' => 'Confirm Password', + 'create_user_ph_pw_confirmation' => 'Confirm Password', + 'create_user_icon_pw_confirmation' => 'fa-lock', - 'create_user_label_location' => 'User Location', - 'create_user_ph_location' => 'User Location', - 'create_user_icon_location' => 'fa-map-marker', + 'create_user_label_location' => 'User Location', + 'create_user_ph_location' => 'User Location', + 'create_user_icon_location' => 'fa-map-marker', - 'create_user_label_bio' => 'User Bio', - 'create_user_ph_bio' => 'User Bio', - 'create_user_icon_bio' => 'fa-pencil', + 'create_user_label_bio' => 'User Bio', + 'create_user_ph_bio' => 'User Bio', + 'create_user_icon_bio' => 'fa-pencil', - 'create_user_label_twitter_username'=> 'User Twitter Username', - 'create_user_ph_twitter_username' => 'User Twitter Username', - 'create_user_icon_twitter_username' => 'fa-twitter', + 'create_user_label_twitter_username' => 'User Twitter Username', + 'create_user_ph_twitter_username' => 'User Twitter Username', + 'create_user_icon_twitter_username' => 'fa-twitter', - 'create_user_label_github_username' => 'User GitHub Username', - 'create_user_ph_github_username' => 'User GitHub Username', - 'create_user_icon_github_username' => 'fa-github', + 'create_user_label_github_username' => 'User GitHub Username', + 'create_user_ph_github_username' => 'User GitHub Username', + 'create_user_icon_github_username' => 'fa-github', - 'create_user_label_career_title' => 'User Occupation', - 'create_user_ph_career_title' => 'User Occupation', - 'create_user_icon_career_title' => 'fa-briefcase', + 'create_user_label_career_title' => 'User Occupation', + 'create_user_ph_career_title' => 'User Occupation', + 'create_user_icon_career_title' => 'fa-briefcase', - 'create_user_label_education' => 'User Education', - 'create_user_ph_education' => 'User Education', - 'create_user_icon_education' => 'fa-graduation-cap', + 'create_user_label_education' => 'User Education', + 'create_user_ph_education' => 'User Education', + 'create_user_icon_education' => 'fa-graduation-cap', - 'create_user_button_text' => 'Create New User', + 'create_user_label_role' => 'User Role', + 'create_user_ph_role' => 'Select User Role', + 'create_user_icon_role' => 'fas fa-fw fas fa-shield-alt', - // EDIT USER AS ADMINISTRATOR FORM - 'edit-user-admin-title' => 'Edit User Information', + 'create_user_button_text' => ' Create New User', - 'label-username' => 'Username', - 'ph-username' => 'Username', + // EDIT USER AS ADMINISTRATOR FORM + 'edit-user-admin-title' => 'Edit User Information', - 'label-useremail' => 'User Email', - 'ph-useremail' => 'User Email', + 'label-username' => 'Username', + 'ph-username' => 'Username', - 'label-userrole_id' => 'User Access Level', - 'option-label' => 'Select a Level', - 'option-user' => 'User', - 'option-editor' => 'Editor', - 'option-admin' => 'Administrator', - 'submit-btn-text' => 'Edit the User!', + 'label-useremail' => 'User Email', + 'ph-useremail' => 'User Email', - 'submit-btn-icon' => 'fa-save', - 'username-icon' => 'fa-user', - 'useremail-icon' => 'fa-envelope-o', + 'label-userrole_id' => 'User Access Level', + 'option-label' => 'Select a Level', + 'option-user' => 'User', + 'option-editor' => 'Editor', + 'option-admin' => 'Administrator', + 'submit-btn-text' => 'Edit the User!', -]; \ No newline at end of file + 'submit-btn-icon' => 'fa-save', + 'username-icon' => 'fa-user', + 'useremail-icon' => 'fa-envelope-o', + + 'change-pw' => 'Change Password', + 'cancel' => 'Cancel', + 'save-changes' => ' Save Changes', + + // Search Users Form + 'search-users-ph' => 'Search Users', + +]; diff --git a/src/resources/lang/en/laravelusers.php b/src/resources/lang/en/laravelusers.php new file mode 100644 index 0000000..f4ae4e6 --- /dev/null +++ b/src/resources/lang/en/laravelusers.php @@ -0,0 +1,90 @@ + 'Showing All Users', + 'users-menu-alt' => 'Show Users Management Menu', + 'create-new-user' => 'Create New User', + 'show-deleted-users' => 'Show Deleted User', + 'editing-user' => 'Editing User :name', + 'showing-user' => 'Showing User :name', + 'showing-user-title' => ':name\'s Information', + + 'users-table' => [ + 'caption' => '{1} :userscount user total|[2,*] :userscount total users', + 'id' => 'ID', + 'name' => 'Name', + 'email' => 'Email', + 'role' => 'Role', + 'created' => 'Created', + 'updated' => 'Updated', + 'actions' => 'Actions', + 'updated' => 'Updated', + ], + + 'buttons' => [ + 'create-new' => '', + 'delete' => ' ', + 'show' => ' ', + 'edit' => ' ', + 'back-to-users' => '', + 'back-to-user' => 'Back ', + 'delete-user' => ' ', + 'edit-user' => ' ', + ], + + 'tooltips' => [ + 'delete' => 'Delete', + 'show' => 'Show', + 'edit' => 'Edit', + 'create-new' => 'Create New User', + 'back-user' => 'Back to user', + 'back-users' => 'Back to users', + 'email-user' => 'Email :user', + 'submit-search' => 'Submit Users Search', + 'clear-search' => 'Clear Search Results', + ], + + 'messages' => [ + 'userNameTaken' => 'Username is taken', + 'userNameRequired' => 'Username is required', + 'userNameInvalid' => 'Username is invalid', + 'fNameRequired' => 'First Name is required', + 'lNameRequired' => 'Last Name is required', + 'emailRequired' => 'Email is required', + 'emailInvalid' => 'Email is invalid', + 'passwordRequired' => 'Password is required', + 'PasswordMin' => 'Password needs to have at least 6 characters', + 'PasswordMax' => 'Password maximum length is 20 characters', + 'captchaRequire' => 'Captcha is required', + 'CaptchaWrong' => 'Wrong captcha, please try again.', + 'roleRequired' => 'User role is required.', + 'user-creation-success' => 'Successfully created user!', + 'update-user-success' => 'Successfully updated user!', + 'delete-success' => 'Successfully deleted the user!', + 'cannot-delete-yourself' => 'You cannot delete yourself!', + ], + + 'show-user' => [ + 'id' => 'User ID', + 'name' => 'Username', + 'email' => 'Email', + 'role' => 'User Role', + 'created' => 'Created ', + 'updated' => 'Updated ', + 'labelRole' => 'User Role', + 'labelAccessLevel' => ' Access Level| Access Levels', + ], + + 'search' => [ + 'title' => 'Showing Search Results', + 'found-footer' => ' Record(s) found', + 'no-results' => 'No Results', + ], +]; diff --git a/src/resources/lang/en/modals.php b/src/resources/lang/en/modals.php old mode 100644 new mode 100755 index 2250717..078d0c0 --- a/src/resources/lang/en/modals.php +++ b/src/resources/lang/en/modals.php @@ -11,7 +11,6 @@ | */ - // Default Save Modal; 'confirm_modal_title_text' => 'Confirm Save', 'confirm_modal_title_std_msg' => 'Please confirm your request.', @@ -24,6 +23,9 @@ 'edit_user__modal_text_confirm_title' => 'Confirm Save', 'edit_user__modal_text_confirm_message' => 'Please confirm your changes.', - - -]; \ No newline at end of file + // Delete Modal + 'delete_user_title' => 'Delete User', + 'delete_user_message' => 'Are you sure you want to delete :user?', + 'delete_user_btn_cancel' => ' Cancel', + 'delete_user_btn_confirm' => ' Delete this User', +]; diff --git a/src/resources/lang/nl/app.php b/src/resources/lang/nl/app.php new file mode 100644 index 0000000..d96d181 --- /dev/null +++ b/src/resources/lang/nl/app.php @@ -0,0 +1,19 @@ + [ + 'toggle-nav-alt' => 'Navigatie Aan/Uit', + 'login' => 'Inloggen', + 'register' => 'Registreren', + 'users' => 'Gebruikers', + 'logout' => 'Uitloggen', + ], + +]; diff --git a/src/resources/lang/nl/forms.php b/src/resources/lang/nl/forms.php new file mode 100644 index 0000000..e1111ec --- /dev/null +++ b/src/resources/lang/nl/forms.php @@ -0,0 +1,96 @@ + 'Email', + 'create_user_ph_email' => 'Email', + 'create_user_icon_email' => 'fa-envelope', + + 'create_user_label_username' => 'Gebruikersnaam', + 'create_user_ph_username' => 'Gebruikersnaam', + 'create_user_icon_username' => 'fa-user', + + 'create_user_label_firstname' => 'Voornaam', + 'create_user_ph_firstname' => 'Voornaam', + 'create_user_icon_firstname' => 'fa-user', + + 'create_user_label_lastname' => 'Achternaam', + 'create_user_ph_lastname' => 'Achternaam', + 'create_user_icon_lastname' => 'fa-user', + + 'create_user_label_password' => 'Wachtwoord', + 'create_user_ph_password' => 'Wachtwoord', + 'create_user_icon_password' => 'fa-lock', + + 'create_user_label_pw_confirmation' => 'Wachtwoord Bevestigen', + 'create_user_ph_pw_confirmation' => 'Wachtwoord Bevestigen', + 'create_user_icon_pw_confirmation' => 'fa-lock', + + 'create_user_label_location' => 'Gebruiker Locatie', + 'create_user_ph_location' => 'Gebruiker Locatie', + 'create_user_icon_location' => 'fa-map-marker', + + 'create_user_label_bio' => 'Gebruikersprofiel', + 'create_user_ph_bio' => 'Gebruikersprofiel', + 'create_user_icon_bio' => 'fa-pencil', + + 'create_user_label_twitter_username' => 'Twitter Gebruikersnaam', + 'create_user_ph_twitter_username' => 'Twitter Gebruikersnaam', + 'create_user_icon_twitter_username' => 'fa-twitter', + + 'create_user_label_github_username' => 'GitHub Gebruikersnaam', + 'create_user_ph_github_username' => 'GitHub Gebruikersnaam', + 'create_user_icon_github_username' => 'fa-github', + + 'create_user_label_career_title' => 'Gebruiker Beroep', + 'create_user_ph_career_title' => 'Gebruiker Beroep', + 'create_user_icon_career_title' => 'fa-briefcase', + + 'create_user_label_education' => 'Gebruiker Opleiding', + 'create_user_ph_education' => 'Gebruiker Opleiding', + 'create_user_icon_education' => 'fa-graduation-cap', + + 'create_user_label_role' => 'Gebruikersrol', + 'create_user_ph_role' => 'Selecteer Gebruikersrol', + 'create_user_icon_role' => 'fas fa-fw fas fa-shield-alt', + + 'create_user_button_text' => ' Nieuwe Gebruiker Aanmaken', + + // EDIT USER AS ADMINISTRATOR FORM + 'edit-user-admin-title' => 'Gebruikersinfo Wijzigen', + + 'label-username' => 'Gebruikersnaam', + 'ph-username' => 'Gebruikersnaam', + + 'label-useremail' => 'Email', + 'ph-useremail' => 'Email', + + 'label-userrole_id' => 'Gebruiker Toegangsniveau', + 'option-label' => 'Selecteer een Niveau', + 'option-user' => 'Gebruiker', + 'option-editor' => 'Schrijver', + 'option-admin' => 'Beheerder', + 'submit-btn-text' => 'Wijzig de Gebruiker!', + + 'submit-btn-icon' => 'fa-save', + 'username-icon' => 'fa-user', + 'useremail-icon' => 'fa-envelope-o', + + 'change-pw' => 'Wachtwoord Wijzigen', + 'cancel' => 'Annuleren', + 'save-changes' => ' Wijzigingen Opslaan', + + // Search Users Form + 'search-users-ph' => 'Gebruikers Zoeken', + +]; diff --git a/src/resources/lang/nl/laravelusers.php b/src/resources/lang/nl/laravelusers.php new file mode 100644 index 0000000..0f2965d --- /dev/null +++ b/src/resources/lang/nl/laravelusers.php @@ -0,0 +1,89 @@ + 'Toon Alle Gebruikers', + 'users-menu-alt' => 'Toon Gebruikersbeheer Menu', + 'create-new-user' => 'Nieuwe Gebruiker Aanmaken', + 'show-deleted-users' => 'Toon Verwijderde Gebuikers', + 'editing-user' => 'Wijzigen Gebruiker :name', + 'showing-user' => 'Tonen Gebruiker :name', + 'showing-user-title' => ':name\'s Informatie', + + 'users-table' => [ + 'caption' => '{1} :userscount gebruiker in totaal|[2,*] :userscount gebruikers in totaal', + 'id' => 'ID', + 'name' => 'Naam', + 'email' => 'Email', + 'role' => 'Rol', + 'created' => 'Aangemaakt', + 'updated' => 'Gewijzigd', + 'actions' => 'Acties', + 'updated' => 'Gewijzigd', + ], + + 'buttons' => [ + 'create-new' => '', + 'delete' => ' ', + 'show' => ' ', + 'edit' => ' ', + 'back-to-users' => '', + 'back-to-user' => 'Terug ', + 'delete-user' => ' ', + 'edit-user' => ' ', + ], + + 'tooltips' => [ + 'delete' => 'Verwijderen', + 'show' => 'Tonen', + 'edit' => 'Wijzigen', + 'create-new' => 'Nieuwe Gebruiker Aanmaken', + 'back-user' => 'Terug naar Gebruiker', + 'back-users' => 'Terug naar Gebruikers', + 'email-user' => 'Email :user', + 'submit-search' => 'Zoekterm Toepassen', + 'clear-search' => 'Zoekresultaten Wissen', + ], + + 'messages' => [ + 'userNameTaken' => 'Gebruikersnaam is in gebruik', + 'userNameRequired' => 'Gebruikersnaam is verplicht', + 'fNameRequired' => 'Voornaam is verplicht', + 'lNameRequired' => 'Achternaam is verplicht', + 'emailRequired' => 'Email is verplicht', + 'emailInvalid' => 'Email is onjuist', + 'passwordRequired' => 'Wachtwoord is verplicht', + 'PasswordMin' => 'Wachtwoord moet uit ten minste 6 tekens bestaan', + 'PasswordMax' => 'Wachtwoord mag niet langer dan 20 tekens zijn', + 'captchaRequire' => 'Captcha is verplicht', + 'CaptchaWrong' => 'Foute captcha, probeer het opnieuw.', + 'roleRequired' => 'Gebruikersrol is verplicht.', + 'user-creation-success' => 'Gebruiker succesvol aangemaakt!', + 'update-user-success' => 'Gebruiker succesvol gewijzigd!', + 'delete-success' => 'Gebruiker succesvol verwijderd!', + 'cannot-delete-yourself' => 'U kunt uw eigen gebruiker niet verwijderen!', + ], + + 'show-user' => [ + 'id' => 'Gebruiker ID', + 'name' => 'Gebruikersnaam', + 'email' => 'Email', + 'role' => 'Gebruikersrol', + 'created' => 'Aangemaakt ', + 'updated' => 'Gewijzigd ', + 'labelRole' => 'Gebruikersrol', + 'labelAccessLevel' => 'Toegangsniveau|Toegangsniveaus', + ], + + 'search' => [ + 'title' => 'Tonen Zoekresultaten', + 'found-footer' => ' Item(s) gevonden', + 'no-results' => 'Geen Resultaten', + ], +]; diff --git a/src/resources/lang/nl/modals.php b/src/resources/lang/nl/modals.php new file mode 100644 index 0000000..f0e145f --- /dev/null +++ b/src/resources/lang/nl/modals.php @@ -0,0 +1,31 @@ + 'Opslaan Bevestigen', + 'confirm_modal_title_std_msg' => 'Bevestig uw aanvraag.', + + // Confirm Save Modal; + 'confirm_modal_button_save_text' => 'Wijzigingen Opslaan', + 'confirm_modal_button_save_icon' => 'fa-save', + 'confirm_modal_button_cancel_text' => 'Annuleren', + 'confirm_modal_button_cancel_icon' => 'fa-times', + 'edit_user__modal_text_confirm_title' => 'Opslaan Bevestigen', + 'edit_user__modal_text_confirm_message' => 'Bevestig uw wijzigingen.', + + // Delete Modal + 'delete_user_title' => 'Gebruiker verwijderen', + 'delete_user_message' => 'Weet u zeker dat u gebruiker :user wilt verwijderen?', + 'delete_user_btn_cancel' => ' Annuleren', + 'delete_user_btn_confirm' => ' Verwijder Gebruiker', +]; diff --git a/src/resources/lang/pt-br/app.php b/src/resources/lang/pt-br/app.php new file mode 100755 index 0000000..a6471a6 --- /dev/null +++ b/src/resources/lang/pt-br/app.php @@ -0,0 +1,19 @@ + [ + 'toggle-nav-alt' => 'Alterar Navegação', + 'login' => 'Login', + 'register' => 'Registrar', + 'users' => 'Usuários', + 'logout' => 'Sair', + ], + +]; diff --git a/src/resources/lang/pt-br/forms.php b/src/resources/lang/pt-br/forms.php new file mode 100755 index 0000000..e2379fd --- /dev/null +++ b/src/resources/lang/pt-br/forms.php @@ -0,0 +1,96 @@ + 'Email do usuário', + 'create_user_ph_email' => 'Email do usuário', + 'create_user_icon_email' => 'fa-envelope', + + 'create_user_label_username' => 'Apelido', + 'create_user_ph_username' => 'Apelido', + 'create_user_icon_username' => 'fa-user', + + 'create_user_label_firstname' => 'Nome', + 'create_user_ph_firstname' => 'Nome', + 'create_user_icon_firstname' => 'fa-user', + + 'create_user_label_lastname' => 'Sobrenome', + 'create_user_ph_lastname' => 'Sobrenome', + 'create_user_icon_lastname' => 'fa-user', + + 'create_user_label_password' => 'Senha', + 'create_user_ph_password' => 'Senha', + 'create_user_icon_password' => 'fa-lock', + + 'create_user_label_pw_confirmation' => 'Confirmação de Senha', + 'create_user_ph_pw_confirmation' => 'Confirmação de Senha', + 'create_user_icon_pw_confirmation' => 'fa-lock', + + 'create_user_label_location' => 'Localização do Usuário', + 'create_user_ph_location' => 'Localização do Usuário', + 'create_user_icon_location' => 'fa-map-marker', + + 'create_user_label_bio' => 'Informações do Usuário', + 'create_user_ph_bio' => 'Informações do Usuário', + 'create_user_icon_bio' => 'fa-pencil', + + 'create_user_label_twitter_username' => 'Usuário do Twitter ', + 'create_user_ph_twitter_username' => 'Usuário do Twitter ', + 'create_user_icon_twitter_username' => 'fa-twitter', + + 'create_user_label_github_username' => 'Usuário do GitHub ', + 'create_user_ph_github_username' => 'Usuário do GitHub ', + 'create_user_icon_github_username' => 'fa-github', + + 'create_user_label_career_title' => 'Ocupação', + 'create_user_ph_career_title' => 'Ocupação', + 'create_user_icon_career_title' => 'fa-briefcase', + + 'create_user_label_education' => 'Educação', + 'create_user_ph_education' => 'Educação', + 'create_user_icon_education' => 'fa-graduation-cap', + + 'create_user_label_role' => 'Nível de Acesso do Usuário', + 'create_user_ph_role' => 'Selecionar Nível de Acesso do Usuário', + 'create_user_icon_role' => 'fas fa-fw fas fa-shield-alt', + + 'create_user_button_text' => ' Criar Novo Usuário', + + // EDIT USER AS ADMINISTRATOR FORM + 'edit-user-admin-title' => 'Editar Informações do Usuário', + + 'label-username' => 'Apelido', + 'ph-username' => 'Apelido', + + 'label-useremail' => 'Email do usuário', + 'ph-useremail' => 'Email do usuário', + + 'label-userrole_id' => 'Nível de Acesso do Usuário', + 'option-label' => 'Selecionar Nível do Usuário', + 'option-user' => 'Usuário', + 'option-editor' => 'Editor', + 'option-admin' => 'Administrador', + 'submit-btn-text' => 'Editar o Usuário!', + + 'submit-btn-icon' => 'fa-save', + 'username-icon' => 'fa-user', + 'useremail-icon' => 'fa-envelope-o', + + 'change-pw' => 'Mudar Senha', + 'cancel' => 'Cancelar', + 'save-changes' => ' Salvar Mudanças', + + // Search Users Form + 'search-users-ph' => 'Procurar Usuários', + +]; diff --git a/src/resources/lang/pt-br/laravelusers.php b/src/resources/lang/pt-br/laravelusers.php new file mode 100755 index 0000000..1abd579 --- /dev/null +++ b/src/resources/lang/pt-br/laravelusers.php @@ -0,0 +1,89 @@ + 'Mostrar Todos os Usuários', + 'users-menu-alt' => 'Show Users Management Menu', + 'create-new-user' => 'Criar Novo Usuário', + 'show-deleted-users' => 'Mostrar Usuários Deletados', + 'editing-user' => 'Editar Usuário :name', + 'showing-user' => 'Mostrar Usuáriod :name', + 'showing-user-title' => ':name\'s Informação', + + 'users-table' => [ + 'caption' => '{1} :userscount user total|[2,*] :userscount Total de Usuários', + 'id' => 'ID', + 'name' => 'Nome', + 'email' => 'Email', + 'role' => 'Nivel', + 'created' => 'Criando em:', + 'updated' => 'Atualizado em:', + 'actions' => 'Acões', + 'updated' => 'Atualizado em:', + ], + + 'buttons' => [ + 'create-new' => '', + 'delete' => ' ', + 'show' => ' ', + 'edit' => ' ', + 'back-to-users' => '', + 'back-to-user' => 'Back ', + 'delete-user' => ' ', + 'edit-user' => ' ', + ], + + 'tooltips' => [ + 'delete' => 'Deletar', + 'show' => 'Mostrar', + 'edit' => 'Editar', + 'create-new' => 'Criar Novo Usuário', + 'back-user' => 'Voltar para Usuário', + 'back-users' => 'Voltar para Usuários', + 'email-user' => 'Email :user', + 'submit-search' => 'Buscar Usuários', + 'clear-search' => 'Limpar Resultados', + ], + + 'messages' => [ + 'userNameTaken' => 'Apelido já existe', + 'userNameRequired' => 'Username é Obrigatório', + 'fNameRequired' => 'Nome é Obrigatório ', + 'lNameRequired' => 'Sobrenome é Obrigatório', + 'emailRequired' => 'Email é Obrigatório', + 'emailInvalid' => 'Email é inválido', + 'passwordRequired' => 'Senha é Obrigatório', + 'PasswordMin' => 'Senha com no minímo 6 caracteres', + 'PasswordMax' => 'Senha com tamanho maxímo de 20 caracteres', + 'captchaRequire' => 'Captcha é Obrigatório', + 'CaptchaWrong' => 'Captcha inválido, Por favor tente novamente.', + 'roleRequired' => 'Nível de Usuário é Obrigatório.', + 'user-creation-success' => 'Sucesso usuário criado created user!', + 'update-user-success' => 'Sucesso usuário atualizado!', + 'delete-success' => 'Sucesso usuário deletado !', + 'cannot-delete-yourself' => 'Você não pode se apagar!', + ], + + 'show-user' => [ + 'id' => 'User ID', + 'name' => 'Username', + 'email' => 'Email', + 'role' => 'Nível de Acesso', + 'created' => 'Criado ', + 'updated' => 'Atualizado ', + 'labelRole' => 'Tipo de Usuário', + 'labelAccessLevel' => ' Nível de Acesso| Níveis de Acesso', + ], + + 'search' => [ + 'title' => 'Mostrar Resultados da Pesquisa', + 'found-footer' => ' Registro(s) encontrado(s)', + 'no-results' => 'Não a Resultados', + ], +]; diff --git a/src/resources/lang/pt-br/modals.php b/src/resources/lang/pt-br/modals.php new file mode 100755 index 0000000..c203f54 --- /dev/null +++ b/src/resources/lang/pt-br/modals.php @@ -0,0 +1,31 @@ + 'Deseja mesmo Salvar?', + 'confirm_modal_title_std_msg' => 'Por favor confirme.', + + // Confirm Save Modal; + 'confirm_modal_button_save_text' => 'Salvar Mudanças', + 'confirm_modal_button_save_icon' => 'fa-save', + 'confirm_modal_button_cancel_text' => 'Cancelar', + 'confirm_modal_button_cancel_icon' => 'fa-times', + 'edit_user__modal_text_confirm_title' => 'Confirmar Salvar', + 'edit_user__modal_text_confirm_message' => 'Por favor confirme suas mudanças!', + + // Delete Modal + 'delete_user_title' => 'Apagar Usuário', + 'delete_user_message' => 'Deseja mesmo apagar o usuário :user?', + 'delete_user_btn_cancel' => ' Cancelar', + 'delete_user_btn_confirm' => ' Apagar o Usuário', +]; diff --git a/src/resources/views/layouts/app.blade.php b/src/resources/views/layouts/app.blade.php old mode 100644 new mode 100755 index 2a02809..8039aa6 --- a/src/resources/views/layouts/app.blade.php +++ b/src/resources/views/layouts/app.blade.php @@ -1,5 +1,5 @@ - + @@ -10,49 +10,17 @@ @if (trim($__env->yieldContent('template_title')))@yield('template_title') | @endif {{ config('app.name', 'Laravel') }} - - - - - - - + {{-- Styles --}} + @if(config('laravelusers.enableBootstrapCssCdn')) + + @endif + @if(config('laravelusers.enableAppCss')) + + @endif @yield('template_linked_css') - + {{-- Scripts --}} - + @endif + @if(config('laravelusers.enableBootstrapPopperJsCdn')) + + @endif + @if(config('laravelusers.enableBootstrapJsCdn')) + + @endif + @if(config('laravelusers.enableAppJs')) + + @endif + @include('laravelusers::scripts.toggleText') - @yield('template_scripts') + diff --git a/src/resources/views/modals/modal-delete.blade.php b/src/resources/views/modals/modal-delete.blade.php old mode 100644 new mode 100755 index 4938fc1..cd7db0d --- a/src/resources/views/modals/modal-delete.blade.php +++ b/src/resources/views/modals/modal-delete.blade.php @@ -1,17 +1,24 @@ -