├── .gitignore ├── src ├── Views │ ├── admin │ │ ├── partials │ │ │ ├── footer.blade.php │ │ │ ├── topbar.blade.php │ │ │ ├── javascripts.blade.php │ │ │ ├── header.blade.php │ │ │ └── sidebar.blade.php │ │ ├── dashboard.blade.php │ │ ├── layouts │ │ │ └── master.blade.php │ │ ├── roles │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ └── index.blade.php │ │ └── users │ │ │ ├── index.blade.php │ │ │ ├── create.blade.php │ │ │ └── edit.blade.php │ ├── emails │ │ └── password.blade.php │ ├── qa │ │ ├── logs │ │ │ └── index.blade.php │ │ └── menus │ │ │ ├── createParent.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── createCustom.blade.php │ │ │ └── index.blade.php │ ├── auth │ │ ├── password.blade.php │ │ ├── login.blade.php │ │ └── reset.blade.php │ └── templates │ │ └── menu_field_line.blade.php ├── Public │ └── quickadmin │ │ ├── css │ │ ├── close.png │ │ ├── textext.core.css │ │ └── textext.plugin.tags.css │ │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ │ ├── images │ │ └── sidebar_toggler_icon_default.png │ │ └── js │ │ └── main.js ├── Translations │ ├── ru │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── admin.php │ │ ├── templates.php │ │ └── qa.php │ ├── en │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── templates.php │ │ ├── qa.php │ │ └── admin.php │ ├── pt_BR │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── admin.php │ │ ├── templates.php │ │ └── qa.php │ ├── fr │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── templates.php │ │ ├── qa.php │ │ └── admin.php │ ├── my │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── templates.php │ │ ├── qa.php │ │ └── admin.php │ └── es │ │ ├── emails.php │ │ ├── strings.php │ │ ├── auth.php │ │ ├── templates.php │ │ ├── qa.php │ │ └── admin.php ├── Templates │ ├── fields │ │ ├── file │ │ ├── radio │ │ ├── password │ │ ├── email │ │ ├── money │ │ ├── text │ │ ├── date │ │ ├── enum │ │ ├── checkbox │ │ ├── datetime │ │ ├── relationship │ │ ├── textarea │ │ └── photo │ ├── customController │ ├── customView_index │ ├── request │ ├── migration │ ├── model │ ├── view_create │ ├── view_edit │ ├── controller │ └── view_index ├── Controllers │ ├── QuickadminController.php │ ├── publish │ │ ├── Controller │ │ ├── ResetPasswordController │ │ ├── ForgotPasswordController │ │ ├── LoginController │ │ ├── PasswordController │ │ ├── RegisterController │ │ ├── AuthController │ │ ├── RolesController │ │ ├── UsersController │ │ ├── UsersController.txt │ │ └── FileUploadTrait │ └── UserActionsController.php ├── Models │ ├── UsersLogs.php │ ├── Role.php │ ├── publish │ │ ├── Role │ │ └── User │ └── Menu.php ├── Middleware │ └── HasPermissions.php ├── Migrations │ ├── 2015_10_10_000000_create_roles_table │ ├── 2015_10_10_000000_update_users_table │ ├── 2015_12_11_000000_create_users_logs_table │ ├── 2015_10_10_000000_create_menus_table │ └── 2016_03_14_000000_update_menus_table ├── Events │ └── UserLoginEvents.php ├── Config │ └── quickadmin.php ├── Observers │ └── UserActionsObserver.php ├── Traits │ └── AdminPermissionsTrait.php ├── Cache │ └── QuickCache.php ├── Fields │ └── FieldsDescriber.php ├── Commands │ └── QuickAdminInstall.php ├── routes.php ├── Builders │ └── MigrationBuilder.php └── QuickadminServiceProvider.php ├── composer.json ├── license.md └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /src/Views/admin/partials/footer.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Public/quickadmin/css/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/css/close.png -------------------------------------------------------------------------------- /src/Views/emails/password.blade.php: -------------------------------------------------------------------------------- 1 | {{ trans('quickadmin::emails.password-reset_your_password') }} {{ url('password/reset/'.$token) }} -------------------------------------------------------------------------------- /src/Public/quickadmin/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/Public/quickadmin/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/Public/quickadmin/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/Public/quickadmin/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/Public/quickadmin/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/Translations/ru/emails.php: -------------------------------------------------------------------------------- 1 | 'Нажать для сброса пароля:', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Translations/en/emails.php: -------------------------------------------------------------------------------- 1 | 'Click here to reset your password:', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Public/quickadmin/images/sidebar_toggler_icon_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LaravelDaily/quickadmin/HEAD/src/Public/quickadmin/images/sidebar_toggler_icon_default.png -------------------------------------------------------------------------------- /src/Translations/pt_BR/emails.php: -------------------------------------------------------------------------------- 1 | 'Click no link para redefinir sua senha:', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Views/admin/dashboard.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 | {{ trans('quickadmin::admin.dashboard-title') }} 6 | 7 | @endsection -------------------------------------------------------------------------------- /src/Translations/fr/emails.php: -------------------------------------------------------------------------------- 1 | 'Cliquer ici pour changer votre mot de passe :', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Translations/my/emails.php: -------------------------------------------------------------------------------- 1 | 'Klik bagi menetapkan semula kata laluan anda:', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Translations/es/emails.php: -------------------------------------------------------------------------------- 1 | 'Haz clic en el vínculo para recuperar tu contraseña:', 6 | 7 | ]; -------------------------------------------------------------------------------- /src/Templates/fields/file: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::file('$LABEL$') !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/radio: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::radio('$LABEL$', $VALUE$, false) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/password: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::password('$LABEL$', array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/email: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::email('$LABEL$', old('$LABEL$'), array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/money: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::text('$LABEL$', old('$LABEL$'), array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/text: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::text('$LABEL$', old('$LABEL$'), array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/date: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::text('$LABEL$', old('$LABEL$'), array('class'=>'form-control datepicker')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/enum: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::select('$LABEL$', $$LABEL$, old('$LABEL$'), array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/checkbox: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::hidden('$LABEL$','') !!} 5 | {!! Form::checkbox('$LABEL$', 1, $STATE$) !!} 6 | $HELPER$ 7 |
8 |
-------------------------------------------------------------------------------- /src/Templates/fields/datetime: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::text('$LABEL$', old('$LABEL$'), array('class'=>'form-control datetimepicker')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/relationship: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::select('$LABEL$', $SELECT$, old('$LABEL$'), array('class'=>'form-control')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/textarea: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::textarea('$LABEL$', old('$LABEL$'), array('class'=>'form-control$TEXTEDITOR$')) !!} 5 | $HELPER$ 6 |
7 |
-------------------------------------------------------------------------------- /src/Templates/fields/photo: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label('$LABEL$', '$TITLE$', array('class'=>'col-sm-2 control-label')) !!} 3 |
4 | {!! Form::file('$LABEL$') !!} 5 | {!! Form::hidden('$LABEL$_w', $WIDTH$) !!} 6 | {!! Form::hidden('$LABEL$_h', $HEIGHT$) !!} 7 | $HELPER$ 8 |
9 |
-------------------------------------------------------------------------------- /src/Templates/customController: -------------------------------------------------------------------------------- 1 | hasOne(config('quickadmin.userModel'), 'id', 'user_id'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Templates/customView_index: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |
{{ trans('quickadmin::templates.templates-customView_index-list') }}
8 |
9 |
10 | {{ trans('quickadmin::templates.templates-customView_index-welcome_custom_view') }} 11 |
12 |
13 | 14 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/Controller: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.11/i18n/English.json', 9 | 10 | // strings 11 | 'yes' => 'Yes', 12 | 'no' => 'No', 13 | 'optional' => 'Optional', 14 | 'required' => 'Required', 15 | 'required_unique' => 'Required unique', 16 | 'default_unchecked' => 'Default unchecked', 17 | 'default_checked' => 'Default checked' 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Translations/my/strings.php: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.11/i18n/English.json', 9 | 10 | // strings 11 | 'yes' => 'Ya', 12 | 'no' => 'Tidak', 13 | 'optional' => 'Tidak wajib', 14 | 'required' => 'Wajib diisi', 15 | 'required_unique' => 'Harus unik', 16 | 'default_unchecked' => 'Lalai; tidak bertanda', 17 | 'default_checked' => 'Lalai; bertanda' 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Translations/fr/strings.php: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.12/i18n/French.json', 9 | 10 | // strings 11 | 'yes' => 'Oui', 12 | 'no' => 'Non', 13 | 'optional' => 'Optionnel', 14 | 'required' => 'Obligatoire', 15 | 'required_unique' => 'Obligatoire & Unique', 16 | 'default_unchecked' => 'Décochée par défaut', 17 | 'default_checked' => 'Cochée par défaut' 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Translations/es/strings.php: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.12/i18n/Spanish.json', 9 | 10 | // strings 11 | 'yes' => 'Si', 12 | 'no' => 'No', 13 | 'optional' => 'Opcional', 14 | 'required' => 'Requerido', 15 | 'required_unique' => 'Requerido como único', 16 | 'default_unchecked' => 'Destildado por defecto', 17 | 'default_checked' => 'Tildado por defecto' 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Translations/ru/strings.php: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.11/i18n/Russian.json', 9 | 10 | // strings 11 | 'yes' => 'Да', 12 | 'no' => 'Нет', 13 | 'optional' => 'Необязательно', 14 | 'required' => 'Обязательно', 15 | 'required_unique' => 'Уникально обязательно', 16 | 'default_unchecked' => 'По умолчанию выключено', 17 | 'default_checked' => 'По умолчанию включено' 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Translations/pt_BR/strings.php: -------------------------------------------------------------------------------- 1 | '//cdn.datatables.net/plug-ins/1.10.11/i18n/Portuguese-Brasil.json', 9 | 10 | // strings 11 | 'yes' => 'Sim', 12 | 'no' => 'Não', 13 | 'optional' => 'Opcional', 14 | 'required' => 'Requerido', 15 | 'required_unique' => 'Requerido como Único', 16 | 'default_unchecked' => 'Desmarcado como padrão', 17 | 'default_checked' => 'Marcado como padrão', 18 | 19 | ]; -------------------------------------------------------------------------------- /src/Controllers/UserActionsController.php: -------------------------------------------------------------------------------- 1 | orderBy('id', 'desc'))->make(true); 23 | } 24 | } -------------------------------------------------------------------------------- /src/Middleware/HasPermissions.php: -------------------------------------------------------------------------------- 1 | user() != null && $request->user()->permissionCan($request)) { 21 | return $next($request); 22 | } 23 | 24 | abort(403); 25 | 26 | return false; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/Templates/migration: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('title'); 18 | $table->timestamps(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | * 25 | * @return void 26 | */ 27 | public function down() 28 | { 29 | Schema::drop('roles'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Models/Role.php: -------------------------------------------------------------------------------- 1 | belongsToMany(Menu::class); 16 | } 17 | 18 | public function canAccessMenu($menu) 19 | { 20 | if ($menu instanceof Menu) { 21 | $menu = $menu->id; 22 | } 23 | 24 | if (! isset($this->relation_ids['menus'])) { 25 | $this->relation_ids['menus'] = $this->menus()->pluck('id')->flip()->all(); 26 | } 27 | 28 | return isset($this->relation_ids['menus'][$menu]); 29 | } 30 | } -------------------------------------------------------------------------------- /src/Models/publish/Role: -------------------------------------------------------------------------------- 1 | belongsToMany(Menu::class); 17 | } 18 | 19 | public function canAccessMenu($menu) 20 | { 21 | if ($menu instanceof Menu) { 22 | $menu = $menu->id; 23 | } 24 | 25 | if (! isset($this->relation_ids['menus'])) { 26 | $this->relation_ids['menus'] = $this->menus()->pluck('id')->flip()->all(); 27 | } 28 | 29 | return isset($this->relation_ids['menus'][$menu]); 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /src/Public/quickadmin/css/textext.core.css: -------------------------------------------------------------------------------- 1 | .text-core { 2 | position: relative; 3 | } 4 | .text-core .text-wrap { 5 | background: #fff; 6 | position: absolute; 7 | } 8 | .text-core .text-wrap textarea, 9 | .text-core .text-wrap input { 10 | -webkit-box-sizing: border-box; 11 | -moz-box-sizing: border-box; 12 | box-sizing: border-box; 13 | -webkit-border-radius: 0px; 14 | -moz-border-radius: 0px; 15 | border-radius: 0px; 16 | border: 1px solid #9daccc; 17 | outline: none; 18 | resize: none; 19 | position: absolute; 20 | z-index: 1; 21 | background: none; 22 | overflow: hidden; 23 | margin: 0; 24 | padding: 3px 5px 4px 5px; 25 | white-space: nowrap; 26 | font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; 27 | line-height: 13px; 28 | height: auto; 29 | } 30 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laraveldaily/quickadmin", 3 | "description": "Package for creating adminpanel in Laravel 5", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "ModestasV", 8 | "email": "info@modestasv.lt" 9 | }, 10 | { 11 | "name": "PovilasKorop", 12 | "email": "povilas@laraveldaily.com" 13 | } 14 | ], 15 | "version": "6.0.0", 16 | "require": { 17 | "laravel/framework": "5.8.*", 18 | "laravelcollective/html": "^5.4", 19 | "intervention/image": "^2.3", 20 | "yajra/laravel-datatables-oracle": "^6.18" 21 | }, 22 | "classmap": [ 23 | "src/Controllers", 24 | "src/Cache", 25 | "src/Models" 26 | ], 27 | "autoload": { 28 | "psr-4": { 29 | "Laraveldaily\\Quickadmin\\": "src/" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Migrations/2015_10_10_000000_update_users_table: -------------------------------------------------------------------------------- 1 | integer('role_id')->nullable()->after('id')->references('id')->on('roles'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | * 23 | * @return void 24 | */ 25 | public function down() 26 | { 27 | Schema::table('users', function (Blueprint $table) { 28 | $table->dropColumn('role_id'); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Views/admin/partials/topbar.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Translations/en/auth.php: -------------------------------------------------------------------------------- 1 | 'Oops !', 6 | 'some_problems_with_input' => 'there are some problems with input!', 7 | 8 | // auth-login 9 | 'login-login' => 'Login', 10 | 'login-email' => 'Email', 11 | 'login-password' => 'Password', 12 | 'login-remember_me' => 'Remember Me', 13 | 'login-btnlogin' => 'Log In', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'Reset password', 17 | 'password-email' => 'Email', 18 | 'password-btnsend_password' => 'Send Password Reset Link', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Reset password', 22 | 'reset-email' => 'Email', 23 | 'reset-password' => 'Password', 24 | 'reset-confirm_password' => 'Confirm password', 25 | 'reset-btnreset_password' => 'Reset password', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Translations/ru/auth.php: -------------------------------------------------------------------------------- 1 | 'Ууупс!', 6 | 'some_problems_with_input' => 'Заметили проблемы с вводом!', 7 | 8 | // auth-login 9 | 'login-login' => 'Логин', 10 | 'login-email' => 'Email', 11 | 'login-password' => 'Пароль', 12 | 'login-remember_me' => 'Запомнить меня', 13 | 'login-btnlogin' => 'Войти', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'Сбросить пароль', 17 | 'password-email' => 'Email', 18 | 'password-btnsend_password' => 'Отправит ссылку на восстановление пароля', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Сбросить пароль', 22 | 'reset-email' => 'Email', 23 | 'reset-password' => 'Пароль', 24 | 'reset-confirm_password' => 'Подтвердить пароль', 25 | 'reset-btnreset_password' => 'Сбросить пароль', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Translations/pt_BR/auth.php: -------------------------------------------------------------------------------- 1 | 'Oops !', 6 | 'some_problems_with_input' => 'Aconteceu algum problema com os dados informados.', 7 | 8 | // auth-login 9 | 'login-login' => 'Entrar', 10 | 'login-email' => 'Email', 11 | 'login-password' => 'Senha', 12 | 'login-remember_me' => 'Lembrar', 13 | 'login-btnlogin' => 'Conectar', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'Recuperação da Senha', 17 | 'password-email' => 'Email', 18 | 'password-send_password' => 'Enviar Link de Recuperação da Senha', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Redefinição de Senha', 22 | 'reset-email' => 'Email', 23 | 'reset-password' => 'Senha', 24 | 'reset-confirm_password' => 'Confirmação da Senha', 25 | 'reset-btnreset_password' => 'Redefinir a Senha', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Translations/my/auth.php: -------------------------------------------------------------------------------- 1 | 'Alamak !', 6 | 'some_problems_with_input' => 'ada masalah dengan input!', 7 | 8 | // auth-login 9 | 'login-login' => 'Log Masuk', 10 | 'login-email' => 'E-Mel', 11 | 'login-password' => 'Kata Laluan', 12 | 'login-remember_me' => 'Ingat saya', 13 | 'login-btnlogin' => 'Log Masuk', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'Tetap semula kata laluan', 17 | 'password-email' => 'E-Mel', 18 | 'password-btnsend_password' => 'Menghantar link tetapan semula kata laluan', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Tetap semula kata laluan', 22 | 'reset-email' => 'E-Mel', 23 | 'reset-password' => 'Kata Laluan', 24 | 'reset-confirm_password' => 'Sahkan Kata Laluan', 25 | 'reset-btnreset_password' => 'Tetap Semula Kata Laluan', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Translations/es/auth.php: -------------------------------------------------------------------------------- 1 | 'Uy!', 6 | 'some_problems_with_input' => '¡hay algunos problemas con el valor ingresado!', 7 | 8 | // auth-login 9 | 'login-login' => 'Iniciar sesión', 10 | 'login-email' => 'Email', 11 | 'login-password' => 'Contraseña', 12 | 'login-remember_me' => 'Recordarme', 13 | 'login-btnlogin' => 'Entrar', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'Recuperar contraseña', 17 | 'password-email' => 'Email', 18 | 'password-btnsend_password' => 'Enviar link de recuperación de contraseña', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Redefinir contraseña', 22 | 'reset-email' => 'Email', 23 | 'reset-password' => 'Contraseña', 24 | 'reset-confirm_password' => 'Confirmar contraseña', 25 | 'reset-btnreset_password' => 'Redefinir contraseña', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Migrations/2015_12_11_000000_create_users_logs_table: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->integer('user_id'); 18 | $table->string('action'); 19 | $table->string('action_model')->nullable(); 20 | $table->integer('action_id')->nullable(); 21 | $table->timestamps(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | * 28 | * @return void 29 | */ 30 | public function down() 31 | { 32 | Schema::drop('users_logs'); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Translations/fr/auth.php: -------------------------------------------------------------------------------- 1 | 'Oups !', 6 | 'some_problems_with_input' => 'Il y a un problème avec certains champs !', 7 | 8 | // auth-login 9 | 'login-login' => 'Identifiant', 10 | 'login-email' => 'Email', 11 | 'login-password' => 'Mot de passe', 12 | 'login-remember_me' => 'Se souvenir de moi', 13 | 'login-btnlogin' => 'Connexion', 14 | 15 | // auth-password 16 | 'password-reset_password' => 'J\'ai oublié mon mot de passe', 17 | 'password-email' => 'Email', 18 | 'password-btnsend_password' => 'Envoyer le lien de changement de mot de passe', 19 | 20 | // auth-reset 21 | 'reset-reset_password' => 'Changement de mot de passe', 22 | 'reset-email' => 'Email', 23 | 'reset-password' => 'Mot de passe', 24 | 'reset-confirm_password' => 'Confirmez le mot de passe', 25 | 'reset-btnreset_password' => 'Changer le mot de passe', 26 | 27 | ]; -------------------------------------------------------------------------------- /src/Events/UserLoginEvents.php: -------------------------------------------------------------------------------- 1 | Auth::user()->id, 24 | 'action' => 'login', 25 | ]); 26 | }); 27 | Event::listen('auth.logout', function ($event) { 28 | UsersLogs::create([ 29 | 'user_id' => Auth::user()->id, 30 | 'action' => 'logout', 31 | ]); 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Controllers/publish/ResetPasswordController: -------------------------------------------------------------------------------- 1 | middleware('guest'); 31 | } 32 | } -------------------------------------------------------------------------------- /src/Controllers/publish/ForgotPasswordController: -------------------------------------------------------------------------------- 1 | middleware('guest'); 31 | } 32 | } -------------------------------------------------------------------------------- /src/Templates/view_create: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::templates.templates-view_create-add_new') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all('
  • :message
  • ')) !!} 13 |
14 |
15 | @endif 16 |
17 |
18 | 19 | {!! Form::open(array($FILES$'route' => config('quickadmin.route').'.$ROUTE$.store', 'id' => 'form-with-validation', 'class' => 'form-horizontal')) !!} 20 | 21 | $FORMFIELDS$ 22 | 23 |
24 |
25 | {!! Form::submit( trans('quickadmin::templates.templates-view_create-create') , array('class' => 'btn btn-primary')) !!} 26 |
27 |
28 | 29 | {!! Form::close() !!} 30 | 31 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/LoginController: -------------------------------------------------------------------------------- 1 | redirectTo = config('quickadmin.route'); 31 | $this->middleware('guest', ['except' => 'logout']); 32 | } 33 | } -------------------------------------------------------------------------------- /src/Config/quickadmin.php: -------------------------------------------------------------------------------- 1 | 'Y-m-d', 11 | 'date_format_jquery' => 'yy-mm-dd', 12 | 'time_format' => 'H:i:s', 13 | 'time_format_jquery' => 'HH:mm:ss', 14 | 15 | /** 16 | * Quickadmin settings 17 | */ 18 | // Default route 19 | 'route' => 'admin', 20 | // Default home route 21 | 'homeRoute' => 'admin', 22 | 23 | //Default home action 24 | // 'homeAction' => '\App\Http\Controllers\MyOwnController@index', 25 | // Default role to access users and CRUD 26 | 'defaultRole' => 1, 27 | 28 | // If set to true, you'll need to copy the routes 29 | // from vendor/laraveldaily/quickadmin/src/routes.php into your own /routes folder 30 | 'standaloneRoutes' => false, 31 | 32 | // Used to define relationship with UserLogs 33 | 'userModel' => \App\User::class 34 | 35 | ]; 36 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2015 LaravelDaily 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 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. -------------------------------------------------------------------------------- /src/Migrations/2015_10_10_000000_create_menus_table: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->integer('position')->nullable(); 18 | $table->integer('menu_type')->default(1); 19 | $table->string('icon')->nullable(); 20 | $table->string('name')->unique(); 21 | $table->string('title'); 22 | $table->integer('parent_id')->nullable(); 23 | $table->string('roles')->nullable(); 24 | $table->timestamps(); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | * 31 | * @return void 32 | */ 33 | public function down() 34 | { 35 | Schema::drop('menus'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Controllers/publish/PasswordController: -------------------------------------------------------------------------------- 1 | redirectTo = config('quickadmin.homeRoute'); 33 | $this->middleware('guest'); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Observers/UserActionsObserver.php: -------------------------------------------------------------------------------- 1 | wasRecentlyCreated == true) { 14 | // Data was just created 15 | $action = 'created'; 16 | } else { 17 | // Data was updated 18 | $action = 'updated'; 19 | } 20 | if (Auth::check()) { 21 | UsersLogs::create([ 22 | 'user_id' => Auth::user()->id, 23 | 'action' => $action, 24 | 'action_model' => $model->getTable(), 25 | 'action_id' => $model->id 26 | ]); 27 | } 28 | } 29 | 30 | public function deleting($model) 31 | { 32 | if (Auth::check()) { 33 | UsersLogs::create([ 34 | 'user_id' => Auth::user()->id, 35 | 'action' => 'deleted', 36 | 'action_model' => $model->getTable(), 37 | 'action_id' => $model->id 38 | ]); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/Templates/view_edit: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::templates.templates-view_edit-edit') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all('
  • :message
  • ')) !!} 13 |
14 |
15 | @endif 16 |
17 |
18 | 19 | {!! Form::model($$MODEL$, array($FILES$'class' => 'form-horizontal', 'id' => 'form-with-validation', 'method' => 'PATCH', 'route' => array(config('quickadmin.route').'.$ROUTE$.update', $$RESOURCE$->id))) !!} 20 | 21 | $FORMFIELDS$ 22 | 23 |
24 |
25 | {!! Form::submit(trans('quickadmin::templates.templates-view_edit-update'), array('class' => 'btn btn-primary')) !!} 26 | {!! link_to_route(config('quickadmin.route').'.$ROUTE$.index', trans('quickadmin::templates.templates-view_edit-cancel'), null, array('class' => 'btn btn-default')) !!} 27 |
28 |
29 | 30 | {!! Form::close() !!} 31 | 32 | @endsection -------------------------------------------------------------------------------- /src/Views/admin/partials/javascripts.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 30 | -------------------------------------------------------------------------------- /src/Views/admin/layouts/master.blade.php: -------------------------------------------------------------------------------- 1 | @include('admin.partials.header') 2 | @include('admin.partials.topbar') 3 |
4 |
5 | 6 | @include('admin.partials.sidebar') 7 | 8 |
9 |
10 | 11 |

12 | {{ preg_replace('/([a-z0-9])?([A-Z])/','$1 $2',str_replace('Controller','',explode("@",class_basename(app('request')->route()->getAction()['controller']))[0])) }} 13 |

14 | 15 |
16 |
17 | 18 | @if (Session::has('message')) 19 |
20 |

{{ Session::get('message') }}

21 |
22 | @endif 23 | 24 | @yield('content') 25 | 26 |
27 |
28 | 29 |
30 |
31 |
32 | 33 | 37 | @include('admin.partials.javascripts') 38 | 39 | @yield('javascript') 40 | @include('admin.partials.footer') 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/Migrations/2016_03_14_000000_update_menus_table: -------------------------------------------------------------------------------- 1 | dropColumn('roles')->nullable(); 17 | }); 18 | Schema::create('menu_role', function (Blueprint $table) { 19 | $table->integer('menu_id')->unsigned()->index(); 20 | $table->foreign('menu_id')->references('id')->on('menus')->onDelete('cascade'); 21 | $table->integer('role_id')->unsigned()->index(); 22 | $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade'); 23 | $table->unique(['menu_id', 'role_id']); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | * 30 | * @return void 31 | */ 32 | public function down() 33 | { 34 | Schema::drop('menu_role'); 35 | Schema::table('menus', function (Blueprint $table) { 36 | $table->string('roles')->nullable()->after('parent_id'); 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/Traits/AdminPermissionsTrait.php: -------------------------------------------------------------------------------- 1 | route()->getName())) { 13 | return true; 14 | } 15 | list($role, $menu) = $this->parseData($request); 16 | 17 | if (is_int($menu)) { 18 | return $role == $menu; 19 | } 20 | 21 | return $menu->availableForRole($role); 22 | } 23 | 24 | /** 25 | * @param $request 26 | * 27 | * @return array 28 | */ 29 | private function parseData($request) 30 | { 31 | $role = $request->user()->role_id; 32 | $route = explode('.', $request->route()->getName()); 33 | $official = [ 34 | 'menu', 35 | 'users', 36 | 'roles', 37 | 'actions' 38 | ]; 39 | if (in_array($route[0], $official)) { 40 | return [$role, config('quickadmin.defaultRole')]; 41 | } else { 42 | $menuName = $route[1]; 43 | } 44 | $menu = Menu::where('name', ucfirst($menuName))->firstOrFail(); 45 | 46 | return [$role, $menu]; 47 | } 48 | } 49 | 50 | -------------------------------------------------------------------------------- /src/Views/admin/roles/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::admin.roles-create-create_role') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['route' => 'roles.store', 'class' => 'form-horizontal']) !!} 22 | 23 |
24 | {!! Form::label('title', trans('quickadmin::admin.roles-create-title'), ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::text('title', old('title'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.roles-create-title_placeholder')]) !!} 27 |
28 |
29 | 30 |
31 |
32 | {!! Form::submit(trans('quickadmin::admin.roles-create-btncreate'), ['class' => 'btn btn-primary']) !!} 33 |
34 |
35 | 36 | {!! Form::close() !!} 37 | 38 | @endsection 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/Models/Menu.php: -------------------------------------------------------------------------------- 1 | attributes['name'] = ucfirst(Str::camel($input)); 29 | } 30 | 31 | /** 32 | * Get children links 33 | * @return mixed 34 | */ 35 | public function children() 36 | { 37 | return $this->hasMany('Laraveldaily\Quickadmin\Models\Menu', 'parent_id', 'id')->orderBy('position'); 38 | } 39 | 40 | public function roles() 41 | { 42 | return $this->belongsToMany(Role::class); 43 | } 44 | 45 | public function availableForRole($role) 46 | { 47 | if ($role instanceof Role) { 48 | $role = $role->id; 49 | } 50 | 51 | if (! isset($this->relation_ids['roles'])) { 52 | $this->relation_ids['roles'] = $this->roles()->pluck('id')->flip()->all(); 53 | } 54 | 55 | return isset($this->relation_ids['roles'][$role]); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Views/admin/roles/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::admin.roles-edit-edit_role') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['route' => ['roles.update', $role->id], 'class' => 'form-horizontal', 'method' => 'PATCH']) !!} 22 | 23 |
24 | {!! Form::label('title', trans('quickadmin::admin.roles-edit-title'), ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::text('title', old('title', $role->title), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.roles-edit-title_placeholder')]) !!} 27 |
28 |
29 | 30 |
31 |
32 | {!! Form::submit(trans('quickadmin::admin.roles-edit-btnupdate'), ['class' => 'btn btn-primary']) !!} 33 |
34 |
35 | 36 | {!! Form::close() !!} 37 | 38 | @endsection 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/Public/quickadmin/css/textext.plugin.tags.css: -------------------------------------------------------------------------------- 1 | .text-core .text-wrap .text-tags { 2 | -webkit-box-sizing: border-box; 3 | -moz-box-sizing: border-box; 4 | box-sizing: border-box; 5 | position: absolute; 6 | width: 100%; 7 | height: 100%; 8 | padding: 3px 35px 3px 3px; 9 | cursor: text; 10 | } 11 | .text-core .text-wrap .text-tags.text-tags-on-top { 12 | z-index: 2; 13 | } 14 | .text-core .text-wrap .text-tags .text-tag { 15 | float: left; 16 | } 17 | .text-core .text-wrap .text-tags .text-tag .text-button { 18 | -webkit-border-radius: 2px; 19 | -moz-border-radius: 2px; 20 | border-radius: 2px; 21 | -webkit-box-sizing: border-box; 22 | -moz-box-sizing: border-box; 23 | box-sizing: border-box; 24 | position: relative; 25 | float: left; 26 | border: 1px solid #9daccc; 27 | background: #e2e6f0; 28 | color: #000; 29 | padding: 0px 17px 0px 3px; 30 | margin: 0 2px 2px 0; 31 | cursor: pointer; 32 | height: 16px; 33 | font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; 34 | } 35 | .text-core .text-wrap .text-tags .text-tag .text-button a.text-remove { 36 | position: absolute; 37 | right: 3px; 38 | top: 2px; 39 | display: block; 40 | width: 11px; 41 | height: 11px; 42 | background: url("close.png") 0 0 no-repeat; 43 | } 44 | .text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:hover { 45 | background-position: 0 -11px; 46 | } 47 | .text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:active { 48 | background-position: 0 -22px; 49 | } 50 | -------------------------------------------------------------------------------- /src/Models/publish/User: -------------------------------------------------------------------------------- 1 | belongsTo(Role::class); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Cache/QuickCache.php: -------------------------------------------------------------------------------- 1 | cacheDir = storage_path('framework'. DIRECTORY_SEPARATOR .'cache'. DIRECTORY_SEPARATOR); 15 | $this->files = new Filesystem(); 16 | if (!file_exists($this->cacheDir)) { 17 | mkdir($this->cacheDir); 18 | } 19 | } 20 | 21 | /** 22 | * Put information into cache file 23 | * 24 | * @param $filename 25 | * @param $content 26 | */ 27 | public function put($filename, $content) 28 | { 29 | // Merge existing content to new content 30 | if (file_exists($this->cacheDir . $filename) && file_get_contents($this->cacheDir . $filename) != '') { 31 | $cachedContent = $this->get($filename); 32 | $content = array_merge($content, $cachedContent); 33 | } 34 | $this->files->put($this->cacheDir . $filename, json_encode($content)); 35 | } 36 | 37 | /** 38 | * Get file contents 39 | * 40 | * @param $filename 41 | * 42 | * @return string 43 | * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException 44 | */ 45 | public function get($filename) 46 | { 47 | return (array) json_decode($this->files->get($this->cacheDir . $filename)); 48 | } 49 | 50 | /** 51 | * Delete cache file 52 | * 53 | * @param $filename 54 | */ 55 | public function destroy($filename) 56 | { 57 | $this->files->delete($this->cacheDir . $filename); 58 | } 59 | } -------------------------------------------------------------------------------- /src/Views/qa/logs/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |
{{ trans('quickadmin::qa.logs-index-list') }}
8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
{{ trans('quickadmin::qa.logs-index-user') }}{{ trans('quickadmin::qa.logs-index-action') }}{{ trans('quickadmin::qa.logs-index-action_model') }}{{ trans('quickadmin::qa.logs-index-action_id') }}{{ trans('quickadmin::qa.logs-index-time') }}
23 |
24 |
25 | 26 | @endsection 27 | 28 | @section('javascript') 29 | 46 | @stop -------------------------------------------------------------------------------- /src/Views/admin/partials/header.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{ trans('quickadmin::admin.partials-header-title') }} 8 | 9 | 10 | 12 | 14 | 16 | 17 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/Views/admin/users/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |

{!! link_to_route('users.create', trans('quickadmin::admin.users-index-add_new'), [], ['class' => 'btn btn-success']) !!}

6 | 7 | @if($users->count() > 0) 8 |
9 |
10 |
{{ trans('quickadmin::admin.users-index-users_list') }}
11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | @foreach ($users as $user) 23 | 24 | 25 | 31 | 32 | @endforeach 33 | 34 |
{{ trans('quickadmin::admin.users-index-name') }} 
{{ $user->name }} 26 | {!! link_to_route('users.edit', trans('quickadmin::admin.users-index-edit'), [$user->id], ['class' => 'btn btn-xs btn-info']) !!} 27 | {!! Form::open(['style' => 'display: inline-block;', 'method' => 'DELETE', 'onsubmit' => 'return confirm(\'' . trans('quickadmin::admin.users-index-are_you_sure') . '\');', 'route' => array('users.destroy', $user->id)]) !!} 28 | {!! Form::submit(trans('quickadmin::admin.users-index-delete'), array('class' => 'btn btn-xs btn-danger')) !!} 29 | {!! Form::close() !!} 30 |
35 |
36 |
37 | 38 | @else 39 | {{ trans('quickadmin::admin.users-index-no_entries_found') }} 40 | @endif 41 | 42 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/RegisterController: -------------------------------------------------------------------------------- 1 | middleware('guest'); 40 | } 41 | 42 | /** 43 | * Get a validator for an incoming registration request. 44 | * 45 | * @param array $data 46 | * @return \Illuminate\Contracts\Validation\Validator 47 | */ 48 | protected function validator(array $data) 49 | { 50 | return Validator::make($data, [ 51 | 'name' => 'required|max:255', 52 | 'email' => 'required|email|max:255|unique:users', 53 | 'password' => 'required|min:6|confirmed', 54 | ]); 55 | } 56 | 57 | /** 58 | * Create a new user instance after a valid registration. 59 | * 60 | * @param array $data 61 | * @return User 62 | */ 63 | protected function create(array $data) 64 | { 65 | return User::create([ 66 | 'name' => $data['name'], 67 | 'email' => $data['email'], 68 | 'password' => bcrypt($data['password']), 69 | ]); 70 | } 71 | } -------------------------------------------------------------------------------- /src/Translations/ru/admin.php: -------------------------------------------------------------------------------- 1 | 'Добро пожаловать', 6 | 7 | // partials-header 8 | 'partials-header-title' => 'QuickAdmin рус', 9 | 10 | // partials-sidebar 11 | 'partials-sidebar-menu' => 'Меню', 12 | 'partials-sidebar-users' => 'Пользователи', 13 | 'partials-sidebar-user-actions' => 'Действия пользователей', 14 | 'partials-sidebar-logout' => 'Выйти', 15 | 16 | // partials-topbar 17 | 'partials-topbar-title' => 'QuickAdmin рус', 18 | 19 | // users-create 20 | 'users-create-create_user' => 'Создать пользователя', 21 | 'users-create-name' => 'Логин', 22 | 'users-create-name_placeholder' => 'Логин', 23 | 'users-create-email' => 'Email', 24 | 'users-create-email_placeholder' => 'Email', 25 | 'users-create-password' => 'Пароль', 26 | 'users-create-password_placeholder' => 'Пароль', 27 | 'users-create-role' => 'Роль', 28 | 'users-create-btncreate' => 'Создать', 29 | 30 | // users-create 31 | 'users-edit-edit_user' => 'Редактировать пользователя', 32 | 'users-edit-name' => 'Логин', 33 | 'users-edit-name_placeholder' => 'Логин', 34 | 'users-edit-email' => 'Email', 35 | 'users-edit-email_placeholder' => 'Email', 36 | 'users-edit-password' => 'Пароль', 37 | 'users-edit-password_placeholder' => 'Пароль', 38 | 'users-edit-role' => 'Роль', 39 | 'users-edit-btnupdate' => 'Обновить', 40 | 41 | // users-index 42 | 'users-index-add_new' => 'Создать', 43 | 'users-index-users_list' => 'Список пользователей', 44 | 'users-index-name' => 'Логин', 45 | 'users-index-edit' => 'Редактировать', 46 | 'users-index-delete' => 'Удалить', 47 | 'users-index-are_you_sure' => 'Вы уверены?', 48 | 'users-index-no_entries_found' => 'Пользователь на заходил', 49 | 50 | // users-controller 51 | 'users-controller-successfully_created' => 'Пользователь успешно создан!', 52 | 'users-controller-successfully_updated' => 'Пользователь успешно отредактирован!', 53 | 'users-controller-successfully_deleted' => 'Пользователь успешно удален!', 54 | 55 | ]; -------------------------------------------------------------------------------- /src/Views/admin/roles/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |

{!! link_to_route('roles.create', trans('quickadmin::admin.roles-index-add_new'), [], ['class' => 'btn btn-success']) !!}

6 | 7 | @if($roles->count() > 0) 8 |
9 |
10 |
{{ trans('quickadmin::admin.roles-index-roles_list') }}
11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | @foreach ($roles as $role) 23 | 24 | 25 | 31 | 32 | @endforeach 33 | 34 |
{{ trans('quickadmin::admin.roles-index-title') }} 
{{ $role->title }} 26 | {!! link_to_route('roles.edit', trans('quickadmin::admin.roles-index-edit'), [$role->id], ['class' => 'btn btn-xs btn-info']) !!} 27 | {!! Form::open(['style' => 'display: inline-block;', 'method' => 'DELETE', 'onsubmit' => 'return confirm(\'' . trans('quickadmin::admin.roles-index-are_you_sure') . '\');', 'route' => ['roles.destroy', $role->id]]) !!} 28 | {!! Form::submit(trans('quickadmin::admin.roles-index-delete'), ['class' => 'btn btn-xs btn-danger']) !!} 29 | {!! Form::close() !!} 30 |
35 |
36 |
37 | 38 | @else 39 | {{ trans('quickadmin::admin.roles-index-no_entries_found') }} 40 | @endif 41 | 42 | @endsection 43 | 44 | -------------------------------------------------------------------------------- /src/Translations/pt_BR/admin.php: -------------------------------------------------------------------------------- 1 | 'Seja Bem vindo ao Painel de Controle do seu projeto', 6 | 7 | // partials-header 8 | 'partials-header-title' => 'QuickAdmin pt_BR', 9 | 10 | // admin-partials-sidebar 11 | 'partials-sidebar-menu' => 'Menu', 12 | 'partials-sidebar-users' => 'Usuários', 13 | 'partials-sidebar-user-actions' => 'Ações dos Usuários', 14 | 'partials-sidebar-logout' => 'Desconectar', 15 | 16 | // admin-partials-topbar 17 | 'partials-topbar-title' => 'QuickAdmin pt_BR', 18 | 19 | // users-create 20 | 'users-create-create_user' => 'Inclusão de Usuário', 21 | 'users-create-name' => 'Nome', 22 | 'users-create-name_placeholder' => 'Nome', 23 | 'users-create-email' => 'E-mail', 24 | 'users-create-email_placeholder' => 'E-mail', 25 | 'users-create-password' => 'Senha', 26 | 'users-create-password_placeholder' => 'Senha', 27 | 'users-create-role' => 'Papel', 28 | 'users-create-btncreate' => 'Incluir', 29 | 30 | // users-edit 31 | 'users-edit-edit_user' => 'Alteração de Usuário', 32 | 'users-edit-name' => 'Nome', 33 | 'users-edit-name_placeholder' => 'Nome', 34 | 'users-edit-email' => 'E-mail', 35 | 'users-edit-email_placeholder' => 'E-mail', 36 | 'users-edit-password' => 'Senha', 37 | 'users-edit-password_placeholder' => 'Senha', 38 | 'users-edit-role' => 'Papel', 39 | 'users-edit-btnupdate' => 'Alterar', 40 | 41 | // users-index 42 | 'users-index-add_new' => 'Incluir', 43 | 'users-index-users_list' => 'Lista de Usuários', 44 | 'users-index-name' => 'Nome', 45 | 'users-index-edit' => 'Editar', 46 | 'users-index-delete' => 'Excluir', 47 | 'users-index-are_you_sure' => 'Tem certeza?', 48 | 'users-index-no_entries_found' => 'Nenhum registro encontrado', 49 | 50 | // users-controller 51 | 'users-controller-successfully_created' => 'Usuário foi criado com êxito!', 52 | 'users-controller-successfully_updated' => 'Usuário foi atualizado com sucesso !', 53 | 'users-controller-successfully_deleted' => 'Usuário foi excluído com sucesso!', 54 | 55 | ]; -------------------------------------------------------------------------------- /src/Controllers/publish/AuthController: -------------------------------------------------------------------------------- 1 | redirectAfterLogout = config('quickadmin.homeRoute'); 36 | $this->middleware('guest', ['except' => 'getLogout']); 37 | } 38 | 39 | /** 40 | * Get a validator for an incoming registration request. 41 | * 42 | * @param array $data 43 | * 44 | * @return \Illuminate\Contracts\Validation\Validator 45 | */ 46 | protected function validator(array $data) 47 | { 48 | return Validator::make($data, [ 49 | 'name' => 'required|max:255', 50 | 'email' => 'required|email|max:255|unique:users', 51 | 'password' => 'required|confirmed|min:6', 52 | ]); 53 | } 54 | 55 | /** 56 | * Create a new user instance after a valid registration. 57 | * 58 | * @param array $data 59 | * 60 | * @return User 61 | */ 62 | protected function create(array $data) 63 | { 64 | return User::create([ 65 | 'name' => $data['name'], 66 | 'email' => $data['email'], 67 | 'password' => bcrypt($data['password']), 68 | ]); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/Translations/en/templates.php: -------------------------------------------------------------------------------- 1 | 'Field DB name', 6 | 'templates-menu_field_line-size_limit' => 'File size limit (in MB)', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'File size limit (in MB)', 8 | 'templates-menu_field_line-maximum_width' => 'File maximum width:', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'File maximum width', 10 | 'templates-menu_field_line-maximum_height' => 'File maximum height:', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'File maximum height', 12 | 'templates-menu_field_line-value' => 'Value', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'Don\'t use CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Use CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Select relationship', 16 | 'templates-menu_field_line-enum_values' => 'ENUM values: (comma separated)', 17 | 'templates-menu_field_line-enum_values_placeholder' => 'ENUM values (comma separated)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Field visual title', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Optional additional comment below the field', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'List', 23 | 'templates-customView_index-welcome_custom_view' => 'Welcome to your custom view', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Add new', 27 | 'templates-view_create-create' => 'Create', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Edit', 31 | 'templates-view_edit-update' => 'Update', 32 | 'templates-view_edit-cancel' => 'Cancel', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Add new', 36 | 'templates-view_index-list' => 'List', 37 | 'templates-view_index-edit' => 'Edit', 38 | 'templates-view_index-delete' => 'Delete', 39 | 'templates-view_index-delete_checked' => 'Delete checked', 40 | 'templates-view_index-confirm_deletion2' => 'Confirm deletion?', 41 | 'templates-view_index-no_entries_found' => 'No entries found.', 42 | 'templates-view_index-are_you_sure' => 'Are you sure?', 43 | 44 | ]; -------------------------------------------------------------------------------- /src/Translations/my/templates.php: -------------------------------------------------------------------------------- 1 | 'Nama Field DB', 6 | 'templates-menu_field_line-size_limit' => 'Had saiz fail (dalama MB)', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'Had saiz fail (dalama MB)', 8 | 'templates-menu_field_line-maximum_width' => 'Maksimum lebar:', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'Maksimum lebar', 10 | 'templates-menu_field_line-maximum_height' => 'Maksimum panjang:', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'Maksimum panjang', 12 | 'templates-menu_field_line-value' => 'Nilai', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'Tanpa CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Gunakan CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Pilih "relationship"', 16 | 'templates-menu_field_line-enum_values' => 'Nilai ENUM : (dipisahkan oleh koma)', 17 | 'templates-menu_field_line-enum_values_placeholder' => 'NilaiENUM (dipisahkan oleh koma)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Paparan judul "field"', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Komentar sekiranya diperlukan', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'Senarai', 23 | 'templates-customView_index-welcome_custom_view' => 'Selamat datang ke "View Anda"', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Tambah baharu', 27 | 'templates-view_create-create' => 'Ciptakan', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Ubahsuai', 31 | 'templates-view_edit-update' => 'Kemaskini', 32 | 'templates-view_edit-cancel' => 'Batalkan', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Tambah baharu', 36 | 'templates-view_index-list' => 'Senarai', 37 | 'templates-view_index-edit' => 'Ubahsuai', 38 | 'templates-view_index-delete' => 'Buang', 39 | 'templates-view_index-delete_checked' => 'Buang yang dipilih', 40 | 'templates-view_index-confirm_deletion2' => 'Anda pasti untuk dibuang?', 41 | 'templates-view_index-no_entries_found' => 'Tiada catatan ditemui.', 42 | 'templates-view_index-are_you_sure' => 'Anda pasti?', 43 | 44 | ]; -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## Current state 2 | 3 | __IMPORTANT__: This package is not actively maintained and probably won't work with newest Laravel versions. 4 | 5 | Our focus switched to __online__ adminpanel generator version - no packages required there, no syntax to learn, it generates Laravel project for you: [QuickAdminPanel.com](https://quickadminpanel.com) 6 | 7 | We've also recently released Vue.js+Laravel version of generator: [Vue.QuickAdminPanel.com](https://vue.quickadminpanel.com) 8 | 9 | Finally, see free alternatives in our article on Laravel News: [13 Laravel Admin Panel Generators](https://laravel-news.com/13-laravel-admin-panel-generators) 10 | 11 | 12 | ## QuickAdmin installation 13 | 14 | ### Please note: QuickAdmin requires fresh Laravel installation and is not suitable for use on already existing project. 15 | 16 | 1. Install the package via `composer require laraveldaily/quickadmin`. 17 | 2. Add `Laraveldaily\Quickadmin\QuickadminServiceProvider::class,` to your `\config\app.php` providers **after `App\Providers\RouteServiceProvider::class,`** otherwise you will not be able to add new ones to freshly generated controllers. 18 | 3. Configure your .env file with correct database information 19 | 4. Run `php artisan quickadmin:install` and fill the required information. 20 | 5. Register middleware `'role' => \Laraveldaily\Quickadmin\Middleware\HasPermissions::class,` in your `App\Http\Kernel.php` at `$routeMiddleware` 21 | 6. Access QuickAdmin panel by visiting `http://yourdomain/admin`. 22 | 23 | ## More information and detailed description 24 | [http://laraveldaily.com/packages/quickadmin/](http://laraveldaily.com/packages/quickadmin/) 25 | 26 | ## License 27 | The MIT License (MIT). Please see [License File](license.md) for more information. 28 | 29 | --- 30 | 31 | ## More from our LaravelDaily Team 32 | 33 | - Check out our adminpanel generator QuickAdminPanel: [Laravel version](https://quickadminpanel.com) and [Vue.js version](https://vue.quickadminpanel.com) 34 | - Follow our [Twitter](https://twitter.com/dailylaravel) and [Blog](http://laraveldaily.com/blog) 35 | - Subscribe to our [newsletter with 20+ Laravel links every Thursday](http://laraveldaily.com/weekly-laravel-newsletter/) 36 | - Subscribe to our [YouTube channel Laravel Business](https://www.youtube.com/channel/UCTuplgOBi6tJIlesIboymGA) 37 | -------------------------------------------------------------------------------- /src/Translations/pt_BR/templates.php: -------------------------------------------------------------------------------- 1 | 'Nome do Campo no DB', 6 | 'templates-menu_field_line-size_limit' => 'Limite do Arquivo (em MB)', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'Limite do Arquivo (em MB)', 8 | 'templates-menu_field_line-maximum_width' => 'Largura máxima do arquivo:', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'Largura máxima do arquivo', 10 | 'templates-menu_field_line-maximum_height' => 'Altura máxima do arquivo:', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'Altura máxima do arquivo', 12 | 'templates-menu_field_line-value' => 'Valor', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'Não usar CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Usar CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Selec. Relacionamento', 16 | 'templates-menu_field_line-enum_values' => 'ENUM valores: (separados por vírgulas)', 17 | 'templates-menu_field_line-enum_values_placeholder' => '(separados por vírgulas)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Título do campo', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Comentário Adicional', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'Lista', 23 | 'templates-customView_index-welcome_custom_view' => 'Bem-vindo a sua exibição personalizada.', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Adicionar novo', 27 | 'templates-view_create-create' => 'Incluir', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Alterar', 31 | 'templates-view_edit-update' => 'Atualizar', 32 | 'templates-view_edit-cancel' => 'Cancelar', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Adicionar novo', 36 | 'templates-view_index-list' => 'Lista', 37 | 'templates-view_index-edit' => 'Alterar', 38 | 'templates-view_index-delete' => 'Excluir', 39 | 'templates-view_index-delete_checked' => 'Excluir os Marcados', 40 | 'templates-view_index-confirm_deletion' => 'Confirma exclusão?', 41 | 'templates-view_index-no_entries_found' => 'Nenhum registro encontrada .', 42 | 'templates-view_index-are_you_sure' => 'Você tem certeza?', 43 | 44 | ]; -------------------------------------------------------------------------------- /src/Translations/ru/templates.php: -------------------------------------------------------------------------------- 1 | 'Наименование поля в БД', 6 | 'templates-menu_field_line-size_limit' => 'Ограничение размера файла (в Мб):', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'Ограничение размера файла (в Мб)', 8 | 'templates-menu_field_line-maximum_width' => 'Максимальная ширина:', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'Максимальная ширина', 10 | 'templates-menu_field_line-maximum_height' => 'Максимальная высота:', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'Максимальная высота', 12 | 'templates-menu_field_line-value' => 'Значение', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'Не использовать CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Использовать CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Выбрать связи', 16 | 'templates-menu_field_line-enum_values' => 'Перечисление значений: (разделитель - запятая)', 17 | 'templates-menu_field_line-enum_values_placeholder' => 'Перечисление значений: (разделитель - запятая)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Поля заголовка', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Дополнительный комментарий к полю', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'Список', 23 | 'templates-customView_index-welcome_custom_view' => 'Добро пожаловать', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Добавить новый', 27 | 'templates-view_create-create' => 'Создать', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Редактировать', 31 | 'templates-view_edit-update' => 'Обновить', 32 | 'templates-view_edit-cancel' => 'Отмена', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Добавить', 36 | 'templates-view_index-list' => 'Список', 37 | 'templates-view_index-edit' => 'Редактировать', 38 | 'templates-view_index-delete' => 'Удалить', 39 | 'templates-view_index-delete_checked' => 'Удалить отметку', 40 | 'templates-view_index-confirm_deletion2' => 'Действительно хотите удалить?', 41 | 'templates-view_index-no_entries_found' => 'Ничего не найдено.', 42 | 'templates-view_index-are_you_sure' => 'Уверены?', 43 | 44 | ]; -------------------------------------------------------------------------------- /src/Translations/es/templates.php: -------------------------------------------------------------------------------- 1 | 'Nombre del campo en la BD', 6 | 'templates-menu_field_line-size_limit' => 'Límite de tamaño de archivo (en MB)', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'Límite de tamaño de archivo (en MB)', 8 | 'templates-menu_field_line-maximum_width' => 'Ancho máximo del archivo:', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'Ancho máximo del archivo', 10 | 'templates-menu_field_line-maximum_height' => 'Alto máximo del archivo:', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'Alto máximo del archivo', 12 | 'templates-menu_field_line-value' => 'Valor', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'No usar CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Usar CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Seleccionar relación', 16 | 'templates-menu_field_line-enum_values' => 'Valores ENUM: (separados por coma)', 17 | 'templates-menu_field_line-enum_values_placeholder' => 'Valores ENUM (separados por coma)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Título del campo', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Comentario adicional', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'Lista', 23 | 'templates-customView_index-welcome_custom_view' => 'Bienvenido a su vista personalizada', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Agregar nuevo', 27 | 'templates-view_create-create' => 'Crear', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Editar', 31 | 'templates-view_edit-update' => 'Actualizar', 32 | 'templates-view_edit-cancel' => 'Cancelar', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Agregar nuevo', 36 | 'templates-view_index-list' => 'Lista', 37 | 'templates-view_index-edit' => 'Editar', 38 | 'templates-view_index-delete' => 'Eliminar', 39 | 'templates-view_index-delete_checked' => 'Eliminar elementos seleccionados', 40 | 'templates-view_index-confirm_deletion2' => '¿Seguro desea eliminar?', 41 | 'templates-view_index-no_entries_found' => 'No se encontraron registros.', 42 | 'templates-view_index-are_you_sure' => '¿Estás seguro?', 43 | 44 | ]; -------------------------------------------------------------------------------- /src/Translations/fr/templates.php: -------------------------------------------------------------------------------- 1 | 'Champ BDD', 6 | 'templates-menu_field_line-size_limit' => 'Limite de taille du fichier (en MB)', 7 | 'templates-menu_field_line-size_limit_placeholder' => 'Limite de taille du fichier (en MB)', 8 | 'templates-menu_field_line-maximum_width' => 'Taille maximale (largeur) :', 9 | 'templates-menu_field_line-maximum_width_placeholder' => 'Taille maximale (largeur)', 10 | 'templates-menu_field_line-maximum_height' => 'Taille maximale (hauteur) :', 11 | 'templates-menu_field_line-maximum_height_placeholder' => 'Taille maximale (hauteur)', 12 | 'templates-menu_field_line-value' => 'Valeur', 13 | 'templates-menu_field_line-dont_use_ckeditor' => 'Ne pas utiliser CKEDITOR', 14 | 'templates-menu_field_line-use_ckeditor' => 'Utilier CKEDITOR', 15 | 'templates-menu_field_line-select_relationship' => 'Sélectionner une relation', 16 | 'templates-menu_field_line-enum_values' => 'Valeurs ENUM : (séparées par des virgules)', 17 | 'templates-menu_field_line-enum_values_placeholder' => 'Valeurs ENUM values (séparées par des virgules)', 18 | 'templates-menu_field_line-field_visual_title_placeholder' => 'Titre du champ', 19 | 'templates-menu_field_line-comment_below_placeholder' => 'Commentaire du champ (optionnel)', 20 | 21 | // templates-customView_index 22 | 'templates-customView_index-list' => 'Lister', 23 | 'templates-customView_index-welcome_custom_view' => 'Bienvenue sur votre vue personnalisée', 24 | 25 | // templates-view_create 26 | 'templates-view_create-add_new' => 'Ajouter un nouveau', 27 | 'templates-view_create-create' => 'Créer', 28 | 29 | // templates-view_create 30 | 'templates-view_edit-edit' => 'Éditer', 31 | 'templates-view_edit-update' => 'Mettre à jour', 32 | 'templates-view_edit-cancel' => 'Annuler', 33 | 34 | // templates-view_index 35 | 'templates-view_index-add_new' => 'Ajouter un nouveau', 36 | 'templates-view_index-list' => 'Lister', 37 | 'templates-view_index-edit' => 'Éditer', 38 | 'templates-view_index-delete' => 'Supprimer', 39 | 'templates-view_index-delete_checked' => 'Supprimer les choix', 40 | 'templates-view_index-confirm_deletion2' => 'Confirmer la suppression ?', 41 | 'templates-view_index-no_entries_found' => 'Aucun résultats.', 42 | 'templates-view_index-are_you_sure' => 'Êtes-vous sûr ?', 43 | 44 | ]; -------------------------------------------------------------------------------- /src/Views/qa/menus/createParent.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::qa.menus-createParent-create_new_parent') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['class' => 'form-horizontal']) !!} 22 | 23 |
24 | {!! Form::label('title', trans('quickadmin::qa.menus-createParent-parent_title'), ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::text('title', old('title'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-createParent-parent_title_placeholder')]) !!} 27 |
28 |
29 | 30 |
31 | {!! Form::label('roles', trans('quickadmin::qa.menus-createParent-roles') , ['class'=>'col-sm-2 control-label']) !!} 32 |
33 | @foreach($roles as $role) 34 |
35 | 39 |
40 | @endforeach 41 |
42 |
43 | 44 |
45 | {!! Form::label('icon', trans('quickadmin::qa.menus-createParent-icon') , ['class'=>'col-sm-2 control-label']) !!} 46 |
47 | {!! Form::text('icon', old('icon','fa-database'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-createParent-icon_placeholder')]) !!} 48 |
49 |
50 | 51 |
52 |
53 | {!! Form::submit( trans('quickadmin::qa.menus-createParent-create_parent') , ['class' => 'btn btn-primary']) !!} 54 |
55 |
56 | 57 | {!! Form::close() !!} 58 | 59 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/RolesController: -------------------------------------------------------------------------------- 1 | roles = $roles; 18 | } 19 | 20 | /** 21 | * Show a list of roles 22 | * @return \Illuminate\View\View 23 | */ 24 | public function index() 25 | { 26 | $roles = $this->roles->get(); 27 | 28 | return view('admin.roles.index', compact('roles')); 29 | } 30 | 31 | /** 32 | * Show a page of user creation 33 | * @return \Illuminate\View\View 34 | */ 35 | public function create() 36 | { 37 | return view('admin.roles.create'); 38 | } 39 | 40 | /** 41 | * Insert new role into the system 42 | * 43 | * @param Request $request 44 | * 45 | * @return \Illuminate\Http\RedirectResponse 46 | */ 47 | public function store(Request $request) 48 | { 49 | $this->roles->create($request->only('title')); 50 | 51 | return redirect()->route('roles.index')->withMessage(trans('quickadmin::admin.roles-controller-successfully_created')); 52 | } 53 | 54 | /** 55 | * Show a role edit page 56 | * 57 | * @param $id 58 | * 59 | * @return \Illuminate\View\View 60 | */ 61 | public function edit($id) 62 | { 63 | $role = $this->roles->findOrFail($id); 64 | 65 | return view('admin.roles.edit', compact('role')); 66 | } 67 | 68 | /** 69 | * Update our role information 70 | * 71 | * @param Request $request 72 | * @param $id 73 | * 74 | * @return \Illuminate\Http\RedirectResponse 75 | */ 76 | public function update(Request $request, $id) 77 | { 78 | $this->roles->findOrFail($id)->update($request->only('title')); 79 | 80 | return redirect()->route('roles.index')->withMessage(trans('quickadmin::admin.roles-controller-successfully_updated')); 81 | } 82 | 83 | /** 84 | * Destroy specific role 85 | * 86 | * @param $id 87 | * 88 | * @return \Illuminate\Http\RedirectResponse 89 | */ 90 | public function destroy($id) 91 | { 92 | $this->roles->findOrFail($id)->delete(); 93 | 94 | return redirect()->route('roles.index')->withMessage(trans('quickadmin::admin.roles-controller-successfully_deleted')); 95 | } 96 | } 97 | 98 | -------------------------------------------------------------------------------- /src/Views/admin/users/create.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::admin.users-create-create_user') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['route' => 'users.store', 'class' => 'form-horizontal']) !!} 22 | 23 |
24 | {!! Form::label('name', trans('quickadmin::admin.users-create-name'), ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::text('name', old('name'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-create-name_placeholder')]) !!} 27 |
28 |
29 | 30 |
31 | {!! Form::label('email', trans('quickadmin::admin.users-create-email'), ['class'=>'col-sm-2 control-label']) !!} 32 |
33 | {!! Form::email('email', old('email'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-create-email_placeholder')]) !!} 34 |
35 |
36 | 37 |
38 | {!! Form::label('password', trans('quickadmin::admin.users-create-password'), ['class'=>'col-sm-2 control-label']) !!} 39 |
40 | {!! Form::password('password', ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-create-password_placeholder')]) !!} 41 |
42 |
43 | 44 |
45 | {!! Form::label('role_id', trans('quickadmin::admin.users-create-role'), ['class'=>'col-sm-2 control-label']) !!} 46 |
47 | {!! Form::select('role_id', $roles, old('role_id'), ['class'=>'form-control']) !!} 48 |
49 |
50 | 51 |
52 |
53 | {!! Form::submit(trans('quickadmin::admin.users-create-btncreate'), ['class' => 'btn btn-primary']) !!} 54 |
55 |
56 | 57 | {!! Form::close() !!} 58 | 59 | @endsection 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/Views/admin/users/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::admin.users-edit-edit_user') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['route' => ['users.update', $user->id], 'class' => 'form-horizontal', 'method' => 'PATCH']) !!} 22 | 23 |
24 | {!! Form::label('name', trans('quickadmin::admin.users-edit-name'), ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::text('name', old('name', $user->name), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-edit-name_placeholder')]) !!} 27 |
28 |
29 | 30 |
31 | {!! Form::label('email', trans('quickadmin::admin.users-edit-email'), ['class'=>'col-sm-2 control-label']) !!} 32 |
33 | {!! Form::email('email', old('email', $user->email), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-edit-email_placeholder')]) !!} 34 |
35 |
36 | 37 |
38 | {!! Form::label('password', trans('quickadmin::admin.users-edit-password'), ['class'=>'col-sm-2 control-label']) !!} 39 |
40 | {!! Form::password('password', ['class'=>'form-control', 'placeholder'=> trans('quickadmin::admin.users-edit-password_placeholder')]) !!} 41 |
42 |
43 | 44 |
45 | {!! Form::label('role_id', trans('quickadmin::admin.users-edit-role'), ['class'=>'col-sm-2 control-label']) !!} 46 |
47 | {!! Form::select('role_id', $roles, old('role_id', $user->role_id), ['class'=>'form-control']) !!} 48 |
49 |
50 | 51 |
52 |
53 | {!! Form::submit(trans('quickadmin::admin.users-edit-btnupdate'), ['class' => 'btn btn-primary']) !!} 54 |
55 |
56 | 57 | {!! Form::close() !!} 58 | 59 | @endsection 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/Views/auth/password.blade.php: -------------------------------------------------------------------------------- 1 | @include('admin.partials.header') 2 |
3 |
4 |
5 |
6 |
7 |
{{ trans('quickadmin::auth.password-reset_password') }}
8 |
9 | @if (count($errors) > 0) 10 |
11 | {{ trans('quickadmin::auth.whoops') }} {{ trans('quickadmin::auth.some_problems_with_input') }} 12 |

13 |
    14 | @foreach ($errors->all() as $error) 15 |
  • {{ $error }}
  • 16 | @endforeach 17 |
18 |
19 | @endif 20 | 21 |
25 | 28 | 29 |
30 | 31 | 32 |
33 | 37 |
38 |
39 | 40 |
41 |
42 | 47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | @include('admin.partials.footer') 56 | -------------------------------------------------------------------------------- /src/Controllers/publish/UsersController: -------------------------------------------------------------------------------- 1 | all(); 44 | $input['password'] = Hash::make($input['password']); 45 | $user = User::create($input); 46 | 47 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_created')); 48 | } 49 | 50 | /** 51 | * Show a user edit page 52 | * 53 | * @param $id 54 | * 55 | * @return \Illuminate\View\View 56 | */ 57 | public function edit($id) 58 | { 59 | $user = User::findOrFail($id); 60 | $roles = Role::pluck('title', 'id'); 61 | 62 | return view('admin.users.edit', compact('user', 'roles')); 63 | } 64 | 65 | /** 66 | * Update our user information 67 | * 68 | * @param Request $request 69 | * @param $id 70 | * 71 | * @return \Illuminate\Http\RedirectResponse 72 | */ 73 | public function update(Request $request, $id) 74 | { 75 | $user = User::findOrFail($id); 76 | $input = $request->all(); 77 | $input['password'] = Hash::make($input['password']); 78 | $user->update($input); 79 | 80 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_updated')); 81 | } 82 | 83 | /** 84 | * Destroy specific user 85 | * 86 | * @param $id 87 | * 88 | * @return \Illuminate\Http\RedirectResponse 89 | */ 90 | public function destroy($id) 91 | { 92 | $user = User::findOrFail($id); 93 | User::destroy($id); 94 | 95 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_deleted')); 96 | } 97 | } -------------------------------------------------------------------------------- /src/Views/qa/menus/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::qa.menus-edit-edit_menu_information') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['class' => 'form-horizontal']) !!} 22 | 23 | @if($menu->menu_type != 2) 24 |
25 | {!! Form::label('parent_id', trans('quickadmin::qa.menus-edit-parent'), ['class'=>'col-sm-2 control-label']) !!} 26 |
27 | {!! Form::select('parent_id', $parentsSelect, old('parent_id', $menu->parent_id), ['class'=>'form-control']) !!} 28 |
29 |
30 | @endif 31 | 32 |
33 | {!! Form::label('title', trans('quickadmin::qa.menus-edit-title'), ['class'=>'col-sm-2 control-label']) !!} 34 |
35 | {!! Form::text('title', old('title',$menu->title), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-edit-title_placeholder')]) !!} 36 |
37 |
38 | 39 |
40 | {!! Form::label('roles', trans('quickadmin::qa.menus-edit-roles'), ['class'=>'col-sm-2 control-label']) !!} 41 |
42 | @foreach($roles as $role) 43 |
44 | 48 |
49 | @endforeach 50 |
51 |
52 | 53 |
54 | {!! Form::label('icon', trans('quickadmin::qa.menus-edit-icon'), ['class'=>'col-sm-2 control-label']) !!} 55 |
56 | {!! Form::text('icon', old('icon',$menu->icon), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-edit-icon_placeholder')]) !!} 57 |
58 |
59 | 60 |
61 |
62 | {!! Form::submit( trans('quickadmin::qa.menus-edit-update'), ['class' => 'btn btn-primary']) !!} 63 |
64 |
65 | 66 | {!! Form::close() !!} 67 | 68 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/UsersController.txt: -------------------------------------------------------------------------------- 1 | all(); 44 | $input['password'] = Hash::make($input['password']); 45 | $user = User::create($input); 46 | 47 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_created')); 48 | } 49 | 50 | /** 51 | * Show a user edit page 52 | * 53 | * @param $id 54 | * 55 | * @return \Illuminate\View\View 56 | */ 57 | public function edit($id) 58 | { 59 | $user = User::findOrFail($id); 60 | $roles = Role::pluck('title', 'id'); 61 | 62 | return view('admin.users.edit', compact('user', 'roles')); 63 | } 64 | 65 | /** 66 | * Update our user information 67 | * 68 | * @param Request $request 69 | * @param $id 70 | * 71 | * @return \Illuminate\Http\RedirectResponse 72 | */ 73 | public function update(Request $request, $id) 74 | { 75 | $user = User::findOrFail($id); 76 | $input = $request->all(); 77 | if ($request->input('password') != '') { 78 | $input['password'] = Hash::make($input['password']); 79 | } else { 80 | unset($input['password']); 81 | } 82 | $user->update($input); 83 | 84 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_updated')); 85 | } 86 | 87 | /** 88 | * Destroy specific user 89 | * 90 | * @param $id 91 | * 92 | * @return \Illuminate\Http\RedirectResponse 93 | */ 94 | public function destroy($id) 95 | { 96 | $user = User::findOrFail($id); 97 | User::destroy($id); 98 | 99 | return redirect()->route('users.index')->withMessage(trans('quickadmin::admin.users-controller-successfully_deleted')); 100 | } 101 | } -------------------------------------------------------------------------------- /src/Fields/FieldsDescriber.php: -------------------------------------------------------------------------------- 1 | 'Text field', 14 | 'email' => 'Email field', 15 | 'textarea' => 'Long text field', 16 | 'radio' => 'Radio', 17 | 'checkbox' => 'Checkbox', 18 | 'date' => 'Date picker', 19 | 'datetime' => 'Date and time picker', 20 | 'relationship' => 'Relationship', 21 | 'file' => 'File field', 22 | 'photo' => 'Photo field', 23 | 'password' => 'Password field (hashed)', 24 | 'money' => 'Money', 25 | 'enum' => 'ENUM', 26 | ]; 27 | } 28 | 29 | /** 30 | * Default QuickAdmin field validation types 31 | * @return array 32 | */ 33 | public static function validation() 34 | { 35 | return [ 36 | 'optional' => trans('quickadmin::strings.optional'), 37 | 'required' => trans('quickadmin::strings.required'), 38 | 'required|unique' => trans('quickadmin::strings.required_unique') 39 | ]; 40 | } 41 | 42 | /** 43 | * Set fields to be nullable by default if validation is not in this array 44 | * @return array 45 | */ 46 | public static function nullables() 47 | { 48 | return [ 49 | 'optional', 50 | ]; 51 | } 52 | 53 | /** 54 | * Default QuickAdmin field types for migration 55 | * @return array 56 | */ 57 | public static function migration() 58 | { 59 | return [ 60 | 'text' => 'string("$FIELDNAME$")', 61 | 'email' => 'string("$FIELDNAME$")', 62 | 'textarea' => 'text("$FIELDNAME$")', 63 | 'radio' => 'string("$FIELDNAME$")', 64 | 'checkbox' => 'tinyInteger("$FIELDNAME$")->default($STATE$)', 65 | 'date' => 'date("$FIELDNAME$")', 66 | 'datetime' => 'dateTime("$FIELDNAME$")', 67 | 'relationship' => 'integer("$RELATIONSHIP$_id")->references("id")->on("$RELATIONSHIP$")', 68 | 'file' => 'string("$FIELDNAME$")', 69 | 'photo' => 'string("$FIELDNAME$")', 70 | 'password' => 'string("$FIELDNAME$")', 71 | 'money' => 'decimal("$FIELDNAME$", 15, 2)', 72 | 'enum' => 'enum("$FIELDNAME$", [$VALUES$])', 73 | ]; 74 | } 75 | 76 | /** 77 | * Default QuickAdmin state for checkbox 78 | * @return array 79 | */ 80 | public static function default_cbox() 81 | { 82 | return [ 83 | 'false' => trans('quickadmin::strings.default_unchecked'), 84 | 'true' => trans('quickadmin::strings.default_checked'), 85 | ]; 86 | } 87 | } -------------------------------------------------------------------------------- /src/Templates/controller: -------------------------------------------------------------------------------- 1 | all()); 52 | 53 | return redirect()->route(config('quickadmin.route').'.$COLLECTION$.index'); 54 | } 55 | 56 | /** 57 | * Show the form for editing the specified $RESOURCE$. 58 | * 59 | * @param int $id 60 | * @return \Illuminate\View\View 61 | */ 62 | public function edit($id) 63 | { 64 | $$RESOURCE$ = $MODEL$::find($id); 65 | $RELATIONSHIPS$ 66 | $ENUM$ 67 | return view('admin.$COLLECTION$.edit', compact('$RESOURCE$'$RELATIONSHIP_COMPACT_EDIT$)); 68 | } 69 | 70 | /** 71 | * Update the specified $RESOURCE$ in storage. 72 | * @param $UPDATEREQUESTNAME$|Request $request 73 | * 74 | * @param int $id 75 | */ 76 | public function update($id, $UPDATEREQUESTNAME$ $request) 77 | { 78 | $$RESOURCE$ = $MODEL$::findOrFail($id); 79 | 80 | $FILESAVING$ 81 | 82 | $$RESOURCE$->update($request->all()); 83 | 84 | return redirect()->route(config('quickadmin.route').'.$COLLECTION$.index'); 85 | } 86 | 87 | /** 88 | * Remove the specified $RESOURCE$ from storage. 89 | * 90 | * @param int $id 91 | */ 92 | public function destroy($id) 93 | { 94 | $MODEL$::destroy($id); 95 | 96 | return redirect()->route(config('quickadmin.route').'.$COLLECTION$.index'); 97 | } 98 | 99 | /** 100 | * Mass delete function from index page 101 | * @param Request $request 102 | * 103 | * @return mixed 104 | */ 105 | public function massDelete(Request $request) 106 | { 107 | if ($request->get('toDelete') != 'mass') { 108 | $toDelete = json_decode($request->get('toDelete')); 109 | $MODEL$::destroy($toDelete); 110 | } else { 111 | $MODEL$::whereNotNull('id')->delete(); 112 | } 113 | 114 | return redirect()->route(config('quickadmin.route').'.$COLLECTION$.index'); 115 | } 116 | 117 | } 118 | -------------------------------------------------------------------------------- /src/Views/qa/menus/createCustom.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 |

{{ trans('quickadmin::qa.menus-createCustom-create_new_custom_controller') }}

8 | 9 | @if ($errors->any()) 10 |
11 |
    12 | {!! implode('', $errors->all(' 13 |
  • :message
  • 14 | ')) !!} 15 |
16 |
17 | @endif 18 |
19 |
20 | 21 | {!! Form::open(['class' => 'form-horizontal']) !!} 22 | 23 |
24 | {!! Form::label('parent_id', trans('quickadmin::qa.menus-createCustom-menu_parent') , ['class'=>'col-sm-2 control-label']) !!} 25 |
26 | {!! Form::select('parent_id', $parentsSelect, old('parent_id'), ['class'=>'form-control']) !!} 27 |
28 |
29 | 30 |
31 | {!! Form::label('name', trans('quickadmin::qa.menus-createCustom-controller_name'), ['class'=>'col-sm-2 control-label']) !!} 32 |
33 | {!! Form::text('name', old('name'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-createCustom-controller_name_placeholder')]) !!} 34 |
35 |
36 | 37 |
38 | {!! Form::label('title', trans('quickadmin::qa.menus-createCustom-menu_title'), ['class'=>'col-sm-2 control-label']) !!} 39 |
40 | {!! Form::text('title', old('title'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-createCustom-menu_title_placeholder')]) !!} 41 |
42 |
43 | 44 |
45 | {!! Form::label('roles', trans('quickadmin::qa.menus-createCustom-roles'), ['class'=>'col-sm-2 control-label']) !!} 46 |
47 | @foreach($roles as $role) 48 |
49 | 53 |
54 | @endforeach 55 |
56 |
57 | 58 |
59 | {!! Form::label('icon', trans('quickadmin::qa.menus-createCustom-icon'), ['class'=>'col-sm-2 control-label']) !!} 60 |
61 | {!! Form::text('icon', old('icon','fa-database'), ['class'=>'form-control', 'placeholder'=> trans('quickadmin::qa.menus-createCustom-icon_placeholder')]) !!} 62 |
63 |
64 | 65 |
66 |
67 | {!! Form::submit(trans('quickadmin::qa.menus-createCustom-create_controller'), ['class' => 'btn btn-primary']) !!} 68 |
69 |
70 | 71 | {!! Form::close() !!} 72 | 73 | @endsection -------------------------------------------------------------------------------- /src/Controllers/publish/FileUploadTrait: -------------------------------------------------------------------------------- 1 | all() as $key => $value) { 22 | if ($request->hasFile($key)) { 23 | if ($request->has($key . '_w') && $request->has($key . '_h')) { 24 | // Check file width 25 | $filename = time() . '-' . $request->file($key)->getClientOriginalName(); 26 | $file = $request->file($key); 27 | $image = Image::make($file); 28 | Image::make($file)->resize(50, 50)->save(public_path('uploads/thumb') . '/' . $filename); 29 | $width = $image->width(); 30 | $height = $image->height(); 31 | if ($width > $request->{$key . '_w'} && $height > $request->{$key . '_h'}) { 32 | $image->resize($request->{$key . '_w'}, $request->{$key . '_h'}); 33 | } elseif ($width > $request->{$key . '_w'}) { 34 | $image->resize($request->{$key . '_w'}, null, function ($constraint) { 35 | $constraint->aspectRatio(); 36 | }); 37 | } elseif ($height > $request->{$key . '_w'}) { 38 | $image->resize(null, $request->{$key . '_h'}, function ($constraint) { 39 | $constraint->aspectRatio(); 40 | }); 41 | } 42 | $image->save(public_path('uploads') . '/' . $filename); 43 | // Determine which request's data to use further 44 | $requestDataToMerge = $newRequest == null ? $request->all() : $newRequest->all(); 45 | // Create new request without changing the original one (prevents removal of specific metadata which disables parsing of a second file) 46 | $newRequest = new Request(array_merge($requestDataToMerge, [$key => $filename])); 47 | } else { 48 | $filename = time() . '-' . $request->file($key)->getClientOriginalName(); 49 | $request->file($key)->move(public_path('uploads'), $filename); 50 | // Determine which request's data to use further 51 | $requestDataToMerge = $newRequest == null ? $request->all() : $newRequest->all(); 52 | // Create new request without changing the original one (prevents removal of specific metadata which disables parsing of a second file) 53 | $newRequest = new Request(array_merge($requestDataToMerge, [$key => $filename])); 54 | } 55 | } 56 | } 57 | 58 | return $newRequest == null ? $request : $newRequest; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/Translations/ru/qa.php: -------------------------------------------------------------------------------- 1 | 'Список', 6 | 'logs-index-user' => 'Пользователь', 7 | 'logs-index-action' => 'Действие', 8 | 'logs-index-action_model' => 'Модель', 9 | 'logs-index-action_id' => 'ИД', 10 | 'logs-index-time' => 'Время', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Создать новый пункт меню CRUD', 14 | 'menus-createCrud-crud_parent' => 'CRUD родитель', 15 | 'menus-createCrud-crud_name' => 'CRUD наименование', 16 | 'menus-createCrud-crud_name_placeholder' => 'например, books или products (используется для генерации таблиц в БД и всех необходиых файлов)', 17 | 'menus-createCrud-crud_title' => 'CRUD заголовок', 18 | 'menus-createCrud-crud_title_placeholder' => 'Заголовок меню (используется для пункта меню)', 19 | 'menus-createCrud-roles' => 'Роли', 20 | 'menus-createCrud-soft_delete' => 'Легкое удаление?', 21 | 'menus-createCrud-icon' => 'Иконка', 22 | 'menus-createCrud-icon_placeholder' => 'Шрифт', 23 | 'menus-createCrud-add_fields' => 'Добавить поля', 24 | 'menus-createCrud-show_in_list' => 'Список иконок', 25 | 'menus-createCrud-create_crud' => 'Cоздать CRUD', 26 | 'menus-createCrud-add_field' => 'Добавить поле', 27 | 'menus-createCrud-select_display_field' => 'Выбрать видимое поле', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Создать контроллер', 31 | 'menus-createCustom-menu_parent' => 'Родительское меню', 32 | 'menus-createCustom-controller_name' => 'Наименование контроллера', 33 | 'menus-createCustom-controller_name_placeholder' => 'например, books или products (используется для генерации таблиц в БД и всех необходиых файлов)', 34 | 'menus-createCustom-menu_title' => 'Заголовок меню', 35 | 'menus-createCustom-menu_title_placeholder' => 'Заголовок меню', 36 | 'menus-createCustom-roles' => 'Роли', 37 | 'menus-createCustom-icon' => 'Иконка', 38 | 'menus-createCustom-icon_placeholder' => 'Шрифт', 39 | 'menus-createCustom-create_controller' => 'Создать контроллер', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Создать родителький пункт меню', 43 | 'menus-createParent-parent_title' => 'Заголовок', 44 | 'menus-createParent-parent_title_placeholder' => 'Заголовок', 45 | 'menus-createParent-roles' => 'Роли', 46 | 'menus-createParent-icon' => 'Иконка', 47 | 'menus-createParent-icon_placeholder' => 'Шрифт', 48 | 'menus-createParent-create_parent' => 'Создать', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Редактировать', 52 | 'menus-edit-parent' => 'Родитель', 53 | 'menus-edit-title' => 'Заголовок', 54 | 'menus-edit-title_placeholder' => 'Заголовок', 55 | 'menus-edit-roles' => 'Роли', 56 | 'menus-edit-icon' => 'Иконка', 57 | 'menus-edit-icon_placeholder' => 'Шрифт', 58 | 'menus-edit-update' => 'Редактировать', 59 | 60 | 61 | // menus-index 62 | 'menus-index-no_menu_items_found' => 'Не найдено ни одного пунтка меню', 63 | 'menus-index-new_crud' => 'Создать CRUD-контроллер', 64 | 'menus-index-new_custom' => 'Создать контроллер', 65 | 'menus-index-new_parent' => 'Создать новый пункт родительского меню', 66 | 'menus-index-positions_drag_drop' => 'Вы можете менять позицию пункта меню пертаскивая его', 67 | 'menus-index-click_save_positions' => 'Изменения будут сохранены, если вы нажмете "Сохранить позиции"', 68 | 'menus-index-save_positions' => 'Сохранить позиции', 69 | 70 | ]; -------------------------------------------------------------------------------- /src/Translations/en/qa.php: -------------------------------------------------------------------------------- 1 | 'List', 6 | 'logs-index-user' => 'User', 7 | 'logs-index-action' => 'Action', 8 | 'logs-index-action_model' => 'Action model', 9 | 'logs-index-action_id' => 'Action id', 10 | 'logs-index-time' => 'Time', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Create new CRUD menu item', 14 | 'menus-createCrud-crud_parent' => 'CRUD parent', 15 | 'menus-createCrud-crud_name' => 'CRUD name', 16 | 'menus-createCrud-crud_name_placeholder' => 'ex. Books or Products (used to generate DB table and all back-end files)', 17 | 'menus-createCrud-crud_title' => 'CRUD title', 18 | 'menus-createCrud-crud_title_placeholder' => 'Menu title (used for menu item)', 19 | 'menus-createCrud-roles' => 'Roles', 20 | 'menus-createCrud-soft_delete' => 'Use soft delete?', 21 | 'menus-createCrud-icon' => 'Icon (font-awesome)', 22 | 'menus-createCrud-icon_placeholder' => 'Font awesome', 23 | 'menus-createCrud-add_fields' => 'Add fields', 24 | 'menus-createCrud-show_in_list' => 'Show in list', 25 | 'menus-createCrud-create_crud' => 'Create CRUD', 26 | 'menus-createCrud-add_field' => 'Add one more field', 27 | 'menus-createCrud-select_display_field' => 'Select display field', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Create new custom controller', 31 | 'menus-createCustom-menu_parent' => 'Menu parent', 32 | 'menus-createCustom-controller_name' => 'Controller name', 33 | 'menus-createCustom-controller_name_placeholder' => 'ex. Books or Products (used to generate DB table and all back-end files)', 34 | 'menus-createCustom-menu_title' => 'Menu title', 35 | 'menus-createCustom-menu_title_placeholder' => 'Menu title (used for menu item)', 36 | 'menus-createCustom-roles' => 'Roles', 37 | 'menus-createCustom-icon' => 'Icon (font-awesome)', 38 | 'menus-createCustom-icon_placeholder' => 'Font awesome', 39 | 'menus-createCustom-create_controller' => 'Create controller', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Create new parent menu item', 43 | 'menus-createParent-parent_title' => 'Parent title', 44 | 'menus-createParent-parent_title_placeholder' => 'Menu title (used for menu item)', 45 | 'menus-createParent-roles' => 'Roles', 46 | 'menus-createParent-icon' => 'Icon (font-awesome)', 47 | 'menus-createParent-icon_placeholder' => 'Font awesome', 48 | 'menus-createParent-create_parent' => 'Create parent', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Edit menu information', 52 | 'menus-edit-parent' => 'Parent', 53 | 'menus-edit-title' => 'Title', 54 | 'menus-edit-title_placeholder' => 'Menu title (used for menu item)', 55 | 'menus-edit-roles' => 'Roles', 56 | 'menus-edit-icon' => 'Icon (font-awesome)', 57 | 'menus-edit-icon_placeholder' => 'Font awesome', 58 | 'menus-edit-update' => 'Update', 59 | 60 | 61 | // menus-index 62 | 'menus-index-no_menu_items_found' => 'No menu items found', 63 | 'menus-index-new_crud' => 'Create new CRUD Controller', 64 | 'menus-index-new_custom' => 'Create new Custom Controller', 65 | 'menus-index-new_parent' => 'Create new Parent Menu Item', 66 | 'menus-index-positions_drag_drop' => 'You can change menu positions with drag-drop', 67 | 'menus-index-click_save_positions' => 'Changes will be saved when you click Save positions', 68 | 'menus-index-save_positions' => 'Save positions', 69 | 70 | ]; -------------------------------------------------------------------------------- /src/Views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @include('admin.partials.header') 2 |
3 |
4 |
5 |
6 |
7 |
{{ trans('quickadmin::auth.login-login') }}
8 |
9 | @if (count($errors) > 0) 10 |
11 | {{ trans('quickadmin::auth.whoops') }} {{ trans('quickadmin::auth.some_problems_with_input') }} 12 |

13 |
    14 | @foreach ($errors->all() as $error) 15 |
  • {{ $error }}
  • 16 | @endforeach 17 |
18 |
19 | @endif 20 | 21 |
25 | 28 | 29 |
30 | 31 | 32 |
33 | 37 |
38 |
39 | 40 |
41 | 42 | 43 |
44 | 47 |
48 |
49 | 50 |
51 |
52 | 56 |
57 |
58 | 59 |
60 |
61 | 66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | @include('admin.partials.footer') 75 | -------------------------------------------------------------------------------- /src/Translations/es/qa.php: -------------------------------------------------------------------------------- 1 | 'Lista', 6 | 'logs-index-user' => 'Usuario', 7 | 'logs-index-action' => 'Acción', 8 | 'logs-index-action_model' => 'Relacionada a', 9 | 'logs-index-action_id' => 'ID de la acción', 10 | 'logs-index-time' => 'Fecha / Hora', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Crear nuevo ABM', 14 | 'menus-createCrud-crud_parent' => 'ABM padre', 15 | 'menus-createCrud-crud_name' => 'Nombre de ABM', 16 | 'menus-createCrud-crud_name_placeholder' => 'ej: Libros o Productos (se usa para generar la talba en la BD y los archivos en el servidor)', 17 | 'menus-createCrud-crud_title' => 'Título de ABM', 18 | 'menus-createCrud-crud_title_placeholder' => 'Título del menú', 19 | 'menus-createCrud-roles' => 'Roles', 20 | 'menus-createCrud-soft_delete' => '¿Usar borrado lógico?', 21 | 'menus-createCrud-icon' => 'Icono (font-awesome)', 22 | 'menus-createCrud-icon_placeholder' => 'Font awesome', 23 | 'menus-createCrud-add_fields' => 'Agregar campo', 24 | 'menus-createCrud-show_in_list' => 'Mostrar en la lista', 25 | 'menus-createCrud-create_crud' => 'Crear ABM', 26 | 'menus-createCrud-add_field' => 'Agregar otro campo', 27 | 'menus-createCrud-select_display_field' => 'Seleccionar campo para mostrar', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Nuevo controlador personalizado', 31 | 'menus-createCustom-menu_parent' => 'Menú padre', 32 | 'menus-createCustom-controller_name' => 'Nombre del controllador', 33 | 'menus-createCustom-controller_name_placeholder' => 'ej: Libros o Productos (se usa para generar la talba en la BD y los archivos en el servidor)', 34 | 'menus-createCustom-menu_title' => 'Título del menú', 35 | 'menus-createCustom-menu_title_placeholder' => 'Título del menú', 36 | 'menus-createCustom-roles' => 'Roles', 37 | 'menus-createCustom-icon' => 'Icono (font-awesome)', 38 | 'menus-createCustom-icon_placeholder' => 'Font awesome', 39 | 'menus-createCustom-create_controller' => 'Crear controlador', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Crear elemento padre en el menú', 43 | 'menus-createParent-parent_title' => 'Título padre', 44 | 'menus-createParent-parent_title_placeholder' => 'Título del menú', 45 | 'menus-createParent-roles' => 'Roles', 46 | 'menus-createParent-icon' => 'Icono (font-awesome)', 47 | 'menus-createParent-icon_placeholder' => 'Font awesome', 48 | 'menus-createParent-create_parent' => 'Crear padre', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Editar información del menú', 52 | 'menus-edit-parent' => 'Padre', 53 | 'menus-edit-title' => 'Título', 54 | 'menus-edit-title_placeholder' => 'Título del menú', 55 | 'menus-edit-roles' => 'Roles', 56 | 'menus-edit-icon' => 'Icono (font-awesome)', 57 | 'menus-edit-icon_placeholder' => 'Font awesome', 58 | 'menus-edit-update' => 'Actualizar', 59 | 60 | 61 | // menus-index 62 | 'menus-index-no_menu_items_found' => 'No hay elementos del menú', 63 | 'menus-index-new_crud' => 'Nuevo controlador ABM', 64 | 'menus-index-new_custom' => 'Nuevo controlador personalizado', 65 | 'menus-index-new_parent' => 'Crear nuevo elemento padre del menú', 66 | 'menus-index-positions_drag_drop' => 'Cambia el orden del menú arrastrando los elementos', 67 | 'menus-index-click_save_positions' => 'Los cambios se guardan cuando aprietas Guardar posiciones', 68 | 'menus-index-save_positions' => 'Guardar posiciones', 69 | 70 | ]; -------------------------------------------------------------------------------- /src/Public/quickadmin/js/main.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var activeSub = $(document).find('.active-sub'); 4 | if (activeSub.length > 0) { 5 | activeSub.parent().show(); 6 | activeSub.parent().parent().find('.arrow').addClass('open'); 7 | activeSub.parent().parent().addClass('open'); 8 | } 9 | 10 | $('.datatable').dataTable({ 11 | retrieve: true, 12 | "iDisplayLength": 100, 13 | "aaSorting": [], 14 | "aoColumnDefs": [ 15 | {'bSortable': false, 'aTargets': [0]} 16 | ] 17 | }); 18 | 19 | $('.ckeditor').each(function () { 20 | CKEDITOR.replace($(this)); 21 | }) 22 | 23 | $('.mass').click(function () { 24 | if ($(this).is(":checked")) { 25 | $('.single').each(function () { 26 | if ($(this).is(":checked") == false) { 27 | $(this).click(); 28 | } 29 | }); 30 | } else { 31 | $('.single').each(function () { 32 | if ($(this).is(":checked") == true) { 33 | $(this).click(); 34 | } 35 | }); 36 | } 37 | }); 38 | 39 | $('.page-sidebar').on('click', 'li > a', function (e) { 40 | 41 | if ($('body').hasClass('page-sidebar-closed') && $(this).parent('li').parent('.page-sidebar-menu').size() === 1) { 42 | return; 43 | } 44 | 45 | var hasSubMenu = $(this).next().hasClass('sub-menu'); 46 | 47 | if ($(this).next().hasClass('sub-menu always-open')) { 48 | return; 49 | } 50 | 51 | var parent = $(this).parent().parent(); 52 | var the = $(this); 53 | var menu = $('.page-sidebar-menu'); 54 | var sub = $(this).next(); 55 | 56 | var autoScroll = menu.data("auto-scroll"); 57 | var slideSpeed = parseInt(menu.data("slide-speed")); 58 | var keepExpand = menu.data("keep-expanded"); 59 | 60 | if (keepExpand !== true) { 61 | parent.children('li.open').children('a').children('.arrow').removeClass('open'); 62 | parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(slideSpeed); 63 | parent.children('li.open').removeClass('open'); 64 | } 65 | 66 | var slideOffeset = -200; 67 | 68 | if (sub.is(":visible")) { 69 | $('.arrow', $(this)).removeClass("open"); 70 | $(this).parent().removeClass("open"); 71 | sub.slideUp(slideSpeed, function () { 72 | if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) { 73 | if ($('body').hasClass('page-sidebar-fixed')) { 74 | menu.slimScroll({ 75 | 'scrollTo': (the.position()).top 76 | }); 77 | } 78 | } 79 | }); 80 | } else if (hasSubMenu) { 81 | $('.arrow', $(this)).addClass("open"); 82 | $(this).parent().addClass("open"); 83 | sub.slideDown(slideSpeed, function () { 84 | if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) { 85 | if ($('body').hasClass('page-sidebar-fixed')) { 86 | menu.slimScroll({ 87 | 'scrollTo': (the.position()).top 88 | }); 89 | } 90 | } 91 | }); 92 | } 93 | if (hasSubMenu == true || $(this).attr('href') == '#') { 94 | e.preventDefault(); 95 | } 96 | }); 97 | 98 | }); -------------------------------------------------------------------------------- /src/Translations/my/qa.php: -------------------------------------------------------------------------------- 1 | 'Senarai', 6 | 'logs-index-user' => 'Pengguna', 7 | 'logs-index-action' => 'Tindakan', 8 | 'logs-index-action_model' => 'Model Tidakan', 9 | 'logs-index-action_id' => 'ID Tindakan', 10 | 'logs-index-time' => 'Masa', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Membina menu CRUD baharu', 14 | 'menus-createCrud-crud_parent' => 'CRUD Induk', 15 | 'menus-createCrud-crud_name' => 'Nama CRUD', 16 | 'menus-createCrud-crud_name_placeholder' => 'cth. Buku atau Produk (digunakan untuk membangunkan DB dan fail back-end)', 17 | 'menus-createCrud-crud_title' => 'Judul CRUD ', 18 | 'menus-createCrud-crud_title_placeholder' => 'Judul Menu (untuk item menu)', 19 | 'menus-createCrud-roles' => 'Peranan', 20 | 'menus-createCrud-soft_delete' => 'Gunakan soft-deletes?', 21 | 'menus-createCrud-icon' => 'Ikon (font-awesome)', 22 | 'menus-createCrud-icon_placeholder' => 'Sila lawati laman web Font awesome', 23 | 'menus-createCrud-add_fields' => 'Tambah fields', 24 | 'menus-createCrud-show_in_list' => 'Paparkan dalam senarai', 25 | 'menus-createCrud-create_crud' => 'Cipta CRUD', 26 | 'menus-createCrud-add_field' => 'Tambah field baharu', 27 | 'menus-createCrud-select_display_field' => 'Pilih paparan field', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Membina "Custom Controller" baharu', 31 | 'menus-createCustom-menu_parent' => 'Menu Induk', 32 | 'menus-createCustom-controller_name' => 'Nama Controller', 33 | 'menus-createCustom-controller_name_placeholder' => 'cth. Buku atau Produk (digunakan untuk membangunkan DB dan fail back-end)', 34 | 'menus-createCustom-menu_title' => 'Judul Menu', 35 | 'menus-createCustom-menu_title_placeholder' => 'Judul Menu (untuk item menu)', 36 | 'menus-createCustom-roles' => 'Peranan', 37 | 'menus-createCustom-icon' => 'Ikon (font-awesome)', 38 | 'menus-createCustom-icon_placeholder' => 'Sila lawati laman web Font awesome', 39 | 'menus-createCustom-create_controller' => 'Cipta Controller', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Membina Menu Induk baharu', 43 | 'menus-createParent-parent_title' => 'Judul Induk', 44 | 'menus-createParent-parent_title_placeholder' => 'Judul Menu (untuk item menu)', 45 | 'menus-createParent-roles' => 'Peranan', 46 | 'menus-createParent-icon' => 'Ikon (font-awesome)', 47 | 'menus-createParent-icon_placeholder' => 'Sila lawati laman web Font awesome', 48 | 'menus-createParent-create_parent' => 'Cipta Induk', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Ubah maklumat menu', 52 | 'menus-edit-parent' => 'Induk', 53 | 'menus-edit-title' => 'Judul', 54 | 'menus-edit-title_placeholder' => 'Judul Menu (untuk item menu)', 55 | 'menus-edit-roles' => 'Peranan', 56 | 'menus-edit-icon' => 'Ikon (font-awesome)', 57 | 'menus-edit-icon_placeholder' => 'Sila lawati laman web Font awesome', 58 | 'menus-edit-update' => 'Kemaskini', 59 | 60 | 61 | // menus-index 62 | 'menus-index-no_menu_items_found' => 'Tiada item menu ditemui!', 63 | 'menus-index-new_crud' => 'Membina Controller CRUD baharu', 64 | 'menus-index-new_custom' => 'Membina Custom Controller baharu', 65 | 'menus-index-new_parent' => 'Membina item Menu Induk baharu', 66 | 'menus-index-positions_drag_drop' => 'Anda boleh menukar kedudukan menu dengan drag-drop', 67 | 'menus-index-click_save_positions' => 'Perubahan akan disimpan apabila anda klik Simpan kedudukan', 68 | 'menus-index-save_positions' => 'Simpan kedudukan', 69 | 70 | ]; -------------------------------------------------------------------------------- /src/Translations/pt_BR/qa.php: -------------------------------------------------------------------------------- 1 | 'Lista', 6 | 'logs-index-user' => 'Usuário', 7 | 'logs-index-action' => 'Ação', 8 | 'logs-index-action_model' => 'Cadastro', 9 | 'logs-index-action_id' => 'Código da Ação', 10 | 'logs-index-time' => 'Data / Hora', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Novo Cadastro ( CRUD )', 14 | 'menus-createCrud-crud_parent' => 'Menu Pai', 15 | 'menus-createCrud-crud_name' => 'Nome do Cadastro', 16 | 'menus-createCrud-crud_name_placeholder' => 'ex. Livros ou Produtos (usado para gerar a tabela no DB e todos arquivos na aplicação.)', 17 | 'menus-createCrud-crud_title' => 'Título do Cadastro', 18 | 'menus-createCrud-crud_title_placeholder' => 'Título que irá aparecer no Menu', 19 | 'menus-createCrud-roles' => 'Papéis', 20 | 'menus-createCrud-soft_delete' => 'Não usar exclusão definitiva?', 21 | 'menus-createCrud-icon' => 'Icone (font-awesome)', 22 | 'menus-createCrud-icon_placeholder' => 'Fonte awesome', 23 | 'menus-createCrud-add_fields' => 'Inclusão de Campos', 24 | 'menus-createCrud-show_in_list' => 'Lista de Campos', 25 | 'menus-createCrud-create_crud' => 'Criar Cadastro', 26 | 'menus-createCrud-add_field' => 'Incluir um ou mais campos', 27 | 'menus-createCrud-select_display_field' => 'Selecione um campo', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Novo Controller Customizado', 31 | 'menus-createCustom-menu_parent' => 'Menu Pai', 32 | 'menus-createCustom-controller_name' => 'Nome do Controller', 33 | 'menus-createCustom-controller_name_placeholder' => 'ex. Livros ou Produtos (usado para gerar a tabela no DB e todos arquivos na aplicação.)', 34 | 'menus-createCustom-menu_title' => 'Título do Menu', 35 | 'menus-createCustom-menu_title_placeholder' => 'Título que irá aparecer no Menu', 36 | 'menus-createCustom-roles' => 'Papéis', 37 | 'menus-createCustom-icon' => 'Icone (font-awesome)', 38 | 'menus-createCustom-icon_placeholder' => 'Fonte awesome', 39 | 'menus-createCustom-create_controller' => 'Criar Controller', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Novo Menu Pai', 43 | 'menus-createParent-parent_title' => 'Título do Menu', 44 | 'menus-createParent-parent_title_placeholder' => 'Título que irá aparecer no Menu', 45 | 'menus-createParent-roles' => 'Papéis', 46 | 'menus-createParent-icon' => 'Icone (font-awesome)', 47 | 'menus-createParent-icon_placeholder' => 'Fonte awesome', 48 | 'menus-createParent-create_parent' => 'Criar Menu Pai', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Alteração do Menu', 52 | 'menus-edit-parent' => 'Menu Pai', 53 | 'menus-edit-title' => 'Nome do Cadastro', 54 | 'menus-edit-title_placeholder' => 'Título (usado para o menu)', 55 | 'menus-edit-roles' => 'Papéis', 56 | 'menus-edit-icon' => 'Icone (font-awesome)', 57 | 'menus-edit-icon_placeholder' => 'Fonte awesome', 58 | 'menus-edit-update' => 'Atualizar', 59 | 60 | // menus-index 61 | 'menus-index-no_menu_items_found' => 'Nenhum item de menu cadastrado', 62 | 'menus-index-new_crud' => 'Criar um novo CRUD Controller', 63 | 'menus-index-new_custom' => 'Criar um novo Custom Controller', 64 | 'menus-index-new_parent' => 'Criar um novo Parent Menu Item', 65 | 'menus-index-positions_drag_drop' => 'Você pode alterar as posições dos menus arrastando e soltando', 66 | 'menus-index-click_save_positions' => 'As alterações serão salvas quando você clicar em Salvar Posições', 67 | 'menus-index-save_positions' => 'Salvar Posições', 68 | 69 | ]; -------------------------------------------------------------------------------- /src/Translations/fr/qa.php: -------------------------------------------------------------------------------- 1 | 'Liste', 6 | 'logs-index-user' => 'Utilisateur', 7 | 'logs-index-action' => 'Action', 8 | 'logs-index-action_model' => 'Modèle', 9 | 'logs-index-action_id' => 'Identifiant', 10 | 'logs-index-time' => 'Date & Heure', 11 | 12 | // menus-createCrud 13 | 'menus-createCrud-create_new_crud' => 'Créer un controller CRUD', 14 | 'menus-createCrud-crud_parent' => 'Élement parent', 15 | 'menus-createCrud-crud_name' => 'Nom du CRUD', 16 | 'menus-createCrud-crud_name_placeholder' => 'ex. Livres ou Produits (utilisé pour générer la table BDD et les fichiers serveur)', 17 | 'menus-createCrud-crud_title' => 'Titre', 18 | 'menus-createCrud-crud_title_placeholder' => 'Titre de l\'élément dans le menu', 19 | 'menus-createCrud-roles' => 'Rôles', 20 | 'menus-createCrud-soft_delete' => 'Utiliser le "soft delete" ?', 21 | 'menus-createCrud-icon' => 'Icône (font-awesome)', 22 | 'menus-createCrud-icon_placeholder' => 'Font awesome', 23 | 'menus-createCrud-add_fields' => 'Champs du CRUD', 24 | 'menus-createCrud-show_in_list' => 'Afficher le champ', 25 | 'menus-createCrud-create_crud' => 'Créer le CRUD', 26 | 'menus-createCrud-add_field' => 'Ajouter un autre champ', 27 | 'menus-createCrud-select_display_field' => 'Sélectionner les champs à afficher', 28 | 29 | // menus-createCustom 30 | 'menus-createCustom-create_new_custom_controller' => 'Créer un controller personnalisé', 31 | 'menus-createCustom-menu_parent' => 'Élement parent', 32 | 'menus-createCustom-controller_name' => 'Nom du controller', 33 | 'menus-createCustom-controller_name_placeholder' => 'ex. Livres ou Produits (utilisé pour générer la table BDD et les fichiers serveur)', 34 | 'menus-createCustom-menu_title' => 'Titre', 35 | 'menus-createCustom-menu_title_placeholder' => 'Titre de l\'élément dans le menu', 36 | 'menus-createCustom-roles' => 'Rôles', 37 | 'menus-createCustom-icon' => 'Icône (font-awesome)', 38 | 'menus-createCustom-icon_placeholder' => 'Font awesome', 39 | 'menus-createCustom-create_controller' => 'Créer le controller', 40 | 41 | // menus-createParent 42 | 'menus-createParent-create_new_parent' => 'Créer un élément parent dans le menu', 43 | 'menus-createParent-parent_title' => 'Titre', 44 | 'menus-createParent-parent_title_placeholder' => 'Titre de l\'élément dans le menu', 45 | 'menus-createParent-roles' => 'Rôles', 46 | 'menus-createParent-icon' => 'Icône (font-awesome)', 47 | 'menus-createParent-icon_placeholder' => 'Font awesome', 48 | 'menus-createParent-create_parent' => 'Créer l\'élément', 49 | 50 | // menus-edit 51 | 'menus-edit-edit_menu_information' => 'Éditer les informations de l\'élément', 52 | 'menus-edit-parent' => 'Élément parent', 53 | 'menus-edit-title' => 'Titre', 54 | 'menus-edit-title_placeholder' => 'Titre de l\'élément dans le menu', 55 | 'menus-edit-roles' => 'Rôles', 56 | 'menus-edit-icon' => 'Icône (font-awesome)', 57 | 'menus-edit-icon_placeholder' => 'Font awesome', 58 | 'menus-edit-update' => 'Éditer', 59 | 60 | 61 | // menus-index 62 | 'menus-index-no_menu_items_found' => 'Aucun résultat', 63 | 'menus-index-new_crud' => 'Créer un nouveau controller CRUD', 64 | 'menus-index-new_custom' => 'Créer un nouveau controller personnalisé', 65 | 'menus-index-new_parent' => 'Créer un nouvel élément parent dans le menu', 66 | 'menus-index-positions_drag_drop' => '"Glisser-déposer" pour modifier l\'ordre des éléments', 67 | 'menus-index-click_save_positions' => 'Les changements seront effectifs après avoir enregistré', 68 | 'menus-index-save_positions' => 'Enregistrer', 69 | 70 | ]; -------------------------------------------------------------------------------- /src/Views/auth/reset.blade.php: -------------------------------------------------------------------------------- 1 | @include('admin.partials.header') 2 |
3 |
4 |
5 |
6 |
7 |
{{ trans('quickadmin::auth.reset-reset_password') }}
8 |
9 | @if (count($errors) > 0) 10 |
11 | {{ trans('quickadmin::auth.whoops') }} {{ trans('quickadmin::auth.some_problems_with_input') }} 12 |

13 |
    14 | @foreach ($errors->all() as $error) 15 |
  • {{ $error }}
  • 16 | @endforeach 17 |
18 |
19 | @endif 20 | 21 |
25 | 28 | 29 | 30 |
31 | 32 | 33 |
34 | 38 |
39 |
40 | 41 |
42 | 43 | 44 |
45 | 48 |
49 |
50 | 51 |
52 | 53 | 54 |
55 | 58 |
59 |
60 | 61 |
62 |
63 | 68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | @include('admin.partials.footer') 77 | -------------------------------------------------------------------------------- /src/Translations/en/admin.php: -------------------------------------------------------------------------------- 1 | 'Welcome to your project dashboard', 7 | 8 | // partials-header 9 | 'partials-header-title' => 'QuickAdmin en', 10 | 11 | // partials-sidebar 12 | 'partials-sidebar-menu' => 'Menu', 13 | 'partials-sidebar-users' => 'Users', 14 | 'partials-sidebar-roles' => 'Roles', 15 | 'partials-sidebar-user-actions' => 'User actions', 16 | 'partials-sidebar-logout' => 'Logout', 17 | 18 | // partials-topbar 19 | 'partials-topbar-title' => 'QuickAdmin en', 20 | 21 | // users-create 22 | 'users-create-create_user' => 'Create user', 23 | 'users-create-name' => 'Name', 24 | 'users-create-name_placeholder' => 'Name', 25 | 'users-create-email' => 'Email', 26 | 'users-create-email_placeholder' => 'Email', 27 | 'users-create-password' => 'Password', 28 | 'users-create-password_placeholder' => 'Password', 29 | 'users-create-role' => 'Role', 30 | 'users-create-btncreate' => 'Create', 31 | 32 | // users-edit 33 | 'users-edit-edit_user' => 'Edit user', 34 | 'users-edit-name' => 'Name', 35 | 'users-edit-name_placeholder' => 'Name', 36 | 'users-edit-email' => 'Email', 37 | 'users-edit-email_placeholder' => 'Email', 38 | 'users-edit-password' => 'Password', 39 | 'users-edit-password_placeholder' => 'Password', 40 | 'users-edit-role' => 'Role', 41 | 'users-edit-btnupdate' => 'Update', 42 | 43 | // users-index 44 | 'users-index-add_new' => 'Add new', 45 | 'users-index-users_list' => 'Users list', 46 | 'users-index-name' => 'Name', 47 | 'users-index-edit' => 'Edit', 48 | 'users-index-delete' => 'Delete', 49 | 'users-index-are_you_sure' => 'Are you sure?', 50 | 'users-index-no_entries_found' => 'No entries found', 51 | 52 | // users-controller 53 | 'users-controller-successfully_created' => 'User was successfully created!', 54 | 'users-controller-successfully_updated' => 'User was successfully updated!', 55 | 'users-controller-successfully_deleted' => 'User was successfully deleted!', 56 | 57 | // roles-index 58 | 'roles-index-add_new' => 'Add new', 59 | 'roles-index-roles_list' => 'Roles list', 60 | 'roles-index-title' => 'Title', 61 | 'roles-index-edit' => 'Edit', 62 | 'roles-index-delete' => 'Delete', 63 | 'roles-index-are_you_sure' => 'Are you sure?', 64 | 'roles-index-no_entries_found' => 'No entries found', 65 | 66 | // roles-create 67 | 'roles-create-create_role' => 'Create role', 68 | 'roles-create-title' => 'Title', 69 | 'roles-create-title_placeholder' => 'Title', 70 | 'roles-create-btncreate' => 'Create', 71 | 72 | // roles-edit 73 | 'roles-edit-edit_role' => 'Edit role', 74 | 'roles-edit-title' => 'Title', 75 | 'roles-edit-title_placeholder' => 'Title', 76 | 'roles-edit-btnupdate' => 'Update', 77 | 78 | // roles-controller 79 | 'roles-controller-successfully_created' => 'Role was successfully created!', 80 | 'roles-controller-successfully_updated' => 'Role was successfully updated!', 81 | 'roles-controller-successfully_deleted' => 'Role was successfully deleted!', 82 | 83 | ]; 84 | 85 | -------------------------------------------------------------------------------- /src/Templates/view_index: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |

{!! link_to_route(config('quickadmin.route').'.$ROUTE$.create', trans('quickadmin::templates.templates-view_index-add_new') , null, array('class' => 'btn btn-success')) !!}

6 | 7 | @if ($$RESOURCE$->count()) 8 |
9 |
10 |
{{ trans('quickadmin::templates.templates-view_index-list') }}
11 |
12 |
13 | 14 | 15 | 16 | 19 | $HEADINGS$ 20 | 21 | 22 | 23 | 24 | 25 | @foreach ($$RESOURCE$ as $row) 26 | 27 | 30 | $FIELDS$ 31 | 37 | 38 | @endforeach 39 | 40 |
17 | {!! Form::checkbox('delete_all',1,false,['class' => 'mass']) !!} 18 |  
28 | {!! Form::checkbox('del-'.$row->id,1,false,['class' => 'single','data-id'=> $row->id]) !!} 29 | 32 | {!! link_to_route(config('quickadmin.route').'.$ROUTE$.edit', trans('quickadmin::templates.templates-view_index-edit'), array($row->id), array('class' => 'btn btn-xs btn-info')) !!} 33 | {!! Form::open(array('style' => 'display: inline-block;', 'method' => 'DELETE', 'onsubmit' => "return confirm('".trans("quickadmin::templates.templates-view_index-are_you_sure")."');", 'route' => array(config('quickadmin.route').'.$ROUTE$.destroy', $row->id))) !!} 34 | {!! Form::submit(trans('quickadmin::templates.templates-view_index-delete'), array('class' => 'btn btn-xs btn-danger')) !!} 35 | {!! Form::close() !!} 36 |
41 |
42 |
43 | 46 |
47 |
48 | {!! Form::open(['route' => config('quickadmin.route').'.$ROUTE$.massDelete', 'method' => 'post', 'id' => 'massDelete']) !!} 49 | 50 | {!! Form::close() !!} 51 |
52 |
53 | @else 54 | {{ trans('quickadmin::templates.templates-view_index-no_entries_found') }} 55 | @endif 56 | 57 | @endsection 58 | 59 | @section('javascript') 60 | 82 | @stop -------------------------------------------------------------------------------- /src/Translations/es/admin.php: -------------------------------------------------------------------------------- 1 | 'Bienvenido al panel de control de tu proyecto', 7 | 8 | // partials-header 9 | 'partials-header-title' => 'QuickAdmin es', 10 | 11 | // partials-sidebar 12 | 'partials-sidebar-menu' => 'Menú', 13 | 'partials-sidebar-users' => 'Usuarios', 14 | 'partials-sidebar-roles' => 'Roles', 15 | 'partials-sidebar-user-actions' => 'Registros de usuarios', 16 | 'partials-sidebar-logout' => 'Salir', 17 | 18 | // partials-topbar 19 | 'partials-topbar-title' => 'QuickAdmin es', 20 | 21 | // users-create 22 | 'users-create-create_user' => 'Crear usuario', 23 | 'users-create-name' => 'Nombre', 24 | 'users-create-name_placeholder' => 'Nombre', 25 | 'users-create-email' => 'Email', 26 | 'users-create-email_placeholder' => 'Email', 27 | 'users-create-password' => 'Contraseña', 28 | 'users-create-password_placeholder' => 'Contraseña', 29 | 'users-create-role' => 'Rol', 30 | 'users-create-btncreate' => 'Nuevo', 31 | 32 | // users-edit 33 | 'users-edit-edit_user' => 'Editar usuario', 34 | 'users-edit-name' => 'Nombre', 35 | 'users-edit-name_placeholder' => 'Nombre', 36 | 'users-edit-email' => 'Email', 37 | 'users-edit-email_placeholder' => 'Email', 38 | 'users-edit-password' => 'Contraseña', 39 | 'users-edit-password_placeholder' => 'Contraseña', 40 | 'users-edit-role' => 'Rol', 41 | 'users-edit-btnupdate' => 'Actualizar', 42 | 43 | // users-index 44 | 'users-index-add_new' => 'Nuevo', 45 | 'users-index-users_list' => 'Lista de usuarios', 46 | 'users-index-name' => 'Nombre', 47 | 'users-index-edit' => 'Editar', 48 | 'users-index-delete' => 'Eliminar', 49 | 'users-index-are_you_sure' => '¿estás seguro?', 50 | 'users-index-no_entries_found' => 'No hay registros', 51 | 52 | // users-controller 53 | 'users-controller-successfully_created' => '¡El usuario se creó exitosamente!', 54 | 'users-controller-successfully_updated' => '¡El usuario se actualizó exitosamente!', 55 | 'users-controller-successfully_deleted' => '¡El usuario se eliminó exitosamente!', 56 | 57 | // roles-index 58 | 'roles-index-add_new' => 'Nuevo', 59 | 'roles-index-roles_list' => 'Lista de roles', 60 | 'roles-index-title' => 'Título', 61 | 'roles-index-edit' => 'Editar', 62 | 'roles-index-delete' => 'Eliminar', 63 | 'roles-index-are_you_sure' => '¿estás seguro?', 64 | 'roles-index-no_entries_found' => 'No hay registros', 65 | 66 | // roles-create 67 | 'roles-create-create_role' => 'Nuevo rol', 68 | 'roles-create-title' => 'Título', 69 | 'roles-create-title_placeholder' => 'Título', 70 | 'roles-create-btncreate' => 'Crear', 71 | 72 | // roles-edit 73 | 'roles-edit-edit_role' => 'Editar rol', 74 | 'roles-edit-title' => 'Título', 75 | 'roles-edit-title_placeholder' => 'Título', 76 | 'roles-edit-btnupdate' => 'Actualizar', 77 | 78 | // roles-controller 79 | 'roles-controller-successfully_created' => '¡El rol se creó exitosamente!', 80 | 'roles-controller-successfully_updated' => '¡El rol se actualizó exitosamente!', 81 | 'roles-controller-successfully_deleted' => '¡El rol se eliminó exitosamente!', 82 | 83 | ]; 84 | 85 | -------------------------------------------------------------------------------- /src/Translations/fr/admin.php: -------------------------------------------------------------------------------- 1 | 'Bienvenue sur votre Tableau de Bord', 7 | 8 | // partials-header 9 | 'partials-header-title' => 'QuickAdmin fr', 10 | 11 | // partials-sidebar 12 | 'partials-sidebar-menu' => 'Menu', 13 | 'partials-sidebar-users' => 'Utilisateurs', 14 | 'partials-sidebar-roles' => 'Rôles', 15 | 'partials-sidebar-user-actions' => 'Actions des utilisateurs', 16 | 'partials-sidebar-logout' => 'Déconnexion', 17 | 18 | // partials-topbar 19 | 'partials-topbar-title' => 'QuickAdmin fr', 20 | 21 | // users-create 22 | 'users-create-create_user' => 'Créer un utilisateur', 23 | 'users-create-name' => 'Nom', 24 | 'users-create-name_placeholder' => 'Nom', 25 | 'users-create-email' => 'Email', 26 | 'users-create-email_placeholder' => 'Email', 27 | 'users-create-password' => 'Mot de passe', 28 | 'users-create-password_placeholder' => 'Mot de passe', 29 | 'users-create-role' => 'Rôle', 30 | 'users-create-btncreate' => 'Créer', 31 | 32 | // users-edit 33 | 'users-edit-edit_user' => 'Éditer l\'utilisateur', 34 | 'users-edit-name' => 'Nom', 35 | 'users-edit-name_placeholder' => 'Nom', 36 | 'users-edit-email' => 'Email', 37 | 'users-edit-email_placeholder' => 'Email', 38 | 'users-edit-password' => 'Mot de passe', 39 | 'users-edit-password_placeholder' => 'Mot de passe', 40 | 'users-edit-role' => 'Rôle', 41 | 'users-edit-btnupdate' => 'Éditer', 42 | 43 | // users-index 44 | 'users-index-add_new' => 'Ajouter un utilisateur', 45 | 'users-index-users_list' => 'Liste des utilisateurs', 46 | 'users-index-name' => 'Nom', 47 | 'users-index-edit' => 'Éditer', 48 | 'users-index-delete' => 'Supprimer', 49 | 'users-index-are_you_sure' => 'Êtes-vous sûr ?', 50 | 'users-index-no_entries_found' => 'Aucun résultat', 51 | 52 | // users-controller 53 | 'users-controller-successfully_created' => 'User was successfully created!', 54 | 'users-controller-successfully_updated' => 'User was successfully updated!', 55 | 'users-controller-successfully_deleted' => 'User was successfully deleted!', 56 | 57 | // roles-index 58 | 'roles-index-add_new' => 'Ajouter un rôle', 59 | 'roles-index-roles_list' => 'Liste des rôles', 60 | 'roles-index-title' => 'Titre', 61 | 'roles-index-edit' => 'Éditer', 62 | 'roles-index-delete' => 'Supprimer', 63 | 'roles-index-are_you_sure' => 'Êtes-vous sûr ?', 64 | 'roles-index-no_entries_found' => 'Aucun résultat', 65 | 66 | // roles-create 67 | 'roles-create-create_role' => 'Créer un rôle', 68 | 'roles-create-title' => 'Titre', 69 | 'roles-create-title_placeholder' => 'Titre', 70 | 'roles-create-btncreate' => 'Créer', 71 | 72 | // roles-edit 73 | 'roles-edit-edit_role' => 'Éditer le rôle', 74 | 'roles-edit-title' => 'Titre', 75 | 'roles-edit-title_placeholder' => 'Titre', 76 | 'roles-edit-btnupdate' => 'Éditer', 77 | 78 | // roles-controller 79 | 'roles-controller-successfully_created' => 'Le rôle a bien été créé !', 80 | 'roles-controller-successfully_updated' => 'Le rôle a bien été édité !', 81 | 'roles-controller-successfully_deleted' => 'Le rôle a bien été supprimé !', 82 | 83 | ]; 84 | 85 | -------------------------------------------------------------------------------- /src/Translations/my/admin.php: -------------------------------------------------------------------------------- 1 | 'Selamat Datang ke Papan Pemuka', 7 | 8 | // partials-header 9 | 'partials-header-title' => 'QuickAdmin Bahasa', 10 | 11 | // partials-sidebar 12 | 'partials-sidebar-menu' => 'Menu', 13 | 'partials-sidebar-users' => 'Pengguna', 14 | 'partials-sidebar-roles' => 'Peranan', 15 | 'partials-sidebar-user-actions' => 'Tindakan Pengguna', 16 | 'partials-sidebar-logout' => 'Log Keluar', 17 | 18 | // partials-topbar 19 | 'partials-topbar-title' => 'QuickAdmin Bahasa', 20 | 21 | // users-create 22 | 'users-create-create_user' => 'Cipta Pengguna', 23 | 'users-create-name' => 'Nama', 24 | 'users-create-name_placeholder' => 'Nama anda', 25 | 'users-create-email' => 'E-Mel', 26 | 'users-create-email_placeholder' => 'E-Mel anda', 27 | 'users-create-password' => 'Kata Laluan', 28 | 'users-create-password_placeholder' => 'Password', 29 | 'users-create-role' => 'Peranan', 30 | 'users-create-btncreate' => 'Cipta', 31 | 32 | // users-edit 33 | 'users-edit-edit_user' => 'Sunting Pengguna', 34 | 'users-edit-name' => 'Nama', 35 | 'users-edit-name_placeholder' => 'Nama', 36 | 'users-edit-email' => 'E-Mel', 37 | 'users-edit-email_placeholder' => 'E-Mel anda', 38 | 'users-edit-password' => 'Kata Laluan', 39 | 'users-edit-password_placeholder' => 'Password', 40 | 'users-edit-role' => 'Peranan', 41 | 'users-edit-btnupdate' => 'Kemaskini', 42 | 43 | // users-index 44 | 'users-index-add_new' => 'Tambah Pengguna', 45 | 'users-index-users_list' => 'Senarai Pengguna', 46 | 'users-index-name' => 'Nama', 47 | 'users-index-edit' => 'Sunting', 48 | 'users-index-delete' => 'Padam', 49 | 'users-index-are_you_sure' => 'Anda pasti?', 50 | 'users-index-no_entries_found' => 'Tiada catatan ditemui', 51 | 52 | // users-controller 53 | 'users-controller-successfully_created' => 'Pengguna berjaya dicipta!', 54 | 'users-controller-successfully_updated' => 'Pengguna berjaya dikemaskini!', 55 | 'users-controller-successfully_deleted' => 'Pengguna berjaya dibuang!', 56 | 57 | // roles-index 58 | 'roles-index-add_new' => 'Tambah Peranan', 59 | 'roles-index-roles_list' => 'Senarai Peranan', 60 | 'roles-index-title' => 'Jabatan / Jawatan', 61 | 'roles-index-edit' => 'Sunting', 62 | 'roles-index-delete' => 'Padam', 63 | 'roles-index-are_you_sure' => 'Anda pasti?', 64 | 'roles-index-no_entries_found' => 'Tiada catatan ditemui', 65 | 66 | // roles-create 67 | 'roles-create-create_role' => 'Cipta Peranan', 68 | 'roles-create-title' => 'Jabatan / Jawatan', 69 | 'roles-create-title_placeholder' => 'Jabatan / Jawatan', 70 | 'roles-create-btncreate' => 'Create', 71 | 72 | // roles-edit 73 | 'roles-edit-edit_role' => 'Sunting Peranan', 74 | 'roles-edit-title' => 'Sunting Jawatan', 75 | 'roles-edit-title_placeholder' => 'Jawatan / Jabatan', 76 | 'roles-edit-btnupdate' => 'Kemaskini', 77 | 78 | // roles-controller 79 | 'roles-controller-successfully_created' => 'Peranan berjaya dicipta!', 80 | 'roles-controller-successfully_updated' => 'Peranan berjaya dikemaskini!', 81 | 'roles-controller-successfully_deleted' => 'Peranan berjaya dibuang!', 82 | 83 | ]; 84 | 85 | -------------------------------------------------------------------------------- /src/Views/admin/partials/sidebar.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 80 |
81 | -------------------------------------------------------------------------------- /src/Commands/QuickAdminInstall.php: -------------------------------------------------------------------------------- 1 | info('Please note: QuickAdmin requires fresh Laravel installation!'); 40 | $this->info('Starting installation process of QuickAdmin...'); 41 | $this->info('1. Copying initial files'); 42 | $this->copyInitial(); 43 | $this->info('2. Running migration'); 44 | $this->call('migrate'); 45 | $this->createRole(); 46 | $this->info('3. Create first user'); 47 | $this->createUser(); 48 | $this->info('4. Copying master template to resource\views....'); 49 | $this->copyMasterTemplate(); 50 | $this->info('Installation was successful. Visit your_domain.com/admin to access admin panel'); 51 | } 52 | 53 | /** 54 | * Copy migration files to database_path('migrations') and User.php model to App 55 | */ 56 | public function copyInitial() 57 | { 58 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_create_roles_table', 59 | database_path('migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_create_roles_table.php')); 60 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_update_users_table', 61 | database_path('migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_update_users_table.php')); 62 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_create_menus_table', 63 | database_path('migrations' . DIRECTORY_SEPARATOR . '2015_10_10_000000_create_menus_table.php')); 64 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Migrations' . DIRECTORY_SEPARATOR . '2015_12_11_000000_create_users_logs_table', 65 | database_path('migrations' . DIRECTORY_SEPARATOR . '2015_12_11_000000_create_users_logs_table.php')); 66 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Migrations' . DIRECTORY_SEPARATOR . '2016_03_14_000000_update_menus_table', 67 | database_path('migrations' . DIRECTORY_SEPARATOR . '2016_03_14_000000_update_menus_table.php')); 68 | copy(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Models' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'User', 69 | app_path('User.php')); 70 | $this->info('Migrations were transferred successfully'); 71 | } 72 | 73 | /** 74 | * Create first roles 75 | */ 76 | public function createRole() 77 | { 78 | Role::create([ 79 | 'title' => 'Administrator' 80 | ]); 81 | Role::create([ 82 | 'title' => 'User' 83 | ]); 84 | } 85 | 86 | /** 87 | * Create first user 88 | */ 89 | public function createUser() 90 | { 91 | $data['name'] = $this->ask('Administrator name'); 92 | $data['email'] = $this->ask('Administrator email'); 93 | $data['password'] = bcrypt($this->secret('Administrator password')); 94 | $data['role_id'] = 1; 95 | User::create($data); 96 | $this->info('User has been created'); 97 | } 98 | 99 | /** 100 | * Copy master template to resource/view 101 | */ 102 | public function copyMasterTemplate() 103 | { 104 | Menu::insert([ 105 | [ 106 | 'name' => 'User', 107 | 'title' => 'User', 108 | 'menu_type' => 0 109 | ], 110 | [ 111 | 'name' => 'Role', 112 | 'title' => 'Role', 113 | 'menu_type' => 0 114 | ] 115 | ]); 116 | $this->callSilent('vendor:publish', [ 117 | '--tag' => ['quickadmin'], 118 | '--force' => true 119 | ]); 120 | $this->info('Master template was transferred successfully'); 121 | } 122 | } 123 | 124 | -------------------------------------------------------------------------------- /src/routes.php: -------------------------------------------------------------------------------- 1 | where('menu_type', '!=', 0)->orderBy('position')->get(); 16 | View::share('menus', $menus); 17 | if (! empty($menus)) { 18 | Route::group([ 19 | 'middleware' => ['web', 'auth', 'role'], 20 | 'prefix' => config('quickadmin.route'), 21 | 'as' => config('quickadmin.route') . '.', 22 | 'namespace' => 'App\Http\Controllers', 23 | ], function () use ($menus) { 24 | foreach ($menus as $menu) { 25 | switch ($menu->menu_type) { 26 | case 1: 27 | Route::post(strtolower($menu->name) . '/massDelete', [ 28 | 'as' => strtolower($menu->name) . '.massDelete', 29 | 'uses' => 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller@massDelete' 30 | ]); 31 | Route::resource(strtolower($menu->name), 32 | 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller', ['except' => 'show']); 33 | break; 34 | case 3: 35 | Route::get(strtolower($menu->name), [ 36 | 'as' => strtolower($menu->name) . '.index', 37 | 'uses' => 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller@index', 38 | ]); 39 | break; 40 | } 41 | } 42 | }); 43 | } 44 | } 45 | 46 | Route::group([ 47 | 'namespace' => 'Laraveldaily\Quickadmin\Controllers', 48 | 'middleware' => ['web', 'auth'] 49 | ], function () { 50 | // Dashboard home page route 51 | Route::get(config('quickadmin.homeRoute'), config('quickadmin.homeAction','QuickadminController@index')); 52 | Route::group([ 53 | 'middleware' => 'role' 54 | ], function () { 55 | // Menu routing 56 | Route::get(config('quickadmin.route') . '/menu', [ 57 | 'as' => 'menu', 58 | 'uses' => 'QuickadminMenuController@index' 59 | ]); 60 | Route::post(config('quickadmin.route') . '/menu', [ 61 | 'as' => 'menu', 62 | 'uses' => 'QuickadminMenuController@rearrange' 63 | ]); 64 | 65 | Route::get(config('quickadmin.route') . '/menu/edit/{id}', [ 66 | 'as' => 'menu.edit', 67 | 'uses' => 'QuickadminMenuController@edit' 68 | ]); 69 | Route::post(config('quickadmin.route') . '/menu/edit/{id}', [ 70 | 'as' => 'menu.edit', 71 | 'uses' => 'QuickadminMenuController@update' 72 | ]); 73 | 74 | Route::get(config('quickadmin.route') . '/menu/crud', [ 75 | 'as' => 'menu.crud', 76 | 'uses' => 'QuickadminMenuController@createCrud' 77 | ]); 78 | Route::post(config('quickadmin.route') . '/menu/crud', [ 79 | 'as' => 'menu.crud.insert', 80 | 'uses' => 'QuickadminMenuController@insertCrud' 81 | ]); 82 | 83 | Route::get(config('quickadmin.route') . '/menu/parent', [ 84 | 'as' => 'menu.parent', 85 | 'uses' => 'QuickadminMenuController@createParent' 86 | ]); 87 | Route::post(config('quickadmin.route') . '/menu/parent', [ 88 | 'as' => 'menu.parent.insert', 89 | 'uses' => 'QuickadminMenuController@insertParent' 90 | ]); 91 | 92 | Route::get(config('quickadmin.route') . '/menu/custom', [ 93 | 'as' => 'menu.custom', 94 | 'uses' => 'QuickadminMenuController@createCustom' 95 | ]); 96 | Route::post(config('quickadmin.route') . '/menu/custom', [ 97 | 'as' => 'menu.custom.insert', 98 | 'uses' => 'QuickadminMenuController@insertCustom' 99 | ]); 100 | 101 | Route::get(config('quickadmin.route') . '/actions', [ 102 | 'as' => 'actions', 103 | 'uses' => 'UserActionsController@index' 104 | ]); 105 | Route::get(config('quickadmin.route') . '/actions/ajax', [ 106 | 'as' => 'actions.ajax', 107 | 'uses' => 'UserActionsController@table' 108 | ]); 109 | }); 110 | }); 111 | 112 | Route::group([ 113 | 'namespace' => 'App\Http\Controllers', 114 | 'middleware' => ['web'] 115 | ], function () { 116 | // Point to App\Http\Controllers\UsersController as a resource 117 | Route::group([ 118 | 'middleware' => 'role' 119 | ], function () { 120 | Route::resource('users', 'UsersController'); 121 | Route::resource('roles', 'RolesController'); 122 | }); 123 | Route::auth(); 124 | }); 125 | -------------------------------------------------------------------------------- /src/Builders/MigrationBuilder.php: -------------------------------------------------------------------------------- 1 | get('fieldsinfo'); 28 | $this->template = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Templates' . DIRECTORY_SEPARATOR . 'migration'; 29 | $this->name = $cached['name']; 30 | $this->fields = $cached['fields']; 31 | $this->soft = $cached['soft_delete']; 32 | $this->names(); 33 | $template = (string) $this->loadTemplate(); 34 | $template = $this->buildParts($template); 35 | $this->publish($template); 36 | } 37 | 38 | /** 39 | * Load migration template 40 | */ 41 | private function loadTemplate() 42 | { 43 | return file_get_contents($this->template); 44 | } 45 | 46 | /** 47 | * Build migration template parts 48 | * 49 | * @param $template 50 | * 51 | * @return mixed 52 | */ 53 | private function buildParts($template) 54 | { 55 | $camelName = Str::camel($this->name); 56 | $tableName = strtolower($camelName); 57 | $template = str_replace([ 58 | '$TABLENAME$', 59 | '$CLASS$', 60 | '$FIELDS$' 61 | ], [ 62 | $tableName, 63 | $this->className, 64 | $this->buildFields() 65 | ], $template); 66 | 67 | return $template; 68 | } 69 | 70 | /** 71 | * Build migration fields 72 | * @return string 73 | */ 74 | private function buildFields() 75 | { 76 | $migrationTypes = FieldsDescriber::migration(); 77 | $used = []; 78 | $fields = '$table->increments("id");' . "\r\n"; 79 | foreach ($this->fields as $field) { 80 | // Check if there is no duplication for radio and checkbox 81 | if (!in_array($field->title, $used)) { 82 | // Generate our migration line 83 | $migrationLine = str_replace([ 84 | '$FIELDNAME$', 85 | '$STATE$', 86 | '$RELATIONSHIP$', 87 | ], [ 88 | $field->title, 89 | $field->default == 'true' ? 1 : 0, 90 | $field->relationship_name 91 | ], $migrationTypes[$field->type]); 92 | $fields .= ' '; // Add formatting space to the migration 93 | if ($field->type == 'enum') { 94 | $values = ''; 95 | $field->enum = explode(',', $field->enum); 96 | foreach ($field->enum as $val) { 97 | // Remove first whitespace 98 | if (strpos(substr($val, 0, 1), ' ') !== false) { 99 | $len = strlen($val); 100 | $val = substr($val, 1, $len); 101 | } 102 | $values .= '"' . $val . '"'; 103 | if ($val != last($field->enum)) { 104 | $values .= ', '; 105 | } 106 | } 107 | $migrationLine = str_replace('$VALUES$', $values, $migrationLine); 108 | } 109 | $fields .= '$table->' . $migrationLine; 110 | if (in_array($field->validation, FieldsDescriber::nullables())) { 111 | $fields .= '->nullable()'; 112 | } 113 | $fields .= ";\r\n"; 114 | if ($field->type == 'relationship') { 115 | $used[$field->relationship_name] = $field->relationship_name; 116 | } else { 117 | $used[$field->title] = $field->title; 118 | } 119 | } 120 | } 121 | $fields .= ' '; // Add formatting space to the migration 122 | $fields .= '$table->timestamps();'; 123 | if ($this->soft == 1) { 124 | $fields .= "\r\n"; 125 | $fields .= ' '; // Add formatting space to the migration 126 | $fields .= '$table->softDeletes();'; 127 | } 128 | 129 | return $fields; 130 | } 131 | 132 | /** 133 | * Generate file and class names for the migration 134 | */ 135 | private function names() 136 | { 137 | $fileName = date("Y_m_d_His") . '_create_'; 138 | $fileName .= str_replace(' ', '_', $this->name); 139 | $fileName = strtolower($fileName) . '_table.php'; 140 | $this->fileName = $fileName; 141 | 142 | $className = 'Create' . ' ' . $this->name . ' Table'; 143 | $className = Str::camel($className); 144 | $this->className = ucfirst($className); 145 | } 146 | 147 | /** 148 | * Publish file into it's place 149 | */ 150 | private function publish($template) 151 | { 152 | file_put_contents(database_path('migrations/' . $this->fileName), $template); 153 | } 154 | 155 | } -------------------------------------------------------------------------------- /src/Views/templates/menu_field_line.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 32 | 33 | 34 | 35 | 37 | 38 | 39 | 40 | 46 | 47 | 48 | 49 | 57 | 58 | 59 | 60 | 67 | 68 |
69 | 70 | 71 | 72 | 74 | 75 | 76 | 77 | 79 | 81 | 82 | 83 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/QuickadminServiceProvider.php: -------------------------------------------------------------------------------- 1 | loadTranslationsFrom(base_path('resources' . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'laraveldaily' . DIRECTORY_SEPARATOR), 21 | 'quickadmin'); 22 | // Register vendor views 23 | $this->loadViewsFrom(__DIR__ . DIRECTORY_SEPARATOR . 'Views' . DIRECTORY_SEPARATOR . 'qa', 'qa'); 24 | $this->loadViewsFrom(__DIR__ . DIRECTORY_SEPARATOR . 'Views' . DIRECTORY_SEPARATOR . 'templates', 'tpl'); 25 | /* Publish master templates */ 26 | $this->publishes([ 27 | __DIR__ . DIRECTORY_SEPARATOR . 'Config' . DIRECTORY_SEPARATOR . 'quickadmin.php' => config_path('quickadmin.php'), 28 | __DIR__ . DIRECTORY_SEPARATOR . 'Views' . DIRECTORY_SEPARATOR . 'admin' => base_path('resources' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'admin'), 29 | __DIR__ . DIRECTORY_SEPARATOR . 'Views' . DIRECTORY_SEPARATOR . 'auth' => base_path('resources' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'auth'), 30 | __DIR__ . DIRECTORY_SEPARATOR . 'Views' . DIRECTORY_SEPARATOR . 'emails' => base_path('resources' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'emails'), 31 | __DIR__ . DIRECTORY_SEPARATOR . 'Translations' => base_path('resources' . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'laraveldaily'), 32 | __DIR__ . DIRECTORY_SEPARATOR . 'Public' . DIRECTORY_SEPARATOR . 'quickadmin' => base_path('public' . DIRECTORY_SEPARATOR . 'quickadmin'), 33 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'UsersController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'UsersController.php'), 34 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'RolesController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'RolesController.php'), 35 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'Controller' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Controller.php'), 36 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'FileUploadTrait' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Traits' . DIRECTORY_SEPARATOR . 'FileUploadTrait.php'), 37 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'ForgotPasswordController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Auth' . DIRECTORY_SEPARATOR . 'ForgotPasswordController.php'), 38 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'LoginController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Auth' . DIRECTORY_SEPARATOR . 'LoginController.php'), 39 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'RegisterController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Auth' . DIRECTORY_SEPARATOR . 'RegisterController.php'), 40 | __DIR__ . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'ResetPasswordController' => app_path('Http' . DIRECTORY_SEPARATOR . 'Controllers' . DIRECTORY_SEPARATOR . 'Auth' . DIRECTORY_SEPARATOR . 'ResetPasswordController.php'), 41 | __DIR__ . DIRECTORY_SEPARATOR . 'Models' . DIRECTORY_SEPARATOR . 'publish' . DIRECTORY_SEPARATOR . 'Role' => app_path('Role.php'), 42 | ], 'quickadmin'); 43 | 44 | // Register commands 45 | $this->app->bind('quickadmin:install', function ($app) { 46 | return new QuickAdminInstall(); 47 | }); 48 | $this->commands([ 49 | 'quickadmin:install' 50 | ]); 51 | // Routing 52 | include __DIR__ . DIRECTORY_SEPARATOR . 'routes.php'; 53 | } 54 | 55 | /** 56 | * Register the application services. 57 | * 58 | * @return void 59 | */ 60 | public function register() 61 | { 62 | // Register main classes 63 | $this->app->make('Laraveldaily\Quickadmin\Controllers\QuickadminController'); 64 | $this->app->make('Laraveldaily\Quickadmin\Controllers\UserActionsController'); 65 | $this->app->make('Laraveldaily\Quickadmin\Controllers\QuickadminMenuController'); 66 | $this->app->make('Laraveldaily\Quickadmin\Cache\QuickCache'); 67 | $this->app->make('Laraveldaily\Quickadmin\Builders\MigrationBuilder'); 68 | $this->app->make('Laraveldaily\Quickadmin\Builders\ModelBuilder'); 69 | $this->app->make('Laraveldaily\Quickadmin\Builders\RequestBuilder'); 70 | $this->app->make('Laraveldaily\Quickadmin\Builders\ControllerBuilder'); 71 | $this->app->make('Laraveldaily\Quickadmin\Builders\ViewsBuilder'); 72 | $this->app->make('Laraveldaily\Quickadmin\Events\UserLoginEvents'); 73 | // Register dependency packages 74 | $this->app->register('Collective\Html\HtmlServiceProvider'); 75 | $this->app->register('Intervention\Image\ImageServiceProvider'); 76 | $this->app->register('Yajra\Datatables\DatatablesServiceProvider'); 77 | // Register dependancy aliases 78 | $loader = \Illuminate\Foundation\AliasLoader::getInstance(); 79 | $loader->alias('HTML', 'Collective\Html\HtmlFacade'); 80 | $loader->alias('Form', 'Collective\Html\FormFacade'); 81 | $loader->alias('Image', 'Intervention\Image\Facades\Image'); 82 | $loader->alias('Datatables', 'Yajra\Datatables\Datatables'); 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /src/Views/qa/menus/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.master') 2 | 3 | @section('content') 4 | 5 |
6 |
7 | @if ($errors->any()) 8 |
9 |
    10 | {!! implode('', $errors->all(' 11 |
  • :message
  • 12 | ')) !!} 13 |
14 |
15 | @endif 16 |
17 |
18 | 19 | 20 | @if($menusList->count() == 0) 21 |
22 |
23 |
24 | {{ trans('quickadmin::qa.menus-index-no_menu_items_found') }} 25 |
26 |
27 |
28 | @endif 29 | 30 |
31 |
32 | {{ trans('quickadmin::qa.menus-index-new_crud') }} 33 | {{ trans('quickadmin::qa.menus-index-new_custom') }} 34 | {{ trans('quickadmin::qa.menus-index-new_parent') }} 35 |
36 |
37 | 38 | {!! Form::open(['class' => 'form-horizontal']) !!} 39 | 40 | @if($menusList->count() != 0) 41 |
42 |
43 |
44 | {{ trans('quickadmin::qa.menus-index-positions_drag_drop') }} 45 |
46 |
47 |
48 | @endif 49 | 50 |
51 |
52 | 101 |
102 |
103 | @if($menusList->count() != 0) 104 | 105 | 112 |
113 |
114 | {!! Form::submit(trans('quickadmin::qa.menus-index-save_positions'),['class' => 'btn btn-danger']) !!} 115 |
116 |
117 | @endif 118 | 119 | {!! Form::close() !!} 120 | 121 | @stop 122 | 123 | @section('javascript') 124 | 161 | @stop --------------------------------------------------------------------------------