Merge branch 'develop' into bug/sc-28148

# Conflicts:
#	routes/web.php
This commit is contained in:
Marcus Moore 2025-02-20 13:23:55 -08:00
commit ae7d7f7d22
No known key found for this signature in database
358 changed files with 3594 additions and 1691 deletions

View file

@ -122,6 +122,25 @@ class Handler extends ExceptionHandler
}
// This is traaaaash but it handles models that are not found while using route model binding :(
// The only alternative is to set that at *each* route, which is crazypants
if ($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) {
$model_name = last(explode('\\', $e->getModel()));
$route = str_plural(strtolower(last(explode('\\', $e->getModel())))).'.index';
// Sigh. Fucking laravel.
if ($route == 'assets.index') {
$route = 'hardware.index';
} elseif ($route == 'reporttemplates.index') {
$route = 'reports/custom';
} elseif ($route == 'predefinedkits.index') {
$route = 'kits.index';
}
return redirect()
->route($route)
->withError(trans('general.generic_model_not_found', ['model' => $model_name]));
}
if ($this->isHttpException($e) && (isset($statusCode)) && ($statusCode == '404' )) {

View file

@ -1520,11 +1520,11 @@ class Helper
if ($redirect_option == 'target') {
switch ($checkout_to_type) {
case 'user':
return route('users.show', ['user' => $request->assigned_user]);
return route('users.show', $request->assigned_user);
case 'location':
return route('locations.show', ['location' => $request->assigned_location]);
return route('locations.show', $request->assigned_location);
case 'asset':
return route('hardware.show', ['hardware' => $request->assigned_asset]);
return route('hardware.show', $request->assigned_asset);
}
}
return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error'));

View file

@ -59,6 +59,8 @@ class IconHelper
return 'fas fa-cog';
case 'angle-left':
return 'fas fa-angle-left';
case 'angle-right':
return 'fas fa-angle-right';
case 'warning':
return 'fas fa-exclamation-triangle';
case 'kits':
@ -184,6 +186,8 @@ class IconHelper
return 'fa-regular fa-id-card';
case 'department' :
return 'fa-solid fa-building-user';
case 'home' :
return 'fa-solid fa-house';
case 'note':
case 'notes':
return 'fas fa-sticky-note';

View file

@ -95,16 +95,10 @@ class AccessoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
*/
public function edit($accessoryId = null) : View | RedirectResponse
public function edit(Accessory $accessory) : View | RedirectResponse
{
if ($item = Accessory::find($accessoryId)) {
$this->authorize($item);
return view('accessories.edit', compact('item'))->with('category_type', 'accessory');
}
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
$this->authorize('update', Accessory::class);
return view('accessories.edit')->with('item', $accessory)->with('category_type', 'accessory');
}
/**
@ -114,19 +108,12 @@ class AccessoriesController extends Controller
* @param int $accessoryId
* @since [v6.0]
*/
public function getClone($accessoryId = null) : View | RedirectResponse
public function getClone(Accessory $accessory) : View | RedirectResponse
{
$this->authorize('create', Accessory::class);
// Check if the asset exists
if (is_null($accessory_to_clone = Accessory::find($accessoryId))) {
// Redirect to the asset management page
return redirect()->route('accessories.index')
->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryId]));
}
$accessory = clone $accessory_to_clone;
$accessory = clone $accessory;
$accessory->id = null;
$accessory->location_id = null;
@ -142,9 +129,9 @@ class AccessoriesController extends Controller
* @param ImageUploadRequest $request
* @param int $accessoryId
*/
public function update(ImageUploadRequest $request, $accessoryId = null) : RedirectResponse
public function update(ImageUploadRequest $request, Accessory $accessory) : RedirectResponse
{
if ($accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessoryId)) {
if ($accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessory->id)) {
$this->authorize($accessory);
@ -231,14 +218,10 @@ class AccessoriesController extends Controller
* @see AccessoriesController::getDataView() method that generates the JSON response
* @since [v1.0]
*/
public function show($accessoryID = null) : View | RedirectResponse
public function show(Accessory $accessory) : View | RedirectResponse
{
$accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessoryID);
$accessory = Accessory::withCount('checkouts as checkouts_count')->find($accessory->id);
$this->authorize('view', $accessory);
if (isset($accessory->id)) {
return view('accessories.view', compact('accessory'));
}
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryID]));
return view('accessories.view', compact('accessory'));
}
}

View file

