Merge remote-tracking branch 'origin/develop'

Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
This commit is contained in:
snipe 2024-07-01 10:00:15 +01:00
commit 12dcac4994
72 changed files with 21362 additions and 1688 deletions

View file

@ -437,77 +437,83 @@ class UsersController extends Controller
{ {
$this->authorize('update', User::class); $this->authorize('update', User::class);
$user = User::find($id); if ($user = User::find($id)) {
$this->authorize('update', $user);
/**
* This is a janky hack to prevent people from changing admin demo user data on the public demo.
* The $ids 1 and 2 are special since they are seeded as superadmins in the demo seeder.
* Thanks, jerks. You are why we can't have nice things. - snipe
*
*/
if ((($id == 1) || ($id == 2)) && (config('app.lock_passwords'))) { $this->authorize('update', $user);
return response()->json(Helper::formatStandardApiResponse('error', null, 'Permission denied. You cannot update user information via API on the demo.'));
} /**
* This is a janky hack to prevent people from changing admin demo user data on the public demo.
* The $ids 1 and 2 are special since they are seeded as superadmins in the demo seeder.
* Thanks, jerks. You are why we can't have nice things. - snipe
*
*/
$user->fill($request->all()); if ((($id == 1) || ($id == 2)) && (config('app.lock_passwords'))) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Permission denied. You cannot update user information via API on the demo.'));
if ($user->id == $request->input('manager_id')) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot be your own manager'));
}
if ($request->filled('password')) {
$user->password = bcrypt($request->input('password'));
}
// We need to use has() instead of filled()
// here because we need to overwrite permissions
// if someone needs to null them out
if ($request->has('permissions')) {
$permissions_array = $request->input('permissions');
// Strip out the individual superuser permission if the API user isn't a superadmin
if (! Auth::user()->isSuperUser()) {
unset($permissions_array['superuser']);
} }
$user->permissions = $permissions_array;
}
$user->fill($request->all());
// Update the location of any assets checked out to this user if ($user->id == $request->input('manager_id')) {
Asset::where('assigned_type', User::class) return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot be your own manager'));
->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]); }
if ($request->filled('password')) {
app('App\Http\Requests\ImageUploadRequest')->handleImages($user, 600, 'image', 'avatars', 'avatar'); $user->password = bcrypt($request->input('password'));
}
if ($user->save()) {
// Check if the request has groups passed and has a value, AND that the user us a superuser // We need to use has() instead of filled()
if (($request->has('groups')) && (Auth::user()->isSuperUser())) { // here because we need to overwrite permissions
// if someone needs to null them out
if ($request->has('permissions')) {
$permissions_array = $request->input('permissions');
$validator = Validator::make($request->only('groups'), [ // Strip out the individual superuser permission if the API user isn't a superadmin
'groups.*' => 'integer|exists:permission_groups,id', if (!Auth::user()->isSuperUser()) {
]); unset($permissions_array['superuser']);
if ($validator->fails()) {
return response()->json(Helper::formatStandardApiResponse('error', null, $validator->errors()));
} }
// Sync the groups since the user is a superuser and the groups pass validation $user->permissions = $permissions_array;
$user->groups()->sync($request->input('groups'));
} }
return response()->json(Helper::formatStandardApiResponse('success', (new UsersTransformer)->transformUser($user), trans('admin/users/message.success.update')));
// Update the location of any assets checked out to this user
Asset::where('assigned_type', User::class)
->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]);
app('App\Http\Requests\ImageUploadRequest')->handleImages($user, 600, 'image', 'avatars', 'avatar');
if ($user->save()) {
// Check if the request has groups passed and has a value, AND that the user us a superuser
if (($request->has('groups')) && (Auth::user()->isSuperUser())) {
$validator = Validator::make($request->only('groups'), [
'groups.*' => 'integer|exists:permission_groups,id',
]);
if ($validator->fails()) {
return response()->json(Helper::formatStandardApiResponse('error', null, $validator->errors()));
}
// Sync the groups since the user is a superuser and the groups pass validation
$user->groups()->sync($request->input('groups'));
}
return response()->json(Helper::formatStandardApiResponse('success', (new UsersTransformer)->transformUser($user), trans('admin/users/message.success.update')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $user->getErrors()));
} }
return response()->json(Helper::formatStandardApiResponse('error', null, $user->getErrors())); return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id'))));
} }
/** /**

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use Livewire\Component; use Livewire\Component;

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use Livewire\Component; use Livewire\Component;

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use App\Models\CustomField; use App\Models\CustomField;
use Livewire\Component; use Livewire\Component;
@ -59,7 +59,7 @@ class Importer extends Component
]; ];
/** /**
* This is used in resources/views/livewire/importer.blade.php, and we kinda shouldn't need to check for * This is used in resources/views/livewire.importer.blade.php, and we kinda shouldn't need to check for
* activeFile here, but there's some UI goofiness that allows this to crash out on some imports. * activeFile here, but there's some UI goofiness that allows this to crash out on some imports.
* *
* @return string * @return string

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -19,21 +19,11 @@ class OauthClients extends Component
public $authorizationError; public $authorizationError;
protected $clientRepository;
protected $tokenRepository;
public function __construct()
{
$this->clientRepository = app(ClientRepository::class);
$this->tokenRepository = app(TokenRepository::class);
parent::__construct();
}
public function render() public function render()
{ {
return view('livewire.oauth-clients', [ return view('livewire.oauth-clients', [
'clients' => $this->clientRepository->activeForUser(auth()->user()->id), 'clients' => app(ClientRepository::class)->activeForUser(auth()->user()->id),
'authorized_tokens' => $this->tokenRepository->forUser(auth()->user()->id)->where('revoked', false), 'authorized_tokens' => app(TokenRepository::class)->forUser(auth()->user()->id)->where('revoked', false),
]); ]);
} }
@ -44,13 +34,13 @@ class OauthClients extends Component
'redirect' => 'required|url|max:255', 'redirect' => 'required|url|max:255',
]); ]);
$newClient = $this->clientRepository->create( app(ClientRepository::class)->create(
auth()->user()->id, auth()->user()->id,
$this->name, $this->name,
$this->redirect, $this->redirect,
); );
$this->dispatchBrowserEvent('clientCreated'); $this->dispatch('clientCreated');
} }
public function deleteClient(Client $clientId): void public function deleteClient(Client $clientId): void
@ -58,7 +48,7 @@ class OauthClients extends Component
// test for safety // test for safety
// ->delete must be of type Client - thus the model binding // ->delete must be of type Client - thus the model binding
if ($clientId->user_id == auth()->user()->id) { if ($clientId->user_id == auth()->user()->id) {
$this->clientRepository->delete($clientId); app(ClientRepository::class)->delete($clientId);
} else { } else {
Log::warning('User ' . auth()->user()->id . ' attempted to delete client ' . $clientId->id . ' which belongs to user ' . $clientId->user_id); Log::warning('User ' . auth()->user()->id . ' attempted to delete client ' . $clientId->id . ' which belongs to user ' . $clientId->user_id);
$this->authorizationError = 'You are not authorized to delete this client.'; $this->authorizationError = 'You are not authorized to delete this client.';
@ -67,9 +57,9 @@ class OauthClients extends Component
public function deleteToken($tokenId): void public function deleteToken($tokenId): void
{ {
$token = $this->tokenRepository->find($tokenId); $token = app(TokenRepository::class)->find($tokenId);
if ($token->user_id == auth()->user()->id) { if ($token->user_id == auth()->user()->id) {
$this->tokenRepository->revokeAccessToken($tokenId); app(TokenRepository::class)->revokeAccessToken($tokenId);
} else { } else {
Log::warning('User ' . auth()->user()->id . ' attempted to delete token ' . $tokenId . ' which belongs to user ' . $token->user_id); Log::warning('User ' . auth()->user()->id . ' attempted to delete token ' . $tokenId . ' which belongs to user ' . $token->user_id);
$this->authorizationError = 'You are not authorized to delete this token.'; $this->authorizationError = 'You are not authorized to delete this token.';
@ -83,7 +73,7 @@ class OauthClients extends Component
$this->editClientId = $editClientId->id; $this->editClientId = $editClientId->id;
$this->dispatchBrowserEvent('editClient'); $this->dispatch('editClient');
} }
public function updateClient(Client $editClientId): void public function updateClient(Client $editClientId): void
@ -93,7 +83,7 @@ class OauthClients extends Component
'editRedirect' => 'required|url|max:255', 'editRedirect' => 'required|url|max:255',
]); ]);
$client = $this->clientRepository->find($editClientId->id); $client = app(ClientRepository::class)->find($editClientId->id);
if ($client->user_id == auth()->user()->id) { if ($client->user_id == auth()->user()->id) {
$client->name = $this->editName; $client->name = $this->editName;
$client->redirect = $this->editRedirect; $client->redirect = $this->editRedirect;
@ -103,7 +93,7 @@ class OauthClients extends Component
$this->authorizationError = 'You are not authorized to edit this client.'; $this->authorizationError = 'You are not authorized to edit this client.';
} }
$this->dispatchBrowserEvent('clientUpdated'); $this->dispatch('clientUpdated');
} }
} }

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -17,7 +17,7 @@ class PersonalAccessTokens extends Component
//this is just an annoying thing to make the modal input autofocus //this is just an annoying thing to make the modal input autofocus
public function autoFocusModalEvent(): void public function autoFocusModalEvent(): void
{ {
$this->dispatchBrowserEvent('autoFocusModal'); $this->dispatch('autoFocusModal');
} }
public function render() public function render()
@ -42,7 +42,7 @@ class PersonalAccessTokens extends Component
$this->newTokenString = $newToken->accessToken; $this->newTokenString = $newToken->accessToken;
$this->dispatchBrowserEvent('tokenCreated', $newToken->accessToken); $this->dispatch('tokenCreated', token: $newToken->accessToken);
} }
public function deleteToken($tokenId): void public function deleteToken($tokenId): void

View file

@ -1,6 +1,6 @@
<?php <?php
namespace App\Http\Livewire; namespace App\Livewire;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
@ -23,15 +23,17 @@ class SlackSettingsForm extends Component
public Setting $setting; public Setting $setting;
public $save_button;
public $webhook_test;
public $webhook_endpoint_rules; public $webhook_endpoint_rules;
protected $rules = [ protected $rules = [
'webhook_endpoint' => 'required_with:webhook_channel|starts_with:http://,https://,ftp://,irc://,https://hooks.slack.com/services/|url|nullable', 'webhook_endpoint' => 'required_with:webhook_channel|starts_with:http://,https://,ftp://,irc://,https://hooks.slack.com/services/|url|nullable',
'webhook_channel' => 'required_with:webhook_endpoint|starts_with:#|nullable', 'webhook_channel' => 'required_with:webhook_endpoint|starts_with:#|nullable',
'webhook_botname' => 'string|nullable', 'webhook_botname' => 'string|nullable',
]; ];
public function mount() { public function mount() {
$this->webhook_text= [ $this->webhook_text= [

View file

@ -2,6 +2,7 @@
namespace App\Services; namespace App\Services;
use App\Helpers\Helper;
use Illuminate\Translation\Translator; use Illuminate\Translation\Translator;
/*************************************************************** /***************************************************************
@ -17,6 +18,10 @@ use Illuminate\Translation\Translator;
***************************************************************/ ***************************************************************/
class SnipeTranslator extends Translator { class SnipeTranslator extends Translator {
static $legacy_translation_namespaces = [
"backup::" //Spatie backup uses 'legacy' locale names
];
//This is copied-and-pasted (almost) verbatim from Illuminate\Translation\Translator //This is copied-and-pasted (almost) verbatim from Illuminate\Translation\Translator
public function choice($key, $number, array $replace = [], $locale = null) public function choice($key, $number, array $replace = [], $locale = null)
{ {
@ -39,4 +44,28 @@ class SnipeTranslator extends Translator {
); );
} }
public function get($key, array $replace = [], $locale = null, $fallback = true)
{
$modified_locale = $locale;
$changed_fallback = false;
$previous_fallback = $this->fallback;
// 'legacy' translation directories tend to be two-char ('en'), not 5-char ('en-US').
// Here we try our best to handle that.
foreach (self::$legacy_translation_namespaces as $namespace) {
if (preg_match("/^$namespace/", $key)) {
$modified_locale = Helper::mapBackToLegacyLocale($locale);
$changed_fallback = true;
$this->fallback = 'en'; //TODO - should this be 'env-able'? Or do we just put our foot down and say 'en'?
break;
}
}
$result = parent::get($key, $replace, $modified_locale, $fallback);
if ($changed_fallback) {
$this->fallback = $previous_fallback;
}
return $result;
}
} }

View file

@ -49,7 +49,7 @@
"laravelcollective/html": "^6.2", "laravelcollective/html": "^6.2",
"league/csv": "^9.7", "league/csv": "^9.7",
"league/flysystem-aws-s3-v3": "^3.0", "league/flysystem-aws-s3-v3": "^3.0",
"livewire/livewire": "^2.4", "livewire/livewire": "^3.5",
"neitanod/forceutf8": "^2.0", "neitanod/forceutf8": "^2.0",
"nesbot/carbon": "^2.32", "nesbot/carbon": "^2.32",
"nunomaduro/collision": "^6.1", "nunomaduro/collision": "^6.1",

