Compare commits
71 Commits
form-row-c
...
v8.3.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
391aa30da2 | ||
|
|
f92f76b48a | ||
|
|
83abfc9ca6 | ||
|
|
61b6d4dc47 | ||
|
|
b42d6677cc | ||
|
|
e8c644a600 | ||
|
|
aa041e39eb | ||
|
|
9f6a73b290 | ||
|
|
4d38bd1c62 | ||
|
|
138262114d | ||
|
|
4073c9e638 | ||
|
|
f1b4877a98 | ||
|
|
c39c92d0d7 | ||
|
|
90fc48d959 | ||
|
|
7f10a53105 | ||
|
|
7ae1b7a765 | ||
|
|
dea399398a | ||
|
|
7434dd9458 | ||
|
|
723abca34a | ||
|
|
88e532dbc4 | ||
|
|
32b28327e9 | ||
|
|
c5ad451c39 | ||
|
|
44bfceeb0f | ||
|
|
c30131275f | ||
|
|
37eb63837b | ||
|
|
4ada47e3b0 | ||
|
|
e5c55c9ab3 | ||
|
|
547b3df7b4 | ||
|
|
4100f2600c | ||
|
|
56218dfcb2 | ||
|
|
a9574e8fd6 | ||
|
|
0d2a75db0a | ||
|
|
c6269d6bbc | ||
|
|
eb9d066844 | ||
|
|
c1204a5301 | ||
|
|
cc5ac65909 | ||
|
|
9ddc48e3d7 | ||
|
|
029f3030a7 | ||
|
|
4a39d7c67a | ||
|
|
b7a6706591 | ||
|
|
ddb031f091 | ||
|
|
e906d25776 | ||
|
|
8c59a8d405 | ||
|
|
5d8905c997 | ||
|
|
517f4ce121 | ||
|
|
6809bbd3d5 | ||
|
|
ab555d05e1 | ||
|
|
30e16b6213 | ||
|
|
92b50ca7ae | ||
|
|
9ee36df979 | ||
|
|
46d1c14e1a | ||
|
|
61895011fb | ||
|
|
32d43034bd | ||
|
|
dfc6cdc127 | ||
|
|
16e93f9e18 | ||
|
|
7395b1a4eb | ||
|
|
fa98557225 | ||
|
|
894606b62e | ||
|
|
f0a6a0026a | ||
|
|
070e0c93be | ||
|
|
2b27b733e5 | ||
|
|
0355c2b642 | ||
|
|
3bad19fb56 | ||
|
|
0f84d51a48 | ||
|
|
2e8572d9c5 | ||
|
|
df53d5d966 | ||
|
|
23838959ca | ||
|
|
1b397cd780 | ||
|
|
120316bae0 | ||
|
|
7571ff007f | ||
|
|
7afd7da2b4 |
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\StoreDepartmentRequest;
|
||||
use App\Http\Transformers\DepartmentsTransformer;
|
||||
use App\Http\Transformers\SelectlistTransformer;
|
||||
use App\Models\Department;
|
||||
@@ -26,18 +27,19 @@ class DepartmentsController extends Controller
|
||||
$allowed_columns = ['id', 'name', 'image', 'users_count', 'notes'];
|
||||
|
||||
$departments = Department::select(
|
||||
'departments.id',
|
||||
'departments.name',
|
||||
'departments.phone',
|
||||
'departments.fax',
|
||||
'departments.location_id',
|
||||
'departments.company_id',
|
||||
'departments.manager_id',
|
||||
'departments.created_at',
|
||||
'departments.updated_at',
|
||||
'departments.image',
|
||||
'departments.notes',
|
||||
)->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
|
||||
[
|
||||
'departments.id',
|
||||
'departments.name',
|
||||
'departments.phone',
|
||||
'departments.fax',
|
||||
'departments.location_id',
|
||||
'departments.company_id',
|
||||
'departments.manager_id',
|
||||
'departments.created_at',
|
||||
'departments.updated_at',
|
||||
'departments.image',
|
||||
'departments.notes'
|
||||
])->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$departments = $departments->TextSearch($request->input('search'));
|
||||
@@ -94,18 +96,17 @@ class DepartmentsController extends Controller
|
||||
* @since [v4.0]
|
||||
* @param \App\Http\Requests\ImageUploadRequest $request
|
||||
*/
|
||||
public function store(ImageUploadRequest $request) : JsonResponse
|
||||
public function store(StoreDepartmentRequest $request): JsonResponse
|
||||
{
|
||||
$this->authorize('create', Department::class);
|
||||
$department = new Department;
|
||||
$department->fill($request->all());
|
||||
$department->fill($request->validated());
|
||||
$department = $request->handleImages($department);
|
||||
|
||||
$department->created_by = auth()->id();
|
||||
$department->manager_id = ($request->filled('manager_id') ? $request->input('manager_id') : null);
|
||||
|
||||
if ($department->save()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.create.success')));
|
||||
return response()->json(Helper::formatStandardApiResponse('success', (new DepartmentsTransformer)->transformDepartment($department), trans('admin/departments/message.create.success')));
|
||||
}
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $department->getErrors()));
|
||||
|
||||
@@ -121,7 +122,7 @@ class DepartmentsController extends Controller
|
||||
public function show($id) : array
|
||||
{
|
||||
$this->authorize('view', Department::class);
|
||||
$department = Department::findOrFail($id);
|
||||
$department = Department::withCount('users as users_count')->findOrFail($id);
|
||||
return (new DepartmentsTransformer)->transformDepartment($department);
|
||||
}
|
||||
|
||||
@@ -141,7 +142,7 @@ class DepartmentsController extends Controller
|
||||
$department = $request->handleImages($department);
|
||||
|
||||
if ($department->save()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.update.success')));
|
||||
return response()->json(Helper::formatStandardApiResponse('success', (new DepartmentsTransformer)->transformDepartment($department), trans('admin/departments/message.update.success')));
|
||||
}
|
||||
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $department->getErrors()));
|
||||
|
||||
@@ -24,7 +24,7 @@ class GroupsController extends Controller
|
||||
|
||||
$this->authorize('view', Group::class);
|
||||
|
||||
$groups = Group::select('id', 'name', 'permissions', 'notes', 'created_at', 'updated_at', 'created_by')->with('adminuser')->withCount('users as users_count');
|
||||
$groups = Group::select(['id', 'name', 'permissions', 'notes', 'created_at', 'updated_at', 'created_by'])->with('adminuser')->withCount('users as users_count');
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$groups = $groups->TextSearch($request->input('search'));
|
||||
@@ -50,6 +50,7 @@ class GroupsController extends Controller
|
||||
'id',
|
||||
'name',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'users_count',
|
||||
];
|
||||
|
||||
|
||||
@@ -26,11 +26,11 @@ class LicenseSeatsController extends Controller
|
||||
if ($license = License::find($licenseId)) {
|
||||
$this->authorize('view', $license);
|
||||
|
||||
$seats = LicenseSeat::with('license', 'user', 'asset', 'user.department')
|
||||
$seats = LicenseSeat::with('license', 'user', 'asset', 'user.department', 'user.company', 'asset.company')
|
||||
->where('license_seats.license_id', $licenseId);
|
||||
|
||||
if ($request->input('status') == 'available') {
|
||||
$seats->whereNull('license_seats.assigned_to');
|
||||
$seats->whereNull('license_seats.assigned_to')->whereNull('license_seats.asset_id');
|
||||
}
|
||||
|
||||
if ($request->input('status') == 'assigned') {
|
||||
@@ -40,8 +40,10 @@ class LicenseSeatsController extends Controller
|
||||
|
||||
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
|
||||
|
||||
if ($request->input('sort') == 'department') {
|
||||
if ($request->input('sort') == 'assigned_user.department') {
|
||||
$seats->OrderDepartments($order);
|
||||
} elseif ($request->input('sort') == 'assigned_user.company') {
|
||||
$seats->OrderCompany($order);
|
||||
} else {
|
||||
$seats->orderBy('updated_at', $order);
|
||||
}
|
||||
@@ -83,7 +85,7 @@ class LicenseSeatsController extends Controller
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat not found'));
|
||||
}
|
||||
// 2. does the seat belong to the specified license?
|
||||
if (! $license = $licenseSeat->license()->first() || $license->id != intval($licenseId)) {
|
||||
if (! $licenseSeat = $licenseSeat->license()->first() || $licenseSeat->id != intval($licenseId)) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, 'Seat does not belong to the specified license'));
|
||||
}
|
||||
|
||||
|
||||
@@ -43,9 +43,12 @@ class GroupsController extends Controller
|
||||
$permissions = config('permissions');
|
||||
$groupPermissions = Helper::selectedPermissionsArray($permissions, $permissions);
|
||||
$selectedPermissions = $request->old('permissions', $groupPermissions);
|
||||
|
||||
$users = \App\Models\User::orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
|
||||
// Show the page
|
||||
return view('groups/edit', compact('permissions', 'selectedPermissions', 'groupPermissions'))->with('group', $group);
|
||||
return view('groups/edit', compact('permissions', 'selectedPermissions', 'groupPermissions'))
|
||||
->with('group', $group)
|
||||
->with('associated_users', [])
|
||||
->with('unselected_users', $users);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,12 +63,23 @@ class GroupsController extends Controller
|
||||
// create a new group instance
|
||||
$group = new Group();
|
||||
$group->name = $request->input('name');
|
||||
|
||||
if ($request->filled('permission')) {
|
||||
$group->permissions = json_encode($request->array('permission'));
|
||||
} else {
|
||||
$group->permissions = null;
|
||||
}
|
||||
|
||||
$group->permissions = json_encode($request->input('permission'));
|
||||
$group->created_by = auth()->id();
|
||||
$group->notes = $request->input('notes');
|
||||
|
||||
if ($group->save()) {
|
||||
$group->users()->sync($request->input('associated_users'));
|
||||
|
||||
if ($request->filled('users_to_sync')) {
|
||||
$associated_users = explode(',',$request->input('users_to_sync'));
|
||||
$group->users()->sync($associated_users);
|
||||
}
|
||||
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.create'));
|
||||
}
|
||||
|
||||
@@ -89,10 +103,12 @@ class GroupsController extends Controller
|
||||
$groupPermissions = [];
|
||||
}
|
||||
$selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions);
|
||||
$associated_users = $group->users()->get();
|
||||
$associated_users = $group->users()->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
|
||||
|
||||
//dd($associated_users->toArray());
|
||||
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'))->with('associated_users', $associated_users);
|
||||
// Get the unselected users
|
||||
$unselected_users = \App\Models\User::whereNotIn('id', $associated_users->pluck('id')->toArray())->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
|
||||
|
||||
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'))->with('associated_users', $associated_users)->with('unselected_users', $unselected_users);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,13 +122,24 @@ class GroupsController extends Controller
|
||||
public function update(Request $request, Group $group) : RedirectResponse
|
||||
{
|
||||
$group->name = $request->input('name');
|
||||
$group->permissions = json_encode($request->input('permission'));
|
||||
|
||||
if ($request->filled('permission')) {
|
||||
$group->permissions = json_encode($request->array('permission'));
|
||||
} else {
|
||||
$group->permissions = null;
|
||||
}
|
||||
|
||||
$group->notes = $request->input('notes');
|
||||
|
||||
|
||||
if (! config('app.lock_passwords')) {
|
||||
if ($group->save()) {
|
||||
$group->users()->sync($request->input('associated_users'));
|
||||
|
||||
if ($request->filled('users_to_sync')) {
|
||||
$associated_users = explode(',',$request->input('users_to_sync'));
|
||||
$group->users()->sync($associated_users);
|
||||
}
|
||||
|
||||
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.update'));
|
||||
}
|
||||
|
||||
|
||||
@@ -772,6 +772,7 @@ class SettingsController extends Controller
|
||||
$setting->label2_asset_logo = $request->input('label2_asset_logo');
|
||||
$setting->label2_1d_type = $request->input('label2_1d_type');
|
||||
$setting->label2_2d_type = $request->input('label2_2d_type');
|
||||
$setting->label2_2d_prefix = $request->input('label2_2d_prefix');
|
||||
$setting->label2_2d_target = $request->input('label2_2d_target');
|
||||
$setting->label2_fields = $request->input('label2_fields');
|
||||
$setting->label2_empty_row_count = $request->input('label2_empty_row_count');
|
||||
|
||||
32
app/Http/Requests/StoreDepartmentRequest.php
Normal file
32
app/Http/Requests/StoreDepartmentRequest.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Models\Department;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
|
||||
class StoreDepartmentRequest extends ImageUploadRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Gate::allows('create', new Department);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
$modelRules = (new Department)->getRules();
|
||||
|
||||
return array_merge(
|
||||
$modelRules,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,7 @@ class StoreLabelSettings extends FormRequest
|
||||
'labels_pagewidth' => 'numeric|nullable',
|
||||
'labels_pageheight' => 'numeric|nullable',
|
||||
'qr_text' => 'max:31|nullable',
|
||||
'label2_2d_prefix' => 'nullable|max:191',
|
||||
'label2_template' => [
|
||||
'required',
|
||||
Rule::in($names),
|
||||
|
||||
@@ -28,23 +28,31 @@ class UpdateAssetRequest extends ImageUploadRequest
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
$setting = Setting::getSettings();
|
||||
|
||||
$rules = array_merge(
|
||||
parent::rules(),
|
||||
(new Asset)->getRules(),
|
||||
// this is to overwrite rulesets that include required, and rewrite unique_undeleted
|
||||
// This overwrites the rulesets that are set at the model level (via Watson) but are not necessarily required at the request level when doing a PATCH update.
|
||||
// Confusingly, this skips the unique_undeleted validator at the model level (and therefore the UniqueUndeletedTrait), so we have to re-add those
|
||||
// rules here without the requiredness, since those values will already exist if you're updating an existing asset.
|
||||
[
|
||||
'model_id' => ['integer', 'exists:models,id,deleted_at,NULL', 'not_array'],
|
||||
'status_id' => ['integer', 'exists:status_labels,id'],
|
||||
'asset_tag' => [
|
||||
'min:1', 'max:255', 'not_array',
|
||||
Rule::unique('assets', 'asset_tag')->ignore($this->asset)->withoutTrashed()
|
||||
Rule::unique('assets', 'asset_tag')->ignore($this->asset)->withoutTrashed(),
|
||||
],
|
||||
'serial' => [
|
||||
'string', 'max:255', 'not_array',
|
||||
$setting->unique_serial=='1' ? Rule::unique('assets', 'serial')->ignore($this->asset)->withoutTrashed() : 'nullable',
|
||||
],
|
||||
],
|
||||
);
|
||||
|
||||
// if the purchase cost is passed in as a string **and** the digit_separator is ',' (as is common in the EU)
|
||||
// then we tweak the purchase_cost rule to make it a string
|
||||
if (Setting::getSettings()->digit_separator === '1.234,56' && is_string($this->input('purchase_cost'))) {
|
||||
if ($setting->digit_separator === '1.234,56' && is_string($this->input('purchase_cost'))) {
|
||||
$rules['purchase_cost'] = ['nullable', 'string'];
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class DepartmentsTransformer
|
||||
'id' => (int) $department->location->id,
|
||||
'name' => e($department->location->name),
|
||||
] : null,
|
||||
'users_count' => e($department->users_count),
|
||||
'users_count' => (int) ($department->users_count),
|
||||
'notes' => Helper::parseEscapedMarkedownInline($department->notes),
|
||||
'created_at' => Helper::getFormattedDateObject($department->created_at, 'datetime'),
|
||||
'updated_at' => Helper::getFormattedDateObject($department->updated_at, 'datetime'),
|
||||
|
||||
@@ -36,6 +36,12 @@ class LicenseSeatsTransformer
|
||||
'name' => e($seat->user->department->name),
|
||||
|
||||
] : null,
|
||||
'company'=> ($seat->user->company) ?
|
||||
[
|
||||
'id' => (int) $seat->user->company->id,
|
||||
'name' => e($seat->user->company->name),
|
||||
|
||||
] : null,
|
||||
'created_at' => Helper::getFormattedDateObject($seat->created_at, 'datetime'),
|
||||
] : null,
|
||||
'assigned_asset' => ($seat->asset) ? [
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Livewire;
|
||||
|
||||
use Livewire\Attributes\Computed;
|
||||
use Livewire\Component;
|
||||
|
||||
class CategoryEditForm extends Component
|
||||
@@ -12,43 +13,25 @@ class CategoryEditForm extends Component
|
||||
|
||||
public $eulaText;
|
||||
|
||||
public $originalSendCheckInEmailValue;
|
||||
|
||||
public bool $requireAcceptance;
|
||||
|
||||
public bool $sendCheckInEmail;
|
||||
|
||||
public bool $useDefaultEula;
|
||||
|
||||
public function mount()
|
||||
{
|
||||
$this->originalSendCheckInEmailValue = $this->sendCheckInEmail;
|
||||
|
||||
if ($this->eulaText || $this->useDefaultEula) {
|
||||
$this->sendCheckInEmail = 1;
|
||||
}
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.category-edit-form');
|
||||
}
|
||||
|
||||
public function updated($property, $value)
|
||||
{
|
||||
if (! in_array($property, ['eulaText', 'useDefaultEula'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->sendCheckInEmail = $this->eulaText || $this->useDefaultEula ? 1 : $this->originalSendCheckInEmailValue;
|
||||
}
|
||||
|
||||
public function getShouldDisplayEmailMessageProperty(): bool
|
||||
#[Computed]
|
||||
public function emailWillBeSendDueToEula(): bool
|
||||
{
|
||||
return $this->eulaText || $this->useDefaultEula;
|
||||
}
|
||||
|
||||
public function getEmailMessageProperty(): string
|
||||
#[Computed]
|
||||
public function emailMessage(): string
|
||||
{
|
||||
if ($this->useDefaultEula) {
|
||||
return trans('admin/categories/general.email_will_be_sent_due_to_global_eula');
|
||||
@@ -57,13 +40,9 @@ class CategoryEditForm extends Component
|
||||
return trans('admin/categories/general.email_will_be_sent_due_to_category_eula');
|
||||
}
|
||||
|
||||
public function getEulaTextDisabledProperty()
|
||||
#[Computed]
|
||||
public function eulaTextDisabled()
|
||||
{
|
||||
return (bool)$this->useDefaultEula;
|
||||
}
|
||||
|
||||
public function getSendCheckInEmailDisabledProperty()
|
||||
{
|
||||
return $this->eulaText || $this->useDefaultEula;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ class SlackSettingsForm extends Component
|
||||
]);
|
||||
|
||||
try {
|
||||
$test = $webhook->post($this->webhook_endpoint, ['body' => $payload, ['headers' => ['Content-Type' => 'application/json']]]);
|
||||
$test = $webhook->post($this->webhook_endpoint, ['body' => $payload, 'headers' => ['Content-Type' => 'application/json']]);
|
||||
|
||||
if(($test->getStatusCode() == 302)||($test->getStatusCode() == 301)){
|
||||
return session()->flash('error' , trans('admin/settings/message.webhook.error_redirect', ['endpoint' => $this->webhook_endpoint]));
|
||||
|
||||
@@ -360,7 +360,7 @@ class Actionlog extends SnipeModel
|
||||
{
|
||||
$now = Carbon::now();
|
||||
$last_audit_date = $this->created_at; // this is the action log's created at, not the asset itself
|
||||
$next_audit = $last_audit_date->addMonth($monthInterval); // this actually *modifies* the $last_audit_date
|
||||
$next_audit = $last_audit_date->addMonth((int) $monthInterval); // this actually *modifies* the $last_audit_date
|
||||
$next_audit_days = (int) round($now->diffInDays($next_audit, true));
|
||||
$override_default_next = $next_audit;
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ class Asset extends Depreciable
|
||||
protected function warrantyExpires(): Attribute
|
||||
{
|
||||
return Attribute:: make(
|
||||
get: fn(mixed $value, array $attributes) => ($attributes['warranty_months'] && $attributes['purchase_date']) ? Carbon::parse($attributes['purchase_date'])->addMonths($attributes['warranty_months']) : null,
|
||||
get: fn(mixed $value, array $attributes) => ($attributes['warranty_months'] && $attributes['purchase_date']) ? Carbon::parse($attributes['purchase_date'])->addMonths((int)$attributes['warranty_months']) : null,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,10 +31,13 @@ class Department extends SnipeModel
|
||||
];
|
||||
|
||||
protected $rules = [
|
||||
'name' => 'required|max:255|is_unique_department',
|
||||
'location_id' => 'numeric|nullable',
|
||||
'company_id' => 'numeric|nullable',
|
||||
'manager_id' => 'numeric|nullable',
|
||||
'name' => 'required|max:255|is_unique_across_company_and_location:departments,name',
|
||||
'location_id' => 'numeric|nullable|exists:locations,id',
|
||||
'company_id' => 'numeric|nullable|exists:companies,id',
|
||||
'manager_id' => 'numeric|nullable|exists:users,id',
|
||||
'phone' => 'string|max:255|nullable',
|
||||
'fax' => 'string|max:255|nullable',
|
||||
'notes' => 'string|max:255|nullable',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,15 +4,15 @@ namespace App\Models\Labels\Tapes\Brother;
|
||||
|
||||
class TZe_24mm_E extends TZe_24mm
|
||||
{
|
||||
private const BARCODE_MARGIN = 1.50;
|
||||
private const BARCODE_MARGIN = 1.75;
|
||||
private const TAG_SIZE = 2.00;
|
||||
private const TITLE_SIZE = 2.80;
|
||||
private const TITLE_MARGIN = 0.50;
|
||||
private const LABEL_SIZE = 2.00;
|
||||
private const LABEL_MARGIN = - 0.35;
|
||||
private const LABEL_MARGIN = - 0.75;
|
||||
private const FIELD_SIZE = 2.80;
|
||||
private const FIELD_MARGIN = 0.15;
|
||||
private const BARCODE1D_SIZE = - 1.00;
|
||||
private const BARCODE1D_SIZE = - 2.25;
|
||||
|
||||
public function getUnit() { return 'mm'; }
|
||||
public function getWidth() { return 45.0; }
|
||||
|
||||
@@ -153,17 +153,24 @@ class LicenseSeat extends SnipeModel implements ICompanyableChild
|
||||
}
|
||||
|
||||
|
||||
public function scopeOrderCompany($query, $order)
|
||||
{
|
||||
|
||||
|
||||
return $query->leftJoin('users as license_seat_users', 'license_seats.assigned_to', '=', 'license_seat_users.id')
|
||||
->leftJoin('companies as license_user_company', 'license_user_company.id', '=', 'license_seat_users.company_id')
|
||||
->whereNotNull('license_seats.assigned_to')
|
||||
->orderBy('license_user_company.name', $order);
|
||||
}
|
||||
|
||||
|
||||
public function scopeByAssigned($query)
|
||||
{
|
||||
|
||||
return $query->where(
|
||||
function ($query) {
|
||||
$query->whereNotNull('assigned_to')
|
||||
->orWhere(
|
||||
function ($query) {
|
||||
$query->whereNotNull('asset_id');
|
||||
}
|
||||
);
|
||||
->orWhereNotNull('asset_id');
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -237,11 +237,14 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
$permissions = json_decode($this->permissions, true);
|
||||
}
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
if ($permission != 0) {
|
||||
return true;
|
||||
if (($permissions) && (is_array($permissions))) {
|
||||
foreach ($permissions as $permission) {
|
||||
if ($permission != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ use Illuminate\Notifications\Notification;
|
||||
$this->item_model = $params['item_model'];
|
||||
$this->item_serial = $params['item_serial'];
|
||||
$this->item_status = $params['item_status'];
|
||||
$this->accepted_date = Helper::getFormattedDateObject($params['accepted_date'], 'datetime', false);
|
||||
$this->accepted_date = $params['accepted_date'];
|
||||
$this->assigned_to = $params['assigned_to'];
|
||||
$this->company_name = $params['company_name'];
|
||||
$this->settings = Setting::getSettings();
|
||||
|
||||
@@ -25,7 +25,7 @@ class AcceptanceAssetDeclinedNotification extends Notification
|
||||
$this->item_model = $params['item_model'];
|
||||
$this->item_serial = $params['item_serial'];
|
||||
$this->item_status = $params['item_status'];
|
||||
$this->declined_date = Helper::getFormattedDateObject($params['declined_date'], 'date', false);
|
||||
$this->declined_date = $params['declined_date'];
|
||||
$this->note = $params['note'];
|
||||
$this->assigned_to = $params['assigned_to'];
|
||||
$this->company_name = $params['company_name'];
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
namespace App\Notifications;
|
||||
|
||||
use AllowDynamicProperties;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
#[AllowDynamicProperties]
|
||||
class InventoryAlert extends Notification
|
||||
{
|
||||
use Queueable;
|
||||
@@ -32,9 +34,8 @@ class InventoryAlert extends Notification
|
||||
*/
|
||||
public function via()
|
||||
{
|
||||
$notifyBy = ['mail'];
|
||||
return (!empty($this->items) && $this->threshold !== null) ? ['mail'] : [];
|
||||
|
||||
return $notifyBy;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,7 +49,8 @@ class UserObserver
|
||||
'end_date',
|
||||
'autoassign_licenses',
|
||||
'vip',
|
||||
'password'
|
||||
'password',
|
||||
'permissions'
|
||||
];
|
||||
|
||||
$changed = [];
|
||||
|
||||
@@ -248,10 +248,20 @@ class LicensePresenter extends Presenter
|
||||
'title' => trans('admin/users/table.email'),
|
||||
'visible' => true,
|
||||
'formatter' => 'emailFormatter',
|
||||
], [
|
||||
'field' => 'department',
|
||||
],
|
||||
[
|
||||
'field' => 'assigned_user.company',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'sortable' => false,
|
||||
'switchable' => true,
|
||||
'title' => trans('general.company'),
|
||||
'visible' => true,
|
||||
'formatter' => 'companiesLinkObjFormatter',
|
||||
],
|
||||
[
|
||||
'field' => 'assigned_user.department',
|
||||
'searchable' => false,
|
||||
'sortable' => false,
|
||||
'switchable' => true,
|
||||
'title' => trans('general.department'),
|
||||
'visible' => false,
|
||||
|
||||
@@ -283,41 +283,36 @@ class ValidationServiceProvider extends ServiceProvider
|
||||
}
|
||||
});
|
||||
|
||||
Validator::extend('is_unique_department', function ($attribute, $value, $parameters, $validator) {
|
||||
/**
|
||||
* Check that the 'name' field is unique in the table while within both company_id and location_id
|
||||
* This is only used by Departments right now, but could be used elsewhere in the future.
|
||||
*/
|
||||
Validator::extend('is_unique_across_company_and_location', function ($attribute, $value, $parameters, $validator) {
|
||||
$data = $validator->getData();
|
||||
$table = array_get($parameters, 0);
|
||||
|
||||
if (
|
||||
array_key_exists('location_id', $data) && $data['location_id'] !== null &&
|
||||
array_key_exists('company_id', $data) && $data['company_id'] !== null
|
||||
) {
|
||||
//for updating existing departments
|
||||
if(array_key_exists('id', $data) && $data['id'] !== null){
|
||||
$count = Department::where('name', $data['name'])
|
||||
->where('location_id', $data['location_id'])
|
||||
->where('company_id', $data['company_id'])
|
||||
->whereNotNull('company_id')
|
||||
->whereNotNull('location_id')
|
||||
->where('id', '!=', $data['id'])
|
||||
->count('name');
|
||||
$count = DB::table($table)->select($attribute)
|
||||
->where($attribute, $value)
|
||||
->whereNull('deleted_at');
|
||||
|
||||
return $count < 1;
|
||||
}else // for entering in new departments
|
||||
{
|
||||
$count = Department::where('name', $data['name'])
|
||||
->where('location_id', $data['location_id'])
|
||||
->where('company_id', $data['company_id'])
|
||||
->whereNotNull('company_id')
|
||||
->whereNotNull('location_id')
|
||||
->count('name');
|
||||
|
||||
return $count < 1;
|
||||
if (array_key_exists('id', $data) && $data['id'] !== null) {
|
||||
$count = $count->where('id', '!=', $data['id']);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (array_key_exists('location_id', $data) && $data['location_id'] !== null) {
|
||||
$count = $count->where('location_id', $data['location_id']);
|
||||
}
|
||||
|
||||
if (array_key_exists('company_id', $data) && $data['company_id'] !== null) {
|
||||
$count = $count->where('company_id', $data['company_id']);
|
||||
}
|
||||
|
||||
$count = $count->count('name');
|
||||
return $count < 1;
|
||||
|
||||
});
|
||||
|
||||
|
||||
Validator::extend('not_array', function ($attribute, $value, $parameters, $validator) {
|
||||
return !is_array($value);
|
||||
});
|
||||
|
||||
@@ -140,18 +140,32 @@ class Label implements View
|
||||
if ($template->getSupport2DBarcode()) {
|
||||
$barcode2DType = $settings->label2_2d_type;
|
||||
if (($barcode2DType != 'none') && (!is_null($barcode2DType))) {
|
||||
|
||||
$label2_2d_prefix = $settings->label2_2d_prefix ? e($settings->label2_2d_prefix) : '';
|
||||
switch ($settings->label2_2d_target) {
|
||||
case 'ht_tag':
|
||||
$barcode2DTarget = route('ht/assetTag', $asset->asset_tag);
|
||||
break;
|
||||
case 'plain_asset_id':
|
||||
$barcode2DTarget = (string) $asset->id;
|
||||
$barcode2DTarget = $label2_2d_prefix.(string) $asset->id;
|
||||
break;
|
||||
case 'plain_asset_tag':
|
||||
$barcode2DTarget = $asset->asset_tag;
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->asset_tag;
|
||||
break;
|
||||
case 'plain_serial_number':
|
||||
$barcode2DTarget = $asset->serial;
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->serial;
|
||||
break;
|
||||
case 'plain_model_number':
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->model->model_number ?? '';
|
||||
break;
|
||||
case 'plain_model_name':
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->model->display_name ?? '';
|
||||
break;
|
||||
case 'plain_manufacturer_name':
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->model->display_name;
|
||||
break;
|
||||
case 'plain_location_name':
|
||||
$barcode2DTarget = $label2_2d_prefix.$asset->location->name;
|
||||
break;
|
||||
case 'location':
|
||||
$barcode2DTarget = $asset->location_id
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v8.3.4',
|
||||
'full_app_version' => 'v8.3.4 - build 20218-g3ab2e2011',
|
||||
'build_version' => '20218',
|
||||
'app_version' => 'v8.3.5',
|
||||
'full_app_version' => 'v8.3.5 - build 20406-gf92f76b48',
|
||||
'build_version' => '20406',
|
||||
'prerelease_version' => '',
|
||||
'hash_version' => 'g3ab2e2011',
|
||||
'full_hash' => 'v8.3.4-149-g3ab2e2011',
|
||||
'hash_version' => 'gf92f76b48',
|
||||
'full_hash' => 'v8.3.5-183-gf92f76b48',
|
||||
'branch' => 'master',
|
||||
);
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('settings', function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('settings', 'label2_2d_prefix')) {
|
||||
$table->char('label2_2d_prefix', 191)->after('label2_2d_type')->nullable()->default(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('settings', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('settings', 'label2_2d_prefix')) {
|
||||
$table->dropColumn('label2_2d_prefix');
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -68,7 +68,7 @@ class UserSeeder extends Seeder
|
||||
]))
|
||||
->create();
|
||||
|
||||
User::factory()->count(50)->viewAssets()
|
||||
User::factory()->count(2000)->viewAssets()
|
||||
->state(new Sequence(fn($sequence) => [
|
||||
'company_id' => $companyIds->random(),
|
||||
'department_id' => $departmentIds->random(),
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/css/dist/all.css
vendored
2
public/css/dist/all.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/_all-skins.css
vendored
2
public/css/dist/skins/_all-skins.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/_all-skins.css.map
vendored
2
public/css/dist/skins/_all-skins.css.map
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/_all-skins.min.css
vendored
2
public/css/dist/skins/_all-skins.min.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-black-dark.css
vendored
2
public/css/dist/skins/skin-black-dark.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-blue-dark.css
vendored
2
public/css/dist/skins/skin-blue-dark.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-blue-dark.css.map
vendored
2
public/css/dist/skins/skin-blue-dark.css.map
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-blue-dark.min.css
vendored
2
public/css/dist/skins/skin-blue-dark.min.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-green-dark.css
vendored
2
public/css/dist/skins/skin-green-dark.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-orange-dark.css
vendored
2
public/css/dist/skins/skin-orange-dark.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-purple-dark.css
vendored
2
public/css/dist/skins/skin-purple-dark.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-red-dark.css
vendored
2
public/css/dist/skins/skin-red-dark.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-red-dark.css.map
vendored
2
public/css/dist/skins/skin-red-dark.css.map
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-red-dark.min.css
vendored
2
public/css/dist/skins/skin-red-dark.min.css
vendored
File diff suppressed because one or more lines are too long
2
public/css/dist/skins/skin-yellow-dark.css
vendored
2
public/css/dist/skins/skin-yellow-dark.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/dist/all.js
vendored
2
public/js/dist/all.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/dist/all.js.map
vendored
2
public/js/dist/all.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=6ffdb46d7dcfceb395f453e15cfbc4be",
|
||||
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=bf1a348eae3e60c62b8879953f7df14c",
|
||||
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=f712d11cfca345b58c1d8a35df03d38d",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=f9623ce518286374061ab2e687625d44",
|
||||
"/css/build/app.css": "/css/build/app.css?id=83eea8dd4d4fca629261df8b71025a77",
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=a84550e1cfe57870332e6a2e1b605707",
|
||||
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=8d861085664e18a1407cce2d29762fa4",
|
||||
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=2fea629e70002a51fb241703dd09371c",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=dee88c73824aa75c0a01ecdc744b3095",
|
||||
"/css/build/app.css": "/css/build/app.css?id=de48355100918a6ea593b6152964f15e",
|
||||
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=bdf169bc2141f453390614c138cdce95",
|
||||
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=e1e6e1c64cf14fc350585aaeb0e42f6b",
|
||||
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=08ae1b3e66008966ce5d600ea3ad04a2",
|
||||
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=69b5b9e2ae359f2871b8d6676d0a63f1",
|
||||
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=fe8365eda6947fae76b6891d8de23e57",
|
||||
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=4177acfe78a6a808fa7054cf99a93387",
|
||||
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=ed73641edda768c85446aef73246e636",
|
||||
"/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=0853b7f7da3d6bfda0738df5574d9892",
|
||||
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=4bf29ed9f4b511b23eb9f5647371622c",
|
||||
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=02ce0e67061be4447046ecb16301050f",
|
||||
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=23f6b19fc0add02e020cbb9e4f6f9272",
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=71905ff04c78d92dc6f0b8354b458ffd",
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=90f07fa679d35cf937ac5009000f60c7",
|
||||
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=d68df5bc23ddddc710f7acf2201b2caf",
|
||||
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=436c77b84b2797f9683a7cdc4f8f6b8d",
|
||||
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=7e4bd59d35004cb255983e8b282f2870",
|
||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=fbd34e1e2d119358e781195c3fe26b69",
|
||||
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=68a92d85c8e351dfb38a835307f126ec",
|
||||
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=cbb20ad6182b658f34117bf96a621b63",
|
||||
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=ed9df5188fc923bf67fa194b5dcf5c0c",
|
||||
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=84e2ee950ae04444988b37038e5a3951",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=b234d09cc37cdddb008d79d2a1f46660",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=09fd1dac7d534c75004d7cd15382f756",
|
||||
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",
|
||||
@@ -93,21 +93,21 @@
|
||||
"/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=d300041b9e5038b45b68e036add83be4",
|
||||
"/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=6d0de12d91548ba2cd80b868838ce5fa",
|
||||
"/js/dist/Chart.min.js": "/js/dist/Chart.min.js?id=9b1ae20c4c7048d6e4a1b2e1aee7fb31",
|
||||
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=f712d11cfca345b58c1d8a35df03d38d",
|
||||
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=bf1a348eae3e60c62b8879953f7df14c",
|
||||
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=2fea629e70002a51fb241703dd09371c",
|
||||
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=8d861085664e18a1407cce2d29762fa4",
|
||||
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=84e2ee950ae04444988b37038e5a3951",
|
||||
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=cbb20ad6182b658f34117bf96a621b63",
|
||||
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=ed9df5188fc923bf67fa194b5dcf5c0c",
|
||||
"/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=68a92d85c8e351dfb38a835307f126ec",
|
||||
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=fbd34e1e2d119358e781195c3fe26b69",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=436c77b84b2797f9683a7cdc4f8f6b8d",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=7e4bd59d35004cb255983e8b282f2870",
|
||||
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=d68df5bc23ddddc710f7acf2201b2caf",
|
||||
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=71905ff04c78d92dc6f0b8354b458ffd",
|
||||
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=90f07fa679d35cf937ac5009000f60c7",
|
||||
"/css/dist/skins/skin-orange.min.css": "/css/dist/skins/skin-orange.min.css?id=23f6b19fc0add02e020cbb9e4f6f9272",
|
||||
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=4bf29ed9f4b511b23eb9f5647371622c",
|
||||
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=02ce0e67061be4447046ecb16301050f",
|
||||
"/css/dist/skins/skin-purple.min.css": "/css/dist/skins/skin-purple.min.css?id=0853b7f7da3d6bfda0738df5574d9892",
|
||||
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=4177acfe78a6a808fa7054cf99a93387",
|
||||
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=ed73641edda768c85446aef73246e636",
|
||||
"/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=fe8365eda6947fae76b6891d8de23e57",
|
||||
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=08ae1b3e66008966ce5d600ea3ad04a2",
|
||||
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=69b5b9e2ae359f2871b8d6676d0a63f1",
|
||||
"/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=e1e6e1c64cf14fc350585aaeb0e42f6b",
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=9def0b5d3b891ac3669b3b7aa7e805ce",
|
||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=ed9dc2e13cf495675067c4c7091b325a"
|
||||
|
||||
@@ -625,35 +625,29 @@ $('.header-row input:radio').change(function() {
|
||||
|
||||
// Generic toggleable callouts with remember state
|
||||
$(".remember-toggle").on("click",function(){
|
||||
|
||||
var toggleable_callout_id = $(this).attr('id');
|
||||
var toggle_content_class = 'toggle-content-'+$(this).attr('id');
|
||||
var toggle_arrow = '#toggle-arrow-' + toggleable_callout_id;
|
||||
var toggle_cookie_name='toggle_state_'+toggleable_callout_id;
|
||||
|
||||
console.log('Callout ID: ' + toggleable_callout_id);
|
||||
console.log('Content ID: '+toggle_content_class);
|
||||
console.log('Arrow ID: '+toggle_arrow);
|
||||
console.log('Cookie Name: '+toggle_cookie_name);
|
||||
|
||||
$('.'+toggle_content_class).fadeToggle(100);
|
||||
$(toggle_arrow).toggleClass('fa-caret-right fa-caret-down');
|
||||
var toggle_open = $(toggle_arrow).hasClass('fa-caret-down');
|
||||
console.log('Cookie will set open state to: '+toggle_open);
|
||||
document.cookie=toggle_cookie_name+"="+toggle_open+';path=/';
|
||||
});
|
||||
|
||||
var all_cookies = document.cookie.split(';')
|
||||
for (var i in all_cookies) {
|
||||
var trimmed_cookie = all_cookies[i].trim(' ')
|
||||
elems = all_cookies[i].split('=', 2);
|
||||
|
||||
elems = trimmed_cookie.split('=', 2);
|
||||
|
||||
// We have to do more here since we don't know the name of the selector
|
||||
if (trimmed_cookie.startsWith('toggle_state_')) {
|
||||
console.log(trimmed_cookie + ' matches toggle_state_');
|
||||
var toggle_selector_name = elems[0].replace(' toggle_state_','');
|
||||
if (elems[1] == 'true') {
|
||||
console.log('Selector name for cookie click trigger: '+toggle_selector_name);
|
||||
|
||||
var toggle_selector_name = elems[0].replace('toggle_state_','');
|
||||
|
||||
if (elems[1] != "true") {
|
||||
$('#'+toggle_selector_name+'.remember-toggle').trigger('click')
|
||||
}
|
||||
}
|
||||
@@ -714,3 +708,80 @@ $(".admin").change(function() {
|
||||
}
|
||||
});
|
||||
|
||||
// Handle the select/deselect of the select boxes with the button from right to left
|
||||
|
||||
$(function () {
|
||||
|
||||
function moveItems(origin, dest) {
|
||||
$(origin).find(':selected').appendTo(dest);
|
||||
$(dest).attr('selected', true);
|
||||
$(dest).sort_select_box();
|
||||
}
|
||||
|
||||
function moveAllItems(origin, dest) {
|
||||
$(origin).children("option:visible").appendTo(dest);
|
||||
$(dest).attr('selected', true);
|
||||
$(dest).sort_select_box();
|
||||
}
|
||||
|
||||
$('.left').on('click', function () {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveItems($(container).find('select.multiselect.selected'), $(container).find('select.multiselect.available'));
|
||||
});
|
||||
|
||||
$('.right').on('click', function () {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveItems($(container).find('select.multiselect.available'), $(container).find('select.multiselect.selected'));
|
||||
|
||||
});
|
||||
|
||||
$('.leftall').on('click', function () {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveAllItems($(container).find('select.multiselect.selected'), $(container).find('select.multiselect.available'));
|
||||
});
|
||||
|
||||
$('.rightall').on('click', function () {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveAllItems($(container).find('select.multiselect.available'), $(container).find('select.multiselect.selected'));
|
||||
});
|
||||
|
||||
$('select.multiselect.selected').on('dblclick keyup',function(e){
|
||||
if(e.which == 13 || e.type == 'dblclick') {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveItems($(container).find('select.multiselect.selected'), $(container).find('select.multiselect.available'));
|
||||
}
|
||||
});
|
||||
|
||||
$('select.multiselect.available').on('dblclick keyup',function(e){
|
||||
if(e.which == 13 || e.type == 'dblclick') {
|
||||
var container = $(this).closest('.addremove-multiselect');
|
||||
moveItems($(container).find('select.multiselect.available'), $(container).find('select.multiselect.selected'));
|
||||
$('#hidden_ids_box').val($('#selected-select').val());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
$.fn.sort_select_box = function(){
|
||||
// Get options from select box
|
||||
var selected_options = $(this).children('option');
|
||||
// sort alphabetically
|
||||
selected_options.sort(function(a,b) {
|
||||
if (a.text > b.text) return 1;
|
||||
else if (a.text < b.text) return -1;
|
||||
else return 0
|
||||
})
|
||||
//replace with sorted my_options;
|
||||
$(this).empty().append(selected_options);
|
||||
|
||||
var selected_in_box = $('#selected-select option').toArray().map(item => item.value).join();
|
||||
|
||||
$('#hidden_ids_box').empty().val(selected_in_box);
|
||||
|
||||
$('#count_selected_box').html($('#selected-select option').length);
|
||||
$('#count_unselected_box').html($('#available-select option').length);
|
||||
|
||||
// clearing any selections
|
||||
$("#"+this.attr('id')+" option").attr('selected', true);
|
||||
}
|
||||
|
||||
@@ -1175,11 +1175,6 @@ input[type="radio"]:checked::before {
|
||||
display: table-row !important;
|
||||
}
|
||||
|
||||
.form-control-static {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
|
||||
td.text-right.text-padding-number-cell {
|
||||
padding-right: 30px !important;
|
||||
white-space: nowrap;
|
||||
@@ -1366,3 +1361,7 @@ Radio toggle styles for permission settings and check/uncheck all
|
||||
.remember-toggle {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.js-copy-link {
|
||||
color: grey;
|
||||
}
|
||||
@@ -91,7 +91,9 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
*/
|
||||
|
||||
@@ -86,6 +86,9 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
|
||||
@@ -86,7 +86,9 @@
|
||||
color: #FFF;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
*/
|
||||
|
||||
@@ -86,7 +86,9 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
*/
|
||||
|
||||
@@ -86,7 +86,9 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
|
||||
@@ -84,7 +84,9 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
The dropdown is white, so use a darker color
|
||||
|
||||
@@ -75,6 +75,9 @@
|
||||
color: #545454;
|
||||
}
|
||||
}
|
||||
.btn-info {
|
||||
border-color: #fff;
|
||||
}
|
||||
a.actions {
|
||||
color:#fff !important;
|
||||
}
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
return array(
|
||||
'asset_categories' => 'crwdns636:0crwdne636:0',
|
||||
'category_name' => 'crwdns637:0crwdne637:0',
|
||||
'checkin_email' => 'crwdns2034:0crwdne2034:0',
|
||||
'email_to_user_upon_checkin' => 'crwdns14264:0crwdne14264:0',
|
||||
'email_to_user_upon_checkin_and_checkout' => 'crwdns14266:0crwdne14266:0',
|
||||
'email_to_initiator' => 'crwdns13442:0crwdne13442:0',
|
||||
'checkin_email_notification' => 'crwdns2035:0crwdne2035:0',
|
||||
'clone' => 'crwdns1239:0crwdne1239:0',
|
||||
'create' => 'crwdns638:0crwdne638:0',
|
||||
'edit' => 'crwdns1240:0crwdne1240:0',
|
||||
'email_will_be_sent_due_to_global_eula' => 'crwdns11697:0crwdne11697:0',
|
||||
'email_will_be_sent_due_to_category_eula' => 'crwdns11699:0crwdne11699:0',
|
||||
'email_will_be_sent_due_to_global_eula' => 'crwdns14268:0crwdne14268:0',
|
||||
'email_will_be_sent_due_to_category_eula' => 'crwdns14270:0crwdne14270:0',
|
||||
'eula_text' => 'crwdns1241:0crwdne1241:0',
|
||||
'eula_text_help' => 'crwdns1242:0crwdne1242:0',
|
||||
'name' => 'crwdns1835:0crwdne1835:0',
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'crwdns6501:0crwdne6501:0',
|
||||
'field' => 'crwdns1487:0crwdne1487:0',
|
||||
'about_fieldsets_title' => 'crwdns1488:0crwdne1488:0',
|
||||
'about_fieldsets_text' => 'crwdns13838:0crwdne13838:0',
|
||||
'about_fieldsets_text' => 'crwdns13896:0crwdne13896:0',
|
||||
'custom_format' => 'crwdns6505:0crwdne6505:0',
|
||||
'encrypt_field' => 'crwdns1792:0crwdne1792:0',
|
||||
'encrypt_field_help' => 'crwdns1683:0crwdne1683:0',
|
||||
@@ -67,4 +67,5 @@ return [
|
||||
'checkbox' => 'crwdns13266:0crwdne13266:0',
|
||||
'radio' => 'crwdns13268:0crwdne13268:0',
|
||||
],
|
||||
'general_help_text' => 'crwdns13902:0crwdne13902:0',
|
||||
];
|
||||
|
||||
@@ -18,7 +18,7 @@ return [
|
||||
'alert_email' => 'crwdns1198:0crwdne1198:0',
|
||||
'alert_email_help' => 'crwdns13160:0crwdne13160:0',
|
||||
'alerts_enabled' => 'crwdns1623:0crwdne1623:0',
|
||||
'alert_interval' => 'crwdns1624:0crwdne1624:0',
|
||||
'alert_interval' => 'crwdns13904:0crwdne13904:0',
|
||||
'alert_inv_threshold' => 'crwdns1625:0crwdne1625:0',
|
||||
'allow_user_skin' => 'crwdns6048:0crwdne6048:0',
|
||||
'allow_user_skin_help_text' => 'crwdns6050:0crwdne6050:0',
|
||||
@@ -94,10 +94,12 @@ return [
|
||||
'ldap_settings' => 'crwdns1450:0crwdne1450:0',
|
||||
'ldap_client_tls_cert_help' => 'crwdns6091:0crwdne6091:0',
|
||||
'ldap_location' => 'crwdns13698:0crwdne13698:0',
|
||||
'ldap_location_help' => 'crwdns13700:0crwdne13700:0',
|
||||
'ldap_location_help' => 'crwdns13700:0crwdne13700:0',
|
||||
'ldap_login_test_help' => 'crwdns1968:0crwdne1968:0',
|
||||
'ldap_login_sync_help' => 'crwdns13742:0crwdne13742:0',
|
||||
'ldap_manager' => 'crwdns13702:0crwdne13702:0',
|
||||
'ldap_mapping_help' => 'crwdns13898:0crwdne13898:0',
|
||||
'save_ldap_first' => 'crwdns13900:0crwdne13900:0',
|
||||
'ldap_server' => 'crwdns1451:0crwdne1451:0',
|
||||
'ldap_server_help' => 'crwdns12578:0crwdne12578:0',
|
||||
'ldap_server_cert' => 'crwdns1475:0crwdne1475:0',
|
||||
@@ -345,6 +347,7 @@ return [
|
||||
'asset_tags_help' => 'crwdns6457:0crwdne6457:0',
|
||||
'labels' => 'crwdns6459:0crwdne6459:0',
|
||||
'labels_title' => 'crwdns6461:0crwdne6461:0',
|
||||
'labels_title_help' => 'crwdns14274:0crwdne14274:0',
|
||||
'labels_help' => 'crwdns12840:0crwdne12840:0',
|
||||
'purge_help' => 'crwdns6469:0crwdne6469:0',
|
||||
'ldap_extension_warning' => 'crwdns6471:0crwdne6471:0',
|
||||
@@ -379,14 +382,17 @@ return [
|
||||
'label2_1d_type_help' => 'crwdns11743:0crwdne11743:0',
|
||||
'label2_2d_type' => 'crwdns11745:0crwdne11745:0',
|
||||
'label2_2d_type_help' => 'crwdns11747:0crwdne11747:0',
|
||||
'label2_2d_target' => 'crwdns11749:0crwdne11749:0',
|
||||
'label2_2d_target_help' => 'crwdns12832:0crwdne12832:0',
|
||||
'label2_2d_prefix' => 'crwdns14276:0crwdne14276:0',
|
||||
'label2_2d_prefix_help' => 'crwdns14278:0crwdne14278:0',
|
||||
'label2_2d_target' => 'crwdns14280:0crwdne14280:0',
|
||||
'label2_2d_target_help' => 'crwdns14282:0crwdne14282:0',
|
||||
'select_template' => 'crwdns14284:0crwdne14284:0',
|
||||
'label2_fields' => 'crwdns11753:0crwdne11753:0',
|
||||
'label2_fields_help' => 'crwdns11755:0crwdne11755:0',
|
||||
'label2_fields_help' => 'crwdns14286:0crwdne14286:0',
|
||||
'purge_barcodes' => 'crwdns12985:0crwdne12985:0',
|
||||
'help_asterisk_bold' => 'crwdns11757:0crwdne11757:0',
|
||||
'help_blank_to_use' => 'crwdns11759:0crwdne11759:0',
|
||||
'help_default_will_use' => 'crwdns12834:0crwdne12834:0',
|
||||
'help_default_will_use' => 'crwdns14288:0crwdne14288:0',
|
||||
'asset_id' => 'crwdns12836:0crwdne12836:0',
|
||||
'data' => 'crwdns12838:0crwdne12838:0',
|
||||
'default' => 'crwdns11763:0crwdne11763:0',
|
||||
@@ -414,6 +420,9 @@ return [
|
||||
'manager_view' => 'crwdns13418:0crwdne13418:0',
|
||||
'manager_view_enabled_text' => 'crwdns13420:0crwdne13420:0',
|
||||
'manager_view_enabled_help' => 'crwdns13422:0crwdne13422:0',
|
||||
'redirect_url' => 'crwdns14258:0crwdne14258:0',
|
||||
'client_secret' => 'crwdns14260:0crwdne14260:0',
|
||||
'client_id' => 'crwdns14262:0crwdne14262:0',
|
||||
|
||||
'username_formats' => [
|
||||
'username_format' => 'crwdns13090:0crwdne13090:0',
|
||||
@@ -487,6 +496,7 @@ return [
|
||||
'server' => 'crwdns13740:0crwdne13740:0',
|
||||
'scoping' => 'crwdns13192:0crwdne13192:0',
|
||||
'security' => 'crwdns13218:0crwdne13218:0',
|
||||
'passwords' => 'crwdns13906:0crwdne13906:0',
|
||||
],
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ return [
|
||||
'info' => 'crwdns1848:0crwdne1848:0',
|
||||
'restore_user' => 'crwdns1912:0crwdne1912:0',
|
||||
'last_login' => 'crwdns1130:0crwdne1130:0',
|
||||
'ldap_config_text' => 'crwdns1580:0crwdne1580:0',
|
||||
'ldap_config_text' => 'crwdns14248:0crwdne14248:0',
|
||||
'ldap_sync_intro' => 'crwdns14250:0crwdne14250:0',
|
||||
'print_assigned' => 'crwdns1993:0crwdne1993:0',
|
||||
'email_assigned' => 'crwdns10484:0crwdne10484:0',
|
||||
'user_notified' => 'crwdns10486:0crwdne10486:0',
|
||||
@@ -53,4 +54,6 @@ return [
|
||||
'all_assigned_list_generation' => 'crwdns11415:0crwdne11415:0',
|
||||
'email_user_creds_on_create' => 'crwdns11517:0crwdne11517:0',
|
||||
'department_manager' => 'crwdns13408:0crwdne13408:0',
|
||||
'generate_password' => 'crwdns13908:0crwdne13908:0',
|
||||
'individual_override' => 'crwdns13910:0crwdne13910:0',
|
||||
];
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
return array(
|
||||
|
||||
'accepted' => 'crwdns1344:0crwdne1344:0',
|
||||
'declined' => 'crwdns1345:0crwdne1345:0',
|
||||
'accepted' => 'crwdns14254:0crwdne14254:0',
|
||||
'declined' => 'crwdns14256:0crwdne14256:0',
|
||||
'bulk_manager_warn' => 'crwdns1849:0crwdne1849:0',
|
||||
'user_exists' => 'crwdns787:0crwdne787:0',
|
||||
'user_not_found' => 'crwdns12744:0crwdne12744:0',
|
||||
|
||||
@@ -350,6 +350,7 @@ return [
|
||||
'login_disabled' => 'crwdns13618:0crwdne13618:0',
|
||||
'audit_due' => 'crwdns5986:0crwdne5986:0',
|
||||
'audit_due_days' => 'crwdns12910:0crwdne12910:0',
|
||||
'audit_due_days_view_all' => 'crwdns14238:0crwdne14238:0',
|
||||
'checkin_due' => 'crwdns12176:0crwdne12176:0',
|
||||
'checkin_overdue' => 'crwdns12178:0crwdne12178:0',
|
||||
'checkin_due_days' => 'crwdns12912:0crwdne12912:0',
|
||||
@@ -383,6 +384,14 @@ return [
|
||||
'bulk_edit_about_to' => 'crwdns6193:0crwdne6193:0',
|
||||
'checked_out' => 'crwdns6195:0crwdne6195:0',
|
||||
'checked_out_to' => 'crwdns6197:0crwdne6197:0',
|
||||
'available_users' => 'crwdns14290:0crwdne14290:0',
|
||||
'add_users_to_group' => 'crwdns14292:0crwdne14292:0',
|
||||
'users_to_add_to_group' => 'crwdns14294:0crwdne14294:0',
|
||||
'add_all_users_to_group' => 'crwdns14296:0crwdne14296:0',
|
||||
'add_selected_users_to_group' => 'crwdns14298:0crwdne14298:0',
|
||||
'remove_selected_users_from_group' => 'crwdns14300:0crwdne14300:0',
|
||||
'remove_all_users_from_group' => 'crwdns14302:0crwdne14302:0',
|
||||
'add_users_to_group_help' => 'crwdns14304:0crwdne14304:0',
|
||||
'fields' => 'crwdns6199:0crwdne6199:0',
|
||||
'last_checkout' => 'crwdns6201:0crwdne6201:0',
|
||||
'due_to_checkin' => 'crwdns6203:0crwdne6203:0',
|
||||
@@ -390,6 +399,7 @@ return [
|
||||
'reminder_checked_out_items' => 'crwdns6207:0crwdne6207:0',
|
||||
'changed' => 'crwdns6209:0crwdne6209:0',
|
||||
'to' => 'crwdns6211:0crwdne6211:0',
|
||||
'to_user' => 'crwdns14244:0crwdne14244:0',
|
||||
'report_fields_info' => 'crwdns6213:0crwdne6213:0',
|
||||
'range' => 'crwdns6215:0crwdne6215:0',
|
||||
'bom_remark' => 'crwdns6217:0crwdne6217:0',
|
||||
@@ -614,6 +624,8 @@ return [
|
||||
'user_managed_passwords_allow' => 'crwdns12874:0crwdne12874:0',
|
||||
'from' => 'crwdns13170:0crwdne13170:0',
|
||||
'by' => 'crwdns13172:0crwdne13172:0',
|
||||
'by_user' => 'crwdns14246:0crwdne14246:0',
|
||||
'ldap_sync_location' => 'crwdns14252:0crwdne14252:0',
|
||||
'version' => 'crwdns13278:0crwdne13278:0',
|
||||
'build' => 'crwdns13280:0crwdne13280:0',
|
||||
'use_cloned_image' => 'crwdns13522:0crwdne13522:0',
|
||||
|
||||
@@ -100,7 +100,8 @@ return [
|
||||
'the_following_item' => 'crwdns1761:0crwdne1761:0',
|
||||
'to_reset' => 'crwdns1763:0crwdne1763:0',
|
||||
'type' => 'crwdns1764:0crwdne1764:0',
|
||||
'upcoming-audits' => 'crwdns6002:0crwdne6002:0',
|
||||
'upcoming-audits' => 'crwdns14240:0crwdne14240:0',
|
||||
'upcoming-audits_click' => 'crwdns14242:0crwdne14242:0',
|
||||
'user' => 'crwdns2032:0crwdne2032:0',
|
||||
'username' => 'crwdns2033:0crwdne2033:0',
|
||||
'unaccepted_asset_reminder' => 'crwdns13011:0crwdne13011:0',
|
||||
|
||||
424
resources/lang/aa-ER/permissions.php
Normal file
424
resources/lang/aa-ER/permissions.php
Normal file
@@ -0,0 +1,424 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Permissions
|
||||
|--------------------------------------------------------------------------
|
||||
| The following language lines are used in the user permissions system.
|
||||
| Each permission has a 'name' and a 'note' that describes
|
||||
| the permission in detail.
|
||||
|
|
||||
| DO NOT edit the keys (left-hand side) of each permission as these are
|
||||
| used throughout the system for translations.
|
||||
|---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
"superuser" => [
|
||||
'name' => 'crwdns13912:0crwdne13912:0',
|
||||
'note' => 'crwdns13914:0crwdne13914:0',
|
||||
],
|
||||
'admin' => [
|
||||
'name' => 'crwdns13916:0crwdne13916:0',
|
||||
'note' => 'crwdns13918:0crwdne13918:0',
|
||||
],
|
||||
|
||||
'import' => [
|
||||
'name' => 'crwdns13920:0crwdne13920:0',
|
||||
'note' => 'crwdns13922:0crwdne13922:0',
|
||||
],
|
||||
|
||||
'reports' => [
|
||||
'name' => 'crwdns13924:0crwdne13924:0',
|
||||
'note' => 'crwdns13926:0crwdne13926:0',
|
||||
],
|
||||
|
||||
'assets' =>
|
||||
[
|
||||
'name' => 'crwdns13928:0crwdne13928:0',
|
||||
'note' => 'crwdns13930:0crwdne13930:0',
|
||||
],
|
||||
|
||||
'assetsview' => [
|
||||
'name' => 'crwdns13932:0crwdne13932:0',
|
||||
],
|
||||
|
||||
'assetscreate' => [
|
||||
'name' => 'crwdns13934:0crwdne13934:0',
|
||||
],
|
||||
|
||||
'assetsedit' => [
|
||||
'name' => 'crwdns13936:0crwdne13936:0',
|
||||
],
|
||||
|
||||
'assetsdelete' => [
|
||||
'name' => 'crwdns13938:0crwdne13938:0',
|
||||
],
|
||||
|
||||
'assetscheckin' => [
|
||||
'name' => 'crwdns13940:0crwdne13940:0',
|
||||
'note' => 'crwdns13942:0crwdne13942:0',
|
||||
],
|
||||
|
||||
'assetscheckout' => [
|
||||
'name' => 'crwdns13944:0crwdne13944:0',
|
||||
'note' => 'crwdns13946:0crwdne13946:0',
|
||||
],
|
||||
|
||||
'assetsaudit' => [
|
||||
'name' => 'crwdns13948:0crwdne13948:0',
|
||||
'note' => 'crwdns13950:0crwdne13950:0',
|
||||
],
|
||||
|
||||
'assetsviewrequestable' => [
|
||||
'name' => 'crwdns13952:0crwdne13952:0',
|
||||
'note' => 'crwdns13954:0crwdne13954:0',
|
||||
],
|
||||
|
||||
'assetsviewencrypted-custom-fields' => [
|
||||
'name' => 'crwdns13956:0crwdne13956:0',
|
||||
'note' => 'crwdns13958:0crwdne13958:0',
|
||||
],
|
||||
|
||||
'accessories' => [
|
||||
'name' => 'crwdns13960:0crwdne13960:0',
|
||||
'note' => 'crwdns13962:0crwdne13962:0',
|
||||
],
|
||||
|
||||
'accessoriesview' => [
|
||||
'name' => 'crwdns13964:0crwdne13964:0',
|
||||
],
|
||||
'accessoriescreate' => [
|
||||
'name' => 'crwdns13966:0crwdne13966:0',
|
||||
],
|
||||
'accessoriesedit' => [
|
||||
'name' => 'crwdns13968:0crwdne13968:0',
|
||||
],
|
||||
'accessoriesdelete' => [
|
||||
'name' => 'crwdns13970:0crwdne13970:0',
|
||||
],
|
||||
'accessoriescheckout' => [
|
||||
'name' => 'crwdns13972:0crwdne13972:0',
|
||||
'note' => 'crwdns13974:0crwdne13974:0',
|
||||
],
|
||||
'accessoriescheckin' => [
|
||||
'name' => 'crwdns13976:0crwdne13976:0',
|
||||
'note' => 'crwdns13978:0crwdne13978:0',
|
||||
],
|
||||
'accessoriesfiles' => [
|
||||
'name' => 'crwdns13980:0crwdne13980:0',
|
||||
'note' => 'crwdns13982:0crwdne13982:0',
|
||||
],
|
||||
'consumables' => [
|
||||
'name' => 'crwdns13984:0crwdne13984:0',
|
||||
'note' => 'crwdns13986:0crwdne13986:0',
|
||||
],
|
||||
'consumablesview' => [
|
||||
'name' => 'crwdns13988:0crwdne13988:0',
|
||||
],
|
||||
'consumablescreate' => [
|
||||
'name' => 'crwdns13990:0crwdne13990:0',
|
||||
],
|
||||
'consumablesedit' => [
|
||||
'name' => 'crwdns13992:0crwdne13992:0',
|
||||
],
|
||||
'consumablesdelete' => [
|
||||
'name' => 'crwdns13994:0crwdne13994:0',
|
||||
],
|
||||
'consumablescheckout' => [
|
||||
'name' => 'crwdns13996:0crwdne13996:0',
|
||||
'note' => 'crwdns13998:0crwdne13998:0',
|
||||
],
|
||||
'consumablesfiles' => [
|
||||
'name' => 'crwdns14000:0crwdne14000:0',
|
||||
'note' => 'crwdns14002:0crwdne14002:0',
|
||||
],
|
||||
'licenses' => [
|
||||
'name' => 'crwdns14004:0crwdne14004:0',
|
||||
'note' => 'crwdns14006:0crwdne14006:0',
|
||||
],
|
||||
'licensesview' => [
|
||||
'name' => 'crwdns14008:0crwdne14008:0',
|
||||
],
|
||||
'licensescreate' => [
|
||||
'name' => 'crwdns14010:0crwdne14010:0',
|
||||
],
|
||||
'licensesedit' => [
|
||||
'name' => 'crwdns14012:0crwdne14012:0',
|
||||
],
|
||||
'licensesdelete' => [
|
||||
'name' => 'crwdns14014:0crwdne14014:0',
|
||||
],
|
||||
'licensescheckout' => [
|
||||
'name' => 'crwdns14016:0crwdne14016:0',
|
||||
'note' => 'crwdns14018:0crwdne14018:0',
|
||||
],
|
||||
'licensescheckin' => [
|
||||
'name' => 'crwdns14020:0crwdne14020:0',
|
||||
'note' => 'crwdns14022:0crwdne14022:0',
|
||||
],
|
||||
'licensesfiles' => [
|
||||
'name' => 'crwdns14024:0crwdne14024:0',
|
||||
'note' => 'crwdns14026:0crwdne14026:0',
|
||||
],
|
||||
'licenseskeys' => [
|
||||
'name' => 'crwdns14028:0crwdne14028:0',
|
||||
'note' => 'crwdns14030:0crwdne14030:0',
|
||||
],
|
||||
'components' => [
|
||||
'name' => 'crwdns14032:0crwdne14032:0',
|
||||
'note' => 'crwdns14034:0crwdne14034:0',
|
||||
],
|
||||
'componentsview' => [
|
||||
'name' => 'crwdns14036:0crwdne14036:0',
|
||||
],
|
||||
'componentscreate' => [
|
||||
'name' => 'crwdns14038:0crwdne14038:0',
|
||||
],
|
||||
'componentsedit' => [
|
||||
'name' => 'crwdns14040:0crwdne14040:0',
|
||||
],
|
||||
'componentsdelete' => [
|
||||
'name' => 'crwdns14042:0crwdne14042:0',
|
||||
],
|
||||
'componentsfiles' => [
|
||||
'name' => 'crwdns14044:0crwdne14044:0',
|
||||
'note' => 'crwdns14046:0crwdne14046:0',
|
||||
],
|
||||
'componentscheckout' => [
|
||||
'name' => 'crwdns14048:0crwdne14048:0',
|
||||
'note' => 'crwdns14050:0crwdne14050:0',
|
||||
],
|
||||
'componentscheckin' => [
|
||||
'name' => 'crwdns14052:0crwdne14052:0',
|
||||
'note' => 'crwdns14054:0crwdne14054:0',
|
||||
],
|
||||
'kits' => [
|
||||
'name' => 'crwdns14056:0crwdne14056:0',
|
||||
'note' => 'crwdns14058:0crwdne14058:0',
|
||||
],
|
||||
'kitsview' => [
|
||||
'name' => 'crwdns14060:0crwdne14060:0',
|
||||
],
|
||||
'kitscreate' => [
|
||||
'name' => 'crwdns14062:0crwdne14062:0',
|
||||
],
|
||||
'kitsedit' => [
|
||||
'name' => 'crwdns14064:0crwdne14064:0',
|
||||
],
|
||||
'kitsdelete' => [
|
||||
'name' => 'crwdns14066:0crwdne14066:0',
|
||||
],
|
||||
'users' => [
|
||||
'name' => 'crwdns14068:0crwdne14068:0',
|
||||
'note' => 'crwdns14070:0crwdne14070:0',
|
||||
],
|
||||
'usersview' => [
|
||||
'name' => 'crwdns14072:0crwdne14072:0',
|
||||
],
|
||||
'userscreate' => [
|
||||
'name' => 'crwdns14074:0crwdne14074:0',
|
||||
],
|
||||
'usersedit' => [
|
||||
'name' => 'crwdns14076:0crwdne14076:0',
|
||||
],
|
||||
'usersdelete' => [
|
||||
'name' => 'crwdns14078:0crwdne14078:0',
|
||||
],
|
||||
'models' => [
|
||||
'name' => 'crwdns14080:0crwdne14080:0',
|
||||
'note' => 'crwdns14082:0crwdne14082:0',
|
||||
],
|
||||
'modelsview' => [
|
||||
'name' => 'crwdns14084:0crwdne14084:0',
|
||||
],
|
||||
|
||||
'modelscreate' => [
|
||||
'name' => 'crwdns14086:0crwdne14086:0',
|
||||
],
|
||||
'modelsedit' => [
|
||||
'name' => 'crwdns14088:0crwdne14088:0',
|
||||
],
|
||||
'modelsdelete' => [
|
||||
'name' => 'crwdns14090:0crwdne14090:0',
|
||||
],
|
||||
'categories' => [
|
||||
'name' => 'crwdns14092:0crwdne14092:0',
|
||||
'note' => 'crwdns14094:0crwdne14094:0',
|
||||
],
|
||||
'categoriesview' => [
|
||||
'name' => 'crwdns14096:0crwdne14096:0',
|
||||
],
|
||||
'categoriescreate' => [
|
||||
'name' => 'crwdns14098:0crwdne14098:0',
|
||||
],
|
||||
'categoriesedit' => [
|
||||
'name' => 'crwdns14100:0crwdne14100:0',
|
||||
],
|
||||
'categoriesdelete' => [
|
||||
'name' => 'crwdns14102:0crwdne14102:0',
|
||||
],
|
||||
'departments' => [
|
||||
'name' => 'crwdns14104:0crwdne14104:0',
|
||||
'note' => 'crwdns14106:0crwdne14106:0',
|
||||
],
|
||||
'departmentsview' => [
|
||||
'name' => 'crwdns14108:0crwdne14108:0',
|
||||
],
|
||||
'departmentscreate' => [
|
||||
'name' => 'crwdns14110:0crwdne14110:0',
|
||||
],
|
||||
'departmentsedit' => [
|
||||
'name' => 'crwdns14112:0crwdne14112:0',
|
||||
],
|
||||
'departmentsdelete' => [
|
||||
'name' => 'crwdns14114:0crwdne14114:0',
|
||||
],
|
||||
'locations' => [
|
||||
'name' => 'crwdns14116:0crwdne14116:0',
|
||||
'note' => 'crwdns14118:0crwdne14118:0',
|
||||
],
|
||||
'locationsview' => [
|
||||
'name' => 'crwdns14120:0crwdne14120:0',
|
||||
],
|
||||
'locationscreate' => [
|
||||
'name' => 'crwdns14122:0crwdne14122:0',
|
||||
],
|
||||
'locationsedit' => [
|
||||
'name' => 'crwdns14124:0crwdne14124:0',
|
||||
],
|
||||
'locationsdelete' => [
|
||||
'name' => 'crwdns14126:0crwdne14126:0',
|
||||
],
|
||||
'status-labels' => [
|
||||
'name' => 'crwdns14128:0crwdne14128:0',
|
||||
'note' => 'crwdns14130:0crwdne14130:0',
|
||||
],
|
||||
'statuslabelsview' => [
|
||||
'name' => 'crwdns14132:0crwdne14132:0',
|
||||
],
|
||||
'statuslabelscreate' => [
|
||||
'name' => 'crwdns14134:0crwdne14134:0',
|
||||
],
|
||||
'statuslabelsedit' => [
|
||||
'name' => 'crwdns14136:0crwdne14136:0',
|
||||
],
|
||||
'statuslabelsdelete' => [
|
||||
'name' => 'crwdns14138:0crwdne14138:0',
|
||||
],
|
||||
'custom-fields' => [
|
||||
'name' => 'crwdns14140:0crwdne14140:0',
|
||||
'note' => 'crwdns14142:0crwdne14142:0',
|
||||
],
|
||||
'customfieldsview' => [
|
||||
'name' => 'crwdns14144:0crwdne14144:0',
|
||||
],
|
||||
'customfieldscreate' => [
|
||||
'name' => 'crwdns14146:0crwdne14146:0',
|
||||
],
|
||||
'customfieldsedit' => [
|
||||
'name' => 'crwdns14148:0crwdne14148:0',
|
||||
],
|
||||
'customfieldsdelete' => [
|
||||
'name' => 'crwdns14150:0crwdne14150:0',
|
||||
],
|
||||
'suppliers' => [
|
||||
'name' => 'crwdns14152:0crwdne14152:0',
|
||||
'note' => 'crwdns14154:0crwdne14154:0',
|
||||
],
|
||||
'suppliersview' => [
|
||||
'name' => 'crwdns14156:0crwdne14156:0',
|
||||
],
|
||||
'supplierscreate' => [
|
||||
'name' => 'crwdns14158:0crwdne14158:0',
|
||||
],
|
||||
'suppliersedit' => [
|
||||
'name' => 'crwdns14160:0crwdne14160:0',
|
||||
],
|
||||
'suppliersdelete' => [
|
||||
'name' => 'crwdns14162:0crwdne14162:0',
|
||||
],
|
||||
'manufacturers' => [
|
||||
'name' => 'crwdns14164:0crwdne14164:0',
|
||||
'note' => 'crwdns14166:0crwdne14166:0',
|
||||
],
|
||||
'manufacturersview' => [
|
||||
'name' => 'crwdns14168:0crwdne14168:0',
|
||||
],
|
||||
'manufacturerscreate' => [
|
||||
'name' => 'crwdns14170:0crwdne14170:0',
|
||||
],
|
||||
'manufacturersedit' => [
|
||||
'name' => 'crwdns14172:0crwdne14172:0',
|
||||
],
|
||||
'manufacturersdelete' => [
|
||||
'name' => 'crwdns14174:0crwdne14174:0',
|
||||
],
|
||||
'companies' => [
|
||||
'name' => 'crwdns14176:0crwdne14176:0',
|
||||
'note' => 'crwdns14178:0crwdne14178:0',
|
||||
],
|
||||
'companiesview' => [
|
||||
'name' => 'crwdns14180:0crwdne14180:0',
|
||||
],
|
||||
'companiescreate' => [
|
||||
'name' => 'crwdns14182:0crwdne14182:0',
|
||||
],
|
||||
'companiesedit' => [
|
||||
'name' => 'crwdns14184:0crwdne14184:0',
|
||||
],
|
||||
'companiesdelete' => [
|
||||
'name' => 'crwdns14186:0crwdne14186:0',
|
||||
],
|
||||
'user-self-accounts' => [
|
||||
'name' => 'crwdns14188:0crwdne14188:0',
|
||||
'note' => 'crwdns14190:0crwdne14190:0',
|
||||
],
|
||||
'selftwo-factor' => [
|
||||
'name' => 'crwdns14192:0crwdne14192:0',
|
||||
'note' => 'crwdns14194:0crwdne14194:0',
|
||||
],
|
||||
'selfapi' => [
|
||||
'name' => 'crwdns14196:0crwdne14196:0',
|
||||
'note' => 'crwdns14198:0crwdne14198:0',
|
||||
],
|
||||
'selfedit-location' => [
|
||||
'name' => 'crwdns14200:0crwdne14200:0',
|
||||
'note' => 'crwdns14202:0crwdne14202:0',
|
||||
],
|
||||
'selfcheckout-assets' => [
|
||||
'name' => 'crwdns14204:0crwdne14204:0',
|
||||
'note' => 'crwdns14206:0crwdne14206:0',
|
||||
],
|
||||
'selfview-purchase-cost' => [
|
||||
'name' => 'crwdns14208:0crwdne14208:0',
|
||||
'note' => 'crwdns14210:0crwdne14210:0',
|
||||
],
|
||||
|
||||
'depreciations' => [
|
||||
'name' => 'crwdns14212:0crwdne14212:0',
|
||||
'note' => 'crwdns14214:0crwdne14214:0',
|
||||
],
|
||||
'depreciationsview' => [
|
||||
'name' => 'crwdns14216:0crwdne14216:0',
|
||||
],
|
||||
'depreciationsedit' => [
|
||||
'name' => 'crwdns14218:0crwdne14218:0',
|
||||
],
|
||||
'depreciationsdelete' => [
|
||||
'name' => 'crwdns14220:0crwdne14220:0',
|
||||
],
|
||||
'depreciationscreate' => [
|
||||
'name' => 'crwdns14222:0crwdne14222:0',
|
||||
],
|
||||
|
||||
'grant_all' => 'crwdns14224:0crwdne14224:0',
|
||||
'deny_all' => 'crwdns14226:0crwdne14226:0',
|
||||
'inherit_all' => 'crwdns14228:0crwdne14228:0',
|
||||
'grant' => 'crwdns14230:0crwdne14230:0',
|
||||
'deny' => 'crwdns14232:0crwdne14232:0',
|
||||
'inherit' => 'crwdns14234:0crwdne14234:0',
|
||||
'use_groups' => 'crwdns14236:0crwdne14236:0'
|
||||
|
||||
);
|
||||
@@ -174,7 +174,7 @@ return [
|
||||
'ulid' => 'crwdns12552:0crwdne12552:0',
|
||||
'uuid' => 'crwdns12554:0crwdne12554:0',
|
||||
'fmcs_location' => 'crwdns13232:0crwdne13232:0',
|
||||
|
||||
'is_unique_across_company_and_location' => 'crwdns14272:0crwdne14272:0',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
return array(
|
||||
'asset_categories' => 'Bate kategorieë',
|
||||
'category_name' => 'Kategorie Naam',
|
||||
'checkin_email' => 'Stuur e-pos aan gebruiker by aanmelding/afmelding.',
|
||||
'email_to_user_upon_checkin' => 'Send email to user upon checkin.',
|
||||
'email_to_user_upon_checkin_and_checkout' => 'Send email to user upon checkin/checkout.',
|
||||
'email_to_initiator' => 'Send email to you when user accepts or declines checkout.',
|
||||
'checkin_email_notification' => 'Hierdie gebruiker sal \'n e-pos gestuur word by aanmelding/afmelding.',
|
||||
'clone' => 'Klone Kategorie',
|
||||
'create' => 'Skep Kategorie',
|
||||
'edit' => 'Wysig Kategorie',
|
||||
'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user because the global EULA is being used.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user because a EULA is set for this category.',
|
||||
'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user upon checkout because the global EULA is being used.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user upon checkout because a EULA is set for this category.',
|
||||
'eula_text' => 'Kategorie EULA',
|
||||
'eula_text_help' => 'Hierdie veld laat u toe om u EULA\'s vir spesifieke soorte bates aan te pas. As u slegs een EULA vir al u bates het, kan u die onderstaande boks selekteer om die primêre standaard te gebruik.',
|
||||
'name' => 'Kategorie Naam',
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'veld',
|
||||
'about_fieldsets_title' => 'Oor Fieldsets',
|
||||
'about_fieldsets_text' => 'Veldstelle stel jou in staat om groepe van persoonlike velde te skep wat gereeld hergebruik word vir spesifieke tipe bates.',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Enkripteer die waarde van hierdie veld in die databasis',
|
||||
'encrypt_field_help' => 'WAARSKUWING: Om \'n veld te enkripteer, maak dit onondersoekbaar.',
|
||||
@@ -67,4 +67,5 @@ return [
|
||||
'checkbox' => 'Checkbox',
|
||||
'radio' => 'Radio Buttons',
|
||||
],
|
||||
'general_help_text' => 'Custom fields store additional information not covered by the default asset fields. <a href="https://snipe-it.readme.io/docs/custom-fields#/"><i class="fa fa-external-link"></i></a>.',
|
||||
];
|
||||
|
||||
@@ -18,7 +18,7 @@ return [
|
||||
'alert_email' => 'Stuur kennisgewings aan',
|
||||
'alert_email_help' => 'Email addresses or distribution lists you want alerts to be sent to, comma separated.',
|
||||
'alerts_enabled' => 'Alerts aangeskakel',
|
||||
'alert_interval' => 'Uitgaande Alert Drempel (in dae)',
|
||||
'alert_interval' => 'Expiring Alerts Threshold',
|
||||
'alert_inv_threshold' => 'Voorraadwaarskuwingsdrempel',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
@@ -94,10 +94,12 @@ return [
|
||||
'ldap_settings' => 'LDAP-instellings',
|
||||
'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.',
|
||||
'ldap_location' => 'LDAP Location Field',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||
'ldap_login_sync_help' => 'This only tests that LDAP can sync and that your fields are mapped correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||
'ldap_manager' => 'LDAP Manager Field',
|
||||
'ldap_mapping_help' => 'If your fields are not syncing correctly, try using the <strong>lower-case version</strong> of the field names. Display Name (<code>displayName</code>) in your LDAP/AD should be mapped here as <code>displayname</code>, <code>givenName</code> should be <code>givenname</code>, <code>sAMAccountName</code> as <code>samaccountname</code>, etc. <a href="https://snipe-it.readme.io/docs/ldap-sync-login#field-mapping-for-syncing"><i class="fa fa-external-link"></i></a>',
|
||||
'save_ldap_first' => 'You must save your LDAP settings before testing. Save your settings on this page and then reload to test LDAP login and/or sync.',
|
||||
'ldap_server' => 'LDAP-bediener',
|
||||
'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)',
|
||||
'ldap_server_cert' => 'LDAP SSL-sertifikaat-validering',
|
||||
@@ -345,6 +347,7 @@ return [
|
||||
'asset_tags_help' => 'Incrementing and prefixes',
|
||||
'labels' => 'Labels',
|
||||
'labels_title' => 'Update Label Settings',
|
||||
'labels_title_help' => 'Changes made here must be saved before they will be reflected in the labels or the preview below.',
|
||||
'labels_help' => 'Barcodes & label settings',
|
||||
'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.',
|
||||
@@ -379,14 +382,17 @@ return [
|
||||
'label2_1d_type_help' => 'Format for 1D barcodes',
|
||||
'label2_2d_type' => '2D Barcode Type',
|
||||
'label2_2d_type_help' => 'Format for 2D barcodes',
|
||||
'label2_2d_target' => '2D Barcode Target',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
|
||||
'label2_2d_prefix' => '2D Barcode Prefix',
|
||||
'label2_2d_prefix_help' => 'This text will be prepended to the 2D Barcode Target value selected below when the 2D code is scanned. This can be used to prepend an external URL or any other value that you might need.',
|
||||
'label2_2d_target' => '2D Barcode Content',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode. This can link to the asset directly in Snipe-IT or can be one of the non-linked field values. If you use the prefix above, it will be prepended to this value.',
|
||||
'select_template' => 'Select a Template',
|
||||
'label2_fields' => 'Field Definitions',
|
||||
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column.',
|
||||
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column. Field changes made here will be reflected immediately in the preview below but must be saved for them to apply to new labels.',
|
||||
'purge_barcodes' => 'Purge Barcodes',
|
||||
'help_asterisk_bold' => 'Text entered as <code>**text**</code> will be displayed as bold',
|
||||
'help_blank_to_use' => 'Leave blank to use the value from <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. ',
|
||||
'help_default_will_use' => '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',
|
||||
'default' => 'Default',
|
||||
@@ -414,6 +420,9 @@ return [
|
||||
'manager_view' => 'Manager View',
|
||||
'manager_view_enabled_text' => 'Enable Manager View',
|
||||
'manager_view_enabled_help' => 'Allow managers to view assigned items to their direct and indirect reports in their account view.',
|
||||
'redirect_url' => 'Redirect URL',
|
||||
'client_secret' => 'Client Secret',
|
||||
'client_id' => 'Client ID',
|
||||
|
||||
'username_formats' => [
|
||||
'username_format' => 'Gebruikernaam',
|
||||
@@ -487,6 +496,7 @@ return [
|
||||
'server' => 'Server Settings',
|
||||
'scoping' => 'Scoping',
|
||||
'security' => 'Security Preferences',
|
||||
'passwords' => 'Password Security Preferences',
|
||||
],
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ return [
|
||||
'info' => 'info',
|
||||
'restore_user' => 'Klik hier om dit te herstel.',
|
||||
'last_login' => 'Laaste Aanmelding',
|
||||
'ldap_config_text' => 'LDAP-konfigurasie-instellings kan Admin> Instellings gevind word. Die (opsionele) gekose ligging sal vir alle ingevoerde gebruikers gestel word.',
|
||||
'ldap_config_text' => 'The selected location will be set for ALL imported users. This will overwrite their existing location, and is an unusual use-case, so leaving this blank is typically best.',
|
||||
'ldap_sync_intro' => 'Click on the button below to manually sync your LDAP users. To learn more about configuring LDAP sync to run automatically, please see the <a href=":link" target="_blank">documentation <i class="fa fa-external-link"></i></a> .',
|
||||
'print_assigned' => 'Print All Assigned',
|
||||
'email_assigned' => 'Email List of All Assigned',
|
||||
'user_notified' => 'User has been emailed a list of their currently assigned items.',
|
||||
@@ -53,4 +54,6 @@ return [
|
||||
'all_assigned_list_generation' => 'Generated on:',
|
||||
'email_user_creds_on_create' => 'Email this user their credentials?',
|
||||
'department_manager' => 'Department Manager',
|
||||
'generate_password' => 'Generate random password',
|
||||
'individual_override' => 'This user has at least one individual permission set, which may override group permissions.',
|
||||
];
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
return array(
|
||||
|
||||
'accepted' => 'U het hierdie bate suksesvol aanvaar.',
|
||||
'declined' => 'Jy het hierdie bate suksesvol geweier.',
|
||||
'accepted' => 'You have successfully accepted this item.',
|
||||
'declined' => 'You have successfully declined this item.',
|
||||
'bulk_manager_warn' => 'Jou gebruikers is suksesvol opgedateer, maar jou bestuurderinskrywing is nie gestoor nie, want die bestuurder wat jy gekies het, was ook in die gebruikerslys om geredigeer te word, en gebruikers mag nie hul eie bestuurder wees nie. Kies asseblief u gebruikers weer, behalwe die bestuurder.',
|
||||
'user_exists' => 'Gebruiker bestaan reeds!',
|
||||
'user_not_found' => 'User does not exist or you do not have permission view them.',
|
||||
|
||||
@@ -350,6 +350,7 @@ return [
|
||||
'login_disabled' => 'Login Disabled',
|
||||
'audit_due' => 'Due for Audit',
|
||||
'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',
|
||||
'audit_due_days_view_all' => '{}Assets Due or Overdue for Audit|[1]View All Assets Due or Overdue for Audit Within a Day|[2,*]View All Assets Due or Overdue for Audit Within :days Days',
|
||||
'checkin_due' => 'Due for Checkin',
|
||||
'checkin_overdue' => 'Overdue for Checkin',
|
||||
'checkin_due_days' => '{}Due for Checkin|[1]Assets Due for Checkin Within :days Day|[2,*]Assets Due for Checkin Within :days Days',
|
||||
@@ -383,6 +384,14 @@ return [
|
||||
'bulk_edit_about_to' => 'You are about to edit the following: ',
|
||||
'checked_out' => 'Gekontroleer',
|
||||
'checked_out_to' => 'Checked out to',
|
||||
'available_users' => 'Available Users to Add',
|
||||
'add_users_to_group' => 'Add Users to Group',
|
||||
'users_to_add_to_group' => 'Users to Add',
|
||||
'add_all_users_to_group' => 'Add all users to group',
|
||||
'add_selected_users_to_group' => 'Add selected users to group',
|
||||
'remove_selected_users_from_group' => 'Remove selected users from group',
|
||||
'remove_all_users_from_group' => 'Remove all users from group',
|
||||
'add_users_to_group_help' => 'Use the arrows to add or remove users from this group. You can select multiple users by holding down the Ctrl (Windows) or Command (Mac) key while clicking.',
|
||||
'fields' => 'Fields',
|
||||
'last_checkout' => 'Last Checkout',
|
||||
'due_to_checkin' => 'The following :count items are due to be checked in soon:',
|
||||
@@ -390,6 +399,7 @@ return [
|
||||
'reminder_checked_out_items' => 'This is a reminder of the items currently checked out to you. If you feel this list is inaccurate (something is missing, or something appears here that you believe you never received), please email :reply_to_name at :reply_to_address.',
|
||||
'changed' => 'Changed',
|
||||
'to' => 'To',
|
||||
'to_user' => 'To',
|
||||
'report_fields_info' => '<p>Select the fields you would like to include in your custom report, and click Generate. The file (custom-asset-report-YYYY-mm-dd.csv) will download automatically, and you can open it in Excel.</p>
|
||||
<p>If you would like to export only certain assets, use the options below to fine-tune your results.</p>',
|
||||
'range' => 'Range',
|
||||
@@ -615,6 +625,8 @@ return [
|
||||
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
|
||||
'from' => 'From',
|
||||
'by' => 'deur',
|
||||
'by_user' => 'deur',
|
||||
'ldap_sync_location' => 'Sync All Users to This Location (Optional)',
|
||||
'version' => 'Version',
|
||||
'build' => 'build',
|
||||
'use_cloned_image' => 'Clone image from original',
|
||||
|
||||
@@ -100,7 +100,8 @@ return [
|
||||
'the_following_item' => 'Die volgende item is nagegaan:',
|
||||
'to_reset' => 'Om jou webadres te herstel, voltooi hierdie vorm:',
|
||||
'type' => 'tipe',
|
||||
'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days.',
|
||||
'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days. ',
|
||||
'upcoming-audits_click' => 'This email may not contain the full list so as not to exceed email size limits. Click on the button below to view all assets due for audit.',
|
||||
'user' => 'gebruiker',
|
||||
'username' => 'Gebruikersnaam',
|
||||
'unaccepted_asset_reminder' => 'Reminder: You have Unaccepted Assets.',
|
||||
|
||||
424
resources/lang/af-ZA/permissions.php
Normal file
424
resources/lang/af-ZA/permissions.php
Normal file
@@ -0,0 +1,424 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Permissions
|
||||
|--------------------------------------------------------------------------
|
||||
| The following language lines are used in the user permissions system.
|
||||
| Each permission has a 'name' and a 'note' that describes
|
||||
| the permission in detail.
|
||||
|
|
||||
| DO NOT edit the keys (left-hand side) of each permission as these are
|
||||
| used throughout the system for translations.
|
||||
|---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
"superuser" => [
|
||||
'name' => 'Super User',
|
||||
'note' => 'Determines whether the user has full access to all aspects of the admin. This setting overrides ALL more specific and restrictive permissions throughout the system. ',
|
||||
],
|
||||
'admin' => [
|
||||
'name' => 'Admin Access',
|
||||
'note' => 'Determines whether the user has access to most aspects of the system EXCEPT the System Admin Settings. These users will be able to manage users, locations, categories, etc, but ARE constrained by Full Multiple Company Support if it is enabled.',
|
||||
],
|
||||
|
||||
'import' => [
|
||||
'name' => 'CSV Import',
|
||||
'note' => 'This will allow users to import even if access to users, assets, etc is denied elsewhere.',
|
||||
],
|
||||
|
||||
'reports' => [
|
||||
'name' => 'Reports Access',
|
||||
'note' => 'Determines whether the user has access to the Reports section of the application.',
|
||||
],
|
||||
|
||||
'assets' =>
|
||||
[
|
||||
'name' => 'bates',
|
||||
'note' => 'Grants access to the Assets section of the application.',
|
||||
],
|
||||
|
||||
'assetsview' => [
|
||||
'name' => 'View Assets',
|
||||
],
|
||||
|
||||
'assetscreate' => [
|
||||
'name' => 'Create New Assets',
|
||||
],
|
||||
|
||||
'assetsedit' => [
|
||||
'name' => 'Edit Assets',
|
||||
],
|
||||
|
||||
'assetsdelete' => [
|
||||
'name' => 'Delete Assets',
|
||||
],
|
||||
|
||||
'assetscheckin' => [
|
||||
'name' => 'Check In',
|
||||
'note' => 'Check assets back into inventory that are currently checked out.',
|
||||
],
|
||||
|
||||
'assetscheckout' => [
|
||||
'name' => 'Check Out',
|
||||
'note' => 'Assign assets in inventory by checking them out.',
|
||||
],
|
||||
|
||||
'assetsaudit' => [
|
||||
'name' => 'Audit Assets',
|
||||
'note' => 'Allows the user to mark an asset as physically inventoried.',
|
||||
],
|
||||
|
||||
'assetsviewrequestable' => [
|
||||
'name' => 'View Requestable Assets',
|
||||
'note' => 'Allows the user to view assets that are marked as requestable.',
|
||||
],
|
||||
|
||||
'assetsviewencrypted-custom-fields' => [
|
||||
'name' => 'View Encrypted Custom Fields',
|
||||
'note' => 'Allows the user to view and modify encrypted custom fields on assets.',
|
||||
],
|
||||
|
||||
'accessories' => [
|
||||
'name' => 'bykomstighede',
|
||||
'note' => 'Grants access to the Accessories section of the application.',
|
||||
],
|
||||
|
||||
'accessoriesview' => [
|
||||
'name' => 'View Accessories',
|
||||
],
|
||||
'accessoriescreate' => [
|
||||
'name' => 'Create New Accessories',
|
||||
],
|
||||
'accessoriesedit' => [
|
||||
'name' => 'Edit Accessories',
|
||||
],
|
||||
'accessoriesdelete' => [
|
||||
'name' => 'Delete Accessories',
|
||||
],
|
||||
'accessoriescheckout' => [
|
||||
'name' => 'Check Out Accessories',
|
||||
'note' => 'Assign accessories in inventory by checking them out.',
|
||||
],
|
||||
'accessoriescheckin' => [
|
||||
'name' => 'Check In Accessories',
|
||||
'note' => 'Check accessories back into inventory that are currently checked out.',
|
||||
],
|
||||
'accessoriesfiles' => [
|
||||
'name' => 'Manage Accessory Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with accessories.',
|
||||
],
|
||||
'consumables' => [
|
||||
'name' => 'Consumables',
|
||||
'note' => 'Grants access to the Consumables section of the application.',
|
||||
],
|
||||
'consumablesview' => [
|
||||
'name' => 'View Consumables',
|
||||
],
|
||||
'consumablescreate' => [
|
||||
'name' => 'Create New Consumables',
|
||||
],
|
||||
'consumablesedit' => [
|
||||
'name' => 'Edit Consumables',
|
||||
],
|
||||
'consumablesdelete' => [
|
||||
'name' => 'Delete Consumables',
|
||||
],
|
||||
'consumablescheckout' => [
|
||||
'name' => 'Check Out Consumables',
|
||||
'note' => 'Assign consumables in inventory by checking them out.',
|
||||
],
|
||||
'consumablesfiles' => [
|
||||
'name' => 'Manage Consumable Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with consumables.',
|
||||
],
|
||||
'licenses' => [
|
||||
'name' => 'lisensies',
|
||||
'note' => 'Grants access to the Licenses section of the application.',
|
||||
],
|
||||
'licensesview' => [
|
||||
'name' => 'View Licenses',
|
||||
],
|
||||
'licensescreate' => [
|
||||
'name' => 'Create New Licenses',
|
||||
],
|
||||
'licensesedit' => [
|
||||
'name' => 'Edit Licenses',
|
||||
],
|
||||
'licensesdelete' => [
|
||||
'name' => 'Delete Licenses',
|
||||
],
|
||||
'licensescheckout' => [
|
||||
'name' => 'Assign Licenses',
|
||||
'note' => 'Allows the user to assign licenses to assets or users.',
|
||||
],
|
||||
'licensescheckin' => [
|
||||
'name' => 'Unassign Licenses',
|
||||
'note' => 'Allows the user to unassign licenses from assets or users.',
|
||||
],
|
||||
'licensesfiles' => [
|
||||
'name' => 'Manage License Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with licenses.',
|
||||
],
|
||||
'licenseskeys' => [
|
||||
'name' => 'Manage License Keys',
|
||||
'note' => 'Allows the user to view product keys associated with licenses.',
|
||||
],
|
||||
'components' => [
|
||||
'name' => 'komponente',
|
||||
'note' => 'Grants access to the Components section of the application.',
|
||||
],
|
||||
'componentsview' => [
|
||||
'name' => 'View Components',
|
||||
],
|
||||
'componentscreate' => [
|
||||
'name' => 'Create New Components',
|
||||
],
|
||||
'componentsedit' => [
|
||||
'name' => 'Edit Components',
|
||||
],
|
||||
'componentsdelete' => [
|
||||
'name' => 'Delete Components',
|
||||
],
|
||||
'componentsfiles' => [
|
||||
'name' => 'Manage Component Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with components.',
|
||||
],
|
||||
'componentscheckout' => [
|
||||
'name' => 'Check Out Components',
|
||||
'note' => 'Assign components in inventory by checking them out.',
|
||||
],
|
||||
'componentscheckin' => [
|
||||
'name' => 'Check In Components',
|
||||
'note' => 'Check components back into inventory that are currently checked out.',
|
||||
],
|
||||
'kits' => [
|
||||
'name' => 'Predefined Kits',
|
||||
'note' => 'Grants access to the Predefined Kits section of the application.',
|
||||
],
|
||||
'kitsview' => [
|
||||
'name' => 'View Predefined Kits',
|
||||
],
|
||||
'kitscreate' => [
|
||||
'name' => 'Create New Predefined Kits',
|
||||
],
|
||||
'kitsedit' => [
|
||||
'name' => 'Edit Predefined Kits',
|
||||
],
|
||||
'kitsdelete' => [
|
||||
'name' => 'Delete Predefined Kits',
|
||||
],
|
||||
'users' => [
|
||||
'name' => 'gebruikers',
|
||||
'note' => 'Grants access to the Users section of the application.',
|
||||
],
|
||||
'usersview' => [
|
||||
'name' => 'Bekyk gebruikers',
|
||||
],
|
||||
'userscreate' => [
|
||||
'name' => 'Create New Users',
|
||||
],
|
||||
'usersedit' => [
|
||||
'name' => 'Edit Users',
|
||||
],
|
||||
'usersdelete' => [
|
||||
'name' => 'Delete Users',
|
||||
],
|
||||
'models' => [
|
||||
'name' => 'Models',
|
||||
'note' => 'Grants access to the Models section of the application.',
|
||||
],
|
||||
'modelsview' => [
|
||||
'name' => 'Kyk Modelle',
|
||||
],
|
||||
|
||||
'modelscreate' => [
|
||||
'name' => 'Create New Models',
|
||||
],
|
||||
'modelsedit' => [
|
||||
'name' => 'Edit Models',
|
||||
],
|
||||
'modelsdelete' => [
|
||||
'name' => 'Delete Models',
|
||||
],
|
||||
'categories' => [
|
||||
'name' => 'kategorieë',
|
||||
'note' => 'Grants access to the Categories section of the application.',
|
||||
],
|
||||
'categoriesview' => [
|
||||
'name' => 'View Categories',
|
||||
],
|
||||
'categoriescreate' => [
|
||||
'name' => 'Create New Categories',
|
||||
],
|
||||
'categoriesedit' => [
|
||||
'name' => 'Edit Categories',
|
||||
],
|
||||
'categoriesdelete' => [
|
||||
'name' => 'Delete Categories',
|
||||
],
|
||||
'departments' => [
|
||||
'name' => 'departemente',
|
||||
'note' => 'Grants access to the Departments section of the application.',
|
||||
],
|
||||
'departmentsview' => [
|
||||
'name' => 'View Departments',
|
||||
],
|
||||
'departmentscreate' => [
|
||||
'name' => 'Create New Departments',
|
||||
],
|
||||
'departmentsedit' => [
|
||||
'name' => 'Edit Departments',
|
||||
],
|
||||
'departmentsdelete' => [
|
||||
'name' => 'Delete Departments',
|
||||
],
|
||||
'locations' => [
|
||||
'name' => 'plekke',
|
||||
'note' => 'Grants access to the Locations section of the application.',
|
||||
],
|
||||
'locationsview' => [
|
||||
'name' => 'View Locations',
|
||||
],
|
||||
'locationscreate' => [
|
||||
'name' => 'Create New Locations',
|
||||
],
|
||||
'locationsedit' => [
|
||||
'name' => 'Edit Locations',
|
||||
],
|
||||
'locationsdelete' => [
|
||||
'name' => 'Delete Locations',
|
||||
],
|
||||
'status-labels' => [
|
||||
'name' => 'Status etikette',
|
||||
'note' => 'Grants access to the Status Labels section of the application used by Assets.',
|
||||
],
|
||||
'statuslabelsview' => [
|
||||
'name' => 'View Status Labels',
|
||||
],
|
||||
'statuslabelscreate' => [
|
||||
'name' => 'Create New Status Labels',
|
||||
],
|
||||
'statuslabelsedit' => [
|
||||
'name' => 'Edit Status Labels',
|
||||
],
|
||||
'statuslabelsdelete' => [
|
||||
'name' => 'Delete Status Labels',
|
||||
],
|
||||
'custom-fields' => [
|
||||
'name' => 'Aangepaste velde',
|
||||
'note' => 'Grants access to the Custom Fields section of the application used by Assets.',
|
||||
],
|
||||
'customfieldsview' => [
|
||||
'name' => 'View Custom Fields',
|
||||
],
|
||||
'customfieldscreate' => [
|
||||
'name' => 'Create New Custom Fields',
|
||||
],
|
||||
'customfieldsedit' => [
|
||||
'name' => 'Edit Custom Fields',
|
||||
],
|
||||
'customfieldsdelete' => [
|
||||
'name' => 'Delete Custom Fields',
|
||||
],
|
||||
'suppliers' => [
|
||||
'name' => 'Verskaffers',
|
||||
'note' => 'Grants access to the Suppliers section of the application.',
|
||||
],
|
||||
'suppliersview' => [
|
||||
'name' => 'View Suppliers',
|
||||
],
|
||||
'supplierscreate' => [
|
||||
'name' => 'Create New Suppliers',
|
||||
],
|
||||
'suppliersedit' => [
|
||||
'name' => 'Edit Suppliers',
|
||||
],
|
||||
'suppliersdelete' => [
|
||||
'name' => 'Delete Suppliers',
|
||||
],
|
||||
'manufacturers' => [
|
||||
'name' => 'vervaardigers',
|
||||
'note' => 'Grants access to the Manufacturers section of the application.',
|
||||
],
|
||||
'manufacturersview' => [
|
||||
'name' => 'View Manufacturers',
|
||||
],
|
||||
'manufacturerscreate' => [
|
||||
'name' => 'Create New Manufacturers',
|
||||
],
|
||||
'manufacturersedit' => [
|
||||
'name' => 'Edit Manufacturers',
|
||||
],
|
||||
'manufacturersdelete' => [
|
||||
'name' => 'Delete Manufacturers',
|
||||
],
|
||||
'companies' => [
|
||||
'name' => 'maatskappye',
|
||||
'note' => 'Grants access to the Companies section of the application.',
|
||||
],
|
||||
'companiesview' => [
|
||||
'name' => 'View Companies',
|
||||
],
|
||||
'companiescreate' => [
|
||||
'name' => 'Create New Companies',
|
||||
],
|
||||
'companiesedit' => [
|
||||
'name' => 'Edit Companies',
|
||||
],
|
||||
'companiesdelete' => [
|
||||
'name' => 'Delete Companies',
|
||||
],
|
||||
'user-self-accounts' => [
|
||||
'name' => 'User Self Accounts',
|
||||
'note' => 'Grants non-admin users the ability to manage certain aspects of their own user accounts.',
|
||||
],
|
||||
'selftwo-factor' => [
|
||||
'name' => 'Manage Two-Factor Authentication',
|
||||
'note' => 'Allows users to enable, disable, and manage two-factor authentication for their own accounts.',
|
||||
],
|
||||
'selfapi' => [
|
||||
'name' => 'Manage API Tokens',
|
||||
'note' => 'Allows users to create, view, and revoke their own API tokens. User tokens will have the same permissions as the user who created them.',
|
||||
],
|
||||
'selfedit-location' => [
|
||||
'name' => 'Edit Location',
|
||||
'note' => 'Allows users to edit the location associated with their own user account.',
|
||||
],
|
||||
'selfcheckout-assets' => [
|
||||
'name' => 'Self Check Out Assets',
|
||||
'note' => 'Allows users to check out assets to themselves without admin intervention.',
|
||||
],
|
||||
'selfview-purchase-cost' => [
|
||||
'name' => 'View Purchase Cost',
|
||||
'note' => 'Allows users to view the purchase cost of items in their account view.',
|
||||
],
|
||||
|
||||
'depreciations' => [
|
||||
'name' => 'Depreciation Management',
|
||||
'note' => 'Allows users to manage and view asset depreciation details.',
|
||||
],
|
||||
'depreciationsview' => [
|
||||
'name' => 'View Depreciation Details',
|
||||
],
|
||||
'depreciationsedit' => [
|
||||
'name' => 'Edit Depreciation Settings',
|
||||
],
|
||||
'depreciationsdelete' => [
|
||||
'name' => 'Delete Depreciation Records',
|
||||
],
|
||||
'depreciationscreate' => [
|
||||
'name' => 'Create Depreciation Records',
|
||||
],
|
||||
|
||||
'grant_all' => 'Grant all permissions for :area',
|
||||
'deny_all' => 'Deny all permissions for :area',
|
||||
'inherit_all' => 'Inherit all permissions for :area from permission groups',
|
||||
'grant' => 'Grant Permission for :area',
|
||||
'deny' => 'Deny Permission for :area',
|
||||
'inherit' => 'Inherit Permission for :area from permission groups',
|
||||
'use_groups' => 'We strongly suggest using Permission Groups instead of assigning individual permissions for easier management.'
|
||||
|
||||
);
|
||||
@@ -174,7 +174,7 @@ return [
|
||||
'ulid' => 'The :attribute field must be a valid ULID.',
|
||||
'uuid' => 'The :attribute field must be a valid UUID.',
|
||||
'fmcs_location' => 'Full multiple company support and location scoping is enabled in the Admin Settings, and the selected location and selected company are not compatible.',
|
||||
|
||||
'is_unique_across_company_and_location' => 'The :attribute must be unique within the selected company and location.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
return array(
|
||||
'asset_categories' => 'Asset Categories',
|
||||
'category_name' => 'Category Name',
|
||||
'checkin_email' => 'Send email to user on checkin/checkout.',
|
||||
'email_to_user_upon_checkin' => 'Send email to user upon checkin.',
|
||||
'email_to_user_upon_checkin_and_checkout' => 'Send email to user upon checkin/checkout.',
|
||||
'email_to_initiator' => 'Send email to you when user accepts or declines checkout.',
|
||||
'checkin_email_notification' => 'This user will be sent an email on checkin/checkout.',
|
||||
'clone' => 'Clone Category',
|
||||
'create' => 'Create Category',
|
||||
'edit' => 'Edit Category',
|
||||
'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user because the global EULA is being used.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user because a EULA is set for this category.',
|
||||
'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user upon checkout because the global EULA is being used.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user upon checkout because a EULA is set for this category.',
|
||||
'eula_text' => 'Category EULA',
|
||||
'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.',
|
||||
'name' => 'Category Name',
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Manage',
|
||||
'field' => 'Field',
|
||||
'about_fieldsets_title' => 'About Fieldsets',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'custom_format' => 'Custom Regex format...',
|
||||
'encrypt_field' => 'Encrypt the value of this field in the database',
|
||||
'encrypt_field_help' => 'WARNING: Encrypting a field makes it unsearchable.',
|
||||
@@ -67,4 +67,5 @@ return [
|
||||
'checkbox' => 'Checkbox',
|
||||
'radio' => 'Radio Buttons',
|
||||
],
|
||||
'general_help_text' => 'Custom fields store additional information not covered by the default asset fields. <a href="https://snipe-it.readme.io/docs/custom-fields#/"><i class="fa fa-external-link"></i></a>.',
|
||||
];
|
||||
|
||||
@@ -18,7 +18,7 @@ return [
|
||||
'alert_email' => 'Send alerts to',
|
||||
'alert_email_help' => 'Email addresses or distribution lists you want alerts to be sent to, comma separated.',
|
||||
'alerts_enabled' => 'Email Alerts Enabled',
|
||||
'alert_interval' => 'Expiring Alerts Threshold (in days)',
|
||||
'alert_interval' => 'Expiring Alerts Threshold',
|
||||
'alert_inv_threshold' => 'Inventory Alert Threshold',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
@@ -94,10 +94,12 @@ return [
|
||||
'ldap_settings' => 'LDAP Settings',
|
||||
'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.',
|
||||
'ldap_location' => 'LDAP Location Field',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||
'ldap_login_sync_help' => 'This only tests that LDAP can sync and that your fields are mapped correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||
'ldap_manager' => 'LDAP Manager Field',
|
||||
'ldap_mapping_help' => 'If your fields are not syncing correctly, try using the <strong>lower-case version</strong> of the field names. Display Name (<code>displayName</code>) in your LDAP/AD should be mapped here as <code>displayname</code>, <code>givenName</code> should be <code>givenname</code>, <code>sAMAccountName</code> as <code>samaccountname</code>, etc. <a href="https://snipe-it.readme.io/docs/ldap-sync-login#field-mapping-for-syncing"><i class="fa fa-external-link"></i></a>',
|
||||
'save_ldap_first' => 'You must save your LDAP settings before testing. Save your settings on this page and then reload to test LDAP login and/or sync.',
|
||||
'ldap_server' => 'LDAP Server',
|
||||
'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)',
|
||||
'ldap_server_cert' => 'LDAP SSL certificate validation',
|
||||
@@ -345,6 +347,7 @@ return [
|
||||
'asset_tags_help' => 'Incrementing and prefixes',
|
||||
'labels' => 'Labels',
|
||||
'labels_title' => 'Update Label Settings',
|
||||
'labels_title_help' => 'Changes made here must be saved before they will be reflected in the labels or the preview below.',
|
||||
'labels_help' => 'Barcodes & label settings',
|
||||
'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.',
|
||||
@@ -379,14 +382,17 @@ return [
|
||||
'label2_1d_type_help' => 'Format for 1D barcodes',
|
||||
'label2_2d_type' => '2D Barcode Type',
|
||||
'label2_2d_type_help' => 'Format for 2D barcodes',
|
||||
'label2_2d_target' => '2D Barcode Target',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
|
||||
'label2_2d_prefix' => '2D Barcode Prefix',
|
||||
'label2_2d_prefix_help' => 'This text will be prepended to the 2D Barcode Target value selected below when the 2D code is scanned. This can be used to prepend an external URL or any other value that you might need.',
|
||||
'label2_2d_target' => '2D Barcode Content',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode. This can link to the asset directly in Snipe-IT or can be one of the non-linked field values. If you use the prefix above, it will be prepended to this value.',
|
||||
'select_template' => 'Select a Template',
|
||||
'label2_fields' => 'Field Definitions',
|
||||
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column.',
|
||||
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column. Field changes made here will be reflected immediately in the preview below but must be saved for them to apply to new labels.',
|
||||
'purge_barcodes' => 'Purge Barcodes',
|
||||
'help_asterisk_bold' => 'Text entered as <code>**text**</code> will be displayed as bold',
|
||||
'help_blank_to_use' => 'Leave blank to use the value from <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. ',
|
||||
'help_default_will_use' => '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',
|
||||
'default' => 'Default',
|
||||
@@ -414,6 +420,9 @@ return [
|
||||
'manager_view' => 'Manager View',
|
||||
'manager_view_enabled_text' => 'Enable Manager View',
|
||||
'manager_view_enabled_help' => 'Allow managers to view assigned items to their direct and indirect reports in their account view.',
|
||||
'redirect_url' => 'Redirect URL',
|
||||
'client_secret' => 'Client Secret',
|
||||
'client_id' => 'Client ID',
|
||||
|
||||
'username_formats' => [
|
||||
'username_format' => 'Username Format',
|
||||
@@ -487,6 +496,7 @@ return [
|
||||
'server' => 'Server Settings',
|
||||
'scoping' => 'Scoping',
|
||||
'security' => 'Security Preferences',
|
||||
'passwords' => 'Password Security Preferences',
|
||||
],
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ return [
|
||||
'info' => 'Info',
|
||||
'restore_user' => 'Click here to restore them.',
|
||||
'last_login' => 'Last Login',
|
||||
'ldap_config_text' => 'LDAP configuration settings can be found Admin > Settings. The (optional) selected location will be set for all imported users.',
|
||||
'ldap_config_text' => 'The selected location will be set for ALL imported users. This will overwrite their existing location, and is an unusual use-case, so leaving this blank is typically best.',
|
||||
'ldap_sync_intro' => 'Click on the button below to manually sync your LDAP users. To learn more about configuring LDAP sync to run automatically, please see the <a href=":link" target="_blank">documentation <i class="fa fa-external-link"></i></a> .',
|
||||
'print_assigned' => 'Print All Assigned',
|
||||
'email_assigned' => 'Email List of All Assigned',
|
||||
'user_notified' => 'User has been emailed a list of their currently assigned items.',
|
||||
@@ -53,4 +54,6 @@ return [
|
||||
'all_assigned_list_generation' => 'Generated on:',
|
||||
'email_user_creds_on_create' => 'Email this user their credentials?',
|
||||
'department_manager' => 'Department Manager',
|
||||
'generate_password' => 'Generate random password',
|
||||
'individual_override' => 'This user has at least one individual permission set, which may override group permissions.',
|
||||
];
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
return array(
|
||||
|
||||
'accepted' => 'You have successfully accepted this asset.',
|
||||
'declined' => 'You have successfully declined this asset.',
|
||||
'accepted' => 'You have successfully accepted this item.',
|
||||
'declined' => 'You have successfully declined this item.',
|
||||
'bulk_manager_warn' => 'Your users have been successfully updated, however your manager entry was not saved because the manager you selected was also in the user list to be edited, and users may not be their own manager. Please select your users again, excluding the manager.',
|
||||
'user_exists' => 'User already exists!',
|
||||
'user_not_found' => 'User does not exist or you do not have permission view them.',
|
||||
|
||||
@@ -350,6 +350,7 @@ return [
|
||||
'login_disabled' => 'Login Disabled',
|
||||
'audit_due' => 'Due for Audit',
|
||||
'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',
|
||||
'audit_due_days_view_all' => '{}Assets Due or Overdue for Audit|[1]View All Assets Due or Overdue for Audit Within a Day|[2,*]View All Assets Due or Overdue for Audit Within :days Days',
|
||||
'checkin_due' => 'Due for Checkin',
|
||||
'checkin_overdue' => 'Overdue for Checkin',
|
||||
'checkin_due_days' => '{}Due for Checkin|[1]Assets Due for Checkin Within :days Day|[2,*]Assets Due for Checkin Within :days Days',
|
||||
@@ -383,6 +384,14 @@ return [
|
||||
'bulk_edit_about_to' => 'You are about to edit the following: ',
|
||||
'checked_out' => 'Checked Out',
|
||||
'checked_out_to' => 'Checked out to',
|
||||
'available_users' => 'Available Users to Add',
|
||||
'add_users_to_group' => 'Add Users to Group',
|
||||
'users_to_add_to_group' => 'Users to Add',
|
||||
'add_all_users_to_group' => 'Add all users to group',
|
||||
'add_selected_users_to_group' => 'Add selected users to group',
|
||||
'remove_selected_users_from_group' => 'Remove selected users from group',
|
||||
'remove_all_users_from_group' => 'Remove all users from group',
|
||||
'add_users_to_group_help' => 'Use the arrows to add or remove users from this group. You can select multiple users by holding down the Ctrl (Windows) or Command (Mac) key while clicking.',
|
||||
'fields' => 'Fields',
|
||||
'last_checkout' => 'Last Checkout',
|
||||
'due_to_checkin' => 'The following :count items are due to be checked in soon:',
|
||||
@@ -390,6 +399,7 @@ return [
|
||||
'reminder_checked_out_items' => 'This is a reminder of the items currently checked out to you. If you feel this list is inaccurate (something is missing, or something appears here that you believe you never received), please email :reply_to_name at :reply_to_address.',
|
||||
'changed' => 'Changed',
|
||||
'to' => 'To',
|
||||
'to_user' => 'To',
|
||||
'report_fields_info' => '<p>Select the fields you would like to include in your custom report, and click Generate. The file (custom-asset-report-YYYY-mm-dd.csv) will download automatically, and you can open it in Excel.</p>
|
||||
<p>If you would like to export only certain assets, use the options below to fine-tune your results.</p>',
|
||||
'range' => 'Range',
|
||||
@@ -615,6 +625,8 @@ return [
|
||||
'user_managed_passwords_allow' => 'Allow users to manage their own passwords',
|
||||
'from' => 'From',
|
||||
'by' => 'By',
|
||||
'by_user' => 'By',
|
||||
'ldap_sync_location' => 'Sync All Users to This Location (Optional)',
|
||||
'version' => 'Version',
|
||||
'build' => 'build',
|
||||
'use_cloned_image' => 'Clone image from original',
|
||||
|
||||
@@ -100,7 +100,8 @@ return [
|
||||
'the_following_item' => 'The following item has been checked in: ',
|
||||
'to_reset' => 'To reset your :web password, complete this form:',
|
||||
'type' => 'Type',
|
||||
'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days.',
|
||||
'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days. ',
|
||||
'upcoming-audits_click' => 'This email may not contain the full list so as not to exceed email size limits. Click on the button below to view all assets due for audit.',
|
||||
'user' => 'User',
|
||||
'username' => 'Username',
|
||||
'unaccepted_asset_reminder' => 'Reminder: You have Unaccepted Assets.',
|
||||
|
||||
424
resources/lang/am-ET/permissions.php
Normal file
424
resources/lang/am-ET/permissions.php
Normal file
@@ -0,0 +1,424 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Permissions
|
||||
|--------------------------------------------------------------------------
|
||||
| The following language lines are used in the user permissions system.
|
||||
| Each permission has a 'name' and a 'note' that describes
|
||||
| the permission in detail.
|
||||
|
|
||||
| DO NOT edit the keys (left-hand side) of each permission as these are
|
||||
| used throughout the system for translations.
|
||||
|---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
"superuser" => [
|
||||
'name' => 'Super User',
|
||||
'note' => 'Determines whether the user has full access to all aspects of the admin. This setting overrides ALL more specific and restrictive permissions throughout the system. ',
|
||||
],
|
||||
'admin' => [
|
||||
'name' => 'Admin Access',
|
||||
'note' => 'Determines whether the user has access to most aspects of the system EXCEPT the System Admin Settings. These users will be able to manage users, locations, categories, etc, but ARE constrained by Full Multiple Company Support if it is enabled.',
|
||||
],
|
||||
|
||||
'import' => [
|
||||
'name' => 'CSV Import',
|
||||
'note' => 'This will allow users to import even if access to users, assets, etc is denied elsewhere.',
|
||||
],
|
||||
|
||||
'reports' => [
|
||||
'name' => 'Reports Access',
|
||||
'note' => 'Determines whether the user has access to the Reports section of the application.',
|
||||
],
|
||||
|
||||
'assets' =>
|
||||
[
|
||||
'name' => 'ንብረቶች',
|
||||
'note' => 'Grants access to the Assets section of the application.',
|
||||
],
|
||||
|
||||
'assetsview' => [
|
||||
'name' => 'View Assets',
|
||||
],
|
||||
|
||||
'assetscreate' => [
|
||||
'name' => 'Create New Assets',
|
||||
],
|
||||
|
||||
'assetsedit' => [
|
||||
'name' => 'Edit Assets',
|
||||
],
|
||||
|
||||
'assetsdelete' => [
|
||||
'name' => 'Delete Assets',
|
||||
],
|
||||
|
||||
'assetscheckin' => [
|
||||
'name' => 'Check In',
|
||||
'note' => 'Check assets back into inventory that are currently checked out.',
|
||||
],
|
||||
|
||||
'assetscheckout' => [
|
||||
'name' => 'Check Out',
|
||||
'note' => 'Assign assets in inventory by checking them out.',
|
||||
],
|
||||
|
||||
'assetsaudit' => [
|
||||
'name' => 'Audit Assets',
|
||||
'note' => 'Allows the user to mark an asset as physically inventoried.',
|
||||
],
|
||||
|
||||
'assetsviewrequestable' => [
|
||||
'name' => 'View Requestable Assets',
|
||||
'note' => 'Allows the user to view assets that are marked as requestable.',
|
||||
],
|
||||
|
||||
'assetsviewencrypted-custom-fields' => [
|
||||
'name' => 'View Encrypted Custom Fields',
|
||||
'note' => 'Allows the user to view and modify encrypted custom fields on assets.',
|
||||
],
|
||||
|
||||
'accessories' => [
|
||||
'name' => 'መለዋወጫዎች',
|
||||
'note' => 'Grants access to the Accessories section of the application.',
|
||||
],
|
||||
|
||||
'accessoriesview' => [
|
||||
'name' => 'View Accessories',
|
||||
],
|
||||
'accessoriescreate' => [
|
||||
'name' => 'Create New Accessories',
|
||||
],
|
||||
'accessoriesedit' => [
|
||||
'name' => 'Edit Accessories',
|
||||
],
|
||||
'accessoriesdelete' => [
|
||||
'name' => 'Delete Accessories',
|
||||
],
|
||||
'accessoriescheckout' => [
|
||||
'name' => 'Check Out Accessories',
|
||||
'note' => 'Assign accessories in inventory by checking them out.',
|
||||
],
|
||||
'accessoriescheckin' => [
|
||||
'name' => 'Check In Accessories',
|
||||
'note' => 'Check accessories back into inventory that are currently checked out.',
|
||||
],
|
||||
'accessoriesfiles' => [
|
||||
'name' => 'Manage Accessory Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with accessories.',
|
||||
],
|
||||
'consumables' => [
|
||||
'name' => 'Consumables',
|
||||
'note' => 'Grants access to the Consumables section of the application.',
|
||||
],
|
||||
'consumablesview' => [
|
||||
'name' => 'View Consumables',
|
||||
],
|
||||
'consumablescreate' => [
|
||||
'name' => 'Create New Consumables',
|
||||
],
|
||||
'consumablesedit' => [
|
||||
'name' => 'Edit Consumables',
|
||||
],
|
||||
'consumablesdelete' => [
|
||||
'name' => 'Delete Consumables',
|
||||
],
|
||||
'consumablescheckout' => [
|
||||
'name' => 'Check Out Consumables',
|
||||
'note' => 'Assign consumables in inventory by checking them out.',
|
||||
],
|
||||
'consumablesfiles' => [
|
||||
'name' => 'Manage Consumable Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with consumables.',
|
||||
],
|
||||
'licenses' => [
|
||||
'name' => 'Licenses',
|
||||
'note' => 'Grants access to the Licenses section of the application.',
|
||||
],
|
||||
'licensesview' => [
|
||||
'name' => 'View Licenses',
|
||||
],
|
||||
'licensescreate' => [
|
||||
'name' => 'Create New Licenses',
|
||||
],
|
||||
'licensesedit' => [
|
||||
'name' => 'Edit Licenses',
|
||||
],
|
||||
'licensesdelete' => [
|
||||
'name' => 'Delete Licenses',
|
||||
],
|
||||
'licensescheckout' => [
|
||||
'name' => 'Assign Licenses',
|
||||
'note' => 'Allows the user to assign licenses to assets or users.',
|
||||
],
|
||||
'licensescheckin' => [
|
||||
'name' => 'Unassign Licenses',
|
||||
'note' => 'Allows the user to unassign licenses from assets or users.',
|
||||
],
|
||||
'licensesfiles' => [
|
||||
'name' => 'Manage License Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with licenses.',
|
||||
],
|
||||
'licenseskeys' => [
|
||||
'name' => 'Manage License Keys',
|
||||
'note' => 'Allows the user to view product keys associated with licenses.',
|
||||
],
|
||||
'components' => [
|
||||
'name' => 'Components',
|
||||
'note' => 'Grants access to the Components section of the application.',
|
||||
],
|
||||
'componentsview' => [
|
||||
'name' => 'View Components',
|
||||
],
|
||||
'componentscreate' => [
|
||||
'name' => 'Create New Components',
|
||||
],
|
||||
'componentsedit' => [
|
||||
'name' => 'Edit Components',
|
||||
],
|
||||
'componentsdelete' => [
|
||||
'name' => 'Delete Components',
|
||||
],
|
||||
'componentsfiles' => [
|
||||
'name' => 'Manage Component Files',
|
||||
'note' => 'Allows the user to upload, download, and delete files associated with components.',
|
||||
],
|
||||
'componentscheckout' => [
|
||||
'name' => 'Check Out Components',
|
||||
'note' => 'Assign components in inventory by checking them out.',
|
||||
],
|
||||
'componentscheckin' => [
|
||||
'name' => 'Check In Components',
|
||||
'note' => 'Check components back into inventory that are currently checked out.',
|
||||
],
|
||||
'kits' => [
|
||||
'name' => 'Predefined Kits',
|
||||
'note' => 'Grants access to the Predefined Kits section of the application.',
|
||||
],
|
||||
'kitsview' => [
|
||||
'name' => 'View Predefined Kits',
|
||||
],
|
||||
'kitscreate' => [
|
||||
'name' => 'Create New Predefined Kits',
|
||||
],
|
||||
'kitsedit' => [
|
||||
'name' => 'Edit Predefined Kits',
|
||||
],
|
||||
'kitsdelete' => [
|
||||
'name' => 'Delete Predefined Kits',
|
||||
],
|
||||
'users' => [
|
||||
'name' => 'Users',
|
||||
'note' => 'Grants access to the Users section of the application.',
|
||||
],
|
||||
'usersview' => [
|
||||
'name' => 'View Users',
|
||||
],
|
||||
'userscreate' => [
|
||||
'name' => 'Create New Users',
|
||||
],
|
||||
'usersedit' => [
|
||||
'name' => 'Edit Users',
|
||||
],
|
||||
'usersdelete' => [
|
||||
'name' => 'Delete Users',
|
||||
],
|
||||
'models' => [
|
||||
'name' => 'Models',
|
||||
'note' => 'Grants access to the Models section of the application.',
|
||||
],
|
||||
'modelsview' => [
|
||||
'name' => 'View Models',
|
||||
],
|
||||
|
||||
'modelscreate' => [
|
||||
'name' => 'Create New Models',
|
||||
],
|
||||
'modelsedit' => [
|
||||
'name' => 'Edit Models',
|
||||
],
|
||||
'modelsdelete' => [
|
||||
'name' => 'Delete Models',
|
||||
],
|
||||
'categories' => [
|
||||
'name' => 'ምድብ',
|
||||
'note' => 'Grants access to the Categories section of the application.',
|
||||
],
|
||||
'categoriesview' => [
|
||||
'name' => 'View Categories',
|
||||
],
|
||||
'categoriescreate' => [
|
||||
'name' => 'Create New Categories',
|
||||
],
|
||||
'categoriesedit' => [
|
||||
'name' => 'Edit Categories',
|
||||
],
|
||||
'categoriesdelete' => [
|
||||
'name' => 'Delete Categories',
|
||||
],
|
||||
'departments' => [
|
||||
'name' => 'Departments',
|
||||
'note' => 'Grants access to the Departments section of the application.',
|
||||
],
|
||||
'departmentsview' => [
|
||||
'name' => 'View Departments',
|
||||
],
|
||||
'departmentscreate' => [
|
||||
'name' => 'Create New Departments',
|
||||
],
|
||||
'departmentsedit' => [
|
||||
'name' => 'Edit Departments',
|
||||
],
|
||||
'departmentsdelete' => [
|
||||
'name' => 'Delete Departments',
|
||||
],
|
||||
'locations' => [
|
||||
'name' => 'Locations',
|
||||
'note' => 'Grants access to the Locations section of the application.',
|
||||
],
|
||||
'locationsview' => [
|
||||
'name' => 'View Locations',
|
||||
],
|
||||
'locationscreate' => [
|
||||
'name' => 'Create New Locations',
|
||||
],
|
||||
'locationsedit' => [
|
||||
'name' => 'Edit Locations',
|
||||
],
|
||||
'locationsdelete' => [
|
||||
'name' => 'Delete Locations',
|
||||
],
|
||||
'status-labels' => [
|
||||
'name' => 'Status Labels',
|
||||
'note' => 'Grants access to the Status Labels section of the application used by Assets.',
|
||||
],
|
||||
'statuslabelsview' => [
|
||||
'name' => 'View Status Labels',
|
||||
],
|
||||
'statuslabelscreate' => [
|
||||
'name' => 'Create New Status Labels',
|
||||
],
|
||||
'statuslabelsedit' => [
|
||||
'name' => 'Edit Status Labels',
|
||||
],
|
||||
'statuslabelsdelete' => [
|
||||
'name' => 'Delete Status Labels',
|
||||
],
|
||||
'custom-fields' => [
|
||||
'name' => 'Custom Fields',
|
||||
'note' => 'Grants access to the Custom Fields section of the application used by Assets.',
|
||||
],
|
||||
'customfieldsview' => [
|
||||
'name' => 'View Custom Fields',
|
||||
],
|
||||
'customfieldscreate' => [
|
||||
'name' => 'Create New Custom Fields',
|
||||
],
|
||||
'customfieldsedit' => [
|
||||
'name' => 'Edit Custom Fields',
|
||||
],
|
||||
'customfieldsdelete' => [
|
||||
'name' => 'Delete Custom Fields',
|
||||
],
|
||||
'suppliers' => [
|
||||
'name' => 'Suppliers',
|
||||
'note' => 'Grants access to the Suppliers section of the application.',
|
||||
],
|
||||
'suppliersview' => [
|
||||
'name' => 'View Suppliers',
|
||||
],
|
||||
'supplierscreate' => [
|
||||
'name' => 'Create New Suppliers',
|
||||
],
|
||||
'suppliersedit' => [
|
||||
'name' => 'Edit Suppliers',
|
||||
],
|
||||
'suppliersdelete' => [
|
||||
'name' => 'Delete Suppliers',
|
||||
],
|
||||
'manufacturers' => [
|
||||
'name' => 'Manufacturers',
|
||||
'note' => 'Grants access to the Manufacturers section of the application.',
|
||||
],
|
||||
'manufacturersview' => [
|
||||
'name' => 'View Manufacturers',
|
||||
],
|
||||
'manufacturerscreate' => [
|
||||
'name' => 'Create New Manufacturers',
|
||||
],
|
||||
'manufacturersedit' => [
|
||||
'name' => 'Edit Manufacturers',
|
||||
],
|
||||
'manufacturersdelete' => [
|
||||
'name' => 'Delete Manufacturers',
|
||||
],
|
||||
'companies' => [
|
||||
'name' => 'Companies',
|
||||
'note' => 'Grants access to the Companies section of the application.',
|
||||
],
|
||||
'companiesview' => [
|
||||
'name' => 'View Companies',
|
||||
],
|
||||
'companiescreate' => [
|
||||
'name' => 'Create New Companies',
|
||||
],
|
||||
'companiesedit' => [
|
||||
'name' => 'Edit Companies',
|
||||
],
|
||||
'companiesdelete' => [
|
||||
'name' => 'Delete Companies',
|
||||
],
|
||||
'user-self-accounts' => [
|
||||
'name' => 'User Self Accounts',
|
||||
'note' => 'Grants non-admin users the ability to manage certain aspects of their own user accounts.',
|
||||
],
|
||||
'selftwo-factor' => [
|
||||
'name' => 'Manage Two-Factor Authentication',
|
||||
'note' => 'Allows users to enable, disable, and manage two-factor authentication for their own accounts.',
|
||||
],
|
||||
'selfapi' => [
|
||||
'name' => 'Manage API Tokens',
|
||||
'note' => 'Allows users to create, view, and revoke their own API tokens. User tokens will have the same permissions as the user who created them.',
|
||||
],
|
||||
'selfedit-location' => [
|
||||
'name' => 'Edit Location',
|
||||
'note' => 'Allows users to edit the location associated with their own user account.',
|
||||
],
|
||||
'selfcheckout-assets' => [
|
||||
'name' => 'Self Check Out Assets',
|
||||
'note' => 'Allows users to check out assets to themselves without admin intervention.',
|
||||
],
|
||||
'selfview-purchase-cost' => [
|
||||
'name' => 'View Purchase Cost',
|
||||
'note' => 'Allows users to view the purchase cost of items in their account view.',
|
||||
],
|
||||
|
||||
'depreciations' => [
|
||||
'name' => 'Depreciation Management',
|
||||
'note' => 'Allows users to manage and view asset depreciation details.',
|
||||
],
|
||||
'depreciationsview' => [
|
||||
'name' => 'View Depreciation Details',
|
||||
],
|
||||
'depreciationsedit' => [
|
||||
'name' => 'Edit Depreciation Settings',
|
||||
],
|
||||
'depreciationsdelete' => [
|
||||
'name' => 'Delete Depreciation Records',
|
||||
],
|
||||
'depreciationscreate' => [
|
||||
'name' => 'Create Depreciation Records',
|
||||
],
|
||||
|
||||
'grant_all' => 'Grant all permissions for :area',
|
||||
'deny_all' => 'Deny all permissions for :area',
|
||||
'inherit_all' => 'Inherit all permissions for :area from permission groups',
|
||||
'grant' => 'Grant Permission for :area',
|
||||
'deny' => 'Deny Permission for :area',
|
||||
'inherit' => 'Inherit Permission for :area from permission groups',
|
||||
'use_groups' => 'We strongly suggest using Permission Groups instead of assigning individual permissions for easier management.'
|
||||
|
||||
);
|
||||
@@ -174,7 +174,7 @@ return [
|
||||
'ulid' => 'The :attribute field must be a valid ULID.',
|
||||
'uuid' => 'The :attribute field must be a valid UUID.',
|
||||
'fmcs_location' => 'Full multiple company support and location scoping is enabled in the Admin Settings, and the selected location and selected company are not compatible.',
|
||||
|
||||
'is_unique_across_company_and_location' => 'The :attribute must be unique within the selected company and location.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
return array(
|
||||
'asset_categories' => 'تصنيفات الأصول',
|
||||
'category_name' => 'اسم التصنيف',
|
||||
'checkin_email' => 'إرسال رسالة إلكترونية للمستخدم عند الإدخال \\ الإخراج.',
|
||||
'email_to_user_upon_checkin' => 'Send email to user upon checkin.',
|
||||
'email_to_user_upon_checkin_and_checkout' => 'Send email to user upon checkin/checkout.',
|
||||
'email_to_initiator' => 'Send email to you when user accepts or declines checkout.',
|
||||
'checkin_email_notification' => 'سيتم إرسال رسالة إلكترونية إلى هذا المستخدم عند الإدخال \\ الإخراج.',
|
||||
'clone' => 'نسخ التصنيف',
|
||||
'create' => 'إنشاء تصنيف',
|
||||
'edit' => 'تعديل التصنيف',
|
||||
'email_will_be_sent_due_to_global_eula' => 'سيتم إرسال بريد إلكتروني إلى المستخدم لأنه يتم استخدام اتفاقية ترخيص المستخدم العالمية.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'سيتم إرسال بريد إلكتروني إلى المستخدم لأنه تم تعيين اتفاقية ترخيص دخول لهذه الفئة.',
|
||||
'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user upon checkout because the global EULA is being used.',
|
||||
'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user upon checkout because a EULA is set for this category.',
|
||||
'eula_text' => 'إتفاقية ترخيص المستخدم النهائي للتصنيف',
|
||||
'eula_text_help' => 'يسمح لك هذا الحقل بتخصيص (اتفاقية ترخيص المستخدم) لأنواع معينة من الأصول. اذا كنت تمتلك اتفاقية واحدة لجميع أصولك يمكنك أن تقوم بتأشير المربع في الأسفل لاستخدام الاتفاقية الافتراضية.',
|
||||
'name' => 'اسم التصنيف',
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'إدارة',
|
||||
'field' => 'حقل',
|
||||
'about_fieldsets_title' => 'حول مجموعة الحقول',
|
||||
'about_fieldsets_text' => '(مجموعات الحقول) تسمح لك بإنشاء مجموعات من الحقول اللتي يمكن إعادة إستخدامها مع موديل محدد.',
|
||||
'about_fieldsets_text' => 'مجموعات الحقول تسمح لك بإنشاء مجموعات من الحقول المخصصة التي يعاد استخدامها في كثير من الأحيان لأنواع معينة من نماذج الأصول.',
|
||||
'custom_format' => 'تنسيق Regex المخصص...',
|
||||
'encrypt_field' => 'تشفير قيمة هذا الحقل في قاعدة البيانات',
|
||||
'encrypt_field_help' => 'تحذير: تشفير الحقل يجعله غير قابل للبحث.',
|
||||
@@ -67,4 +67,5 @@ return [
|
||||
'checkbox' => 'Checkbox',
|
||||
'radio' => 'Radio Buttons',
|
||||
],
|
||||
'general_help_text' => 'Custom fields store additional information not covered by the default asset fields. <a href="https://snipe-it.readme.io/docs/custom-fields#/"><i class="fa fa-external-link"></i></a>.',
|
||||
];
|
||||
|
||||
@@ -18,7 +18,7 @@ return [
|
||||
'alert_email' => 'إرسال تنبيهات إلى',
|
||||
'alert_email_help' => 'عناوين البريد الإلكتروني أو قوائم التوزيع التي تريد إرسال تنبيهات إليها، مفصولة بفاصلة.',
|
||||
'alerts_enabled' => 'التنبيهان ممكنه',
|
||||
'alert_interval' => 'انتهاء فترة التنبيهات (بالأيام)',
|
||||
'alert_interval' => 'Expiring Alerts Threshold',
|
||||
'alert_inv_threshold' => 'عتبة تنبيه المخزون',
|
||||
'allow_user_skin' => 'السماح بنمط المستخدم',
|
||||
'allow_user_skin_help_text' => 'التحقق من هذا المربع سيسمح للمستخدم باستخدام مظهر واجهة المستخدم بمظهر آخر.',
|
||||
@@ -94,10 +94,12 @@ return [
|
||||
'ldap_settings' => 'إعدادات لداب',
|
||||
'ldap_client_tls_cert_help' => 'عادة ما تكون شهادة العميل على جانب TLS ومفتاح اتصالات LDAP مفيدة فقط في إعدادات مساحة العمل في Google مع "أمن LDAP." كلاهما مطلوب.',
|
||||
'ldap_location' => 'LDAP Location Field',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||
'ldap_login_test_help' => 'أدخل اسم مستخدم وكلمة مرور LDAP من الاسم المميز الأساسي DN الذي حددته أعلاه لاختبار ما إذا كان قد تمت تهيئة معلومات تسجيل الدخول إلى LDAP بشكل صحيح أم لا. يجب حفظ تحديث LDAP الخاص بك أولا.',
|
||||
'ldap_login_sync_help' => 'This only tests that LDAP can sync and that your fields are mapped correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||
'ldap_manager' => 'LDAP Manager Field',
|
||||
'ldap_mapping_help' => 'If your fields are not syncing correctly, try using the <strong>lower-case version</strong> of the field names. Display Name (<code>displayName</code>) in your LDAP/AD should be mapped here as <code>displayname</code>, <code>givenName</code> should be <code>givenname</code>, <code>sAMAccountName</code> as <code>samaccountname</code>, etc. <a href="https://snipe-it.readme.io/docs/ldap-sync-login#field-mapping-for-syncing"><i class="fa fa-external-link"></i></a>',
|
||||
'save_ldap_first' => 'You must save your LDAP settings before testing. Save your settings on this page and then reload to test LDAP login and/or sync.',
|
||||
'ldap_server' => 'خادم لداب',
|
||||
'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)',
|
||||
'ldap_server_cert' => 'التحقق من صحة شهادة سل لداب',
|
||||
@@ -345,6 +347,7 @@ return [
|
||||
'asset_tags_help' => 'زيادة والبادئات',
|
||||
'labels' => 'التسميات',
|
||||
'labels_title' => 'تحديث إعدادات التسمية',
|
||||
'labels_title_help' => 'Changes made here must be saved before they will be reflected in the labels or the preview below.',
|
||||
'labels_help' => 'Barcodes & label settings',
|
||||
'purge_help' => 'تطهير السجلات المحذوفة',
|
||||
'ldap_extension_warning' => 'لا يبدو أن ملحق LDAP مثبت أو مفعّل على هذا الخادم. لا يزال بإمكانك حفظ الإعدادات الخاصة بك، ولكن ستحتاج إلى تمكين ملحق LDAP لـ PHP قبل أن تعمل مزامنة LDAP أو تسجيل الدخول.',
|
||||
@@ -379,14 +382,17 @@ return [
|
||||
'label2_1d_type_help' => 'تنسيق 1D باركود',
|
||||
'label2_2d_type' => '2D نوع الباركود',
|
||||
'label2_2d_type_help' => 'تنسيق الباركود ثنائية الأبعاد',
|
||||
'label2_2d_target' => 'هدف الباركود 2D',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode',
|
||||
'label2_2d_prefix' => '2D Barcode Prefix',
|
||||
'label2_2d_prefix_help' => 'This text will be prepended to the 2D Barcode Target value selected below when the 2D code is scanned. This can be used to prepend an external URL or any other value that you might need.',
|
||||
'label2_2d_target' => '2D Barcode Content',
|
||||
'label2_2d_target_help' => 'The data that will be contained in the 2D barcode. This can link to the asset directly in Snipe-IT or can be one of the non-linked field values. If you use the prefix above, it will be prepended to this value.',
|
||||
'select_template' => 'Select a Template',
|
||||
'label2_fields' => 'تعاريف الحقل',
|
||||
'label2_fields_help' => 'يمكن إضافة الحقول وإزالتها وإعادة ترتيبها في العمود الأيسر. لكل حقل ، يمكن إضافة خيارات متعددة للتسمية و DataSource ، وإزالتها وإعادة ترتيبها في العمود الأيمن.',
|
||||
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column. Field changes made here will be reflected immediately in the preview below but must be saved for them to apply to new labels.',
|
||||
'purge_barcodes' => 'Purge Barcodes',
|
||||
'help_asterisk_bold' => 'النص الذي تم إدخاله كـ <code>**text**</code> سيتم عرضه بالخط العريض',
|
||||
'help_blank_to_use' => 'اتركه فارغاً لاستخدام القيمة من <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. ',
|
||||
'help_default_will_use' => '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',
|
||||
'default' => 'الافتراضي',
|
||||
@@ -414,6 +420,9 @@ return [
|
||||
'manager_view' => 'Manager View',
|
||||
'manager_view_enabled_text' => 'Enable Manager View',
|
||||
'manager_view_enabled_help' => 'Allow managers to view assigned items to their direct and indirect reports in their account view.',
|
||||
'redirect_url' => 'Redirect URL',
|
||||
'client_secret' => 'Client Secret',
|
||||
'client_id' => 'Client ID',
|
||||
|
||||
'username_formats' => [
|
||||
'username_format' => 'تنسيق اسم المستخدم',
|
||||
@@ -487,6 +496,7 @@ return [
|
||||
'server' => 'Server Settings',
|
||||
'scoping' => 'Scoping',
|
||||
'security' => 'Security Preferences',
|
||||
'passwords' => 'Password Security Preferences',
|
||||
],
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ return [
|
||||
'info' => 'معلومات',
|
||||
'restore_user' => 'انقر هنا لاستعادتها.',
|
||||
'last_login' => 'آخر دخول للمستخدم',
|
||||
'ldap_config_text' => 'يمكن العثور على إعدادات تهيئة لداب المشرف> الإعدادات. سيتم تعيين الموقع (اختياري) المحدد لجميع المستخدمين الذين تم استيرادهم.',
|
||||
'ldap_config_text' => 'The selected location will be set for ALL imported users. This will overwrite their existing location, and is an unusual use-case, so leaving this blank is typically best.',
|
||||
'ldap_sync_intro' => 'Click on the button below to manually sync your LDAP users. To learn more about configuring LDAP sync to run automatically, please see the <a href=":link" target="_blank">documentation <i class="fa fa-external-link"></i></a> .',
|
||||
'print_assigned' => 'طباعة كل الممتلكات',
|
||||
'email_assigned' => 'قائمة البريد اﻹلكتروني لكل المعينين',
|
||||
'user_notified' => 'تم إرسال قائمة بالعناصر المعينة حاليا إلى المستخدم بالبريد الإلكتروني.',
|
||||
@@ -53,4 +54,6 @@ return [
|
||||
'all_assigned_list_generation' => 'تم إنشاؤها في:',
|
||||
'email_user_creds_on_create' => 'إرسال بيانات دخول هذا المستخدم بالبريد الإلكتروني؟',
|
||||
'department_manager' => 'Department Manager',
|
||||
'generate_password' => 'Generate random password',
|
||||
'individual_override' => 'This user has at least one individual permission set, which may override group permissions.',
|
||||
];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user