Compare commits

...

40 Commits

Author SHA1 Message Date
snipe a3e35e0c99 Added form request
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 16:29:42 +01:00
snipe 2e8c51be9c First steps for #16883 - bulk asset auduting via API
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 11:35:30 +01:00
snipe 7d9b87f059 Merge pull request #16898 from marcusmoore/chore/form-radio-replacement
Replaced Form::radio helpers
2025-05-08 20:50:29 +01:00
Marcus Moore c157f4190e Replace Form::radio in location partial 2025-05-08 12:25:48 -07:00
Marcus Moore 9357eca1cd Replace Form::radio on asset checkin page 2025-05-08 12:16:55 -07:00
snipe 40c65a07a4 Merge pull request #16896 from grokability/removed_seat_number
Removed seat "name" from licenses seats API/UI response
2025-05-08 17:57:40 +01:00
snipe 13521bcf75 Removed seat “name” from license seats API/UI
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 17:37:27 +01:00
snipe 1c09dc139a Undo previous change
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:40:24 +01:00
snipe d5f955b1e0 License seats are not numbered correctly [sc-29113]
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:25:49 +01:00
snipe 9e6e8f0931 Moved incomplete test marker
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:22:09 +01:00
snipe c93ef30801 Ignore flaky test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:43:40 +01:00
snipe 3e0dec4856 Fixed #16893 - more specific upload failure text
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:38:38 +01:00
snipe 0b167f5f6f Grab location uploads from backup
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:22:26 +01:00
snipe f6b21fdb82 Merge pull request #16895 from grokability/fixed_#16863_custom_fields_validation
Fixed #16863 - better handle custom fields validation when unique but not required
2025-05-08 15:09:04 +01:00
snipe f151628808 Merge pull request #16894 from grokability/resolve-webserver-permissions
Fix webserver/user file permissions issue
2025-05-08 15:08:40 +01:00
snipe e44aad0328 Fixed typeos 2025-05-08 15:08:14 +01:00
snipe 1881054c92 Fixed #16863 - better handle unique not required custom field redirects
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:00:43 +01:00
Jeremy Price f7533c5e41 Fix webserver/user file permissions issue
Fixes https://github.com/grokability/snipe-it/issues/16777

We weren't adding the webserver user to the app-user's group, which was
a problem for the webserver trying to write to the log file if it had
been created by a user-owned process (like a cron) or the installation
script chown-ing everything... even though the log file was created 664

This would often present in mysterious ways. In the linked case, trying
to upload a cvs for import would fail with an unhelpful message, because
the actual error is swallowed in the generic error handler for the page.

I've filed an issue to hopefully help with that: https://github.com/grokability/snipe-it/issues/16893

Used this opportunity to condense some logic that was
identical between architectures,
2025-05-08 13:55:23 +02:00
snipe f181e0fa55 Merge pull request #16877 from marcusmoore/bug/sc-29012
Allow updating asset model image via api
2025-05-08 06:27:49 +01:00
snipe b04efdfefc Merge pull request #16889 from grokability/add_updated_range_to_custom_report
Added #16887 - last updated date range for custom report
2025-05-08 06:27:32 +01:00
snipe 352b935dee Merge pull request #16884 from marcusmoore/bug/sc-29097
Removed `2fa_authed` from session upon logout
2025-05-08 06:23:26 +01:00
snipe 0ba3b9975a Added #16887 - last updated date range for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 06:21:06 +01:00
Marcus Moore cc06187f31 Remove 2fa_authed from session upon logout 2025-05-07 14:04:33 -07:00
snipe a916767392 Show the QR code on the asset page regardless of label settings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:34:21 +01:00
snipe 1c57bfaa39 Small cosmetic change to offset
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:28:01 +01:00
snipe 4a5adeb661 Fixed #16866 - use singular translation for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:55:28 +01:00
snipe 01f9772291 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:37:10 +01:00
snipe 960b3aebed Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:24:07 +01:00
Marcus Moore d75de73867 Allow updating asset model image via api 2025-05-06 17:13:23 -07:00
snipe e75df97902 Merge pull request #16876 from grokability/switch-back-to-multiarch-docker-with-emulation
Move back to multiarch builds with emulation (for now)
2025-05-06 21:39:23 +01:00
Jeremy Price 5be14ec750 Move back to multiarch builds with emulation (for now)
Turns out it's not straightforward to have multiarchitecture images
within the same namespace, if you want to run each architecture's build
on native runners.

While we work on getting that going, we're moving back to
build-everything-on-intel-runners-with-emulation-for-arm