37
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "1cda72f240f69b641adfb69041ebdf17", "content-hash": "51e716db4ccd70bf942062789f7303ad",
"packages": [ "packages": [
{ {
"name": "alek13/slack", "name": "alek13/slack",
@ -4454,34 +4454,37 @@
}, },
{ {
"name": "livewire/livewire", "name": "livewire/livewire",
"version": "v2.12.6", "version": "v3.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/livewire/livewire.git", "url": "https://github.com/livewire/livewire.git",
"reference": "7d3a57b3193299cf1a0639a3935c696f4da2cf92" "reference": "da044261bb5c5449397f18fda3409f14acf47c0a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/7d3a57b3193299cf1a0639a3935c696f4da2cf92", "url": "https://api.github.com/repos/livewire/livewire/zipball/da044261bb5c5449397f18fda3409f14acf47c0a",
"reference": "7d3a57b3193299cf1a0639a3935c696f4da2cf92", "reference": "da044261bb5c5449397f18fda3409f14acf47c0a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"illuminate/database": "^7.0|^8.0|^9.0|^10.0", "illuminate/database": "^10.0|^11.0",
"illuminate/support": "^7.0|^8.0|^9.0|^10.0", "illuminate/routing": "^10.0|^11.0",
"illuminate/validation": "^7.0|^8.0|^9.0|^10.0", "illuminate/support": "^10.0|^11.0",
"illuminate/validation": "^10.0|^11.0",
"league/mime-type-detection": "^1.9", "league/mime-type-detection": "^1.9",
"php": "^7.2.5|^8.0", "php": "^8.1",
"symfony/http-kernel": "^5.0|^6.0" "symfony/console": "^6.0|^7.0",
"symfony/http-kernel": "^6.2|^7.0"
}, },
"require-dev": { "require-dev": {
"calebporzio/sushi": "^2.1", "calebporzio/sushi": "^2.1",
"laravel/framework": "^7.0|^8.0|^9.0|^10.0", "laravel/framework": "^10.15.0|^11.0",
"laravel/prompts": "^0.1.6",
"mockery/mockery": "^1.3.1", "mockery/mockery": "^1.3.1",
"orchestra/testbench": "^5.0|^6.0|^7.0|^8.0", "orchestra/testbench": "^8.21.0|^9.0",
"orchestra/testbench-dusk": "^5.2|^6.0|^7.0|^8.0", "orchestra/testbench-dusk": "^8.24|^9.1",
"phpunit/phpunit": "^8.4|^9.0", "phpunit/phpunit": "^10.4",
"psy/psysh": "@stable" "psy/psysh": "^0.11.22|^0.12"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4515,7 +4518,7 @@
"description": "A front-end framework for Laravel.", "description": "A front-end framework for Laravel.",
"support": { "support": {
"issues": "https://github.com/livewire/livewire/issues", "issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v2.12.6" "source": "https://github.com/livewire/livewire/tree/v3.5.1"
}, },
"funding": [ "funding": [
{ {
@ -4523,7 +4526,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2023-08-11T04:02:34+00:00" "time": "2024-06-18T11:10:42+00:00"
}, },
{ {
"name": "masterminds/html5", "name": "masterminds/html5",

View file

@ -112,7 +112,7 @@ return [
| |
*/ */
'fallback_locale' => env('FALLBACK_APP_LOCALE', 'en'), 'fallback_locale' => env('FALLBACK_APP_LOCALE', 'en-US'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View file

@ -3,156 +3,158 @@
return [ return [
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| Class Namespace | Class Namespace
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| |
| This value sets the root namespace for Livewire component classes in | This value sets the root class namespace for Livewire component classes in
| your application. This value affects component auto-discovery and | your application. This value will change where component auto-discovery
| any Livewire file helper commands, like `artisan make:livewire`. | finds components. It's also referenced by the file creation commands.
|
| After changing this item, run: `php artisan livewire:discover`.
| |
*/ */
'class_namespace' => 'App\\Http\\Livewire', 'class_namespace' => 'App\\Livewire',
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| View Path | View Path
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| |
| This value sets the path for Livewire component views. This affects | This value is used to specify where Livewire component Blade templates are
| file manipulation helper commands like `artisan make:livewire`. | stored when running file creation commands like `artisan make:livewire`.
| It is also used if you choose to omit a component's render() method.
| |
*/ */
'view_path' => resource_path('views/livewire'), 'view_path' => resource_path('views/livewire'),
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| Layout | Layout
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| The default layout view that will be used when rendering a component via | The view that will be used as the layout when rendering a single component
| Route::get('/some-endpoint', SomeComponent::class);. In this case the | as an entire page via `Route::get('/post/create', CreatePost::class);`.
| the view returned by SomeComponent will be wrapped in "layouts.app" | In this case, the view returned by CreatePost will render into $slot.
| |
*/ */
'layout' => 'layouts.app', 'layout' => 'components.layouts.app',
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| Livewire Assets URL | Lazy Loading Placeholder
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| | Livewire allows you to lazy load components that would otherwise slow down
| This value sets the path to Livewire JavaScript assets, for cases where | the initial page load. Every component can have a custom placeholder or
| your app's domain root is not the correct path. By default, Livewire | you can define the default placeholder view for all components below.
| will load its JavaScript assets from the app's "relative root".
|
| Examples: "/assets", "myurl.com/app".
| |
*/ */
'asset_url' => env('APP_URL'), 'lazy_placeholder' => null,
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| Livewire App URL | Temporary File Uploads
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
|
| This value should be used if livewire assets are served from CDN.
| Livewire will communicate with an app through this url.
|
| Examples: "https://my-app.com", "myurl.com/app".
|
*/
'app_url' => null,
/*
|--------------------------------------------------------------------------
| Livewire Endpoint Middleware Group
|--------------------------------------------------------------------------
|
| This value sets the middleware group that will be applied to the main
| Livewire "message" endpoint (the endpoint that gets hit everytime
| a Livewire component updates). It is set to "web" by default.
|
*/
'middleware_group' => 'web',
/*
|--------------------------------------------------------------------------
| Livewire Temporary File Uploads Endpoint Configuration
|--------------------------------------------------------------------------
| |
| Livewire handles file uploads by storing uploads in a temporary directory | Livewire handles file uploads by storing uploads in a temporary directory
| before the file is validated and stored permanently. All file uploads | before the file is stored permanently. All file uploads are directed to
| are directed to a global endpoint for temporary storage. The config | a global endpoint for temporary storage. You may configure this below:
| items below are used for customizing the way the endpoint works.
| |
*/ */
'temporary_file_upload' => [ 'temporary_file_upload' => [
'disk' => env('PRIVATE_FILESYSTEM_DISK', 'local'), // Example: 'local', 's3' Default: 'default' 'disk' => env('PRIVATE_FILESYSTEM_DISK', 'local'), // Example: 'local', 's3' Default: 'default'
'rules' => null, // Example: ['file', 'mimes:png,jpg'] Default: ['required', 'file', 'max:12288'] (12MB) 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
'directory' => null, // Example: 'tmp' Default 'livewire-tmp' 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
'middleware' => null, // Example: 'throttle:5,1' Default: 'throttle:60,1' 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs. 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
'png', 'gif', 'bmp', 'svg', 'wav', 'mp4', 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
'mov', 'avi', 'wmv', 'mp3', 'm4a', 'mov', 'avi', 'wmv', 'mp3', 'm4a',
'jpg', 'jpeg', 'mpga', 'webp', 'wma', 'jpg', 'jpeg', 'mpga', 'webp', 'wma',
], ],
'max_upload_time' => 5, // Max duration (in minutes) before an upload gets invalidated. 'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
'cleanup' => true, // Should cleanup temporary uploads older than 24 hrs...
], ],
/* /*
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| Manifest File Path
|--------------------------------------------------------------------------
|
| This value sets the path to the Livewire manifest file.
| The default should work for most cases (which is
| "<app_root>/bootstrap/cache/livewire-components.php"), but for specific
| cases like when hosting on Laravel Vapor, it could be set to a different value.
|
| Example: for Laravel Vapor, it would be "/tmp/storage/bootstrap/cache/livewire-components.php".
|
*/
'manifest_path' => null,
/*
|--------------------------------------------------------------------------
| Back Button Cache
|--------------------------------------------------------------------------
|
| This value determines whether the back button cache will be used on pages
| that contain Livewire. By disabling back button cache, it ensures that
| the back button shows the correct state of components, instead of
| potentially stale, cached data.
|
| Setting it to "false" (default) will disable back button cache.
|
*/
'back_button_cache' => false,
/*
|--------------------------------------------------------------------------
| Render On Redirect | Render On Redirect
|-------------------------------------------------------------------------- |---------------------------------------------------------------------------
| |
| This value determines whether Livewire will render before it's redirected | This value determines if Livewire will run a component's `render()` method
| or not. Setting it to "false" (default) will mean the render method is | after a redirect has been triggered using something like `redirect(...)`
| skipped when redirecting. And "true" will mean the render method is | Setting this to true will render the view once more before redirecting
| run before redirecting. Browsers bfcache can store a potentially
| stale view if render is skipped on redirect.
| |
*/ */
'render_on_redirect' => false, 'render_on_redirect' => false,
/*
|---------------------------------------------------------------------------
| Eloquent Model Binding
|---------------------------------------------------------------------------
|
| Previous versions of Livewire supported binding directly to eloquent model
| properties using wire:model by default. However, this behavior has been
| deemed too "magical" and has therefore been put under a feature flag.
|
*/
'legacy_model_binding' => true,
/*
|---------------------------------------------------------------------------
| Auto-inject Frontend Assets
|---------------------------------------------------------------------------
|
| By default, Livewire automatically injects its JavaScript and CSS into the
| <head> and <body> of pages containing Livewire components. By disabling
| this behavior, you need to use @livewireStyles and @livewireScripts.
|
*/
'inject_assets' => true,
/*
|---------------------------------------------------------------------------
| Navigate (SPA mode)
|---------------------------------------------------------------------------
|
| By adding `wire:navigate` to links in your Livewire application, Livewire
| will prevent the default link handling and instead request those pages
| via AJAX, creating an SPA-like effect. Configure this behavior here.
|
*/
'navigate' => [
'show_progress_bar' => true,
'progress_bar_color' => '#2299dd',
],
/*
|---------------------------------------------------------------------------
| HTML Morph Markers
|---------------------------------------------------------------------------
|
| Livewire intelligently "morphs" existing HTML into the newly rendered HTML
| after each update. To make this process more reliable, Livewire injects
| "markers" into the rendered Blade surrounding @if, @class & @foreach.
|
*/
'inject_morph_markers' => true,
/*
|---------------------------------------------------------------------------
| Pagination Theme
|---------------------------------------------------------------------------
|
| When enabling Livewire's pagination feature by using the `WithPagination`
| trait, Livewire will use Tailwind templates to render pagination views
| on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
|
*/
'pagination_theme' => 'tailwind',
]; ];

20
package-lock.json generated
View file

@ -10,7 +10,6 @@
"acorn-import-assertions": "^1.9.0", "acorn-import-assertions": "^1.9.0",
"admin-lte": "^2.4.18", "admin-lte": "^2.4.18",
"ajv": "^6.12.6", "ajv": "^6.12.6",
"alpinejs": "^3.13.10",
"blueimp-file-upload": "^9.34.0", "blueimp-file-upload": "^9.34.0",
"bootstrap": "^3.4.1", "bootstrap": "^3.4.1",
"bootstrap-colorpicker": "^2.5.3", "bootstrap-colorpicker": "^2.5.3",
@ -2312,17 +2311,6 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@vue/reactivity": {
"version": "3.1.5",
"license": "MIT",
"dependencies": {
"@vue/shared": "3.1.5"
}
},
"node_modules/@vue/shared": {
"version": "3.1.5",
"license": "MIT"
},
"node_modules/@webassemblyjs/ast": { "node_modules/@webassemblyjs/ast": {
"version": "1.12.1", "version": "1.12.1",
"license": "MIT", "license": "MIT",
@ -2662,14 +2650,6 @@
"prettier": "^2" "prettier": "^2"
} }
}, },
"node_modules/alpinejs": {
"version": "3.13.10",
"resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.13.10.tgz",
"integrity": "sha512-86RB307VWICex0vG15Eq0x058cNNsvS57ohrjN6n/TJAVSFV+zXOK/E34nNHDHc6Poq+yTNCLqEzPqEkRBTMRQ==",
"dependencies": {
"@vue/reactivity": "~3.1.1"
}
},
"node_modules/ansi-escapes": { "node_modules/ansi-escapes": {
"version": "4.3.2", "version": "4.3.2",
"dev": true, "dev": true,

View file

@ -30,7 +30,6 @@
"acorn-import-assertions": "^1.9.0", "acorn-import-assertions": "^1.9.0",
"admin-lte": "^2.4.18", "admin-lte": "^2.4.18",
"ajv": "^6.12.6", "ajv": "^6.12.6",
"alpinejs": "^3.13.10",
"blueimp-file-upload": "^9.34.0", "blueimp-file-upload": "^9.34.0",
"bootstrap": "^3.4.1", "bootstrap": "^3.4.1",
"bootstrap-colorpicker": "^2.5.3", "bootstrap-colorpicker": "^2.5.3",

10792
public/vendor/livewire/livewire.esm.js vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

103
public/vendor/livewire/livewire.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1,2 @@
{"/livewire.js":"/livewire.js?id=90730a3b0e7144480175"}
{"/livewire.js":"87e1046f"}

View file

@ -610,24 +610,27 @@ function htmlEntities(str) {
* *
* 1. Set the class of your select2 elements to 'livewire-select2'). * 1. Set the class of your select2 elements to 'livewire-select2').
* 2. Name your element to match a property in your Livewire component * 2. Name your element to match a property in your Livewire component
* 3. Add an attribute called 'data-livewire-component' that points to $_instance->id (via `{{ }}` if you're in a blade, * 3. Add an attribute called 'data-livewire-component' that points to $this->getId() (via `{{ }}` if you're in a blade,
* or just $_instance->id if not). * or just $this->getId() if not).
*/ */
$(function () { document.addEventListener('livewire:init', () => {
$('.livewire-select2').select2() $('.livewire-select2').select2()
$(document).on('select2:select', '.livewire-select2', function (event) { $(document).on('select2:select', '.livewire-select2', function (event) {
var target = $(event.target) var target = $(event.target)
if(!event.target.name || !target.data('livewire-component')) { if(!event.target.name || !target.data('livewire-component')) {
console.error("You need to set both name (which should match a Livewire property) and data-livewire-component on your Livewire-ed select2 elements!") console.error("You need to set both name (which should match a Livewire property) and data-livewire-component on your Livewire-ed select2 elements!")
console.error("For data-livewire-component, you probably want to use $_instance->id or {{ $_instance->id }}, as appropriate") console.error("For data-livewire-component, you probably want to use $this->getId() or {{ $this->getId() }}, as appropriate")
return false return false
} }
window.livewire.find(target.data('livewire-component')).set(event.target.name, this.options[this.selectedIndex].value) Livewire.find(target.data('livewire-component')).set(event.target.name, this.options[this.selectedIndex].value)
})
window.livewire.hook('message.processed', function (el,component) {
$('.livewire-select2').select2();
}); });
}) Livewire.hook('request', ({succeed}) => {
succeed(() => {
queueMicrotask(() => {
$('.livewire-select2').select2();
});
});
});
});

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'رسالة استثناء: :message',
'exception_trace' => 'تتبع الإستثناء: :trace',
'exception_message_title' => 'رسالة استثناء',
'exception_trace_title' => 'تتبع الإستثناء',
'backup_failed_subject' => 'أخفق النسخ الاحتياطي لل :application_name',
'backup_failed_body' => 'مهم: حدث خطأ أثناء النسخ الاحتياطي :application_name',
'backup_successful_subject' => 'نسخ احتياطي جديد ناجح ل :application_name',
'backup_successful_subject_title' => 'نجاح النسخ الاحتياطي الجديد!',
'backup_successful_body' => 'أخبار عظيمة، نسخة احتياطية جديدة ل :application_name تم إنشاؤها بنجاح على القرص المسمى :disk_name.',
'cleanup_failed_subject' => 'فشل تنظيف النسخ الاحتياطي للتطبيق :application_name .',
'cleanup_failed_body' => 'حدث خطأ أثناء تنظيف النسخ الاحتياطية ل :application_name',
'cleanup_successful_subject' => 'تنظيف النسخ الاحتياطية ل :application_name تمت بنجاح',
'cleanup_successful_subject_title' => 'تنظيف النسخ الاحتياطية تم بنجاح!',
'cleanup_successful_body' => 'تنظيف النسخ الاحتياطية ل :application_name على القرص المسمى :disk_name تم بنجاح.',
'healthy_backup_found_subject' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name صحية',
'healthy_backup_found_subject_title' => 'النسخ الاحتياطية ل :application_name صحية',
'healthy_backup_found_body' => 'تعتبر النسخ الاحتياطية ل :application_name صحية. عمل جيد!',
'unhealthy_backup_found_subject' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية',
'unhealthy_backup_found_subject_title' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية. :problem',
'unhealthy_backup_found_body' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name غير صحية.',
'unhealthy_backup_found_not_reachable' => 'لا يمكن الوصول إلى وجهة النسخ الاحتياطي. :error',
'unhealthy_backup_found_empty' => 'لا توجد نسخ احتياطية لهذا التطبيق على الإطلاق.',
'unhealthy_backup_found_old' => 'تم إنشاء أحدث النسخ الاحتياطية في :date وتعتبر قديمة جدا.',
'unhealthy_backup_found_unknown' => 'عذرا، لا يمكن تحديد سبب دقيق.',
'unhealthy_backup_found_full' => 'النسخ الاحتياطية تستخدم الكثير من التخزين. الاستخدام الحالي هو :disk_usage وهو أعلى من الحد المسموح به من :disk_limit.',
'no_backups_info' => 'لم يتم عمل نسخ احتياطية حتى الآن',
'application_name' => 'اسم التطبيق',
'backup_name' => 'اسم النسخ الاحتياطي',
'disk' => 'القرص',
'newest_backup_size' => 'أحدث حجم للنسخ الاحتياطي',
'number_of_backups' => 'عدد النسخ الاحتياطية',
'total_storage_used' => 'إجمالي مساحة التخزين المستخدمة',
'newest_backup_date' => 'أحدث تاريخ النسخ الاحتياطي',
'oldest_backup_date' => 'أقدم تاريخ نسخ احتياطي',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Съобщение за изключение: :message',
'exception_trace' => 'Проследяване на изключение: :trace',
'exception_message_title' => 'Съобщение за изключение',
'exception_trace_title' => 'Проследяване на изключение',
'backup_failed_subject' => 'Неуспешно резервно копие на :application_name',
'backup_failed_body' => 'Важно: Възникна грешка при архивиране на :application_name',
'backup_successful_subject' => 'Успешно ново резервно копие на :application_name',
'backup_successful_subject_title' => 'Успешно ново резервно копие!',
'backup_successful_body' => 'Чудесни новини, ново резервно копие на :application_name беше успешно създадено на диска с име :disk_name.',
'cleanup_failed_subject' => 'Почистването на резервните копия на :application_name не бе успешно.',
'cleanup_failed_body' => 'Възникна грешка при почистването на резервните копия на :application_name',
'cleanup_successful_subject' => 'Почистването на архивите на :application_name е успешно',
'cleanup_successful_subject_title' => 'Почистването на резервните копия е успешно!',
'cleanup_successful_body' => 'Почистването на резервни копия на :application_name на диска с име :disk_name беше успешно.',
'healthy_backup_found_subject' => 'Резервните копия за :application_name на диск :disk_name са здрави',
'healthy_backup_found_subject_title' => 'Резервните копия за :application_name са здрави',
'healthy_backup_found_body' => 'Резервните копия за :application_name се считат за здрави. Добра работа!',
'unhealthy_backup_found_subject' => 'Важно: Резервните копия за :application_name не са здрави',
'unhealthy_backup_found_subject_title' => 'Важно: Резервните копия за :application_name не са здрави. :проблем',
'unhealthy_backup_found_body' => 'Резервните копия за :application_name на диск :disk_name не са здрави.',
'unhealthy_backup_found_not_reachable' => 'Дестинацията за резервни копия не може да бъде достигната. :грешка',
'unhealthy_backup_found_empty' => 'Изобщо няма резервни копия на това приложение.',
'unhealthy_backup_found_old' => 'Последното резервно копие, направено на :date, се счита за твърде старо.',
'unhealthy_backup_found_unknown' => 'За съжаление не може да се определи точна причина.',
'unhealthy_backup_found_full' => 'Резервните копия използват твърде много място за съхранение. Текущото използване е :disk_usage, което е по-високо от разрешеното ограничение на :disk_limit.',
'no_backups_info' => 'Все още не са правени резервни копия',
'application_name' => 'Име на приложението',
'backup_name' => 'Име на резервно копие',
'disk' => 'Диск',
'newest_backup_size' => 'Най-новият размер на резервно копие',
'number_of_backups' => 'Брой резервни копия',
'total_storage_used' => 'Общо използвано дисково пространство',
'newest_backup_date' => 'Най-нова дата на резервно копие',
'oldest_backup_date' => 'Най-старата дата на резервно копие',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'এক্সসেপশন বার্তা: :message',
'exception_trace' => 'এক্সসেপশন ট্রেস: :trace',
'exception_message_title' => 'এক্সসেপশন message',
'exception_trace_title' => 'এক্সসেপশন ট্রেস',
'backup_failed_subject' => ':application_name এর ব্যাকআপ ব্যর্থ হয়েছে।',
'backup_failed_body' => 'গুরুত্বপূর্ণঃ :application_name ব্যাক আপ করার সময় একটি ত্রুটি ঘটেছে।',
'backup_successful_subject' => ':application_name এর নতুন ব্যাকআপ সফল হয়েছে।',
'backup_successful_subject_title' => 'নতুন ব্যাকআপ সফল হয়েছে!',
'backup_successful_body' => 'খুশির খবর, :application_name এর নতুন ব্যাকআপ :disk_name ডিস্কে সফলভাবে তৈরি হয়েছে।',
'cleanup_failed_subject' => ':application_name ব্যাকআপগুলি সাফ করতে ব্যর্থ হয়েছে।',
'cleanup_failed_body' => ':application_name ব্যাকআপগুলি সাফ করার সময় একটি ত্রুটি ঘটেছে।',
'cleanup_successful_subject' => ':application_name এর ব্যাকআপগুলি সফলভাবে সাফ করা হয়েছে।',
'cleanup_successful_subject_title' => 'ব্যাকআপগুলি সফলভাবে সাফ করা হয়েছে!',
'cleanup_successful_body' => ':application_name এর ব্যাকআপগুলি :disk_name ডিস্ক থেকে সফলভাবে সাফ করা হয়েছে।',
'healthy_backup_found_subject' => ':application_name এর ব্যাকআপগুলি :disk_name ডিস্কে স্বাস্থ্যকর অবস্থায় আছে।',
'healthy_backup_found_subject_title' => ':application_name এর ব্যাকআপগুলি স্বাস্থ্যকর অবস্থায় আছে।',
'healthy_backup_found_body' => ':application_name এর ব্যাকআপগুলি স্বাস্থ্যকর বিবেচনা করা হচ্ছে। Good job!',
'unhealthy_backup_found_subject' => 'গুরুত্বপূর্ণঃ :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে।',
'unhealthy_backup_found_subject_title' => 'গুরুত্বপূর্ণঃ :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে। :problem',
'unhealthy_backup_found_body' => ':disk_name ডিস্কের :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে।',
'unhealthy_backup_found_not_reachable' => 'ব্যাকআপ গন্তব্যে পৌঁছানো যায় নি। :error',
'unhealthy_backup_found_empty' => 'এই অ্যাপ্লিকেশনটির কোনও ব্যাকআপ নেই।',
'unhealthy_backup_found_old' => 'সর্বশেষ ব্যাকআপ যেটি :date এই তারিখে করা হয়েছে, সেটি খুব পুরানো।',
'unhealthy_backup_found_unknown' => 'দুঃখিত, সঠিক কারণ নির্ধারণ করা সম্ভব হয়নি।',
'unhealthy_backup_found_full' => 'ব্যাকআপগুলি অতিরিক্ত স্টোরেজ ব্যবহার করছে। বর্তমান ব্যবহারের পরিমান :disk_usage যা অনুমোদিত সীমা :disk_limit এর বেশি।',
'no_backups_info' => 'কোনো ব্যাকআপ এখনও তৈরি হয়নি',
'application_name' => 'আবেদনের নাম',
'backup_name' => 'ব্যাকআপের নাম',
'disk' => 'ডিস্ক',
'newest_backup_size' => 'নতুন ব্যাকআপ আকার',
'number_of_backups' => 'ব্যাকআপের সংখ্যা',
'total_storage_used' => 'ব্যবহৃত মোট সঞ্চয়স্থান',
'newest_backup_date' => 'নতুন ব্যাকআপের তারিখ',
'oldest_backup_date' => 'পুরানো ব্যাকআপের তারিখ',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Zpráva výjimky: :message',
'exception_trace' => 'Stopa výjimky: :trace',
'exception_message_title' => 'Zpráva výjimky',
'exception_trace_title' => 'Stopa výjimky',
'backup_failed_subject' => 'Záloha :application_name neuspěla',
'backup_failed_body' => 'Důležité: Při záloze :application_name se vyskytla chyba',
'backup_successful_subject' => 'Úspěšná nová záloha :application_name',
'backup_successful_subject_title' => 'Úspěšná nová záloha!',
'backup_successful_body' => 'Dobrá zpráva, na disku jménem :disk_name byla úspěšně vytvořena nová záloha :application_name.',
'cleanup_failed_subject' => 'Vyčištění záloh :application_name neuspělo.',
'cleanup_failed_body' => 'Při čištění záloh :application_name se vyskytla chyba',
'cleanup_successful_subject' => 'Vyčištění záloh :application_name úspěšné',
'cleanup_successful_subject_title' => 'Vyčištění záloh bylo úspěšné!',
'cleanup_successful_body' => 'Vyčištění záloh :application_name na disku jménem :disk_name bylo úspěšné.',
'healthy_backup_found_subject' => 'Zálohy pro :application_name na disku :disk_name jsou zdravé',
'healthy_backup_found_subject_title' => 'Zálohy pro :application_name jsou zdravé',
'healthy_backup_found_body' => 'Zálohy pro :application_name jsou považovány za zdravé. Dobrá práce!',
'unhealthy_backup_found_subject' => 'Důležité: Zálohy pro :application_name jsou nezdravé',
'unhealthy_backup_found_subject_title' => 'Důležité: Zálohy pro :application_name jsou nezdravé. :problem',
'unhealthy_backup_found_body' => 'Zálohy pro :application_name na disku :disk_name jsou nezdravé.',
'unhealthy_backup_found_not_reachable' => 'Nelze se dostat k cíli zálohy. :error',
'unhealthy_backup_found_empty' => 'Tato aplikace nemá vůbec žádné zálohy.',
'unhealthy_backup_found_old' => 'Poslední záloha vytvořená dne :date je považována za příliš starou.',
'unhealthy_backup_found_unknown' => 'Omlouváme se, nemůžeme určit přesný důvod.',
'unhealthy_backup_found_full' => 'Zálohy zabírají příliš mnoho místa na disku. Aktuální využití disku je :disk_usage, což je vyšší než povolený limit :disk_limit.',
'no_backups_info' => 'Zatím nebyly vytvořeny žádné zálohy',
'application_name' => 'Název aplikace',
'backup_name' => 'Název zálohy',
'disk' => 'Disk',
'newest_backup_size' => 'Velikost nejnovější zálohy',
'number_of_backups' => 'Počet záloh',
'total_storage_used' => 'Celková využitá kapacita úložiště',
'newest_backup_date' => 'Datum nejnovější zálohy',
'oldest_backup_date' => 'Datum nejstarší zálohy',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Fejlbesked: :message',
'exception_trace' => 'Fejl trace: :trace',
'exception_message_title' => 'Fejlbesked',
'exception_trace_title' => 'Fejl trace',
'backup_failed_subject' => 'Backup af :application_name fejlede',
'backup_failed_body' => 'Vigtigt: Der skete en fejl under backup af :application_name',
'backup_successful_subject' => 'Ny backup af :application_name oprettet',
'backup_successful_subject_title' => 'Ny backup!',
'backup_successful_body' => 'Gode nyheder - der blev oprettet en ny backup af :application_name på disken :disk_name.',
'cleanup_failed_subject' => 'Oprydning af backups for :application_name fejlede.',
'cleanup_failed_body' => 'Der skete en fejl under oprydning af backups for :application_name',
'cleanup_successful_subject' => 'Oprydning af backups for :application_name gennemført',
'cleanup_successful_subject_title' => 'Backup oprydning gennemført!',
'cleanup_successful_body' => 'Oprydningen af backups for :application_name på disken :disk_name er gennemført.',
'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK',
'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK',
'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt gået!',
'unhealthy_backup_found_subject' => 'Vigtigt: Backups for :application_name fejlbehæftede',
'unhealthy_backup_found_subject_title' => 'Vigtigt: Backups for :application_name er fejlbehæftede. :problem',
'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er fejlbehæftede.',
'unhealthy_backup_found_not_reachable' => 'Backup destinationen kunne ikke findes. :error',
'unhealthy_backup_found_empty' => 'Denne applikation har ingen backups overhovedet.',
'unhealthy_backup_found_old' => 'Den seneste backup fra :date er for gammel.',
'unhealthy_backup_found_unknown' => 'Beklager, en præcis årsag kunne ikke findes.',
'unhealthy_backup_found_full' => 'Backups bruger for meget plads. Nuværende disk forbrug er :disk_usage, hvilket er mere end den tilladte grænse på :disk_limit.',
'no_backups_info' => 'Der blev ikke foretaget nogen sikkerhedskopier endnu',
'application_name' => 'Ansøgningens navn',
'backup_name' => 'Backup navn',
'disk' => 'Disk',
'newest_backup_size' => 'Nyeste backup-størrelse',
'number_of_backups' => 'Antal sikkerhedskopier',
'total_storage_used' => 'Samlet lagerplads brugt',
'newest_backup_date' => 'Nyeste backup-størrelse',
'oldest_backup_date' => 'Ældste backup-størrelse',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Fehlermeldung: :message',
'exception_trace' => 'Fehlerverfolgung: :trace',
'exception_message_title' => 'Fehlermeldung',
'exception_trace_title' => 'Fehlerverfolgung',
'backup_failed_subject' => 'Backup von :application_name konnte nicht erstellt werden',
'backup_failed_body' => 'Wichtig: Beim Backup von :application_name ist ein Fehler aufgetreten',
'backup_successful_subject' => 'Erfolgreiches neues Backup von :application_name',
'backup_successful_subject_title' => 'Erfolgreiches neues Backup!',
'backup_successful_body' => 'Gute Nachrichten, ein neues Backup von :application_name wurde erfolgreich erstellt und in :disk_name gepeichert.',
'cleanup_failed_subject' => 'Aufräumen der Backups von :application_name schlug fehl.',
'cleanup_failed_body' => 'Beim aufräumen der Backups von :application_name ist ein Fehler aufgetreten',
'cleanup_successful_subject' => 'Aufräumen der Backups von :application_name backups erfolgreich',
'cleanup_successful_subject_title' => 'Aufräumen der Backups erfolgreich!',
'cleanup_successful_body' => 'Aufräumen der Backups von :application_name in :disk_name war erfolgreich.',
'healthy_backup_found_subject' => 'Die Backups von :application_name in :disk_name sind gesund',
'healthy_backup_found_subject_title' => 'Die Backups von :application_name sind Gesund',
'healthy_backup_found_body' => 'Die Backups von :application_name wurden als gesund eingestuft. Gute Arbeit!',
'unhealthy_backup_found_subject' => 'Wichtig: Die Backups für :application_name sind nicht gesund',
'unhealthy_backup_found_subject_title' => 'Wichtig: Die Backups für :application_name sind ungesund. :problem',
'unhealthy_backup_found_body' => 'Die Backups für :application_name in :disk_name sind ungesund.',
'unhealthy_backup_found_not_reachable' => 'Das Backup Ziel konnte nicht erreicht werden. :error',
'unhealthy_backup_found_empty' => 'Es gibt für die Anwendung noch gar keine Backups.',
'unhealthy_backup_found_old' => 'Das letzte Backup am :date ist zu lange her.',
'unhealthy_backup_found_unknown' => 'Sorry, ein genauer Grund konnte nicht gefunden werden.',
'unhealthy_backup_found_full' => 'Die Backups verbrauchen zu viel Platz. Aktuell wird :disk_usage belegt, dass ist höher als das erlaubte Limit von :disk_limit.',
'no_backups_info' => 'Bisher keine Backups vorhanden',
'application_name' => 'Applikationsname',
'backup_name' => 'Backup Name',
'disk' => 'Speicherort',
'newest_backup_size' => 'Neuste Backup-Größe',
'number_of_backups' => 'Anzahl Backups',
'total_storage_used' => 'Gesamter genutzter Speicherplatz',
'newest_backup_date' => 'Neustes Backup',
'oldest_backup_date' => 'Ältestes Backup',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Exception message: :message',
'exception_trace' => 'Exception trace: :trace',
'exception_message_title' => 'Exception message',
'exception_trace_title' => 'Exception trace',
'backup_failed_subject' => 'Failed backup of :application_name',
'backup_failed_body' => 'Important: An error occurred while backing up :application_name',
'backup_successful_subject' => 'Successful new backup of :application_name',
'backup_successful_subject_title' => 'Successful new backup!',
'backup_successful_body' => 'Great news, a new backup of :application_name was successfully created on the disk named :disk_name.',
'cleanup_failed_subject' => 'Cleaning up the backups of :application_name failed.',
'cleanup_failed_body' => 'An error occurred while cleaning up the backups of :application_name',
'cleanup_successful_subject' => 'Clean up of :application_name backups successful',
'cleanup_successful_subject_title' => 'Clean up of backups successful!',
'cleanup_successful_body' => 'The clean up of the :application_name backups on the disk named :disk_name was successful.',
'healthy_backup_found_subject' => 'The backups for :application_name on disk :disk_name are healthy',
'healthy_backup_found_subject_title' => 'The backups for :application_name are healthy',
'healthy_backup_found_body' => 'The backups for :application_name are considered healthy. Good job!',
'unhealthy_backup_found_subject' => 'Important: The backups for :application_name are unhealthy',
'unhealthy_backup_found_subject_title' => 'Important: The backups for :application_name are unhealthy. :problem',
'unhealthy_backup_found_body' => 'The backups for :application_name on disk :disk_name are unhealthy.',
'unhealthy_backup_found_not_reachable' => 'The backup destination cannot be reached. :error',
'unhealthy_backup_found_empty' => 'There are no backups of this application at all.',
'unhealthy_backup_found_old' => 'The latest backup made on :date is considered too old.',
'unhealthy_backup_found_unknown' => 'Sorry, an exact reason cannot be determined.',
'unhealthy_backup_found_full' => 'The backups are using too much storage. Current usage is :disk_usage which is higher than the allowed limit of :disk_limit.',
'no_backups_info' => 'No backups were made yet',
'application_name' => 'Application name',
'backup_name' => 'Backup name',
'disk' => 'Disk',
'newest_backup_size' => 'Newest backup size',
'number_of_backups' => 'Number of backups',
'total_storage_used' => 'Total storage used',
'newest_backup_date' => 'Newest backup date',
'oldest_backup_date' => 'Oldest backup date',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Mensaje de la excepción: :message',
'exception_trace' => 'Traza de la excepción: :trace',
'exception_message_title' => 'Mensaje de la excepción',
'exception_trace_title' => 'Traza de la excepción',
'backup_failed_subject' => 'Copia de seguridad de :application_name fallida',
'backup_failed_body' => 'Importante: Ocurrió un error al realizar la copia de seguridad de :application_name',
'backup_successful_subject' => 'Se completó con éxito la copia de seguridad de :application_name',
'backup_successful_subject_title' => '¡Nueva copia de seguridad creada con éxito!',
'backup_successful_body' => 'Buenas noticias, una nueva copia de seguridad de :application_name fue creada con éxito en el disco llamado :disk_name.',
'cleanup_failed_subject' => 'La limpieza de copias de seguridad de :application_name falló.',
'cleanup_failed_body' => 'Ocurrió un error mientras se realizaba la limpieza de copias de seguridad de :application_name',
'cleanup_successful_subject' => 'La limpieza de copias de seguridad de :application_name se completó con éxito',
'cleanup_successful_subject_title' => '!Limpieza de copias de seguridad completada con éxito!',
'cleanup_successful_body' => 'La limpieza de copias de seguridad de :application_name en el disco llamado :disk_name se completo con éxito.',
'healthy_backup_found_subject' => 'Las copias de seguridad de :application_name en el disco :disk_name están en buen estado',
'healthy_backup_found_subject_title' => 'Las copias de seguridad de :application_name están en buen estado',
'healthy_backup_found_body' => 'Las copias de seguridad de :application_name se consideran en buen estado. ¡Buen trabajo!',
'unhealthy_backup_found_subject' => 'Importante: Las copias de seguridad de :application_name están en mal estado',
'unhealthy_backup_found_subject_title' => 'Importante: Las copias de seguridad de :application_name están en mal estado. :problem',
'unhealthy_backup_found_body' => 'Las copias de seguridad de :application_name en el disco :disk_name están en mal estado.',
'unhealthy_backup_found_not_reachable' => 'No se puede acceder al destino de la copia de seguridad. :error',
'unhealthy_backup_found_empty' => 'No existe ninguna copia de seguridad de esta aplicación.',
'unhealthy_backup_found_old' => 'La última copia de seguriad hecha en :date es demasiado antigua.',
'unhealthy_backup_found_unknown' => 'Lo siento, no es posible determinar la razón exacta.',
'unhealthy_backup_found_full' => 'Las copias de seguridad están ocupando demasiado espacio. El espacio utilizado actualmente es :disk_usage el cual es mayor que el límite permitido de :disk_limit.',
'no_backups_info' => 'Aún no se hicieron copias de seguridad',
'application_name' => 'Nombre de la aplicación',
'backup_name' => 'Nombre de la copia de seguridad',
'disk' => 'Disco',
'newest_backup_size' => 'Tamaño de copia de seguridad más reciente',
'number_of_backups' => 'Número de copias de seguridad',
'total_storage_used' => 'Almacenamiento total utilizado',
'newest_backup_date' => 'Fecha de la copia de seguridad más reciente',
'oldest_backup_date' => 'Fecha de la copia de seguridad más antigua',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'پیغام خطا: :message',
'exception_trace' => 'جزییات خطا: :trace',
'exception_message_title' => 'پیغام خطا',
'exception_trace_title' => 'جزییات خطا',
'backup_failed_subject' => 'پشتیبان‌گیری :application_name با خطا مواجه شد.',
'backup_failed_body' => 'پیغام مهم: هنگام پشتیبان‌گیری از :application_name خطایی رخ داده است. ',
'backup_successful_subject' => 'نسخه پشتیبان جدید :application_name با موفقیت ساخته شد.',
'backup_successful_subject_title' => 'پشتیبان‌گیری موفق!',
'backup_successful_body' => 'خبر خوب، به تازگی نسخه پشتیبان :application_name روی دیسک :disk_name با موفقیت ساخته شد. ',
'cleanup_failed_subject' => 'پاک‌‌سازی نسخه پشتیبان :application_name انجام نشد.',
'cleanup_failed_body' => 'هنگام پاک‌سازی نسخه پشتیبان :application_name خطایی رخ داده است.',
'cleanup_successful_subject' => 'پاک‌سازی نسخه پشتیبان :application_name با موفقیت انجام شد.',
'cleanup_successful_subject_title' => 'پاک‌سازی نسخه پشتیبان!',
'cleanup_successful_body' => 'پاک‌سازی نسخه پشتیبان :application_name روی دیسک :disk_name با موفقیت انجام شد.',
'healthy_backup_found_subject' => 'نسخه پشتیبان :application_name روی دیسک :disk_name سالم بود.',
'healthy_backup_found_subject_title' => 'نسخه پشتیبان :application_name سالم بود.',
'healthy_backup_found_body' => 'نسخه پشتیبان :application_name به نظر سالم میاد. دمت گرم!',
'unhealthy_backup_found_subject' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود.',
'unhealthy_backup_found_subject_title' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود. :problem',
'unhealthy_backup_found_body' => 'نسخه پشتیبان :application_name روی دیسک :disk_name سالم نبود.',
'unhealthy_backup_found_not_reachable' => 'مقصد پشتیبان‌گیری در دسترس نبود. :error',
'unhealthy_backup_found_empty' => 'برای این برنامه هیچ نسخه پشتیبانی وجود ندارد.',
'unhealthy_backup_found_old' => 'آخرین نسخه پشتیبان برای تاریخ :date است، که به نظر خیلی قدیمی میاد. ',
'unhealthy_backup_found_unknown' => 'متاسفانه دلیل دقیقی قابل تعیین نیست.',
'unhealthy_backup_found_full' => 'نسخه‌های پشتیبان حجم زیادی اشغال کرده‌اند. میزان دیسک استفاده‌شده :disk_usage است که از میزان مجاز :disk_limit فراتر رفته است. ',
'no_backups_info' => 'هنوز نسخه پشتیبان تهیه نشده است',
'application_name' => 'نام نرم‌افزار',
'backup_name' => 'نام نسخه پشتیبان',
'disk' => 'دیسک',
'newest_backup_size' => 'اندازه جدیدترین نسخه پشتیبان',
'number_of_backups' => 'تعداد نسخه‌های پشتیبان',
'total_storage_used' => 'کل فضای ذخیره‌سازی استفاده‌شده',
'newest_backup_date' => 'تاریخ جدیدترین نسخه پشتیبان',
'oldest_backup_date' => 'تاریخ قدیمی‌ترین نسخه پشتیبان',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Virheilmoitus: :message',
'exception_trace' => 'Virhe, jäljitys: :trace',
'exception_message_title' => 'Virheilmoitus',
'exception_trace_title' => 'Virheen jäljitys',
'backup_failed_subject' => ':application_name varmuuskopiointi epäonnistui',
'backup_failed_body' => 'HUOM!: :application_name varmuuskoipionnissa tapahtui virhe',
'backup_successful_subject' => ':application_name varmuuskopioitu onnistuneesti',
'backup_successful_subject_title' => 'Uusi varmuuskopio!',
'backup_successful_body' => 'Hyviä uutisia! :application_name on varmuuskopioitu levylle :disk_name.',
'cleanup_failed_subject' => ':application_name varmuuskopioiden poistaminen epäonnistui.',
'cleanup_failed_body' => ':application_name varmuuskopioiden poistamisessa tapahtui virhe.',
'cleanup_successful_subject' => ':application_name varmuuskopiot poistettu onnistuneesti',
'cleanup_successful_subject_title' => 'Varmuuskopiot poistettu onnistuneesti!',
'cleanup_successful_body' => ':application_name varmuuskopiot poistettu onnistuneesti levyltä :disk_name.',
'healthy_backup_found_subject' => ':application_name varmuuskopiot levyllä :disk_name ovat kunnossa',
'healthy_backup_found_subject_title' => ':application_name varmuuskopiot ovat kunnossa',
'healthy_backup_found_body' => ':application_name varmuuskopiot ovat kunnossa. Hieno homma!',
'unhealthy_backup_found_subject' => 'HUOM!: :application_name varmuuskopiot ovat vialliset',
'unhealthy_backup_found_subject_title' => 'HUOM!: :application_name varmuuskopiot ovat vialliset. :problem',
'unhealthy_backup_found_body' => ':application_name varmuuskopiot levyllä :disk_name ovat vialliset.',
'unhealthy_backup_found_not_reachable' => 'Varmuuskopioiden kohdekansio ei ole saatavilla. :error',
'unhealthy_backup_found_empty' => 'Tästä sovelluksesta ei ole varmuuskopioita.',
'unhealthy_backup_found_old' => 'Viimeisin varmuuskopio, luotu :date, on liian vanha.',
'unhealthy_backup_found_unknown' => 'Virhe, tarkempaa tietoa syystä ei valitettavasti ole saatavilla.',
'unhealthy_backup_found_full' => 'Varmuuskopiot vievät liikaa levytilaa. Tällä hetkellä käytössä :disk_usage, mikä on suurempi kuin sallittu tilavuus (:disk_limit).',
'no_backups_info' => 'Varmuuskopioita ei vielä tehty',
'application_name' => 'Sovelluksen nimi',
'backup_name' => 'Varmuuskopion nimi',
'disk' => 'Levy',
'newest_backup_size' => 'Uusin varmuuskopion koko',
'number_of_backups' => 'Varmuuskopioiden määrä',
'total_storage_used' => 'Käytetty tallennustila yhteensä',
'newest_backup_date' => 'Uusin varmuuskopion koko',
'oldest_backup_date' => 'Vanhin varmuuskopion koko',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Message de l\'exception : :message',
'exception_trace' => 'Trace de l\'exception : :trace',
'exception_message_title' => 'Message de l\'exception',
'exception_trace_title' => 'Trace de l\'exception',
'backup_failed_subject' => 'Échec de la sauvegarde de :application_name',
'backup_failed_body' => 'Important : Une erreur est survenue lors de la sauvegarde de :application_name',
'backup_successful_subject' => 'Succès de la sauvegarde de :application_name',
'backup_successful_subject_title' => 'Sauvegarde créée avec succès !',
'backup_successful_body' => 'Bonne nouvelle, une nouvelle sauvegarde de :application_name a été créée avec succès sur le disque nommé :disk_name.',
'cleanup_failed_subject' => 'Le nettoyage des sauvegardes de :application_name a echoué.',
'cleanup_failed_body' => 'Une erreur est survenue lors du nettoyage des sauvegardes de :application_name',
'cleanup_successful_subject' => 'Succès du nettoyage des sauvegardes de :application_name',
'cleanup_successful_subject_title' => 'Sauvegardes nettoyées avec succès !',
'cleanup_successful_body' => 'Le nettoyage des sauvegardes de :application_name sur le disque nommé :disk_name a été effectué avec succès.',
'healthy_backup_found_subject' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont saines',
'healthy_backup_found_subject_title' => 'Les sauvegardes pour :application_name sont saines',
'healthy_backup_found_body' => 'Les sauvegardes pour :application_name sont considérées saines. Bon travail !',
'unhealthy_backup_found_subject' => 'Important : Les sauvegardes pour :application_name sont corrompues',
'unhealthy_backup_found_subject_title' => 'Important : Les sauvegardes pour :application_name sont corrompues. :problem',
'unhealthy_backup_found_body' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont corrompues.',
'unhealthy_backup_found_not_reachable' => 'La destination de la sauvegarde n\'est pas accessible. :error',
'unhealthy_backup_found_empty' => 'Il n\'y a aucune sauvegarde pour cette application.',
'unhealthy_backup_found_old' => 'La dernière sauvegarde du :date est considérée trop vieille.',
'unhealthy_backup_found_unknown' => 'Désolé, une raison exacte ne peut être déterminée.',
'unhealthy_backup_found_full' => 'Les sauvegardes utilisent trop d\'espace disque. L\'utilisation actuelle est de :disk_usage alors que la limite autorisée est de :disk_limit.',
'no_backups_info' => 'Aucune sauvegarde n\'a encore été effectuée',
'application_name' => 'Nom de l\'application',
'backup_name' => 'Nom de la sauvegarde',
'disk' => 'Disque',
'newest_backup_size' => 'Taille de la sauvegarde la plus récente',
'number_of_backups' => 'Nombre de sauvegardes',
'total_storage_used' => 'Stockage total utilisé',
'newest_backup_date' => 'Date de la sauvegarde la plus récente',
'oldest_backup_date' => 'Date de la sauvegarde la plus ancienne',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'הודעת חריגה: :message',
'exception_trace' => 'מעקב חריגה: :trace',
'exception_message_title' => 'הודעת חריגה',
'exception_trace_title' => 'מעקב חריגה',
'backup_failed_subject' => 'כשל בגיבוי של :application_name',
'backup_failed_body' => 'חשוב: אירעה שגיאה במהלך גיבוי היישום :application_name',
'backup_successful_subject' => 'גיבוי חדש מוצלח של :application_name',
'backup_successful_subject_title' => 'גיבוי חדש מוצלח!',
'backup_successful_body' => 'חדשות טובות, גיבוי חדש של :application_name נוצר בהצלחה על הדיסק בשם :disk_name.',
'cleanup_failed_subject' => 'נכשל בניקוי הגיבויים של :application_name',
'cleanup_failed_body' => 'אירעה שגיאה במהלך ניקוי הגיבויים של :application_name',
'cleanup_successful_subject' => 'ניקוי הגיבויים של :application_name בוצע בהצלחה',
'cleanup_successful_subject_title' => 'ניקוי הגיבויים בוצע בהצלחה!',
'cleanup_successful_body' => 'ניקוי הגיבויים של :application_name על הדיסק בשם :disk_name בוצע בהצלחה.',
'healthy_backup_found_subject' => 'הגיבויים של :application_name על הדיסק :disk_name תקינים',
'healthy_backup_found_subject_title' => 'הגיבויים של :application_name תקינים',
'healthy_backup_found_body' => 'הגיבויים של :application_name נחשבים לתקינים. עבודה טובה!',
'unhealthy_backup_found_subject' => 'חשוב: הגיבויים של :application_name אינם תקינים',
'unhealthy_backup_found_subject_title' => 'חשוב: הגיבויים של :application_name אינם תקינים. :problem',
'unhealthy_backup_found_body' => 'הגיבויים של :application_name על הדיסק :disk_name אינם תקינים.',
'unhealthy_backup_found_not_reachable' => 'לא ניתן להגיע ליעד הגיבוי. :error',
'unhealthy_backup_found_empty' => 'אין גיבויים של היישום הזה בכלל.',
'unhealthy_backup_found_old' => 'הגיבוי האחרון שנעשה בתאריך :date נחשב כישן מדי.',
'unhealthy_backup_found_unknown' => 'מצטערים, לא ניתן לקבוע סיבה מדויקת.',
'unhealthy_backup_found_full' => 'הגיבויים משתמשים בשטח אחסון רב מידי. שימוש הנוכחי הוא :disk_usage, שגבול המותר הוא :disk_limit.',
'no_backups_info' => 'לא נעשו עדיין גיבויים',
'application_name' => 'שם היישום',
'backup_name' => 'שם הגיבוי',
'disk' => 'דיסק',
'newest_backup_size' => 'גודל הגיבוי החדש ביותר',
'number_of_backups' => 'מספר הגיבויים',
'total_storage_used' => 'סך האחסון המופעל',
'newest_backup_date' => 'תאריך הגיבוי החדש ביותר',
'oldest_backup_date' => 'תאריך הגיבוי הישן ביותר',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'अपवाद संदेश: :message',
'exception_trace' => 'अपवाद निशान: :trace',
'exception_message_title' => 'अपवादी संदेश',
'exception_trace_title' => 'अपवाद निशान',
'backup_failed_subject' => ':application_name का बैकअप असफल रहा',
'backup_failed_body' => 'जरूरी सुचना: :application_name का बैकअप लेते समय असफल रहे',
'backup_successful_subject' => ':application_name का बैकअप सफल रहा',
'backup_successful_subject_title' => 'बैकअप सफल रहा!',
'backup_successful_body' => 'खुशखबर, :application_name का बैकअप :disk_name पर संग्रहित करने मे सफल रहे.',
'cleanup_failed_subject' => ':application_name के बैकअप की सफाई असफल रही.',
'cleanup_failed_body' => ':application_name के बैकअप की सफाई करते समय कुछ बाधा आयी है.',
'cleanup_successful_subject' => ':application_name के बैकअप की सफाई सफल रही',
'cleanup_successful_subject_title' => 'बैकअप की सफाई सफल रही!',
'cleanup_successful_body' => ':application_name का बैकअप जो :disk_name नाम की डिस्क पर संग्रहित है, उसकी सफाई सफल रही.',
'healthy_backup_found_subject' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप स्वस्थ है',
'healthy_backup_found_subject_title' => ':application_name के सभी बैकअप स्वस्थ है',
'healthy_backup_found_body' => 'बहुत बढ़िया! :application_name के सभी बैकअप स्वस्थ है.',
'unhealthy_backup_found_subject' => 'जरूरी सुचना : :application_name के बैकअप अस्वस्थ है',
'unhealthy_backup_found_subject_title' => 'जरूरी सुचना : :application_name के बैकअप :problem के बजेसे अस्वस्थ है',
'unhealthy_backup_found_body' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप अस्वस्थ है',
'unhealthy_backup_found_not_reachable' => ':error के बजेसे बैकअप की मंजिल तक पोहोच नहीं सकते.',
'unhealthy_backup_found_empty' => 'इस एप्लीकेशन का कोई भी बैकअप नहीं है.',
'unhealthy_backup_found_old' => 'हालहीमें :date को लिया हुआ बैकअप बहुत पुराना है.',
'unhealthy_backup_found_unknown' => 'माफ़ कीजिये, सही कारण निर्धारित नहीं कर सकते.',
'unhealthy_backup_found_full' => 'सभी बैकअप बहुत ज्यादा जगह का उपयोग कर रहे है. फ़िलहाल सभी बैकअप :disk_usage जगह का उपयोग कर रहे है, जो की :disk_limit अनुमति सीमा से अधिक का है.',
'no_backups_info' => 'अभी तक कोई बैकअप नहीं बनाया गया था',
'application_name' => 'आवेदन का नाम',
'backup_name' => 'बैकअप नाम',
'disk' => 'डिस्क',
'newest_backup_size' => 'नवीनतम बैकअप आकार',
'number_of_backups' => 'बैकअप की संख्या',
'total_storage_used' => 'उपयोग किया गया कुल संग्रहण',
'newest_backup_date' => 'नवीनतम बैकअप आकार',
'oldest_backup_date' => 'सबसे पुराना बैकअप आकार',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Greška: :message',
'exception_trace' => 'Praćenje greške: :trace',
'exception_message_title' => 'Greška',
'exception_trace_title' => 'Praćenje greške',
'backup_failed_subject' => 'Neuspješno sigurnosno kopiranje za :application_name',
'backup_failed_body' => 'Važno: Došlo je do greške prilikom sigurnosnog kopiranja za :application_name',
'backup_successful_subject' => 'Uspješno sigurnosno kopiranje za :application_name',
'backup_successful_subject_title' => 'Uspješno sigurnosno kopiranje!',
'backup_successful_body' => 'Nova sigurnosna kopija za :application_name je uspješno spremljena na disk :disk_name.',
'cleanup_failed_subject' => 'Neuspješno čišćenje sigurnosnih kopija za :application_name',
'cleanup_failed_body' => 'Došlo je do greške prilikom čišćenja sigurnosnih kopija za :application_name',
'cleanup_successful_subject' => 'Uspješno čišćenje sigurnosnih kopija za :application_name',
'cleanup_successful_subject_title' => 'Uspješno čišćenje sigurnosnih kopija!',
'cleanup_successful_body' => 'Sigurnosne kopije za :application_name su uspješno očišćene s diska :disk_name.',
'healthy_backup_found_subject' => 'Sigurnosne kopije za :application_name na disku :disk_name su zdrave',
'healthy_backup_found_subject_title' => 'Sigurnosne kopije za :application_name su zdrave',
'healthy_backup_found_body' => 'Sigurnosne kopije za :application_name se smatraju zdravima. Svaka čast!',
'unhealthy_backup_found_subject' => 'Važno: Sigurnosne kopije za :application_name su nezdrave',
'unhealthy_backup_found_subject_title' => 'Važno: Sigurnosne kopije za :application_name su nezdrave. :problem',
'unhealthy_backup_found_body' => 'Sigurnosne kopije za :application_name na disku :disk_name su nezdrave.',
'unhealthy_backup_found_not_reachable' => 'Destinacija sigurnosne kopije nije dohvatljiva. :error',
'unhealthy_backup_found_empty' => 'Nijedna sigurnosna kopija ove aplikacije ne postoji.',
'unhealthy_backup_found_old' => 'Zadnja sigurnosna kopija generirana na datum :date smatra se prestarom.',
'unhealthy_backup_found_unknown' => 'Isprike, ali nije moguće odrediti razlog.',
'unhealthy_backup_found_full' => 'Sigurnosne kopije zauzimaju previše prostora. Trenutno zauzeće je :disk_usage što je više od dozvoljenog ograničenja od :disk_limit.',
'no_backups_info' => 'Nema sigurnosnih kopija',
'application_name' => 'Naziv aplikacije',
'backup_name' => 'Naziv sigurnosne kopije',
'disk' => 'Disk',
'newest_backup_size' => 'Veličina najnovije sigurnosne kopije',
'number_of_backups' => 'Broj sigurnosnih kopija',
'total_storage_used' => 'Ukupno zauzeće',
'newest_backup_date' => 'Najnovija kopija na datum',
'oldest_backup_date' => 'Najstarija kopija na datum',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Pesan pengecualian: :message',
'exception_trace' => 'Jejak pengecualian: :trace',
'exception_message_title' => 'Pesan pengecualian',
'exception_trace_title' => 'Jejak pengecualian',
'backup_failed_subject' => 'Gagal backup :application_name',
'backup_failed_body' => 'Penting: Sebuah error terjadi ketika membackup :application_name',
'backup_successful_subject' => 'Backup baru sukses dari :application_name',
'backup_successful_subject_title' => 'Backup baru sukses!',
'backup_successful_body' => 'Kabar baik, sebuah backup baru dari :application_name sukses dibuat pada disk bernama :disk_name.',
'cleanup_failed_subject' => 'Membersihkan backup dari :application_name yang gagal.',
'cleanup_failed_body' => 'Sebuah error teradi ketika membersihkan backup dari :application_name',
'cleanup_successful_subject' => 'Sukses membersihkan backup :application_name',
'cleanup_successful_subject_title' => 'Sukses membersihkan backup!',
'cleanup_successful_body' => 'Pembersihan backup :application_name pada disk bernama :disk_name telah sukses.',
'healthy_backup_found_subject' => 'Backup untuk :application_name pada disk :disk_name sehat',
'healthy_backup_found_subject_title' => 'Backup untuk :application_name sehat',
'healthy_backup_found_body' => 'Backup untuk :application_name dipertimbangkan sehat. Kerja bagus!',
'unhealthy_backup_found_subject' => 'Penting: Backup untuk :application_name tidak sehat',
'unhealthy_backup_found_subject_title' => 'Penting: Backup untuk :application_name tidak sehat. :problem',
'unhealthy_backup_found_body' => 'Backup untuk :application_name pada disk :disk_name tidak sehat.',
'unhealthy_backup_found_not_reachable' => 'Tujuan backup tidak dapat terjangkau. :error',
'unhealthy_backup_found_empty' => 'Tidak ada backup pada aplikasi ini sama sekali.',
'unhealthy_backup_found_old' => 'Backup terakhir dibuat pada :date dimana dipertimbahkan sudah sangat lama.',
'unhealthy_backup_found_unknown' => 'Maaf, sebuah alasan persisnya tidak dapat ditentukan.',
'unhealthy_backup_found_full' => 'Backup menggunakan terlalu banyak kapasitas penyimpanan. Penggunaan terkini adalah :disk_usage dimana lebih besar dari batas yang diperbolehkan yaitu :disk_limit.',
'no_backups_info' => 'Belum ada backup yang dibuat',
'application_name' => 'Nama aplikasi',
'backup_name' => 'Nama cadangan',
'disk' => 'Disk',
'newest_backup_size' => 'Ukuran cadangan terbaru',
'number_of_backups' => 'Jumlah cadangan',
'total_storage_used' => 'Total penyimpanan yang digunakan',
'newest_backup_date' => 'Ukuran cadangan terbaru',
'oldest_backup_date' => 'Ukuran cadangan tertua',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Messaggio dell\'eccezione: :message',
'exception_trace' => 'Traccia dell\'eccezione: :trace',
'exception_message_title' => 'Messaggio dell\'eccezione',
'exception_trace_title' => 'Traccia dell\'eccezione',
'backup_failed_subject' => 'Fallito il backup di :application_name',
'backup_failed_body' => 'Importante: Si è verificato un errore durante il backup di :application_name',
'backup_successful_subject' => 'Creato nuovo backup di :application_name',
'backup_successful_subject_title' => 'Nuovo backup creato!',
'backup_successful_body' => 'Grande notizia, un nuovo backup di :application_name è stato creato con successo sul disco :disk_name.',
'cleanup_failed_subject' => 'Pulizia dei backup di :application_name fallita.',
'cleanup_failed_body' => 'Si è verificato un errore durante la pulizia dei backup di :application_name',
'cleanup_successful_subject' => 'Pulizia dei backup di :application_name avvenuta con successo',
'cleanup_successful_subject_title' => 'Pulizia dei backup avvenuta con successo!',
'cleanup_successful_body' => 'La pulizia dei backup di :application_name sul disco :disk_name è avvenuta con successo.',
'healthy_backup_found_subject' => 'I backup per :application_name sul disco :disk_name sono sani',
'healthy_backup_found_subject_title' => 'I backup per :application_name sono sani',
'healthy_backup_found_body' => 'I backup per :application_name sono considerati sani. Bel Lavoro!',
'unhealthy_backup_found_subject' => 'Importante: i backup per :application_name sono corrotti',
'unhealthy_backup_found_subject_title' => 'Importante: i backup per :application_name sono corrotti. :problem',
'unhealthy_backup_found_body' => 'I backup per :application_name sul disco :disk_name sono corrotti.',
'unhealthy_backup_found_not_reachable' => 'Impossibile raggiungere la destinazione di backup. :error',
'unhealthy_backup_found_empty' => 'Non esiste alcun backup di questa applicazione.',
'unhealthy_backup_found_old' => 'L\'ultimo backup fatto il :date è considerato troppo vecchio.',
'unhealthy_backup_found_unknown' => 'Spiacenti, non è possibile determinare una ragione esatta.',
'unhealthy_backup_found_full' => 'I backup utilizzano troppa memoria. L\'utilizzo corrente è :disk_usage che è superiore al limite consentito di :disk_limit.',
'no_backups_info' => 'Non sono stati ancora effettuati backup',
'application_name' => 'Nome dell\'applicazione',
'backup_name' => 'Nome di backup',
'disk' => 'Disco',
'newest_backup_size' => 'Dimensione backup più recente',
'number_of_backups' => 'Numero di backup',
'total_storage_used' => 'Spazio di archiviazione totale utilizzato',
'newest_backup_date' => 'Data del backup più recente',
'oldest_backup_date' => 'Data del backup più vecchio',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => '例外のメッセージ: :message',
'exception_trace' => '例外の追跡: :trace',
'exception_message_title' => '例外のメッセージ',
'exception_trace_title' => '例外の追跡',
'backup_failed_subject' => ':application_name のバックアップに失敗しました。',
'backup_failed_body' => '重要: :application_name のバックアップ中にエラーが発生しました。',
'backup_successful_subject' => ':application_name のバックアップに成功しました。',
'backup_successful_subject_title' => 'バックアップに成功しました!',
'backup_successful_body' => '朗報です。ディスク :disk_name へ :application_name のバックアップが成功しました。',
'cleanup_failed_subject' => ':application_name のバックアップ削除に失敗しました。',
'cleanup_failed_body' => ':application_name のバックアップ削除中にエラーが発生しました。',
'cleanup_successful_subject' => ':application_name のバックアップ削除に成功しました。',
'cleanup_successful_subject_title' => 'バックアップ削除に成功しました!',
'cleanup_successful_body' => 'ディスク :disk_name に保存された :application_name のバックアップ削除に成功しました。',
'healthy_backup_found_subject' => 'ディスク :disk_name への :application_name のバックアップは正常です。',
'healthy_backup_found_subject_title' => ':application_name のバックアップは正常です。',
'healthy_backup_found_body' => ':application_name へのバックアップは正常です。いい仕事してますね!',
'unhealthy_backup_found_subject' => '重要: :application_name のバックアップに異常があります。',
'unhealthy_backup_found_subject_title' => '重要: :application_name のバックアップに異常があります。 :problem',
'unhealthy_backup_found_body' => ':disk_name への :application_name のバックアップに異常があります。',
'unhealthy_backup_found_not_reachable' => 'バックアップ先にアクセスできませんでした。 :error',
'unhealthy_backup_found_empty' => 'このアプリケーションのバックアップは見つかりませんでした。',
'unhealthy_backup_found_old' => ':date に保存された直近のバックアップが古すぎます。',
'unhealthy_backup_found_unknown' => '申し訳ございません。予期せぬエラーです。',
'unhealthy_backup_found_full' => 'バックアップがディスク容量を圧迫しています。現在の使用量 :disk_usage は、許可された限界値 :disk_limit を超えています。',
'no_backups_info' => 'バックアップはまだ作成されていません',
'application_name' => 'アプリケーション名',
'backup_name' => 'バックアップ名',
'disk' => 'ディスク',
'newest_backup_size' => '最新のバックアップサイズ',
'number_of_backups' => 'バックアップ数',
'total_storage_used' => '使用された合計ストレージ',
'newest_backup_date' => '最新のバックアップ日時',
'oldest_backup_date' => '最も古いバックアップ日時',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => '예외 메시지: :message',
'exception_trace' => '예외 추적: :trace',
'exception_message_title' => '예외 메시지',
'exception_trace_title' => '예외 추적',
'backup_failed_subject' => ':application_name 백업 실패',
'backup_failed_body' => '중요: :application_name 백업 중 오류 발생',
'backup_successful_subject' => ':application_name 백업 성공',
'backup_successful_subject_title' => '백업이 성공적으로 완료되었습니다!',
'backup_successful_body' => '좋은 소식입니다. :disk_name 디스크에 :application_name 백업이 성공적으로 완료되었습니다.',
'cleanup_failed_subject' => ':application_name 백업 정리 실패',
'cleanup_failed_body' => ':application_name 백업 정리 중 오류 발생',
'cleanup_successful_subject' => ':application_name 백업 정리 성공',
'cleanup_successful_subject_title' => '백업 정리가 성공적으로 완료되었습니다!',
'cleanup_successful_body' => ':disk_name 디스크에 저장된 :application_name 백업 정리가 성공적으로 완료되었습니다.',
'healthy_backup_found_subject' => ':application_name 백업은 정상입니다.',
'healthy_backup_found_subject_title' => ':application_name 백업은 정상입니다.',
'healthy_backup_found_body' => ':application_name 백업은 정상입니다. 수고하셨습니다!',
'unhealthy_backup_found_subject' => '중요: :application_name 백업에 문제가 있습니다.',
'unhealthy_backup_found_subject_title' => '중요: :application_name 백업에 문제가 있습니다. :problem',
'unhealthy_backup_found_body' => ':disk_name 디스크에 :application_name 백업에 문제가 있습니다.',
'unhealthy_backup_found_not_reachable' => '백업 위치에 액세스할 수 없습니다. :error',
'unhealthy_backup_found_empty' => '이 애플리케이션에는 백업이 없습니다.',
'unhealthy_backup_found_old' => ':date에 저장된 최신 백업이 너무 오래되었습니다.',
'unhealthy_backup_found_unknown' => '죄송합니다. 예기치 않은 오류가 발생했습니다.',
'unhealthy_backup_found_full' => '백업이 디스크 공간을 다 차지하고 있습니다. 현재 사용량 :disk_usage는 허용 한도 :disk_limit을 초과합니다.',
'no_backups_info' => '아직 백업이 생성되지 않았습니다.',
'application_name' => '애플리케이션 이름',
'backup_name' => '백업 이름',
'disk' => '디스크',
'newest_backup_size' => '최신 백업 크기',
'number_of_backups' => '백업 수',
'total_storage_used' => '총 사용 스토리지',
'newest_backup_date' => '최신 백업 날짜',
'oldest_backup_date' => '가장 오래된 백업 날짜',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Fout bericht: :message',
'exception_trace' => 'Fout trace: :trace',
'exception_message_title' => 'Fout bericht',
'exception_trace_title' => 'Fout trace',
'backup_failed_subject' => 'Back-up van :application_name mislukt',
'backup_failed_body' => 'Belangrijk: Er ging iets fout tijdens het maken van een back-up van :application_name',
'backup_successful_subject' => 'Succesvolle nieuwe back-up van :application_name',
'backup_successful_subject_title' => 'Succesvolle nieuwe back-up!',
'backup_successful_body' => 'Goed nieuws, een nieuwe back-up van :application_name was succesvol aangemaakt op de schijf genaamd :disk_name.',
'cleanup_failed_subject' => 'Het opschonen van de back-ups van :application_name is mislukt.',
'cleanup_failed_body' => 'Er ging iets fout tijdens het opschonen van de back-ups van :application_name',
'cleanup_successful_subject' => 'Opschonen van :application_name back-ups was succesvol.',
'cleanup_successful_subject_title' => 'Opschonen van back-ups was succesvol!',
'cleanup_successful_body' => 'Het opschonen van de :application_name back-ups op de schijf genaamd :disk_name was succesvol.',
'healthy_backup_found_subject' => 'De back-ups voor :application_name op schijf :disk_name zijn gezond',
'healthy_backup_found_subject_title' => 'De back-ups voor :application_name zijn gezond',
'healthy_backup_found_body' => 'De back-ups voor :application_name worden als gezond beschouwd. Goed gedaan!',
'unhealthy_backup_found_subject' => 'Belangrijk: De back-ups voor :application_name zijn niet meer gezond',
'unhealthy_backup_found_subject_title' => 'Belangrijk: De back-ups voor :application_name zijn niet gezond. :problem',
'unhealthy_backup_found_body' => 'De back-ups voor :application_name op schijf :disk_name zijn niet gezond.',
'unhealthy_backup_found_not_reachable' => 'De back-upbestemming kon niet worden bereikt. :error',
'unhealthy_backup_found_empty' => 'Er zijn geen back-ups van deze applicatie beschikbaar.',
'unhealthy_backup_found_old' => 'De laatste back-up gemaakt op :date is te oud.',
'unhealthy_backup_found_unknown' => 'Sorry, een exacte reden kon niet worden bepaald.',
'unhealthy_backup_found_full' => 'De back-ups gebruiken te veel opslagruimte. Momenteel wordt er :disk_usage gebruikt wat hoger is dan de toegestane limiet van :disk_limit.',
'no_backups_info' => 'Er zijn nog geen back-ups gemaakt',
'application_name' => 'Naam van de toepassing',
'backup_name' => 'Back-upnaam',
'disk' => 'Schijf',
'newest_backup_size' => 'Nieuwste back-upgrootte',
'number_of_backups' => 'Aantal back-ups',
'total_storage_used' => 'Totale gebruikte opslagruimte',
'newest_backup_date' => 'Datum nieuwste back-up',
'oldest_backup_date' => 'Datum oudste back-up',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Exception: :message',
'exception_trace' => 'Exception trace: :trace',
'exception_message_title' => 'Exception',
'exception_trace_title' => 'Exception trace',
'backup_failed_subject' => 'Backup feilet for :application_name',
'backup_failed_body' => 'Viktg: En feil oppstod under backing av :application_name',
'backup_successful_subject' => 'Gjennomført backup av :application_name',
'backup_successful_subject_title' => 'Gjennomført backup!',
'backup_successful_body' => 'Gode nyheter, en ny backup av :application_name ble opprettet på disken :disk_name.',
'cleanup_failed_subject' => 'Opprydding av backup for :application_name feilet.',
'cleanup_failed_body' => 'En feil oppstod under opprydding av backups for :application_name',
'cleanup_successful_subject' => 'Opprydding av backup for :application_name gjennomført',
'cleanup_successful_subject_title' => 'Opprydding av backup gjennomført!',
'cleanup_successful_body' => 'Oppryddingen av backup for :application_name på disken :disk_name har blitt gjennomført.',
'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK',
'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK',
'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt jobba!',
'unhealthy_backup_found_subject' => 'Viktig: Backups for :application_name ikke OK',
'unhealthy_backup_found_subject_title' => 'Viktig: Backups for :application_name er ikke OK. :problem',
'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er ikke OK.',
'unhealthy_backup_found_not_reachable' => 'Kunne ikke finne backup-destinasjonen. :error',
'unhealthy_backup_found_empty' => 'Denne applikasjonen mangler backups.',
'unhealthy_backup_found_old' => 'Den siste backupem fra :date er for gammel.',
'unhealthy_backup_found_unknown' => 'Beklager, kunne ikke finne nøyaktig årsak.',
'unhealthy_backup_found_full' => 'Backups bruker for mye lagringsplass. Nåværende diskbruk er :disk_usage, som er mer enn den tillatte grensen på :disk_limit.',
'no_backups_info' => 'Ingen sikkerhetskopier ble gjort ennå',
'application_name' => 'Programnavn',
'backup_name' => 'Navn på sikkerhetskopi',
'disk' => 'Disk',
'newest_backup_size' => 'Nyeste backup-størrelse',
'number_of_backups' => 'Antall sikkerhetskopier',
'total_storage_used' => 'Total lagring brukt',
'newest_backup_date' => 'Nyeste backup-størrelse',
'oldest_backup_date' => 'Eldste sikkerhetskopistørrelse',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Błąd: :message',
'exception_trace' => 'Zrzut błędu: :trace',
'exception_message_title' => 'Błąd',
'exception_trace_title' => 'Zrzut błędu',
'backup_failed_subject' => 'Tworzenie kopii zapasowej aplikacji :application_name nie powiodło się',
'backup_failed_body' => 'Ważne: Wystąpił błąd podczas tworzenia kopii zapasowej aplikacji :application_name',
'backup_successful_subject' => 'Pomyślnie utworzono kopię zapasową aplikacji :application_name',
'backup_successful_subject_title' => 'Nowa kopia zapasowa!',
'backup_successful_body' => 'Wspaniała wiadomość, nowa kopia zapasowa aplikacji :application_name została pomyślnie utworzona na dysku o nazwie :disk_name.',
'cleanup_failed_subject' => 'Czyszczenie kopii zapasowych aplikacji :application_name nie powiodło się.',
'cleanup_failed_body' => 'Wystąpił błąd podczas czyszczenia kopii zapasowej aplikacji :application_name',
'cleanup_successful_subject' => 'Kopie zapasowe aplikacji :application_name zostały pomyślnie wyczyszczone',
'cleanup_successful_subject_title' => 'Kopie zapasowe zostały pomyślnie wyczyszczone!',
'cleanup_successful_body' => 'Czyszczenie kopii zapasowych aplikacji :application_name na dysku :disk_name zakończone sukcesem.',
'healthy_backup_found_subject' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są poprawne',
'healthy_backup_found_subject_title' => 'Kopie zapasowe aplikacji :application_name są poprawne',
'healthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name są poprawne. Dobra robota!',
'unhealthy_backup_found_subject' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne',
'unhealthy_backup_found_subject_title' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne. :problem',
'unhealthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są niepoprawne.',
'unhealthy_backup_found_not_reachable' => 'Miejsce docelowe kopii zapasowej nie jest osiągalne. :error',
'unhealthy_backup_found_empty' => 'W aplikacji nie ma żadnej kopii zapasowych tej aplikacji.',
'unhealthy_backup_found_old' => 'Ostatnia kopia zapasowa wykonania dnia :date jest zbyt stara.',
'unhealthy_backup_found_unknown' => 'Niestety, nie można ustalić dokładnego błędu.',
'unhealthy_backup_found_full' => 'Kopie zapasowe zajmują zbyt dużo miejsca. Obecne użycie dysku :disk_usage jest większe od ustalonego limitu :disk_limit.',
'no_backups_info' => 'Nie utworzono jeszcze kopii zapasowych',
'application_name' => 'Nazwa aplikacji',
'backup_name' => 'Nazwa kopii zapasowej',
'disk' => 'Dysk',
'newest_backup_size' => 'Najnowszy rozmiar kopii zapasowej',
'number_of_backups' => 'Liczba kopii zapasowych',
'total_storage_used' => 'Całkowite wykorzystane miejsce',
'newest_backup_date' => 'Najnowszy rozmiar kopii zapasowej',
'oldest_backup_date' => 'Najstarszy rozmiar kopii zapasowej',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Mensagem de exceção: :message',
'exception_trace' => 'Rastreamento de exceção: :trace',
'exception_message_title' => 'Mensagem de exceção',
'exception_trace_title' => 'Rastreamento de exceção',
'backup_failed_subject' => 'Falha no backup da aplicação :application_name',
'backup_failed_body' => 'Importante: Ocorreu um erro ao fazer o backup da aplicação :application_name',
'backup_successful_subject' => 'Backup realizado com sucesso: :application_name',
'backup_successful_subject_title' => 'Backup Realizado com sucesso!',
'backup_successful_body' => 'Boas notícias, um novo backup da aplicação :application_name foi criado no disco :disk_name.',
'cleanup_failed_subject' => 'Falha na limpeza dos backups da aplicação :application_name.',
'cleanup_failed_body' => 'Um erro ocorreu ao fazer a limpeza dos backups da aplicação :application_name',
'cleanup_successful_subject' => 'Limpeza dos backups da aplicação :application_name concluída!',
'cleanup_successful_subject_title' => 'Limpeza dos backups concluída!',
'cleanup_successful_body' => 'A limpeza dos backups da aplicação :application_name no disco :disk_name foi concluída.',
'healthy_backup_found_subject' => 'Os backups da aplicação :application_name no disco :disk_name estão em dia',
'healthy_backup_found_subject_title' => 'Os backups da aplicação :application_name estão em dia',
'healthy_backup_found_body' => 'Os backups da aplicação :application_name estão em dia. Bom trabalho!',
'unhealthy_backup_found_subject' => 'Importante: Os backups da aplicação :application_name não estão em dia',
'unhealthy_backup_found_subject_title' => 'Importante: Os backups da aplicação :application_name não estão em dia. :problem',
'unhealthy_backup_found_body' => 'Os backups da aplicação :application_name no disco :disk_name não estão em dia.',
'unhealthy_backup_found_not_reachable' => 'O destino dos backups não pode ser alcançado. :error',
'unhealthy_backup_found_empty' => 'Não existem backups para essa aplicação.',
'unhealthy_backup_found_old' => 'O último backup realizado em :date é considerado muito antigo.',
'unhealthy_backup_found_unknown' => 'Desculpe, a exata razão não pode ser encontrada.',
'unhealthy_backup_found_full' => 'Os backups estão usando muito espaço de armazenamento. A utilização atual é de :disk_usage, o que é maior que o limite permitido de :disk_limit.',
'no_backups_info' => 'Nenhum backup foi feito ainda',
'application_name' => 'Nome da Aplicação',
'backup_name' => 'Nome de backup',
'disk' => 'Disco',
'newest_backup_size' => 'Tamanho do backup mais recente',
'number_of_backups' => 'Número de backups',
'total_storage_used' => 'Armazenamento total usado',
'newest_backup_date' => 'Data do backup mais recente',
'oldest_backup_date' => 'Data do backup mais antigo',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Mensagem de exceção: :message',
'exception_trace' => 'Rasto da exceção: :trace',
'exception_message_title' => 'Mensagem de exceção',
'exception_trace_title' => 'Rasto da exceção',
'backup_failed_subject' => 'Falha no backup da aplicação :application_name',
'backup_failed_body' => 'Importante: Ocorreu um erro ao executar o backup da aplicação :application_name',
'backup_successful_subject' => 'Backup realizado com sucesso: :application_name',
'backup_successful_subject_title' => 'Backup Realizado com Sucesso!',
'backup_successful_body' => 'Boas notícias, foi criado um novo backup no disco :disk_name referente à aplicação :application_name.',
'cleanup_failed_subject' => 'Falha na limpeza dos backups da aplicação :application_name.',
'cleanup_failed_body' => 'Ocorreu um erro ao executar a limpeza dos backups da aplicação :application_name',
'cleanup_successful_subject' => 'Limpeza dos backups da aplicação :application_name concluída!',
'cleanup_successful_subject_title' => 'Limpeza dos backups concluída!',
'cleanup_successful_body' => 'Concluída a limpeza dos backups da aplicação :application_name no disco :disk_name.',
'healthy_backup_found_subject' => 'Os backups da aplicação :application_name no disco :disk_name estão em dia',
'healthy_backup_found_subject_title' => 'Os backups da aplicação :application_name estão em dia',
'healthy_backup_found_body' => 'Os backups da aplicação :application_name estão em dia. Bom trabalho!',
'unhealthy_backup_found_subject' => 'Importante: Os backups da aplicação :application_name não estão em dia',
'unhealthy_backup_found_subject_title' => 'Importante: Os backups da aplicação :application_name não estão em dia. :problem',
'unhealthy_backup_found_body' => 'Os backups da aplicação :application_name no disco :disk_name não estão em dia.',
'unhealthy_backup_found_not_reachable' => 'O destino dos backups não pode ser alcançado. :error',
'unhealthy_backup_found_empty' => 'Não existem backups para essa aplicação.',
'unhealthy_backup_found_old' => 'O último backup realizado em :date é demasiado antigo.',
'unhealthy_backup_found_unknown' => 'Desculpe, impossível determinar a razão exata.',
'unhealthy_backup_found_full' => 'Os backups estão a utilizar demasiado espaço de armazenamento. A utilização atual é de :disk_usage, o que é maior que o limite permitido de :disk_limit.',
'no_backups_info' => 'Nenhum backup foi feito ainda',
'application_name' => 'Nome da Aplicação',
'backup_name' => 'Nome de backup',
'disk' => 'Disco',
'newest_backup_size' => 'Tamanho de backup mais recente',
'number_of_backups' => 'Número de backups',
'total_storage_used' => 'Armazenamento total usado',
'newest_backup_date' => 'Data de backup mais recente',
'oldest_backup_date' => 'Data de backup mais antiga',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Cu excepția mesajului: :message',
'exception_trace' => 'Urmă excepţie: :trace',
'exception_message_title' => 'Mesaj de excepție',
'exception_trace_title' => 'Urmă excepţie',
'backup_failed_subject' => 'Nu s-a putut face copie de rezervă pentru :application_name',
'backup_failed_body' => 'Important: A apărut o eroare în timpul generării copiei de rezervă pentru :application_name',
'backup_successful_subject' => 'Copie de rezervă efectuată cu succes pentru :application_name',
'backup_successful_subject_title' => 'O nouă copie de rezervă a fost efectuată cu succes!',
'backup_successful_body' => 'Vești bune, o nouă copie de rezervă pentru :application_name a fost creată cu succes pe discul cu numele :disk_name.',
'cleanup_failed_subject' => 'Curățarea copiilor de rezervă pentru :application_name nu a reușit.',
'cleanup_failed_body' => 'A apărut o eroare în timpul curățirii copiilor de rezervă pentru :application_name',
'cleanup_successful_subject' => 'Curățarea copiilor de rezervă pentru :application_name a fost făcută cu succes',
'cleanup_successful_subject_title' => 'Curățarea copiilor de rezervă a fost făcută cu succes!',
'cleanup_successful_body' => 'Curățarea copiilor de rezervă pentru :application_name de pe discul cu numele :disk_name a fost făcută cu succes.',
'healthy_backup_found_subject' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name sunt în regulă',
'healthy_backup_found_subject_title' => 'Copiile de rezervă pentru :application_name sunt în regulă',
'healthy_backup_found_body' => 'Copiile de rezervă pentru :application_name sunt considerate în regulă. Bună treabă!',
'unhealthy_backup_found_subject' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă',
'unhealthy_backup_found_subject_title' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă. :problem',
'unhealthy_backup_found_body' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name nu sunt în regulă.',
'unhealthy_backup_found_not_reachable' => 'Nu se poate ajunge la destinația copiilor de rezervă. :error',
'unhealthy_backup_found_empty' => 'Nu există copii de rezervă ale acestei aplicații.',
'unhealthy_backup_found_old' => 'Cea mai recentă copie de rezervă făcută la :date este considerată prea veche.',
'unhealthy_backup_found_unknown' => 'Ne pare rău, un motiv exact nu poate fi determinat.',
'unhealthy_backup_found_full' => 'Copiile de rezervă folosesc prea mult spațiu de stocare. Utilizarea curentă este de :disk_usage care este mai mare decât limita permisă de :disk_limit.',
'no_backups_info' => 'Nu s-au făcut încă copii de rezervă',
'application_name' => 'Numele aplicatiei',
'backup_name' => 'Numele de rezervă',
'disk' => 'Disc',
'newest_backup_size' => 'Cea mai nouă dimensiune de rezervă',
'number_of_backups' => 'Număr de copii de rezervă',
'total_storage_used' => 'Spațiu total de stocare utilizat',
'newest_backup_date' => 'Cea mai nouă dimensiune de rezervă',
'oldest_backup_date' => 'Cea mai veche dimensiune de rezervă',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Сообщение об ошибке: :message',
'exception_trace' => 'Сведения об ошибке: :trace',
'exception_message_title' => 'Сообщение об ошибке',
'exception_trace_title' => 'Сведения об ошибке',
'backup_failed_subject' => 'Не удалось сделать резервную копию :application_name',
'backup_failed_body' => 'Внимание: Произошла ошибка во время резервного копирования :application_name',
'backup_successful_subject' => 'Успешно создана новая резервная копия :application_name',
'backup_successful_subject_title' => 'Успешно создана новая резервная копия!',
'backup_successful_body' => 'Отличная новость, новая резервная копия :application_name успешно создана и сохранена на диск :disk_name.',
'cleanup_failed_subject' => 'Не удалось очистить резервные копии :application_name',
'cleanup_failed_body' => 'Произошла ошибка при очистке резервных копий :application_name',
'cleanup_successful_subject' => 'Очистка от резервных копий :application_name прошла успешно',
'cleanup_successful_subject_title' => 'Очистка резервных копий прошла успешно!',
'cleanup_successful_body' => 'Очистка от старых резервных копий :application_name на диске :disk_name прошла успешно.',
'healthy_backup_found_subject' => 'Резервные копии :application_name с диска :disk_name исправны',
'healthy_backup_found_subject_title' => 'Резервные копии :application_name исправны',
'healthy_backup_found_body' => 'Резервные копии :application_name считаются исправными. Хорошая работа!',
'unhealthy_backup_found_subject' => 'Внимание: резервные копии :application_name неисправны',
'unhealthy_backup_found_subject_title' => 'Внимание: резервные копии для :application_name неисправны. :problem',
'unhealthy_backup_found_body' => 'Резервные копии для :application_name на диске :disk_name неисправны.',
'unhealthy_backup_found_not_reachable' => 'Не удается достичь места назначения резервной копии. :error',
'unhealthy_backup_found_empty' => 'Резервные копии для этого приложения отсутствуют.',
'unhealthy_backup_found_old' => 'Последнее резервное копирование созданное :date является устаревшим.',
'unhealthy_backup_found_unknown' => 'Извините, точная причина не может быть определена.',
'unhealthy_backup_found_full' => 'Резервные копии используют слишком много памяти. Используется :disk_usage что выше допустимого предела: :disk_limit.',
'no_backups_info' => 'Резервных копий еще не было',
'application_name' => 'Имя приложения',
'backup_name' => 'Имя резервной копии',
'disk' => 'Диск',
'newest_backup_size' => 'Размер последней резервной копии',
'number_of_backups' => 'Количество резервных копий',
'total_storage_used' => 'Общий объем используемого хранилища',
'newest_backup_date' => 'Дата последней резервной копии',
'oldest_backup_date' => 'Дата самой старой резервной копии',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Hata mesajı: :message',
'exception_trace' => 'Hata izleri: :trace',
'exception_message_title' => 'Hata mesajı',
'exception_trace_title' => 'Hata izleri',
'backup_failed_subject' => 'Yedeklenemedi :application_name',
'backup_failed_body' => 'Önemli: Yedeklenirken bir hata oluştu :application_name',
'backup_successful_subject' => 'Başarılı :application_name yeni yedeklemesi',
'backup_successful_subject_title' => 'Başarılı bir yeni yedekleme!',
'backup_successful_body' => 'Harika bir haber, :application_name ait yeni bir yedekleme :disk_name adlı diskte başarıyla oluşturuldu.',
'cleanup_failed_subject' => ':application_name yedeklemeleri temizlenmesi başarısız.',
'cleanup_failed_body' => ':application_name yedeklerini temizlerken bir hata oluştu ',
'cleanup_successful_subject' => ':application_name yedeklemeleri temizlenmesi başarılı.',
'cleanup_successful_subject_title' => 'Yedeklerin temizlenmesi başarılı!',
'cleanup_successful_body' => ':application_name yedeklemeleri temizlenmesi, :disk_name diskinden silindi',
'healthy_backup_found_subject' => ':application_name yedeklenmesi, :disk_name adlı diskte sağlıklı',
'healthy_backup_found_subject_title' => ':application_name yedeklenmesi sağlıklı',
'healthy_backup_found_body' => ':application_name için yapılan yedeklemeler sağlıklı sayılır. Aferin!',
'unhealthy_backup_found_subject' => 'Önemli: :application_name için yedeklemeler sağlıksız',
'unhealthy_backup_found_subject_title' => 'Önemli: :application_name için yedeklemeler sağlıksız. :problem',
'unhealthy_backup_found_body' => 'Yedeklemeler: :application_name disk: :disk_name sağlıksız.',
'unhealthy_backup_found_not_reachable' => 'Yedekleme hedefine ulaşılamıyor. :error',
'unhealthy_backup_found_empty' => 'Bu uygulamanın yedekleri yok.',
'unhealthy_backup_found_old' => ':date tarihinde yapılan en son yedekleme çok eski kabul ediliyor.',
'unhealthy_backup_found_unknown' => 'Üzgünüm, kesin bir sebep belirlenemiyor.',
'unhealthy_backup_found_full' => 'Yedeklemeler çok fazla depolama alanı kullanıyor. Şu anki kullanım: :disk_usage, izin verilen sınırdan yüksek: :disk_limit.',
'no_backups_info' => 'Henüz yedekleme yapılmadı',
'application_name' => 'Uygulama Adı',
'backup_name' => 'Yedek adı',
'disk' => 'Disk',
'newest_backup_size' => 'En yeni yedekleme boyutu',
'number_of_backups' => 'Yedekleme sayısı',
'total_storage_used' => 'Kullanılan toplam depolama alanı',
'newest_backup_date' => 'En yeni yedekleme tarihi',
'oldest_backup_date' => 'En eski yedekleme tarihi',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => 'Повідомлення про помилку: :message',
'exception_trace' => 'Деталі помилки: :trace',
'exception_message_title' => 'Повідомлення помилки',
'exception_trace_title' => 'Деталі помилки',
'backup_failed_subject' => 'Не вдалось зробити резервну копію :application_name',
'backup_failed_body' => 'Увага: Трапилась помилка під час резервного копіювання :application_name',
'backup_successful_subject' => 'Успішне резервне копіювання :application_name',
'backup_successful_subject_title' => 'Успішно створена резервна копія!',
'backup_successful_body' => 'Чудова новина, нова резервна копія :application_name успішно створена і збережена на диск :disk_name.',
'cleanup_failed_subject' => 'Не вдалось очистити резервні копії :application_name',
'cleanup_failed_body' => 'Сталася помилка під час очищення резервних копій :application_name',
'cleanup_successful_subject' => 'Успішне очищення від резервних копій :application_name',
'cleanup_successful_subject_title' => 'Очищення резервних копій пройшло вдало!',
'cleanup_successful_body' => 'Очищенно від старих резервних копій :application_name на диску :disk_name пойшло успішно.',
'healthy_backup_found_subject' => 'Резервна копія :application_name з диску :disk_name установлена',
'healthy_backup_found_subject_title' => 'Резервна копія :application_name установлена',
'healthy_backup_found_body' => 'Резервна копія :application_name успішно установлена. Хороша робота!',
'unhealthy_backup_found_subject' => 'Увага: резервна копія :application_name не установилась',
'unhealthy_backup_found_subject_title' => 'Увага: резервна копія для :application_name не установилась. :problem',
'unhealthy_backup_found_body' => 'Резервна копія для :application_name на диску :disk_name не установилась.',
'unhealthy_backup_found_not_reachable' => 'Резервна копія не змогла установитись. :error',
'unhealthy_backup_found_empty' => 'Резервні копії для цього додатку відсутні.',
'unhealthy_backup_found_old' => 'Останнє резервне копіювання створено :date є застарілим.',
'unhealthy_backup_found_unknown' => 'Вибачте, але ми не змогли визначити точну причину.',
'unhealthy_backup_found_full' => 'Резервні копії використовують занадто багато пам`яті. Використовується :disk_usage що вище за допустиму межу :disk_limit.',
'no_backups_info' => 'Резервних копій ще не було зроблено',
'application_name' => 'Назва програми',
'backup_name' => 'Резервне ім’я',
'disk' => 'Диск',
'newest_backup_size' => 'Найновіший розмір резервної копії',
'number_of_backups' => 'Кількість резервних копій',
'total_storage_used' => 'Загальний обсяг використаного сховища',
'newest_backup_date' => 'Найновіший розмір резервної копії',
'oldest_backup_date' => 'Найстаріший розмір резервної копії',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => '异常信息: :message',
'exception_trace' => '异常跟踪: :trace',
'exception_message_title' => '异常信息',
'exception_trace_title' => '异常跟踪',
'backup_failed_subject' => ':application_name 备份失败',
'backup_failed_body' => '重要说明:备份 :application_name 时发生错误',
'backup_successful_subject' => ':application_name 备份成功',
'backup_successful_subject_title' => '备份成功!',
'backup_successful_body' => '好消息, :application_name 备份成功,位于磁盘 :disk_name 中。',
'cleanup_failed_subject' => '清除 :application_name 的备份失败。',
'cleanup_failed_body' => '清除备份 :application_name 时发生错误',
'cleanup_successful_subject' => '成功清除 :application_name 的备份',
'cleanup_successful_subject_title' => '成功清除备份!',
'cleanup_successful_body' => '成功清除 :disk_name 磁盘上 :application_name 的备份。',
'healthy_backup_found_subject' => ':disk_name 磁盘上 :application_name 的备份是健康的',
'healthy_backup_found_subject_title' => ':application_name 的备份是健康的',
'healthy_backup_found_body' => ':application_name 的备份是健康的。干的好!',
'unhealthy_backup_found_subject' => '重要说明::application_name 的备份不健康',
'unhealthy_backup_found_subject_title' => '重要说明::application_name 备份不健康。 :problem',
'unhealthy_backup_found_body' => ':disk_name 磁盘上 :application_name 的备份不健康。',
'unhealthy_backup_found_not_reachable' => '无法访问备份目标。 :error',
'unhealthy_backup_found_empty' => '根本没有此应用程序的备份。',
'unhealthy_backup_found_old' => '最近的备份创建于 :date ,太旧了。',
'unhealthy_backup_found_unknown' => '对不起,确切原因无法确定。',
'unhealthy_backup_found_full' => '备份占用了太多存储空间。当前占用了 :disk_usage ,高于允许的限制 :disk_limit。',
'no_backups_info' => '尚未进行任何备份',
'application_name' => '应用名称',
'backup_name' => '备份名称',
'disk' => '磁盘',
'newest_backup_size' => '最新备份大小',
'number_of_backups' => '备份数量',
'total_storage_used' => '使用的总存储量',
'newest_backup_date' => '最新备份大小',
'oldest_backup_date' => '最旧的备份大小',
];

View file

@ -1,45 +0,0 @@
<?php
return [
'exception_message' => '異常訊息: :message',
'exception_trace' => '異常追蹤: :trace',
'exception_message_title' => '異常訊息',
'exception_trace_title' => '異常追蹤',
'backup_failed_subject' => ':application_name 備份失敗',
'backup_failed_body' => '重要說明:備份 :application_name 時發生錯誤',
'backup_successful_subject' => ':application_name 備份成功',
'backup_successful_subject_title' => '備份成功!',
'backup_successful_body' => '好消息, :application_name 備份成功,位於磁碟 :disk_name 中。',
'cleanup_failed_subject' => '清除 :application_name 的備份失敗。',
'cleanup_failed_body' => '清除備份 :application_name 時發生錯誤',
'cleanup_successful_subject' => '成功清除 :application_name 的備份',
'cleanup_successful_subject_title' => '成功清除備份!',
'cleanup_successful_body' => '成功清除 :disk_name 磁碟上 :application_name 的備份。',
'healthy_backup_found_subject' => ':disk_name 磁碟上 :application_name 的備份是健康的',
'healthy_backup_found_subject_title' => ':application_name 的備份是健康的',
'healthy_backup_found_body' => ':application_name 的備份是健康的。幹的好!',
'unhealthy_backup_found_subject' => '重要說明::application_name 的備份不健康',
'unhealthy_backup_found_subject_title' => '重要說明::application_name 備份不健康。 :problem',
'unhealthy_backup_found_body' => ':disk_name 磁碟上 :application_name 的備份不健康。',
'unhealthy_backup_found_not_reachable' => '無法訪問備份目標。 :error',
'unhealthy_backup_found_empty' => '根本沒有此應用程序的備份。',
'unhealthy_backup_found_old' => '最近的備份創建於 :date ,太舊了。',
'unhealthy_backup_found_unknown' => '對不起,確切原因無法確定。',
'unhealthy_backup_found_full' => '備份佔用了太多存儲空間。當前佔用了 :disk_usage ,高於允許的限制 :disk_limit。',
'no_backups_info' => '尚未進行任何備份',
'application_name' => '應用名稱',
'backup_name' => '備份名稱',
'disk' => '磁碟',
'newest_backup_size' => '最新備份大小',
'number_of_backups' => '備份數量',
'total_storage_used' => '使用的總存儲量',
'newest_backup_date' => '最新備份大小',
'oldest_backup_date' => '最早的備份大小',
];

View file

@ -37,7 +37,9 @@
@if ($accessory->name) @if ($accessory->name)
<!-- accessory name --> <!-- accessory name -->
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{{ trans('admin/hardware/form.name') }}</label> <label class="col-sm-3 control-label">
{{ trans('admin/hardware/form.name') }}
</label>
<div class="col-md-6"> <div class="col-md-6">
<p class="form-control-static">{{ $accessory->name }}</p> <p class="form-control-static">{{ $accessory->name }}</p>
</div> </div>
@ -54,7 +56,9 @@
</div> </div>
<!-- Checkout/Checkin Date --> <!-- Checkout/Checkin Date -->
<div class="form-group{{ $errors->has('checkin_at') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('checkin_at') ? ' has-error' : '' }}">
{{ Form::label('checkin_at', trans('admin/hardware/form.checkin_date'), array('class' => 'col-md-3 control-label')) }} <label for="checkin_at" class="col-md-3 control-label">
{{ trans('admin/hardware/form.checkin_date') }}
</label>
<div class="col-md-7"> <div class="col-md-7">
<div class="input-group col-md-5 required" style="padding-left: 0px;"> <div class="input-group col-md-5 required" style="padding-left: 0px;">
<div class="input-group date" data-date-clear-btn="true" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-autoclose="true"> <div class="input-group date" data-date-clear-btn="true" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-autoclose="true">

View file

@ -61,7 +61,9 @@
@if ($snipeSettings->allow_user_skin=='1') @if ($snipeSettings->allow_user_skin=='1')
<!-- Skin --> <!-- Skin -->
<div class="form-group {{ $errors->has('skin') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('skin') ? 'error' : '' }}">
<label for="website" class="col-md-3 control-label">{{ Form::label('skin', trans('general.skin')) }}</label> <label for="skin" class="col-md-3 control-label">
{{ trans('general.skin') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
{!! Form::user_skin('skin', old('skin', $user->skin), 'select2') !!} {!! Form::user_skin('skin', old('skin', $user->skin), 'select2') !!}
{!! $errors->first('skin', '<span class="alert-msg">:message</span>') !!} {!! $errors->first('skin', '<span class="alert-msg">:message</span>') !!}

View file

@ -35,7 +35,9 @@
<!-- Asset model --> <!-- Asset model -->
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }} <label class="col-sm-3 control-label">
{{ trans('admin/hardware/form.model') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<p class="form-control-static"> <p class="form-control-static">
@if (($asset->model) && ($asset->model->name)) @if (($asset->model) && ($asset->model->name))
@ -57,7 +59,9 @@
<!-- Asset Name --> <!-- Asset Name -->
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.name'), array('class' => 'col-md-3 control-label')) }} <label for="name" class="col-sm-3 control-label">
{{ trans('general.name') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<p class="form-control-static">{{ $asset->name }}</p> <p class="form-control-static">{{ $asset->name }}</p>
</div> </div>
@ -99,7 +103,9 @@
<!-- Next Audit --> <!-- Next Audit -->
<div class="form-group{{ $errors->has('next_audit_date') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('next_audit_date') ? ' has-error' : '' }}">
{{ Form::label('name', trans('general.next_audit_date'), array('class' => 'col-md-3 control-label')) }} <label for="next_audit_date" class="col-sm-3 control-label">
{{ trans('general.next_audit_date') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-clear-btn="true"> <div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.next_audit_date') }}" name="next_audit_date" id="next_audit_date" value="{{ old('next_audit_date', $next_audit_date) }}"> <input type="text" class="form-control" placeholder="{{ trans('general.next_audit_date') }}" name="next_audit_date" id="next_audit_date" value="{{ old('next_audit_date', $next_audit_date) }}">
@ -113,7 +119,9 @@
<!-- Note --> <!-- Note -->
<div class="form-group{{ $errors->has('note') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('note') ? ' has-error' : '' }}">
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} <label for="note" class="col-sm-3 control-label">
{{ trans('general.notes') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea> <textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea>
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}

View file

@ -36,7 +36,9 @@
<!-- Checkout/Checkin Date --> <!-- Checkout/Checkin Date -->
<div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}">
{{ Form::label('checkout_at', trans('admin/hardware/form.checkout_date'), array('class' => 'col-md-3 control-label')) }} <label for="checkout_at" class="col-sm-3 control-label">
{{ trans('admin/hardware/form.checkout_date') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true"> <div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ old('checkout_at') }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ old('checkout_at') }}">
@ -48,7 +50,9 @@
<!-- Expected Checkin Date --> <!-- Expected Checkin Date -->
<div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}">
{{ Form::label('expected_checkin', trans('admin/hardware/form.expected_checkin'), array('class' => 'col-md-3 control-label')) }} <label for="expected_checkin" class="col-sm-3 control-label">
{{ trans('admin/hardware/form.expected_checkin') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d" data-date-clear-btn="true"> <div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ old('expected_checkin') }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ old('expected_checkin') }}">
@ -61,7 +65,9 @@
<!-- Note --> <!-- Note -->
<div class="form-group {{ $errors->has('note') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('note') ? 'error' : '' }}">
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} <label for="note" class="col-sm-3 control-label">
{{ trans('general.notes') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<textarea class="col-md-6 form-control" id="note" name="note">{{ old('note') }}</textarea> <textarea class="col-md-6 form-control" id="note" name="note">{{ old('note') }}</textarea>
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}

View file

@ -33,15 +33,16 @@
@if ($backto == 'user') @if ($backto == 'user')
<form class="form-horizontal" method="post" action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id, 'backto'=>'user')) }}" autocomplete="off"> <form class="form-horizontal" method="post" action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id, 'backto'=>'user')) }}" autocomplete="off">
@else @else
<form class="form-horizontal" method="post" <form class="form-horizontal" method="post" action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id)) }}" autocomplete="off">
action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id)) }}" autocomplete="off">
@endif @endif
{{csrf_field()}} {{csrf_field()}}
<!-- AssetModel name --> <!-- AssetModel name -->
<div class="form-group"> <div class="form-group">
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }} <label for="model" class="col-sm-3 control-label">
<div class="col-md-8"> {{ trans('admin/hardware/form.model') }}
</label>
<div class="col-md-8">
<p class="form-control-static"> <p class="form-control-static">
@if (($asset->model) && ($asset->model->name)) @if (($asset->model) && ($asset->model->name))
@ -63,16 +64,20 @@
<!-- Asset Name --> <!-- Asset Name -->
<div class="form-group {{ $errors->has('name') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('name') ? 'error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.name'), array('class' => 'col-md-3 control-label')) }} <label for="name" class="col-sm-3 control-label">
<div class="col-md-8"> {{ trans('general.name') }}
<input class="form-control" type="text" name="name" aria-label="name" id="name" value="{{ old('name', $asset->name) }}"/> </label>
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} <div class="col-md-8">
</div> <input class="form-control" type="text" name="name" aria-label="name" id="name" value="{{ old('name', $asset->name) }}"/>
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
</div>
</div> </div>
<!-- Status --> <!-- Status -->
<div class="form-group {{ $errors->has('status_id') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('status_id') ? 'error' : '' }}">
{{ Form::label('status_id', trans('admin/hardware/form.status'), array('class' => 'col-md-3 control-label')) }} <label for="status_id" class="col-sm-3 control-label">
{{ trans('admin/hardware/form.status') }}
</label>
<div class="col-md-8 required"> <div class="col-md-8 required">
{{ Form::select('status_id', $statusLabel_list, '', array('class'=>'select2', 'style'=>'width:100%','id' =>'modal-statuslabel_types', 'aria-label'=>'status_id')) }} {{ Form::select('status_id', $statusLabel_list, '', array('class'=>'select2', 'style'=>'width:100%','id' =>'modal-statuslabel_types', 'aria-label'=>'status_id')) }}
{!! $errors->first('status_id', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('status_id', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
@ -83,8 +88,9 @@
<!-- Checkout/Checkin Date --> <!-- Checkout/Checkin Date -->
<div class="form-group{{ $errors->has('checkin_at') ? ' has-error' : '' }}"> <div class="form-group{{ $errors->has('checkin_at') ? ' has-error' : '' }}">
<label for="checkin_at" class="col-sm-3 control-label">
{{ Form::label('checkin_at', trans('admin/hardware/form.checkin_date'), array('class' => 'col-md-3 control-label')) }} {{ trans('admin/hardware/form.checkin_date') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group col-md-5 required"> <div class="input-group col-md-5 required">
@ -99,7 +105,9 @@
<!-- Note --> <!-- Note -->
<div class="form-group {{ $errors->has('note') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('note') ? 'error' : '' }}">
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} <label for="note" class="col-sm-3 control-label">
{{ trans('general.notes') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea> <textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea>
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}

View file

@ -28,7 +28,9 @@
{{csrf_field()}} {{csrf_field()}}
@if ($asset->company && $asset->company->name) @if ($asset->company && $asset->company->name)
<div class="form-group"> <div class="form-group">
{{ Form::label('model', trans('general.company'), array('class' => 'col-md-3 control-label')) }} <label for="company" class="col-md-3 control-label">
{{ trans('general.company') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<p class="form-control-static"> <p class="form-control-static">
{{ $asset->company->name }} {{ $asset->company->name }}
@ -39,7 +41,9 @@
<!-- AssetModel name --> <!-- AssetModel name -->
<div class="form-group"> <div class="form-group">
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }} <label for="model" class="col-md-3 control-label">
{{ trans('general.company') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<p class="form-control-static"> <p class="form-control-static">
@if (($asset->model) && ($asset->model->name)) @if (($asset->model) && ($asset->model->name))
@ -61,7 +65,10 @@
<!-- Asset Name --> <!-- Asset Name -->
<div class="form-group {{ $errors->has('name') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('name') ? 'error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.name'), array('class' => 'col-md-3 control-label')) }} <label for="name" class="col-md-3 control-label">
{{ trans('admin/hardware/form.name') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<input class="form-control" type="text" name="name" id="name" value="{{ old('name', $asset->name) }}" tabindex="1"> <input class="form-control" type="text" name="name" id="name" value="{{ old('name', $asset->name) }}" tabindex="1">
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
@ -70,7 +77,9 @@
<!-- Status --> <!-- Status -->
<div class="form-group {{ $errors->has('status_id') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('status_id') ? 'error' : '' }}">
{{ Form::label('status_id', trans('admin/hardware/form.status'), array('class' => 'col-md-3 control-label')) }} <label for="status_id" class="col-md-3 control-label">
{{ trans('admin/hardware/form.status') }}
</label>
<div class="col-md-7 required"> <div class="col-md-7 required">
{{ Form::select('status_id', $statusLabel_list, $asset->status_id, array('class'=>'select2', 'style'=>'width:100%','', 'aria-label'=>'status_id')) }} {{ Form::select('status_id', $statusLabel_list, $asset->status_id, array('class'=>'select2', 'style'=>'width:100%','', 'aria-label'=>'status_id')) }}
{!! $errors->first('status_id', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('status_id', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
@ -90,7 +99,9 @@
<!-- Checkout/Checkin Date --> <!-- Checkout/Checkin Date -->
<div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}">
{{ Form::label('checkout_at', trans('admin/hardware/form.checkout_date'), array('class' => 'col-md-3 control-label')) }} <label for="checkout_at" class="col-md-3 control-label">
{{ trans('admin/hardware/form.checkout_date') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-7" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true"> <div class="input-group date col-md-7" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ old('checkout_at', date('Y-m-d')) }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ old('checkout_at', date('Y-m-d')) }}">
@ -102,7 +113,10 @@
<!-- Expected Checkin Date --> <!-- Expected Checkin Date -->
<div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}">
{{ Form::label('expected_checkin', trans('admin/hardware/form.expected_checkin'), array('class' => 'col-md-3 control-label')) }} <label for="expected_checkin" class="col-md-3 control-label">
{{ trans('admin/hardware/form.expected_checkin') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-7" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d" data-date-clear-btn="true"> <div class="input-group date col-md-7" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ old('expected_checkin') }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ old('expected_checkin') }}">
@ -114,7 +128,9 @@
<!-- Note --> <!-- Note -->
<div class="form-group {{ $errors->has('note') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('note') ? 'error' : '' }}">
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} <label for="note" class="col-md-3 control-label">
{{ trans('general.notes') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea> <textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea>
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!} {!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}

View file

@ -27,7 +27,9 @@
<!-- Checkout/Checkin Date --> <!-- Checkout/Checkin Date -->
<div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('checkout_at') ? 'error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.checkout_date'), array('class' => 'col-md-3 control-label')) }} <label for="checkout_at" class="col-md-3 control-label">
{{ trans('admin/hardware/form.checkout_date') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true"> <div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-end-date="0d" data-date-clear-btn="true">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ Request::old('checkout_at') }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="checkout_at" id="checkout_at" value="{{ Request::old('checkout_at') }}">
@ -39,7 +41,9 @@
<!-- Expected Checkin Date --> <!-- Expected Checkin Date -->
<div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('expected_checkin') ? 'error' : '' }}">
{{ Form::label('name', trans('admin/hardware/form.expected_checkin'), array('class' => 'col-md-3 control-label')) }} <label for="expected_checkin" class="col-md-3 control-label">
{{ trans('admin/hardware/form.expected_checkin') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d"> <div class="input-group date col-md-5" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-start-date="0d">
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ Request::old('expected_checkin') }}"> <input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="expected_checkin" id="expected_checkin" value="{{ Request::old('expected_checkin') }}">
@ -52,7 +56,9 @@
<!-- Note --> <!-- Note -->
<div class="form-group {{ $errors->has('note') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('note') ? 'error' : '' }}">
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} <label for="note" class="col-md-3 control-label">
{{ trans('general.notes') }}
</label>
<div class="col-md-8"> <div class="col-md-8">
<textarea class="col-md-6 form-control" id="note" name="note">{{ Request::old('note') }}</textarea> <textarea class="col-md-6 form-control" id="note" name="note">{{ Request::old('note') }}</textarea>
{!! $errors->first('note', '<span class="alert-msg"><i class="fas fa-times"></i> :message</span>') !!} {!! $errors->first('note', '<span class="alert-msg"><i class="fas fa-times"></i> :message</span>') !!}

View file

@ -19,7 +19,6 @@
} }
}; };
</script> </script>
@livewireStyles
@if (($snipeSettings) && ($snipeSettings->header_color)) @if (($snipeSettings) && ($snipeSettings->header_color))
@ -74,7 +73,6 @@
@stack('js') @stack('js')
@livewireScripts
</body> </body>
</html> </html>