@ -139,19 +139,12 @@ class AssetMaintenancesController extends Controller
* @version v1.0
* @since [v1.8]
*/
public function edit($assetMaintenanceId = null) : View | RedirectResponse
public function edit(AssetMaintenance $maintenance) : View | RedirectResponse
{
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
// Redirect to the asset maintenance management page
return redirect()->route('maintenances.index')->with('error', trans('admin/asset_maintenances/message.not_found'));
} elseif ((!$assetMaintenance->asset) || ($assetMaintenance->asset->deleted_at!='')) {
// Redirect to the asset maintenance management page
if ((!$maintenance->asset) || ($maintenance->asset->deleted_at!='')) {
return redirect()->route('maintenances.index')->with('error', 'asset does not exist');
} elseif (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
} elseif (! Company::isCurrentUserHasAccess($maintenance->asset)) {
return static::getInsufficientPermissionsRedirect();
}
@ -161,7 +154,7 @@ class AssetMaintenancesController extends Controller
return view('asset_maintenances/edit')
->with('selectedAsset', null)
->with('assetMaintenanceType', $assetMaintenanceType)
->with('item', $assetMaintenance);
->with('item', $maintenance);
}
/**
@ -174,24 +167,20 @@ class AssetMaintenancesController extends Controller
* @version v1.0
* @since [v1.8]
*/
public function update(Request $request, $assetMaintenanceId = null) : View | RedirectResponse
public function update(Request $request, AssetMaintenance $maintenance) : View | RedirectResponse
{
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
// Redirect to the asset maintenance management page
return redirect()->route('maintenances.index')->with('error', trans('admin/asset_maintenances/message.not_found'));
} elseif ((!$assetMaintenance->asset) || ($assetMaintenance->asset->deleted_at!='')) {
// Redirect to the asset maintenance management page
if ((!$maintenance->asset) || ($maintenance->asset->deleted_at!='')) {
return redirect()->route('maintenances.index')->with('error', 'asset does not exist');
} elseif (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
} elseif (! Company::isCurrentUserHasAccess($maintenance->asset)) {
return static::getInsufficientPermissionsRedirect();
}
$assetMaintenance->supplier_id = $request->input('supplier_id');
$assetMaintenance->is_warranty = $request->input('is_warranty');
$assetMaintenance->cost = $request->input('cost');
$assetMaintenance->notes = $request->input('notes');
$maintenance->supplier_id = $request->input('supplier_id');
$maintenance->is_warranty = $request->input('is_warranty');
$maintenance->cost = $request->input('cost');
$maintenance->notes = $request->input('notes');
$asset = Asset::find(request('asset_id'));
@ -200,39 +189,39 @@ class AssetMaintenancesController extends Controller
}
// Save the asset maintenance data
$assetMaintenance->asset_id = $request->input('asset_id');
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$assetMaintenance->title = $request->input('title');
$assetMaintenance->start_date = $request->input('start_date');
$assetMaintenance->completion_date = $request->input('completion_date');
$maintenance->asset_id = $request->input('asset_id');
$maintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$maintenance->title = $request->input('title');
$maintenance->start_date = $request->input('start_date');
$maintenance->completion_date = $request->input('completion_date');
if (($assetMaintenance->completion_date == null)
if (($maintenance->completion_date == null)
) {
if (($assetMaintenance->asset_maintenance_time !== 0)
|| (! is_null($assetMaintenance->asset_maintenance_time))
if (($maintenance->asset_maintenance_time !== 0)
|| (! is_null($maintenance->asset_maintenance_time))
) {
$assetMaintenance->asset_maintenance_time = null;
$maintenance->asset_maintenance_time = null;
}
}
if (($assetMaintenance->completion_date !== null)
&& ($assetMaintenance->start_date !== '')
&& ($assetMaintenance->start_date !== '0000-00-00')
if (($maintenance->completion_date !== null)
&& ($maintenance->start_date !== '')
&& ($maintenance->start_date !== '0000-00-00')
) {
$startDate = Carbon::parse($assetMaintenance->start_date);
$completionDate = Carbon::parse($assetMaintenance->completion_date);
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
$startDate = Carbon::parse($maintenance->start_date);
$completionDate = Carbon::parse($maintenance->completion_date);
$maintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
}
// Was the asset maintenance created?
if ($assetMaintenance->save()) {
if ($maintenance->save()) {
// Redirect to the new asset maintenance page
return redirect()->route('maintenances.index')
->with('success', trans('admin/asset_maintenances/message.edit.success'));
->with('success', trans('admin/asset_maintenances/message.edit.success'));
}
return redirect()->back()->withInput()->withErrors($assetMaintenance->getErrors());
return redirect()->back()->withInput()->withErrors($maintenance->getErrors());
}
/**
@ -271,19 +260,13 @@ class AssetMaintenancesController extends Controller
* @version v1.0
* @since [v1.8]
*/
public function show($assetMaintenanceId) : View | RedirectResponse
public function show(AssetMaintenance $maintenance) : View | RedirectResponse
{
$this->authorize('view', Asset::class);
// Check if the asset maintenance exists
if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
// Redirect to the asset maintenance management page
return redirect()->route('maintenances.index')
->with('error', trans('admin/asset_maintenances/message.not_found'));
} elseif (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
if (! Company::isCurrentUserHasAccess($maintenance->asset)) {
return static::getInsufficientPermissionsRedirect();
}
return view('asset_maintenances/view')->with('assetMaintenance', $assetMaintenance);
return view('asset_maintenances/view')->with('assetMaintenance', $maintenance);
}
}

View file

@ -109,16 +109,11 @@ class AssetModelsController extends Controller
* @since [v1.0]
* @param int $modelId
*/
public function edit($modelId = null) : View | RedirectResponse
public function edit(AssetModel $model) : View | RedirectResponse
{
$this->authorize('update', AssetModel::class);
if ($item = AssetModel::find($modelId)) {
$category_type = 'asset';
return view('models/edit', compact('item', 'category_type'))->with('depreciation_list', Helper::depreciationList());
}
return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist'));
$category_type = 'asset';
return view('models/edit', compact('category_type'))->with('item', $model)->with('depreciation_list', Helper::depreciationList());
}
@ -133,16 +128,11 @@ class AssetModelsController extends Controller
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function update(StoreAssetModelRequest $request, $modelId) : RedirectResponse
public function update(StoreAssetModelRequest $request, AssetModel $model) : RedirectResponse
{
$this->authorize('update', AssetModel::class);
if (is_null($model = AssetModel::find($modelId))) {
return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist'));
}
$model = $request->handleImages($model);
$model->depreciation_id = $request->input('depreciation_id');
$model->eol = $request->input('eol');
$model->name = $request->input('name');
@ -267,16 +257,10 @@ class AssetModelsController extends Controller
* @since [v1.0]
* @param int $modelId
*/
public function show($modelId = null) : View | RedirectResponse
public function show(AssetModel $model) : View | RedirectResponse
{
$this->authorize('view', AssetModel::class);
$model = AssetModel::withTrashed()->find($modelId);
if (isset($model->id)) {
return view('models/view', compact('model'));
}
return redirect()->route('models.index')->with('error', trans('admin/models/message.does_not_exist'));
return view('models/view', compact('model'));
}
/**

View file

@ -26,17 +26,14 @@ class AssetCheckoutController extends Controller
* @since [v1.0]
* @return \Illuminate\Contracts\View\View
*/
public function create($assetId) : View | RedirectResponse
public function create(Asset $asset) : View | RedirectResponse
{
// Check if the asset exists
if (is_null($asset = Asset::with('company')->find(e($assetId)))) {
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
}
$this->authorize('checkout', $asset);
if (!$asset->model) {
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
return redirect()->route('hardware.show', $asset)
->with('error', trans('admin/hardware/general.model_invalid_fix'));
}
if ($asset->availableForCheckout()) {
@ -45,8 +42,8 @@ class AssetCheckoutController extends Controller
->with('table_name', 'Assets');
}
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available'));
return redirect()->route('hardware.index')
->with('error', trans('admin/hardware/message.checkout.not_available'));
}
/**
@ -68,7 +65,7 @@ class AssetCheckoutController extends Controller
$this->authorize('checkout', $asset);
if (!$asset->model) {
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
return redirect()->route('hardware.show', $asset)->with('error', trans('admin/hardware/general.model_invalid_fix'));
}
$admin = auth()->user();

View file

@ -30,6 +30,7 @@ use Illuminate\Http\Response;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use TypeError;
/**
* This class controls all actions related to assets for
@ -201,7 +202,7 @@ class AssetsController extends Controller
$asset->checkOut($target, auth()->user(), date('Y-m-d H:i:s'), $request->input('expected_checkin', null), 'Checked out on asset creation', $request->get('name'), $location);
}
$successes[] = "<a href='" . route('hardware.show', ['hardware' => $asset->id]) . "' style='color: white;'>" . e($asset->asset_tag) . "</a>";
$successes[] = "<a href='" . route('hardware.show', $asset) . "' style='color: white;'>" . e($asset->asset_tag) . "</a>";
} else {
$failures[] = join(",", $asset->getErrors()->all());
@ -222,7 +223,7 @@ class AssetsController extends Controller
//the most common case, keeping it so we don't have to make every use of that translation string be trans_choice'ed
//and re-translated
return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))
->with('success-unescaped', trans('admin/hardware/message.create.success_linked', ['link' => route('hardware.show', ['hardware' => $asset->id]), 'id', 'tag' => e($asset->asset_tag)]));
->with('success-unescaped', trans('admin/hardware/message.create.success_linked', ['link' => route('hardware.show', $asset), 'id', 'tag' => e($asset->asset_tag)]));
} else {
//multi-success
return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))
@ -240,20 +241,14 @@ class AssetsController extends Controller
* Returns a view that presents a form to edit an existing asset.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v1.0]
* @return \Illuminate\Contracts\View\View
*/
public function edit($assetId = null) : View | RedirectResponse
public function edit(Asset $asset) : View | RedirectResponse
{
if (! $item = Asset::find($assetId)) {
// Redirect to the asset management page with error
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
}
//Handles company checks and permissions.
$this->authorize($item);
return view('hardware/edit', compact('item'))
$this->authorize($asset);
return view('hardware/edit')
->with('item', $asset)
->with('statuslabel_list', Helper::statusLabelList())
->with('statuslabel_types', Helper::statusTypeList());
}
@ -267,15 +262,14 @@ class AssetsController extends Controller
* @since [v1.0]
* @return \Illuminate\Contracts\View\View
*/
public function show($assetId = null) : View | RedirectResponse
public function show(Asset $asset) : View | RedirectResponse
{
$asset = Asset::withTrashed()->find($assetId);
$this->authorize('view', $asset);
$settings = Setting::getSettings();
if (isset($asset)) {
$audit_log = Actionlog::where('action_type', '=', 'audit')
->where('item_id', '=', $assetId)
->where('item_id', '=', $asset->id)
->where('item_type', '=', Asset::class)
->orderBy('created_at', 'DESC')->first();
@ -291,7 +285,7 @@ class AssetsController extends Controller
$qr_code = (object) [
'display' => $settings->qr_code == '1',
'url' => route('qr_code/hardware', $asset->id),
'url' => route('qr_code/hardware', $asset),
];
return view('hardware/view', compact('asset', 'qr_code', 'settings'))
@ -308,14 +302,9 @@ class AssetsController extends Controller
* @since [v1.0]
* @author [A. Gianotto] [<snipe@snipe.net>]
*/
public function update(ImageUploadRequest $request, $assetId = null) : RedirectResponse
public function update(ImageUploadRequest $request, Asset $asset) : RedirectResponse
{
// Check if the asset exists
if (! $asset = Asset::find($assetId)) {
// Redirect to the asset management page with error
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
}
$this->authorize($asset);
$asset->status_id = $request->input('status_id', null);
@ -430,7 +419,7 @@ class AssetsController extends Controller
session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => $request->get('checkout_to_type')]);
if ($asset->save()) {
return redirect()->to(Helper::getRedirectOption($request, $assetId, 'Assets'))
return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))
->with('success', trans('admin/hardware/message.update.success'));
}
@ -531,12 +520,12 @@ class AssetsController extends Controller
* @param int $assetId
* @since [v1.0]
*/
public function getQrCode($assetId = null) : Response | BinaryFileResponse | string | bool
public function getQrCode(Asset $asset) : Response | BinaryFileResponse | string | bool
{
$settings = Setting::getSettings();
if (($settings->qr_code == '1') && ($settings->label2_2d_type !== 'none')) {
$asset = Asset::withTrashed()->find($assetId);
if ($asset) {
$size = Helper::barcodeDimensions($settings->label2_2d_type);
$qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png';
@ -590,7 +579,7 @@ class AssetsController extends Controller
file_put_contents($barcode_file, $barcode_obj->getPngData());
return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
} catch (\Exception $e) {
} catch (\Exception|TypeError $e) {
Log::debug('The barcode format is invalid.');
return response(file_get_contents(public_path('uploads/barcodes/invalid_barcode.gif')))->header('Content-type', 'image/gif');
@ -877,12 +866,11 @@ class AssetsController extends Controller
return view('hardware/quickscan-checkin')->with('statusLabel_list', Helper::statusLabelList());
}
public function audit($id)
public function audit(Asset $asset)
{
$settings = Setting::getSettings();
$this->authorize('audit', Asset::class);
$dt = Carbon::now()->addMonths($settings->audit_interval)->toDateString();
$asset = Asset::findOrFail($id);
return view('hardware/audit')->with('asset', $asset)->with('next_audit_date', $dt)->with('locations_list');
}
@ -901,7 +889,7 @@ class AssetsController extends Controller
}
public function auditStore(UploadFileRequest $request, $id)
public function auditStore(UploadFileRequest $request, Asset $asset)
{
$this->authorize('audit', Asset::class);
@ -916,8 +904,6 @@ class AssetsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, $validator->errors()->all()));
}
$asset = Asset::findOrFail($id);
/**
* Even though we do a save() further down, we don't want to log this as a "normal" asset update,
* which would trigger the Asset Observer and would log an asset *update* log entry (because the

View file

@ -88,14 +88,10 @@ class CategoriesController extends Controller
* @param int $categoryId
* @since [v1.0]
*/
public function edit($categoryId = null) : RedirectResponse | View
public function edit(Category $category) : RedirectResponse | View
{
$this->authorize('update', Category::class);
if (is_null($item = Category::find($categoryId))) {
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist'));
}
return view('categories/edit', compact('item'))
return view('categories/edit')->with('item', $category)
->with('category_types', Helper::categoryTypeList());
}
@ -108,19 +104,10 @@ class CategoriesController extends Controller
* @param int $categoryId
* @since [v1.0]
*/
public function update(ImageUploadRequest $request, $categoryId = null) : RedirectResponse
public function update(ImageUploadRequest $request, Category $category) : RedirectResponse
{
$this->authorize('update', Category::class);
if (is_null($category = Category::find($categoryId))) {
// Redirect to the categories management page
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist'));
}
// Update the category data
$category->name = $request->input('name');
// If the item count is > 0, we disable the category type in the edit. Disabled items
// don't POST, so if the category_type is blank we just set it to the default.
// Don't allow the user to change the category_type once it's been created
if (($request->filled('category_type') && ($category->itemCount() > 0))) {
@ -181,10 +168,10 @@ class CategoriesController extends Controller
* @param $id
* @since [v1.8]
*/
public function show($id) : View | RedirectResponse
public function show(Category $category) : View | RedirectResponse
{
$this->authorize('view', Category::class);
if ($category = Category::find($id)) {
if ($category->category_type == 'asset') {
$category_type = 'hardware';
$category_type_route = 'assets';
@ -199,8 +186,5 @@ class CategoriesController extends Controller
return view('categories/view', compact('category'))
->with('category_type', $category_type)
->with('category_type_route', $category_type_route);
}
return redirect()->route('categories.index')->with('error', trans('admin/categories/message.does_not_exist'));
}
}

View file

@ -80,16 +80,10 @@ final class CompaniesController extends Controller
* @since [v1.8]
* @param int $companyId
*/
public function edit($companyId) : View | RedirectResponse
public function edit(Company $company) : View | RedirectResponse
{
if (is_null($item = Company::find($companyId))) {
return redirect()->route('companies.index')
->with('error', trans('admin/companies/message.does_not_exist'));
}
$this->authorize('update', $item);
return view('companies/edit')->with('item', $item);
$this->authorize('update', $company);
return view('companies/edit')->with('item', $company);
}
/**
@ -100,14 +94,10 @@ final class CompaniesController extends Controller
* @param ImageUploadRequest $request
* @param int $companyId
*/
public function update(ImageUploadRequest $request, $companyId) : RedirectResponse
public function update(ImageUploadRequest $request, Company $company) : RedirectResponse
{
if (is_null($company = Company::find($companyId))) {
return redirect()->route('companies.index')->with('error', trans('admin/companies/message.does_not_exist'));
}
$this->authorize('update', $company);
$company->name = $request->input('name');
$company->phone = $request->input('phone');
$company->fax = $request->input('fax');
@ -158,15 +148,9 @@ final class CompaniesController extends Controller
->with('success', trans('admin/companies/message.delete.success'));
}
public function show($id) : View | RedirectResponse
public function show(Company $company) : View | RedirectResponse
{
$this->authorize('view', Company::class);
if (is_null($company = Company::find($id))) {
return redirect()->route('companies.index')
->with('error', trans('admin/companies/message.not_found'));
}
return view('companies/view')->with('company', $company);
}
}

View file

@ -107,15 +107,13 @@ class ComponentsController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function edit($componentId = null)
public function edit(Component $component)
{
if ($item = Component::find($componentId)) {
$this->authorize('update', $item);
return view('components/edit', compact('item'))->with('category_type', 'component');
}
return redirect()->route('components.index')->with('error', trans('admin/components/message.does_not_exist'));
$this->authorize('update', $component);
return view('components/edit')
->with('item', $component)
->with('category_type', 'component');
}
@ -130,11 +128,8 @@ class ComponentsController extends Controller
* @throws \Illuminate\Auth\Access\AuthorizationException
* @since [v3.0]
*/
public function update(ImageUploadRequest $request, $componentId = null)
public function update(ImageUploadRequest $request, Component $component)
{
if (is_null($component = Component::find($componentId))) {
return redirect()->route('components.index')->with('error', trans('admin/components/message.does_not_exist'));
}
$min = $component->numCheckedOut();
$validator = Validator::make($request->all(), [
'qty' => "required|numeric|min:$min",
@ -216,17 +211,9 @@ class ComponentsController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($componentId = null)
public function show(Component $component)
{
$component = Component::find($componentId);
if (isset($component->id)) {
$this->authorize('view', $component);
return view('components/view', compact('component'));
}
// Redirect to the user management page
return redirect()->route('components.index')
->with('error', trans('admin/components/message.does_not_exist'));
}
}

View file

@ -104,15 +104,13 @@ class ConsumablesController extends Controller
* @see ConsumablesController::postEdit() method that stores the form data.
* @since [v1.0]
*/
public function edit($consumableId = null) : View | RedirectResponse
public function edit(Consumable $consumable) : View | RedirectResponse
{
if ($item = Consumable::find($consumableId)) {
$this->authorize($item);
$this->authorize($consumable);
return view('consumables/edit')
->with('item', $consumable)
->with('category_type', 'consumable');
return view('consumables/edit', compact('item'))->with('category_type', 'consumable');
}
return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.does_not_exist'));
}
/**
@ -126,11 +124,8 @@ class ConsumablesController extends Controller
* @see ConsumablesController::getEdit() method that stores the form data.
* @since [v1.0]
*/
public function update(StoreConsumableRequest $request, $consumableId = null)
public function update(StoreConsumableRequest $request, Consumable $consumable)
{
if (is_null($consumable = Consumable::find($consumableId))) {
return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.does_not_exist'));
}
$min = $consumable->numCheckedOut();
$validator = Validator::make($request->all(), [
@ -202,16 +197,11 @@ class ConsumablesController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($consumableId = null)
public function show(Consumable $consumable)
{
$consumable = Consumable::withCount('users as users_consumables')->find($consumableId);
$consumable = Consumable::withCount('users as users_consumables')->find($consumable->id);
$this->authorize($consumable);
if (isset($consumable->id)) {
return view('consumables/view', compact('consumable'));
}
return redirect()->route('consumables.index')
->with('error', trans('admin/consumables/message.does_not_exist'));
return view('consumables/view', compact('consumable'));
}
public function clone(Consumable $consumable) : View

View file

@ -193,10 +193,8 @@ class CustomFieldsController extends Controller
* @param int $id
* @since [v4.0]
*/
public function edit(Request $request, $id) : View | RedirectResponse
public function edit(Request $request, CustomField $field) : View | RedirectResponse
{
if ($field = CustomField::find($id)) {
$this->authorize('update', $field);
$fieldsets = CustomFieldset::get();
$customFormat = '';
@ -210,11 +208,7 @@ class CustomFieldsController extends Controller
'fieldsets' => $fieldsets,
'predefinedFormats' => Helper::predefined_formats(),
]);
}
return redirect()->route("fields.index")
->with("error", trans('admin/custom_fields/message.field.invalid'));
}
@ -229,13 +223,9 @@ class CustomFieldsController extends Controller
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function update(CustomFieldRequest $request, $id) : RedirectResponse
public function update(CustomFieldRequest $request, CustomField $field) : RedirectResponse
{
$field = CustomField::find($id);
$this->authorize('update', $field);
$show_in_email = $request->get("show_in_email", 0);
$display_in_user_view = $request->get("display_in_user_view", 0);

View file

@ -35,10 +35,12 @@ class CustomFieldsetsController extends Controller
* @param int $id
* @since [v1.8]
*/
public function show($id) : View | RedirectResponse
public function show(CustomFieldset $fieldset) : View | RedirectResponse
{
$cfset = CustomFieldset::with('fields')
->where('id', '=', $id)->orderBy('id', 'ASC')->first();
->where('id', '=', $fieldset->id)
->orderBy('id', 'ASC')
->first();
$this->authorize('view', $cfset);
@ -122,16 +124,10 @@ class CustomFieldsetsController extends Controller
* @param int $id
* @since [v6.0.14]
*/
public function edit($id) : View | RedirectResponse
public function edit(CustomFieldset $fieldset) : View | RedirectResponse
{
$this->authorize('create', CustomField::class);
if ($fieldset = CustomFieldset::find($id)) {
return view('custom_fields.fieldsets.edit')->with('item', $fieldset);
}
return redirect()->route('fields.index')->with('error', trans('admin/custom_fields/general.fieldset_does_not_exist', ['id' => $id]));
return view('custom_fields.fieldsets.edit')->with('item', $fieldset);
}
/**
@ -141,23 +137,18 @@ class CustomFieldsetsController extends Controller
* @param int $id
* @since [v6.0.14]
*/
public function update(Request $request, $id) : RedirectResponse
public function update(Request $request, CustomFieldset $fieldset) : RedirectResponse
{
$this->authorize('create', CustomField::class);
if ($fieldset = CustomFieldset::find($id)) {
$fieldset->name = $request->input('name');
if ($fieldset->save()) {
return redirect()->route('fields.index')->with('success', trans('admin/custom_fields/general.fieldset_updated'));
}
return redirect()->back()->withInput()->withErrors($fieldset->getErrors());
$fieldset->name = $request->input('name');
if ($fieldset->save()) {
return redirect()->route('fields.index')->with('success', trans('admin/custom_fields/general.fieldset_updated'));
}
return redirect()->route('fields.index')->with('error', trans('admin/custom_fields/general.fieldset_does_not_exist', ['id' => $id]));
return redirect()->back()->withInput()->withErrors($fieldset->getErrors());
}
/**

View file

@ -73,17 +73,10 @@ class DepartmentsController extends Controller
* @param int $id
* @since [v4.0]
*/
public function show($id) : View | RedirectResponse
public function show(Department $department) : View | RedirectResponse
{
$department = Department::find($id);
$this->authorize('view', $department);
if (isset($department->id)) {
return view('departments/view', compact('department'));
}
return redirect()->route('departments.index')->with('error', trans('admin/departments/message.does_not_exist'));
return view('departments/view', compact('department'));
}
/**
@ -139,15 +132,10 @@ class DepartmentsController extends Controller
* @param int $departmentId
* @since [v1.0]
*/
public function edit($departmentId = null) : View | RedirectResponse
public function edit(Department $department) : View | RedirectResponse
{
if (is_null($item = Department::find($departmentId))) {
return redirect()->back()->with('error', trans('admin/locations/message.does_not_exist'));
}
$this->authorize('update', $item);
return view('departments/edit', compact('item'));
$this->authorize('update', $department);
return view('departments/edit')->with('item', $department);
}
/**
@ -158,11 +146,8 @@ class DepartmentsController extends Controller
* @param int $departmentId
* @since [v1.0]
*/
public function update(ImageUploadRequest $request, $id) : RedirectResponse
public function update(ImageUploadRequest $request, Department $department) : RedirectResponse
{
if (is_null($department = Department::find($id))) {
return redirect()->route('departments.index')->with('error', trans('admin/departments/message.does_not_exist'));
}
$this->authorize('update', $department);

View file

@ -95,17 +95,11 @@ class DepreciationsController extends Controller
* @param int $depreciationId
* @since [v1.0]
*/
public function edit($depreciationId = null) : RedirectResponse | View
public function edit(Depreciation $depreciation) : RedirectResponse | View
{
// Check if the depreciation exists
if (is_null($item = Depreciation::find($depreciationId))) {
// Redirect to the blogs management page
return redirect()->route('depreciations.index')->with('error', trans('admin/depreciations/message.does_not_exist'));
}
$this->authorize('update', $item);
return view('depreciations/edit', compact('item'));
$this->authorize('update', $depreciation);
return view('depreciations/edit')->with('item', $depreciation);
}
/**
@ -117,17 +111,10 @@ class DepreciationsController extends Controller
* @param int $depreciationId
* @since [v1.0]
*/
public function update(Request $request, $depreciationId = null) : RedirectResponse
public function update(Request $request, Depreciation $depreciation) : RedirectResponse
{
// Check if the depreciation exists
if (is_null($depreciation = Depreciation::find($depreciationId))) {
// Redirect to the blogs management page
return redirect()->route('depreciations.index')->with('error', trans('admin/depreciations/message.does_not_exist'));
}
$this->authorize('update', $depreciation);
// Depreciation data
$depreciation->name = $request->input('name');
$depreciation->months = $request->input('months');
@ -191,12 +178,12 @@ class DepreciationsController extends Controller
* @param int $depreciationId
* @since [v1.0]
*/
public function show($id) : View | RedirectResponse
public function show(Depreciation $depreciation) : View | RedirectResponse
{
$depreciation = Depreciation::withCount('assets as assets_count')
->withCount('models as models_count')
->withCount('licenses as licenses_count')
->find($id);
->find($depreciation->id);
$this->authorize('view', $depreciation);

View file

@ -79,19 +79,12 @@ class GroupsController extends Controller
* @param int $id
* @since [v1.0]
*/
public function edit($id) : View | RedirectResponse
public function edit(Group $group) : View | RedirectResponse
{
$group = Group::find($id);
if ($group) {
$permissions = config('permissions');
$groupPermissions = $group->decodePermissions();
$selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions);
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'));
}
return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id]));
$permissions = config('permissions');
$groupPermissions = $group->decodePermissions();
$selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions);
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'));
}
/**
@ -102,11 +95,8 @@ class GroupsController extends Controller
* @param int $id
* @since [v1.0]
*/
public function update(Request $request, $id = null) : RedirectResponse
public function update(Request $request, Group $group) : RedirectResponse
{
if (! $group = Group::find($id)) {
return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id]));
}
$group->name = $request->input('name');
$group->permissions = json_encode($request->input('permission'));
$group->notes = $request->input('notes');
@ -151,14 +141,8 @@ class GroupsController extends Controller
* @param $id
* @since [v4.0.11]
*/
public function show($id) : View | RedirectResponse
public function show(Group $group) : View | RedirectResponse
{
$group = Group::find($id);
if ($group) {
return view('groups/view', compact('group'));
}
return redirect()->route('groups.index')->with('error', trans('admin/groups/message.group_not_found', ['id' => $id]));
return view('groups/view', compact('group'));
}
}

View file

@ -4,10 +4,8 @@ namespace App\Http\Controllers\Kits;
use App\Http\Controllers\CheckInOutRequest;
use App\Http\Controllers\Controller;
use App\Models\PredefinedKit;
use App\Models\Asset;
use App\Models\PredefinedLicence;
use App\Models\PredefinedModel;
use App\Models\PredefinedKit;
use App\Models\User;
use App\Services\PredefinedKitCheckoutService;
use Illuminate\Http\Request;
@ -35,12 +33,9 @@ class CheckoutKitController extends Controller
* @author [D. Minaev.] [<dmitriy.minaev.v@gmail.com>]
* @return \Illuminate\Contracts\View\View View to checkout
*/
public function showCheckout($kit_id)
public function showCheckout(PredefinedKit $kit)
{
$this->authorize('checkout', Asset::class);
$kit = PredefinedKit::findOrFail($kit_id);
return view('kits/checkout')->with('kit', $kit);
}

View file

@ -76,17 +76,15 @@ class PredefinedKitsController extends Controller
* @param int $kit_id
* @return \Illuminate\Contracts\View\View
*/
public function edit($kit_id = null)
public function edit(PredefinedKit $kit)
{
$this->authorize('update', PredefinedKit::class);
if ($kit = PredefinedKit::find($kit_id)) {
return view('kits/edit')
->with('item', $kit)
->with('models', $kit->models)
->with('licenses', $kit->licenses);
}
return redirect()->route('kits.index')->with('error', trans('admin/kits/general.kit_none'));
}
/**
@ -98,15 +96,9 @@ class PredefinedKitsController extends Controller
* @param int $kit_id
* @return \Illuminate\Http\RedirectResponse
*/
public function update(ImageUploadRequest $request, $kit_id = null)
public function update(ImageUploadRequest $request, PredefinedKit $kit)
{
$this->authorize('update', PredefinedKit::class);
// Check if the kit exists
if (is_null($kit = PredefinedKit::find($kit_id))) {
// Redirect to the kits management page
return redirect()->route('kits.index')->with('error', trans('admin/kits/general.kit_none'));
}
$kit->name = $request->input('name');
if ($kit->save()) {
@ -153,9 +145,9 @@ class PredefinedKitsController extends Controller
* @param int $modelId
* @return \Illuminate\Contracts\View\View
*/
public function show($kit_id = null)
public function show(PredefinedKit $kit)
{
return $this->edit($kit_id);
return $this->edit($kit);
}
/**

View file

@ -28,16 +28,11 @@ class LicenseCheckinController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function create($seatId = null, $backTo = null)
public function create(LicenseSeat $licenseSeat, $backTo = null)
{
// Check if the asset exists
if (is_null($licenseSeat = LicenseSeat::find($seatId)) || is_null($license = License::find($licenseSeat->license_id))) {
// Redirect to the asset management page with error
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found'));
}
$license = License::find($licenseSeat->license_id);
$this->authorize('checkout', $license);
return view('licenses/checkin', compact('licenseSeat'))->with('backto', $backTo);
}

View file

@ -28,33 +28,24 @@ class LicenseCheckoutController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function create($id)
public function create(License $license)
{
$this->authorize('checkout', $license);
if ($license = License::find($id)) {
if ($license->category) {
$this->authorize('checkout', $license);
if ($license->category) {
// Make sure there is at least one available to checkout
if ($license->availCount()->count() < 1){
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.checkout.not_enough_seats'));
}
// Return the checkout view
return view('licenses/checkout', compact('license'));
// Make sure there is at least one available to checkout
if ($license->availCount()->count() < 1) {
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.checkout.not_enough_seats'));
}
// Invalid category
return redirect()->route('licenses.edit', ['license' => $license->id])
->with('error', trans('general.invalid_item_category_single', ['type' => trans('general.license')]));
// Return the checkout view
return view('licenses/checkout', compact('license'));
}
// Not found
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found'));
// Invalid category
return redirect()->route('licenses.edit', ['license' => $license->id])
->with('error', trans('general.invalid_item_category_single', ['type' => trans('general.license')]));
}

View file

@ -121,13 +121,10 @@ class LicensesController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function edit($licenseId = null)
public function edit(License $license)
{
if (is_null($item = License::find($licenseId))) {
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.does_not_exist'));
}
$this->authorize('update', $item);
$this->authorize('update', $license);
$maintained_list = [
'' => 'Maintained',
@ -135,7 +132,8 @@ class LicensesController extends Controller
'0' => 'No',
];
return view('licenses/edit', compact('item'))
return view('licenses/edit')
->with('item', $license)
->with('depreciation_list', Helper::depreciationList())
->with('maintained_list', $maintained_list);
}
@ -153,11 +151,9 @@ class LicensesController extends Controller
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function update(Request $request, $licenseId = null)
public function update(Request $request, License $license)
{
if (is_null($license = License::find($licenseId))) {
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.does_not_exist'));
}
$this->authorize('update', $license);
@ -201,10 +197,10 @@ class LicensesController extends Controller
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy($licenseId)
public function destroy(License $license)
{
// Check if the license exists
if (is_null($license = License::find($licenseId))) {
if (is_null($license = License::find($license->id))) {
// Redirect to the license management page
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.not_found'));
}
@ -238,14 +234,9 @@ class LicensesController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($licenseId = null)
public function show(License $license)
{
$license = License::with('assignedusers')->find($licenseId);
if (!$license) {
return redirect()->route('licenses.index')
->with('error', trans('admin/licenses/message.does_not_exist'));
}
$license = License::with('assignedusers')->find($license->id);
$users_count = User::where('autoassign_licenses', '1')->count();
$total_seats_count = $license->totalSeatsByLicenseID();
@ -267,10 +258,10 @@ class LicensesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $licenseId
* @return \Illuminate\Http\RedirectResponse
* @return \Illuminate\Http\RedirectResponse | \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function getClone($licenseId = null)
public function getClone($licenseId = null) : \Illuminate\Contracts\View\View | \Illuminate\Http\RedirectResponse
{
if (is_null($license_to_clone = License::find($licenseId))) {
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.does_not_exist'));

View file

@ -97,15 +97,10 @@ class LocationsController extends Controller
* @param int $locationId
* @since [v1.0]
*/
public function edit($locationId = null) : View | RedirectResponse
public function edit(Location $location) : View | RedirectResponse
{
$this->authorize('update', Location::class);
// Check if the location exists
if (is_null($item = Location::find($locationId))) {
return redirect()->route('locations.index')->with('error', trans('admin/locations/message.does_not_exist'));
}
return view('locations/edit', compact('item'));
return view('locations/edit');
}
/**
@ -117,15 +112,10 @@ class LocationsController extends Controller
* @param int $locationId
* @since [v1.0]
*/
public function update(ImageUploadRequest $request, $locationId = null) : RedirectResponse
public function update(ImageUploadRequest $request, Location $location) : RedirectResponse
{
$this->authorize('update', Location::class);
// Check if the location exists
if (is_null($location = Location::find($locationId))) {
return redirect()->route('locations.index')->with('error', trans('admin/locations/message.does_not_exist'));
}
// Update the location data
$location->name = $request->input('name');
$location->parent_id = $request->input('parent_id', null);
$location->currency = $request->input('currency', '$');
@ -194,7 +184,7 @@ class LocationsController extends Controller
* @param int $id
* @since [v1.0]
*/
public function show($id = null) : View | RedirectResponse
public function show(Location $location) : View | RedirectResponse
{
$location = Location::withCount('assignedAssets as assigned_assets_count')
->withCount('assets as assets_count')
@ -202,7 +192,7 @@ class LocationsController extends Controller
->withCount('children as children_count')
->withCount('users as users_count')
->withTrashed()
->find($id);
->find($location->id);
if (isset($location->id)) {
return view('locations/view', compact('location'));

View file

@ -85,18 +85,10 @@ class ManufacturersController extends Controller
* @param int $manufacturerId
* @since [v1.0]
*/
public function edit($manufacturerId = null) : View | RedirectResponse
public function edit(Manufacturer $manufacturer) : View | RedirectResponse
{
// Handles manufacturer checks and permissions.
$this->authorize('update', Manufacturer::class);
// Check if the manufacturer exists
if (! $item = Manufacturer::find($manufacturerId)) {
return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.does_not_exist'));
}
// Show the page
return view('manufacturers/edit', compact('item'));
return view('manufacturers/edit')->with('item', $manufacturer);
}
/**
@ -108,16 +100,10 @@ class ManufacturersController extends Controller
* @param int $manufacturerId
* @since [v1.0]
*/
public function update(ImageUploadRequest $request, $manufacturerId = null) : RedirectResponse
public function update(ImageUploadRequest $request, Manufacturer $manufacturer) : RedirectResponse
{
$this->authorize('update', Manufacturer::class);
// Check if the manufacturer exists
if (is_null($manufacturer = Manufacturer::find($manufacturerId))) {
// Redirect to the manufacturer page
return redirect()->route('manufacturers.index')->with('error', trans('admin/manufacturers/message.does_not_exist'));
}
// Save the data
$manufacturer->name = $request->input('name');
$manufacturer->url = $request->input('url');
$manufacturer->support_url = $request->input('support_url');
@ -185,18 +171,10 @@ class ManufacturersController extends Controller
* @param int $manufacturerId
* @since [v1.0]
*/
public function show($manufacturerId = null) : View | RedirectResponse
public function show(Manufacturer $manufacturer) : View | RedirectResponse
{
$this->authorize('view', Manufacturer::class);
$manufacturer = Manufacturer::find($manufacturerId);
if (isset($manufacturer->id)) {
return view('manufacturers/view', compact('manufacturer'));
}
$error = trans('admin/manufacturers/message.does_not_exist');
// Redirect to the user management page
return redirect()->route('manufacturers.index')->with('error', $error);
return view('manufacturers/view', compact('manufacturer'));
}
/**

View file

@ -26,14 +26,10 @@ class StatuslabelsController extends Controller
return view('statuslabels.index');
}
public function show($id) : View | RedirectResponse
public function show(Statuslabel $statuslabel) : View | RedirectResponse
{
$this->authorize('view', Statuslabel::class);
if ($statuslabel = Statuslabel::find($id)) {
return view('statuslabels.view')->with('statuslabel', $statuslabel);
}
return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.does_not_exist'));
return view('statuslabels.view')->with('statuslabel', $statuslabel);
}
/**
@ -91,20 +87,15 @@ class StatuslabelsController extends Controller
*
* @param int $statuslabelId
*/
public function edit($statuslabelId = null) : View | RedirectResponse
public function edit(Statuslabel $statuslabel) : View | RedirectResponse
{
$this->authorize('update', Statuslabel::class);
// Check if the Statuslabel exists
if (is_null($item = Statuslabel::find($statuslabelId))) {
// Redirect to the blogs management page
return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.does_not_exist'));
}
$use_statuslabel_type = $item->getStatuslabelType();
$statuslabel_types = ['' => trans('admin/hardware/form.select_statustype')] + ['undeployable' => trans('admin/hardware/general.undeployable')] + ['pending' => trans('admin/hardware/general.pending')] + ['archived' => trans('admin/hardware/general.archived')] + ['deployable' => trans('admin/hardware/general.deployable')];
return view('statuslabels/edit', compact('item', 'statuslabel_types'))->with('use_statuslabel_type', $use_statuslabel_type);
return view('statuslabels/edit', compact('statuslabel_types'))
->with('item', $statuslabel)
->with('use_statuslabel_type', $statuslabel);
}
/**
@ -112,14 +103,9 @@ class StatuslabelsController extends Controller
*
* @param int $statuslabelId
*/
public function update(Request $request, $statuslabelId = null) : RedirectResponse
public function update(Request $request, Statuslabel $statuslabel) : RedirectResponse
{
$this->authorize('update', Statuslabel::class);
// Check if the Statuslabel exists
if (is_null($statuslabel = Statuslabel::find($statuslabelId))) {
// Redirect to the blogs management page
return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.does_not_exist'));
}
if (! $request->filled('statuslabel_types')) {
return redirect()->back()->withInput()->withErrors(['statuslabel_types' => trans('validation.statuslabel_type')]);

View file

@ -77,17 +77,10 @@ class SuppliersController extends Controller
*
* @param int $supplierId
*/
public function edit($supplierId = null) : View | RedirectResponse
public function edit(Supplier $supplier) : View | RedirectResponse
{
$this->authorize('update', Supplier::class);
// Check if the supplier exists
if (is_null($item = Supplier::find($supplierId))) {
// Redirect to the supplier page
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.does_not_exist'));
}
// Show the page
return view('suppliers/edit', compact('item'));
return view('suppliers/edit')->with('item', $supplier);
}
/**
@ -95,14 +88,9 @@ class SuppliersController extends Controller
*
* @param int $supplierId
*/
public function update($supplierId, ImageUploadRequest $request) : RedirectResponse
public function update(ImageUploadRequest $request, Supplier $supplier) : RedirectResponse
{
$this->authorize('update', Supplier::class);
if (is_null($supplier = Supplier::find($supplierId))) {
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.does_not_exist'));
}
// Save the data
$supplier->name = request('name');
$supplier->address = request('address');
@ -163,15 +151,10 @@ class SuppliersController extends Controller
* @param null $supplierId
* @internal param int $assetId
*/
public function show($supplierId = null) : View | RedirectResponse
public function show(Supplier $supplier) : View | RedirectResponse
{
$this->authorize('view', Supplier::class);
$supplier = Supplier::find($supplierId);
return view('suppliers/view', compact('supplier'));
if (isset($supplier->id)) {
return view('suppliers/view', compact('supplier'));
}
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.does_not_exist'));
}
}

View file

@ -182,11 +182,11 @@ class UsersController extends Controller
* @internal param int $id
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function edit($id)
public function edit(User $user)
{
$this->authorize('update', User::class);
$user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($id);
$user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($user->id);
if ($user) {
@ -198,7 +198,7 @@ class UsersController extends Controller
$userPermissions = Helper::selectedPermissionsArray($permissions, $user->permissions);
$permissions = $this->filterDisplayable($permissions);
return view('users/edit', compact('user', 'groups', 'userGroups', 'permissions', 'userPermissions'))->with('item', $user);
return view('users/edit', compact('user', 'groups', 'userGroups', 'permissions', 'userPermissions'));
}
return redirect()->route('users.index')->with('error', trans('admin/users/message.user_not_found', compact('id')));
@ -324,7 +324,7 @@ class UsersController extends Controller
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy(DeleteUserRequest $request, $id = null)
public function destroy(DeleteUserRequest $request, $id)
{
$this->authorize('delete', User::class);
@ -398,23 +398,18 @@ class UsersController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($userId = null)
public function show(User $user)
{
// Make sure the user can view users at all
$this->authorize('view', User::class);
$user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($userId);
$user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($user->id);
// Make sure they can view this particular user
$this->authorize('view', $user);
if ($user) {
$userlog = $user->userlog->load('item');
return view('users/view', compact('user', 'userlog'))->with('settings', Setting::getSettings());
}
return redirect()->route('users.index')->with('error', trans('admin/users/message.user_not_found', ['id' => $userId]));
}
@ -428,7 +423,7 @@ class UsersController extends Controller
* @return \Illuminate\Contracts\View\View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function getClone(Request $request, $id = null)
public function getClone(Request $request, User $user)
{
$this->authorize('create', User::class);
@ -438,7 +433,7 @@ class UsersController extends Controller
app('request')->request->set('permissions', $permissions);
$user_to_clone = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id);
$user_to_clone = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($user->id);
// Make sure they can view this particular user
$this->authorize('view', $user_to_clone);

View file

@ -24,7 +24,7 @@ class DeleteUserRequest extends FormRequest
public function prepareForValidation(): void
{
$user_to_delete = User::withTrashed()->find(request()->route('user'));
$user_to_delete = User::withTrashed()->with('managesUsers')->find(request()->route('user'));
if ($user_to_delete) {
$this->merge([
@ -61,7 +61,8 @@ class DeleteUserRequest extends FormRequest
public function messages(): array
{
$user_to_delete = User::withTrashed()->find(request()->route('user'));
$user_to_delete = User::withTrashed()->with('managesUsers')->find(request()->route('user'));
$messages = [];
if ($user_to_delete) {

View file

@ -22,6 +22,15 @@ class AssetMaintenancesPresenter extends Presenter
'title' => trans('general.id'),
'visible' => false,
], [
'field' => 'title',
'searchable' => true,
'sortable' => true,
'switchable' => true,
'title' => trans('general.name'),
'visible' => true,
'formatter' => 'maintenancesLinkFormatter',
],
[
'field' => 'company',
'searchable' => true,
'sortable' => true,

View file

@ -35,7 +35,7 @@ class AssetPresenter extends Presenter
'switchable' => true,
'title' => trans('general.company'),
'visible' => false,
'formatter' => 'assetCompanyObjFilterFormatter',
'formatter' => 'companiesLinkObjFormatter',
], [
'field' => 'name',
'searchable' => true,

View file

@ -28,7 +28,7 @@ class StatusLabelPresenter extends Presenter
'switchable' => false,
'title' => trans('general.name'),
'visible' => true,
'formatter' => 'statuslabelsAssetLinkFormatter',
'formatter' => 'statuslabelsLinkFormatter',
],[
'field' => 'type',
'searchable' => false,

View file

@ -0,0 +1,539 @@
<?php namespace App\Providers;
use App\Models\Accessory;
use App\Models\Asset;
use App\Models\AssetMaintenance;
use App\Models\AssetModel;
use App\Models\Category;
use App\Models\Company;
use App\Models\Component;
use App\Models\Consumable;
use App\Models\CustomField;
use App\Models\CustomFieldset;
use App\Models\Department;
use App\Models\Depreciation;
use App\Models\Group;
use App\Models\License;
use App\Models\LicenseSeat;
use App\Models\Location;
use App\Models\Manufacturer;
use App\Models\PredefinedKit;
use App\Models\Statuslabel;
use App\Models\Supplier;
use App\Models\User;
use Illuminate\Support\ServiceProvider;
use Tabuna\Breadcrumbs\Breadcrumbs;
use Tabuna\Breadcrumbs\Trail;
class BreadcrumbsServiceProvider extends ServiceProvider
{
/**
* Handles the resource routes for first-class objects
*
* @return void
*/
public function boot()
{
// Default home
Breadcrumbs::for('home', fn (Trail $trail) =>
$trail->push('<x-icon type="home" /><span class="sr-only">'.trans('general.dashboard').'</span>', route('home'))
);
/**
* Asset Breadcrumbs
*/
if ((request()->is('hardware*')) && (request()->status!='')) {
Breadcrumbs::for('hardware.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.assets'), route('hardware.index'))
->push(request()->status.' Assets', route('hardware.index', ['status' => request()->status]))
);
} else {
Breadcrumbs::for('hardware.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.assets'), route('hardware.index'))
);
}
Breadcrumbs::for('hardware.create', fn (Trail $trail) =>
$trail->parent('hardware.index', route('hardware.index'))
->push(trans('general.create'), route('hardware.create'))
);
Breadcrumbs::for('hardware.show', fn (Trail $trail, Asset $asset) =>
$trail->parent('hardware.index', route('hardware.index'))
->push($asset->present()->fullName(), route('hardware.show', $asset))
);
Breadcrumbs::for('hardware.edit', fn (Trail $trail, Asset $asset) =>
$trail->parent('hardware.index', route('hardware.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $asset->asset_tag]), route('hardware.edit', $asset))
);
/**
* Asset Model Breadcrumbs
*/
Breadcrumbs::for('models.index', fn (Trail $trail) =>
$trail->parent('hardware.index', route('hardware.index'))
->push(trans('general.asset_models'), route('models.index'))
);
Breadcrumbs::for('models.create', fn (Trail $trail) =>
$trail->parent('models.index', route('models.index'))
->push(trans('general.create'), route('models.create'))
);
Breadcrumbs::for('models.show', fn (Trail $trail, AssetModel $model) =>
$trail->parent('models.index', route('models.index'))
->push($model->name, route('models.show', $model))
);
Breadcrumbs::for('models.edit', fn (Trail $trail, AssetModel $model) =>
$trail->parent('models.index', route('models.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $model->name]), route('models.edit', $model))
);
/**
* Accessories Breadcrumbs
*/
Breadcrumbs::for('accessories.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.accessories'), route('accessories.index'))
);
Breadcrumbs::for('accessories.create', fn (Trail $trail) =>
$trail->parent('accessories.index', route('accessories.index'))
->push(trans('general.create'), route('accessories.create'))
);
Breadcrumbs::for('accessories.show', fn (Trail $trail, Accessory $accessory) =>
$trail->parent('accessories.index', route('accessories.index'))
->push($accessory->name, route('accessories.show', $accessory))
);
Breadcrumbs::for('accessories.edit', fn (Trail $trail, Accessory $accessory) =>
$trail->parent('accessories.index', route('accessories.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $accessory->name]), route('accessories.edit', $accessory))
);
/**
* Categories Breadcrumbs
*/
Breadcrumbs::for('categories.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.categories'), route('categories.index'))
);
Breadcrumbs::for('categories.create', fn (Trail $trail) =>
$trail->parent('categories.index', route('categories.index'))
->push(trans('general.create'), route('categories.create'))
);
Breadcrumbs::for('categories.show', fn (Trail $trail, Category $category) =>
$trail->parent('categories.index', route('categories.index'))
->push($category->name, route('categories.show', $category))
);
Breadcrumbs::for('categories.edit', fn (Trail $trail, Category $category) =>
$trail->parent('categories.index', route('categories.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $category->name]), route('categories.edit', $category))
);
/**
* Company Breadcrumbs
*/
Breadcrumbs::for('companies.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.companies'), route('companies.index'))
);
Breadcrumbs::for('companies.create', fn (Trail $trail) =>
$trail->parent('companies.index', route('companies.index'))
->push(trans('general.create'), route('companies.create'))
);
Breadcrumbs::for('companies.show', fn (Trail $trail, Company $company) =>
$trail->parent('companies.index', route('companies.index'))
->push($company->name, route('companies.show', $company))
);
Breadcrumbs::for('companies.edit', fn (Trail $trail, Company $company) =>
$trail->parent('companies.index', route('companies.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $company->name]), route('companies.edit', $company))
);
/**
* Components Breadcrumbs
*/
Breadcrumbs::for('components.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.components'), route('components.index'))
);
Breadcrumbs::for('components.create', fn (Trail $trail) =>
$trail->parent('components.index', route('components.index'))
->push(trans('general.create'), route('components.create'))
);
Breadcrumbs::for('components.show', fn (Trail $trail, Component $component) =>
$trail->parent('components.index', route('components.index'))
->push($component->name, route('components.show', $component))
);
Breadcrumbs::for('components.edit', fn (Trail $trail, Component $component) =>
$trail->parent('components.index', route('components.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $component->name]), route('components.edit', $component))
);
/**
* Consumables Breadcrumbs
*/
Breadcrumbs::for('consumables.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.consumables'), route('consumables.index'))
);
Breadcrumbs::for('consumables.create', fn (Trail $trail) =>
$trail->parent('consumables.index', route('consumables.index'))
->push(trans('general.create'), route('consumables.create'))
);
Breadcrumbs::for('consumables.show', fn (Trail $trail, Consumable $consumable) =>
$trail->parent('consumables.index', route('consumables.index'))
->push($consumable->name, route('consumables.show', $consumable))
);
Breadcrumbs::for('consumables.edit', fn (Trail $trail, Consumable $consumable) =>
$trail->parent('consumables.index', route('consumables.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $consumable->name]), route('consumables.edit', $consumable))
);
/**
* Custom fields Breadcrumbs
*/
Breadcrumbs::for('fields.index', fn (Trail $trail) =>
$trail->parent('models.index', route('models.index'))
->push(trans('admin/custom_fields/general.custom_fields'), route('fields.index'))
);
Breadcrumbs::for('fields.create', fn (Trail $trail) =>
$trail->parent('fields.index', route('fields.index'))
->push(trans('general.create'), route('fields.create'))
);
Breadcrumbs::for('fields.edit', fn (Trail $trail, CustomField $field) =>
$trail->parent('fields.index', route('fields.index'))
->push($field->name, route('fields.edit', $field))
);
/**
* Custom fieldsets Breadcrumbs
*/
Breadcrumbs::for('fieldsets.create', fn (Trail $trail) =>
$trail->parent('fields.index', route('fields.index'))
->push(trans('general.create'), route('fieldsets.create'))
);
Breadcrumbs::for('fieldsets.show', fn (Trail $trail, CustomFieldset $fieldset) =>
$trail->parent('fields.index', route('fields.index'))
->push($fieldset->name, route('fields.index'))
);
Breadcrumbs::for('fieldsets.edit', fn (Trail $trail, CustomFieldset $fieldset) =>
$trail->parent('fields.index', route('fields.index'))
->push($fieldset->name, route('fieldsets.edit', $fieldset))
);
/**
* Department Breadcrumbs
*/
Breadcrumbs::for('departments.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.departments'), route('departments.index'))
);
Breadcrumbs::for('departments.create', fn (Trail $trail) =>
$trail->parent('departments.index', route('departments.index'))
->push(trans('general.create'), route('departments.create'))
);
Breadcrumbs::for('departments.show', fn (Trail $trail, Department $department) =>
$trail->parent('departments.index', route('departments.index'))
->push($department->name, route('home'))
);
Breadcrumbs::for('departments.edit', fn (Trail $trail, Department $department) =>
$trail->parent('departments.index', route('departments.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $department->name]), route('departments.edit', $department))
);
/**
* Department Breadcrumbs
*/
Breadcrumbs::for('depreciations.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.depreciations'), route('depreciations.index'))
);
Breadcrumbs::for('depreciations.create', fn (Trail $trail) =>
$trail->parent('depreciations.index', route('depreciations.index'))
->push(trans('general.create'), route('depreciations.create'))
);
Breadcrumbs::for('depreciations.show', fn (Trail $trail, Depreciation $depreciation) =>
$trail->parent('depreciations.index', route('depreciations.index'))
->push($depreciation->name, route('depreciations.show', $depreciation))
);
Breadcrumbs::for('depreciations.edit', fn (Trail $trail, Depreciation $depreciation) =>
$trail->parent('depreciations.index', route('depreciations.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $depreciation->name]), route('depreciations.edit', $depreciation))
);
/**
* Groups Breadcrumbs
*/
Breadcrumbs::for('groups.index', fn (Trail $trail) =>
$trail->parent('settings.index', route('settings.index'))
->push(trans('general.groups'), route('groups.index'))
);
Breadcrumbs::for('groups.create', fn (Trail $trail) =>
$trail->parent('groups.index', route('groups.index'))
->push(trans('general.create'), route('groups.create'))
);
Breadcrumbs::for('groups.show', fn (Trail $trail, Group $group) =>
$trail->parent('groups.index', route('groups.index'))
->push($group->name, route('groups.show', $group))
);
Breadcrumbs::for('groups.edit', fn (Trail $trail, Group $group) =>
$trail->parent('groups.index', route('groups.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $group->name]), route('groups.edit', $group))
);
/**
* Licenses Breadcrumbs
*/
Breadcrumbs::for('licenses.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.licenses'), route('licenses.index'))
);
Breadcrumbs::for('licenses.create', fn (Trail $trail) =>
$trail->parent('licenses.index', route('licenses.index'))
->push(trans('general.create'), route('licenses.create'))
);
Breadcrumbs::for('licenses.show', fn (Trail $trail, License $license) =>
$trail->parent('licenses.index', route('licenses.index'))
->push($license->name, route('licenses.show', $license))
);
Breadcrumbs::for('licenses.edit', fn (Trail $trail, License $license) =>
$trail->parent('licenses.index', route('licenses.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $license->name]), route('licenses.edit', $license))
);
/**
* Locations Breadcrumbs
*/
Breadcrumbs::for('locations.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.locations'), route('locations.index'))
);
Breadcrumbs::for('locations.create', fn (Trail $trail) =>
$trail->parent('locations.index', route('locations.index'))
->push(trans('general.create'), route('locations.create'))
);
Breadcrumbs::for('locations.show', fn (Trail $trail, Location $location) =>
$trail->parent('locations.index', route('locations.index'))
->push($location->name, route('locations.show', $location))
);
Breadcrumbs::for('locations.edit', fn (Trail $trail, Location $location) =>
$trail->parent('locations.index', route('locations.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $location->name]), route('locations.edit', $location))
);
/**
* Maintenances Breadcrumbs
*/
Breadcrumbs::for('maintenances.index', fn (Trail $trail) =>
$trail->parent('hardware.index', route('hardware.index'))
->push(trans('general.maintenances'), route('maintenances.index'))
);
Breadcrumbs::for('maintenances.create', fn (Trail $trail) =>
$trail->parent('maintenances.index', route('maintenances.index'))
->push(trans('general.create'), route('maintenances.create'))
);
Breadcrumbs::for('maintenances.show', fn (Trail $trail, AssetMaintenance $maintenance) =>
$trail->parent('maintenances.index', route('locations.index'))
->push($maintenance->title, route('maintenances.show', $maintenance))
);
Breadcrumbs::for('manufacturers.edit', fn (Trail $trail, Manufacturer $manufacturer) =>
$trail->parent('manufacturers.index', route('manufacturers.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $manufacturer->name]), route('manufacturers.edit', $manufacturer))
);
/**
* Manufacturers Breadcrumbs
*/
Breadcrumbs::for('manufacturers.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.manufacturers'), route('manufacturers.index'))
);
Breadcrumbs::for('manufacturers.create', fn (Trail $trail) =>
$trail->parent('manufacturers.index', route('manufacturers.index'))
->push(trans('general.create'), route('manufacturers.create'))
);
Breadcrumbs::for('manufacturers.show', fn (Trail $trail, Manufacturer $manufacturer) =>
$trail->parent('manufacturers.index', route('manufacturers.index'))
->push($manufacturer->name, route('home'))
);
Breadcrumbs::for('manufacturers.edit', fn (Trail $trail, Manufacturer $manufacturer) =>
$trail->parent('manufacturers.index', route('manufacturers.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $manufacturer->name]), route('manufacturers.edit', $manufacturer))
);
/**
* Predefined Kits Breadcrumbs
*/
Breadcrumbs::for('kits.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.kits'), route('kits.index'))
);
Breadcrumbs::for('kits.create', fn (Trail $trail) =>
$trail->parent('kits.index', route('kits.index'))
->push(trans('general.create'), route('kits.create'))
);
Breadcrumbs::for('kits.show', fn (Trail $trail, PredefinedKit $kit) =>
$trail->parent('kits.index', route('kits.index'))
->push($kit->name, route('kits.show', $kit))
);
Breadcrumbs::for('kits.edit', fn (Trail $trail, PredefinedKit $kit) =>
$trail->parent('kits.index', route('kits.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $kit->name]), route('kits.edit', $kit))
);
/**
* Status Labels Breadcrumbs
*/
Breadcrumbs::for('statuslabels.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.status_labels'), route('statuslabels.index'))
);
Breadcrumbs::for('statuslabels.create', fn (Trail $trail) =>
$trail->parent('statuslabels.index', route('statuslabels.index'))
->push(trans('general.create'), route('statuslabels.create'))
);
Breadcrumbs::for('statuslabels.show', fn (Trail $trail, Statuslabel $statuslabel) =>
$trail->parent('statuslabels.index', route('statuslabels.index'))
->push($statuslabel->name, route('statuslabels.show', $statuslabel))
);
Breadcrumbs::for('statuslabels.edit', fn (Trail $trail, Statuslabel $statuslabel) =>
$trail->parent('statuslabels.index', route('statuslabels.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $statuslabel->name]), route('statuslabels.edit', $statuslabel))
);
/**
* Settings Breadcrumbs
*/
Breadcrumbs::for('settings.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.admin'), route('settings.index'))
);
/**
* Suppliers Breadcrumbs
*/
Breadcrumbs::for('suppliers.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.suppliers'), route('suppliers.index'))
);
Breadcrumbs::for('suppliers.create', fn (Trail $trail) =>
$trail->parent('suppliers.index', route('suppliers.index'))
->push(trans('general.create'), route('suppliers.create'))
);
Breadcrumbs::for('suppliers.show', fn (Trail $trail, Supplier $supplier) =>
$trail->parent('suppliers.index', route('suppliers.index'))
->push($supplier->name, route('home'))
);
Breadcrumbs::for('suppliers.edit', fn (Trail $trail, Supplier $supplier) =>
$trail->parent('suppliers.index', route('suppliers.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $supplier->name]), route('suppliers.edit', $supplier))
);
/**
* Users Breadcrumbs
*/
Breadcrumbs::for('users.index', fn (Trail $trail) =>
$trail->parent('home', route('home'))
->push(trans('general.users'), route('users.index'))
);
Breadcrumbs::for('users.create', fn (Trail $trail) =>
$trail->parent('users.index', route('users.index'))
->push(trans('general.create'), route('users.create'))
);
Breadcrumbs::for('users.show', fn (Trail $trail, User $user) =>
$trail->parent('users.index', route('users.index'))
->push($user->username, route('users.show', $user))
);
Breadcrumbs::for('users.edit', fn (Trail $trail, User $user) =>
$trail->parent('users.index', route('users.index'))
->push(trans('general.breadcrumb_button_actions.edit_item', ['name' => $user->name]), route('users.edit', $user))
);
}
}

View file

@ -49,10 +49,6 @@ class SamlServiceProvider extends ServiceProvider
'uses' => 'Auth\SamlController@login', ]
);
Route::group(['prefix' => 'admin', 'middleware' => ['web', 'auth', 'authorize:superuser']], function () {
Route::get('saml', ['as' => 'settings.saml.index', 'uses' => 'SettingsController@getSamlSettings']);
Route::post('saml', ['as' => 'settings.saml.save', 'uses' => 'SettingsController@postSamlSettings']);
});
});
}

View file

@ -66,6 +66,7 @@
"rollbar/rollbar-laravel": "^8.0",
"spatie/laravel-backup": "^8.8",
"spatie/laravel-ignition": "^2.0",
"tabuna/breadcrumbs": "^4.2",
"tecnickcom/tc-lib-barcode": "^1.15",
"tecnickcom/tcpdf": "^6.5",
"unicodeveloper/laravel-password": "^1.0",

68
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "2a6e7f5e039ee2f40605aefc5c5baf08",
"content-hash": "8966b3d72c2db545cd54772d7f049804",
"packages": [
{
"name": "alek13/slack",
@ -10938,6 +10938,72 @@
],
"time": "2024-11-08T15:28:48+00:00"
},
{
"name": "tabuna/breadcrumbs",
"version": "4.2.1",
"source": {
"type": "git",
"url": "https://github.com/tabuna/breadcrumbs.git",
"reference": "1d9047306f67e7fcc86fc7e608f1432f247636da"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tabuna/breadcrumbs/zipball/1d9047306f67e7fcc86fc7e608f1432f247636da",
"reference": "1d9047306f67e7fcc86fc7e608f1432f247636da",
"shasum": ""
},
"require": {
"ext-json": "*",
"laravel/framework": "^10.0|^11.0",
"laravel/serializable-closure": "^1.0|^2.0",
"php": "^8.1"
},
"require-dev": {
"orchestra/testbench": "^8.0|^9.0",
"phpunit/php-code-coverage": "^10.|^11.0",
"phpunit/phpunit": "^10.5|^11.0"
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
"Breadcrumbs": "Tabuna\\Breadcrumbs\\Breadcrumbs"
},
"providers": [
"Tabuna\\Breadcrumbs\\BreadcrumbsServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Tabuna\\Breadcrumbs\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alexandr Chernyaev",
"email": "bliz48rus@gmail.com"
},
{
"name": "Dwight Watson",
"email": "dwight@studentservices.com.au"
},
{
"name": "Dave James Miller",
"email": "dave@davejamesmiller.com"
}
],
"description": "An easy way to add breadcrumbs to your Laravel app.",
"support": {
"issues": "https://github.com/tabuna/breadcrumbs/issues",
"source": "https://github.com/tabuna/breadcrumbs/tree/4.2.1"
},
"time": "2024-11-26T12:21:27+00:00"
},
{
"name": "tecnickcom/tc-lib-barcode",
"version": "1.18.4",

View file

@ -316,6 +316,7 @@ return [
App\Providers\LivewireServiceProvider::class,
App\Providers\MacroServiceProvider::class,
App\Providers\SamlServiceProvider::class,
App\Providers\BreadcrumbsServiceProvider::class,
],

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'crwdns1453:0crwdne1453:0',
'ldap_basedn' => 'crwdns1454:0crwdne1454:0',
'ldap_filter' => 'crwdns1455:0crwdne1455:0',
'ldap_pw_sync' => 'crwdns1692:0crwdne1692:0',
'ldap_pw_sync_help' => 'crwdns1693:0crwdne1693:0',
'ldap_pw_sync' => 'crwdns12882:0crwdne12882:0',
'ldap_pw_sync_help' => 'crwdns12884:0crwdne12884:0',
'ldap_username_field' => 'crwdns1456:0crwdne1456:0',
'ldap_lname_field' => 'crwdns1457:0crwdne1457:0',
'ldap_fname_field' => 'crwdns1458:0crwdne1458:0',
@ -330,6 +330,10 @@ return [
'purge_help' => 'crwdns6469:0crwdne6469:0',
'ldap_extension_warning' => 'crwdns6471:0crwdne6471:0',
'ldap_ad' => 'crwdns6473:0crwdne6473:0',
'ldap_test_label' => 'crwdns12892:0crwdne12892:0',
'ldap_test_login' => 'crwdns12894:0crwdne12894:0',
'ldap_username_placeholder' => 'crwdns12896:0crwdne12896:0',
'ldap_password_placeholder' => 'crwdns12898:0crwdne12898:0',
'employee_number' => 'crwdns6475:0crwdne6475:0',
'create_admin_user' => 'crwdns6477:0crwdne6477:0',
'create_admin_success' => 'crwdns6479:0crwdne6479:0',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'crwdns6729:0crwdne6729:0',
'authentication_success' => 'crwdns6731:0crwdne6731:0'
],
'labels' => [
'null_template' => 'crwdns12900:0crwdne12900:0',
],
'webhook' => [
'sending' => 'crwdns11373:0crwdne11373:0',
'success' => 'crwdns11841:0crwdne11841:0',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'crwdns11843:0crwdne11843:0',
'error_misc' => 'crwdns11383:0crwdne11383:0',
'webhook_fail' => 'crwdns12830:0crwdne12830:0',
'webhook_channel_not_found' => 'crwdns12876:0crwdne12876:0'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'crwdns6115:0crwdne6115:0',
'custom_report' => 'crwdns1139:0crwdne1139:0',
'dashboard' => 'crwdns1202:0crwdne1202:0',
'data_source' => 'crwdns12886:0crwdne12886:0',
'days' => 'crwdns1917:0crwdne1917:0',
'days_to_next_audit' => 'crwdns1918:0crwdne1918:0',
'date' => 'crwdns1045:0crwdne1045:0',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'crwdns1995:0crwdne1995:0',
'lastnamefirstinitial_format' => 'crwdns1999:0crwdne1999:0',
'firstintial_dot_lastname_format' => 'crwdns5948:0crwdne5948:0',
'lastname_dot_firstinitial_format' => 'crwdns12880:0crwdne12880:0',
'firstname_lastname_display' => 'crwdns11779:0crwdne11779:0',
'lastname_firstname_display' => 'crwdns11781:0crwdne11781:0',
'name_display_format' => 'crwdns11783:0crwdne11783:0',
@ -217,6 +219,8 @@ return [
'no' => 'crwdns1075:0crwdne1075:0',
'notes' => 'crwdns1076:0crwdne1076:0',
'note_added' => 'crwdns12858:0crwdne12858:0',
'options' => 'crwdns12888:0crwdne12888:0',
'preview' => 'crwdns12890:0crwdne12890:0',
'add_note' => 'crwdns12860:0crwdne12860:0',
'note_edited' => 'crwdns12862:0crwdne12862:0',
'edit_note' => 'crwdns12864:0crwdne12864:0',
@ -560,6 +564,7 @@ return [
'consumables' => 'crwdns12144:0crwdne12144:0',
'components' => 'crwdns12146:0crwdne12146:0',
],
'more_info' => 'crwdns12288:0crwdne12288:0',
'quickscan_bulk_help' => 'crwdns12290:0crwdne12290:0',
'whoops' => 'crwdns12304:0crwdne12304:0',
@ -576,4 +581,9 @@ return [
'user_managed_passwords_disallow' => 'crwdns12872:0crwdne12872:0',
'user_managed_passwords_allow' => 'crwdns12874:0crwdne12874:0',
// Add form placeholders here
'placeholders' => [
'notes' => 'crwdns12878:0crwdne12878:0',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP-koppel wagwoord',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP-wagwoordsynkronisering',
'ldap_pw_sync_help' => 'Verwyder hierdie vinkje as u nie LDAP-wagwoorde wil laat sinkroniseer met plaaslike wagwoorde nie. As u hierdie opsie uitskakel, beteken dit dat u gebruikers dalk nie kan aanmeld as u LDAP-bediener om een of ander rede onbereikbaar is nie.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Gebruikernaam',
'ldap_lname_field' => 'Van',
'ldap_fname_field' => 'LDAP Voornaam',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Verwyder verwyderde rekords',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Aangepaste bateverslag',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'dae',
'days_to_next_audit' => 'Dae na Volgende Oudit',
'date' => 'datum',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'Geen',
'notes' => 'notas',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'Meer inligting',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Password',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP Password Sync',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords synced with local passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Username Field',
'ldap_lname_field' => 'Last Name',
'ldap_fname_field' => 'LDAP First Name',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Purge Deleted Records',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Custom Asset Report',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'days',
'days_to_next_audit' => 'Days to Next Audit',
'date' => 'Date',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'No',
'notes' => 'Notes',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'More Info',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'لداب ربط كلمة المرور',
'ldap_basedn' => 'قاعدة ربط دن',
'ldap_filter' => 'فلتر لداب',
'ldap_pw_sync' => 'مزامنة كلمة مرور لداب',
'ldap_pw_sync_help' => 'ألغ تحديد هذا المربع إذا كنت لا ترغب في الاحتفاظ بكلمات مرور لداب التي تمت مزامنتها مع كلمات المرور المحلية. ويعني تعطيل هذا أن المستخدمين قد لا يتمكنون من تسجيل الدخول إذا تعذر الوصول إلى خادم لداب لسبب ما.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'حقل اسم المستخدم',
'ldap_lname_field' => 'الكنية',
'ldap_fname_field' => 'لداب الاسم الأول',
@ -330,6 +330,10 @@ return [
'purge_help' => 'تطهير السجلات المحذوفة',
'ldap_extension_warning' => 'لا يبدو أن ملحق LDAP مثبت أو مفعّل على هذا الخادم. لا يزال بإمكانك حفظ الإعدادات الخاصة بك، ولكن ستحتاج إلى تمكين ملحق LDAP لـ PHP قبل أن تعمل مزامنة LDAP أو تسجيل الدخول.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'رقم الموظف',
'create_admin_user' => 'إنشاء مستخدم ::',
'create_admin_success' => 'نجاح! تم إضافة مستخدم المشرف الخاص بك!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'اختبار مصادقة LDAP...',
'authentication_success' => 'تمت المصادقة على المستخدم ضد LDAP بنجاح!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'إرسال رسالة اختبار :app ...',
'success' => 'يعمل تكامل :webhook_name الخاص بك!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'خطأ: 301/302 :endpoint يرجع إعادة توجيه. لأسباب أمنية، نحن لا نتابع إعادة التوجيه. الرجاء استخدام نقطة النهاية الفعلية.',
'error_misc' => 'حدث خطأ ما. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'تخصيص التقرير',
'custom_report' => 'تقرير مخصص للأصول',
'dashboard' => 'لوحة القيادة',
'data_source' => 'Data Source',
'days' => 'أيام',
'days_to_next_audit' => 'أيام إلى التدقيق التالي',
'date' => 'التاريخ',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'الاسم الأول الاسم الأخير (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'اللقب والحرف الاول من الاسم (smithj@example.com)',
'firstintial_dot_lastname_format' => 'الاسم الأخير الأول (jsmith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'الاسم الأول الاسم الأخير (جين سميث)',
'lastname_firstname_display' => 'اسم العائلة الأول (ميث جاني)',
'name_display_format' => 'تنسيق عرض الاسم',
@ -217,6 +219,8 @@ return [
'no' => 'لا',
'notes' => 'مُلاحظات',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count مستهلكة<unk> :count مستهلك',
'components' => ':count مكون<unk> :count مكونات',
],
'more_info' => 'المزيد من المعلومات',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP парола на потребител за връзка',
'ldap_basedn' => 'Базов DN',
'ldap_filter' => 'LDAP филтър',
'ldap_pw_sync' => 'LADP Password SYNC',
'ldap_pw_sync_help' => 'Премахнете отметката в тази клетка ако не желаете да запазите LDAP паролите синхронизирани с локални пароли. Деактивиране на това означава, че вашите потребители може да не успеят да влязат използвайки LDAP сървъри ако са недостижими по някаква причина.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Поле за потребителско име',
'ldap_lname_field' => 'Фамилия',
'ldap_fname_field' => 'LDAP собствено име',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Пречисти изтрити записи',
'ldap_extension_warning' => 'Изглежда, че нямате инсталирани LDAP разширения или не са пуснати на сървъра. Вие можете все пак да запишите настройките, но ще трябва да включите LDAP разширенията за PHP преди да синхронизирате с LDAP, в противен случай няма да можете да се логнете.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Номер на служител',
'create_admin_user' => 'Нов потребител ::',
'create_admin_success' => 'Готово! Вашият админ потребител беше добавен!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Тест LDAP Автентификация...',
'authentication_success' => 'Потребителска Автентификация към LDAP успешна!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Изпращане :app тест съобщение...',
'success' => 'Вашата :webhook_name интеграция работи!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'Грешка 301/302 :endpoint върна пренасочване. От съображения за сигурност, ние не отваряме пренасочванията. Моля ползвайте действителната крайна точка.',
'error_misc' => 'Възникна грешка. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Персонализиран отчет',
'custom_report' => 'Потребителски справки за активи',
'dashboard' => 'Табло',
'data_source' => 'Data Source',
'days' => 'дни',
'days_to_next_audit' => 'Дни до следващия одит',
'date' => 'Дата',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Име Фамилия (jane.smith@example.com)',
'lastnamefirstinitial_format' => 'Фамилно име Инициал на собствено (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Първа буква от името и Фамилия (i.ivanov@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Име Фамилия (Иван Иванов)',
'lastname_firstname_display' => 'Фамилия Име (Иванов Иван)',
'name_display_format' => 'Формат на показване на името',
@ -217,6 +219,8 @@ return [
'no' => 'Не',
'notes' => 'Бележки',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Консуматив|:count Консумативи',
'components' => ':count Компонент|:count Компоненти',
],
'more_info' => 'Повече информация',
'quickscan_bulk_help' => 'Поставянето на отметка в това квадратче ще редактира записа на актива, за да отрази това ново местоположение. Оставянето му без отметка просто ще отбележи местоположението в журнала за проверка. Обърнете внимание, че ако този актив бъде извлечен, той няма да промени местоположението на лицето, актива или местоположението, към които е извлечен.',
'whoops' => 'Упс!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Password',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP Password Sync',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords synced with local passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Username Field',
'ldap_lname_field' => 'Last Name',
'ldap_fname_field' => 'LDAP First Name',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Purge Deleted Records',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Informe de Recursos Personalitzat',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'days',
'days_to_next_audit' => 'Days to Next Audit',
'date' => 'Date',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'No',
'notes' => 'Notes',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'More Info',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Password',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP Password Sync',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords synced with local passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Username Field',
'ldap_lname_field' => 'Last Name',
'ldap_fname_field' => 'LDAP First Name',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Purge Deleted Records',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Custom Asset Report',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'days',
'days_to_next_audit' => 'Days to Next Audit',
'date' => 'Date',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'No',
'notes' => 'Notes',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'More Info',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP heslo připojení',
'ldap_basedn' => 'Základní svázání DN',
'ldap_filter' => 'LDAP filtr',
'ldap_pw_sync' => 'LDAP heslo synchronizace',
'ldap_pw_sync_help' => 'Zrušte zaškrtnutí tohoto políčka, pokud si nepřejete zachovat hesla LDAP synchronizovaná s lokálními hesly. Pokud to zakážete znamená to, že se uživatelé nemusí přihlásit, pokud je váš LDAP server z nějakého důvodu nedostupný.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Pole uživatelského jména',
'ldap_lname_field' => 'Příjmení',
'ldap_fname_field' => 'LDAP jméno',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Vymazat smazané záznamy',
'ldap_extension_warning' => 'Nevypadá to, že LDAP rozšíření je nainstalováno nebo povoleno na tomto serveru. Stále můžete uložit vaše nastavení, ale budete muset povolit LDAP rozšíření pro PHP, než bude fungovat LDAP synchronizace nebo přihlášení.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Osobní číslo',
'create_admin_user' => 'Vytvořit uživatele ::',
'create_admin_success' => 'Úspěch! Administrátorský účet byl přidán!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testování LDAP ověření...',
'authentication_success' => 'Uživatel byl úspěšně ověřen přes LDAP!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Odesílání testovací zprávy :app...',
'success' => 'Vaše integrace :webhook_name funguje!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'CHYBA: 301/302 :endpoint vrací přesměrování. Z bezpečnostních důvodů nesledujeme přesměrování. Použijte prosím skutečný koncový bod.',
'error_misc' => 'Něco se nepovedlo.',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Přizpůsobit report',
'custom_report' => 'Vlastní report majetku',
'dashboard' => 'Nástěnka',
'data_source' => 'Data Source',
'days' => 'dnů',
'days_to_next_audit' => 'Dny k dalšímu auditu',
'date' => 'Datum',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Jméno Příjmení (jan_novak@example.com)',
'lastnamefirstinitial_format' => 'Příjmení první písmeno ze jména (novakj@example.com)',
'firstintial_dot_lastname_format' => 'Iniciál Príjmení (j.novak@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Jméno příjmení (Jane Smith)',
'lastname_firstname_display' => 'Příjmení (Smith Jane)',
'name_display_format' => 'Formát zobrazení jména',
@ -217,6 +219,8 @@ return [
'no' => 'Ne',
'notes' => 'Poznámky',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Spotřební materiál|:count Spotřební materiál',
'components' => ':count komponenta|:count komponenty',
],
'more_info' => 'Více informací',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Cyfrinair i cysylltu trwy LDAP',
'ldap_basedn' => 'DN Cyswllt Sylfaenol',
'ldap_filter' => 'Hidlydd LDAP',
'ldap_pw_sync' => 'Sync cyfrinair LDAP',
'ldap_pw_sync_help' => 'Tynnwch y tic o\'r focs yma os nad ydych am cadw cyfrineiriau LDAP mewn sync a cyfrineiriau lleol. Mae an-alluogi hyn yn feddwl ni ellith defnyddywr mewngofnodi os oes problem hefo\'r server LDAP.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Maes Enw Defnyddiwr',
'ldap_lname_field' => 'Enw Olaf',
'ldap_fname_field' => 'Enw Cyntaf LDAP',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Clirio cofnodion sydd wedi\'i dileu',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Adroddiad Asedau Addasedig',
'dashboard' => 'Dashfwrdd',
'data_source' => 'Data Source',
'days' => 'dyddiau',
'days_to_next_audit' => 'Dyddiau tan yr awdit nesaf',
'date' => 'Dyddiad',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Enw Cyntaf Enw Olaf (jane.smith@example.com)',
'lastnamefirstinitial_format' => 'Enw Olaf Llythyren Cyntaf Enw Cyntaf (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Llythyren Cyntaf Enw Cyntaf Cyfenw (jsmith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'Na',
'notes' => 'Nodiadau',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'Mwy o wybodaeth',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP-bindingsadgangskode',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP-filter',
'ldap_pw_sync' => 'LDAP Password Sync',
'ldap_pw_sync_help' => 'Fjern markeringen i dette felt, hvis du ikke vil beholde LDAP-adgangskoder synkroniseret med lokale adgangskoder. Deaktivering dette betyder, at dine brugere muligvis ikke kan logge ind, hvis din LDAP-server ikke er tilgængelig af en eller anden grund.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Brugernavn felt',
'ldap_lname_field' => 'Efternavn',
'ldap_fname_field' => 'LDAP fornavn',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Ryd slettet poster',
'ldap_extension_warning' => 'Det ser ikke ud som om LDAP- udvidelsen er installeret eller aktiveret på denne server. Du kan stadig gemme dine indstillinger, men du bliver nødt til at aktivere LDAP-udvidelsen til PHP, før LDAP-synkronisering eller login vil virke.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Medarbejdernummer',
'create_admin_user' => 'Opret en bruger ::',
'create_admin_success' => 'Succes! Din admin bruger er blevet tilføjet!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Test LDAP Autentificering...',
'authentication_success' => 'Bruger godkendt mod LDAP!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sender :app test besked...',
'success' => 'Dine :webhook_name Integration virker!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'FEJL: 301/302: endpoint returnerer en omdirigering. Af sikkerhedsmæssige årsager følger vi ikke omdirigeringer. Brug det faktiske slutpunkt.',
'error_misc' => 'Noget gik galt. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Tilpas rapport',
'custom_report' => 'Tilpasset Aktiv Rapport',
'dashboard' => 'Oversigtspanel',
'data_source' => 'Data Source',
'days' => 'dage',
'days_to_next_audit' => 'Dage til næste revision',
'date' => 'Dato',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Fornavn Efternavn (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Efternavn Første initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Første bogstav i fornavn efternavn (jsmith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Fornavn Efternavn (Jane Smith)',
'lastname_firstname_display' => 'Efternavn Fornavn (Smith Jane)',
'name_display_format' => 'Navn Visningsformat',
@ -217,6 +219,8 @@ return [
'no' => 'Nej',
'notes' => 'Noter',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Forbrugsparti:count Forbrugsvarer',
'components' => ':count Komponent:count Komponenter',
],
'more_info' => 'Mere Info',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -50,7 +50,7 @@ return array(
'checkin' => array(
'error' => 'Lizenz wurde nicht zurückgenommen, bitte versuchen Sie es erneut.',
'not_reassignable' => 'License not reassignable',
'not_reassignable' => 'Lizenz nicht neu zuweisbar',
'success' => 'Die Lizenz wurde erfolgreich zurückgenommen'
),

View file

@ -14,9 +14,9 @@ return [
'user_country' => 'Land des Benutzers',
'user_zip' => 'Postleitzahl des Benutzers'
],
'open_saved_template' => 'Open Saved Template',
'save_template' => 'Save Template',
'select_a_template' => 'Select a Template',
'template_name' => 'Template Name',
'update_template' => 'Update Template',
'open_saved_template' => 'Gespeicherte Vorlage öffnen',
'save_template' => 'Vorlage speichern',
'select_a_template' => 'Wählen Sie eine Vorlage aus',
'template_name' => 'Vorlagenname',
'update_template' => 'Vorlage aktualisieren',
];

View file

@ -1,16 +1,16 @@
<?php
return [
'about_templates' => 'About Saved Templates',
'saving_templates_description' => 'Select your options, then enter the name of your template in the box above and click the \'Save Template\' button. Use the dropdown to select a previously saved template.',
'about_templates' => 'Über gespeicherte Vorlagen',
'saving_templates_description' => 'Wählen Sie Ihre Optionen aus, geben Sie dann den Namen Ihrer Vorlage in das Feld oben ein und klicken Sie auf die Schaltfläche „Vorlage speichern“. Verwenden Sie das Dropdown-Menü, um eine zuvor gespeicherte Vorlage auszuwählen.',
'create' => [
'success' => 'Template saved successfully',
'success' => 'Vorlage erfolgreich gespeichert',
],
'update' => [
'success' => 'Template updated successfully',
'success' => 'Vorlage erfolgreich aktualisiert',
],
'delete' => [
'success' => 'Template deleted',
'no_delete_permission' => 'Template does not exist or you do not have permission to delete it.',
'success' => 'Vorlage gelöscht',
'no_delete_permission' => 'Die Vorlage existiert nicht oder Sie sind nicht berechtigt, sie zu löschen.',
],
];

View file

@ -55,7 +55,7 @@ return [
'display_asset_name' => 'Zeige Assetname an',
'display_checkout_date' => 'Zeige Herausgabedatum',
'display_eol' => 'Zeige EOL in der Tabellenansicht',
'display_qr' => 'Zeige 2D Barcode',
'display_qr' => '2D-Barcode anzeigen',
'display_alt_barcode' => 'Zeige 1D Barcode an',
'email_logo' => 'E-Mail-Logo',
'barcode_type' => '2D Barcode Typ',
@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Passwort',
'ldap_basedn' => 'Basis Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP Passwörter synchronisieren',
'ldap_pw_sync_help' => 'Deaktivieren Sie diese Option, wenn Sie nicht möchten, dass LDAP-Passwörter mit lokalen Passwörtern synchronisiert werden. Wenn Sie dies deaktivieren, kann es sein, dass Benutzer sich möglicherweise nicht anmelden können falls der LDAP-Server aus irgendeinem Grund nicht erreichbar ist.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Benutzername',
'ldap_lname_field' => 'Nachname',
'ldap_fname_field' => 'LDAP Vorname',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Inkrementieren und Präfixe',
'labels' => 'Etiketten',
'labels_title' => 'Etiketten-Einstellungen aktualisieren',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Barcodes &amp; Etiketteneinstellungen',
'purge_help' => 'Gelöschte Einträge bereinigen',
'ldap_extension_warning' => 'Es sieht nicht so aus, als ob die LDAP-Erweiterung auf diesem Server installiert oder aktiviert ist. Sie können Ihre Einstellungen trotzdem speichern, aber Sie müssen die LDAP-Erweiterung für PHP aktivieren, bevor die LDAP-Synchronisierung oder der Login funktioniert.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Mitarbeiternummer',
'create_admin_user' => 'Benutzer erstellen ::',
'create_admin_success' => 'Erfolgreich! Ihr Admin-Benutzer wurde hinzugefügt!',
@ -360,9 +364,9 @@ return [
'label2_fields_help' => 'Felder können in der linken Spalte hinzugefügt, entfernt und neu sortiert werden. In jedem Feld können mehrere Optionen für Label und Datenquelle in der rechten Spalte hinzugefügt, entfernt und neu angeordnet werden.',
'help_asterisk_bold' => 'Der eingegebene Text <code>**text**</code> wird in Fettschrift angezeigt',
'help_blank_to_use' => 'Leer lassen, um den Wert von <code>:setting_name</code> zu verwenden',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> verwendet den Wert aus <code>:setting_name</code>. <br>Beachten Sie, dass der Wert der Barcodes der jeweiligen Barcode-Spezifikation entsprechen muss, damit sie erfolgreich generiert werden können. Weitere Einzelheiten finden Sie in der <a href="https://snipe-it.readme.io/docs/barcodes">Dokumentation <i class="fa fa-external-link"></i></a>. ',
'asset_id' => 'Asset-ID',
'data' => 'Daten',
'default' => 'Standard',
'none' => 'Nichts',
'google_callback_help' => 'Dies sollte als Callback-URL in den Google OAuth App-Einstellungen in deinem Unternehmen eingegeben werden&apos;s <strong><a href="https://console.cloud.google.com/" target="_blank">Google Developer Konsole <i class="fa fa-external-link" aria-hidden="true"></i></a></strong>.',
@ -387,13 +391,13 @@ return [
/* Keywords for settings overview help */
'keywords' => [
'brand' => 'Fußzeile, Logo, Druck, Theme, Skin, Header, Farben, Farbe, CSS',
'general_settings' => 'Firmenunterstützung, Unterschrift, Akzeptanz, E-Mail-Format, Benutzernamenformat, Bilder, pro Seite, Vorschaubilder, EULA, Gravatar, TOS, Dashboard, Privatsphäre',
'brand' => 'Fußzeile, Logo, Drucken, Thema, Oberflächendesign, Header, Farben, Farbe, CSS',
'general_settings' => 'Firmensupport, Unterschrift, Akzeptanz, E-Mail-Format, Benutzernamenformat, Bilder, pro Seite, Miniaturansicht, EULA, Gravatar, Nutzungsbedingungen, Dashboard, Datenschutz',
'groups' => 'Berechtigungen, Berechtigungsgruppen, Autorisierung',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'localization' => 'Lokalisierung, Währung, lokal, Lokal, Zeitzone, International, Internationalisierung, Sprache, Sprachen, Übersetzung',
'php_overview' => 'php Info, System, Info',
'purge' => 'Endgültig löschen',
'labels' => 'Etiketten, Barcodes, Strichcode, Tabellen, Druck, UPC, QR, 1D, 2D',
'localization' => 'Lokalisierung, Währung, lokal, Sprache, Zeitzone, Zeitzone, international, Internationalisierung, Sprache, Sprachen, Übersetzung',
'php_overview' => 'PHP-Info, System, Info',
'purge' => 'endgültig löschen',
'security' => 'Passwort, Passwörter, Anforderungen, Zwei-Faktor, Zwei-Faktor, übliche Passwörter, Remote-Login, Logout, Authentifizierung',
],

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'LDAP-Authentifizierung wird getestet...',
'authentication_success' => 'Benutzer wurde erfolgreich gegen LDAP authentifiziert!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => ':app Testnachricht wird gesendet...',
'success' => 'Ihre :webhook_name Integration funktioniert!',
@ -45,6 +48,7 @@ return [
'error' => 'Etwas ist schief gelaufen. :app antwortete mit: :error_message',
'error_redirect' => 'FEHLER: 301/302 :endpoint gibt eine Umleitung zurück. Aus Sicherheitsgründen folgen wir keinen Umleitungen. Bitte verwenden Sie den aktuellen Endpunkt.',
'error_misc' => 'Etwas ist schiefgelaufen. :( ',
'webhook_fail' => '',
'webhook_fail' => ' Webhook-Benachrichtigung fehlgeschlagen: Überprüfen Sie, ob die URL noch gültig ist.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Bericht anpassen',
'custom_report' => 'Benutzerdefinierter Asset-Bericht',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'Tage',
'days_to_next_audit' => 'Tage bis zur nächsten Prüfung',
'date' => 'Datum',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Vorname_Nachname (erika_mustermann@example.com)',
'lastnamefirstinitial_format' => 'Nachname & Initiale des Vornamens (mustere@example.com)',
'firstintial_dot_lastname_format' => 'Initiale des Vornamen.Nachname (e.mustermann@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Vorname Nachname (Max Mustermann)',
'lastname_firstname_display' => 'Nachname Vorname (Mustermann Max)',
'name_display_format' => 'Name Anzeigeformat',
@ -216,12 +218,14 @@ return [
'no_results' => 'Keine Treffer.',
'no' => 'Nein',
'notes' => 'Notizen',
'note_added' => 'Note Added',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
'note_deleted' => 'Note Deleted',
'delete_note' => 'Delete Note',
'note_added' => 'Notiz hinzugefügt',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Notiz hinzufügen',
'note_edited' => 'Notiz bearbeitet',
'edit_note' => 'Notiz bearbeiten',
'note_deleted' => 'Notiz gelöscht',
'delete_note' => 'Notiz löschen',
'order_number' => 'Bestellnummer',
'only_deleted' => 'Nur gelöschte Gegenstände',
'page_menu' => 'Zeige _MENU_ Einträge',
@ -308,7 +312,7 @@ return [
'username_format' => 'Format der Benutzernamen',
'username' => 'Benutzername',
'update' => 'Aktualisieren',
'updating_item' => 'Updating :item',
'updating_item' => ':item wird aktualisiert',
'upload_filetypes_help' => 'Erlaubte Dateitypen sind png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf und rar. Maximale Uploadgröße beträgt :size.',
'uploaded' => 'Hochgeladen',
'user' => 'Benutzer',
@ -369,7 +373,7 @@ return [
'expected_checkin' => 'Erwartetes Rückgabedatum',
'reminder_checked_out_items' => 'Dies ist eine Erinnerung an die Artikel, die gerade an Sie herausgegeben sind. Wenn Sie der Meinung sind, dass die Angaben falsch sind (fehlender Artikel oder Artikel, den Sie nie erhalten haben), senden Sie bitte eine E-Mail an :reply_to_name unter :reply_to_address.',
'changed' => 'Geändert',
'to' => 'An',
'to' => 'bis',
'report_fields_info' => '<p>Wählen Sie die Felder aus, die Sie in Ihren benutzerdefinierten Bericht einfügen möchten, und klicken Sie auf Generieren. Die Datei (custom-asset-report-YYYY-mm-dd.csv) wird automatisch heruntergeladen und Sie können sie in Excel öffnen.</p>
<p>Wenn Sie nur bestimmte Artikel exportieren möchten, verwenden Sie die folgenden Optionen, um Ihre Ergebnisse zu verfeinern.</p>',
'range' => 'Bereich',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Verbrauchsmaterial|:count Verbrauchsmaterialien',
'components' => ':count Komponente|:count Komponenten',
],
'more_info' => 'Mehr Informationen',
'quickscan_bulk_help' => 'Wenn Sie dieses Kontrollkästchen aktivieren, wird der Asset-Datensatz so bearbeitet, dass dieser neue Standort angezeigt wird. Wenn Sie es nicht aktivieren, wird der Standort einfach im Prüfprotokoll vermerkt. Beachten Sie, dass sich der Standort der Person, des Assets oder des Standorts, an den es ausgecheckt wurde, nicht ändert, wenn dieses Asset ausgecheckt wird.',
'whoops' => 'Hoppla!',
@ -572,9 +577,14 @@ return [
'label' => 'Label',
'import_asset_tag_exists' => 'Ein Asset mit dem Asset-Tag :asset_tag ist bereits vorhanden und es wurde keine Aktualisierung angefordert. Es wurden keine Änderungen vorgenommen.',
'countries_manually_entered_help' => 'Werte mit einem Sternchen (*) wurden manuell eingegeben und stimmen nicht mit vorhandenen Dropdown-Werten nach ISO 3166 überein',
'accessories_assigned' => 'Assigned Accessories',
'user_managed_passwords' => 'Password Management',
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
'accessories_assigned' => 'Zugewiesenes Zubehör',
'user_managed_passwords' => 'Passwortverwaltung',
'user_managed_passwords_disallow' => 'Benutzern die Verwaltung ihrer eigenen Passwörter verbieten',
'user_managed_passwords_allow' => 'Benutzern erlauben, ihre eigenen Passwörter zu verwalten',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -50,7 +50,7 @@ return array(
'checkin' => array(
'error' => 'Lizenz wurde nicht zurückgenommen, bitte versuche es erneut.',
'not_reassignable' => 'License not reassignable',
'not_reassignable' => 'Lizenz nicht neu zuweisbar',
'success' => 'Die Lizenz wurde erfolgreich zurückgenommen'
),

View file

@ -14,9 +14,9 @@ return [
'user_country' => 'Benutzerland',
'user_zip' => 'Benutzer PLZ'
],
'open_saved_template' => 'Open Saved Template',
'save_template' => 'Save Template',
'select_a_template' => 'Select a Template',
'template_name' => 'Template Name',
'update_template' => 'Update Template',
'open_saved_template' => 'Gespeicherte Vorlage öffnen',
'save_template' => 'Vorlage speichern',
'select_a_template' => 'Wählen Sie eine Vorlage aus',
'template_name' => 'Vorlagenname',
'update_template' => 'Vorlage aktualisieren',
];

View file

@ -1,16 +1,16 @@
<?php
return [
'about_templates' => 'About Saved Templates',
'saving_templates_description' => 'Select your options, then enter the name of your template in the box above and click the \'Save Template\' button. Use the dropdown to select a previously saved template.',
'about_templates' => 'Über gespeicherte Vorlagen',
'saving_templates_description' => 'Wählen Sie Ihre Optionen aus, geben Sie dann den Namen Ihrer Vorlage in das Feld oben ein und klicken Sie auf die Schaltfläche „Vorlage speichern“. Verwenden Sie das Dropdown-Menü, um eine zuvor gespeicherte Vorlage auszuwählen.',
'create' => [
'success' => 'Template saved successfully',
'success' => 'Vorlage erfolgreich gespeichert',
],
'update' => [
'success' => 'Template updated successfully',
'success' => 'Vorlage erfolgreich aktualisiert',
],
'delete' => [
'success' => 'Template deleted',
'no_delete_permission' => 'Template does not exist or you do not have permission to delete it.',
'success' => 'Vorlage gelöscht',
'no_delete_permission' => 'Die Vorlage existiert nicht oder Sie sind nicht berechtigt, sie zu löschen.',
],
];

View file

@ -55,7 +55,7 @@ return [
'display_asset_name' => 'Asset-Name anzeigen',
'display_checkout_date' => 'Checkout-Datum anzeigen',
'display_eol' => 'EOL in Tabellenansicht anzeigen',
'display_qr' => 'Zeige 2D Barcode',
'display_qr' => '2D-Barcode anzeigen',
'display_alt_barcode' => '1D Barcode anzeigen',
'email_logo' => 'E-Mail-Logo',
'barcode_type' => '2D Barcode Typ',
@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Passwort',
'ldap_basedn' => 'Basis Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP-Passwort-Sync',
'ldap_pw_sync_help' => 'Deaktiviere diese Option, wenn du LDAP-Passwörter nicht mit lokalen Passwörtern synchronisieren möchtest. Wenn du diese Option deaktivierst, können sich deine Benutzer möglicherweise nicht anmelden, wenn dein LDAP-Server aus irgendeinem Grund nicht erreichbar ist.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Benutzernamen Feld',
'ldap_lname_field' => 'Nachname',
'ldap_fname_field' => 'LDAP Vorname',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Inkrementieren und Präfixe',
'labels' => 'Etiketten',
'labels_title' => 'Etiketten-Einstellungen aktualisieren',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Barcodes &amp; Etiketteneinstellungen',
'purge_help' => 'Gelöschte Einträge bereinigen',
'ldap_extension_warning' => 'Es sieht nicht so aus, als ob die LDAP-Erweiterung auf diesem Server installiert oder aktiviert ist. Du kannst deine Einstellungen trotzdem speichern, aber du musst die LDAP-Erweiterung für PHP aktivieren, bevor die LDAP-Synchronisierung oder der Login funktioniert.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Mitarbeiternummer',
'create_admin_user' => 'Benutzer erstellen ::',
'create_admin_success' => 'Erfolgreich! Ihr Admin-Benutzer wurde hinzugefügt!',
@ -360,9 +364,9 @@ return [
'label2_fields_help' => 'Felder können in der linken Spalte hinzugefügt, entfernt und neu sortiert werden. In jedem Feld können mehrere Optionen für Label und Datenquelle in der rechten Spalte hinzugefügt, entfernt und neu angeordnet werden.',
'help_asterisk_bold' => 'Der eingegebene Text <code>**text**</code> wird in Fettschrift angezeigt',
'help_blank_to_use' => 'Leer lassen, um den Wert von <code>:setting_name</code> zu verwenden',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> verwendet den Wert aus <code>:setting_name</code>. <br>Beachten Sie, dass der Wert der Barcodes der jeweiligen Barcode-Spezifikation entsprechen muss, damit sie erfolgreich generiert werden können. Weitere Einzelheiten finden Sie in der <a href="https://snipe-it.readme.io/docs/barcodes">Dokumentation <i class="fa fa-external-link"></i></a>. ',
'asset_id' => 'Asset-ID',
'data' => 'Daten',
'default' => 'Standard',
'none' => 'Nichts',
'google_callback_help' => 'Dies sollte als Callback-URL in den Google OAuth App-Einstellungen in deinem Unternehmen eingegeben werden&apos;s <strong><a href="https://console.cloud.google.com/" target="_blank">Google Developer Konsole <i class="fa fa-external-link" aria-hidden="true"></i></a></strong>.',
@ -390,7 +394,7 @@ return [
'brand' => 'Fußzeile, Logo, Druck, Thema, Skin, Header, Farben, Farbe, CSS',
'general_settings' => 'firmenunterstützung, Unterschrift, Akzeptanz, E-Mail-Format, Benutzername Format, Bilder, pro Seite, Vorschaubilder, eula, gravatar, tos, Dashboard, Privatsphäre',
'groups' => 'berechtigungen, Berechtigungsgruppen, Autorisierung',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'labels' => 'Etiketten, Barcodes, Strichcode, Tabellen, Druck, UPC, QR, 1D, 2D',
'localization' => 'lokalisierung, Währung, lokal, Lokal, Zeitzone, International, Internationalisierung, Sprache, Sprachen, Übersetzung',
'php_overview' => 'phpinfo, System, Info',
'purge' => 'Endgültig löschen',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'LDAP-Authentifizierung wird getestet...',
'authentication_success' => 'Benutzer wurde erfolgreich gegen LDAP authentifiziert!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => ':app Testnachricht wird gesendet ...',
'success' => 'Deine :webhook_name Integration funktioniert!',
@ -45,6 +48,7 @@ return [
'error' => 'Etwas ist schiefgelaufen. :app antwortete mit: :error_message',
'error_redirect' => 'FEHLER: 301/302 :endpoint gibt eine Umleitung zurück. Aus Sicherheitsgründen folgen wir keine Umleitungen. Bitte verwende den aktuellen Endpunkt.',
'error_misc' => 'Etwas ist schiefgelaufen! :( ',
'webhook_fail' => '',
'webhook_fail' => ' Webhook-Benachrichtigung fehlgeschlagen: Überprüfen Sie, ob die URL noch gültig ist.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Bericht anpassen',
'custom_report' => 'Benutzerdefinierter Asset-Bericht',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'Tage',
'days_to_next_audit' => 'Tage bis zur nächsten Prüfung',
'date' => 'Datum',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Vorname_Nachname (erika_mustermann@example.com)',
'lastnamefirstinitial_format' => 'Nachname & Initiale des Vornamens (mustere@example.com)',
'firstintial_dot_lastname_format' => 'Initiale des Vornamen.Nachname (e.mustermann@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Vorname Nachname (Max Mustermann)',
'lastname_firstname_display' => 'Nachname Vorname (Mustermann Max)',
'name_display_format' => 'Name Anzeigeformat',
@ -216,12 +218,14 @@ return [
'no_results' => 'Keine Treffer.',
'no' => 'Nein',
'notes' => 'Anmerkungen',
'note_added' => 'Note Added',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
'note_deleted' => 'Note Deleted',
'delete_note' => 'Delete Note',
'note_added' => 'Notiz hinzugefügt',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Notiz hinzufügen',
'note_edited' => 'Notiz bearbeitet',
'edit_note' => 'Notiz bearbeiten',
'note_deleted' => 'Notiz gelöscht',
'delete_note' => 'Notiz löschen',
'order_number' => 'Auftragsnummer',
'only_deleted' => 'Nur gelöschte Assets',
'page_menu' => 'Zeige _MENU_ Einträge',
@ -308,7 +312,7 @@ return [
'username_format' => 'Format der Benutzernamen',
'username' => 'Benutzername',
'update' => 'Aktualisieren',
'updating_item' => 'Updating :item',
'updating_item' => ':item wird aktualisiert',
'upload_filetypes_help' => 'Erlaubte Dateitypen sind png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf und rar. Maximale Uploadgröße beträgt :size.',
'uploaded' => 'Hochgeladen',
'user' => 'Benutzer',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Verbrauchsmaterialien|:count Verbrauchsmaterialien',
'components' => ':count Komponente|:count Komponenten',
],
'more_info' => 'Mehr Info',
'quickscan_bulk_help' => 'Wenn du dieses Kontrollkästchen aktivierst, wird der Asset-Datensatz so bearbeitet, dass der neue Standort angezeigt wird. Wenn du es nicht aktivierst, wird der Standort nur im Prüfprotokoll vermerkt. Beachte, dass sich der Standort der Person, des Assets oder des Standorts, an den es ausgecheckt wurde, nicht ändert, wenn dieses Asset ausgecheckt wird.',
'whoops' => 'Hoppla!',
@ -572,9 +577,14 @@ return [
'label' => 'Label',
'import_asset_tag_exists' => 'Ein Asset mit dem Asset-Tag :asset_tag ist bereits vorhanden und es wurde keine Aktualisierung angefordert. Es wurden keine Änderungen vorgenommen.',
'countries_manually_entered_help' => 'Werte mit einem Sternchen (*) wurden manuell eingegeben und stimmen nicht mit vorhandenen Dropdown-Werten nach ISO 3166 überein',
'accessories_assigned' => 'Assigned Accessories',
'user_managed_passwords' => 'Password Management',
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
'accessories_assigned' => 'Zugewiesenes Zubehör',
'user_managed_passwords' => 'Passwortverwaltung',
'user_managed_passwords_disallow' => 'Benutzern die Verwaltung ihrer eigenen Passwörter verbieten',
'user_managed_passwords_allow' => 'Benutzern erlauben, ihre eigenen Passwörter zu verwalten',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Κωδικός πρόσβασης δεσμού LDAP',
'ldap_basedn' => 'Δέσμευση βάσης DN',
'ldap_filter' => 'LDAP Φίλτρο',
'ldap_pw_sync' => 'LDAP συγχρονισμός κωδικού πρόσβασης',
'ldap_pw_sync_help' => 'Καταργήστε την επιλογή αυτού του πλαισίου αν δεν θέλετε να διατηρείτε τους κωδικούς LDAP συγχρονισμένους με τοπικούς κωδικούς πρόσβασης. Απενεργοποιώντας αυτό σημαίνει ότι οι χρήστες σας ενδέχεται να μην μπορούν να συνδεθούν αν ο διακομιστής LDAP δεν είναι προσβάσιμος για κάποιο λόγο.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Πεδίο ονόματος χρήστη',
'ldap_lname_field' => 'Επίθετο',
'ldap_fname_field' => 'Όνομα LDAP',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Καθαρισμός αρχείων που έχουν διαγραφεί',
'ldap_extension_warning' => 'Δεν φαίνεται ότι η επέκταση LDAP είναι εγκατεστημένη ή ενεργοποιημένη σε αυτόν τον διακομιστή. Μπορείτε ακόμα να αποθηκεύσετε τις ρυθμίσεις σας, αλλά θα πρέπει να ενεργοποιήσετε την επέκταση LDAP για PHP πριν το συγχρονισμό LDAP ή σύνδεση θα λειτουργήσει.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Αριθμός Υπάλληλου',
'create_admin_user' => 'Δημιουργία χρήστη ::',
'create_admin_success' => 'Επιτυχία! Ο διαχειριστής σας έχει προστεθεί!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Δοκιμή Πιστοποίησης Ldap...',
'authentication_success' => 'Ο χρήστης πιστοποιήθηκε με επιτυχία στο LDAP!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Αποστολή δοκιμαστικού μηνύματος :app...',
'success' => 'Το :webhook_name σας λειτουργεί!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ΣΦΑΛΜΑ: 301/302:endpoint επιστρέφει μια ανακατεύθυνση. Για λόγους ασφαλείας, δεν ακολουθούμε ανακατευθύνσεις. Παρακαλούμε χρησιμοποιήστε το πραγματικό τελικό σημείο.',
'error_misc' => 'Κάτι πήγε στραβά. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Προσαρμογή Αναφοράς',
'custom_report' => 'Αναφορά προσαρμοσμένων στοιχείων ενεργητικού',
'dashboard' => 'Πίνακας ελέγχου',
'data_source' => 'Data Source',
'days' => 'ημέρες',
'days_to_next_audit' => 'Ημέρες έως επόμενο έλεγχο',
'date' => 'Ημερομηνία',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Όνομα και επίθετο (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Επίθετο και πρώτο γράμμα ονόματος (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Πρώτο Αρχικό Όνομα (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Όνομα Επώνυμο (Jane Smith)',
'lastname_firstname_display' => 'Επώνυμο Όνομα (Smith Jane)',
'name_display_format' => 'Μορφή Εμφάνισης Ονόματος',
@ -217,6 +219,8 @@ return [
'no' => '\'Οχι',
'notes' => 'Σημειώσεις',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Αναλώσιμα |:count Αναλώσιμα',
'components' => ':count Εξαρτήματα |:count Εξαρτήματα',
],
'more_info' => 'Περισσότερες Πληροφορίες',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind Password',
'ldap_basedn' => 'Base Bind DN',
'ldap_filter' => 'LDAP Filter',
'ldap_pw_sync' => 'LDAP Password Sync',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords synced with local passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Username Field',
'ldap_lname_field' => 'Last Name',
'ldap_fname_field' => 'LDAP First Name',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Purge Deleted Records',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customise Report',
'custom_report' => 'Custom Asset Report',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'days',
'days_to_next_audit' => 'Days to Next Audit',
'date' => 'Date',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'No',
'notes' => 'Notes',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'More Info',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'LDAP Bind sandi',
'ldap_basedn' => 'Mengikat Dasar DN',
'ldap_filter' => 'Saring LDAP',
'ldap_pw_sync' => 'Sinkronisasi kata sandi LDAP',
'ldap_pw_sync_help' => 'Hapus centang pada kotak ini jika anda tidak ingin menyimpan kata sandi LDAP yang disinkronkan dengan kata sandi lokal. Menonaktifkan ini berarti pengguna anda tidak dapat masuk jika server LDAP anda tidak dapat dijangkau karena alasan tertentu.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Bidang Nama Pengguna',
'ldap_lname_field' => 'Nama Terakhir',
'ldap_fname_field' => 'Nama Depan LDAP',
@ -330,6 +330,10 @@ return [
'purge_help' => 'Bersihkan Arsip yang Dihapus',
'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Employee Number',
'create_admin_user' => 'Create a User ::',
'create_admin_success' => 'Success! Your admin user has been added!',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Testing LDAP Authentication...',
'authentication_success' => 'User authenticated against LDAP successfully!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Sending :app test message...',
'success' => 'Your :webhook_name Integration works!',
@ -46,5 +49,6 @@ return [
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we dont follow redirects. Please use the actual endpoint.',
'error_misc' => 'Something went wrong. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Customize Report',
'custom_report' => 'Laporan aset kostum',
'dashboard' => 'Dashboard',
'data_source' => 'Data Source',
'days' => 'hari',
'days_to_next_audit' => 'Hari untuk audit selanjutnya',
'date' => 'Tanggal',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Nama Depan Nama Belakang (jane.smith@example.com)',
'lastnamefirstinitial_format' => 'Nama Depan First Initial (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'First Name Last Name (Jane Smith)',
'lastname_firstname_display' => 'Last Name First Name (Smith Jane)',
'name_display_format' => 'Name Display Format',
@ -217,6 +219,8 @@ return [
'no' => 'Tidak',
'notes' => 'Catatan',
'note_added' => 'Note Added',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
@ -561,6 +565,7 @@ return [
'consumables' => ':count Consumable|:count Consumables',
'components' => ':count Component|:count Components',
],
'more_info' => 'Info Lengkap',
'quickscan_bulk_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log. Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.',
'whoops' => 'Whoops!',
@ -577,4 +582,9 @@ return [
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -5,8 +5,8 @@ return [
'about_assets_text' => 'Assets are items tracked by serial number or asset tag. They tend to be higher value items where identifying a specific item matters.',
'archived' => 'Archived',
'asset' => 'Asset',
'bulk_checkout' => 'Checkout Assets',
'bulk_checkin' => 'Checkin Assets',
'bulk_checkout' => 'Bulk Checkout',
'bulk_checkin' => 'Bulk Checkin',
'checkin' => 'Checkin Asset',
'checkout' => 'Checkout Asset',
'clone' => 'Clone Asset',

View file

@ -10,7 +10,7 @@ return [
'action' => 'Action',
'activity_report' => 'Activity Report',
'address' => 'Address',
'admin' => 'Admin',
'admin' => 'Admin Settings',
'admin_tooltip' => 'This user has admin privileges',
'superuser' => 'Superuser',
'superuser_tooltip' => 'This user has superuser privileges',
@ -29,6 +29,7 @@ return [
'assets_available' => 'Assets available',
'accept_assets' => 'Accept Assets :name',
'accept_assets_menu' => 'Accept Assets',
'accept_item' => 'Accept Item',
'audit' => 'Audit',
'audit_report' => 'Audit Log',
'assets' => 'Assets',
@ -337,10 +338,10 @@ return [
'token_expired' => 'Your form session has expired. Please try again.',
'login_enabled' => 'Login Enabled',
'audit_due' => 'Due for Audit',
'audit_due_days' => 'Assets Due for Audit Within :days Day|Assets Due for Audit Within :days Days',
'audit_due_days' => '{}Assets Due or Overdue for Audit|[1]Assets Due or Overdue for Audit Within a Day|[2,*]Assets Due or Overdue for Audit Within :days Days',
'checkin_due' => 'Due for Checkin',
'checkin_overdue' => 'Overdue for Checkin',
'checkin_due_days' => 'Assets Due for Checkin Within :days Day|Assets Due for Checkin Within :days Days',
'checkin_due_days' => '{}Due for Checkin|[1]Assets Due for Checkin Within :days Day|[2,*]Assets Due for Checkin Within :days Days',
'audit_overdue' => 'Overdue for Audit',
'accept' => 'Accept :asset',
'i_accept' => 'I accept',
@ -587,4 +588,12 @@ return [
'notes' => 'Add a note',
],
'breadcrumb_button_actions' => [
'edit_item' => 'Edit :name',
'checkout_item' => 'Checkout :name',
'checkin_item' => 'Checkin :name',
],
'generic_model_not_found' => 'That :model was not found or you do not have permission to access it',
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Contraseña de enlace LDAP',
'ldap_basedn' => 'DN del enlace base (Base Bind DN)',
'ldap_filter' => 'Filtro LDAP',
'ldap_pw_sync' => 'Sincronizar contraseña del LDAP',
'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Campo nombre de usuario',
'ldap_lname_field' => 'Apellido',
'ldap_fname_field' => 'Nombre LDAP',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Incrementos y prefijos',
'labels' => 'Etiquetas',
'labels_title' => 'Actualizar configuración de etiquetas',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Configuración de códigos de barras &amp; etiquetas',
'purge_help' => 'Purgar registros eliminados',
'ldap_extension_warning' => 'No parece que la extensión LDAP esté instalada o habilitada en este servidor. Todavía puede guardar su configuración, pero necesitará habilitar la extensión LDAP para PHP antes de que funcione la sincronización LDAP o el inicio de sesión.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Número de empleado',
'create_admin_user' => 'Crear un usuario ::',
'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!',
@ -355,14 +359,14 @@ return [
'label2_2d_type' => 'Tipo de código de barras 2D',
'label2_2d_type_help' => 'Formato para códigos de barras 2D',
'label2_2d_target' => 'Apuntamiento del código de barras 2D',
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
'label2_2d_target_help' => 'Los datos que incluirá el código de barra 2D',
'label2_fields' => 'Definiciones del campo',
'label2_fields_help' => 'Los campos se pueden añadir, eliminar y reordenar en la columna izquierda. Para cada campo, se pueden agregar, eliminar y reordenar múltiples opciones para etiquetas y para orígenes de datos en la columna derecha.',
'help_asterisk_bold' => 'Texto introducido como <code>**texto**</code> se mostrará como negrita',
'help_blank_to_use' => 'Deje en blanco para usar el valor de <code>:setting_name</code>',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> usará el valor de <code>:setting_name</code>. <br>Tenga en cuenta que el valor de los códigos de barras debe cumplir la especificación respectiva para que sean generados exitosamente. Por favor lea <a href="https://snipe-it.readme.io/docs/barcodes">la documentación <i class="fa fa-external-link"></i></a> para más detalles. ',
'asset_id' => 'ID del activo',
'data' => 'Datos',
'default' => 'Por defecto',
'none' => 'Ninguna',
'google_callback_help' => 'Esto debe introducirse como URL de devolución de llamada (callback) en la configuración de su aplicación de Google OAuth en la <strong><a href="https://console.cloud.google.com/" target="_blank">consola de desarrollador de Google <i class="fa fa-external-link" aria-hidden="true"></i></a></strong> de su organización .',
@ -390,7 +394,7 @@ return [
'brand' => 'pie de página, logotipo, impresión, tema, apariencia, encabezado, colores, color, css',
'general_settings' => 'soporte de la compañía, firma, aceptación, formato de correo electrónico, formato de nombre de usuario, imágenes, por página, miniatura, acuerdo de uso, términos y condiciones, gravatar, términos de servicio, tablero de indicadores, privacidad',
'groups' => 'permisos, grupos de permisos, autorización',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'labels' => 'etiquetas, código de barras, código de barra, hojas, imprimir, upc, qr, 1d, 2d',
'localization' => 'localización, moneda, local, ubicación, zona horaria, internacional, internacionalización, idioma, traducción',
'php_overview' => 'phpinfo, sistema, información',
'purge' => 'eliminar permanentemente',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Probando autenticación LDAP...',
'authentication_success' => 'Usuario autenticado contra LDAP con éxito!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Enviando mensaje de prueba :app...',
'success' => '¡Su integración :webhook_name funciona!',
@ -45,6 +48,7 @@ return [
'error' => 'Algo salió mal. :app respondió con: :error_message',
'error_redirect' => 'ERROR: 301/302 :endpoint devuelve una redirección. Por razones de seguridad, no seguimos redirecciones. Por favor, utilice el punto final actual.',
'error_misc' => 'Algo salió mal. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_fail' => ' Notificación de webhook fallida: Compruebe que la URL sigue siendo válida.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Personalizar informe',
'custom_report' => 'Informe personalizado de activos',
'dashboard' => 'Tablero',
'data_source' => 'Data Source',
'days' => 'días',
'days_to_next_audit' => 'Días hasta la siguiente auditoría',
'date' => 'Fecha',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Nombre y apellido (jane_smith@ejemplo.com)',
'lastnamefirstinitial_format' => 'Apellido e inicial del nombre (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Nombre y apellido (Jane Smith)',
'lastname_firstname_display' => 'Apellido y nombre (Smith Jane)',
'name_display_format' => 'Formato para mostrar el nombre',
@ -216,12 +218,14 @@ return [
'no_results' => 'No hay resultados.',
'no' => 'No',
'notes' => 'Notas',
'note_added' => 'Note Added',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
'note_deleted' => 'Note Deleted',
'delete_note' => 'Delete Note',
'note_added' => 'Nota agregada',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Agregar nota',
'note_edited' => 'Nota editada',
'edit_note' => 'Editar nota',
'note_deleted' => 'Nota eliminada',
'delete_note' => 'Borrar nota',
'order_number' => 'Número de orden',
'only_deleted' => 'Solo activos eliminados',
'page_menu' => 'Mostrando elementos de _MENU_',
@ -561,6 +565,7 @@ return [
'consumables' => ':count consumible|:count consumibles',
'components' => ':count component|:count componentes',
],
'more_info' => 'Más información',
'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.',
'whoops' => '¡Uy!',
@ -573,8 +578,13 @@ return [
'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.',
'countries_manually_entered_help' => 'Los valores con asterisco (*) fueron introducidos manualmente y no coinciden con los valores desplegables ISO 3166 existentes',
'accessories_assigned' => 'Accesorios asignados',
'user_managed_passwords' => 'Password Management',
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
'user_managed_passwords' => 'Gestión de contraseña',
'user_managed_passwords_disallow' => 'Evitar que los usuarios gestionen sus propias contraseñas',
'user_managed_passwords_allow' => 'Permitir a los usuarios gestionar sus propias contraseñas',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Contraseña de enlace LDAP',
'ldap_basedn' => 'DN del enlace base (Base Bind DN)',
'ldap_filter' => 'Filtro LDAP',
'ldap_pw_sync' => 'Sincronizar contraseña del LDAP',
'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Campo nombre de usuario',
'ldap_lname_field' => 'Apellido',
'ldap_fname_field' => 'Nombre LDAP',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Incrementos y prefijos',
'labels' => 'Etiquetas',
'labels_title' => 'Actualizar configuración de etiquetas',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Configuración de códigos de barras &amp; etiquetas',
'purge_help' => 'Purgar registros eliminados',
'ldap_extension_warning' => 'No parece que la extensión LDAP esté instalada o habilitada en este servidor. Todavía puede guardar su configuración, pero necesitará habilitar la extensión LDAP para PHP antes de que funcione la sincronización LDAP o el inicio de sesión.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Número de empleado',
'create_admin_user' => 'Crear un usuario ::',
'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!',
@ -355,14 +359,14 @@ return [
'label2_2d_type' => 'Tipo de códigos de barras 2D',
'label2_2d_type_help' => 'Formato para códigos de barras 2D',
'label2_2d_target' => 'Apuntamiento del código de barras 2D',
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
'label2_2d_target_help' => 'Los datos que incluirá el código de barra 2D',
'label2_fields' => 'Definiciones del campo',
'label2_fields_help' => 'Los campos se pueden añadir, eliminar y reordenar en la columna izquierda. Para cada campo, se pueden agregar, eliminar y reordenar múltiples opciones para etiquetas y para orígenes de datos en la columna derecha.',
'help_asterisk_bold' => 'Texto introducido como <code>**texto**</code> se mostrará como negrita',
'help_blank_to_use' => 'Deje en blanco para usar el valor de <code>:setting_name</code>',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> usará el valor de <code>:setting_name</code>. <br>Tenga en cuenta que el valor de los códigos de barras debe cumplir la especificación respectiva para que sean generados exitosamente. Por favor lea <a href="https://snipe-it.readme.io/docs/barcodes">la documentación <i class="fa fa-external-link"></i></a> para más detalles. ',
'asset_id' => 'ID del activo',
'data' => 'Datos',
'default' => 'Por defecto',
'none' => 'Ninguna',
'google_callback_help' => 'Esto debe introducirse como URL de devolución de llamada (callback) en la configuración de su aplicación de Google OAuth en la <strong><a href="https://console.cloud.google.com/" target="_blank">consola de desarrollador de Google <i class="fa fa-external-link" aria-hidden="true"></i></a></strong> de su organización .',
@ -390,7 +394,7 @@ return [
'brand' => 'pie de página, logotipo, impresión, tema, apariencia, encabezado, colores, color, css',
'general_settings' => 'soporte de la compañía, firma, aceptación, formato de correo electrónico, formato de nombre de usuario, imágenes, por página, miniatura, acuerdo de uso, términos y condiciones, gravatar, términos de servicio, tablero de indicadores, privacidad',
'groups' => 'permisos, grupos de permisos, autorización',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'labels' => 'etiquetas, código de barras, código de barra, hojas, imprimir, upc, qr, 1d, 2d',
'localization' => 'localización, moneda, local, ubicación, zona horaria, internacional, internacionalización, idioma, traducción',
'php_overview' => 'phpinfo, sistema, información',
'purge' => 'eliminar permanentemente',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Probando autenticación LDAP...',
'authentication_success' => 'Usuario autenticado contra LDAP con éxito!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Enviando mensaje de prueba de :app...',
'success' => '¡Su integración :webhook_name funciona!',
@ -45,6 +48,7 @@ return [
'error' => 'Algo salió mal. :app respondió con: :error_message',
'error_redirect' => 'ERROR: 301/302 :endpoint devuelve una redirección. Por razones de seguridad, no seguimos redirecciones. Por favor, utilice el punto final actual.',
'error_misc' => 'Algo salió mal. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_fail' => ' Notificación de webhook fallida: Compruebe que la URL sigue siendo válida.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Personalizar informe',
'custom_report' => 'Informe personalizado de activos',
'dashboard' => 'Tablero',
'data_source' => 'Data Source',
'days' => 'días',
'days_to_next_audit' => 'Días hasta la siguiente auditoría',
'date' => 'Fecha',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Nombre y apellido (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Apellido e inicial del nombre (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Nombre y apellido (Jane Smith)',
'lastname_firstname_display' => 'Apellido y nombre (Smith Jane)',
'name_display_format' => 'Formato para mostrar el nombre',
@ -216,12 +218,14 @@ return [
'no_results' => 'No hay resultados.',
'no' => 'No',
'notes' => 'Notas',
'note_added' => 'Note Added',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
'note_deleted' => 'Note Deleted',
'delete_note' => 'Delete Note',
'note_added' => 'Nota agregada',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Agregar nota',
'note_edited' => 'Nota editada',
'edit_note' => 'Editar nota',
'note_deleted' => 'Nota eliminada',
'delete_note' => 'Borrar nota',
'order_number' => 'Número de orden',
'only_deleted' => 'Solo activos eliminados',
'page_menu' => 'Mostrando elementos de _MENU_',
@ -561,6 +565,7 @@ return [
'consumables' => ':count consumible|:count consumibles',
'components' => ':count component|:count componentes',
],
'more_info' => 'Más información',
'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.',
'whoops' => '¡Uy!',
@ -573,8 +578,13 @@ return [
'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.',
'countries_manually_entered_help' => 'Los valores con asterisco (*) fueron introducidos manualmente y no coinciden con los valores desplegables ISO 3166 existentes',
'accessories_assigned' => 'Accesorios asignados',
'user_managed_passwords' => 'Password Management',
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
'user_managed_passwords' => 'Gestión de contraseña',
'user_managed_passwords_disallow' => 'Evitar que los usuarios gestionen sus propias contraseñas',
'user_managed_passwords_allow' => 'Permitir a los usuarios gestionar sus propias contraseñas',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Contraseña de enlace LDAP',
'ldap_basedn' => 'Enlazar base DN',
'ldap_filter' => 'Filtro LDAP',
'ldap_pw_sync' => 'Sincronizar contraseña del LDAP',
'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Campo nombre de usuario',
'ldap_lname_field' => 'Apellido',
'ldap_fname_field' => 'Nombre LDAP',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Incrementos y prefijos',
'labels' => 'Etiquetas',
'labels_title' => 'Actualizar configuración de etiquetas',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Configuración de códigos de barras &amp; etiquetas',
'purge_help' => 'Purgar registros eliminados',
'ldap_extension_warning' => 'No parece que la extensión LDAP esté instalada o habilitada en este servidor. Todavía puede guardar su configuración, pero necesitará habilitar la extensión LDAP para PHP antes de que funcione la sincronización LDAP o el inicio de sesión.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Número de empleado',
'create_admin_user' => 'Crear un usuario ::',
'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!',
@ -355,14 +359,14 @@ return [
'label2_2d_type' => 'Tipo de código de barras 2D',
'label2_2d_type_help' => 'Formato para códigos de barras 2D',
'label2_2d_target' => 'Apuntamiento del código de barras 2D',
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
'label2_2d_target_help' => 'Los datos que incluirá el código de barra 2D',
'label2_fields' => 'Definiciones del campo',
'label2_fields_help' => 'Los campos se pueden añadir, eliminar y reordenar en la columna izquierda. Para cada campo, se pueden agregar, eliminar y reordenar múltiples opciones para etiquetas y para orígenes de datos en la columna derecha.',
'help_asterisk_bold' => 'El texto escrito como <code>**texto**</code> se mostrará como negrita',
'help_blank_to_use' => 'Deje en blanco para usar el valor de <code>:setting_name</code>',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> usará el valor de <code>:setting_name</code>. <br>Tenga en cuenta que el valor de los códigos de barras debe cumplir la especificación respectiva para que sean generados exitosamente. Por favor lea <a href="https://snipe-it.readme.io/docs/barcodes">la documentación <i class="fa fa-external-link"></i></a> para más detalles. ',
'asset_id' => 'ID del activo',
'data' => 'Datos',
'default' => 'Predeterminado',
'none' => 'Ninguno',
'google_callback_help' => 'Esto debe introducirse como URL de devolución de llamada (callback) en la configuración de su aplicación de Google OAuth en la <strong><a href="https://console.cloud.google.com/" target="_blank">consola de desarrollador de Google <i class="fa fa-external-link" aria-hidden="true"></i></a></strong> de su organización .',
@ -390,7 +394,7 @@ return [
'brand' => 'pie de página, logotipo, impresión, tema, apariencia, encabezado, colores, color, css',
'general_settings' => 'soporte de la compañía, firma, aceptación, formato de correo electrónico, formato de nombre de usuario, imágenes, por página, miniatura, acuerdo de uso, términos y condiciones, gravatar, términos de servicio, tablero de indicadores, privacidad',
'groups' => 'permisos, grupos de permisos, autorización',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'labels' => 'etiquetas, código de barras, código de barra, hojas, imprimir, upc, qr, 1d, 2d',
'localization' => 'localización, moneda, local, ubicación, zona horaria, internacional, internacionalización, idioma, traducción',
'php_overview' => 'phpinfo, sistema, información',
'purge' => 'eliminar permanentemente',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Probando autenticación LDAP...',
'authentication_success' => 'Usuario autenticado contra LDAP con éxito!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Enviando mensaje de prueba a :app...',
'success' => '¡Su integración :webhook_name funciona!',
@ -45,6 +48,7 @@ return [
'error' => 'Algo salió mal. :app respondió con: :error_message',
'error_redirect' => 'ERROR: 301/302 :endpoint devuelve una redirección. Por razones de seguridad, no seguimos redirecciones. Por favor, utilice el punto final actual.',
'error_misc' => 'Algo salió mal. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_fail' => ' Notificación de webhook fallida: Compruebe que la URL sigue siendo válida.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

View file

@ -92,6 +92,7 @@ return [
'customize_report' => 'Personalizar informe',
'custom_report' => 'Informe personalizado de activos',
'dashboard' => 'Tablero',
'data_source' => 'Data Source',
'days' => 'días',
'days_to_next_audit' => 'Días hasta la siguiente auditoría',
'date' => 'Fecha',
@ -127,6 +128,7 @@ return [
'firstname_lastname_underscore_format' => 'Nombre y apellido (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Apellido e inicial del nombre (smithj@example.com)',
'firstintial_dot_lastname_format' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)',
'lastname_dot_firstinitial_format' => 'Last Name First Initial (smith.j@example.com)',
'firstname_lastname_display' => 'Nombre y apellido (Jane Smith)',
'lastname_firstname_display' => 'Apellido y nombre (Smith Jane)',
'name_display_format' => 'Formato para mostrar el nombre',
@ -216,12 +218,14 @@ return [
'no_results' => 'No hay resultados.',
'no' => 'No',
'notes' => 'Notas',
'note_added' => 'Note Added',
'add_note' => 'Add Note',
'note_edited' => 'Note Edited',
'edit_note' => 'Edit Note',
'note_deleted' => 'Note Deleted',
'delete_note' => 'Delete Note',
'note_added' => 'Nota agregada',
'options' => 'Options',
'preview' => 'Preview',
'add_note' => 'Agregar nota',
'note_edited' => 'Nota editada',
'edit_note' => 'Editar nota',
'note_deleted' => 'Nota eliminada',
'delete_note' => 'Borrar nota',
'order_number' => 'Número de orden',
'only_deleted' => 'Solo activos eliminados',
'page_menu' => 'Mostrando elementos de _MENU_',
@ -561,6 +565,7 @@ return [
'consumables' => ':count consumible|:count consumibles',
'components' => ':count component|:count componentes',
],
'more_info' => 'Más información',
'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.',
'whoops' => '¡Uy!',
@ -573,8 +578,13 @@ return [
'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.',
'countries_manually_entered_help' => 'Los valores con asterisco (*) fueron introducidos manualmente y no coinciden con los valores desplegables ISO 3166 existentes',
'accessories_assigned' => 'Accesorios asignados',
'user_managed_passwords' => 'Password Management',
'user_managed_passwords_disallow' => 'Disallow users from managing their own passwords',
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
'user_managed_passwords' => 'Gestión de contraseña',
'user_managed_passwords_disallow' => 'Evitar que los usuarios gestionen sus propias contraseñas',
'user_managed_passwords_allow' => 'Permitir a los usuarios gestionar sus propias contraseñas',
// Add form placeholders here
'placeholders' => [
'notes' => 'Add a note',
],
];

View file

@ -109,8 +109,8 @@ return [
'ldap_pword' => 'Contraseña de enlace LDAP',
'ldap_basedn' => 'DN del enlace base (Base Bind DN)',
'ldap_filter' => 'Filtro LDAP',
'ldap_pw_sync' => 'Sincronizar contraseña del LDAP',
'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.',
'ldap_pw_sync' => 'Cache LDAP Passwords',
'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords cached as local hashed passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.',
'ldap_username_field' => 'Campo nombre de usuario',
'ldap_lname_field' => 'Apellido',
'ldap_fname_field' => 'Nombre LDAP',
@ -326,10 +326,14 @@ return [
'asset_tags_help' => 'Incrementos y prefijos',
'labels' => 'Etiquetas',
'labels_title' => 'Actualizar configuración de etiquetas',
'labels_help' => 'Barcodes &amp; label settings',
'labels_help' => 'Configuración de códigos de barras &amp; etiquetas',
'purge_help' => 'Purgar registros eliminados',
'ldap_extension_warning' => 'No parece que la extensión LDAP esté instalada o habilitada en este servidor. Todavía puede guardar su configuración, pero necesitará habilitar la extensión LDAP para PHP antes de que funcione la sincronización LDAP o el inicio de sesión.',
'ldap_ad' => 'LDAP/AD',
'ldap_test_label' => 'Test LDAP Sync',
'ldap_test_login' => ' Test LDAP Login',
'ldap_username_placeholder' => 'LDAP Username',
'ldap_password_placeholder' => 'LDAP Password',
'employee_number' => 'Número de empleado',
'create_admin_user' => 'Crear un usuario ::',
'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!',
@ -355,14 +359,14 @@ return [
'label2_2d_type' => 'Tipo de código de barras 2D',
'label2_2d_type_help' => 'Formato para códigos de barras 2D',
'label2_2d_target' => 'Apuntamiento del código de barras 2D',
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
'label2_2d_target_help' => 'Los datos que incluirá el código de barra 2D',
'label2_fields' => 'Definiciones del campo',
'label2_fields_help' => 'Los campos se pueden añadir, eliminar y reordenar en la columna izquierda. Para cada campo, se pueden agregar, eliminar y reordenar múltiples opciones para etiquetas y para orígenes de datos en la columna derecha.',
'help_asterisk_bold' => 'Texto introducido como <code>**texto**</code> se mostrará como negrita',
'help_blank_to_use' => 'Deje en blanco para usar el valor de <code>:setting_name</code>',
'help_default_will_use' => '<code>:default</code> will use the value from <code>:setting_name</code>. <br>Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see <a href="https://snipe-it.readme.io/docs/barcodes">the documentation <i class="fa fa-external-link"></i></a> for more details. ',
'asset_id' => 'Asset ID',
'data' => 'Data',
'help_default_will_use' => '<code>:default</code> usará el valor de <code>:setting_name</code>. <br>Tenga en cuenta que el valor de los códigos de barras debe cumplir la especificación respectiva para que sean generados exitosamente. Por favor lea <a href="https://snipe-it.readme.io/docs/barcodes">la documentación <i class="fa fa-external-link"></i></a> para más detalles. ',
'asset_id' => 'ID del activo',
'data' => 'Datos',
'default' => 'Por defecto',
'none' => 'Ninguna',
'google_callback_help' => 'Esto debe introducirse como URL de devolución de llamada (callback) en la configuración de su aplicación de Google OAuth en la <strong><a href="https://console.cloud.google.com/" target="_blank">consola de desarrollador de Google <i class="fa fa-external-link" aria-hidden="true"></i></a></strong> de su organización .',
@ -390,7 +394,7 @@ return [
'brand' => 'pie de página, logotipo, impresión, tema, apariencia, encabezado, colores, color, css',
'general_settings' => 'soporte de la compañía, firma, aceptación, formato de correo electrónico, formato de nombre de usuario, imágenes, por página, miniatura, acuerdo de uso, términos y condiciones, gravatar, términos de servicio, tablero de indicadores, privacidad',
'groups' => 'permisos, grupos de permisos, autorización',
'labels' => 'labels, barcodes, barcode, sheets, print, upc, qr, 1d, 2d',
'labels' => 'etiquetas, código de barras, código de barra, hojas, imprimir, upc, qr, 1d, 2d',
'localization' => 'localización, moneda, local, ubicación, zona horaria, internacional, internacionalización, idioma, traducción',
'php_overview' => 'phpinfo, sistema, información',
'purge' => 'eliminar permanentemente',

View file

@ -36,6 +36,9 @@ return [
'testing_authentication' => 'Probando autenticación LDAP...',
'authentication_success' => 'Usuario autenticado contra LDAP con éxito!'
],
'labels' => [
'null_template' => 'Label template not found. Please select a template.',
],
'webhook' => [
'sending' => 'Enviando mensaje de prueba :app...',
'success' => '¡Su integración :webhook_name funciona!',
@ -45,6 +48,7 @@ return [
'error' => 'Algo salió mal. :app respondió con: :error_message',
'error_redirect' => 'ERROR: 301/302 :endpoint devuelve una redirección. Por razones de seguridad, no seguimos redirecciones. Por favor, utilice el punto final actual.',
'error_misc' => 'Algo salió mal. :( ',
'webhook_fail' => ' webhook notification failed: Check to make sure the URL is still valid.',
'webhook_fail' => ' Notificación de webhook fallida: Compruebe que la URL sigue siendo válida.',
'webhook_channel_not_found' => ' webhook channel not found.'
]
];

Some files were not shown because too many files have changed in this diff Show more