it means slowwwww arm builds, but it also means we should get our images
straightened out
2025-05-06 22:27:53 +02:00
snipe 717a82f46a Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 21:27:02 +01:00
snipe e40038900b Merge pull request #16875 from ubc-cpsc/bugfix/CVE-2025-46734
Fixes CVE-2025-46734: league/commonmark contains a XSS vulnerability in Attributes extension
2025-05-06 19:19:09 +01:00
Joël Pittet 099eabc240 Fixes CVE-2025-46734 2025-05-06 11:01:45 -07:00
snipe 3a4fa35398 Merge pull request #16874 from grokability/clone_breadcrumb_fix
Fixed breadcrumbs for cloning
2025-05-06 16:42:52 +01:00
snipe 500d6a0cc2 Merge pull request #16873 from grokability/redirect_on_audit
Redirect options on audit
2025-05-06 16:39:29 +01:00
snipe 38e5bf71bc Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:36:09 +01:00
snipe 45ff195f11 Fixed breadcrumbs for cloning
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:17:02 +01:00
snipe ce543c8179 Use consistent icon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:15 +01:00
snipe 5c11a8c1e0 Modified helper
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:06 +01:00
541 changed files with 8299 additions and 490 deletions
@@ -1,5 +1,5 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker Intel/amd64 images (Ubuntu)
# Snipe-IT (Alpine) Docker image build for hub.docker.com
name: Docker images (Alpine)
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
@@ -19,72 +19,7 @@ permissions:
contents: read
jobs:
docker-ubuntu-intel:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=tag
type=semver,pattern=v{{major}}-latest
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
docker-alpine-intel:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
@@ -142,7 +77,7 @@ jobs:
with:
context: .
file: ./Dockerfile.alpine
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
@@ -1,5 +1,5 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker ARM images (Ubuntu and Alpine)
name: Docker images (Ubuntu)
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
@@ -19,10 +19,10 @@ permissions:
contents: read
jobs:
docker-ubuntu-arm:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
@@ -77,72 +77,7 @@ jobs:
with:
context: .
file: ./Dockerfile
platforms: linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
docker-alpine-arm:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-24.04-arm
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=tag,suffix=-alpine
type=semver,pattern=v{{major}}-latest-alpine
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.alpine
platforms: linux/arm64
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
@@ -249,6 +249,7 @@ class RestoreFromBackup extends Command
'storage/private_uploads/consumables',
'storage/private_uploads/eula-pdfs',
'storage/private_uploads/imports',
'storage/private_uploads/locations',
'storage/private_uploads/licenses',
'storage/private_uploads/signatures',
'storage/private_uploads/users',
+11
View File
@@ -1487,6 +1487,7 @@ class Helper
$redirect_option = Session::get('redirect_option');
$checkout_to_type = Session::get('checkout_to_type');
$checkedInFrom = Session::get('checkedInFrom');
$other_redirect = Session::get('other_redirect');
// return to index
if ($redirect_option == 'index') {
@@ -1535,6 +1536,16 @@ class Helper
return route('hardware.show', $request->assigned_asset ?? $checkedInFrom);
}
}
// return to somewhere else
if ($redirect_option == 'other_redirect') {
switch ($other_redirect) {
case 'audit':
return route('assets.audit.due');
}
}
return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error'));
}
+36 -15
View File
@@ -35,6 +35,7 @@ use Illuminate\Support\Facades\Route;
use App\View\Label;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use App\Http\Requests\AuditRequest;
/**
@@ -1071,25 +1072,33 @@ class AssetsController extends Controller
* @param int $id
* @since [v4.0]
*/
public function audit(Request $request, Asset $asset): JsonResponse
public function audit(AuditRequest $request): JsonResponse
{
$this->authorize('audit', Asset::class);
$settings = Setting::getSettings();
$dt = Carbon::now()->addMonths($settings->audit_interval)->toDateString();
// Allow the asset tag to be passed in the payload (legacy method)
if ($request->filled('asset_tag')) {
$asset = Asset::where('asset_tag', '=', $request->input('asset_tag'))->first();
// Check if it's an array or a string
if (is_array($request->input('asset_tag'))) {
$asset_tag = $request->input('asset_tag');
$multi_audit = true;
} else {
// If it's a string, make it into an array so we can use it in the whereIn query
$asset_tag = [$request->input('asset_tag')];
$multi_audit = false;
}
if ($asset) {
$assets = Asset::whereIn('asset_tag', $asset_tag)->get();
foreach ($assets as $asset) {
$originalValues = $asset->getRawOriginal();
$asset->next_audit_date = $dt;
$asset->last_audit_date = date('Y-m-d H:i:s');
// Overwrite next_audit_date if it was specified in the request
if ($request->filled('next_audit_date')) {
$asset->next_audit_date = $request->input('next_audit_date');
}
@@ -1100,15 +1109,24 @@ class AssetsController extends Controller
$asset->location_id = $request->input('location_id');
}
$asset->last_audit_date = date('Y-m-d H:i:s');
// Set up the payload for re-display in the API response
$payload = [
'id' => $asset->id,
'asset_tag' => $asset->asset_tag,
'note' => $request->input('note'),
'next_audit_date' => Helper::getFormattedDateObject($asset->next_audit_date),
];
if ($multi_audit === true) {
$payload[] = [
'id' => $asset->id,
'asset_tag' => $asset->asset_tag,
'note' => $request->input('note'),
'next_audit_date' => Helper::getFormattedDateObject($asset->next_audit_date),
];
} else {
$payload[] = [
'id' => $asset->id,
'asset_tag' => $asset->asset_tag,
'note' => $request->input('note'),
'next_audit_date' => Helper::getFormattedDateObject($asset->next_audit_date),
];
}
/**
@@ -1176,11 +1194,14 @@ class AssetsController extends Controller
*/
if ($asset->isValid() && $asset->save()) {
$asset->logAudit(request('note'), request('location_id'), null, $originalValues);
return response()->json(Helper::formatStandardApiResponse('success', $payload, trans('admin/hardware/message.audit.success')));
}
}
if (count($payload) > 0) {
return response()->json(Helper::formatStandardApiResponse('success', $payload, trans('admin/hardware/message.audit.success')));
}
// No matching asset for the asset tag that was passed.
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 200);
@@ -34,7 +34,7 @@ class LicenseSeatsController extends Controller
if ($request->input('sort') == 'department') {
$seats->OrderDepartments($order);
} else {
$seats->orderBy('id', $order);
$seats->orderBy('updated_at', $order);
}
$total = $seats->count();
@@ -42,12 +42,11 @@ class AssetCheckinController extends Controller
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
}
// Validate custom fields on existing asset
$validator = Validator::make($asset->toArray(), $asset->customFieldValidationRules());
// Invoke the validation to see if the audit will complete successfully
$asset->setRules($asset->getRules() + $asset->customFieldValidationRules());
if ($validator->fails()) {
return redirect()->route('hardware.edit', $asset)
->withErrors($validator);
if ($asset->isInvalid()) {
return redirect()->route('hardware.edit', $asset)->withErrors($asset->getErrors());
}
$target_option = match ($asset->assigned_type) {
@@ -37,13 +37,13 @@ class AssetCheckoutController extends Controller
->with('error', trans('admin/hardware/general.model_invalid_fix'));
}
// Validate custom fields on existing asset
$validator = Validator::make($asset->toArray(), $asset->customFieldValidationRules());
// Invoke the validation to see if the audit will complete successfully
$asset->setRules($asset->getRules() + $asset->customFieldValidationRules());
if ($validator->fails()) {
return redirect()->route('hardware.edit', $asset)
->withErrors($validator);
if ($asset->isInvalid()) {
return redirect()->route('hardware.edit', $asset)->withErrors($asset->getErrors());
}
if ($asset->availableForCheckout()) {
return view('hardware/checkout', compact('asset'))
@@ -519,7 +519,7 @@ class AssetsController extends Controller
{
$settings = Setting::getSettings();
if (($settings->qr_code == '1') && ($settings->label2_2d_type !== 'none')) {
if ($settings->label2_2d_type !== 'none') {
if ($asset) {
$size = Helper::barcodeDimensions($settings->label2_2d_type);
@@ -882,12 +882,12 @@ class AssetsController extends Controller
$this->authorize('audit', Asset::class);
$settings = Setting::getSettings();
// Validate custom fields on existing asset
$validator = Validator::make($asset->toArray(), $asset->customFieldValidationRules());
if ($validator->fails()) {
return redirect()->route('hardware.edit', $asset)
->withErrors($validator);
// Invoke the validation to see if the audit will complete successfully
$asset->setRules($asset->getRules() + $asset->customFieldValidationRules());
if ($asset->isInvalid()) {
return redirect()->route('hardware.edit', $asset)->withErrors($asset->getErrors());
}
$dt = Carbon::now()->addMonths($settings->audit_interval)->toDateString();
@@ -899,6 +899,10 @@ class AssetsController extends Controller
$this->authorize('audit', Asset::class);
session()->put('redirect_option', $request->get('redirect_option'));
session()->put('other_redirect', 'audit');
$originalValues = $asset->getRawOriginal();
$asset->next_audit_date = $request->input('next_audit_date');
@@ -974,7 +978,7 @@ class AssetsController extends Controller
}
$asset->logAudit($request->input('note'), $request->input('location_id'), $file_name, $originalValues);
return redirect()->route('assets.audit.due')->with('success', trans('admin/hardware/message.audit.success'));
return redirect()->to(Helper::getRedirectOption($request, $asset->id, 'Assets'))->with('success', trans('admin/hardware/message.audit.success'));
}
return redirect()->back()->withInput()->withErrors($asset->getErrors());
@@ -484,6 +484,7 @@ class LoginController extends Controller
}
$request->session()->regenerate(true);
$request->session()->forget('2fa_authed');
if ($request->session()->has('password_hash_'.Auth::getDefaultDriver())){
$request->session()->remove('password_hash_'.Auth::getDefaultDriver());
@@ -737,6 +737,11 @@ class ReportsController extends Controller
if (($request->filled('next_audit_start')) && ($request->filled('next_audit_end'))) {
$assets->whereBetween('assets.next_audit_date', [$request->input('next_audit_start'), $request->input('next_audit_end')]);
}
if (($request->filled('last_updated_start')) && ($request->filled('last_updated_end'))) {
$assets->whereBetween('assets.updated_at', [$request->input('last_updated_start'), $request->input('last_updated_end')]);
}
if ($request->filled('exclude_archived')) {
$assets->notArchived();
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use App\Models\Asset;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
class AuditRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return Gate::allows('audit', new Asset);
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'asset_tag' => 'required|exists:assets,asset_tag',
];
}
}
@@ -19,6 +19,7 @@ class StoreAssetModelRequest extends ImageUploadRequest
public function prepareForValidation(): void
{
parent::prepareForValidation();
if ($this->category_id) {
if ($category = Category::find($this->category_id)) {
@@ -13,16 +13,15 @@ class LicenseSeatsTransformer
public function transformLicenseSeats(Collection $seats, $total)
{
$array = [];
$seat_count = 0;
foreach ($seats as $seat) {
$seat_count++;
$array[] = self::transformLicenseSeat($seat, $seat_count);
$array[] = self::transformLicenseSeat($seat);
}
return (new DatatablesTransformer)->transformDatatables($array, $total);
}
public function transformLicenseSeat(LicenseSeat $seat, $seat_count = 0)
public function transformLicenseSeat(LicenseSeat $seat)
{
$array = [
'id' => (int) $seat->id,
@@ -55,10 +54,6 @@ class LicenseSeatsTransformer
'user_can_checkout' => (($seat->assigned_to == '') && ($seat->asset_id == '')),
];
if ($seat_count != 0) {
$array['name'] = trans('admin/licenses/general.seat_count', ['count' => $seat_count]);
}
$permissions_array['available_actions'] = [
'checkout' => Gate::allows('checkout', License::class),
'checkin' => Gate::allows('checkin', License::class),
+4 -1
View File
@@ -113,7 +113,10 @@ class CustomFieldset extends Model
$rule[] = 'unique_undeleted';
}
array_push($rule, $field->attributes['format']);
if ($field->attributes['format']!='') {
array_push($rule, $field->attributes['format']);
}
$rules[$field->db_column_name()] = $rule;
+2 -11
View File
@@ -230,16 +230,7 @@ class LicensePresenter extends Presenter
'switchable' => true,
'title' => trans('general.id'),
'visible' => false,
],
[
'field' => 'name',
'searchable' => false,
'sortable' => false,
'sorter' => 'numericOnly',
'switchable' => true,
'title' => trans('admin/licenses/general.seat'),
'visible' => true,
], [
],[
'field' => 'assigned_user',
'searchable' => false,
'sortable' => false,
@@ -285,7 +276,7 @@ class LicensePresenter extends Presenter
'searchable' => false,
'sortable' => true,
'visible' => false,
'title' => trans('general.date'),
'title' => trans('general.updated_at'),
'formatter' => 'dateDisplayFormatter',
],
[
@@ -67,6 +67,11 @@ class BreadcrumbsServiceProvider extends ServiceProvider
->push(trans('general.create'), route('hardware.create'))
);
Breadcrumbs::for('clone/hardware', fn (Trail $trail) =>
$trail->parent('hardware.index', route('hardware.index'))
->push(trans('admin/hardware/general.clone'), route('hardware.create'))
);
Breadcrumbs::for('hardware.show', fn (Trail $trail, Asset $asset) =>
$trail->parent('hardware.index', route('hardware.index'))
->push($asset->present()->fullName(), route('hardware.show', $asset))
@@ -378,6 +383,12 @@ class BreadcrumbsServiceProvider extends ServiceProvider
->push(trans('general.create'), route('locations.create'))
);
Breadcrumbs::for('clone/location', fn (Trail $trail) =>
$trail->parent('locations.index', route('locations.index'))
->push(trans('admin/locations/table.clone'), route('locations.create'))
);
Breadcrumbs::for('locations.show', fn (Trail $trail, Location $location) =>
$trail->parent('locations.index', route('locations.index'))
->push($location->name, route('locations.show', $location))
@@ -539,6 +550,13 @@ class BreadcrumbsServiceProvider extends ServiceProvider
->push(trans('general.create'), route('users.create'))
);
Breadcrumbs::for('users.clone.show', fn (Trail $trail) =>
$trail->parent('users.index', route('users.index'))
->push(trans('admin/users/general.clone'), route('users.create'))
);
Breadcrumbs::for('users.show', fn (Trail $trail, User $user) =>
$trail->parent('users.index', route('users.index'))
->push($user->getFullNameAttribute() ?? 'Missing Username!', route('users.show', $user))
Generated
+6 -6
View File
@@ -3558,16 +3558,16 @@
},
{
"name": "league/commonmark",
"version": "2.6.1",
"version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad"
"reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad",
"reference": "d990688c91cedfb69753ffc2512727ec646df2ad",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6fbb36d44824ed4091adbcf4c7d4a3923cdb3405",
"reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405",
"shasum": ""
},
"require": {
@@ -3604,7 +3604,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "2.7-dev"
"dev-main": "2.8-dev"
}
},
"autoload": {
@@ -3661,7 +3661,7 @@
"type": "tidelift"
}
],
"time": "2024-12-29T14:10:59+00:00"
"time": "2025-05-05T12:20:28+00:00"
},
{
"name": "league/config",
+5 -5
View File
@@ -1,10 +1,10 @@
<?php
return array (
'app_version' => 'v8.1.2',
'full_app_version' => 'v8.1.2 - build 17914-g251851ec6',
'build_version' => '17914',
'app_version' => 'v8.1.3',
'full_app_version' => 'v8.1.3 - build 18054-gd67933ab4',
'build_version' => '18054',
'prerelease_version' => '',
'hash_version' => 'g251851ec6',
'full_hash' => 'v8.1.2-32-g251851ec6',
'hash_version' => 'gd67933ab4',
'full_hash' => 'v8.1.3-133-gd67933ab4',
'branch' => 'develop',
);
-35
View File
@@ -614,11 +614,6 @@ input[type=search] {
.search-highlight:hover {
background-color: var(--back-sub) !important;
}
.input-group,
.input-group-addon {
background-color: var(--back-sub);
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -1408,11 +1403,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -2378,11 +2368,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -2918,11 +2903,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -3654,11 +3634,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -4406,11 +4381,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -5357,11 +5327,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-35
View File
@@ -614,11 +614,6 @@ input[type=search] {
.search-highlight:hover {
background-color: var(--back-sub) !important;
}
.input-group,
.input-group-addon {
background-color: var(--back-sub);
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -1408,11 +1403,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -2378,11 +2368,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -2918,11 +2903,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -3654,11 +3634,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -4406,11 +4381,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
@@ -5357,11 +5327,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -396,11 +396,6 @@ input[type=search] {
.search-highlight:hover {
background-color: var(--back-sub) !important;
}
.input-group,
.input-group-addon {
background-color: var(--back-sub);
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -396,11 +396,6 @@ input[type=search] {
.search-highlight:hover {
background-color: var(--back-sub) !important;
}
.input-group,
.input-group-addon {
background-color: var(--back-sub);
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -377,11 +377,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -377,11 +377,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -368,11 +368,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -368,11 +368,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -378,11 +378,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -378,11 +378,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -378,11 +378,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -378,11 +378,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -377,11 +377,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -377,11 +377,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -355,11 +355,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
-5
View File
@@ -355,11 +355,6 @@ input[type=search] {
background-color: var(--back-sub);
color: var(--text-main);
}
.input-group,
.input-group-addon {
background-color: var(--back-sub) !important;
color: var(--text-main);
}
#licensesTable > tbody > tr > td > nobr > a > i.fa {
color: var(--text-main);
}
+16 -16
View File
@@ -1,23 +1,23 @@
{
"/js/build/app.js": "/js/build/app.js?id=19253af36b58ed3fb6770c7bb944f079",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=06c13e817cc022028b3f4a33c0ca303a",
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=3955411f214d1aa011fd509b6c81fbea",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=78bfb1c7b5782df4fb0ac7e36f80f847",
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=503d0b09e157a22f555e3670d1ec9bb5",
"/css/build/overrides.css": "/css/build/overrides.css?id=2bfc7b71d951c5ac026dbc034f7373b1",
"/css/build/app.css": "/css/build/app.css?id=4b4c2f1225d59efa7a22b76f7bbe39d8",
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9",
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=5bbc74fa36ad7e85114e95c99f244421",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=f6b2e7fa795596ac4754500c9c30eacc",
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=44bf834f2110504a793dadec132a5898",
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=b70f0d0cf76a643b3fbf47a1dfdb1529",
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=bcba8a437f59c2334f9bd32f668ff9bb",
"/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=6fe68325d5356197672c27bc77cedcb4",
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=25f255bc860b5472b201ef700fd638a8",
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=093bd9d22c19a903b826bb4a1c819263",
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=6f0563e726c2fe4fab4026daaa5bfdf2",
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=07e257b423e6a8f984e1d9bf0bb04fe0",
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=723ac4a390d628c9253d5416494cdaf4",
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=0a82a6ae6bb4e58fe62d162c4fb50397",
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=bb648ddce4bc923ac79205a78882248d",
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=624d1d9b9bf141a593cfe835fdfc85cc",
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=da6c7997d9de2f8329142399f0ce50da",
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=a82b065847bf3cd5d713c04ee8dc86c6",
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=e4facb3da382b3c6f040f7d0b738643d",
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=7aacfabbafd138c5af6420609f97820d",
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb",
"/css/dist/all.css": "/css/dist/all.css?id=12e96a25d0dc3ee39e9d3ce97044fbbf",
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
@@ -92,21 +92,21 @@
"/css/webfonts/fa-v4compatibility.woff2": "/css/webfonts/fa-v4compatibility.woff2?id=331c85bd61ffa93af09273d1bc2add5a",
"/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=5e93ef0a1889bed3f92a705dc1e92c9b",
"/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=c0f21fb7e62d6f0a0153f1cdbf26782a",
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=3955411f214d1aa011fd509b6c81fbea",
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=06c13e817cc022028b3f4a33c0ca303a",
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=503d0b09e157a22f555e3670d1ec9bb5",
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=78bfb1c7b5782df4fb0ac7e36f80f847",
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=76482123f6c70e866d6b971ba91de7bb",
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=e4facb3da382b3c6f040f7d0b738643d",
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=7aacfabbafd138c5af6420609f97820d",
"/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=a82b065847bf3cd5d713c04ee8dc86c6",
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=da6c7997d9de2f8329142399f0ce50da",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=bb648ddce4bc923ac79205a78882248d",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=624d1d9b9bf141a593cfe835fdfc85cc",
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=0a82a6ae6bb4e58fe62d162c4fb50397",
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=07e257b423e6a8f984e1d9bf0bb04fe0",
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=723ac4a390d628c9253d5416494cdaf4",
"/css/dist/skins/skin-orange.min.css": "/css/dist/skins/skin-orange.min.css?id=6f0563e726c2fe4fab4026daaa5bfdf2",
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=25f255bc860b5472b201ef700fd638a8",
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=093bd9d22c19a903b826bb4a1c819263",
"/css/dist/skins/skin-purple.min.css": "/css/dist/skins/skin-purple.min.css?id=6fe68325d5356197672c27bc77cedcb4",
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=b70f0d0cf76a643b3fbf47a1dfdb1529",
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=bcba8a437f59c2334f9bd32f668ff9bb",
"/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=44bf834f2110504a793dadec132a5898",
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=5bbc74fa36ad7e85114e95c99f244421",
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=f6b2e7fa795596ac4754500c9c30eacc",
"/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=7b315b9612b8fde8f9c5b0ddb6bba690",
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=54d676a6ea8677dd48f6c4b3041292cf",
"/js/build/vendor.js": "/js/build/vendor.js?id=89dffa552c6e3abe3a2aac6c9c7b466b",
@@ -5,7 +5,7 @@ return [
'manage' => 'crwdns6501:0crwdne6501:0',
'field' => 'crwdns1487:0crwdne1487:0',
'about_fieldsets_title' => 'crwdns1488:0crwdne1488:0',
'about_fieldsets_text' => 'crwdns13176:0crwdne13176:0',
'about_fieldsets_text' => 'crwdns13226:0crwdne13226:0',
'custom_format' => 'crwdns6505:0crwdne6505:0',
'encrypt_field' => 'crwdns1792:0crwdne1792:0',
'encrypt_field_help' => 'crwdns1683:0crwdne1683:0',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'crwdns6693:0crwdne6693:0',
'signed_by_location_manager' => 'crwdns6695:0crwdne6695:0',
'signed_by' => 'crwdns6697:0crwdne6697:0',
'clone' => 'crwdns13240:0crwdne13240:0',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'crwdns6337:0crwdne6337:0',
'eula_settings' => 'crwdns1296:0crwdne1296:0',
'eula_markdown' => 'crwdns1261:0crwdne1261:0',
'empty_row_count' => 'crwdns13236:0crwdne13236:0',
'empty_row_count_help' => 'crwdns13238:0crwdne13238:0',
'favicon' => 'crwdns5858:0crwdne5858:0',
'favicon_format' => 'crwdns5860:0crwdne5860:0',
'favicon_size' => 'crwdns5862:0crwdne5862:0',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'crwdns1465:0crwdne1465:0',
'scope_locations_fmcs_support_text' => 'crwdns13049:0crwdne13049:0',
'scope_locations_fmcs_support_help_text' => 'crwdns13188:0crwdne13188:0',
'scope_locations_fmcs_check_button' => 'crwdns13234:0crwdne13234:0',
'scope_locations_fmcs_support_disabled_text' => 'crwdns13190:0crwdne13190:0',
'show_in_model_list' => 'crwdns1990:0crwdne1990:0',
'optional' => 'crwdns1298:0crwdne1298:0',
+2
View File
@@ -389,6 +389,8 @@ return [
'new_license' => 'crwdns6249:0crwdne6249:0',
'new_accessory' => 'crwdns6251:0crwdne6251:0',
'new_consumable' => 'crwdns6253:0crwdne6253:0',
'new_component' => 'crwdns13228:0crwdne13228:0',
'new_user' => 'crwdns13230:0crwdne13230:0',
'collapse' => 'crwdns6255:0crwdne6255:0',
'assigned' => 'crwdns6257:0crwdne6257:0',
'asset_count' => 'crwdns6259:0crwdne6259:0',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'crwdns12550:0crwdne12550:0',
'ulid' => 'crwdns12552:0crwdne12552:0',
'uuid' => 'crwdns12554:0crwdne12554:0',
'fmcs_location' => 'crwdns13232:0crwdne13232:0',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Manage',
'field' => 'veld',
'about_fieldsets_title' => 'Oor Fieldsets',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
'about_fieldsets_text' => 'Veldstelle stel jou in staat om groepe van persoonlike velde te skep wat gereeld hergebruik word vir spesifieke tipe bates.',
'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.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
'signed_by_location_manager' => 'Signed By (Location Manager):',
'signed_by' => 'Signed Off By:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Enabled',
'eula_settings' => 'EULA-instellings',
'eula_markdown' => 'Hierdie EULA laat <a href="https://help.github.com/articles/github-flavored-markdown/">Github-geurde markdown</a> toe.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Volledige Veelvuldige Maatskappye Ondersteuning',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Show in Model Dropdowns',
'optional' => 'opsioneel',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'New License',
'new_accessory' => 'New Accessory',
'new_consumable' => 'New Consumable',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Collapse',
'assigned' => 'Assigned',
'asset_count' => 'Asset Count',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -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 for specific asset model types.',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used 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.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
'signed_by_location_manager' => 'Signed By (Location Manager):',
'signed_by' => 'Signed Off By:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Enabled',
'eula_settings' => 'EULA Settings',
'eula_markdown' => 'This EULA allows <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Full Multiple Companies Support',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Show in Model Dropdowns',
'optional' => 'optional',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'New License',
'new_accessory' => 'New Accessory',
'new_consumable' => 'New Consumable',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Collapse',
'assigned' => 'Assigned',
'asset_count' => 'Asset Count',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'إدارة',
'field' => 'حقل',
'about_fieldsets_title' => 'حول مجموعة الحقول',
'about_fieldsets_text' => 'مجموعات الحقول تسمح لك بإنشاء مجموعات من الحقول المخصصة التي يعاد استخدامها في كثير من الأحيان لأنواع معينة من نماذج الأصول.',
'about_fieldsets_text' => '(مجموعات الحقول) تسمح لك بإنشاء مجموعات من الحقول اللتي يمكن إعادة إستخدامها مع موديل محدد.',
'custom_format' => 'تنسيق Regex المخصص...',
'encrypt_field' => 'تشفير قيمة هذا الحقل في قاعدة البيانات',
'encrypt_field_help' => 'تحذير: تشفير الحقل يجعله غير قابل للبحث.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'موقعة من قبل (مراجع الحسابات المالي):',
'signed_by_location_manager' => 'توقيع بواسطة (مدير الموقع):',
'signed_by' => 'تم توقيعه من قبل:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'تمكين',
'eula_settings' => 'إعدادات اتفاقية ترخيص المستخدم النهائي',
'eula_markdown' => 'تسمح اتفاقية ترخيص المستخدم هذه <a href="https://help.github.com/articles/github-flavored-markdown/">بتطبيق نمط الكتابة من Github</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'أنواع الملفات المقبولة هي رمز و png و gif. قد لا تعمل تنسيقات الصور الأخرى في كافة المستعرضات.',
'favicon_size' => 'وينبغي أن تكون Favicons صور مربعة ، 16x16 بكسل.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'كامل دعم الشركات المتعددة',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'إظهار في القوائم المنسدلة للنماذج',
'optional' => 'اختياري',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'ترخيص جديد',
'new_accessory' => 'ملحق الجودة',
'new_consumable' => 'مادة إستهلاكية جديدة',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'اخفاء',
'assigned' => 'مسندة',
'asset_count' => 'عدد الأصول',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Управление',
'field' => 'Поле',
'about_fieldsets_title' => 'Относно Fieldsets',
'about_fieldsets_text' => '"Група от полета" позволяват създаването на групи от персонализирани полета, които се използват и преизползват често за специфични типове модели на активи.',
'about_fieldsets_text' => 'Fieldsets позволяват създаването на групи от персонализирани полета, които се използват и преизползват често за специфични типове модели на активи.',
'custom_format' => 'Персонализиран формат...',
'encrypt_field' => 'Шифроване на стойността на това поле в базата данни',
'encrypt_field_help' => 'ВНИМАНИЕ: Шифроване на поле го прави невалидно за търсене.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Подписан от (счетоводител):',
'signed_by_location_manager' => 'Подписан от (мениджър):',
'signed_by' => 'Подписано от:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Активно',
'eula_settings' => 'Настройки на EULA',
'eula_markdown' => 'Съдържанието на EULA може да бъде форматирано с <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Приетите файлови формати са ico, png, и gif. Другите формати на снимки може да не работят в всъчки браузъри.',
'favicon_size' => 'Favicons трябва да бъдат квадратна снимка с размери, 16х16 пиксела.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Поддръжка на множество компании',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Показване в падащите менюта на моделите',
'optional' => 'незадължително',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Нов Лиценз',
'new_accessory' => 'Нов аксесоар',
'new_consumable' => 'Нов Консуматив',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Свий',
'assigned' => 'Възложен',
'asset_count' => 'Брой Активи',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -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 for specific asset model types.',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used 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.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
'signed_by_location_manager' => 'Signed By (Location Manager):',
'signed_by' => 'Signed Off By:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Enabled',
'eula_settings' => 'EULA Settings',
'eula_markdown' => 'This EULA allows <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Full Multiple Companies Support',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Show in Model Dropdowns',
'optional' => 'optional',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'New License',
'new_accessory' => 'New Accessory',
'new_consumable' => 'New Consumable',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Collapse',
'assigned' => 'Assigned',
'asset_count' => 'Asset Count',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -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 for specific asset model types.',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used 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.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
'signed_by_location_manager' => 'Signed By (Location Manager):',
'signed_by' => 'Signed Off By:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Enabled',
'eula_settings' => 'EULA Settings',
'eula_markdown' => 'This EULA allows <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Full Multiple Companies Support',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Show in Model Dropdowns',
'optional' => 'optional',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'New License',
'new_accessory' => 'New Accessory',
'new_consumable' => 'New Consumable',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Collapse',
'assigned' => 'Assigned',
'asset_count' => 'Asset Count',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Podepsáno (Finanční auditor):',
'signed_by_location_manager' => 'Podepsáno (Manager):',
'signed_by' => 'Odepsal:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Povoleno',
'eula_settings' => 'Nastavení EULA',
'eula_markdown' => 'Tato EULA umožňuje <a href="https://help.github.com/articles/github-flavored-markdown/">Github markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicona',
'favicon_format' => 'Povolené typy souborů jsou ico, png a gif. Ostatní formáty obrázků nemusí fungovat ve všech prohlížečích.',
'favicon_size' => 'Favikony by měly být čtvercové obrázky, 16 x 16 pixelů.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Plná podpora více společností',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Zobrazit v rozbalovacích nabídkách modelu',
'optional' => 'volitelný',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Nová licence',
'new_accessory' => 'Nové příslušenství',
'new_consumable' => 'Nový spotřební materiál',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Sbalit',
'assigned' => 'Přiřazené',
'asset_count' => 'Počet aktiv',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => ':attribute není platnou URL.',
'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.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Manage',
'field' => 'Meysydd',
'about_fieldsets_title' => 'Amdan grwpiau meysydd',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
'about_fieldsets_text' => 'Mae grwpiau meysydd yn caniatau i chi creu grwpiau o meysydd addasedig sydd yn cael ei defnyddio yn amal ar gyfer mathau penodol o asedau.',
'custom_format' => 'Custom Regex format...',
'encrypt_field' => 'Hamcryptio gwerth y maes yma yn y basdata',
'encrypt_field_help' => 'RHYBUDD: Mae hamcryptio maes yn feddwl nid oes modd chwilio amdano.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
'signed_by_location_manager' => 'Signed By (Location Manager):',
'signed_by' => 'Signed Off By:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Enabled',
'eula_settings' => 'Gosodiadau CTDT',
'eula_markdown' => 'Mae\'r CTDT yma yn caniatau <a href="https://help.github.com/articles/github-flavored-markdown/">markdown GitHub</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Mathau o ffeiliau a dderbynnir yw ico, png, a gif. Mae\'n bosib cewch trafferthion hefo rhai gwahanol mewn rhai porrwyr.',
'favicon_size' => 'Dylith favicons bod yn delweddau sgwar 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Cefnogaeth Llawn ar gyfer Nifer o Cwmniau',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Dangos mewn dewislen modelau',
'optional' => 'dewisol',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'New License',
'new_accessory' => 'New Accessory',
'new_consumable' => 'New Consumable',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Collapse',
'assigned' => 'Assigned',
'asset_count' => 'Asset Count',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Administrer',
'field' => 'Felt',
'about_fieldsets_title' => 'Om Feltsæt',
'about_fieldsets_text' => 'Feltsæt giver dig mulighed for at oprette grupper af brugerdefinerede felter, der ofte genbruges til specifikke asset-modeltyper.',
'about_fieldsets_text' => 'Fieldsets giver dig mulighed for at oprette grupper af brugerdefinerede felter, der ofte bruges igen til specifikke aktivmodeltyper.',
'custom_format' => 'Tilpasset Regex format...',
'encrypt_field' => 'Kryptere værdien af dette felt i databasen',
'encrypt_field_help' => 'Advarsel: Kryptere et felt gør det uransagelige.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Godkendt af (finanskontrollant):',
'signed_by_location_manager' => 'Godkendt af (Lokationsadministrator):',
'signed_by' => 'Godkendt af:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Aktiveret',
'eula_settings' => 'EULA-indstillinger',
'eula_markdown' => 'Denne EULA tillader <a href="https://help.github.com/articles/github-flavored-markdown/">Github smagsmærket markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepterede filtyper er ico, png, og gif. Andre billedformater fungerer muligvis ikke i alle browsere.',
'favicon_size' => 'Favicons skal være firkantede billeder, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Fuld flere virksomheder support',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Vis i modeldropdown',
'optional' => 'valgfri',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Ny licens',
'new_accessory' => 'Nyt tilbehør',
'new_consumable' => 'Ny forbrugsvare',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Skjul',
'assigned' => 'Tildelt',
'asset_count' => 'Antal aktiver',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Verwalten',
'field' => 'Feld',
'about_fieldsets_title' => 'Über Feldsätze',
'about_fieldsets_text' => 'Ein Feldsatz ist eine Gruppe von benutzerdefinierten Feldern, die häufig für bestimmte Asset-Modelltypen wiederverwendet werden.',
'about_fieldsets_text' => 'Feldsätze erlauben es, Gruppen aus benutzerdefinierten Feldern zu erstellen, die regelmäßig für spezifische Modelltypen benutzt werden.',
'custom_format' => 'Benutzerdefiniertes Regex-Format...',
'encrypt_field' => 'Den Wert dieses Feldes in der Datenbank verschlüsseln',
'encrypt_field_help' => 'WARNUNG: Ein verschlüsseltes Feld kann nicht durchsucht werden.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Unterschrieben von (Finanzprüfer):',
'signed_by_location_manager' => 'Unterschrieben von (Standortmanager):',
'signed_by' => 'Unterschrieben von:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Aktiviert',
'eula_settings' => 'EULA Einstellungen',
'eula_markdown' => 'Diese EULA <a href="https://help.github.com/articles/github-flavored-markdown/"> erlaubt Github Flavored Markdown</a>.',
'empty_row_count' => 'Feld-Start-Versatz (Leere Zeilen)',
'empty_row_count_help' => 'Felder werden gefüllt, nachdem diese vielen leeren Zeilen am oberen Rand des Labels übersprungen wurden.',
'favicon' => 'Favicon',
'favicon_format' => 'Zulässige Dateitypen sind ico, png und gif. Andere Bildformate funktionieren möglicherweise nicht in allen Browsern.',
'favicon_size' => 'Favicons sollten quadratische Bilder mit 16x16 Pixel sein.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Volle Mehrmandanten-Unterstützung für Firmen',
'scope_locations_fmcs_support_text' => 'Bereicherte Standorte mit vollständiger Unterstützung für mehrere Unternehmen',
'scope_locations_fmcs_support_help_text' => 'Standorte auf das ausgewählte Unternehmen beschränken.',
'scope_locations_fmcs_check_button' => 'Kompatibilität prüfen',
'scope_locations_fmcs_support_disabled_text' => 'Diese Option ist deaktiviert, da für :count oder mehr Elemente widersprüchliche Standorte gesetzt sind.',
'show_in_model_list' => 'In Modell-Dropdown-Liste anzeigen',
'optional' => 'optional',
@@ -456,18 +459,18 @@ return [
'scoping' => 'Ummantelung',
'formats' => 'Standardformat',
'profiles' => 'Benutzerprofile',
'eula' => 'EULA & Acceptance Preferences',
'eula' => 'EULA & Akzeptanzeinstellungen',
'misc_display' => 'Verschiedene Anzeigeoptionen',
'email' => 'E-Mail-Einstellungen',
'checkin' => 'Checkin Einstellungen',
'dashboard' => 'Anmeldung & Dashboard Einstellungen',
'misc' => 'Sonstiges',
'logos' => 'Logos & Display',
'colors' => 'Colors & Skins',
'footer' => 'Footer Preferences',
'security' => 'Security Preferences',
'general' => 'General',
'intervals' => 'Intervals & Thresholds',
'logos' => 'Logos & Bildschirm',
'colors' => 'Farben & Skins',
'footer' => 'Fußzeileneinstellungen',
'security' => 'Sicherheitseinstellungen',
'general' => 'Allgemein',
'intervals' => 'Intervalle & Grenzwerte',
],
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Neue Lizenz',
'new_accessory' => 'Neues Zubehör',
'new_consumable' => 'Neues Verbrauchsmaterial',
'new_component' => 'Neue Komponente',
'new_user' => 'Neuer Benutzer',
'collapse' => 'Zusammenklappen',
'assigned' => 'Zugewiesen',
'asset_count' => 'Anzahl Assets',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'Das Feld :attribute muss eine gültige URL sein.',
'ulid' => 'Das Feld :attribute muss eine gültige ULID sein.',
'uuid' => 'Das Feld :attribute muss eine gültige UUID sein.',
'fmcs_location' => 'In den Admin-Einstellungen ist eine vollständige Mehrfachunterstützung für Unternehmen und Standortbereicherung aktiviert und der ausgewählte Standort und die ausgewählte Firma sind nicht kompatibel.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Verwalten',
'field' => 'Feld',
'about_fieldsets_title' => 'Über Feldsätze',
'about_fieldsets_text' => 'Ein Feldsatz ist eine Gruppe von benutzerdefinierten Feldern, die häufig für bestimmte Asset-Modelltypen wiederverwendet werden.',
'about_fieldsets_text' => 'Feldsätze erlauben es, Gruppen aus benutzerdefinierten Feldern zu erstellen, die regelmäßig für spezifische Modelltypen wiederverwendet werden.',
'custom_format' => 'Benutzerdefiniertes Regex-Format...',
'encrypt_field' => 'Den Wert dieses Feldes in der Datenbank verschlüsseln',
'encrypt_field_help' => 'WARNUNG: Ein verschlüsseltes Feld kann nicht durchsucht werden.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Unterschrieben von (Finanzprüfer):',
'signed_by_location_manager' => 'Unterschrieben von (Standortmanager):',
'signed_by' => 'Unterschrieben von:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Aktiviert',
'eula_settings' => 'EULA Einstellungen',
'eula_markdown' => 'Diese EULA erlaubt <a href="https://help.github.com/articles/github-flavored-markdown/">Github Flavored Markdown</a>.',
'empty_row_count' => 'Feld-Start-Versatz (Leere Zeilen)',
'empty_row_count_help' => 'Felder werden gefüllt, nachdem diese vielen leeren Zeilen am oberen Rand des Labels übersprungen wurden.',
'favicon' => 'Favicon',
'favicon_format' => 'Akzeptierte Dateitypen sind ico, png und gif. Andere Bildformate funktionieren möglicherweise nicht in allen Browsern.',
'favicon_size' => 'Favicons sollten quadratische Bilder mit 16x16 Pixel sein.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Volle Unterstützung für mehrere Unternehmen',
'scope_locations_fmcs_support_text' => 'Bereicherte Standorte mit vollständiger Unterstützung für mehrere Unternehmen',
'scope_locations_fmcs_support_help_text' => 'Standorte auf das ausgewählte Unternehmen beschränken.',
'scope_locations_fmcs_check_button' => 'Kompatibilität prüfen',
'scope_locations_fmcs_support_disabled_text' => 'Diese Option ist deaktiviert, da für :count oder mehr Elemente widersprüchliche Standorte gesetzt sind.',
'show_in_model_list' => 'In Modell-Dropdown-Liste anzeigen',
'optional' => 'optional',
@@ -456,18 +459,18 @@ return [
'scoping' => 'Ummantelung',
'formats' => 'Standardformate',
'profiles' => 'Benutzerprofile',
'eula' => 'EULA & Acceptance Preferences',
'eula' => 'EULA & Akzeptanzeinstellungen',
'misc_display' => 'Verschiedene Anzeigeoptionen',
'email' => 'E-Mail-Einstellungen',
'checkin' => 'Checkin Einstellungen',
'dashboard' => 'Login & Dashboard Einstellungen',
'misc' => 'Sonstiges',
'logos' => 'Logos & Display',
'colors' => 'Colors & Skins',
'footer' => 'Footer Preferences',
'security' => 'Security Preferences',
'general' => 'General',
'intervals' => 'Intervals & Thresholds',
'logos' => 'Logos & Bildschirm',
'colors' => 'Farben & Skins',
'footer' => 'Fußzeileneinstellungen',
'security' => 'Sicherheitseinstellungen',
'general' => 'Allgemein',
'intervals' => 'Intervalle & Grenzwerte',
],
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Neue Lizenz',
'new_accessory' => 'Neues Zubehör',
'new_consumable' => 'Neues Verbrauchsmaterial',
'new_component' => 'Neue Komponente',
'new_user' => 'Neuer Benutzer',
'collapse' => 'Zusammenklappen',
'assigned' => 'Zugewiesen',
'asset_count' => 'Anzahl Assets',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'Das Feld :attribute muss eine gültige URL sein.',
'ulid' => 'Das Feld :attribute muss eine gültige ULID sein.',
'uuid' => 'Das Feld :attribute muss eine gültige UUID sein.',
'fmcs_location' => 'In den Admin-Einstellungen ist eine vollständige Mehrfachunterstützung für Unternehmen und Standortbereicherung aktiviert und der ausgewählte Standort und die ausgewählte Firma sind nicht kompatibel.',
/*
@@ -5,7 +5,7 @@ return [
'manage' => 'Διαχείριση',
'field' => 'Πεδίο',
'about_fieldsets_title' => 'Σχετικά με τα σύνολα πεδίων',
'about_fieldsets_text' => 'Τα Fieldsets σας επιτρέπουν να δημιουργήσετε ομάδες προσαρμοσμένων πεδίων που συχνά επαναχρησιμοποιούνται για συγκεκριμένους τύπους μοντέλου στοιχείων ενεργητικού.',
'about_fieldsets_text' => 'Τα πεδία των πεδίων σάς επιτρέπουν να δημιουργείτε ομάδες προσαρμοσμένων πεδίων που χρησιμοποιούνται συχνά ξανά για συγκεκριμένους τύπους μοντέλων στοιχείων ενεργητικού.',
'custom_format' => 'Προσαρμοσμένη μορφή Regex...',
'encrypt_field' => 'Κρυπτογράφηση της αξίας του πεδίου στη βάση δεδομένων',
'encrypt_field_help' => 'Προειδοποίηση: H κρυπτογράφηση ενός πεδίου την καθιστά ανεξερεύνητη.',
@@ -39,4 +39,5 @@ return [
'signed_by_finance_auditor' => 'Υπογράφηκε Από (Ελεγκτή Χρηματοδότησης):',
'signed_by_location_manager' => 'Υπογράφηκε Από (Location Manager):',
'signed_by' => 'Υπεγράφη Από:',
'clone' => 'Clone Location',
];
@@ -64,6 +64,8 @@ return [
'enabled' => 'Ενεργοποιημένο',
'eula_settings' => 'Ρυθμίσεις EULA',
'eula_markdown' => 'Αυτή η EULA επιτρέπει <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'empty_row_count' => 'Field Start Offset (Empty Rows)',
'empty_row_count_help' => 'Fields will begin populating after this many empty rows are skipped at the top of the label.',
'favicon' => 'Αγαπημένο',
'favicon_format' => 'Αποδεκτοί τύποι αρχείων είναι ico, png και gif. Άλλες μορφές εικόνας μπορεί να μην λειτουργούν σε όλα τα προγράμματα περιήγησης.',
'favicon_size' => 'Τα Favicons πρέπει να είναι τετράγωνες εικόνες, 16x16 pixels.',
@@ -152,6 +154,7 @@ return [
'full_multiple_companies_support_text' => 'Πλήρης υποστήριξη πολλαπλών εταιρειών',
'scope_locations_fmcs_support_text' => 'Scope Locations with Full Multiple Companies Support',
'scope_locations_fmcs_support_help_text' => 'Restrict locations to their selected company.',
'scope_locations_fmcs_check_button' => 'Check Compatibility',
'scope_locations_fmcs_support_disabled_text' => 'This option is disabled because you have conflicting locations set for :count or more items.',
'show_in_model_list' => 'Εμφάνιση στο μοντέλο Dropdowns',
'optional' => 'προαιρετικός',
+2
View File
@@ -390,6 +390,8 @@ return [
'new_license' => 'Νέα Άδεια',
'new_accessory' => 'Νέο Αξεσουάρ',
'new_consumable' => 'Νέο Αναλώσιμο',
'new_component' => 'New Component',
'new_user' => 'New User',
'collapse' => 'Σύμπτυξη',
'assigned' => 'Ανατεθειμένο',
'asset_count' => 'Μετρητής Περιουσιακών Στοιχείων',
+1
View File
@@ -172,6 +172,7 @@ return [
'url' => 'The :attribute field must be a valid URL.',
'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.',
/*

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