From 6ad1f51673d329a0d07bd7a12f67248fc8daa3a9 Mon Sep 17 00:00:00 2001 From: Valentyn Tulub <40685314+valentyntu@users.noreply.github.com> Date: Fri, 6 Dec 2019 20:57:48 +0200 Subject: [PATCH] Added #6489: show asset assignments under user assignments (#7293) * Add a setting to show assets assigned to other assets #6489 * Update user's views to show assets assigned to other assets #6489 * Add ukrainian and russian translation for the feature #6489 in settings --- app/Http/Controllers/SettingsController.php | 1 + .../Controllers/Users/UsersController.php | 7 +++- app/Http/Controllers/ViewAssetsController.php | 8 ++-- ...6_add_show_assigned_assets_to_settings.php | 32 ++++++++++++++++ resources/lang/en/admin/settings/general.php | 2 + resources/lang/ru/admin/settings/general.php | 2 + resources/lang/uk/admin/settings/general.php | 2 + resources/lang/uk/admin/users/general.php | 2 +- resources/views/account/view-assets.blade.php | 38 +++++++++++++++++++ resources/views/settings/general.blade.php | 14 +++++++ resources/views/users/print.blade.php | 22 +++++++++++ resources/views/users/view.blade.php | 22 +++++++++++ 12 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 database/migrations/2019_07_23_140906_add_show_assigned_assets_to_settings.php diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index c2d91fd5fd..0716af81d1 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -334,6 +334,7 @@ class SettingsController extends Controller $setting->email_format = $request->input('email_format'); $setting->username_format = $request->input('username_format'); $setting->require_accept_signature = $request->input('require_accept_signature'); + $setting->show_assigned_assets = $request->input('show_assigned_assets', '0'); if (! config('app.lock_passwords')) { $setting->login_note = $request->input('login_note'); } diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 32ff2315f3..a2b21a0465 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -9,6 +9,7 @@ use App\Models\Asset; use App\Models\Company; use App\Models\Group; use App\Models\Ldap; +use App\Models\Setting; use App\Models\User; use App\Notifications\WelcomeNotification; use Auth; @@ -404,7 +405,8 @@ class UsersController extends Controller $userlog = $user->userlog->load('item'); $this->authorize('view', $user); - return view('users/view', compact('user', 'userlog')); + return view('users/view', compact('user', 'userlog')) + ->with('settings', Setting::getSettings()); } /** @@ -604,6 +606,7 @@ class UsersController extends Controller ->with('licenses', $show_user->licenses()->get()) ->with('accessories', $accessories) ->with('consumables', $consumables) - ->with('show_user', $show_user); + ->with('show_user', $show_user) + ->with('settings', Setting::getSettings()); } } diff --git a/app/Http/Controllers/ViewAssetsController.php b/app/Http/Controllers/ViewAssetsController.php index 918b76e62c..122b1a418a 100755 --- a/app/Http/Controllers/ViewAssetsController.php +++ b/app/Http/Controllers/ViewAssetsController.php @@ -42,13 +42,11 @@ class ViewAssetsController extends Controller $userlog = $user->userlog->load('item', 'user', 'target'); if (isset($user->id)) { - return view('account/view-assets', compact('user', 'userlog')); + return view('account/view-assets', compact('user', 'userlog')) + ->with('settings', Setting::getSettings()); } else { - // Prepare the error message - $error = trans('admin/users/message.user_not_found', compact('id')); - // Redirect to the user management page - return redirect()->route('users.index')->with('error', $error); + return redirect()->route('users.index')->with('error', trans('admin/users/message.user_not_found', compact('id'))); } // Redirect to the user management page return redirect()->route('users.index') diff --git a/database/migrations/2019_07_23_140906_add_show_assigned_assets_to_settings.php b/database/migrations/2019_07_23_140906_add_show_assigned_assets_to_settings.php new file mode 100644 index 0000000000..d248bf911f --- /dev/null +++ b/database/migrations/2019_07_23_140906_add_show_assigned_assets_to_settings.php @@ -0,0 +1,32 @@ +boolean('show_assigned_assets')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings', function (Blueprint $table) { + $table->dropColumn('show_assigned_assets'); + }); + } +} diff --git a/resources/lang/en/admin/settings/general.php b/resources/lang/en/admin/settings/general.php index 26b75e0730..27decf49da 100644 --- a/resources/lang/en/admin/settings/general.php +++ b/resources/lang/en/admin/settings/general.php @@ -120,6 +120,8 @@ return array( 'show_alerts_in_menu' => 'Show alerts in top menu', 'show_archived_in_list' => 'Archived Assets', 'show_archived_in_list_text' => 'Show archived assets in the "all assets" listing', + 'show_assigned_assets' => 'Show assets assigned to assets', + 'show_assigned_assets_help' => 'Display assets which were assigned to the other assets in View User -> Assets, View User -> Info -> Print All Assigned and in Account -> View Assigned Assets.', 'show_images_in_email' => 'Show images in emails', 'show_images_in_email_help' => 'Uncheck this box if your Snipe-IT installation is behind a VPN or closed network and users outside the network will not be able to load images served from this installation in their emails.', 'site_name' => 'Site Name', diff --git a/resources/lang/ru/admin/settings/general.php b/resources/lang/ru/admin/settings/general.php index 7bd1652676..dd49412d27 100644 --- a/resources/lang/ru/admin/settings/general.php +++ b/resources/lang/ru/admin/settings/general.php @@ -111,6 +111,8 @@ return array( 'show_alerts_in_menu' => 'Показать оповещения в верхнем меню', 'show_archived_in_list' => 'Архивные активы', 'show_archived_in_list_text' => 'Отображать активы из архива в списке «все активы»', + 'show_assigned_assets' => 'Отображать активы которые назначены другим активам', + 'show_assigned_assets_help' => 'Отображать активы которые назначены другим активам в: Показать пользователя -> Активы, Показать пользователя -> Информация -> Печать всех назначенных, Аккаунт -> Показать присвоенные активы.', 'show_images_in_email' => 'Показать изображения в письмах', 'show_images_in_email_help' => 'Снимите этот флажок, если ваша установка Snipe-IT находится за VPN или в закрытой сети в случае, если в E-mail-ах, которые просматриваются пользователями за пределами указанной сети не отбражаются/не загружаются изображения из данной установки Snipe-IT.', 'site_name' => 'Название сайта', diff --git a/resources/lang/uk/admin/settings/general.php b/resources/lang/uk/admin/settings/general.php index 96034b079f..9ffacc1c53 100644 --- a/resources/lang/uk/admin/settings/general.php +++ b/resources/lang/uk/admin/settings/general.php @@ -92,6 +92,8 @@ return array( 'logo_print_assets_help' => 'Use branding on printable asset lists ', 'full_multiple_companies_support_help_text' => 'Restricting users (including admins) assigned to companies to their company\'s assets.', 'full_multiple_companies_support_text' => 'Full Multiple Companies Support', + 'show_assigned_assets' => 'Показувати активи які призначені іншим активам', + 'show_assigned_assets_help' => 'Відображати активи які призначені іншим активам у: Перегляд коритувача -> Активи, Перегляд коритувача -> Інфо -> Друкувати всі призначення та Аккаунт -> Показати прив\'язані активи.', 'show_in_model_list' => 'Show in Model Dropdowns', 'optional' => 'optional', 'per_page' => 'Results Per Page', diff --git a/resources/lang/uk/admin/users/general.php b/resources/lang/uk/admin/users/general.php index a26c930c38..1e2651cfa4 100644 --- a/resources/lang/uk/admin/users/general.php +++ b/resources/lang/uk/admin/users/general.php @@ -17,7 +17,7 @@ return array( 'restore_user' => 'Click here to restore them.', 'last_login' => 'Останній вхід', 'ldap_config_text' => 'LDAP configuration settings can be found Admin > Settings. The (optional) selected location will be set for all imported users.', - 'print_assigned' => 'Print All Assigned', + 'print_assigned' => 'Друкувати всі призначення', 'software_user' => 'Software Checked out to :name', 'view_user' => 'View User :name', 'usercsv' => 'Файл CSV', diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index 2fdde4554f..5c86b1eecb 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -44,6 +44,7 @@ View Assets for {{ $user->present()->fullName() }} }'> + # {{ trans('general.category') }} {{ trans('admin/hardware/table.asset_tag') }} {{ trans('general.name') }} @@ -54,8 +55,12 @@ View Assets for {{ $user->present()->fullName() }} + @php + $counter = 1 + @endphp @foreach ($user->assets as $asset) + {{ $counter }} {{ $asset->model->category->name }} {{ $asset->asset_tag }} {{ $asset->name }} @@ -74,6 +79,39 @@ View Assets for {{ $user->present()->fullName() }} @endif + @if($settings->show_assigned_assets) + @php + $assignedCounter = 1 + @endphp + @foreach ($asset->assignedAssets as $asset) + + {{ $counter }}.{{ $assignedCounter }} + {{ $asset->model->category->name }} + {{ $asset->asset_tag }} + {{ $asset->name }} + + @if ($asset->physical=='1') + {{ $asset->model->name }} + @endif + + {{ $asset->serial }} + + @if (($asset->image) && ($asset->image!='')) + + + @elseif (($asset->model) && ($asset->model->image!='')) + + @endif + + + @php + $assignedCounter++ + @endphp + @endforeach + @endif + @php + $counter++ + @endphp @endforeach diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index 7fb6a59767..be6eda225f 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -257,6 +257,20 @@ + +
+
+ {{ Form::label('show_assigned_assets', + trans('admin/settings/general.show_assigned_assets')) }} +
+
+ {{ Form::checkbox('show_assigned_assets', '1', Input::old('show_assigned_assets', $setting->show_assigned_assets),array('class' => 'minimal')) }} + {{ trans('general.yes') }} +