View file

@ -83,7 +83,7 @@ dir="{{ in_array(app()->getLocale(),['ar-SA','fa-IR', 'he-IL']) ? 'rtl' : 'ltr'
<script src="{{ url(asset('js/html5shiv.js')) }}" nonce="{{ csrf_token() }}"></script> <script src="{{ url(asset('js/html5shiv.js')) }}" nonce="{{ csrf_token() }}"></script>
<script src="{{ url(asset('js/respond.js')) }}" nonce="{{ csrf_token() }}"></script> <script src="{{ url(asset('js/respond.js')) }}" nonce="{{ csrf_token() }}"></script>
@livewireStyles
</head> </head>
@ -949,7 +949,6 @@ dir="{{ in_array(app()->getLocale(),['ar-SA','fa-IR', 'he-IL']) ? 'rtl' : 'ltr'
{{-- Javascript files --}} {{-- Javascript files --}}
<script src="{{ url(mix('js/dist/all.js')) }}" nonce="{{ csrf_token() }}"></script> <script src="{{ url(mix('js/dist/all.js')) }}" nonce="{{ csrf_token() }}"></script>
<script defer src="{{ url(mix('js/dist/all-defer.js')) }}" nonce="{{ csrf_token() }}"></script>
<!-- v5-beta: This pGenerator call must remain here for v5 - until fixed - so that the JS password generator works for the user create modal. --> <!-- v5-beta: This pGenerator call must remain here for v5 - until fixed - so that the JS password generator works for the user create modal. -->
<script src="{{ url('js/pGenerator.jquery.js') }}"></script> <script src="{{ url('js/pGenerator.jquery.js') }}"></script>
@ -1128,7 +1127,6 @@ dir="{{ in_array(app()->getLocale(),['ar-SA','fa-IR', 'he-IL']) ? 'rtl' : 'ltr'
@include('partials.bpay') @include('partials.bpay')
@livewireScripts
</body> </body>
</html> </html>

