first upload all files
This commit is contained in:
11
Modules/User/Resources/assets/admin/js/login.js
Normal file
11
Modules/User/Resources/assets/admin/js/login.js
Normal file
@@ -0,0 +1,11 @@
|
||||
$('[data-loading]').on('click', (e) => {
|
||||
let button = $(e.currentTarget);
|
||||
|
||||
if (button.is('i')) {
|
||||
button = button.parent();
|
||||
}
|
||||
|
||||
button.data('loading-text', button.html())
|
||||
.addClass('btn-loading')
|
||||
.button('loading');
|
||||
});
|
||||
21
Modules/User/Resources/assets/admin/js/main.js
Normal file
21
Modules/User/Resources/assets/admin/js/main.js
Normal file
@@ -0,0 +1,21 @@
|
||||
window.admin.removeSubmitButtonOffsetOn('#permissions');
|
||||
|
||||
$('.permission-parent-actions > .allow-all, .permission-parent-actions > .deny-all, .permission-parent-actions > .inherit-all').on('click', (e) => {
|
||||
let action = e.currentTarget.className.split(/\s+/)[2].split(/-/)[0];
|
||||
|
||||
$(`.permission-${action}`).prop('checked', true);
|
||||
});
|
||||
|
||||
$('.permission-group-actions > .allow-all, .permission-group-actions > .deny-all, .permission-group-actions > .inherit-all').on('click', (e) => {
|
||||
let action = e.currentTarget.className.split(/\s+/)[2].split(/-/)[0];
|
||||
|
||||
$(e.currentTarget).closest('.permission-group')
|
||||
.find(`.permission-${action}`)
|
||||
.each((index, value) => {
|
||||
$(value).prop('checked', true);
|
||||
});
|
||||
});
|
||||
|
||||
$('.delete-api-key').on('click', (e) => {
|
||||
$('#confirmation-form').attr('action', e.currentTarget.dataset.action);
|
||||
});
|
||||
147
Modules/User/Resources/assets/admin/sass/login.scss
Normal file
147
Modules/User/Resources/assets/admin/sass/login.scss
Normal file
@@ -0,0 +1,147 @@
|
||||
/* resets */
|
||||
|
||||
h1, h2, h3, h4, h5, h6, p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body, html {
|
||||
height: 100% !important;
|
||||
width: 100% !important;
|
||||
margin: 0;
|
||||
display: table;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-weight: 400;
|
||||
background: #f1f3f7;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* login page */
|
||||
|
||||
.login-page {
|
||||
display: table;
|
||||
width: 360px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.login-wrapper {
|
||||
position: relative;
|
||||
background: #ffffff;
|
||||
border-radius: 3px;
|
||||
padding: 15px;
|
||||
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
|
||||
z-index: 0;
|
||||
|
||||
.bg-blue {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 80px;
|
||||
background: #0068e1;
|
||||
overflow: hidden;
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
z-index: -1;
|
||||
|
||||
.reflection {
|
||||
position: absolute;
|
||||
left: -105px;
|
||||
top: 0;
|
||||
height: 300px;
|
||||
width: 300px;
|
||||
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.05));
|
||||
transform: rotate(50deg);
|
||||
}
|
||||
}
|
||||
|
||||
.form-inner {
|
||||
background: #ffffff;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #e9e9e9;
|
||||
margin: 15px 0 0;
|
||||
padding: 0 15px 10px;
|
||||
}
|
||||
|
||||
.reset-password {
|
||||
p {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.login-form > button {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.input-icon {
|
||||
top: 5px !important;
|
||||
}
|
||||
|
||||
> a {
|
||||
margin: 5px auto 5px;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
position: relative;
|
||||
|
||||
label > span {
|
||||
color: #fc4b4b;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
padding-left: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
display: table;
|
||||
margin: 20px auto 5px;
|
||||
padding-left: 60px;
|
||||
padding-right: 60px;
|
||||
}
|
||||
|
||||
a {
|
||||
display: table;
|
||||
margin-top: 10px;
|
||||
color: #0068e1;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reset-password {
|
||||
button {
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 415px) {
|
||||
.login-page {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0 15px;
|
||||
|
||||
.checkbox {
|
||||
float: none !important;
|
||||
display: table;
|
||||
margin: 10px auto 0;
|
||||
}
|
||||
|
||||
a {
|
||||
float: none !important;
|
||||
display: table;
|
||||
margin: 10px auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
91
Modules/User/Resources/assets/admin/sass/main.scss
Normal file
91
Modules/User/Resources/assets/admin/sass/main.scss
Normal file
@@ -0,0 +1,91 @@
|
||||
.permission-row {
|
||||
padding: 6px 0 4px 0;
|
||||
}
|
||||
|
||||
.api-keys {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.permission-group {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.permission-parent-head {
|
||||
margin-bottom: 15px;
|
||||
|
||||
h3 {
|
||||
border-bottom: 1px solid #d2d6de;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
%permission-actions {
|
||||
border: 1px solid #d2d6de;
|
||||
}
|
||||
|
||||
|
||||
%permission-actions-btn {
|
||||
padding: 3px 10px;
|
||||
margin-left: 0px !important;
|
||||
border-right: 1px solid #d2d6de;
|
||||
|
||||
&:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
.permission-parent-actions {
|
||||
@extend %permission-actions;
|
||||
margin-top: 0;
|
||||
|
||||
> .btn {
|
||||
@extend %permission-actions-btn;
|
||||
}
|
||||
}
|
||||
|
||||
.permission-group-actions {
|
||||
@extend %permission-actions;
|
||||
|
||||
> .btn {
|
||||
@extend %permission-actions-btn;
|
||||
}
|
||||
}
|
||||
|
||||
.permission-row {
|
||||
.permission-label {
|
||||
font-family: "Open Sans", sans-serif;
|
||||
font-weight: 600;
|
||||
display: block;
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
.radio-btn {
|
||||
.radio {
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
|
||||
&:last-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#new_password {
|
||||
.btn-reset-password {
|
||||
margin: 10px 0 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.permission-row {
|
||||
.radio-btn {
|
||||
float: left;
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.permission-group-actions {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
25
Modules/User/Resources/lang/en/attributes.php
Normal file
25
Modules/User/Resources/lang/en/attributes.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'auth' => [
|
||||
'remember_me' => 'Remember me',
|
||||
],
|
||||
|
||||
'users' => [
|
||||
'first_name' => 'First Name',
|
||||
'last_name' => 'Last Name',
|
||||
'email' => 'Email',
|
||||
'phone' => 'Phone',
|
||||
'password' => 'Password',
|
||||
'password_confirmation' => 'Confirm Password',
|
||||
'captcha' => 'Captcha',
|
||||
'roles' => 'Roles',
|
||||
'activated' => 'Status',
|
||||
'new_password' => 'New Password',
|
||||
'confirm_new_password' => 'Confirm New Password',
|
||||
],
|
||||
|
||||
'roles' => [
|
||||
'name' => 'Name',
|
||||
],
|
||||
];
|
||||
29
Modules/User/Resources/lang/en/auth.php
Normal file
29
Modules/User/Resources/lang/en/auth.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'login' => 'Login',
|
||||
'logout' => 'Logout',
|
||||
'email' => 'Email',
|
||||
'phone' => 'Phone',
|
||||
'password' => 'Password',
|
||||
'remember_me' => 'Remember me',
|
||||
'forgot_password' => 'forgot password?',
|
||||
'sign_in' => 'SIGN IN',
|
||||
'or_continue_with' => 'Or, Continue With',
|
||||
'or_sign_up_with' => 'Or, Sign Up With',
|
||||
'facebook' => 'Facebook',
|
||||
'google' => 'Google',
|
||||
'dont_have_an_account' => 'Don\'t Have an Account?',
|
||||
'create_account' => 'CREATE ACCOUNT',
|
||||
'register' => 'Register',
|
||||
'already_have_an_account' => 'Already Have an Account?',
|
||||
'first_name' => 'First Name',
|
||||
'last_name' => 'Last Name',
|
||||
'confirm_password' => 'Confirm Password',
|
||||
'i_agree_to_the' => 'I agree to the',
|
||||
'privacy_policy' => 'Privacy Policy',
|
||||
'reset_password' => 'Reset Password',
|
||||
'enter_email' => 'Enter your account email to receive a link allowing you to reset your password.',
|
||||
'i_remembered_my_password' => 'I remembered my password',
|
||||
'submit' => 'SUBMIT',
|
||||
];
|
||||
11
Modules/User/Resources/lang/en/mail.php
Normal file
11
Modules/User/Resources/lang/en/mail.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'welcome' => 'Welcome :name!',
|
||||
'account_created' => 'Your account has been created successfully.',
|
||||
'reset_your_account_password' => 'Reset your account password',
|
||||
'received_a_password_reset_request' => 'You are receiving this email because we received a password reset request for your account.',
|
||||
'reset_password' => 'Reset Password',
|
||||
'no_further_action_is_required' => 'If you did not request a password reset, no further action is required.',
|
||||
'if_you\’re_having_trouble' => 'If you’re having trouble clicking the "Reset Password" button, copy and paste the URL below into your web browser:',
|
||||
];
|
||||
18
Modules/User/Resources/lang/en/messages.php
Normal file
18
Modules/User/Resources/lang/en/messages.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'users' => [
|
||||
'account_created' => 'Your account has been created.',
|
||||
'no_user_found' => 'No user with that email address belongs to our system.',
|
||||
'invalid_credentials' => 'Invalid email address or password.',
|
||||
'account_not_activated' => 'Your account is not activated. Please check your email.',
|
||||
'account_is_blocked' => 'Your account is blocked for :delay seconds.',
|
||||
'check_email_to_reset_password' => 'Check your email address to reset password.',
|
||||
'invalid_reset_code' => 'Invalid or expired reset code.',
|
||||
'password_has_been_reset' => 'Your password has been reset.',
|
||||
'reset_password_email_sent' => 'Reset password email sent.',
|
||||
],
|
||||
'email' => [
|
||||
'reset_password' => 'Reset your account password.',
|
||||
],
|
||||
];
|
||||
16
Modules/User/Resources/lang/en/permissions.php
Normal file
16
Modules/User/Resources/lang/en/permissions.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'users' => [
|
||||
'index' => 'Index Users',
|
||||
'create' => 'Create Users',
|
||||
'edit' => 'Edit Users',
|
||||
'destroy' => 'Delete Users',
|
||||
],
|
||||
'roles' => [
|
||||
'index' => 'Index Roles',
|
||||
'create' => 'Create Roles',
|
||||
'edit' => 'Edit Roles',
|
||||
'destroy' => 'Delete Roles',
|
||||
],
|
||||
];
|
||||
22
Modules/User/Resources/lang/en/roles.php
Normal file
22
Modules/User/Resources/lang/en/roles.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'role' => 'Role',
|
||||
'roles' => 'Roles',
|
||||
'table' => [
|
||||
'name' => 'Name',
|
||||
],
|
||||
'tabs' => [
|
||||
'role_information' => 'Role Information',
|
||||
'general' => 'General',
|
||||
'permissions' => 'Permissions',
|
||||
],
|
||||
'permissions' => [
|
||||
'allow_all' => 'Allow all',
|
||||
'deny_all' => 'Deny all',
|
||||
'inherit_all' => 'Inherit all',
|
||||
'allow' => 'Allow',
|
||||
'deny' => 'Deny',
|
||||
'inherit' => 'Inherit',
|
||||
],
|
||||
];
|
||||
6
Modules/User/Resources/lang/en/sidebar.php
Normal file
6
Modules/User/Resources/lang/en/sidebar.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'users' => 'Users',
|
||||
'roles' => 'Roles',
|
||||
];
|
||||
27
Modules/User/Resources/lang/en/users.php
Normal file
27
Modules/User/Resources/lang/en/users.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'user' => 'User',
|
||||
'users' => 'Users',
|
||||
'profile' => 'Profile',
|
||||
'table' => [
|
||||
'first_name' => 'First Name',
|
||||
'last_name' => 'Last Name',
|
||||
'email' => 'Email',
|
||||
'last_login' => 'Last Login',
|
||||
],
|
||||
'tabs' => [
|
||||
'group' => [
|
||||
'user_information' => 'User Information',
|
||||
'profile_information' => 'Profile Information',
|
||||
],
|
||||
'account' => 'Account',
|
||||
'permissions' => 'Permissions',
|
||||
'new_password' => 'New Password',
|
||||
],
|
||||
'form' => [
|
||||
'activated' => 'Activated',
|
||||
],
|
||||
'or_reset_password' => 'or, Reset Password',
|
||||
'send_reset_password_email' => 'Send Reset Password Email',
|
||||
];
|
||||
33
Modules/User/Resources/views/admin/auth/layout.blade.php
Normal file
33
Modules/User/Resources/views/admin/auth/layout.blade.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="{{ url('/') }}">
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>
|
||||
@yield('title') - FleetCart
|
||||
</title>
|
||||
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:600|Roboto:400,500" rel="stylesheet">
|
||||
|
||||
@foreach ($assets->allCss() as $css)
|
||||
<link media="all" type="text/css" rel="stylesheet" href="{{ v($css) }}">
|
||||
@endforeach
|
||||
|
||||
@include('admin::partials.globals')
|
||||
</head>
|
||||
|
||||
<body class="clearfix">
|
||||
<div class="login-page">
|
||||
@include('admin::partials.notification')
|
||||
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@foreach ($assets->allJs() as $js)
|
||||
<script src="{{ v($js) }}"></script>
|
||||
@endforeach
|
||||
</body>
|
||||
</html>
|
||||
62
Modules/User/Resources/views/admin/auth/login.blade.php
Normal file
62
Modules/User/Resources/views/admin/auth/login.blade.php
Normal file
@@ -0,0 +1,62 @@
|
||||
@extends('user::admin.auth.layout')
|
||||
|
||||
@section('title', trans('user::auth.login'))
|
||||
|
||||
@section('content')
|
||||
<div class="login-wrapper">
|
||||
<div class="bg-blue">
|
||||
<div class="reflection"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-inner clearfix">
|
||||
<h3 class="text-center">{{ setting('store_name') }}</h3>
|
||||
|
||||
<form method="POST" action="{{ route('admin.login.post') }}">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="email">{{ trans('user::auth.email') }}<span>*</span></label>
|
||||
|
||||
<input type="text" name="email" value="{{ old('email') }}" class="form-control" id="email"
|
||||
placeholder="{{ trans('user::attributes.users.email') }}" autofocus>
|
||||
|
||||
<div class="input-icon">
|
||||
<i class="fa fa-envelope-o" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
{!! $errors->first('email', '<span class="help-block text-red">:message</span>') !!}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">{{ trans('user::auth.password') }}<span>*</span></label>
|
||||
|
||||
<input type="password" class="form-control" name="password"
|
||||
placeholder="{{ trans('user::attributes.users.password') }}">
|
||||
|
||||
<div class="input-icon">
|
||||
<i class="fa fa-lock" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
{!! $errors->first('password', '<span class="help-block text-red">:message</span>') !!}
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary" data-loading>
|
||||
{{ trans('user::auth.login') }}
|
||||
</button>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="checkbox pull-left">
|
||||
<input type="hidden" name="remember_me" value="0">
|
||||
<input type="checkbox" name="remember_me" value="1" id="remember-me">
|
||||
|
||||
<label for="remember-me">{{ trans('user::attributes.auth.remember_me') }}</label>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('admin.reset') }}" class="text-center pull-right">
|
||||
{{ trans('user::auth.forgot_password') }}
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,36 @@
|
||||
@extends('user::admin.auth.layout')
|
||||
|
||||
@section('title', trans('user::auth.reset_password'))
|
||||
|
||||
@section('content')
|
||||
<div class="login-wrapper">
|
||||
<div class="bg-blue">
|
||||
<div class="reflection"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-inner reset-password clearfix">
|
||||
<h3 class="text-center">{{ trans('user::auth.reset_password') }}</h3>
|
||||
<p class="text-center">{{ trans('user::auth.enter_email') }}</p>
|
||||
|
||||
<form method="POST" action="{{ route('admin.reset.post') }}">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="form-group">
|
||||
<input type="text" name="email" value="{{ old('email') }}" class="form-control" placeholder="{{ trans('user::attributes.users.email') }}" autofocus>
|
||||
|
||||
<div class="input-icon">
|
||||
<i class="fa fa-envelope-o" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
{!! $errors->first('email', '<span class="help-block text-red">:message</span>') !!}
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary" data-loading>
|
||||
{{ trans('user::auth.reset_password') }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<a class="text-center" href="{{ route('admin.login') }}">{{ trans('user::auth.i_remembered_my_password') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,43 @@
|
||||
@extends('user::admin.auth.layout')
|
||||
|
||||
@section('title', trans('user::auth.reset_password'))
|
||||
|
||||
@section('content')
|
||||
<div class="login-wrapper">
|
||||
<div class="bg-blue">
|
||||
<div class="reflection"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-inner reset-password clearfix">
|
||||
<h3 class="text-center">{{ trans('user::auth.reset_password') }}</h3>
|
||||
|
||||
<form method="POST" class="login-form clearfix">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control" name="new_password" placeholder="{{ trans('user::attributes.users.new_password') }}" autofocus>
|
||||
|
||||
<div class="input-icon">
|
||||
<i class="fa fa-lock"></i>
|
||||
</div>
|
||||
|
||||
{!! $errors->first('new_password', '<span class="help-block text-red">:message</span>') !!}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control" name="new_password_confirmation" placeholder="{{ trans('user::attributes.users.confirm_new_password') }}">
|
||||
|
||||
<div class="input-icon">
|
||||
<i class="fa fa-lock"></i>
|
||||
</div>
|
||||
|
||||
{!! $errors->first('new_password_confirmation', '<span class="help-block text-red">:message</span>') !!}
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit" data-loading>
|
||||
{{ trans('user::auth.reset_password') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,38 @@
|
||||
<div class="permission-row">
|
||||
<div class="row">
|
||||
<div class="col-md-5 col-sm-4">
|
||||
<span class="permission-label">{{ trans($permissionLabel) }}</sapn>
|
||||
</div>
|
||||
|
||||
<div class="col-md-7 col-sm-8">
|
||||
<div class="row">
|
||||
<div class="radio-btn clearfix">
|
||||
|
||||
@if (! is_null($entity))
|
||||
@php
|
||||
$permissionValue = old('permissions')["{$group}.{$permissionAction}"] ?? permission_value($entity->permissions ?: [], "{$group}.{$permissionAction}")
|
||||
@endphp
|
||||
@endif
|
||||
|
||||
<div class="radio">
|
||||
<input type="radio" value="0" id="{{ "{$group}-{$permissionAction}" }}-inherit" name="permissions[{{ "{$group}.{$permissionAction}" }}]" class="permission-inherit" {{ isset($permissionValue) && $permissionValue == 0 ? 'checked' : '' }}>
|
||||
|
||||
<label for="{{ "{$group}-{$permissionAction}" }}-inherit">{{ trans('user::roles.permissions.inherit') }}</label>
|
||||
</div>
|
||||
|
||||
<div class="radio">
|
||||
<input type="radio" value="-1" id="{{ "{$group}-{$permissionAction}" }}-deny" name="permissions[{{ "{$group}.{$permissionAction}" }}]" class="permission-deny" {{ isset($permissionValue) && $permissionValue == -1 ? 'checked' : '' }}>
|
||||
|
||||
<label for="{{ "{$group}-{$permissionAction}" }}-deny">{{ trans('user::roles.permissions.deny') }}</label>
|
||||
</div>
|
||||
|
||||
<div class="radio">
|
||||
<input type="radio" value="1" id="{{ "{$group}-{$permissionAction}" }}-allow" name="permissions[{{ "{$group}.{$permissionAction}" }}]" class="permission-allow" {{ isset($permissionValue) && $permissionValue == 1 ? 'checked' : '' }}>
|
||||
|
||||
<label for="{{ "{$group}-{$permissionAction}" }}-allow">{{ trans('user::roles.permissions.allow') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,55 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9 col-md-12">
|
||||
<div class="btn-group permission-parent-actions pull-right">
|
||||
<button type="button" class="btn btn-default allow-all">{{ trans('user::roles.permissions.allow_all')}}</button>
|
||||
<button type="button" class="btn btn-default deny-all">{{ trans('user::roles.permissions.deny_all')}}</button>
|
||||
<button type="button" class="btn btn-default inherit-all">{{ trans('user::roles.permissions.inherit_all')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@foreach ($permissions as $module => $modulePermissions)
|
||||
<div class="row">
|
||||
<div class="col-lg-9 col-md-12">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="permission-parent-head clearfix">
|
||||
<h3>{{ $module }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
@foreach ($modulePermissions as $group => $groupPermissions)
|
||||
<div class="permission-group">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="permission-group-head">
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-sm-4">
|
||||
<h4>{{ $group }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8 col-sm-8">
|
||||
<div class="btn-group permission-group-actions pull-right">
|
||||
<button type="button" class="btn btn-default allow-all">{{ trans('user::roles.permissions.allow_all')}}</button>
|
||||
<button type="button" class="btn btn-default deny-all">{{ trans('user::roles.permissions.deny_all')}}</button>
|
||||
<button type="button" class="btn btn-default inherit-all">{{ trans('user::roles.permissions.inherit_all')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
@foreach ($groupPermissions as $permissionAction => $permissionLabel)
|
||||
@include('user::admin.partials.permissions.actions')
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
18
Modules/User/Resources/views/admin/profile/edit.blade.php
Normal file
18
Modules/User/Resources/views/admin/profile/edit.blade.php
Normal file
@@ -0,0 +1,18 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@section('title', trans('admin::resource.edit', ['resource' => trans('user::users.profile')]))
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('admin::resource.edit', ['resource' => trans('user::users.profile')]))
|
||||
|
||||
<li class="active">{{ trans('admin::resource.edit', ['resource' => trans('user::users.profile')]) }}</li>
|
||||
@endcomponent
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.profile.update') }}" class="form-horizontal" id="profile-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('put') }}
|
||||
|
||||
{!! $tabs->render() !!}
|
||||
</form>
|
||||
@endsection
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::text('first_name', trans('user::attributes.users.first_name'), $errors, $currentUser, ['required' => true]) }}
|
||||
{{ Form::text('last_name', trans('user::attributes.users.last_name'), $errors, $currentUser, ['required' => true]) }}
|
||||
{{ Form::email('email', trans('user::attributes.users.email'), $errors, $currentUser, ['required' => true]) }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::password('password', trans('user::attributes.users.new_password'), $errors) }}
|
||||
{{ Form::password('password_confirmation', trans('user::attributes.users.confirm_new_password'), $errors) }}
|
||||
</div>
|
||||
</div>
|
||||
18
Modules/User/Resources/views/admin/roles/create.blade.php
Normal file
18
Modules/User/Resources/views/admin/roles/create.blade.php
Normal file
@@ -0,0 +1,18 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('admin::resource.create', ['resource' => trans('user::roles.role')]))
|
||||
|
||||
<li><a href="{{ route('admin.roles.index') }}">{{ trans('user::roles.roles') }}</a></li>
|
||||
<li class="active">{{ trans('admin::resource.create', ['resource' => trans('user::roles.role')]) }}</li>
|
||||
@endcomponent
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.roles.store') }}" class="form-horizontal" id="role-create-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
|
||||
{!! $tabs->render(compact('role')) !!}
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@include('user::admin.roles.partials.shortcuts')
|
||||
20
Modules/User/Resources/views/admin/roles/edit.blade.php
Normal file
20
Modules/User/Resources/views/admin/roles/edit.blade.php
Normal file
@@ -0,0 +1,20 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('admin::resource.edit', ['resource' => trans('user::roles.role')]))
|
||||
@slot('subtitle', $role->name)
|
||||
|
||||
<li><a href="{{ route('admin.roles.index') }}">{{ trans('user::roles.roles') }}</a></li>
|
||||
<li class="active">{{ trans('admin::resource.edit', ['resource' => trans('user::roles.role')]) }}</li>
|
||||
@endcomponent
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.roles.update', $role) }}" class="form-horizontal" id="role-edit-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('put') }}
|
||||
|
||||
{!! $tabs->render(compact('role')) !!}
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@include('user::admin.roles.partials.shortcuts')
|
||||
36
Modules/User/Resources/views/admin/roles/index.blade.php
Normal file
36
Modules/User/Resources/views/admin/roles/index.blade.php
Normal file
@@ -0,0 +1,36 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('user::roles.roles'))
|
||||
|
||||
<li class="active">{{ trans('user::roles.roles') }}</li>
|
||||
@endcomponent
|
||||
|
||||
@component('admin::components.page.index_table')
|
||||
@slot('buttons', ['create'])
|
||||
@slot('resource', 'roles')
|
||||
@slot('name', trans('user::roles.role'))
|
||||
|
||||
@slot('thead')
|
||||
<tr>
|
||||
@include('admin::partials.table.select_all')
|
||||
|
||||
<th>{{ trans('admin::admin.table.id') }}</th>
|
||||
<th>{{ trans('user::roles.table.name') }}</th>
|
||||
<th data-sort>{{ trans('admin::admin.table.created') }}</th>
|
||||
</tr>
|
||||
@endslot
|
||||
@endcomponent
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
new DataTable('#roles-table .table', {
|
||||
columns: [
|
||||
{ data: 'checkbox', orderable: false, searchable: false, width: '3%' },
|
||||
{ data: 'id', width: '5%' },
|
||||
{ data: 'name', name: 'translations.name', orderable: false, defaultContent: '' },
|
||||
{ data: 'created', name: 'created_at' },
|
||||
]
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,14 @@
|
||||
@push('shortcuts')
|
||||
<dl class="dl-horizontal">
|
||||
<dt><code>b</code></dt>
|
||||
<dd>{{ trans('user::roles.navigation.back to index') }}</dd>
|
||||
</dl>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
keypressAction([
|
||||
{ key: 'b', route: "{{ route('admin.roles.index') }}" },
|
||||
]);
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,5 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
{{ Form::text('name', trans('user::attributes.roles.name'), $errors, $role, ['required' => true]) }}
|
||||
</div>
|
||||
</div>
|
||||
18
Modules/User/Resources/views/admin/users/create.blade.php
Normal file
18
Modules/User/Resources/views/admin/users/create.blade.php
Normal file
@@ -0,0 +1,18 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('admin::resource.create', ['resource' => trans('user::users.user')]))
|
||||
|
||||
<li><a href="{{ route('admin.users.index') }}">{{ trans('user::users.users') }}</a></li>
|
||||
<li class="active">{{ trans('admin::resource.create', ['resource' => trans('user::users.user')]) }}</li>
|
||||
@endcomponent
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.users.store') }}" class="form-horizontal" id="user-create-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
|
||||
{!! $tabs->render(compact('user')) !!}
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@include('user::admin.users.partials.shortcuts')
|
||||
20
Modules/User/Resources/views/admin/users/edit.blade.php
Normal file
20
Modules/User/Resources/views/admin/users/edit.blade.php
Normal file
@@ -0,0 +1,20 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('admin::resource.edit', ['resource' => trans('user::users.user')]))
|
||||
@slot('subtitle', $user->full_name)
|
||||
|
||||
<li><a href="{{ route('admin.users.index') }}">{{ trans('user::users.users') }}</a></li>
|
||||
<li class="active">{{ trans('admin::resource.edit', ['resource' => trans('user::users.user')]) }}</li>
|
||||
@endcomponent
|
||||
|
||||
@section('content')
|
||||
<form method="POST" action="{{ route('admin.users.update', $user) }}" class="form-horizontal" id="user-edit-form" novalidate>
|
||||
{{ csrf_field() }}
|
||||
{{ method_field('put') }}
|
||||
|
||||
{!! $tabs->render(compact('user')) !!}
|
||||
</form>
|
||||
@endsection
|
||||
|
||||
@include('user::admin.users.partials.shortcuts')
|
||||
42
Modules/User/Resources/views/admin/users/index.blade.php
Normal file
42
Modules/User/Resources/views/admin/users/index.blade.php
Normal file
@@ -0,0 +1,42 @@
|
||||
@extends('admin::layout')
|
||||
|
||||
@component('admin::components.page.header')
|
||||
@slot('title', trans('user::users.users'))
|
||||
|
||||
<li class="active">{{ trans('user::users.users') }}</li>
|
||||
@endcomponent
|
||||
|
||||
@component('admin::components.page.index_table')
|
||||
@slot('buttons', ['create'])
|
||||
@slot('resource', 'users')
|
||||
@slot('name', trans('user::users.user'))
|
||||
|
||||
@slot('thead')
|
||||
<tr>
|
||||
@include('admin::partials.table.select_all')
|
||||
|
||||
<th>{{ trans('admin::admin.table.id') }}</th>
|
||||
<th>{{ trans('user::users.table.first_name') }}</th>
|
||||
<th>{{ trans('user::users.table.last_name') }}</th>
|
||||
<th>{{ trans('user::users.table.email') }}</th>
|
||||
<th>{{ trans('user::users.table.last_login') }}</th>
|
||||
<th data-sort>{{ trans('admin::admin.table.created') }}</th>
|
||||
</tr>
|
||||
@endslot
|
||||
@endcomponent
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
new DataTable('#users-table .table', {
|
||||
columns: [
|
||||
{ data: 'checkbox', orderable: false, searchable: false, width: '3%' },
|
||||
{ data: 'id', width: '5%' },
|
||||
{ data: 'first_name', name: 'first_name' },
|
||||
{ data: 'last_name', name: 'last_name' },
|
||||
{ data: 'email', name: 'email' },
|
||||
{ data: 'last_login', name: 'last_login', searchable: false },
|
||||
{ data: 'created', name: 'created_at' },
|
||||
]
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,14 @@
|
||||
@push('shortcuts')
|
||||
<dl class="dl-horizontal">
|
||||
<dt><code>b</code></dt>
|
||||
<dd>{{ trans('user::users.navigation.back to index') }}</dd>
|
||||
</dl>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
keypressAction([
|
||||
{ key: 'b', route: "{{ route('admin.users.index') }}" },
|
||||
]);
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,18 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::text('first_name', trans('user::attributes.users.first_name'), $errors, $user, ['required' => true]) }}
|
||||
{{ Form::text('last_name', trans('user::attributes.users.last_name'), $errors, $user, ['required' => true]) }}
|
||||
{{ Form::email('email', trans('user::attributes.users.email'), $errors, $user, ['required' => true]) }}
|
||||
{{ Form::text('phone', trans('user::attributes.users.phone'), $errors, $user, ['required' => true]) }}
|
||||
{{ Form::select('roles', trans('user::attributes.users.roles'), $errors, $roles, $user, ['multiple' => true, 'required' => true, 'class' => 'selectize prevent-creation']) }}
|
||||
|
||||
@if (request()->routeIs('admin.users.create'))
|
||||
{{ Form::password('password', trans('user::attributes.users.password'), $errors, null, ['required' => true]) }}
|
||||
{{ Form::password('password_confirmation', trans('user::attributes.users.password_confirmation'), $errors, null, ['required' => true]) }}
|
||||
@endif
|
||||
|
||||
@if (request()->routeIs('admin.users.edit'))
|
||||
{{ Form::checkbox('activated', trans('user::attributes.users.activated'), trans('user::users.form.activated'), $errors, $user, ['disabled' => $user->id === $currentUser->id, 'checked' => old('activated', $user->isActivated())]) }}
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ Form::password('password', trans('user::attributes.users.new_password'), $errors) }}
|
||||
{{ Form::password('password_confirmation', trans('user::attributes.users.confirm_new_password'), $errors) }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<h4>{{ trans('user::users.or_reset_password') }}</h4>
|
||||
|
||||
<a href="{{ route('admin.users.reset_password', $user) }}" class="btn btn-primary btn-reset-password" data-loading>
|
||||
{{ trans('user::users.send_reset_password_email') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user