{{ trans('admin/settings/general.show_assigned_assets_help') }}

+ {!! $errors->first('show_assigned_assets', ':message') !!} +
+
+
diff --git a/resources/views/users/print.blade.php b/resources/views/users/print.blade.php index 1d8c23cefa..684a7b62f2 100644 --- a/resources/views/users/print.blade.php +++ b/resources/views/users/print.blade.php @@ -87,6 +87,28 @@ {{ $asset->last_checkout }} + @if($settings->show_assigned_assets) + @php + $assignedCounter = 1; + @endphp + @foreach ($asset->assignedAssets as $asset) + + + {{ $counter }}.{{ $assignedCounter }} + {{ $asset->asset_tag }} + {{ $asset->name }} + {{ $asset->model->category->name }} + {{ $asset->model->name }} + {{ $asset->serial }} + + {{ $asset->last_checkout }} + + + @php + $assignedCounter++ + @endphp + @endforeach + @endif @php $counter++ @endphp diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index a33b863d06..cd8a70ae8f 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -353,6 +353,28 @@ @endcan + @if($settings->show_assigned_assets) + @foreach ($asset->assignedAssets as $asset) + + + @if ($asset->physical=='1') + {{ ' – '.$asset->model->name }} + @endif + + + @can('view', $asset) + {{ $asset->asset_tag }} + @endcan + + {!! $asset->present()->nameUrl() !!} + + @can('checkin', $asset) + {{ trans('general.checkin') }} + @endcan + + + @endforeach + @endif @endforeach @endif