View file

@ -3,13 +3,13 @@
<div class="form-group {{ $errors->has('eula_text') ? 'error' : '' }}"> <div class="form-group {{ $errors->has('eula_text') ? 'error' : '' }}">
<label for="eula_text" class="col-md-3 control-label">{{ trans('admin/categories/general.eula_text') }}</label> <label for="eula_text" class="col-md-3 control-label">{{ trans('admin/categories/general.eula_text') }}</label>
<div class="col-md-7"> <div class="col-md-7">
{{ Form::textarea('eula_text', null, ['wire:model' => 'eulaText', 'class' => 'form-control', 'aria-label'=>'eula_text', 'disabled' => $this->eulaTextDisabled]) }} {{ Form::textarea('eula_text', null, ['wire:model.live' => 'eulaText', 'class' => 'form-control', 'aria-label'=>'eula_text', 'disabled' => $this->eulaTextDisabled]) }}
<p class="help-block">{!! trans('admin/categories/general.eula_text_help') !!} </p> <p class="help-block">{!! trans('admin/categories/general.eula_text_help') !!} </p>
<p class="help-block">{!! trans('admin/settings/general.eula_markdown') !!} </p> <p class="help-block">{!! trans('admin/settings/general.eula_markdown') !!} </p>
{!! $errors->first('eula_text', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('eula_text', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div> </div>
@if ($this->eulaTextDisabled) @if ($this->eulaTextDisabled)
<input type="hidden" name="eula_text" wire:model="eulaText" /> <input type="hidden" name="eula_text" wire:model.live="eulaText" />
@endif @endif
</div> </div>
@ -18,12 +18,12 @@
<div class="col-md-9 col-md-offset-3"> <div class="col-md-9 col-md-offset-3">
@if ($defaultEulaText!='') @if ($defaultEulaText!='')
<label class="form-control"> <label class="form-control">
{{ Form::checkbox('use_default_eula', '1', null, ['wire:model' => 'useDefaultEula', 'aria-label'=>'use_default_eula']) }} {{ Form::checkbox('use_default_eula', '1', $useDefaultEula, ['wire:model.live' => 'useDefaultEula', 'aria-label'=>'use_default_eula']) }}
<span>{!! trans('admin/categories/general.use_default_eula') !!}</span> <span>{!! trans('admin/categories/general.use_default_eula') !!}</span>
</label> </label>
@else @else
<label class="form-control form-control--disabled"> <label class="form-control form-control--disabled">
{{ Form::checkbox('use_default_eula', '0', null, ['wire:model' => 'useDefaultEula', 'class'=>'disabled','disabled' => 'disabled', 'aria-label'=>'use_default_eula']) }} {{ Form::checkbox('use_default_eula', '0', $useDefaultEula, ['wire:model.live' => 'useDefaultEula', 'class'=>'disabled','disabled' => 'disabled', 'aria-label'=>'use_default_eula']) }}
<span>{!! trans('admin/categories/general.use_default_eula_disabled') !!}</span> <span>{!! trans('admin/categories/general.use_default_eula_disabled') !!}</span>
</label> </label>
@endif @endif
@ -34,7 +34,7 @@
<div class="form-group"> <div class="form-group">
<div class="col-md-9 col-md-offset-3"> <div class="col-md-9 col-md-offset-3">
<label class="form-control"> <label class="form-control">
{{ Form::checkbox('require_acceptance', '1', null, ['wire:model' => 'requireAcceptance', 'aria-label'=>'require_acceptance']) }} {{ Form::checkbox('require_acceptance', '1', $requireAcceptance, ['wire:model.live' => 'requireAcceptance', 'aria-label'=>'require_acceptance']) }}
{{ trans('admin/categories/general.require_acceptance') }} {{ trans('admin/categories/general.require_acceptance') }}
</label> </label>
</div> </div>
@ -44,7 +44,7 @@
<div class="form-group"> <div class="form-group">
<div class="col-md-9 col-md-offset-3"> <div class="col-md-9 col-md-offset-3">
<label class="form-control"> <label class="form-control">
{{ Form::checkbox('checkin_email', '1', null, ['wire:model' => 'sendCheckInEmail', 'aria-label'=>'checkin_email', 'disabled' => $this->sendCheckInEmailDisabled]) }} {{ Form::checkbox('checkin_email', '1', $sendCheckInEmail, ['wire:model.live' => 'sendCheckInEmail', 'aria-label'=>'checkin_email', 'disabled' => $this->sendCheckInEmailDisabled]) }}
{{ trans('admin/categories/general.checkin_email') }} {{ trans('admin/categories/general.checkin_email') }}
</label> </label>
@if ($this->shouldDisplayEmailMessage) @if ($this->shouldDisplayEmailMessage)
@ -54,7 +54,7 @@
</div> </div>
@endif @endif
@if ($this->sendCheckInEmailDisabled) @if ($this->sendCheckInEmailDisabled)
<input type="hidden" name="checkin_email" wire:model="sendCheckInEmail" /> <input type="hidden" name="checkin_email" wire:model.live="sendCheckInEmail" />
@endif @endif
</div> </div>
</div> </div>

View file

@ -5,12 +5,12 @@
{{ trans('admin/models/general.fieldset') }} {{ trans('admin/models/general.fieldset') }}
</label> </label>
<div class="col-md-5"> <div class="col-md-5">
{{ Form::select('fieldset_id', Helper::customFieldsetList(), old('fieldset_id', $fieldset_id), array('class'=>'select2 js-fieldset-field livewire-select2', 'style'=>'width:100%; min-width:350px', 'aria-label'=>'custom_fieldset', 'data-livewire-component' => $_instance->id)) }} {{ Form::select('fieldset_id', Helper::customFieldsetList(), old('fieldset_id', $fieldset_id), array('class'=>'select2 js-fieldset-field livewire-select2', 'style'=>'width:100%; min-width:350px', 'aria-label'=>'custom_fieldset', 'data-livewire-component' => $this->getId())) }}
{!! $errors->first('custom_fieldset', '<span class="alert-msg" aria-hidden="true"><br><i class="fas fa-times"></i> :message</span>') !!} {!! $errors->first('custom_fieldset', '<span class="alert-msg" aria-hidden="true"><br><i class="fas fa-times"></i> :message</span>') !!}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<label class="form-control"> <label class="form-control">
{{ Form::checkbox('add_default_values', 1, old('add_default_values', $add_default_values), ['data-livewire-component' => $_instance->id, 'id' => 'add_default_values', 'wire:model' => 'add_default_values']) }} {{ Form::checkbox('add_default_values', 1, old('add_default_values', $add_default_values), ['data-livewire-component' => $this->getId(), 'id' => 'add_default_values', 'wire:model.live' => 'add_default_values']) }}
{{ trans('admin/models/general.add_default_values') }} {{ trans('admin/models/general.add_default_values') }}
</label> </label>
</div> </div>

View file

@ -129,7 +129,7 @@
<i class="fa-solid fa-list-check" aria-hidden="true"></i> <i class="fa-solid fa-list-check" aria-hidden="true"></i>
<span class="sr-only">{{ trans('general.import') }}</span> <span class="sr-only">{{ trans('general.import') }}</span>
</button> </button>
<a href="#" wire:click="$set('activeFile',null)"> <a href="#" wire:click.prevent="$set('activeFile',null)">
<button class="btn btn-sm btn-danger" wire:click="destroy({{ $currentFile->id }})"> <button class="btn btn-sm btn-danger" wire:click="destroy({{ $currentFile->id }})">
<i class="fas fa-trash icon-white" aria-hidden="true"></i><span class="sr-only"></span></button> <i class="fas fa-trash icon-white" aria-hidden="true"></i><span class="sr-only"></span></button>
</a> </a>
@ -146,7 +146,7 @@
{{ trans('general.import_type') }} {{ trans('general.import_type') }}
</label> </label>
<div class="col-md-9 col-xs-12"> <div class="col-md-9 col-xs-12" wire:ignore>
{{ Form::select('activeFile.import_type', $importTypes, $activeFile->import_type, [ {{ Form::select('activeFile.import_type', $importTypes, $activeFile->import_type, [
'id' => 'import_type', 'id' => 'import_type',
'class' => 'livewire-select2', 'class' => 'livewire-select2',
@ -154,7 +154,7 @@
'data-placeholder' => trans('general.select_var', ['thing' => trans('general.import_type')]), 'data-placeholder' => trans('general.select_var', ['thing' => trans('general.import_type')]),
'placeholder' => '', //needed so that the form-helper will put an empty option first 'placeholder' => '', //needed so that the form-helper will put an empty option first
'data-minimum-results-for-search' => '-1', // Remove this if the list gets long enough that we need to search 'data-minimum-results-for-search' => '-1', // Remove this if the list gets long enough that we need to search
'data-livewire-component' => $_instance->id 'data-livewire-component' => $this->getId()
]) }} ]) }}
@if ($activeFile->import_type === 'asset' && $snipeSettings->auto_increment_assets == 0) @if ($activeFile->import_type === 'asset' && $snipeSettings->auto_increment_assets == 0)
<p class="help-block"> <p class="help-block">
@ -166,7 +166,7 @@
<div class="form-group col-md-9 col-md-offset-3"> <div class="form-group col-md-9 col-md-offset-3">
<label class="form-control"> <label class="form-control">
<input type="checkbox" name="update" data-livewire-component="{{ $_instance->id }}" wire:model="update"> <input type="checkbox" name="update" data-livewire-component="{{ $this->getId() }}" wire:model.live="update">
{{ trans('general.update_existing_values') }} {{ trans('general.update_existing_values') }}
</label> </label>
@if ($activeFile->import_type === 'asset' && $snipeSettings->auto_increment_assets == 1 && $update) @if ($activeFile->import_type === 'asset' && $snipeSettings->auto_increment_assets == 1 && $update)
@ -176,12 +176,12 @@
@endif @endif
<label class="form-control"> <label class="form-control">
<input type="checkbox" name="send_welcome" data-livewire-component="{{ $_instance->id }}" wire:model="send_welcome"> <input type="checkbox" name="send_welcome" data-livewire-component="{{ $this->getId() }}" wire:model.live="send_welcome">
{{ trans('general.send_welcome_email_to_users') }} {{ trans('general.send_welcome_email_to_users') }}
</label> </label>
<label class="form-control"> <label class="form-control">
<input type="checkbox" name="run_backup" data-livewire-component="{{ $_instance->id }}" wire:model="run_backup"> <input type="checkbox" name="run_backup" data-livewire-component="{{ $this->getId() }}" wire:model.live="run_backup">
{{ trans('general.back_before_importing') }} {{ trans('general.back_before_importing') }}
</label> </label>
@ -220,14 +220,14 @@
<div class="form-group col-md-12" wire:key="header-row-{{ $index }}"> <div class="form-group col-md-12" wire:key="header-row-{{ $index }}">
<label for="field_map.{{ $index }}" class="col-md-3 control-label text-right">{{ $header }}</label> <label for="field_map.{{ $index }}" class="col-md-3 control-label text-right">{{ $header }}</label>
<div class="col-md-4"> <div class="col-md-4" wire:ignore>
{{ Form::select('field_map.'.$index, $columnOptions[$activeFile->import_type], @$field_map[$index], {{ Form::select('field_map.'.$index, $columnOptions[$activeFile->import_type], @$field_map[$index],
[ [
'class' => 'mappings livewire-select2', 'class' => 'mappings livewire-select2',
'placeholder' => trans('general.importer.do_not_import'), 'placeholder' => trans('general.importer.do_not_import'),
'style' => 'min-width: 100%', 'style' => 'min-width: 100%',
'data-livewire-component' => $_instance->id 'data-livewire-component' => $this->getId()
],[ ],[
'-' => ['disabled' => true] // this makes the "-----" line unclickable '-' => ['disabled' => true] // this makes the "-----" line unclickable
]) ])
@ -251,7 +251,7 @@
<div class="form-group col-md-12"> <div class="form-group col-md-12">
<div class="col-md-3 text-left"> <div class="col-md-3 text-left">
<a href="#" wire:click="$set('activeFile',null)">{{ trans('general.cancel') }}</a> <a href="#" wire:click.prevent="$set('activeFile',null)">{{ trans('general.cancel') }}</a>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<button type="submit" class="btn btn-primary col-md-5" id="import">Import</button> <button type="submit" class="btn btn-primary col-md-5" id="import">Import</button>
@ -267,7 +267,7 @@
@else @else
<div class="form-group col-md-10"> <div class="form-group col-md-10">
<div class="col-md-3 text-left"> <div class="col-md-3 text-left">
<a href="#" wire:click="$set('activeFile',null)">{{ trans('general.cancel') }}</a> <a href="#" wire:click.prevent="$set('activeFile',null)">{{ trans('general.cancel') }}</a>
</div> </div>
</div> </div>
@endif {{-- end of if ... activeFile->import_type --}} @endif {{-- end of if ... activeFile->import_type --}}
@ -290,16 +290,16 @@
</div> </div>
</div> </div>
@push('js') @script
<script> <script>
{{-- TODO: Maybe change this to the file upload thing that's baked-in to Livewire? --}} {{-- TODO: Maybe change this to the file upload thing that's baked-in to Livewire? --}}
$('#fileupload').fileupload({ $('#fileupload').fileupload({
dataType: 'json', dataType: 'json',
done: function(e, data) { done: function(e, data) {
@this.progress_bar_class = 'progress-bar-success'; $wire.$set('progress_bar_class', 'progress-bar-success');
@this.progress_message = '<i class="fas fa-check faa-pulse animated"></i> {{ trans('general.notification_success') }}'; $wire.$set('progress_message', '<i class="fas fa-check faa-pulse animated"></i> {{ trans('general.notification_success') }}');
@this.progress = 100; $wire.$set('progress', 100);
}, },
add: function(e, data) { add: function(e, data) {
data.headers = { data.headers = {
@ -307,17 +307,17 @@
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content') "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
}; };
data.process().done( function () {data.submit();}); data.process().done( function () {data.submit();});
@this.progress = 0; $wire.$set('progress', 0);
@this.clearMessage(); $wire.clearMessage();
}, },
progress: function(e, data) { progress: function(e, data) {
@this.progress = parseInt((data.loaded / data.total * 100, 10)); $wire.$set('progress', parseInt((data.loaded / data.total * 100, 10)));
@this.progress_message = '{{ trans('general.uploading') }}'; $wire.$set('progress_message', '{{ trans('general.uploading') }}');
}, },
fail: function() { fail: function() {
@this.progress_bar_class = "progress-bar-danger"; $wire.$set('progress_bar_class', "progress-bar-danger");
@this.progress = 100; $wire.$set('progress', 100);
@this.progress_message = '<i class="fas fa-exclamation-triangle faa-pulse animated"></i> {{ trans('general.upload_error') }}'; $wire.$set('progress_message', '<i class="fas fa-exclamation-triangle faa-pulse animated"></i> {{ trans('general.upload_error') }}');
} }
}) })
@ -328,28 +328,28 @@
// we have to hook up to the `<tr id='importer-file'>` at the root of this display, // we have to hook up to the `<tr id='importer-file'>` at the root of this display,
// because the #import button isn't visible until you click an import_type // because the #import button isn't visible until you click an import_type
$('#upload-table').on('click', '#import', function () { $('#upload-table').on('click', '#import', function () {
if(!@this.activeFile.import_type) { if (!$wire.$get('activeFile.import_type')) {
@this.statusType='error'; $wire.$set('statusType', 'error');
@this.statusText= "An import type is required... "; //TODO: translate? $wire.$set('statusText', "An import type is required... "); //TODO: translate?
return; return;
} }
@this.statusType ='pending'; $wire.$set('statusType', 'pending');
@this.statusText = '<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> {{ trans('admin/hardware/form.processing_spinner') }}'; $wire.$set('statusText', '<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> {{ trans('admin/hardware/form.processing_spinner') }}');
@this.generate_field_map().then(function (mappings_raw) { $wire.generate_field_map().then(function (mappings_raw) {
var mappings = JSON.parse(mappings_raw) var mappings = JSON.parse(mappings_raw)
// console.warn("Here is the mappings:") // console.warn("Here is the mappings:")
// console.dir(mappings) // console.dir(mappings)
// console.warn("Uh, active file id is, I guess: "+@this.activeFile.id) // console.warn("Uh, active file id is, I guess: "+$wire.$get('activeFile.id'))
var this_file = @this.file_id; // okay, I actually don't know what I'm doing here. var this_file = $wire.$get('file_id'); // okay, I actually don't know what I'm doing here.
$.post({ $.post({
{{-- I want to do something like: route('api.imports.importFile', $activeFile->id) }} --}} {{-- I want to do something like: route('api.imports.importFile', $activeFile->id) }} --}}
url: "api/v1/imports/process/"+this_file, // maybe? Good a guess as any..FIXME. HARDCODED DUMB FILE url: "api/v1/imports/process/"+this_file, // maybe? Good a guess as any..FIXME. HARDCODED DUMB FILE
contentType: 'application/json', contentType: 'application/json',
data: JSON.stringify({ data: JSON.stringify({
'import-update': !!@this.update, 'import-update': !!$wire.$get('update'),
'send-welcome': !!@this.send_welcome, 'send-welcome': !!$wire.$get('send_welcome'),
'import-type': @this.activeFile.import_type, 'import-type': $wire.$get('activeFile.import_type'),
'run-backup': !!@this.run_backup, 'run-backup': !!$wire.$get('run_backup'),
'column-mappings': mappings 'column-mappings': mappings
}), }),
headers: { headers: {
@ -357,19 +357,19 @@
} }
}).done( function (body) { }).done( function (body) {
// Success // Success
@this.statusType="success"; $wire.$set('statusType', "success");
@this.statusText = "{{ trans('general.success_redirecting') }}"; $wire.$set('statusText', "{{ trans('general.success_redirecting') }}");
// console.dir(body) // console.dir(body)
window.location.href = body.messages.redirect_url; window.location.href = body.messages.redirect_url;
}).fail( function (jqXHR, textStatus, error) { }).fail( function (jqXHR, textStatus, error) {
// Failure // Failure
var body = jqXHR.responseJSON var body = jqXHR.responseJSON
if((body) && (body.status) && body.status == 'import-errors') { if((body) && (body.status) && body.status == 'import-errors') {
@this.emit('importError', body.messages); $wire.$dispatch('importError', body.messages);
@this.import_errors = body.messages $wire.$set('import_errors', body.messages);
@this.statusType='error'; $wire.$set('statusType', 'error');
@this.statusText = "Error"; $wire.$set('statusText', "Error");
// If Slack/notifications hits API thresholds, we *do* 500, but we never // If Slack/notifications hits API thresholds, we *do* 500, but we never
// actually surface that info. // actually surface that info.
@ -380,19 +380,19 @@
// notifications could be sent". // notifications could be sent".
} else { } else {
console.warn("Not import-errors, just regular errors - maybe API limits") console.warn("Not import-errors, just regular errors - maybe API limits")
@this.message_type="warning" $wire.$set('message_type', "warning");
if ((body) && (error in body)) { if ((body) && (error in body)) {
@this.message = body.error ? body.error:"Unknown error - might just be throttling by notifications." $wire.$set('message', body.error ? body.error : "Unknown error - might just be throttling by notifications.");
} else { } else {
@this.message = "{{ trans('general.importer_generic_error') }}" $wire.$set('message', "{{ trans('general.importer_generic_error') }}");
} }
} }
@this.activeFile = null; //@this.set('hideDetails') $wire.$set('activeFile', null); //$wire.$set('hideDetails')
}); });
}) })
return false; return false;
});}) });})
</script> </script>
@endpush @endscript

