From 3469e49470aa711a7d4cc706819a8b591fe9ae49 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 3 Oct 2022 21:28:22 -0700 Subject: [PATCH 1/5] First UI overhaul Signed-off-by: snipe --- resources/views/account/view-assets.blade.php | 876 ++++++++++++------ 1 file changed, 572 insertions(+), 304 deletions(-) diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index f5dc07eb84..d3e7047e9d 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -9,331 +9,599 @@ {{-- Account page content --}} @section('content') -
-
-
- @if ($user->id) -
-
-

{{ trans('admin/users/general.assets_user', array('name' => $user->first_name)) }}

-
-
- @endif -
- -
+
+
+ +
+
+
+
+ +
+ + + + + + + + + + @foreach ($user->licenses as $license) + + + + + @endforeach - -
{{ trans('general.name') }}{{ trans('admin/hardware/form.serial') }}{{ trans('general.category') }}
{{ $license->name }} + @can('viewKeys', $license) + {{ $license->serial }} + @else + ------------ + @endcan + {{ $license->category->name }}
-
-
-
-
-
- -
-
-
- @if ($user->id) -
-
-

{{ trans('admin/users/general.software_user', array('name' => $user->first_name)) }}

+ + +
-
- @endif -
- +
+
+ + + + + + + + + + @foreach ($user->accessories as $accessory) + + + + + + @endforeach + +
{{ trans('general.name') }}{{ trans('general.purchase_cost') }}{{ trans('general.action') }}
{!! $accessory->name !!} + {!! Helper::formatCurrencyOutput($accessory->purchase_cost) !!} + + @can('checkin', $accessory) + {{ trans('general.checkin') }} + @endcan +
+
+
-
- - - - - - - - - - @foreach ($user->licenses as $license) - - - - - - @endforeach - -
{{ trans('general.name') }}{{ trans('admin/hardware/form.serial') }}{{ trans('general.category') }}
{{ $license->name }} - @can('viewKeys', $license) - {{ $license->serial }} - @else - ------------ - @endcan - {{ $license->category->name }}
-
-
-
-
-
+
+
+ + + + + + + + + + + @foreach ($user->consumables as $consumable) + + + + + + + @endforeach + +
{{ trans('general.name') }}{{ trans('general.purchase_cost') }}{{ trans('general.date') }}{{ trans('general.notes') }}
{!! $consumable->name !!} + {!! Helper::formatCurrencyOutput($consumable->purchase_cost) !!} + {{ Helper::getFormattedDateObject($consumable->pivot->created_at, 'datetime', false) }}{{ $consumable->pivot->note }}
+
+
-
-
-
- @if ($user->id) -
-
-

{{ trans('general.consumables') }}

-
-
- @endif - -
- -
- - - - - - - - - @foreach ($user->consumables as $consumable) - - - - - @endforeach - -
{{ trans('general.name') }}{{ trans('general.category') }}
{{ $consumable->name }}{{ (($consumable->category) ? $consumable->category->name : 'deleted category') }}
-
+
+
+
+
- - - - -
-
-
- @if ($user->id) -
-
-

{{ trans('general.accessories') }}

-
-
- @endif -
- -
- - - - - - - - - @foreach ($user->accessories as $accessory) - - - - - @endforeach - -
{{ trans('general.name') }}{{ trans('general.category') }}
{{ $accessory->name }}{{ $accessory->category->name }}
-
- -
-
-
-
- -
-
-
- @if ($user->id) -
-
-

{{ trans('general.history') }}

