Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 57ed3afcc4 | |||
| fd71b48489 | |||
| 1cbbf8f976 | |||
| 5a8c3444e2 | |||
| edab4e1371 | |||
| 173ec44b9e | |||
| 2e9cf8fa87 | |||
| 126bb486b5 | |||
| 0abc108686 | |||
| f623d05d0c | |||
| ef7f21e3ba | |||
| 91694064fb | |||
| 9a0219eff7 | |||
| b2087a9947 | |||
| 6b1329133b | |||
| e4ef970934 | |||
| f211c11034 | |||
| 698c7f4904 | |||
| 7479f5f12d | |||
| 161c6b7d31 | |||
| 1441cf9f4f | |||
| 270143bb46 | |||
| 6b0a1ab3fb | |||
| 5fba8202d6 | |||
| 61f5825c69 | |||
| 5314ef97e5 | |||
| b7fbc5d018 | |||
| 211a0820e5 | |||
| 7b891f0952 | |||
| 6c1bb89776 | |||
| 3eb7a87a66 | |||
| 0cb4caa4cf | |||
| 4db7cb0e21 | |||
| 6529a75683 | |||
| 4b255ada70 | |||
| 01342ca266 | |||
| 87fc856361 | |||
| 3dd7c00a0b | |||
| 0c31e840c4 | |||
| c12ef19fcc | |||
| 2d213a9c77 | |||
| 0882cfede2 | |||
| 96cd90f842 | |||
| d56552a8af | |||
| bdabbbd4e9 | |||
| ab18ceb2f9 | |||
| e046db6d1e | |||
| 863ea62551 | |||
| 70059f6f80 | |||
| e50ad8a442 | |||
| 639409fb3f | |||
| 20e65804ef | |||
| 729b23c0cf | |||
| af9f3d5e1e | |||
| 00ca30a205 | |||
| 8c92198636 | |||
| 169973e697 | |||
| 7571c0b850 | |||
| 7cbcd2d95c | |||
| 1ac293a12a | |||
| 3e3c277a3f | |||
| 93d6ce1a6a | |||
| dadc80d558 | |||
| 9caf27ce60 | |||
| 968de7e469 | |||
| 2410b1a146 | |||
| ed39df349f | |||
| 86a2312a31 | |||
| e30d814ece | |||
| e9d297e97d | |||
| 9269d5945e | |||
| 33ee63f985 | |||
| def570db4b | |||
| fcb81b9505 | |||
| 3e2fe10480 | |||
| f840652395 | |||
| afd83311aa |
@@ -2549,6 +2549,24 @@
|
||||
"contributions": [
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "QveenSi",
|
||||
"name": "Yevhenii Huzii",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/19945501?v=4",
|
||||
"profile": "https://github.com/QveenSi",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "chrisweirich",
|
||||
"name": "Christian Weirich",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/97299851?v=4",
|
||||
"profile": "https://github.com/chrisweirich",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
 [](https://crowdin.com/project/snipe-it) [](https://hub.docker.com/r/snipe/snipe-it/) [](https://twitter.com/snipeitapp) [](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&utm_medium=referral&utm_content=snipe/snipe-it&utm_campaign=Badge_Grade)
|
||||
[](#contributors) [](https://discord.gg/yZFtShAcKk) [](https://huntr.dev)
|
||||
[](#contributors) [](https://discord.gg/yZFtShAcKk) [](https://huntr.dev)
|
||||
|
||||
## Snipe-IT - Open Source Asset Management System
|
||||
|
||||
@@ -131,6 +131,7 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken
|
||||
| [<img src="https://avatars.githubusercontent.com/u/8735148?v=4" width="110px;"/><br /><sub>Petri Asikainen</sub>](https://github.com/PetriAsi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PetriAsi "Code") | [<img src="https://avatars.githubusercontent.com/u/11424540?v=4" width="110px;"/><br /><sub>derdeagle</sub>](https://github.com/derdeagle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derdeagle "Code") | [<img src="https://avatars.githubusercontent.com/u/176950?v=4" width="110px;"/><br /><sub>Mike Frysinger</sub>](https://wh0rd.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vapier "Code") | [<img src="https://avatars.githubusercontent.com/u/22044358?v=4" width="110px;"/><br /><sub>ALPHA</sub>](https://github.com/AL4AL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AL4AL "Code") | [<img src="https://avatars.githubusercontent.com/u/1042587?v=4" width="110px;"/><br /><sub>FliegenKLATSCH</sub>](https://www.ifern.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH "Code") | [<img src="https://avatars.githubusercontent.com/u/442138?v=4" width="110px;"/><br /><sub>Jeremy Price</sub>](https://github.com/jerm)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jerm "Code") | [<img src="https://avatars.githubusercontent.com/u/84392209?v=4" width="110px;"/><br /><sub>Toreg87</sub>](https://github.com/Toreg87)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Toreg87 "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/67638596?v=4" width="110px;"/><br /><sub>Matthew Nickson</sub>](https://github.com/Computroniks)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Computroniks "Code") | [<img src="https://avatars.githubusercontent.com/u/1646397?v=4" width="110px;"/><br /><sub>Jethro Nederhof</sub>](https://jethron.id.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jethron "Code") | [<img src="https://avatars.githubusercontent.com/u/23289826?v=4" width="110px;"/><br /><sub>Oskar Stenberg</sub>](https://github.com/01ste02)<br />[💻](https://github.com/snipe/snipe-it/commits?author=01ste02 "Code") | [<img src="https://avatars.githubusercontent.com/u/82208283?v=4" width="110px;"/><br /><sub>Robert-Azelis</sub>](https://github.com/Robert-Azelis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Robert-Azelis "Code") | [<img src="https://avatars.githubusercontent.com/u/60648387?v=4" width="110px;"/><br /><sub>Alexander William Smith</sub>](https://github.com/alwism)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alwism "Code") | [<img src="https://avatars.githubusercontent.com/u/24418301?v=4" width="110px;"/><br /><sub>LEITWERK AG</sub>](https://www.leitwerk.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leitwerk-ag "Code") | [<img src="https://avatars.githubusercontent.com/u/1911435?v=4" width="110px;"/><br /><sub>Adam</sub>](http://www.aboutcher.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamboutcher "Code") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/16104273?v=4" width="110px;"/><br /><sub>Ian</sub>](https://snksrv.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sneak-it "Code") | [<img src="https://avatars.githubusercontent.com/u/4023909?v=4" width="110px;"/><br /><sub>Shao Yu-Lung (Allen)</sub>](http://blog.bestlong.idv.tw/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bestlong "Code") | [<img src="https://avatars.githubusercontent.com/u/76475453?v=4" width="110px;"/><br /><sub>Haxatron</sub>](https://github.com/Haxatron)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Haxatron "Code") | [<img src="https://avatars.githubusercontent.com/u/3842948?v=4" width="110px;"/><br /><sub>Bradley Coudriet</sub>](http://bjcpgd.cias.rit.edu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=exula "Code") | [<img src="https://avatars.githubusercontent.com/u/21966173?v=4" width="110px;"/><br /><sub>Dalton Durst</sub>](https://daltondur.st)<br />[💻](https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox "Code") | [<img src="https://avatars.githubusercontent.com/u/48162670?v=4" width="110px;"/><br /><sub>TenOfTens</sub>](https://github.com/TenOfTens)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [<img src="https://avatars.githubusercontent.com/u/917232?v=4" width="110px;"/><br /><sub>Simona Avornicesei</sub>](http://www.avornicesei.com)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=savornicesei "Tests") |
|
||||
| [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/QveenSi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") | [<img src="https://avatars.githubusercontent.com/u/97299851?v=4" width="110px;"/><br /><sub>Christian Weirich</sub>](https://github.com/chrisweirich)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") |
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class KillAllSessions extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'snipeit:global-logout {--force : Skip the danger prompt; assuming you enter "y"} ';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'This command will destroy all web sessions on disk and will force a re-login for all users.';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
|
||||
if (!$this->option('force') && !$this->confirm("****************************************************\nTHIS WILL FORCE A LOGIN FOR ALL LOGGED IN USERS.\n\nAre you SURE you wish to continue? ")) {
|
||||
return $this->error("Session loss not confirmed");
|
||||
}
|
||||
|
||||
$session_files = glob(storage_path("framework/sessions/*"));
|
||||
|
||||
$count = 0;
|
||||
foreach ($session_files as $file) {
|
||||
|
||||
if (is_file($file))
|
||||
unlink($file);
|
||||
$count++;
|
||||
}
|
||||
\DB::table('users')->update(['remember_token' => null]);
|
||||
|
||||
$this->info($count. ' sessions cleared!');
|
||||
|
||||
}
|
||||
}
|
||||
@@ -47,18 +47,18 @@ class MoveUploadsToNewDisk extends Command
|
||||
}
|
||||
$delete_local = $this->argument('delete_local');
|
||||
|
||||
$public_uploads['accessories'] = glob('public/accessories'."/*.*");
|
||||
$public_uploads['assets'] = glob('public/assets'."/*.*");
|
||||
$public_uploads['avatars'] = glob('public/avatars'."/*.*");
|
||||
$public_uploads['categories'] = glob('public/categories'."/*.*");
|
||||
$public_uploads['companies'] = glob('public/companies'."/*.*");
|
||||
$public_uploads['components'] = glob('public/components'."/*.*");
|
||||
$public_uploads['consumables'] = glob('public/consumables'."/*.*");
|
||||
$public_uploads['departments'] = glob('public/departments'."/*.*");
|
||||
$public_uploads['locations'] = glob('public/locations'."/*.*");
|
||||
$public_uploads['manufacturers'] = glob('public/manufacturers'."/*.*");
|
||||
$public_uploads['suppliers'] = glob('public/suppliers'."/*.*");
|
||||
$public_uploads['assetmodels'] = glob('public/models'."/*.*");
|
||||
$public_uploads['accessories'] = glob('public/uploads/accessories'."/*.*");
|
||||
$public_uploads['assets'] = glob('public/uploads/assets'."/*.*");
|
||||
$public_uploads['avatars'] = glob('public/uploads/avatars'."/*.*");
|
||||
$public_uploads['categories'] = glob('public/uploads/categories'."/*.*");
|
||||
$public_uploads['companies'] = glob('public/uploads/companies'."/*.*");
|
||||
$public_uploads['components'] = glob('public/uploads/components'."/*.*");
|
||||
$public_uploads['consumables'] = glob('public/uploads/consumables'."/*.*");
|
||||
$public_uploads['departments'] = glob('public/uploads/departments'."/*.*");
|
||||
$public_uploads['locations'] = glob('public/uploads/locations'."/*.*");
|
||||
$public_uploads['manufacturers'] = glob('public/uploads/manufacturers'."/*.*");
|
||||
$public_uploads['suppliers'] = glob('public/uploads/suppliers'."/*.*");
|
||||
$public_uploads['assetmodels'] = glob('public/uploads/models'."/*.*");
|
||||
|
||||
|
||||
// iterate files
|
||||
@@ -72,7 +72,7 @@ class MoveUploadsToNewDisk extends Command
|
||||
$filename = basename($public_upload[$i]);
|
||||
|
||||
try {
|
||||
Storage::disk('public')->put('uploads/'.public_type.'/'.$filename, file_get_contents($public_upload[$i]));
|
||||
Storage::disk('public')->put('uploads/'.$public_type.'/'.$filename, file_get_contents($public_upload[$i]));
|
||||
$new_url = Storage::disk('public')->url('uploads/'.$public_type.'/'.$filename, $filename);
|
||||
$this->info($type_count.'. PUBLIC: '.$filename.' was copied to '.$new_url);
|
||||
} catch (\Exception $e) {
|
||||
@@ -103,7 +103,7 @@ class MoveUploadsToNewDisk extends Command
|
||||
$private_uploads['imports'] = glob('storage/private_uploads/imports'."/*.*");
|
||||
$private_uploads['licenses'] = glob('storage/private_uploads/licenses'."/*.*");
|
||||
$private_uploads['users'] = glob('storage/private_uploads/users'."/*.*");
|
||||
$private_uploads['backups'] = glob('storage/private_uploads/users'."/*.*");
|
||||
$private_uploads['backups'] = glob('storage/private_uploads/backups'."/*.*");
|
||||
|
||||
|
||||
foreach($private_uploads as $private_type => $private_upload)
|
||||
|
||||
@@ -14,7 +14,7 @@ class RestoreFromBackup extends Command
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'snipeit:restore
|
||||
{--force : Skip the danger prompt; assuming you hit "y"}
|
||||
{--force : Skip the danger prompt; assuming you enter "y"}
|
||||
{filename : The zip file to be migrated}
|
||||
{--no-progress : Don\'t show a progress bar}';
|
||||
|
||||
|
||||
@@ -9,10 +9,21 @@ class ActionlogController extends Controller
|
||||
{
|
||||
public function displaySig($filename)
|
||||
{
|
||||
// PHP doesn't let you handle file not found errors well with
|
||||
// file_get_contents, so we set the error reporting for just this class
|
||||
error_reporting(0);
|
||||
|
||||
$this->authorize('view', \App\Models\Asset::class);
|
||||
$file = config('app.private_uploads') . '/signatures/' . $filename;
|
||||
$file = config('app.private_uploads').'/signatures/'.$filename;
|
||||
$filetype = Helper::checkUploadIsImage($file);
|
||||
$contents = file_get_contents($file);
|
||||
return Response::make($contents)->header('Content-Type', $filetype);
|
||||
|
||||
$contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]]));
|
||||
if ($contents === false) {
|
||||
\Log::warn('File '.$file.' not found');
|
||||
return false;
|
||||
} else {
|
||||
return Response::make($contents)->header('Content-Type', $filetype);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,6 +788,9 @@ class AssetsController extends Controller
|
||||
$error_payload['target_type'] = 'user';
|
||||
}
|
||||
|
||||
if ($request->filled('status_id')) {
|
||||
$asset->status_id = $request->get('status_id');
|
||||
}
|
||||
|
||||
|
||||
if (!isset($target)) {
|
||||
|
||||
@@ -26,7 +26,7 @@ class LicensesController extends Controller
|
||||
public function index(Request $request)
|
||||
{
|
||||
$this->authorize('view', License::class);
|
||||
$licenses = Company::scopeCompanyables(License::with('company', 'manufacturer', 'freeSeats', 'supplier','category')->withCount('freeSeats as free_seats_count'));
|
||||
$licenses = Company::scopeCompanyables(License::with('company', 'manufacturer', 'supplier','category')->withCount('freeSeats as free_seats_count'));
|
||||
|
||||
|
||||
if ($request->filled('company_id')) {
|
||||
|
||||
@@ -30,11 +30,11 @@ class ProfileController extends Controller
|
||||
// Make sure the asset and request still exist
|
||||
if ($checkoutRequest && $checkoutRequest->itemRequested()) {
|
||||
$results['rows'][] = [
|
||||
'image' => $checkoutRequest->itemRequested()->present()->getImageUrl(),
|
||||
'name' => $checkoutRequest->itemRequested()->present()->name(),
|
||||
'type' => $checkoutRequest->itemType(),
|
||||
'qty' => $checkoutRequest->quantity,
|
||||
'location' => ($checkoutRequest->location()) ? $checkoutRequest->location()->name : null,
|
||||
'image' => e($checkoutRequest->itemRequested()->present()->getImageUrl()),
|
||||
'name' => e($checkoutRequest->itemRequested()->present()->name()),
|
||||
'type' => e($checkoutRequest->itemType()),
|
||||
'qty' => (int) $checkoutRequest->quantity,
|
||||
'location' => ($checkoutRequest->location()) ? e($checkoutRequest->location()->name) : null,
|
||||
'expected_checkin' => Helper::getFormattedDateObject($checkoutRequest->itemRequested()->expected_checkin, 'datetime'),
|
||||
'request_date' => Helper::getFormattedDateObject($checkoutRequest->created_at, 'datetime'),
|
||||
];
|
||||
|
||||
@@ -30,6 +30,19 @@ class StatuslabelsController extends Controller
|
||||
$statuslabels = $statuslabels->TextSearch($request->input('search'));
|
||||
}
|
||||
|
||||
// if a status_type is passed, filter by that
|
||||
if ($request->filled('status_type')) {
|
||||
if (strtolower($request->input('status_type')) == 'pending') {
|
||||
$statuslabels = $statuslabels->Pending();
|
||||
} elseif (strtolower($request->input('status_type')) == 'archived') {
|
||||
$statuslabels = $statuslabels->Archived();
|
||||
} elseif (strtolower($request->input('status_type')) == 'deployable') {
|
||||
$statuslabels = $statuslabels->Deployable();
|
||||
} elseif (strtolower($request->input('status_type')) == 'undeployable') {
|
||||
$statuslabels = $statuslabels->Undeployable();
|
||||
}
|
||||
}
|
||||
|
||||
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
|
||||
// case we override with the actual count, so we should return 0 items.
|
||||
$offset = (($statuslabels) && ($request->get('offset') > $statuslabels->count())) ? $statuslabels->count() : $request->get('offset', 0);
|
||||
|
||||
@@ -105,9 +105,9 @@ class AssetCheckinController extends Controller
|
||||
$asset->location_id = e($request->get('location_id'));
|
||||
}
|
||||
|
||||
$checkin_at = date('Y-m-d');
|
||||
if($request->filled('checkin_at')){
|
||||
$checkin_at = $request->input('checkin_at');
|
||||
$checkin_at = date('Y-m-d H:i:s');
|
||||
if (($request->filled('checkin_at')) && ($request->get('checkin_at') != date('Y-m-d'))) {
|
||||
$checkin_at = $request->get('checkin_at');
|
||||
}
|
||||
|
||||
// Was the asset updated?
|
||||
|
||||
@@ -410,7 +410,23 @@ class AssetsController extends Controller
|
||||
return redirect()->route('hardware.index')->with('success', trans('admin/hardware/message.delete.success'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Searches the assets table by serial, and redirects if it finds one
|
||||
*
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @since [v3.0]
|
||||
* @return Redirect
|
||||
*/
|
||||
public function getAssetBySerial(Request $request)
|
||||
{
|
||||
$topsearch = ($request->get('topsearch')=="true");
|
||||
|
||||
if (!$asset = Asset::where('serial', '=', $request->get('serial'))->first()) {
|
||||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
|
||||
}
|
||||
$this->authorize('view', $asset);
|
||||
return redirect()->route('hardware.show', $asset->id)->with('topsearch', $topsearch);
|
||||
}
|
||||
|
||||
/**
|
||||
* Searches the assets table by asset tag, and redirects if it finds one
|
||||
@@ -429,6 +445,8 @@ class AssetsController extends Controller
|
||||
$this->authorize('view', $asset);
|
||||
return redirect()->route('hardware.show', $asset->id)->with('topsearch', $topsearch);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a QR code for the asset
|
||||
*
|
||||
@@ -843,6 +861,7 @@ class AssetsController extends Controller
|
||||
|
||||
public function getRequestedIndex($user_id = null)
|
||||
{
|
||||
$this->authorize('index', Asset::class);
|
||||
$requestedItems = CheckoutRequest::with('user', 'requestedItem')->whereNull('canceled_at')->with('user', 'requestedItem');
|
||||
|
||||
if ($user_id) {
|
||||
|
||||
@@ -235,7 +235,7 @@ class LicensesController extends Controller
|
||||
public function show($licenseId = null)
|
||||
{
|
||||
|
||||
$license = License::with('assignedusers', 'licenseSeats.user', 'licenseSeats.asset')->find($licenseId);
|
||||
$license = License::with('assignedusers')->find($licenseId);
|
||||
|
||||
if ($license) {
|
||||
$this->authorize('view', $license);
|
||||
|
||||
@@ -272,13 +272,18 @@ class ReportsController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
if($actionlog->item){
|
||||
$item_name = e($actionlog->item->getDisplayNameAttribute());
|
||||
} else {
|
||||
$item_name ='';
|
||||
}
|
||||
|
||||
$row = [
|
||||
$actionlog->created_at,
|
||||
($actionlog->user) ? e($actionlog->user->getFullNameAttribute()) : '',
|
||||
$actionlog->present()->actionType(),
|
||||
e($actionlog->itemType()),
|
||||
($actionlog->itemType()=='user') ? $actionlog->filename : e($actionlog->item->getDisplayNameAttribute()),
|
||||
($actionlog->itemType()=='user') ? $actionlog->filename : $item_name,
|
||||
$target_name,
|
||||
($actionlog->note) ? e($actionlog->note): '',
|
||||
$actionlog->log_meta,
|
||||
|
||||
@@ -109,12 +109,15 @@ class BulkUsersController extends Controller
|
||||
if (!$manager_conflict) {
|
||||
$this->conditionallyAddItem('manager_id');
|
||||
}
|
||||
|
||||
|
||||
// Save the updated info
|
||||
User::whereIn('id', $user_raw_array)
|
||||
->where('id', '!=', Auth::id())->update($this->update_array);
|
||||
|
||||
if(array_key_exists('location_id', $this->update_array)){
|
||||
Asset::where('assigned_type', User::class)
|
||||
->whereIn('assigned_to', $user_raw_array)
|
||||
->update(['location_id' => $this->update_array['location_id']]);
|
||||
}
|
||||
// Only sync groups if groups were selected
|
||||
if ($request->filled('groups')) {
|
||||
foreach ($users as $user) {
|
||||
|
||||
@@ -39,6 +39,7 @@ class Kernel extends HttpKernel
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||
\App\Http\Middleware\CheckLocale::class,
|
||||
\App\Http\Middleware\CheckUserIsActivated::class,
|
||||
\App\Http\Middleware\CheckForTwoFactor::class,
|
||||
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
|
||||
\App\Http\Middleware\AssetCountForSidebar::class,
|
||||
|
||||
+10
-7
@@ -4,8 +4,9 @@ namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Auth\Guard;
|
||||
use Auth;
|
||||
|
||||
class Authenticate
|
||||
class CheckUserIsActivated
|
||||
{
|
||||
/**
|
||||
* The Guard implementation.
|
||||
@@ -34,14 +35,16 @@ class Authenticate
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if ($this->auth->guest()) {
|
||||
if ($request->ajax()) {
|
||||
return response('Unauthorized.', 401);
|
||||
} else {
|
||||
return redirect()->guest('login');
|
||||
}
|
||||
|
||||
// If there is a user AND the user is NOT activated, send them to the login page
|
||||
// This prevents people who still have active sessions logged in and their status gets toggled
|
||||
// to inactive (aka unable to login)
|
||||
if (($request->user()) && (!$request->user()->isActivated())) {
|
||||
Auth::logout();
|
||||
return redirect()->guest('login');
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ class AssetCheckoutRequest extends Request
|
||||
"assigned_user" => 'required_without_all:assigned_asset,assigned_location',
|
||||
"assigned_asset" => 'required_without_all:assigned_user,assigned_location',
|
||||
"assigned_location" => 'required_without_all:assigned_user,assigned_asset',
|
||||
'status_id' => 'exists:status_labels,id,deployable,1',
|
||||
"checkout_to_type" => 'required|in:asset,location,user'
|
||||
];
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ namespace App\Http\Transformers;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\Asset;
|
||||
use App\Models\Setting;
|
||||
use Gate;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
||||
@@ -20,6 +21,9 @@ class AssetsTransformer
|
||||
|
||||
public function transformAsset(Asset $asset)
|
||||
{
|
||||
// This uses the getSettings() method so we're pulling from the cache versus querying the settings on single asset
|
||||
$setting = Setting::getSettings();
|
||||
|
||||
$array = [
|
||||
'id' => (int) $asset->id,
|
||||
'name' => e($asset->name),
|
||||
@@ -64,6 +68,8 @@ class AssetsTransformer
|
||||
'name'=> e($asset->defaultLoc->name)
|
||||
] : null,
|
||||
'image' => ($asset->getImageUrl()) ? $asset->getImageUrl() : null,
|
||||
'qr' => ($setting->qr_code=='1') ? config('app.url').'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png' : null,
|
||||
'alt_barcode' => ($setting->alt_barcode_enabled=='1') ? config('app.url').'/uploads/barcodes/'.str_slug($setting->alt_barcode).'-'.str_slug($asset->asset_tag).'.png' : null,
|
||||
'assigned_to' => $this->transformAssignedTo($asset),
|
||||
'warranty_months' => ($asset->warranty_months > 0) ? e($asset->warranty_months . ' ' . trans('admin/hardware/form.months')) : null,
|
||||
'warranty_expires' => ($asset->warranty_months > 0) ? Helper::getFormattedDateObject($asset->warranty_expires, 'date') : null,
|
||||
|
||||
@@ -98,7 +98,7 @@ class DepreciationReportTransformer
|
||||
'purchase_cost' => Helper::formatCurrencyOutput($asset->purchase_cost),
|
||||
'book_value' => Helper::formatCurrencyOutput($depreciated_value),
|
||||
'monthly_depreciation' => $monthly_depreciation,
|
||||
'checked_out_to' => $checkout_target,
|
||||
'checked_out_to' => ($checkout_target) ? e($checkout_target) : null,
|
||||
'diff' => Helper::formatCurrencyOutput($diff),
|
||||
'number_of_months' => ($asset->model && $asset->model->depreciation) ? e($asset->model->depreciation->months) : null,
|
||||
'depreciation' => (($asset->model) && ($asset->model->depreciation)) ? e($asset->model->depreciation->name) : null,
|
||||
|
||||
@@ -46,14 +46,22 @@ class LicenseImporter extends ItemImporter
|
||||
$license = new License;
|
||||
}
|
||||
$asset_tag = $this->item['asset_tag'] = $this->findCsvMatch($row, 'asset_tag'); // used for checkout out to an asset.
|
||||
$this->item['expiration_date'] = $this->findCsvMatch($row, 'expiration_date');
|
||||
|
||||
$this->item["expiration_date"] = null;
|
||||
if ($this->findCsvMatch($row, "expiration_date")!='') {
|
||||
$this->item["expiration_date"] = date("Y-m-d 00:00:01", strtotime($this->findCsvMatch($row, "expiration_date")));
|
||||
}
|
||||
$this->item['license_email'] = $this->findCsvMatch($row, "license_email");
|
||||
$this->item['license_name'] = $this->findCsvMatch($row, "license_name");
|
||||
$this->item['maintained'] = $this->findCsvMatch($row, 'maintained');
|
||||
$this->item['purchase_order'] = $this->findCsvMatch($row, 'purchase_order');
|
||||
$this->item['reassignable'] = $this->findCsvMatch($row, 'reassignable');
|
||||
$this->item['seats'] = $this->findCsvMatch($row, 'seats');
|
||||
$this->item['termination_date'] = $this->findCsvMatch($row, 'termination_date');
|
||||
|
||||
$this->item["termination_date"] = null;
|
||||
if ($this->findCsvMatch($row, "termination_date")!='') {
|
||||
$this->item["termination_date"] = date("Y-m-d 00:00:01", strtotime($this->findCsvMatch($row, "termination_date")));
|
||||
}
|
||||
|
||||
if ($editingLicense) {
|
||||
$license->update($this->sanitizeItemForUpdating($license));
|
||||
|
||||
@@ -30,7 +30,7 @@ class Actionlog extends SnipeModel
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $searchableAttributes = ['action_type', 'note', 'log_meta'];
|
||||
protected $searchableAttributes = ['action_type', 'note', 'log_meta','user_id'];
|
||||
|
||||
/**
|
||||
* The relations and their attributes that should be included when searching the model.
|
||||
@@ -38,7 +38,8 @@ class Actionlog extends SnipeModel
|
||||
* @var array
|
||||
*/
|
||||
protected $searchableRelations = [
|
||||
'company' => ['name']
|
||||
'company' => ['name'],
|
||||
'user' => ['first_name','last_name','username'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -185,10 +185,19 @@ class Asset extends Depreciable
|
||||
$model = AssetModel::find($this->model_id);
|
||||
|
||||
if (($model) && ($model->fieldset)) {
|
||||
|
||||
foreach ($model->fieldset->fields as $field){
|
||||
if($field->format == 'BOOLEAN'){
|
||||
$this->{$field->db_column} = filter_var($this->{$field->db_column}, FILTER_VALIDATE_BOOLEAN);
|
||||
}
|
||||
}
|
||||
|
||||
$this->rules += $model->fieldset->validation_rules();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return parent::save($params);
|
||||
}
|
||||
|
||||
|
||||
+19
-7
@@ -45,7 +45,7 @@ class License extends Depreciable
|
||||
|
||||
protected $rules = array(
|
||||
'name' => 'required|string|min:3|max:255',
|
||||
'seats' => 'required|min:1|max:999|integer',
|
||||
'seats' => 'required|min:1|max:9999|integer',
|
||||
'license_email' => 'email|nullable|max:120',
|
||||
'license_name' => 'string|nullable|max:100',
|
||||
'notes' => 'string|nullable',
|
||||
@@ -173,13 +173,25 @@ class License extends Depreciable
|
||||
$logAction->logaction('delete seats');
|
||||
return true;
|
||||
}
|
||||
// Else we're adding seats.
|
||||
DB::transaction(function () use ($license, $oldSeats, $newSeats) {
|
||||
for ($i = $oldSeats; $i < $newSeats; $i++) {
|
||||
$license->licenseSeatsRelation()->save(new LicenseSeat, ['user_id' => Auth::id()]);
|
||||
}
|
||||
//Create enough seats for the change.
|
||||
$licenseInsert = [];
|
||||
for ($i = $oldSeats; $i < $newSeats; $i++) {
|
||||
$licenseInsert[] = [
|
||||
'user_id' => Auth::id(),
|
||||
'license_id' => $license->id,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
}
|
||||
//Chunk and use DB transactions to prevent timeouts.
|
||||
|
||||
collect($licenseInsert)->chunk(1000)->each(function ($chunk) {
|
||||
DB::transaction(function () use ($chunk) {
|
||||
LicenseSeat::insert($chunk->toArray());
|
||||
});
|
||||
});
|
||||
// On initail create, we shouldn't log the addition of seats.
|
||||
|
||||
// On initial create, we shouldn't log the addition of seats.
|
||||
if ($license->id) {
|
||||
//Log the addition of license to the log.
|
||||
$logAction = new Actionlog();
|
||||
|
||||
@@ -116,6 +116,9 @@ trait Loggable
|
||||
$log->location_id = null;
|
||||
$log->note = $note;
|
||||
$log->action_date = $action_date;
|
||||
if (! $log->action_date) {
|
||||
$log->action_date = date('Y-m-d H:i:s');
|
||||
}
|
||||
|
||||
if (Auth::user()) {
|
||||
$log->user_id = Auth::user()->id;
|
||||
|
||||
@@ -121,6 +121,18 @@ class Statuslabel extends SnipeModel
|
||||
->where('deployable', '=', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Query builder scope for undeployable status types
|
||||
*
|
||||
* @return \Illuminate\Database\Query\Builder Modified query builder
|
||||
*/
|
||||
public function scopeUndeployable()
|
||||
{
|
||||
return $this->where('pending', '=', 0)
|
||||
->where('archived', '=', 0)
|
||||
->where('deployable', '=', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to determine type attributes
|
||||
*
|
||||
|
||||
+2
-3
@@ -70,7 +70,6 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
* @var array
|
||||
*/
|
||||
|
||||
// 'username' => 'required|string|min:1|unique:users,username,NULL,id,deleted_at,NULL',
|
||||
protected $rules = [
|
||||
'first_name' => 'required|string|min:1',
|
||||
'username' => 'required|string|min:1|unique_undeleted',
|
||||
@@ -306,7 +305,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
*/
|
||||
public function consumables()
|
||||
{
|
||||
return $this->belongsToMany('\App\Models\Consumable', 'consumables_users', 'assigned_to', 'consumable_id')->withPivot('id')->withTrashed();
|
||||
return $this->belongsToMany('\App\Models\Consumable', 'consumables_users', 'assigned_to', 'consumable_id')->withPivot('id', 'created_at')->withTrashed();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -318,7 +317,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
*/
|
||||
public function licenses()
|
||||
{
|
||||
return $this->belongsToMany('\App\Models\License', 'license_seats', 'assigned_to', 'license_id')->withPivot('id');
|
||||
return $this->belongsToMany('\App\Models\License', 'license_seats', 'assigned_to', 'license_id')->withPivot('id', 'created_at');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,12 +17,13 @@ class AssetObserver
|
||||
*/
|
||||
public function updating(Asset $asset)
|
||||
{
|
||||
|
||||
// If the asset isn't being checked out or audited, log the update.
|
||||
// (Those other actions already create log entries.)
|
||||
if (($asset->getAttributes()['assigned_to'] == $asset->getOriginal()['assigned_to'])
|
||||
&& ($asset->getAttributes()['next_audit_date'] == $asset->getOriginal()['next_audit_date'])
|
||||
&& ($asset->getAttributes()['last_checkout'] == $asset->getOriginal()['last_checkout']))
|
||||
$attributes = $asset->getAttributes();
|
||||
$attributesOriginal = $asset->getOriginal();
|
||||
// If the asset isn't being checked out or audited, log the update.
|
||||
// (Those other actions already create log entries.)
|
||||
if (($attributes['assigned_to'] == $attributesOriginal['assigned_to'])
|
||||
&& ((isset( $attributes['next_audit_date']) ? $attributes['next_audit_date'] : null) == (isset($attributesOriginal['next_audit_date']) ? $attributesOriginal['next_audit_date']: null))
|
||||
&& ($attributes['last_checkout'] == $attributesOriginal['last_checkout']))
|
||||
{
|
||||
$changed = [];
|
||||
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@
|
||||
"doctrine/inflector": "^1.3",
|
||||
"doctrine/instantiator": "^1.3",
|
||||
"eduardokum/laravel-mail-auto-embed": "^1.0",
|
||||
"enshrined/svg-sanitize": "^0.13.3",
|
||||
"enshrined/svg-sanitize": "^0.15.0",
|
||||
"erusev/parsedown": "^1.7",
|
||||
"fideloper/proxy": "^4.3",
|
||||
"fruitcake/laravel-cors": "^2.2",
|
||||
|
||||
Generated
+968
-436
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'vV5.4.1',
|
||||
'full_app_version' => 'vV5.4.1 - build 6746-g3e22dce11',
|
||||
'build_version' => '6746',
|
||||
'app_version' => 'v5.4.4',
|
||||
'full_app_version' => 'v5.4.4 - build 6829-gfd71b4848',
|
||||
'build_version' => '6829',
|
||||
'prerelease_version' => '',
|
||||
'hash_version' => 'g3e22dce11',
|
||||
'full_hash' => 'V5.4.1-20-g3e22dce11',
|
||||
'hash_version' => 'gfd71b4848',
|
||||
'full_hash' => 'v5.4.4-14-gfd71b4848',
|
||||
'branch' => 'master',
|
||||
);
|
||||
@@ -1,4 +1,8 @@
|
||||
<?php
|
||||
namespace Database\Factories;
|
||||
|
||||
use App\Models\Category;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -13,16 +17,18 @@ $factory->define(App\Models\License::class, function (Faker\Generator $faker) {
|
||||
|
||||
return [
|
||||
'user_id' => 1,
|
||||
'license_name' => $faker->name,
|
||||
'name' => $this->faker->name,
|
||||
'license_email' => $faker->safeEmail,
|
||||
'serial' => $faker->uuid,
|
||||
'notes' => 'Created by DB seeder',
|
||||
'seats' => $this->faker->numberBetween(1, 10),
|
||||
'purchase_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get()),
|
||||
'order_number' => $faker->numberBetween(1000000, 50000000),
|
||||
'expiration_date' => $faker->dateTimeBetween('now', '+3 years', date_default_timezone_get())->format('Y-m-d H:i:s'),
|
||||
'reassignable' => $faker->boolean(),
|
||||
'termination_date' => $faker->dateTimeBetween('-1 years','now', date_default_timezone_get())->format('Y-m-d H:i:s'),
|
||||
'supplier_id' => $faker->numberBetween(1,5),
|
||||
'category_id' => Category::where('category_type', '=', 'license')->inRandomOrder()->first()->id,
|
||||
];
|
||||
});
|
||||
|
||||
|
||||
@@ -14,13 +14,14 @@ class CreateCustomFieldCustomFieldset extends Migration {
|
||||
{
|
||||
Schema::create('custom_field_custom_fieldset', function(Blueprint $table)
|
||||
{
|
||||
$table->bigIncrements('id');
|
||||
$table->integer('custom_field_id');
|
||||
$table->integer('custom_fieldset_id');
|
||||
|
||||
$table->integer('order');
|
||||
$table->boolean('required');
|
||||
$table->engine = 'InnoDB';
|
||||
$table->engine = 'InnoDB';
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,20 +13,22 @@ class CreateCheckoutAcceptancesTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('checkout_acceptances', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
if (!Schema::hasTable('checkout_acceptances')) {
|
||||
Schema::create('checkout_acceptances', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->morphs('checkoutable');
|
||||
$table->integer('assigned_to_id')->nullable();
|
||||
$table->morphs('checkoutable');
|
||||
$table->integer('assigned_to_id')->nullable();
|
||||
|
||||
$table->string('signature_filename')->nullable();
|
||||
$table->string('signature_filename')->nullable();
|
||||
|
||||
$table->timestamp('accepted_at')->nullable();
|
||||
$table->timestamp('declined_at')->nullable();
|
||||
$table->timestamp('accepted_at')->nullable();
|
||||
$table->timestamp('declined_at')->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -36,6 +38,8 @@ class CreateCheckoutAcceptancesTable extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('checkout_acceptances');
|
||||
if (Schema::hasTable('checkout_acceptances')) {
|
||||
Schema::dropIfExists('checkout_acceptances');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,14 +12,15 @@ class AddKitsLicensesTable extends Migration {
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::create('kits_licenses', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('license_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
if (!Schema::hasTable('kits_licenses')) {
|
||||
Schema::create('kits_licenses', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('license_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,8 +30,9 @@ class AddKitsLicensesTable extends Migration {
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::drop('kits_licenses');
|
||||
if (Schema::hasTable('kits_licenses')) {
|
||||
Schema::drop('kits_licenses');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,13 +12,14 @@ class AddKitsTable extends Migration {
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::create('kits', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable()->default(NULL);
|
||||
$table->timestamps();
|
||||
$table->engine = 'InnoDB';
|
||||
});
|
||||
if (!Schema::hasTable('kits')) {
|
||||
Schema::create('kits', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable()->default(NULL);
|
||||
$table->timestamps();
|
||||
$table->engine = 'InnoDB';
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,8 +30,9 @@ class AddKitsTable extends Migration {
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::drop('kits');
|
||||
if (Schema::hasTable('kits')) {
|
||||
Schema::drop('kits');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -12,14 +12,15 @@ class AddKitsModelsTable extends Migration {
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::create('kits_models', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('model_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
if (!Schema::hasTable('kits_models')) {
|
||||
Schema::create('kits_models', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('model_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,8 +30,9 @@ class AddKitsModelsTable extends Migration {
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::drop('kits_models');
|
||||
if (Schema::hasTable('kits_models')) {
|
||||
Schema::drop('kits_models');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,14 +13,15 @@ class AddKitsConsumablesTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::create('kits_consumables', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('consumable_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
if (!Schema::hasTable('kits_consumables')) {
|
||||
Schema::create('kits_consumables', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('consumable_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,7 +31,8 @@ class AddKitsConsumablesTable extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::drop('kits_consumables');
|
||||
if (Schema::hasTable('kits_consumables')) {
|
||||
Schema::drop('kits_consumables');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,14 +13,15 @@ class AddKitsAccessoriesTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
//
|
||||
Schema::create('kits_accessories', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('accessory_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
if (!Schema::hasTable('kits_accessories')) {
|
||||
Schema::create('kits_accessories', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->integer('kit_id')->nullable()->default(NULL);
|
||||
$table->integer('accessory_id')->nullable()->default(NULL);
|
||||
$table->integer('quantity')->default(1);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,7 +31,8 @@ class AddKitsAccessoriesTable extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
Schema::drop('kits_accessories');
|
||||
if (Schema::hasTable('kits_accessories')) {
|
||||
Schema::drop('kits_accessories');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddLicenseIdIndexToLicenseSeats extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('license_seats', function (Blueprint $table) {
|
||||
$table->index(['license_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('license_seats', function (Blueprint $table) {
|
||||
$table->dropIndex(['license_id']);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddPrimaryKeyToCustomFieldsPivot extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
|
||||
// Check if the ID primary key already exists, if not, add it
|
||||
Schema::table('custom_field_custom_fieldset', function (Blueprint $table) {
|
||||
if (!Schema::hasColumn('custom_field_custom_fieldset', 'id')) {
|
||||
$table->bigIncrements('id')->first();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('custom_field_custom_fieldset', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('custom_field_custom_fieldset', 'id')) {
|
||||
$table->dropColumn('id');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Generated
+3
-3
@@ -2693,9 +2693,9 @@
|
||||
"integrity": "sha1-EQPWvADPv6jPyaJZmrUYxVZD2j8="
|
||||
},
|
||||
"bootstrap-table": {
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.19.1.tgz",
|
||||
"integrity": "sha512-WvV+l1AI/C+zThaKmfHmi/IuayVNB0qdFyEhFx1jyZhO0oLtNJNANkCR3rvJf6Dkh72dsLElxpE/bzK9seEQLA=="
|
||||
"version": "1.18.3",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.18.3.tgz",
|
||||
"integrity": "sha512-/eFLkldDlNFi37qC/d9THfRVxMUGD34E8fQBFtXJLDHLBOVKWDTq7BV+udoP7k3FfCEyhM1jWQnQ0rMQdBv//w=="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
"bootstrap-colorpicker": "^2.5.3",
|
||||
"bootstrap-datepicker": "^1.9.0",
|
||||
"bootstrap-less": "^3.3.8",
|
||||
"bootstrap-table": "^1.19.1",
|
||||
"bootstrap-table": "1.18.x",
|
||||
"chart.js": "^2.9.4",
|
||||
"css-loader": "^3.6.0",
|
||||
"ekko-lightbox": "^5.1.1",
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -18,14 +18,14 @@
|
||||
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=0409748eb4bb77fe171a",
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=7abb3dcd41ad0d4700b7",
|
||||
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=96477616f4a4b4ff1db8",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=23d12dde43fa52cbc84d",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=19b5eace0db8c1559925",
|
||||
"/css/blue.png": "/css/blue.png?id=e83a6c29e04fe851f212",
|
||||
"/css/blue@2x.png": "/css/blue@2x.png?id=51135dd4d24f88f5de0b",
|
||||
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced",
|
||||
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced",
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=810d7e520c3057ee500e",
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=93c24b4c89490bbfd73e",
|
||||
"/js/build/vendor.js": "/js/build/vendor.js?id=b93877b4a88a76e1b18b",
|
||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=473d249fc27f1b907d07",
|
||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=75760107ce879b26f156",
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=1b9488168279292af5c4",
|
||||
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=1f137fd2dcbac676d291",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=af88a4cc8e58dc298963",
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'argief',
|
||||
'asset' => 'bate',
|
||||
'bulk_checkout' => 'Checkout Assets',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Kontrole bate',
|
||||
'checkout' => 'Checkout Asset',
|
||||
'clone' => 'Klone Bate',
|
||||
|
||||
@@ -17,11 +17,11 @@ return [
|
||||
'alerts_enabled' => 'Alerts aangeskakel',
|
||||
'alert_interval' => 'Uitgaande Alert Drempel (in dae)',
|
||||
'alert_inv_threshold' => 'Voorraadwaarskuwingsdrempel',
|
||||
'allow_user_skin' => 'Allow user skin',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
'asset_ids' => 'Bate ID\'s',
|
||||
'audit_interval' => 'Ouditinterval',
|
||||
'audit_interval_help' => 'As u gereeld u bates fisies moet kontroleer, vul die interval in maande in.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Oudit Waarskuwing Drempel',
|
||||
'audit_warning_days_help' => 'Hoeveel dae vooruit moet ons u waarsku wanneer bates verskuldig is vir ouditering?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode-instellings',
|
||||
'confirm_purge' => 'Bevestig skoonmaak',
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'EOL',
|
||||
'email_domain' => 'E-pos Domein',
|
||||
'email_format' => 'E-pos formaat',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'Dit word gebruik om e-posadresse te genereer wanneer u dit invoer',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'Eerste Voorletter (jsmith@voorbeeld.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'HOEV',
|
||||
'quantity' => 'hoeveelheid',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Klaar om te implementeer',
|
||||
'recent_activity' => 'Onlangse aktiwiteite',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Jou wagwoord skakel is gestuur!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'No matching active user found with that email.',
|
||||
];
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'Archived',
|
||||
'asset' => 'Asset',
|
||||
'bulk_checkout' => 'Checkout Assets',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Checkin Asset',
|
||||
'checkout' => 'Checkout Asset',
|
||||
'clone' => 'Clone Asset',
|
||||
|
||||
@@ -17,11 +17,11 @@ return [
|
||||
'alerts_enabled' => 'Email Alerts Enabled',
|
||||
'alert_interval' => 'Expiring Alerts Threshold (in days)',
|
||||
'alert_inv_threshold' => 'Inventory Alert Threshold',
|
||||
'allow_user_skin' => 'Allow user skin',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
'asset_ids' => 'Asset IDs',
|
||||
'audit_interval' => 'Audit Interval',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Audit Warning Threshold',
|
||||
'audit_warning_days_help' => 'How many days in advance should we warn you when assets are due for auditing?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode Settings',
|
||||
'confirm_purge' => 'Confirm Purge',
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'EOL',
|
||||
'email_domain' => 'Email Domain',
|
||||
'email_format' => 'Email Format',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'This is used to generate email addresses when importing',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'First Initial Last Name (jsmith@example.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'QTY',
|
||||
'quantity' => 'Quantity',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Ready to Deploy',
|
||||
'recent_activity' => 'Recent Activity',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Your password link has been sent!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'No matching active user found with that email.',
|
||||
];
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'يجب أن تكون هذه القيمة فريدة من نوعها عبر جميع الأصول',
|
||||
'unique' => 'غير مكرر',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'مؤرشفة',
|
||||
'asset' => 'أصل',
|
||||
'bulk_checkout' => 'إخراج الأصول',
|
||||
'bulk_checkin' => 'ادخال الأصل',
|
||||
'checkin' => 'ادخال الأصل',
|
||||
'checkout' => 'اخراج الأصل',
|
||||
'clone' => 'استنساخ الأصل',
|
||||
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'allow_user_skin_help_text' => 'التحقق من هذا المربع سيسمح للمستخدم باستخدام مظهر واجهة المستخدم بمظهر آخر.',
|
||||
'asset_ids' => 'ارقام تعريف الاصول',
|
||||
'audit_interval' => 'مدة التدقيق',
|
||||
'audit_interval_help' => 'إذا كان مطلوبا منك مراجعة أصولك الفعلية بشكل دوري، قم بإدخال المدة بالأشهر.',
|
||||
'audit_interval_help' => 'إذا كان مطلوبا منك التدقيق المادي بانتظام في الأصول الخاصة بك، قم بإدخال الفاصل الزمني بالأشهر التي تستخدمها. إذا قمت بتحديث هذه القيمة، كل "تواريخ المراجعة التالية" للأصول مع تاريخ مراجعة الحسابات المقبل.',
|
||||
'audit_warning_days' => 'عتبة تحذير التدقيق',
|
||||
'audit_warning_days_help' => 'كم يوما مقدما يجب أن نحذركم عندما تكون الأصول مستحقة للتدقيق؟',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'سيتم تسجيل الخروج من جميع المستخدمين الحاليين، بما في ذلك انت، بمجرد اكتمال الاستعادة.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'إعدادات الباركود',
|
||||
'confirm_purge' => 'تأكيد التطهير',
|
||||
|
||||
@@ -30,7 +30,7 @@ return [
|
||||
'superadmin_permission_warning' => 'Only superadmins may grant a user superadmin access.',
|
||||
'admin_permission_warning' => 'Only users with admins rights or greater may grant a user admin access.',
|
||||
'remove_group_memberships' => 'Remove Group Memberships',
|
||||
'warning_deletion' => 'WARNING:',
|
||||
'warning_deletion' => 'تحذير:',
|
||||
'warning_deletion_information' => 'You are about to delete the :count user(s) listed below. Super admin names are highlighted in red.',
|
||||
'update_user_asssets_status' => 'Update all assets for these users to this status',
|
||||
'checkin_user_properties' => 'Check in all properties associated with these users',
|
||||
|
||||
@@ -8,7 +8,7 @@ return [
|
||||
'delete' => 'حذف',
|
||||
'edit' => 'تعديل',
|
||||
'restore' => 'إستعادة',
|
||||
'remove' => 'إزالة',
|
||||
'remove' => 'حذف',
|
||||
'request' => 'طلب',
|
||||
'submit' => 'إرسال',
|
||||
'upload' => 'رفع',
|
||||
@@ -17,8 +17,8 @@ return [
|
||||
'generate_labels' => '{1} انشاء تسميات [2,*] توليد تسميات',
|
||||
'send_password_link' => 'إرسال رابط إعادة تعيين كلمة السر',
|
||||
'go' => 'انطلق',
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'add_maintenance' => 'Add Maintenance',
|
||||
'append' => 'Append',
|
||||
'bulk_actions' => 'مجموعة إجراءات',
|
||||
'add_maintenance' => 'إضافة صيانة',
|
||||
'append' => 'إلحاق',
|
||||
'new' => 'جديد',
|
||||
];
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
'asset' => 'الأصول',
|
||||
'asset_report' => 'تقرير الأصول',
|
||||
'asset_tag' => 'ترميز الأصل',
|
||||
'asset_tags' => 'Asset Tags',
|
||||
'assets_available' => 'Assets available',
|
||||
'accept_assets' => 'Accept Assets :name',
|
||||
'accept_assets_menu' => 'Accept Assets',
|
||||
'asset_tags' => 'وسم الأصل',
|
||||
'assets_available' => 'الأصول المتاحة',
|
||||
'accept_assets' => 'قبول الأصول :name',
|
||||
'accept_assets_menu' => 'قبول الأصول',
|
||||
'audit' => 'تدقيق',
|
||||
'audit_report' => 'سجل التدقيق',
|
||||
'assets' => 'الأصول',
|
||||
@@ -33,10 +33,10 @@
|
||||
'bulkaudit' => 'تدقيق متعدد',
|
||||
'bulkaudit_status' => 'حالة التدقيق',
|
||||
'bulk_checkout' => 'اخراج متعدد',
|
||||
'bulk_edit' => 'Bulk Edit',
|
||||
'bulk_delete' => 'Bulk Delete',
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'bulk_checkin_delete' => 'Bulk Checkin & Delete',
|
||||
'bulk_edit' => 'تحرير بالجملة',
|
||||
'bulk_delete' => 'حذف بالجملة',
|
||||
'bulk_actions' => 'مجموعة إجراءات',
|
||||
'bulk_checkin_delete' => 'التدقيق بالجملة & حذف',
|
||||
'bystatus' => 'حسب الحالة',
|
||||
'cancel' => 'إلغاء',
|
||||
'categories' => 'التصنيفات',
|
||||
@@ -69,8 +69,8 @@
|
||||
'updated_at' => 'تم التحديث في',
|
||||
'currency' => '$', // this is deprecated
|
||||
'current' => 'الحالي',
|
||||
'current_password' => 'Current Password',
|
||||
'customize_report' => 'Customize Report',
|
||||
'current_password' => 'كلمة المرور الحالية',
|
||||
'customize_report' => 'تخصيص التقرير',
|
||||
'custom_report' => 'تقرير مخصص للأصول',
|
||||
'dashboard' => 'لوحة القيادة',
|
||||
'days' => 'أيام',
|
||||
@@ -82,12 +82,12 @@
|
||||
'delete_confirm' => 'هل أنت متأكد من حذف :المنتج؟',
|
||||
'deleted' => 'تم حذفها',
|
||||
'delete_seats' => 'المقاعد المحذوفة',
|
||||
'deletion_failed' => 'Deletion failed',
|
||||
'deletion_failed' => 'فشل الحذف',
|
||||
'departments' => 'الإدارات',
|
||||
'department' => ' قسم، أقسام',
|
||||
'deployed' => 'مُوزعة',
|
||||
'depreciation' => 'الإستهلاك',
|
||||
'depreciations' => 'Depreciations',
|
||||
'depreciations' => 'الاستهلاكات',
|
||||
'depreciation_report' => 'تقرير الإستهلاك',
|
||||
'details' => 'التفاصيل',
|
||||
'download' => 'تحميل',
|
||||
@@ -96,8 +96,9 @@
|
||||
'eol' => 'نهاية العمر',
|
||||
'email_domain' => 'نطاق البريد الإلكتروني',
|
||||
'email_format' => 'تنسيق البريد الإلكتروني',
|
||||
'employee_number' => 'رقم الموظف',
|
||||
'email_domain_help' => 'يتم استخدام هذا لتوليد عناوين البريد الإلكتروني عند الاستيراد',
|
||||
'error' => 'Error',
|
||||
'error' => 'خطأ',
|
||||
'filastname_format' => 'الاسم الأخير الأول (jsmith@example.com)',
|
||||
'firstname_lastname_format' => 'الاسم الأول الاسم الأخير (jane.smith@example.com)',
|
||||
'firstname_lastname_underscore_format' => 'الاسم الأول الاسم الأخير (jane_smith@example.com)',
|
||||
@@ -114,13 +115,13 @@
|
||||
'file_name' => 'ملف',
|
||||
'file_type' => 'نوع الملف',
|
||||
'file_uploads' => 'تحميلات الملفات',
|
||||
'file_upload' => 'File Upload',
|
||||
'file_upload' => 'رفع الملف',
|
||||
'generate' => 'توفير',
|
||||
'generate_labels' => 'Generate Labels',
|
||||
'generate_labels' => 'إنشاء تسميات',
|
||||
'github_markdown' => 'يتيح هذا الحقل <a href="https://help.github.com/articles/github-flavored-markdown/">بتطبيق نمط الكتابة من Github</a>.',
|
||||
'groups' => 'المجموعات',
|
||||
'gravatar_email' => 'البريد الإلكتروني لخدمة Gravatar',
|
||||
'gravatar_url' => '<a href="http://gravatar.com"><small>Change your avatar at Gravatar.com</small></a>.',
|
||||
'gravatar_url' => '<a href="http://gravatar.com"><small>غيّر صورتك الرمزية في Gravatar.com</small></a>.',
|
||||
'history' => 'الأرشيف',
|
||||
'history_for' => 'السجل لـ',
|
||||
'id' => 'رقم التعريف',
|
||||
@@ -128,7 +129,7 @@
|
||||
'image_delete' => 'حذف الصورة',
|
||||
'image_upload' => 'رفع صورة',
|
||||
'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.',
|
||||
'filetypes_size_help' => 'Max upload size allowed is :size.',
|
||||
'filetypes_size_help' => 'الحد الأقصى لحجم الرفع المسموح به هو :size.',
|
||||
'image_filetypes_help' => 'أنواع الملفات المقبولة هي jpg، webpp، png، gif، svg. الحد الأقصى المسموح به للتحميل هو :size.',
|
||||
'import' => 'استيراد',
|
||||
'importing' => 'الاستيراد',
|
||||
@@ -138,7 +139,7 @@
|
||||
'asset_maintenance_report' => 'تقرير صيانة الأصول',
|
||||
'asset_maintenances' => 'صيانة الأصول',
|
||||
'item' => 'بند',
|
||||
'item_name' => 'Item Name',
|
||||
'item_name' => 'إسم العنصر',
|
||||
'insufficient_permissions' => 'صلاحيات غير كافية!',
|
||||
'kits' => 'مجموعات محددة مسبقاً',
|
||||
'language' => 'لغة',
|
||||
@@ -150,7 +151,7 @@
|
||||
'licenses_available' => 'التراخيص المتاحة',
|
||||
'licenses' => 'التراخيص',
|
||||
'list_all' => 'عرض الكل',
|
||||
'loading' => 'Loading... please wait....',
|
||||
'loading' => 'جار التحميل. أرجو الإنتظار....',
|
||||
'lock_passwords' => 'لن يتم حفظ قيمة الحقل هذه في تثبيت تجريبي.',
|
||||
'feature_disabled' => 'تم تعطيل هذه الميزة للتثبيت التجريبي.',
|
||||
'location' => 'الموقع',
|
||||
@@ -169,7 +170,7 @@
|
||||
'months' => 'أشهر',
|
||||
'moreinfo' => 'المزيد من المعلومات',
|
||||
'name' => 'الإسم',
|
||||
'new_password' => 'New Password',
|
||||
'new_password' => 'كلمة المرور الجديدة',
|
||||
'next' => 'التالى',
|
||||
'next_audit_date' => 'تاريخ التدقيق التالي',
|
||||
'last_audit' => 'آخر مراجعة',
|
||||
@@ -191,23 +192,25 @@
|
||||
'purchase_date' => 'تاريخ الشراء',
|
||||
'qty' => 'الكمية',
|
||||
'quantity' => 'كمية',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quantity_minimum' => 'لديك :count عناصر أقل أو قريبة من الحد الأدنى لمستويات الكمية',
|
||||
'quickscan_checkin' => 'فحص سريع للادخال',
|
||||
'quickscan_checkin_status' => 'فحص حالة الادخال',
|
||||
'ready_to_deploy' => 'جاهزة للتوزيع',
|
||||
'recent_activity' => 'آخر نشاط',
|
||||
'remaining' => 'Remaining',
|
||||
'remaining' => 'المتبقية',
|
||||
'remove_company' => 'إزالة جمعية الشركة',
|
||||
'reports' => 'التقارير',
|
||||
'restored' => 'المعاد',
|
||||
'restore' => 'إستعادة',
|
||||
'requestable_models' => 'Requestable Models',
|
||||
'requestable_models' => 'النماذج المطلوبة',
|
||||
'requested' => 'طلب',
|
||||
'requested_date' => 'Requested Date',
|
||||
'requested_assets' => 'Requested Assets',
|
||||
'requested_assets_menu' => 'Requested Assets',
|
||||
'requested_date' => 'تاريخ الطلب',
|
||||
'requested_assets' => 'الأصول المطلوبة',
|
||||
'requested_assets_menu' => 'الأصول المطلوبة',
|
||||
'request_canceled' => 'تم إلغاء الطلب',
|
||||
'save' => 'حفظ',
|
||||
'select' => 'تحديد',
|
||||
'select_all' => 'Select All',
|
||||
'select_all' => 'اختر الكل',
|
||||
'search' => 'بحث',
|
||||
'select_category' => 'اختر تصنيف',
|
||||
'select_department' => 'حدد قسم',
|
||||
@@ -273,26 +276,26 @@
|
||||
'accept' => 'قبول :asset',
|
||||
'i_accept' => 'قبول',
|
||||
'i_decline' => 'أنا أرفض',
|
||||
'accept_decline' => 'Accept/Decline',
|
||||
'accept_decline' => 'قبول/رفض',
|
||||
'sign_tos' => 'قم بتسجيل الدخول أدناه للإشارة إلى أنك توافق على شروط الخدمة:',
|
||||
'clear_signature' => 'مسح التوقيع',
|
||||
'show_help' => 'إظهار المساعدة',
|
||||
'hide_help' => 'إخفاء المساعدة',
|
||||
'view_all' => 'view all',
|
||||
'hide_deleted' => 'Hide Deleted',
|
||||
'email' => 'Email',
|
||||
'do_not_change' => 'Do Not Change',
|
||||
'bug_report' => 'Report a Bug',
|
||||
'user_manual' => 'User\'s Manual',
|
||||
'setup_step_1' => 'Step 1',
|
||||
'setup_step_2' => 'Step 2',
|
||||
'setup_step_3' => 'Step 3',
|
||||
'setup_step_4' => 'Step 4',
|
||||
'setup_config_check' => 'Configuration Check',
|
||||
'setup_create_database' => 'Create Database Tables',
|
||||
'setup_create_admin' => 'Create Admin User',
|
||||
'setup_done' => 'Finished!',
|
||||
'bulk_edit_about_to' => 'You are about to edit the following: ',
|
||||
'view_all' => 'عرض الكل',
|
||||
'hide_deleted' => 'إخفاء المحذوفة',
|
||||
'email' => 'البريد الالكتروني',
|
||||
'do_not_change' => 'لا تقم بالتغيير',
|
||||
'bug_report' => 'الإبلاغ عن خلل',
|
||||
'user_manual' => 'دليل المستخدم',
|
||||
'setup_step_1' => 'الخطوة 1',
|
||||
'setup_step_2' => 'الخطوة 2',
|
||||
'setup_step_3' => 'الخطوة 3',
|
||||
'setup_step_4' => 'الخطوة 4',
|
||||
'setup_config_check' => 'التحقق من الاعدادات',
|
||||
'setup_create_database' => 'إنشاء جداول قاعدة البيانات',
|
||||
'setup_create_admin' => 'إنشاء مستخدم مسؤول',
|
||||
'setup_done' => 'إنتهى!',
|
||||
'bulk_edit_about_to' => 'أنت على وشك تحرير ما يلي: ',
|
||||
'checked_out' => 'Checked Out',
|
||||
'checked_out_to' => 'Checked out to',
|
||||
'fields' => 'Fields',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'تم إرسال رابط كلمة المرور الخاصة بك!',
|
||||
'sent' => 'تم بنجاح: إذا كان عنوان البريد الإلكتروني هذا موجودًا في نظامنا ، فقد تم إرسال بريد إلكتروني لاستعادة كلمة المرور.',
|
||||
'user' => 'لم يتم العثور على اسم مستخدم فعّال مرتبط بعنوان ذلك البريد الالكتروني.',
|
||||
];
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'Архивиран',
|
||||
'asset' => 'Актив',
|
||||
'bulk_checkout' => 'Изписване на активи',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Връщане на актив',
|
||||
'checkout' => 'Проверка на активите',
|
||||
'clone' => 'Копиране на актив',
|
||||
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'allow_user_skin_help_text' => 'Поставянето на отметка тук, ще позволи на потребителя да ползва различна UI тема от основната.',
|
||||
'asset_ids' => 'ID на активи',
|
||||
'audit_interval' => 'Одитен интервал',
|
||||
'audit_interval_help' => 'Ако се изисква редовно да извършвате физически одит на активите си, въведете интервала в месеци.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Праг за предупреждение за одит',
|
||||
'audit_warning_days_help' => 'Колко дни предварително трябва да ви предупреждаваме, когато активите са дължими за одит?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Настройки на баркод',
|
||||
'confirm_purge' => 'Потвърдете пречистване ',
|
||||
@@ -271,30 +271,30 @@ return [
|
||||
'unique_serial_help_text' => 'Отмятането на този чек, ще задължи ползването на уникални сериини номера на артикулите',
|
||||
'zerofill_count' => 'Дължина на етикети на актив, включително zerofill',
|
||||
'username_format_help' => 'Тази настройка се изпозлва само при импортиране, ако потребителя не е въведен и ние трябва да му генерираме потребителско име.',
|
||||
'oauth_title' => 'OAuth API Settings',
|
||||
'oauth_title' => 'OAuth API Настройки',
|
||||
'oauth' => 'OAuth',
|
||||
'oauth_help' => 'Oauth Endpoint Settings',
|
||||
'asset_tag_title' => 'Update Asset Tag Settings',
|
||||
'barcode_title' => 'Update Barcode Settings',
|
||||
'barcodes' => 'Barcodes',
|
||||
'barcodes' => 'Баркоди',
|
||||
'barcodes_help_overview' => 'Barcode & QR settings',
|
||||
'barcodes_help' => 'This will attempt to delete cached barcodes. This would typically only be used if your barcode settings have changed, or if your Snipe-IT URL has changed. Barcodes will be re-generated when accessed next.',
|
||||
'barcodes_spinner' => 'Attempting to delete files...',
|
||||
'barcode_delete_cache' => 'Delete Barcode Cache',
|
||||
'barcode_delete_cache' => 'Изтрий баркод кеша',
|
||||
'branding_title' => 'Update Branding Settings',
|
||||
'general_title' => 'Update General Settings',
|
||||
'mail_test' => 'Send Test',
|
||||
'general_title' => 'Обнови общите настройки',
|
||||
'mail_test' => 'Изпрати Тест',
|
||||
'mail_test_help' => 'This will attempt to send a test mail to :replyto.',
|
||||
'filter_by_keyword' => 'Filter by setting keyword',
|
||||
'security' => 'Security',
|
||||
'security_title' => 'Update Security Settings',
|
||||
'security_keywords' => 'password, passwords, requirements, two factor, two-factor, common passwords, remote login, logout, authentication',
|
||||
'security_help' => 'Two-factor, Password Restrictions',
|
||||
'groups_keywords' => 'permissions, permission groups, authorization',
|
||||
'groups_help' => 'Account permission groups',
|
||||
'localization' => 'Localization',
|
||||
'localization_title' => 'Update Localization Settings',
|
||||
'localization_keywords' => 'localization, currency, local, locale, time zone, timezone, international, internatinalization, language, languages, translation',
|
||||
'security' => 'Сигурност',
|
||||
'security_title' => 'Обнови настройките за сигурност',
|
||||
'security_keywords' => 'парола, парили, изисквания, двустепенна идентификация, двустепенна-идентификация, общи пароли, отдалечен вход, изход, идентификация',
|
||||
'security_help' => 'Двустепенна идентификация, ограничения на пароли',
|
||||
'groups_keywords' => 'права за достъп, групи за достъп, упълномощаване',
|
||||
'groups_help' => 'Групи с разрешения за акаунт',
|
||||
'localization' => 'Локализация',
|
||||
'localization_title' => 'Обнови настройките за локализация',
|
||||
'localization_keywords' => 'локализация, валута, местен, място, часова зона, международен, интернационализация, език, езици, превод',
|
||||
'localization_help' => 'Language, date display',
|
||||
'notifications' => 'Notifications',
|
||||
'notifications_help' => 'Email alerts, audit settings',
|
||||
|
||||
@@ -20,5 +20,5 @@ return [
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'add_maintenance' => 'Add Maintenance',
|
||||
'append' => 'Append',
|
||||
'new' => 'New',
|
||||
'new' => 'Нов',
|
||||
];
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
'asset' => 'Актив',
|
||||
'asset_report' => 'Справка за активите',
|
||||
'asset_tag' => 'Инвентарен номер',
|
||||
'asset_tags' => 'Asset Tags',
|
||||
'assets_available' => 'Assets available',
|
||||
'accept_assets' => 'Accept Assets :name',
|
||||
'accept_assets_menu' => 'Accept Assets',
|
||||
'asset_tags' => 'Етикет на актив',
|
||||
'assets_available' => 'Налични активи',
|
||||
'accept_assets' => 'Приеми Актив :name',
|
||||
'accept_assets_menu' => 'Приеми активите',
|
||||
'audit' => 'проверка',
|
||||
'audit_report' => 'Отчет за одита',
|
||||
'assets' => 'Активи',
|
||||
@@ -33,8 +33,8 @@
|
||||
'bulkaudit' => 'Групов одит',
|
||||
'bulkaudit_status' => 'Статус на одита',
|
||||
'bulk_checkout' => 'Общо отписване',
|
||||
'bulk_edit' => 'Bulk Edit',
|
||||
'bulk_delete' => 'Bulk Delete',
|
||||
'bulk_edit' => 'Групово редактиране',
|
||||
'bulk_delete' => 'Групово изтриване',
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'bulk_checkin_delete' => 'Bulk Checkin & Delete',
|
||||
'bystatus' => 'по Статус',
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'EOL',
|
||||
'email_domain' => 'Email домейн',
|
||||
'email_format' => 'Email формат',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'Използвайте това за да генерирате email адреси при въвеждане',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'Инициал на името Фамилия (jsmith@example.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'Количество',
|
||||
'quantity' => 'Kоличество',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Готово за предоставяне',
|
||||
'recent_activity' => 'Последни действия',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Линк към вашата парола бе изпратен!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'Не са намерени активни потребители с този е-майл.',
|
||||
];
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'Archived',
|
||||
'asset' => 'Asset',
|
||||
'bulk_checkout' => 'Checkout Assets',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Checkin Asset',
|
||||
'checkout' => 'Checkout Asset',
|
||||
'clone' => 'Clone Asset',
|
||||
|
||||
@@ -17,11 +17,11 @@ return [
|
||||
'alerts_enabled' => 'Email Alerts Enabled',
|
||||
'alert_interval' => 'Expiring Alerts Threshold (in days)',
|
||||
'alert_inv_threshold' => 'Inventory Alert Threshold',
|
||||
'allow_user_skin' => 'Allow user skin',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
'asset_ids' => 'Asset IDs',
|
||||
'audit_interval' => 'Audit Interval',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Audit Warning Threshold',
|
||||
'audit_warning_days_help' => 'How many days in advance should we warn you when assets are due for auditing?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Barcode Settings',
|
||||
'confirm_purge' => 'Confirm Purge',
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'EOL',
|
||||
'email_domain' => 'Email Domain',
|
||||
'email_format' => 'Email Format',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'This is used to generate email addresses when importing',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'First Initial Last Name (jsmith@example.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'QTY',
|
||||
'quantity' => 'Quantity',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Ready to Deploy',
|
||||
'recent_activity' => 'Recent Activity',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Your password link has been sent!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'No matching active user found with that email.',
|
||||
];
|
||||
|
||||
@@ -18,6 +18,6 @@ return array(
|
||||
'update' => 'Upravit kategorii',
|
||||
'use_default_eula' => 'Použijte raději <a href="#" data-toggle="modal" data-target="#eulaModal">primární výchozí EULA</a>.',
|
||||
'use_default_eula_disabled' => '<del>Použijte raději primární výchozí EULA.</del> Nenalezena primární výchozí EULA. Přidejte ji v Nastaveních prosím.',
|
||||
'use_default_eula_column' => 'Use default EULA',
|
||||
'use_default_eula_column' => 'Použít výchozí EULA',
|
||||
|
||||
);
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -45,5 +45,5 @@ return [
|
||||
'asset_location_update_default' => 'Update only default location',
|
||||
'asset_not_deployable' => 'That asset status is not deployable. This asset cannot be checked out.',
|
||||
'asset_deployable' => 'That status is deployable. This asset can be checked out.',
|
||||
'processing_spinner' => 'Processing...',
|
||||
'processing_spinner' => 'Zpracovává se...',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'Archivováno',
|
||||
'asset' => 'Majetek',
|
||||
'bulk_checkout' => 'Vyskladnit majetek',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Převzít majetek',
|
||||
'checkout' => 'Pokladní majetek',
|
||||
'clone' => 'Klonovat majetek',
|
||||
@@ -39,5 +40,5 @@ return [
|
||||
'error_messages' => 'Error messages:',
|
||||
'success_messages' => 'Success messages:',
|
||||
'alert_details' => 'Please see below for details.',
|
||||
'custom_export' => 'Custom Export'
|
||||
'custom_export' => 'Uživatelsky definovaný export'
|
||||
];
|
||||
|
||||
@@ -26,5 +26,5 @@ return [
|
||||
'requesting_user' => 'Requesting User',
|
||||
'requested_date' => 'Requested Date',
|
||||
'changed' => 'Changed',
|
||||
'icon' => 'Icon',
|
||||
'icon' => 'Ikona',
|
||||
];
|
||||
|
||||
@@ -20,19 +20,19 @@ return [
|
||||
'parent' => 'Nadřazené',
|
||||
'currency' => 'Měna',
|
||||
'ldap_ou' => 'LDAP Vyhledat OU',
|
||||
'user_name' => 'User Name',
|
||||
'department' => 'Department',
|
||||
'location' => 'Location',
|
||||
'asset_tag' => 'Assets Tag',
|
||||
'asset_name' => 'Name',
|
||||
'asset_category' => 'Category',
|
||||
'asset_manufacturer' => 'Manufacturer',
|
||||
'user_name' => 'Uživatelské Jméno',
|
||||
'department' => 'Oddělení',
|
||||
'location' => 'Umístění',
|
||||
'asset_tag' => 'Označení majetku',
|
||||
'asset_name' => 'Název',
|
||||
'asset_category' => 'Kategorie',
|
||||
'asset_manufacturer' => 'Výrobce',
|
||||
'asset_model' => 'Model',
|
||||
'asset_serial' => 'Serial',
|
||||
'asset_location' => 'Location',
|
||||
'asset_serial' => 'Sériové číslo',
|
||||
'asset_location' => 'Umístění',
|
||||
'asset_checked_out' => 'Checked Out',
|
||||
'asset_expected_checkin' => 'Expected Checkin',
|
||||
'date' => 'Date:',
|
||||
'date' => 'Datum:',
|
||||
'signed_by_asset_auditor' => 'Signed By (Asset Auditor):',
|
||||
'signed_by_finance_auditor' => 'Signed By (Finance Auditor):',
|
||||
'signed_by_location_manager' => 'Signed By (Location Manager):',
|
||||
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'allow_user_skin_help_text' => 'Zaškrtnutí tohoto políčka umožní uživateli přepsat vzhled uživatelského rozhraní jiným.',
|
||||
'asset_ids' => 'ID majetku',
|
||||
'audit_interval' => 'Interval auditu',
|
||||
'audit_interval_help' => 'Pokud budete muset pravidelně fyzicky kontrolovat svůj majetek, zadejte interval v měsících.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Prah výstrahy auditu',
|
||||
'audit_warning_days_help' => 'Kolik dní předem bychom vás měli varovat, když jsou aktiva splatná pro audit?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Nastavení čárového kódu',
|
||||
'confirm_purge' => 'Potvrdit vyčištění',
|
||||
|
||||
@@ -24,7 +24,7 @@ return [
|
||||
'two_factor_admin_optin_help' => 'Vaše současná nastavení administrátora umožňují selektivní vynucení dvoufaktorového ověřování. ',
|
||||
'two_factor_enrolled' => 'Přihlášeno zařízení 2FA ',
|
||||
'two_factor_active' => '2FA aktivní ',
|
||||
'user_deactivated' => 'User is de-activated',
|
||||
'user_deactivated' => 'Uživatel je deaktivován',
|
||||
'activation_status_warning' => 'Do not change activation status',
|
||||
'group_memberships_helpblock' => 'Only superadmins may edit group memberships.',
|
||||
'superadmin_permission_warning' => 'Only superadmins may grant a user superadmin access.',
|
||||
|
||||
@@ -8,17 +8,17 @@ return [
|
||||
'delete' => 'Smazat',
|
||||
'edit' => 'Upravit',
|
||||
'restore' => 'Obnovit',
|
||||
'remove' => 'Remove',
|
||||
'remove' => 'Odebrat',
|
||||
'request' => 'Požadavek',
|
||||
'submit' => 'Odeslat',
|
||||
'upload' => 'Nahrát',
|
||||
'select_file' => 'Vybrat soubor...',
|
||||
'select_files' => 'Vybrat soubory…',
|
||||
'generate_labels' => '{1} Generate Label|[2,*] Generate Labels',
|
||||
'send_password_link' => 'Send Password Reset Link',
|
||||
'go' => 'Go',
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'generate_labels' => '{1} Generovat štítek|[2,*] Generovat štítky',
|
||||
'send_password_link' => 'Poslat odkaz na obnovení hesla',
|
||||
'go' => 'Spustit',
|
||||
'bulk_actions' => 'Hromadné operace',
|
||||
'add_maintenance' => 'Add Maintenance',
|
||||
'append' => 'Append',
|
||||
'new' => 'New',
|
||||
'append' => 'Připojit',
|
||||
'new' => 'Nový',
|
||||
];
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
'asset' => 'Zařízeni',
|
||||
'asset_report' => 'Report majetku',
|
||||
'asset_tag' => 'Označení majetku',
|
||||
'asset_tags' => 'Asset Tags',
|
||||
'assets_available' => 'Assets available',
|
||||
'accept_assets' => 'Accept Assets :name',
|
||||
'accept_assets_menu' => 'Accept Assets',
|
||||
'asset_tags' => 'Označení majetku',
|
||||
'assets_available' => 'Dostupný majatek',
|
||||
'accept_assets' => 'Příjmout majetek :name',
|
||||
'accept_assets_menu' => 'Přijmout majetek',
|
||||
'audit' => 'Audit',
|
||||
'audit_report' => 'Záznamy auditu',
|
||||
'assets' => 'Zařízení',
|
||||
@@ -33,11 +33,11 @@
|
||||
'bulkaudit' => 'Hromadný audit',
|
||||
'bulkaudit_status' => 'Stav auditu',
|
||||
'bulk_checkout' => 'Hromadný výdej',
|
||||
'bulk_edit' => 'Bulk Edit',
|
||||
'bulk_delete' => 'Bulk Delete',
|
||||
'bulk_actions' => 'Bulk Actions',
|
||||
'bulk_checkin_delete' => 'Bulk Checkin & Delete',
|
||||
'bystatus' => 'by Status',
|
||||
'bulk_edit' => 'Hromadná úprava',
|
||||
'bulk_delete' => 'Hromadné odstranění',
|
||||
'bulk_actions' => 'Hromadné akce',
|
||||
'bulk_checkin_delete' => 'Hromadné odepsání & Odstranit',
|
||||
'bystatus' => 'podle stavu',
|
||||
'cancel' => 'Storno',
|
||||
'categories' => 'Kategorie',
|
||||
'category' => 'Kategorie',
|
||||
@@ -65,12 +65,12 @@
|
||||
'created' => 'Položka vytvořena',
|
||||
'created_asset' => 'vytvořit majetek',
|
||||
'created_at' => 'Vytvořeno',
|
||||
'record_created' => 'Record Created',
|
||||
'record_created' => 'Záznam vytvořen',
|
||||
'updated_at' => 'Aktualizováno',
|
||||
'currency' => 'Kč', // this is deprecated
|
||||
'current' => 'Aktuální',
|
||||
'current_password' => 'Current Password',
|
||||
'customize_report' => 'Customize Report',
|
||||
'current_password' => 'Stávající heslo',
|
||||
'customize_report' => 'Přizpůsobit report',
|
||||
'custom_report' => 'Vlastní report majetku',
|
||||
'dashboard' => 'Nástěnka',
|
||||
'days' => 'dnů',
|
||||
@@ -82,56 +82,57 @@
|
||||
'delete_confirm' => 'Opravdu chcete smazat :item?',
|
||||
'deleted' => 'Odstraněno',
|
||||
'delete_seats' => 'Vymazaná licenční místa',
|
||||
'deletion_failed' => 'Deletion failed',
|
||||
'deletion_failed' => 'Odstranění se nezdařilo',
|
||||
'departments' => 'Oddělení',
|
||||
'department' => 'Oddělení',
|
||||
'deployed' => 'Vydané',
|
||||
'depreciation' => 'Amortizace',
|
||||
'depreciations' => 'Depreciations',
|
||||
'depreciations' => 'Odpisy',
|
||||
'depreciation_report' => 'Report zastarání',
|
||||
'details' => 'Podrobnosti',
|
||||
'download' => 'Stáhnout',
|
||||
'download_all' => 'Download All',
|
||||
'download_all' => 'Stáhnout vše',
|
||||
'editprofile' => 'Upravit profil',
|
||||
'eol' => 'Konec životnosti',
|
||||
'email_domain' => 'Doména e-mailu',
|
||||
'email_format' => 'Formát e-mailu',
|
||||
'employee_number' => 'Číslo zaměstnance',
|
||||
'email_domain_help' => 'Toto je použito na generování e-mailových adres při importu',
|
||||
'error' => 'Error',
|
||||
'error' => 'Chyba',
|
||||
'filastname_format' => 'Iniciál Jména Příjmení (jsmith@example.com)',
|
||||
'firstname_lastname_format' => 'Jméno Příjmení (jane.smith@example.com)',
|
||||
'firstname_lastname_underscore_format' => 'Jméno Příjmení (jan_novak@example.com)',
|
||||
'lastnamefirstinitial_format' => 'Příjmení první písmeno ze jména (novakj@example.com)',
|
||||
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
|
||||
'firstintial_dot_lastname_format' => 'Iniciál Príjmení (j.novak@example.com)',
|
||||
'first' => 'První',
|
||||
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
|
||||
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
|
||||
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
|
||||
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
|
||||
'firstnamelastname' => 'Jméno Příjmení (jozefnovak@example.com)',
|
||||
'lastname_firstinitial' => 'Příjmení Iniciál (novak_j@example.com)',
|
||||
'firstinitial.lastname' => 'Iniciál Príjmení (j.novak@example.com)',
|
||||
'firstnamelastinitial' => 'Jméno Iniciál(josefn@example.com)',
|
||||
'first_name' => 'Jméno',
|
||||
'first_name_format' => 'Jméno (jane@example.com)',
|
||||
'files' => 'Soubory',
|
||||
'file_name' => 'Soubor',
|
||||
'file_type' => 'File Type',
|
||||
'file_type' => 'Typ souboru',
|
||||
'file_uploads' => 'Nahrání souboru',
|
||||
'file_upload' => 'File Upload',
|
||||
'file_upload' => 'Nahrání souboru',
|
||||
'generate' => 'Vytvořit',
|
||||
'generate_labels' => 'Generate Labels',
|
||||
'generate_labels' => 'Generovat štítky',
|
||||
'github_markdown' => 'V kolonce je možné použít <a href="https://help.github.com/articles/github-flavored-markdown/">Github variantu markdown</a>.',
|
||||
'groups' => 'Skupiny',
|
||||
'gravatar_email' => 'Emailová adresa Gravatar',
|
||||
'gravatar_url' => '<a href="http://gravatar.com"><small>Change your avatar at Gravatar.com</small></a>.',
|
||||
'gravatar_url' => '<a href="http://gravatar.com"><small>Změňte svůj avatar na Gravatar.com</small></a>.',
|
||||
'history' => 'Historie',
|
||||
'history_for' => 'Historie uživatele',
|
||||
'id' => 'ID',
|
||||
'image' => 'Obrázek',
|
||||
'image_delete' => 'Smazat obrázek',
|
||||
'image_upload' => 'Nahrát obrázek',
|
||||
'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.',
|
||||
'filetypes_size_help' => 'Max upload size allowed is :size.',
|
||||
'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, and svg. Max upload size allowed is :size.',
|
||||
'filetypes_accepted_help' => 'Přijatý typ souboru je :types. Maximální povolená velikost nahrávání je :size.|Přijaté typy souborů jsou :types. Maximální povolená velikost nahrávání je :size.',
|
||||
'filetypes_size_help' => 'Maximální povolená velikost nahrávání je :size.',
|
||||
'image_filetypes_help' => 'Podporované typy souborů jsou jpg, png, gif, a svg. Velikost může být nejvýše :size.',
|
||||
'import' => 'Import',
|
||||
'importing' => 'Importing',
|
||||
'importing' => 'Importování',
|
||||
'importing_help' => 'You can import assets, accessories, licenses, components, consumables, and users via CSV file. <br><br>The CSV should be comma-delimited and formatted with headers that match the ones in the <a href="https://snipe-it.readme.io/docs/importing" target="_new">sample CSVs in the documentation</a>.',
|
||||
'import-history' => 'Historie importu',
|
||||
'asset_maintenance' => 'Údržba zařízení',
|
||||
@@ -140,7 +141,7 @@
|
||||
'item' => 'Položka',
|
||||
'item_name' => 'Item Name',
|
||||
'insufficient_permissions' => 'Nedostatečná oprávnění!',
|
||||
'kits' => 'Predefined Kits',
|
||||
'kits' => 'Předdefinované sady',
|
||||
'language' => 'Jazyk',
|
||||
'last' => 'Poslední',
|
||||
'last_login' => 'Poslední přihlášení',
|
||||
@@ -150,8 +151,8 @@
|
||||
'licenses_available' => 'dostupných licencí',
|
||||
'licenses' => 'Licence',
|
||||
'list_all' => 'Vypsat vše',
|
||||
'loading' => 'Loading... please wait....',
|
||||
'lock_passwords' => 'This field value will not be saved in a demo installation.',
|
||||
'loading' => 'Načítání, čekejte prosím...',
|
||||
'lock_passwords' => 'Tato hodnota pole nebude uložena v ukázkové instalaci.',
|
||||
'feature_disabled' => 'Tato funkce byla deaktivována pro demo instalaci.',
|
||||
'location' => 'Lokalita',
|
||||
'locations' => 'Umístění',
|
||||
@@ -159,7 +160,7 @@
|
||||
'logout' => 'Odhlásit',
|
||||
'lookup_by_tag' => 'Vyhledávání podle značky majetku',
|
||||
'maintenances' => 'Údržby',
|
||||
'manage_api_keys' => 'Manage API Keys',
|
||||
'manage_api_keys' => 'Spravovat API klíče',
|
||||
'manufacturer' => 'Výrobce',
|
||||
'manufacturers' => 'Výrobci',
|
||||
'markdown' => 'Toto pole umožňuje <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
|
||||
@@ -169,7 +170,7 @@
|
||||
'months' => 'měsíce',
|
||||
'moreinfo' => 'Další informace',
|
||||
'name' => 'Název',
|
||||
'new_password' => 'New Password',
|
||||
'new_password' => 'Nové heslo',
|
||||
'next' => 'Další',
|
||||
'next_audit_date' => 'Další datum auditu',
|
||||
'last_audit' => 'Poslední audit',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'Množství',
|
||||
'quantity' => 'Množství',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Připraveno k přidělení',
|
||||
'recent_activity' => 'Nedávná aktivita',
|
||||
'remaining' => 'Remaining',
|
||||
@@ -207,7 +210,7 @@
|
||||
'request_canceled' => 'Žádost zrušena',
|
||||
'save' => 'Uložit',
|
||||
'select' => 'Zvolit',
|
||||
'select_all' => 'Select All',
|
||||
'select_all' => 'Vybrat vše',
|
||||
'search' => 'Hledat',
|
||||
'select_category' => 'Vyberte kategorii',
|
||||
'select_department' => 'Vyberte Oddělení',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Váš odkaz s heslem byl odeslán!',
|
||||
'sent' => 'Úspěch: Pokud tato e-mailová adresa existuje v našem systému, byl odeslán e-mail pro obnovení hesla.',
|
||||
'user' => 'Nebyl nalezen žádný aktivní uživatel s takovým e-mailem.',
|
||||
];
|
||||
|
||||
@@ -64,7 +64,7 @@ return [
|
||||
'string' => ':attribute musí mít minimálně :min znaků.',
|
||||
'array' => 'Atribut musí mít alespoň: min položky.',
|
||||
],
|
||||
'starts_with' => 'The :attribute must start with one of the following: :values.',
|
||||
'starts_with' => ':attribute musí končit jednou z následujících hodnot: :values.',
|
||||
'not_in' => 'Zvolený :attribute je neplatný.',
|
||||
'numeric' => ':attribute musí být číslo.',
|
||||
'present' => 'Pole atributu musí být přítomno.',
|
||||
@@ -90,7 +90,7 @@ return [
|
||||
'uploaded' => 'Atribut: se nepodařilo nahrát.',
|
||||
'url' => 'Formát :attribute je neplatný.',
|
||||
'unique_undeleted' => 'Je třeba, aby se :attribute neopakoval.',
|
||||
'non_circular' => 'The :attribute must not create a circular reference.',
|
||||
'non_circular' => ':attribute nesmí vytvořit kruhový odkaz.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'Archifwyd',
|
||||
'asset' => 'Ased',
|
||||
'bulk_checkout' => 'Nodi Asedau Allan',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Nodi Asedau I Mewn',
|
||||
'checkout' => 'Nodi Asedau Allan',
|
||||
'clone' => 'Dyblygu Ased',
|
||||
|
||||
@@ -17,11 +17,11 @@ return [
|
||||
'alerts_enabled' => 'Rhybuddion ebost wedi alluogi',
|
||||
'alert_interval' => 'Trothwy Rhybuddion sy\'n Dod i Ben (mewn dyddiau)',
|
||||
'alert_inv_threshold' => 'Trothwy Rhybudd Rhestr',
|
||||
'allow_user_skin' => 'Allow user skin',
|
||||
'allow_user_skin' => 'Allow User Skin',
|
||||
'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.',
|
||||
'asset_ids' => 'Rhifau Unigryw Asedau',
|
||||
'audit_interval' => 'Cyfnod Awdit',
|
||||
'audit_interval_help' => 'Os ydych angen gwneud awdit ffisegol, rhowch y cyfnod mewn misoedd.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Trothwy Rhybuddio Awdit',
|
||||
'audit_warning_days_help' => 'Sawl diwrnod o flaen llaw ddylswn rhybuddio chi o asedau sydd angen awdit?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Gosodiadau Barcode',
|
||||
'confirm_purge' => 'Cadarnhau Clirio',
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'DB',
|
||||
'email_domain' => 'Parth Ebost',
|
||||
'email_format' => 'Fformat Ebost',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'Defnyddir hwn i gynhyrchu cyfeiriadau e-bost wrth fewnforio',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'Llythyren Cyntaf Enw Cyntaf Cyfenw (jsmith@example.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'Nifer',
|
||||
'quantity' => 'Nifer',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Barod i\'w defnyddio',
|
||||
'recent_activity' => 'Gweithgareddau Diweddar',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Mae eich linc cyfrinair wedi\'i yrru!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'Dim defnyddiwr wedi\'i ddarganfod hefo\'r cyfeiriad ebost yna.',
|
||||
];
|
||||
|
||||
@@ -41,5 +41,7 @@ return [
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'reorder' => 'Reorder',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.',
|
||||
'is_unique' => 'This value must be unique across all assets',
|
||||
'unique' => 'Unique',
|
||||
];
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
'archived' => 'arkiverede',
|
||||
'asset' => 'Asset',
|
||||
'bulk_checkout' => 'Udtjek aktiv',
|
||||
'bulk_checkin' => 'Checkin Assets',
|
||||
'checkin' => 'Checkin Asset',
|
||||
'checkout' => 'Checkout Asset',
|
||||
'clone' => 'Klonaktiver',
|
||||
|
||||
@@ -21,7 +21,7 @@ return [
|
||||
'allow_user_skin_help_text' => 'Afkrydsning her giver brugeren afgang til at overskrive UI skin med et andet skin.',
|
||||
'asset_ids' => 'Aktiv-id\'er',
|
||||
'audit_interval' => 'Revisionsinterval',
|
||||
'audit_interval_help' => 'Hvis du skal regelmæssigt kontrollere dine aktiver fysisk, skal du indtaste intervallet i måneder.',
|
||||
'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date.',
|
||||
'audit_warning_days' => 'Audit Warning Threshold',
|
||||
'audit_warning_days_help' => 'Hvor mange dage i forvejen skal vi advare dig, når aktiver skal betales for revision?',
|
||||
'auto_increment_assets' => 'Generate auto-incrementing asset tags',
|
||||
@@ -32,7 +32,7 @@ return [
|
||||
'backups_upload' => 'Upload Backup',
|
||||
'backups_path' => 'Backups on the server are stored in <code>:path</code>',
|
||||
'backups_restore_warning' => 'Use the restore button <small><span class="btn btn-xs btn-warning"><i class="text-white fas fa-retweet" aria-hidden="true"></i></span></small> to restore from a previous backup. (This does not currently work with S3 file storage or Docker.<br><br>Your <strong>entire :app_name database and any uploaded files will be completely replaced</strong> by what\'s in the backup file. ',
|
||||
'backups_logged_out' => 'You will be logged out once your restore is complete.',
|
||||
'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.',
|
||||
'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ',
|
||||
'barcode_settings' => 'Stregkodeindstillinger',
|
||||
'confirm_purge' => 'Bekræft rensning',
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
'eol' => 'EOL',
|
||||
'email_domain' => 'Email domæne',
|
||||
'email_format' => 'Email formattering',
|
||||
'employee_number' => 'Employee Number',
|
||||
'email_domain_help' => 'Dette bruges til at generere email-adresser ved importering',
|
||||
'error' => 'Error',
|
||||
'filastname_format' => 'Fornavnskarakter Efternavn (jsmith@example.com)',
|
||||
@@ -192,6 +193,8 @@
|
||||
'qty' => 'STK',
|
||||
'quantity' => 'Antal',
|
||||
'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels',
|
||||
'quickscan_checkin' => 'Quick Scan Checkin',
|
||||
'quickscan_checkin_status' => 'Checkin Status',
|
||||
'ready_to_deploy' => 'Klar til Implementering',
|
||||
'recent_activity' => 'Seneste aktivitet',
|
||||
'remaining' => 'Remaining',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'sent' => 'Dit adgangskode link er blevet sendt!',
|
||||
'sent' => 'Success: If that email address exists in our system, a password recovery email has been sent.',
|
||||
'user' => 'Der er ikke fundet nogen aktiv bruger med denne email.',
|
||||
];
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
return [
|
||||
'select_company' => 'Firma auswählen',
|
||||
'about_companies' => 'Über Unternehmen',
|
||||
'about_companies_description' => ' You can use companies as a simple informative field, or you can use them to restrict asset visibility and availability to users with a specific company by enabling Full Company Support in your Admin Settings.',
|
||||
'about_companies_description' => ' Unternehmen können als ein einfaches Informationsfeld verwendet werden, oder um die Sichtbarkeit und Verfügbarkeit von Vermögenswerten auf Benutzer eines bestimmten Unternehmens zu beschränken. Hierfür muss die Mehrmandanten-Unterstützung für Firmen in den Admin-Einstellungen aktiviert werden.',
|
||||
];
|
||||
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'manage' => 'Verwalten',
|
||||
'field' => 'Feld',
|
||||
'about_fieldsets_title' => 'Über Feldsätze',
|
||||
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.',
|
||||
'about_fieldsets_text' => 'Ein Feldsatz ist eine Gruppe von benutzerdefinierten Feldern, die häufig für bestimmte Asset-Modelltypen wiederverwendet werden.',
|
||||
'custom_format' => 'Benutzerdefiniertes Regex-Format...',
|
||||
'encrypt_field' => 'Den Wert dieses Feldes in der Datenbank verschlüsseln',
|
||||
'encrypt_field_help' => 'WARNUNG: Ein verschlüsseltes Feld kann nicht durchsucht werden.',
|
||||
@@ -27,19 +27,21 @@ return [
|
||||
'used_by_models' => 'Von Modellen benutzt',
|
||||
'order' => 'Reihenfolge',
|
||||
'create_fieldset' => 'Neuer Feldsatz',
|
||||
'create_fieldset_title' => 'Create a new fieldset',
|
||||
'create_fieldset_title' => 'Neuen Feldsatz erstellen',
|
||||
'create_field' => 'Neues benutzerdefiniertes Feld',
|
||||
'create_field_title' => 'Neues benutzerdefiniertes Feld erstellen',
|
||||
'value_encrypted' => 'Der Wert dieses Feldes ist in der Datenbank verschlüsselt. Nur Benutzer mit Administratorrechten können den entschlüsselten Wert anzeigen',
|
||||
'show_in_email' => 'Feld miteinbeziehen bei Herausgabe-Emails an die Benutzer? Verschlüsselte Felder können nicht miteinbezogen werden.',
|
||||
'help_text' => 'Hilfetext',
|
||||
'help_text_description' => 'This is optional text that will appear below the form elements while editing an asset to provide context on the field.',
|
||||
'help_text_description' => 'Dies ist ein optionaler Text, der unter den Formularelementen erscheint, während eine Datei bearbeitet wird, um Kontext für das Feld bereitzustellen.',
|
||||
'about_custom_fields_title' => 'Über benutzerdefinierte Felder',
|
||||
'about_custom_fields_text' => 'Custom fields allow you to add arbitrary attributes to assets.',
|
||||
'add_field_to_fieldset' => 'Add Field to Fieldset',
|
||||
'make_optional' => 'Required - click to make optional',
|
||||
'make_required' => 'Optional - click to make required',
|
||||
'about_custom_fields_text' => 'Benutzerdefinierte Felder ermöglichen es, beliebige Attribute zu Assets hinzuzufügen.',
|
||||
'add_field_to_fieldset' => 'Feld zum Feldsatz hinzufügen',
|
||||
'make_optional' => 'Benötigt - klicken, um optional zu machen',
|
||||
'make_required' => 'Optional - Klicken, um erforderlich zu machen',
|
||||
'reorder' => 'Sortieren',
|
||||
'db_field' => 'DB Field',
|
||||
'db_convert_warning' => 'WARNING. This field is in the custom fields table as <code> :db_column </code> but should be :expected </code>.'
|
||||
'db_field' => 'Datenbankfeld',
|
||||
'db_convert_warning' => 'WARNUNG. Dieses Feld befindet sich in der Tabelle mit benutzerdefinierten Feldern wie <code> :db_column </code> aber sollte: </code> sein.',
|
||||
'is_unique' => 'Dieser Wert muss für jedes Asset eindeutig sein',
|
||||
'unique' => 'Einzigartig',
|
||||
];
|
||||
|
||||
@@ -10,7 +10,7 @@ return [
|
||||
'number_of_months' => 'Anzahl der Monate',
|
||||
'update' => 'Abschreibung aktualisieren',
|
||||
'depreciation_min' => 'Minimaler Wert nach Abschreibung',
|
||||
'no_depreciations_warning' => '<strong>Warning: </strong>
|
||||
You do not currently have any depreciations set up.
|
||||
Please set up at least one depreciation to view the depreciation report.',
|
||||
'no_depreciations_warning' => '<strong>Warnung: </strong>
|
||||
Sie haben derzeit keine Abschreibungen eingerichtet.
|
||||
Bitte richten Sie mindestens eine Abschreibung ein, um den Abschreibungsbericht anzuzeigen.',
|
||||
];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user