View file

@ -16,7 +16,7 @@
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<a class="btn btn-primary" <a class="btn btn-primary"
wire:click="$emit('openModal')" wire:click="$dispatch('openModal')"
onclick="$('#modal-create-client').modal('show');"> onclick="$('#modal-create-client').modal('show');">
{{ trans('general.create') }} {{ trans('general.create') }}
</a> </a>
@ -285,7 +285,7 @@
type="text" type="text"
aria-label="edit-client-name" aria-label="edit-client-name"
class="form-control" class="form-control"
wire:model="editName" wire:model.live="editName"
wire:keydown.enter="updateClient('{{ $editClientId }}')" wire:keydown.enter="updateClient('{{ $editClientId }}')"
> >
@ -333,7 +333,7 @@
</div> </div>
<script> <script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
window.livewire.on('openModal', () => { Livewire.on('openModal', () => {
$('#modal-create-client').modal('show').on('shown.bs.modal', function() { $('#modal-create-client').modal('show').on('shown.bs.modal', function() {
$(this).find('[autofocus]').focus(); $(this).find('[autofocus]').focus();
}); });
@ -354,3 +354,4 @@
</script> </script>
</div> </div>

View file

@ -4,7 +4,7 @@
<div class="text-right" style="display: flex; justify-content: space-between; align-items: center;"> <div class="text-right" style="display: flex; justify-content: space-between; align-items: center;">
<a class="btn btn-info btn-sm action-link pull-right" <a class="btn btn-info btn-sm action-link pull-right"
onclick="$('#modal-create-token').modal('show');" onclick="$('#modal-create-token').modal('show');"
wire:click="$emit('openModal')" wire:click="$dispatch('openModal')"
> >
Create New Token Create New Token
</a> </a>
@ -98,7 +98,7 @@
name="name" name="name"
wire:keydown.enter="createToken(name)" wire:keydown.enter="createToken(name)"
{{-- defer because it's submitting as i type if i don't --}} {{-- defer because it's submitting as i type if i don't --}}
wire:model.defer="name" wire:model="name"
autofocus autofocus
> >
</div> </div>

View file

@ -13,7 +13,7 @@
@section('content') @section('content')
<div><!-- livewire div - do not remove --> <div><!-- livewire div - do not remove -->
<form class="form-horizontal" role="form" wire:submit.prevent="submit"> <form class="form-horizontal" role="form" wire:submit="submit">
{{csrf_field()}} {{csrf_field()}}
<div class="row"> <div class="row">
@ -79,7 +79,7 @@
{{ Form::label('webhook_endpoint', trans('admin/settings/general.webhook_endpoint',['app' => $webhook_name ])) }} {{ Form::label('webhook_endpoint', trans('admin/settings/general.webhook_endpoint',['app' => $webhook_name ])) }}
</div> </div>
<div class="col-md-9 required"> <div class="col-md-9 required">
<input type="text" wire:model.lazy="webhook_endpoint" class="form-control" placeholder="{{$webhook_placeholder}}" value="{{old('webhook_endpoint', $webhook_endpoint)}}"{{ Helper::isDemoMode() ? ' disabled' : ''}}> <input type="text" wire:model.blur="webhook_endpoint" class="form-control" placeholder="{{$webhook_placeholder}}" value="{{old('webhook_endpoint', $webhook_endpoint)}}"{{ Helper::isDemoMode() ? ' disabled' : ''}}>
{!! $errors->first('webhook_endpoint', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('webhook_endpoint', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div> </div>
</div> </div>
@ -96,7 +96,7 @@
{{ Form::label('webhook_channel', trans('admin/settings/general.webhook_channel',['app' => $webhook_name ])) }} {{ Form::label('webhook_channel', trans('admin/settings/general.webhook_channel',['app' => $webhook_name ])) }}
</div> </div>
<div class="col-md-9 required"> <div class="col-md-9 required">
<input type="text" wire:model.lazy="webhook_channel" class="form-control" placeholder="#IT-Ops" value="{{ old('webhook_channel', $webhook_channel) }}"{{ Helper::isDemoMode() ? ' disabled' : ''}}> <input type="text" wire:model.blur="webhook_channel" class="form-control" placeholder="#IT-Ops" value="{{ old('webhook_channel', $webhook_channel) }}"{{ Helper::isDemoMode() ? ' disabled' : ''}}>
{!! $errors->first('webhook_channel', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('webhook_channel', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div> </div>
@ -114,7 +114,7 @@
{{ Form::label('webhook_botname', trans('admin/settings/general.webhook_botname',['app' => $webhook_name ])) }} {{ Form::label('webhook_botname', trans('admin/settings/general.webhook_botname',['app' => $webhook_name ])) }}
</div> </div>
<div class="col-md-9"> <div class="col-md-9">
<input type="text" wire:model.lazy="webhook_botname" class='form-control' placeholder="Snipe-Bot" {{ old('webhook_botname', $webhook_botname)}}{{ Helper::isDemoMode() ? ' disabled' : ''}}> <input type="text" wire:model.blur="webhook_botname" class='form-control' placeholder="Snipe-Bot" {{ old('webhook_botname', $webhook_botname)}}{{ Helper::isDemoMode() ? ' disabled' : ''}}>
{!! $errors->first('webhook_botname', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('webhook_botname', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div><!--col-md-10--> </div><!--col-md-10-->
</div> </div>
@ -175,11 +175,6 @@
var data = $('#select2').select2("val"); var data = $('#select2').select2("val");
@this.set('webhook_selected', data); @this.set('webhook_selected', data);
}); });
// Re-render select2
window.livewire.hook('message.processed', function (el, component) {
$('.select2').select2();
});
}); });

View file

@ -430,3 +430,8 @@
{{Form::close()}} {{Form::close()}}
@stop @stop
@push('js')
{{-- Can't use @script here because we're not in a livewire component so let's manually load --}}
@livewireScripts
@endpush

View file

@ -18,7 +18,9 @@
<!-- Site Name --> <!-- Site Name -->
<div class="row"> <div class="row">
<div class="form-group col-lg-12 required {{ $errors->has('site_name') ? 'error' : '' }}"> <div class="form-group col-lg-12 required {{ $errors->has('site_name') ? 'error' : '' }}">
{{ Form::label('site_name', trans('general.site_name')) }} <label for="site_name">
{{ trans('general.site_name') }}
</label>
{{ Form::text('site_name', Request::old('site_name'), array('class' => 'form-control','placeholder' => 'Snipe-IT Asset Management')) }} {{ Form::text('site_name', Request::old('site_name'), array('class' => 'form-control','placeholder' => 'Snipe-IT Asset Management')) }}
{!! $errors->first('site_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('site_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
@ -29,9 +31,10 @@
<!-- Language --> <!-- Language -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'default_language')) ? ' required' : '' }} {{$errors->has('default_language') ? 'error' : ''}}"> <div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'default_language')) ? ' required' : '' }} {{$errors->has('default_language') ? 'error' : ''}}">
{{ Form::label('locale', trans('admin/settings/general.default_language')) }} <label for="locale">
{{ trans('admin/settings/general.default_language') }}
</label>
{!! Form::locales('locale', Request::old('locale', "en-US"), 'select2') !!} {!! Form::locales('locale', Request::old('locale', "en-US"), 'select2') !!}
{!! $errors->first('locale', '<span class="alert-msg" aria-hidden="true">:message</span>') !!} {!! $errors->first('locale', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div> </div>

View file

@ -384,7 +384,6 @@
{{-- Javascript files --}} {{-- Javascript files --}}
<script src="{{ url(mix('js/dist/all.js')) }}" nonce="{{ csrf_token() }}"></script> <script src="{{ url(mix('js/dist/all.js')) }}" nonce="{{ csrf_token() }}"></script>
<script defer src="{{ url(mix('js/dist/all-defer.js')) }}" nonce="{{ csrf_token() }}"></script>
@push('css') @push('css')

View file

@ -23,6 +23,7 @@ use App\Http\Controllers\ViewAssetsController;
use App\Http\Controllers\Auth\LoginController; use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\ForgotPasswordController; use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\ResetPasswordController; use App\Http\Controllers\Auth\ResetPasswordController;
use App\Livewire\Importer;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@ -262,7 +263,7 @@ Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'authorize:superuser
*/ */
Route::get('/import', Route::get('/import',
\App\Http\Livewire\Importer::class Importer::class
)->middleware('auth')->name('imports.index'); )->middleware('auth')->name('imports.index');
/* /*

View file

@ -2,7 +2,7 @@
namespace Tests\Feature\Livewire; namespace Tests\Feature\Livewire;
use App\Http\Livewire\CategoryEditForm; use App\Livewire\CategoryEditForm;
use Livewire\Livewire; use Livewire\Livewire;
use Tests\TestCase; use Tests\TestCase;

View file

@ -153,47 +153,74 @@ class UpdateUserTest extends TestCase
// Admin for Company A should allow updating user from Company A // Admin for Company A should allow updating user from Company A
$this->actingAsForApi($adminA) $this->actingAsForApi($adminA)
->patchJson(route('api.users.update', $scoped_user_in_companyA)) ->patchJson(route('api.users.update', $scoped_user_in_companyA))
->assertStatus(200); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('success')
->json();
// Admin for Company A should get denied updating user from Company B // Admin for Company A should get denied updating user from Company B
$this->actingAsForApi($adminA) $this->actingAsForApi($adminA)
->patchJson(route('api.users.update', $scoped_user_in_companyB)) ->patchJson(route('api.users.update', $scoped_user_in_companyB))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
// Admin for Company A should get denied updating user without a company // Admin for Company A should get denied updating user without a company
$this->actingAsForApi($adminA) $this->actingAsForApi($adminA)
->patchJson(route('api.users.update', $scoped_user_in_no_company)) ->patchJson(route('api.users.update', $scoped_user_in_no_company))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
// Admin for Company B should allow updating user from Company B // Admin for Company B should allow updating user from Company B
$this->actingAsForApi($adminB) $this->actingAsForApi($adminB)
->patchJson(route('api.users.update', $scoped_user_in_companyB)) ->patchJson(route('api.users.update', $scoped_user_in_companyB))
->assertStatus(200); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('success')
->json();
// Admin for Company B should get denied updating user from Company A // Admin for Company B should get denied updating user from Company A
$this->actingAsForApi($adminB) $this->actingAsForApi($adminB)
->patchJson(route('api.users.update', $scoped_user_in_companyA)) ->patchJson(route('api.users.update', $scoped_user_in_companyA))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
// Admin for Company B should get denied updating user without a company // Admin for Company B should get denied updating user without a company
$this->actingAsForApi($adminB) $this->actingAsForApi($adminB)
->patchJson(route('api.users.update', $scoped_user_in_no_company)) ->patchJson(route('api.users.update', $scoped_user_in_no_company))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
// Admin without a company should allow updating user without a company // Admin without a company should allow updating user without a company
$this->actingAsForApi($adminNoCompany) $this->actingAsForApi($adminNoCompany)
->patchJson(route('api.users.update', $scoped_user_in_no_company)) ->patchJson(route('api.users.update', $scoped_user_in_no_company))
->assertStatus(200); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('success')
->json();
// Admin without a company should get denied updating user from Company A // Admin without a company should get denied updating user from Company A
$this->actingAsForApi($adminNoCompany) $this->actingAsForApi($adminNoCompany)
->patchJson(route('api.users.update', $scoped_user_in_companyA)) ->patchJson(route('api.users.update', $scoped_user_in_companyA))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
// Admin without a company should get denied updating user from Company B // Admin without a company should get denied updating user from Company B
$this->actingAsForApi($adminNoCompany) $this->actingAsForApi($adminNoCompany)
->patchJson(route('api.users.update', $scoped_user_in_companyB)) ->patchJson(route('api.users.update', $scoped_user_in_companyB))
->assertStatus(403); ->assertOk()
->assertStatus(200)
->assertStatusMessageIs('error')
->json();
} }
public function testUserGroupsAreOnlyUpdatedIfAuthenticatedUserIsSuperUser() public function testUserGroupsAreOnlyUpdatedIfAuthenticatedUserIsSuperUser()

View file

@ -0,0 +1,92 @@
<?php
namespace Tests\Unit;
use Tests\TestCase;
class SnipeTranslatorTest extends TestCase
{
// the 'meatiest' of these tests will explicitly choose non-English as the language, because otherwise
// the fallback-logic (which is to fall-back to 'en-US') will be conflated in with the translation logic
// WARNING: If these translation strings are updated, these tests will start to fail. Update them as appropriate.
public function testBasic()
{
$this->assertEquals('This user has admin privileges',trans('general.admin_tooltip',[],'en-US'));
}
public function testPortuguese()
{
$this->assertEquals('Acessório',trans('general.accessory',[],'pt-PT'));
}
public function testFallback()
{
$this->assertEquals(
'This user has admin privileges',
trans('general.admin_tooltip',[],'xx-ZZ'),
"Nonexistent locale should fall-back to en-US"
);
}
public function testBackupString()
{
$this->assertEquals(
'Ingen sikkerhetskopier ble gjort ennå',
trans('backup::notifications.no_backups_info',[],'no-NO'),
"Norwegian 'no backups info' message should be here"
);
}
public function testBackupFallback()
{
$this->assertEquals(
'No backups were made yet',
trans('backup::notifications.no_backups_info',[],'xx-ZZ'),
"'no backups info' string should fallback to 'en'"
);
}
public function testTransChoiceSingular()
{
$this->assertEquals(
'1 Consumível',
trans_choice('general.countable.consumables',1,[],'pt-PT')
);
}
public function testTransChoicePlural()
{
$this->assertEquals(
'2 Consumíveis',
trans_choice('general.countable.consumables',2,[],'pt-PT')
);
}
public function testTotallyBogusKey()
{
$this->assertEquals(
'bogus_key',
trans('bogus_key',[],'pt-PT'),
"Translating a completely bogus key should at least just return back that key"
);
}
public function testReplacements() {
$this->assertEquals(
'Artigos alocados a Some Name Here',
trans('admin/users/general.assets_user',['name' => 'Some Name Here'],'pt-PT'),
"Text should get replaced in translations when given"
);
}
public function testNonlegacyBackupLocale() {
//Spatie backup *usually* uses two-character locales, but pt-BR is an exception
$this->assertEquals(
'Mensagem de exceção: MESSAGE',
trans('backup::notifications.exception_message',['message' => 'MESSAGE'],'pt-BR')
);
}
}

View file

@ -189,13 +189,6 @@ mix
) )
.version(); .version();
mix
.combine(
['./node_modules/alpinejs/dist/cdn.js'],
'./public/js/dist/all-defer.js'
)
.version();
/** /**
* Copy, minify and version skins * Copy, minify and version skins
*/ */