-
-
- @endif - -
-
- - - - - - - - - - -
{{ trans('general.date') }}{{ trans('general.admin') }}{{ trans('general.action') }}{{ trans('general.item') }}
-
- -
-
-
-
@stop From 891b5b288217755547ddfec5de06e130cd184b5a Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Oct 2022 15:45:25 -0700 Subject: [PATCH 2/5] Added routes, language Signed-off-by: snipe --- app/Http/Controllers/ProfileController.php | 48 +++++++++++++++++++ .../Controllers/Users/UsersController.php | 2 +- resources/lang/en/general.php | 1 + resources/views/account/view-assets.blade.php | 40 +++++++++------- routes/web.php | 17 +++++++ 5 files changed, 89 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 38d4226dfa..8edcc70c6a 100755 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -3,7 +3,10 @@ namespace App\Http\Controllers; use App\Http\Requests\ImageUploadRequest; +use App\Models\Asset; use App\Models\Setting; +use App\Models\User; +use App\Notifications\CurrentInventory; use Illuminate\Support\Facades\Auth; use Gate; use Illuminate\Http\Request; @@ -216,4 +219,49 @@ class ProfileController extends Controller $request->session()->put('menu_state', 'closed'); } } + + + /** + * Print inventory + * + * @author A. Gianotto + * @since [v6.0.12] + * @return \Illuminate\Http\RedirectResponse + */ + public function printInventory() + { + $show_user = User::where('id', Auth::user()->id)->withTrashed()->first(); + $assets = Asset::where('assigned_to', Auth::user()->id)->where('assigned_type', User::class)->with('model', 'model.category')->get(); + $accessories = $show_user->accessories()->get(); + $consumables = $show_user->consumables()->get(); + + return view('users/print')->with('assets', $assets) + ->with('licenses', $show_user->licenses()->get()) + ->with('accessories', $accessories) + ->with('consumables', $consumables) + ->with('show_user', $show_user) + ->with('settings', Setting::getSettings()); + } + + /** + * Emails user a list of assigned assets + * + * @author A. Gianotto + * @since [v6.0.12] + * @return \Illuminate\Http\RedirectResponse + */ + public function emailAssetList() + { + + if (!$user = User::find(Auth::user()->id)) { + return redirect()->back() + ->with('error', trans('admin/users/message.user_not_found', ['id' => $id])); + } + if (empty($user->email)) { + return redirect()->back()->with('error', trans('admin/users/message.user_has_no_email')); + } + + $user->notify((new CurrentInventory($user))); + return redirect()->back()->with('success', trans('admin/users/general.user_notified')); + } } diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 7cbbbdb10b..8582ace158 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -594,7 +594,7 @@ class UsersController extends Controller } /** - * LDAP form processing. + * Print inventory * * @author Aladin Alaily * @since [v1.8] diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index ba2cb77a6d..7943520808 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -376,6 +376,7 @@ return [ 'assets_by_status' => 'Assets by Status', 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', + 'hello_name' => 'Hello, :name!', ]; \ No newline at end of file diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index d3e7047e9d..b780e63c31 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -2,7 +2,7 @@ {{-- Page title --}} @section('title') -{{ trans('general.viewassetsfor', array('name' => $user->present()->fullName())) }} +{{ trans('general.hello_name', array('name' => $user->present()->fullName())) }} @parent @stop @@ -83,36 +83,42 @@
- @if (($user->isSuperUser()) || ($user->hasAccess('admin'))) - -
{{ ($user->isSuperUser()) ? 'superadmin' : 'admin'}}
- @endif - -
{{ $user->present()->fullName() }}
- - - @can('update', $user) + + + + @can('self.api') + @endcan - @can('view', $user) - @endcan - @can('view', $user) +
@if(!empty($user->email)) -
+ {{ csrf_field() }}
@@ -120,8 +126,6 @@ @endif
- @endcan -

diff --git a/routes/web.php b/routes/web.php index 249e02a367..4c52918f8e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -279,6 +279,23 @@ Route::group(['prefix' => 'account', 'middleware' => ['auth']], function () { ->name('account.accept.item'); Route::post('accept/{id}', [Account\AcceptanceController::class, 'store']); + + Route::get( + 'print', + [ + ProfileController::class, + 'printInventory' + ] + )->name('profile.print'); + + Route::post( + 'email', + [ + ProfileController::class, + 'emailAssetList' + ] + )->name('profile.email_assets'); + }); Route::group(['middleware' => ['auth']], function () { From 97b9f96030f7dbd3da8e01aab63ac3a54fcf89b1 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Oct 2022 16:16:21 -0700 Subject: [PATCH 3/5] Added nag alert for unaccepted assets Signed-off-by: snipe --- resources/lang/en/general.php | 1 + resources/views/account/view-assets.blade.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 7943520808..704a785a05 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -377,6 +377,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', + 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or deny them', ]; \ No newline at end of file diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index b780e63c31..a83be17755 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -9,7 +9,19 @@ {{-- Account page content --}} @section('content') +@if ($acceptances = \App\Models\CheckoutAcceptance::forUser(Auth::user())->pending()->count()) + +@endif
From ba0483b33e0e7a6930f24dac189c59f8fd87770a Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Oct 2022 16:21:10 -0700 Subject: [PATCH 4/5] Phrasing! Signed-off-by: snipe --- resources/lang/en/general.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 704a785a05..0f82492428 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -377,7 +377,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or deny them', + 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', ]; \ No newline at end of file From bcebc1e33bcff448af23b3ffddf5e2cc938231bf Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Oct 2022 16:37:33 -0700 Subject: [PATCH 5/5] Stylistic refactoring Signed-off-by: snipe --- app/Http/Controllers/ProfileController.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 8edcc70c6a..665a455c81 100755 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -226,19 +226,17 @@ class ProfileController extends Controller * * @author A. Gianotto * @since [v6.0.12] - * @return \Illuminate\Http\RedirectResponse + * @return Illuminate\View\View */ public function printInventory() { - $show_user = User::where('id', Auth::user()->id)->withTrashed()->first(); - $assets = Asset::where('assigned_to', Auth::user()->id)->where('assigned_type', User::class)->with('model', 'model.category')->get(); - $accessories = $show_user->accessories()->get(); - $consumables = $show_user->consumables()->get(); + $show_user = Auth::user(); - return view('users/print')->with('assets', $assets) + return view('users/print') + ->with('assets', Auth::user()->assets) ->with('licenses', $show_user->licenses()->get()) - ->with('accessories', $accessories) - ->with('consumables', $consumables) + ->with('accessories', $show_user->accessories()->get()) + ->with('consumables', $show_user->consumables()->get()) ->with('show_user', $show_user) ->with('settings', Setting::getSettings()); }