Compare commits

...

82 Commits

Author SHA1 Message Date
snipe d19df4ded8 Bumped version 2019-06-24 14:43:44 -07:00
Kasey 03a4512406 fixing previous commit's actual wiping of password (#7183)
replaced Input::fille('ldap_pword') with _filled_.   Should be good to go.  

https://github.com/snipe/snipe-it/issues/7179

https://github.com/snipe/snipe-it/issues/7169
2019-06-19 14:21:53 -07:00
snipe de992e4df3 Fixed LDAP password blanking on save 2019-06-14 17:20:37 -07:00
snipe a85251aa83 Fixed #7164 - change table name to permission_groups 2019-06-14 10:37:20 -07:00
snipe 26a1181765 Possible fix for reporting/admin migration back in time 2019-06-12 18:53:53 -07:00
snipe cef030cf55 Fixed permission insert
//TODO

Handle this via model
2019-06-12 18:39:55 -07:00
snipe 2bfa05fd2d Back in time fix FOR #7145 for new installs on MySQL 8+ 2019-06-12 16:24:55 -07:00
snipe 30904dd019 Reduce minimum group name length to 2 (from 3)
eg: IT
2019-06-12 15:56:19 -07:00
snipe 1d0d25db37 Fixed #7145 - rename groups table to permissions_group for mysql 8 reserved word compatibility 2019-06-12 15:51:47 -07:00
snipe cbff66c9db Improved error checking in locations importer 2019-06-10 18:50:41 -07:00
snipe 27231d49ea Small fixes for phpleague CSB reader v9 2019-06-03 22:05:16 -07:00
snipe 765417c0be Bumped point version 2019-05-31 14:17:26 -07:00
snipe 49a255c8fb Changed has to filled to fix bulk asset editing 2019-05-31 14:11:43 -07:00
snipe 925d3a23c6 Bumped hash 2019-05-31 13:11:07 -07:00
snipe 6966c132d0 Update language strings 2019-05-31 12:17:09 -07:00
snipe c29ab90029 Added Filipino, corrected order for Spanish variations 2019-05-31 11:58:14 -07:00
snipe d2bbc09892 Increased throttle to 120 requests per minute 2019-05-31 11:57:57 -07:00
snipe 74a2c29bc2 Fixed #7100 - Check if $user isset on checkin 2019-05-30 19:06:30 -07:00
snipe 2c64739e8f Removed old comments 2019-05-30 19:02:20 -07:00
snipe 37f950ab42 Fixed #7099 - set email to null by default for backup notifications 2019-05-29 19:09:37 -07:00
snipe b07a254e60 Bumped version 2019-05-29 15:51:54 -07:00
snipe 087cdd859e Fixed #7092 - handle weird port forwarding/port numbers for baseUrl 2019-05-29 14:57:58 -07:00
snipe 829d44bd27 Fixed #7098 - updated backup config for deleteFile() method 2019-05-29 14:47:55 -07:00
snipe db76090e10 Missed one 2019-05-28 19:12:53 -07:00
snipe 03cf3b5431 Bumped release again :( 2019-05-28 19:12:42 -07:00
snipe 40f101d471 Merge branch 'master' of https://github.com/snipe/snipe-it 2019-05-28 19:08:39 -07:00
snipe 7aa6ef5f6c Bumped version 2019-05-28 19:08:35 -07:00
Kasey 186b94751d Dockerfile update to bring us up to php v7.1 for Laravel 5.5 (#7084)
* bump up to php7.1

& change deprecated MAINTAINER to a LABEL so it is visible with `docker inspect`

* AND modapache ><

* 2 updates required to get software-properties+ppa
2019-05-28 16:58:32 -07:00
snipe 6f2717a876 Updated branch in version file 2019-05-28 13:22:59 -07:00
snipe a014af4c47 Fixed #7083 - Removed user_exists constraint on department save
If the user has been deleted, this prevented the department from being successfully saved on edit
2019-05-28 13:18:31 -07:00
snipe 2dd31544fe Increased image size to 800px, added lightboxes 2019-05-24 19:11:08 -07:00
snipe 237acdcff0 Show accessory image on view page 2019-05-24 18:22:57 -07:00
snipe 5db7a7c196 More Atlassian clarifications 2019-05-24 18:10:19 -07:00
snipe 68acdff11b Added link to Atlassian plugin 2019-05-24 18:08:40 -07:00
snipe 58e72e5ee6 Derp - typo 2019-05-24 18:06:15 -07:00
snipe 6b43cd10ba Updated README 2019-05-24 18:05:28 -07:00
snipe b2c9a38db8 Fixed casing in sync command 2019-05-24 16:12:43 -07:00
snipe 6dcdb5abae Only display the file if the log record can be found 2019-05-24 16:06:52 -07:00
snipe 56576d9e45 Fixed more camel-casing -> snake-casing 2019-05-24 16:01:12 -07:00
snipe d5c3ee5ed0 Only try to get fieldset if model is valid 2019-05-24 15:44:54 -07:00
snipe 18db0a50f1 Only gtry to delete the file if a record is found in the log 2019-05-24 15:44:40 -07:00
snipe d596ced0a0 Fixed free_seats_count variable name
(I forgot that Laravel switched camel case to snake case for their old 5.4 withCount variables)
2019-05-24 15:44:18 -07:00
snipe 78fb2b2239 Only build the log upload destination path if there is a matching record
Fixes [ch1232]
2019-05-24 15:28:53 -07:00
snipe 1472e9d5b5 Check for valid model before attempting to access fieldsets
Fixes [ch1249]
2019-05-24 15:03:15 -07:00
snipe fcbc7e4540 Fixed Undefined variable user in $backto if checked out to a non-user
Fixes [ch9194]
2019-05-24 14:51:27 -07:00
snipe 93bf541ce7 Fixed missed consumables_count withCount() statement 2019-05-24 14:21:53 -07:00
snipe 0e48d7b080 Removed alert-danger from tests 2019-05-24 14:21:37 -07:00
snipe 1e6c85da41 Removed custom fields from AssignedSearch to prevent confusing data in selectlist
Fixes [ch9193]
2019-05-24 13:50:11 -07:00
snipe c5a23e8f5e Fixed bug where sorting by company name in Users API did not work
Fixes [ch9200]
2019-05-24 13:37:20 -07:00
snipe b6d2392303 Small fix for reordering fields
Fixes Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'order' cannot be null (SQL: insert into `custom_field_custom_fieldset` (`custom_field_id`, `custom_fieldset_id`, `order`, `required`) values (12, 7, , 0)) [ch1151]

This needs revisiting for a more solid fix, especially for data that was already entered bad.
2019-05-24 12:05:52 -07:00
snipe 9995f1a743 Fixed field mapping 2019-05-24 11:45:07 -07:00
snipe d6f251e992 Updated importer to work with newer CSV Reader::getRecords() method 2019-05-24 11:44:57 -07:00
snipe 4be95eac4b Removed extra escaping on checkin 2019-05-24 11:44:39 -07:00
snipe 8914d14681 Tidied up license check 2019-05-24 05:26:52 -07:00
snipe d4725b61be Check that a model exists before trying to fiddle with fieldsets 2019-05-24 04:48:04 -07:00
snipe aa0b627fe7 Fixed missing asset validation 2019-05-24 04:47:35 -07:00
snipe 5be5e3271d Trying to fix ajax asset validation
This I think gets us closer, but still not handling the validation on the asset properly.

When I do a print_r of the validation in the other items, its looking for an error bag that looks something like this:

```
Illuminate\Support\MessageBag Object
(
    [messages:protected] => Array
        (
            [name] => Array
                (
                    [0] => The name field is required.
                )

            [seats] => Array
                (
                    [0] => The seats field is required.
                )

            [category_id] => Array
                (
                    [0] => The category id field is required.
                )

        )

    [format:protected] => :message
)
```

Currently the Assets ajax returns:

```
[2019-05-24 06:52:06] develop.ERROR: array (
  'messages' =>
  array (
    'model_id' =>
    array (
      0 => 'The model id field is required.',
    ),
    'status_id' =>
    array (
      0 => 'The status id field is required.',
    ),
    'asset_tag' =>
    array (
      0 => 'The asset tag field is required.',
    ),
  ),
)
```

So not sure why it’s not working.
2019-05-24 03:55:31 -07:00
snipe dd5d5cc07c Handle JSON validation errors like 5.4 2019-05-24 01:12:38 -07:00
snipe 84c3709161 Handle JSON validation errors like 5.4 2019-05-24 01:12:21 -07:00
snipe 96e2d74ae3 Handle JSON validation errors like 5.4 2019-05-24 00:46:30 -07:00
snipe bf93e8cc32 Use getReader instead of fetchAssoc for CSV parser
https://csv.thephpleague.com/9.0/upgrading/
2019-05-23 19:09:58 -07:00
snipe d1a8955ef9 Bumped packages 2019-05-23 19:09:14 -07:00
snipe 149ac4bdf8 Removed cosole log 2019-05-23 17:52:53 -07:00
snipe 2d036c64e9 Change ->has() to ->filled() 2019-05-23 17:39:50 -07:00
snipe 8db2470ac4 Switch has() to filled() 2019-05-23 17:17:46 -07:00
snipe 79156ff8f4 Bumped version 2019-05-23 17:10:47 -07:00
snipe 8e86d780bf Fix for included files in backup 2019-05-23 17:08:51 -07:00
snipe f6ef139111 Fixed baseUrl is undefined error
I literally cannot figure out how this ever worked before.
2019-05-23 16:56:22 -07:00
snipe 12ec2d1f7a Fixed custom field edit screen 2019-05-22 01:07:14 -07:00
snipe 0dfc28b0e8 Bumped laravel version in readme 2019-05-22 01:04:42 -07:00
snipe b3132a4a8f Updated travis with new php versions 2019-05-22 01:03:11 -07:00
snipe 6cd25fbdeb Updated backup path in backup admin 2019-05-22 00:56:14 -07:00
snipe 4be8ba9f17 Updated withCount to use manual naming 2019-05-22 00:52:51 -07:00
snipe df8008f1ed Renamed fire() to handle() 2019-05-22 00:52:32 -07:00
snipe 77547c528b Added the command loader to console kernel 2019-05-22 00:52:14 -07:00
snipe bfb910f375 Set the serialization 2019-05-22 00:51:43 -07:00
snipe 57e80ee317 Removed old laravel backups config
This config file was renamed in a newer version of spatie laravel-backup
2019-05-22 00:51:33 -07:00
snipe de1189295a Added spatie language files 2019-05-22 00:51:00 -07:00
snipe 20d0dce73e Use laravel v5.5 withCount manual aliases 2019-05-22 00:50:48 -07:00
snipe 144a32b1ca Removed debugbar service provider (autodiscovery) 2019-05-22 00:50:00 -07:00
snipe 8244a2ad23 New backups config for spatie 2019-05-22 00:49:38 -07:00
snipe 77c3b8f8c1 Updated packages 2019-05-22 00:07:49 -07:00
133 changed files with 3307 additions and 1401 deletions
+1
View File
@@ -43,6 +43,7 @@ MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_BACKUP_NOTIFICATION_ADDRESS=you@example.com
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
+1 -3
View File
@@ -14,9 +14,7 @@ services:
# list any PHP version you want to test against
php:
- 5.6
- 7.0
- 7.1
- 7.1.2
- 7.2
- 7.3
+15 -13
View File
@@ -1,19 +1,21 @@
FROM ubuntu:xenial
MAINTAINER Brady Wetherington <uberbrady@gmail.com>
LABEL maintainer="uberbrady, hinchk"
RUN apt-get update && apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
RUN apt-get update && apt-get install -y \
apache2 \
apache2-bin \
libapache2-mod-php7.0 \
php7.0-curl \
php7.0-ldap \
php7.0-mysql \
php7.0-mcrypt \
php7.0-gd \
php7.0-xml \
php7.0-mbstring \
php7.0-zip \
php7.0-bcmath \
libapache2-mod-php7.1 \
php7.1-curl \
php7.1-ldap \
php7.1-mysql \
php7.1-mcrypt \
php7.1-gd \
php7.1-xml \
php7.1-mbstring \
php7.1-zip \
php7.1-bcmath \
patch \
curl \
vim \
@@ -27,8 +29,8 @@ RUN phpenmod mcrypt
RUN phpenmod gd
RUN phpenmod bcmath
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/7.0/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/7.0/cli/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/7.1/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/7.1/cli/php.ini
RUN useradd -m --uid 1000 --gid 50 docker
+10 -9
View File
@@ -6,9 +6,9 @@
This is a FOSS project for asset management in IT Operations. Knowing who has which laptop, when it was purchased in order to depreciate it correctly, handling software licenses, etc.
It is built on [Laravel 5.4](http://laravel.com).
It is built on [Laravel 5.5](http://laravel.com).
Snipe-IT is actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
Snipe-IT is actively developed and we [release quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
__This is web-based software__. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows, and we have a [Docker image](https://snipe-it.readme.io/docs/docker) available if that's what you're into.
@@ -58,13 +58,20 @@ Since the release of the JSON REST API, several third-party developers have been
- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey)
- [InQRy](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [SnipeitPS](https://github.com/snazy2000/SnipeitPS) by [@snazy2000](https://github.com/snazy2000) - Powershell API Wrapper for Snipe-it
- [jamf2snipe](https://github.com/ParadoxGuitarist/jamf2snipe) by [@ParadoxGuitarist](https://github.com/ParadoxGuitarist) - Python script to sync assets between a JAMFPro instance and a Snipe-II instance
- [jamf2snipe](https://github.com/ParadoxGuitarist/jamf2snipe) by [@ParadoxGuitarist](https://github.com/ParadoxGuitarist) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
- [Marksman](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Snipe-IT plugin for Jira Service Desk (beta)](https://marketplace.atlassian.com/apps/1220379/snipe-it-for-jira-service-desk-beta?hosting=cloud&tab=overview) - for the upcoming Snipe-IT v5 only
As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :)
-----
### Security
To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.
-----
### Contributors
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
@@ -109,9 +116,3 @@ Please see the documentation on [contributing and developing for Snipe-IT](https
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
-----
### Security
To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.
+52 -22
View File
@@ -48,60 +48,90 @@ class ImportLocations extends Command
$filename = $this->argument('filename');
$csv = Reader::createFromPath(storage_path('private_uploads/imports/').$filename, 'r');
$this->info('Attempting to process: '.storage_path('private_uploads/imports/').$filename);
$csv->setOffset(1); //because we don't want to insert the header
$results = $csv->fetchAssoc();
$csv->setHeaderOffset(0); //because we don't want to insert the header
$results = $csv->getRecords();
// Import parent location names first if they don't exist
foreach ($results as $parent_index => $parent_row) {
$parent_name = trim($parent_row['Parent Name']);
// First create any parents if they don't exist
if ($parent_name!='') {
if (array_key_exists('Parent Name', $parent_row)) {
$parent_name = trim($parent_row['Parent Name']);
if (array_key_exists('Name', $parent_row)) {
$this->info('- Parent: ' . $parent_name . ' in row as: ' . trim($parent_row['Parent Name']));
}
// Save parent location name
// This creates a sort of name-stub that we'll update later on in this script
$parent_location = Location::firstOrCreate(array('name' => $parent_name));
$this->info('Parent for '.$parent_row['Name'].' is '.$parent_name.'. Attempting to save '.$parent_name.'.');
if (array_key_exists('Name', $parent_row)) {
$this->info('Parent for ' . $parent_row['Name'] . ' is ' . $parent_name . '. Attempting to save ' . $parent_name . '.');
}
// Check if the record was updated or created.
// This is mostly for clearer debugging.
if ($parent_location->exists) {
$this->info('- Parent location '.$parent_name.' already exists.');
$this->info('- Parent location '.$parent_name.' already exists.');
} else {
$this->info('- Parent location '.$parent_name.' was created.');
}
} else {
$this->info('- No parent location for '.$parent_row['Name'].' provided.');
$this->info('- No Parent Name provided, so no parent location will be created.');
}
}
$this->info('----- Parents Created.... backfilling additional details... --------');
// Loop through ALL records and add/update them if there are additional fields
// besides name
foreach ($results as $index => $row) {
if (array_key_exists('Parent Name', $row)) {
$parent_name = trim($row['Parent Name']);
}
// Set the location attributes to save
$location = Location::firstOrNew(array('name' => trim($row['Name'])));
$location->name = trim($row['Name']);
$location->currency = trim($row['Currency']);
$location->address = trim($row['Address 1']);
$location->address2 = trim($row['Address 2']);
$location->city = trim($row['City']);
$location->state = trim($row['State']);
$location->zip = trim($row['Zip']);
$location->country = trim($row['Country']);
$location->ldap_ou = trim($row['OU']);
if (array_key_exists('Name', $row)) {
$location = Location::firstOrNew(array('name' => trim($row['Name'])));
$location->name = trim($row['Name']);
$this->info('Checking location: '.$location->name);
} else {
$this->error('Location name is required and is missing from at least one row in this dataset. Check your CSV for extra trailing rows and try again.');
return false;
}
if (array_key_exists('Currency', $row)) {
$location->currency = trim($row['Currency']);
}
if (array_key_exists('Address 1', $row)) {
$location->address = trim($row['Address 1']);
}
if (array_key_exists('Address 2', $row)) {
$location->address2 = trim($row['Address 2']);
}
if (array_key_exists('City', $row)) {
$location->city = trim($row['City']);
}
if (array_key_exists('State', $row)) {
$location->state = trim($row['State']);
}
if (array_key_exists('Zip', $row)) {
$location->zip = trim($row['Zip']);
}
if (array_key_exists('Country', $row)) {
$location->country = trim($row['Country']);
}
if (array_key_exists('Country', $row)) {
$location->ldap_ou = trim($row['OU']);
}
$this->info('Checking location: '.$location->name);
// If a parent name nis provided, we created it earlier in the script,
// If a parent name is provided, we created it earlier in the script,
// so let's grab that ID
if ($parent_name) {
$this->info('-- Searching for Parent Name: '.$parent_name);
$parent = Location::where('name', '=', $parent_name)->first();
$location->parent_id = $parent->id;
$this->info('Parent ID: '.$parent->id);
$this->info('Parent: '.$parent_name.' - ID: '.$parent->id);
}
// Make sure the more advanced (non-name) fields pass validation
+1 -1
View File
@@ -65,7 +65,7 @@ class ObjectImportCommand extends Command
*
* @return mixed
*/
public function fire()
public function handle()
{
$filename = $this->argument('filename');
$class = title_case($this->option('item-type'));
@@ -42,7 +42,7 @@ class SendExpectedCheckinAlerts extends Command
*
* @return mixed
*/
public function fire()
public function handle()
{
$settings = Setting::getSettings();
$whenNotify = Carbon::now()->addDays(7);
@@ -43,7 +43,7 @@ class SendExpirationAlerts extends Command
*
* @return mixed
*/
public function fire()
public function handle()
{
$settings = Setting::getSettings();
+1 -1
View File
@@ -39,7 +39,7 @@ class SyncAssetCounters extends Command
public function handle()
{
$start = microtime(true);
$assets = Asset::withCount('checkins', 'checkouts', 'userRequests')
$assets = Asset::withCount('checkins as checkins_count', 'checkouts as checkouts_count', 'userRequests as user_requests_count')
->withTrashed()->get();
if ($assets) {
+1 -1
View File
@@ -64,7 +64,7 @@ class SyncAssetLocations extends Command
$output['info'][] = 'There are '.$assigned_user_assets->count().' assets checked out to users.';
foreach ($assigned_user_assets as $assigned_user_asset) {
if (($assigned_user_asset->assignedTo) && ($assigned_user_asset->assignedTo->userLoc)) {
$new_location=$assigned_user_asset->assignedTo->userloc->id;
$new_location = $assigned_user_asset->assignedTo->userLoc->id;
$output['info'][] ='Setting User Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') to ' . $assigned_user_asset->assignedTo->userLoc->name . ' which is id: ' . $new_location;
} else {
$output['warn'][] ='Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') still has no location! ';
+1 -1
View File
@@ -36,7 +36,7 @@ class SystemBackup extends Command
*
* @return mixed
*/
public function fire()
public function handle()
{
//
$this->call('backup:run');
+1
View File
@@ -56,5 +56,6 @@ class Kernel extends ConsoleKernel
protected function commands()
{
require base_path('routes/console.php');
$this->load(__DIR__.'/Commands');
}
}
+13
View File
@@ -23,6 +23,7 @@ class Handler extends ExceptionHandler
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
\Intervention\Image\Exception\NotSupportedException::class,
];
/**
@@ -117,4 +118,16 @@ class Handler extends ExceptionHandler
return redirect()->guest('login');
}
/**
* Convert a validation exception into a JSON response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Validation\ValidationException $exception
* @return \Illuminate\Http\JsonResponse
*/
protected function invalidJson($request, ValidationException $exception)
{
return response()->json($exception->errors(), $exception->status);
}
}
+3 -3
View File
@@ -281,9 +281,9 @@ class Helper
*/
public static function checkLowInventory()
{
$consumables = Consumable::withCount('consumableAssignments')->whereNotNull('min_amt')->get();
$accessories = Accessory::withCount('users')->whereNotNull('min_amt')->get();
$components = Component::withCount('assets')->whereNotNull('min_amt')->get();
$consumables = Consumable::withCount('consumableAssignments as consumable_assignments_count')->whereNotNull('min_amt')->get();
$accessories = Accessory::withCount('users as users_count')->whereNotNull('min_amt')->get();
$components = Component::withCount('assets as assets_count')->whereNotNull('min_amt')->get();
$avail_consumables = 0;
$items_array = array();
@@ -94,7 +94,7 @@ class AccessoriesController extends Controller
$file_name = "accessory-".str_random(18).'.'.$ext;
$path = public_path('/uploads/accessories');
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(null, 250, function ($constraint) {
Image::make($image->getRealPath())->resize(null, 800, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path.'/'.$file_name);
@@ -173,7 +173,7 @@ class AccessoriesController extends Controller
$file_name = "accessory-".str_random(18).'.'.$ext;
$path = public_path('/uploads/accessories');
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(null, 250, function ($constraint) {
Image::make($image->getRealPath())->resize(null, 800, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path.'/'.$file_name);
@@ -26,23 +26,23 @@ class AccessoriesController extends Controller
$accessories = Accessory::with('category', 'company', 'manufacturer', 'users', 'location');
if ($request->has('search')) {
if ($request->filled('search')) {
$accessories = $accessories->TextSearch($request->input('search'));
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$accessories->where('company_id','=',$request->input('company_id'));
}
if ($request->has('category_id')) {
if ($request->filled('category_id')) {
$accessories->where('category_id','=',$request->input('category_id'));
}
if ($request->has('manufacturer_id')) {
if ($request->filled('manufacturer_id')) {
$accessories->where('manufacturer_id','=',$request->input('manufacturer_id'));
}
if ($request->has('supplier_id')) {
if ($request->filled('supplier_id')) {
$accessories->where('supplier_id','=',$request->input('supplier_id'));
}
@@ -40,7 +40,7 @@ class AssetMaintenancesController extends Controller
$maintenances = $maintenances->TextSearch(e($request->input('search')));
}
if ($request->has('asset_id')) {
if ($request->filled('asset_id')) {
$maintenances->where('asset_id', '=', $request->input('asset_id'));
}
@@ -48,15 +48,15 @@ class AssetModelsController extends Controller
'models.updated_at',
])
->with('category','depreciation', 'manufacturer','fieldset')
->withCount('assets');
->withCount('assets as assets_count');
if ($request->has('status')) {
if ($request->filled('status')) {
$assetmodels->onlyTrashed();
}
if ($request->has('search')) {
if ($request->filled('search')) {
$assetmodels->TextSearch($request->input('search'));
}
@@ -114,7 +114,7 @@ class AssetModelsController extends Controller
public function show($id)
{
$this->authorize('view', AssetModel::class);
$assetmodel = AssetModel::withCount('assets')->findOrFail($id);
$assetmodel = AssetModel::withCount('assets as assets_count')->findOrFail($id);
return (new AssetModelsTransformer)->transformAssetModel($assetmodel);
}
@@ -210,7 +210,7 @@ class AssetModelsController extends Controller
$settings = \App\Models\Setting::getSettings();
if ($request->has('search')) {
if ($request->filled('search')) {
$assetmodels = $assetmodels->SearchByManufacturerOrCat($request->input('search'));
}
+24 -24
View File
@@ -84,7 +84,7 @@ class AssetsController extends Controller
$filter = array();
if ($request->has('filter')) {
if ($request->filled('filter')) {
$filter = json_decode($request->input('filter'), true);
}
@@ -101,7 +101,7 @@ class AssetsController extends Controller
// These are used by the API to query against specific ID numbers.
// They are also used by the individual searches on detail pages like
// locations, etc.
if ($request->has('status_id')) {
if ($request->filled('status_id')) {
$assets->where('assets.status_id', '=', $request->input('status_id'));
}
@@ -109,40 +109,40 @@ class AssetsController extends Controller
$assets->where('assets.requestable', '=', '1');
}
if ($request->has('model_id')) {
if ($request->filled('model_id')) {
$assets->InModelList([$request->input('model_id')]);
}
if ($request->has('category_id')) {
if ($request->filled('category_id')) {
$assets->InCategory($request->input('category_id'));
}
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$assets->where('assets.location_id', '=', $request->input('location_id'));
}
if ($request->has('supplier_id')) {
if ($request->filled('supplier_id')) {
$assets->where('assets.supplier_id', '=', $request->input('supplier_id'));
}
if (($request->has('assigned_to')) && ($request->has('assigned_type'))) {
if (($request->filled('assigned_to')) && ($request->filled('assigned_type'))) {
$assets->where('assets.assigned_to', '=', $request->input('assigned_to'))
->where('assets.assigned_type', '=', $request->input('assigned_type'));
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$assets->where('assets.company_id', '=', $request->input('company_id'));
}
if ($request->has('manufacturer_id')) {
if ($request->filled('manufacturer_id')) {
$assets->ByManufacturer($request->input('manufacturer_id'));
}
if ($request->has('depreciation_id')) {
if ($request->filled('depreciation_id')) {
$assets->ByDepreciationId($request->input('depreciation_id'));
}
$request->has('order_number') ? $assets = $assets->where('assets.order_number', '=', e($request->get('order_number'))) : '';
$request->filled('order_number') ? $assets = $assets->where('assets.order_number', '=', e($request->get('order_number'))) : '';
$offset = (($assets) && (request('offset') > $assets->count())) ? 0 : request('offset', 0);
$limit = $request->input('limit', 50);
@@ -216,7 +216,7 @@ class AssetsController extends Controller
break;
default:
if ((!$request->has('status_id')) && ($settings->show_archived_in_list!='1')) {
if ((!$request->filled('status_id')) && ($settings->show_archived_in_list!='1')) {
// terrible workaround for complex-query Laravel bug in fulltext
$assets->join('status_labels AS status_alias',function ($join) {
$join->on('status_alias.id', "=", "assets.status_id")
@@ -235,7 +235,7 @@ class AssetsController extends Controller
if ((!is_null($filter)) && (count($filter)) > 0) {
$assets->ByFilter($filter);
} elseif ($request->has('search')) {
} elseif ($request->filled('search')) {
$assets->TextSearch($request->input('search'));
}
@@ -341,7 +341,7 @@ class AssetsController extends Controller
*/
public function show($id)
{
if ($asset = Asset::with('assetstatus')->with('assignedTo')->withTrashed()->withCount('checkins', 'checkouts', 'userRequests')->findOrFail($id)) {
if ($asset = Asset::with('assetstatus')->with('assignedTo')->withTrashed()->withCount('checkins as checkins_count', 'checkouts as checkouts_count', 'userRequests as userRequests_count')->findOrFail($id)) {
$this->authorize('view', $asset);
return (new AssetsTransformer)->transformAsset($asset);
}
@@ -371,11 +371,11 @@ class AssetsController extends Controller
'assets.status_id'
])->with('model', 'assetstatus', 'assignedTo')->NotArchived(),'company_id', 'assets');
if ($request->has('assetStatusType') && $request->input('assetStatusType') === 'RTD') {
if ($request->filled('assetStatusType') && $request->input('assetStatusType') === 'RTD') {
$assets = $assets->RTD();
}
if ($request->has('search')) {
if ($request->filled('search')) {
$assets = $assets->AssignedSearch($request->input('search'));
}
@@ -446,7 +446,7 @@ class AssetsController extends Controller
// Update custom fields in the database.
// Validation for these fields is handled through the AssetRequest form request
$model = AssetModel::find($request->get('model_id'));
if ($model->fieldset) {
if (($model) && ($model->fieldset)) {
foreach ($model->fieldset->fields as $field) {
if ($field->field_encrypted=='1') {
if (Gate::allows('admin')) {
@@ -493,11 +493,11 @@ class AssetsController extends Controller
$asset->fill($request->all());
($request->has('model_id')) ?
($request->filled('model_id')) ?
$asset->model()->associate(AssetModel::find($request->get('model_id'))) : null;
($request->has('company_id')) ?
($request->filled('company_id')) ?
$asset->company_id = Company::getIdForCurrentUser($request->get('company_id')) : null;
($request->has('rtd_location_id')) ?
($request->filled('rtd_location_id')) ?
$asset->location_id = $request->get('rtd_location_id') : null;
// Update custom fields
@@ -518,11 +518,11 @@ class AssetsController extends Controller
if ($asset->save()) {
if (($request->has('assigned_user')) && ($target = User::find($request->get('assigned_user')))) {
if (($request->filled('assigned_user')) && ($target = User::find($request->get('assigned_user')))) {
$location = $target->location_id;
} elseif (($request->has('assigned_asset')) && ($target = Asset::find($request->get('assigned_asset')))) {
} elseif (($request->filled('assigned_asset')) && ($target = Asset::find($request->get('assigned_asset')))) {
$location = $target->location_id;
} elseif (($request->has('assigned_location')) && ($target = Location::find($request->get('assigned_location')))) {
} elseif (($request->filled('assigned_location')) && ($target = Location::find($request->get('assigned_location')))) {
$location = $target->id;
}
@@ -677,7 +677,7 @@ class AssetsController extends Controller
$asset->name = Input::get('name');
$asset->location_id = $asset->rtd_location_id;
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$asset->location_id = $request->input('location_id');
}
@@ -24,9 +24,9 @@ class CategoriesController extends Controller
$allowed_columns = ['id', 'name','category_type', 'category_type','use_default_eula','eula_text', 'require_acceptance','checkin_email', 'assets_count', 'accessories_count', 'consumables_count', 'components_count','licenses_count', 'image'];
$categories = Category::select(['id', 'created_at', 'updated_at', 'name','category_type','use_default_eula','eula_text', 'require_acceptance','checkin_email','image'])
->withCount('assets', 'accessories', 'consumables', 'components','licenses');
->withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count','licenses as licenses_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$categories = $categories->TextSearch($request->input('search'));
}
@@ -148,7 +148,7 @@ class CategoriesController extends Controller
'image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$categories = $categories->where('name', 'LIKE', '%'.$request->get('search').'%');
}
@@ -35,9 +35,9 @@ class CompaniesController extends Controller
'components_count',
];
$companies = Company::withCount('assets','licenses','accessories','consumables','components','users');
$companies = Company::withCount('assets as assets_count','licenses as licenses_count','accessories as accessories_count','consumables as consumables_count','components as components_count','users as users_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$companies->TextSearch($request->input('search'));
}
@@ -168,7 +168,7 @@ class CompaniesController extends Controller
'companies.image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$companies = $companies->where('companies.name', 'LIKE', '%'.$request->get('search').'%');
}
@@ -27,19 +27,19 @@ class ComponentsController extends Controller
$components = Company::scopeCompanyables(Component::select('components.*')
->with('company', 'location', 'category'));
if ($request->has('search')) {
if ($request->filled('search')) {
$components = $components->TextSearch($request->input('search'));
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$components->where('company_id','=',$request->input('company_id'));
}
if ($request->has('category_id')) {
if ($request->filled('category_id')) {
$components->where('category_id','=',$request->input('category_id'));
}
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$components->where('location_id','=',$request->input('location_id'));
}
@@ -27,19 +27,19 @@ class ConsumablesController extends Controller
->with('company', 'location', 'category', 'users', 'manufacturer')
);
if ($request->has('search')) {
if ($request->filled('search')) {
$consumables = $consumables->TextSearch(e($request->input('search')));
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$consumables->where('company_id','=',$request->input('company_id'));
}
if ($request->has('category_id')) {
if ($request->filled('category_id')) {
$consumables->where('category_id','=',$request->input('category_id'));
}
if ($request->has('manufacturer_id')) {
if ($request->filled('manufacturer_id')) {
$consumables->where('manufacturer_id','=',$request->input('manufacturer_id'));
}
@@ -43,7 +43,7 @@ class CustomFieldsetsController extends Controller
public function index()
{
$this->authorize('index', CustomFieldset::class);
$fieldsets = CustomFieldset::withCount(['fields', 'models'])->get();
$fieldsets = CustomFieldset::withCount('fields as fields_count', 'models as models_count')->get();
return (new CustomFieldsetsTransformer)->transformCustomFieldsets($fieldsets, $fieldsets->count());
}
@@ -33,9 +33,9 @@ class DepartmentsController extends Controller
'departments.created_at',
'departments.updated_at',
'departments.image'
])->with('users')->with('location')->with('manager')->with('company')->withCount('users');
])->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$departments = $departments->TextSearch($request->input('search'));
}
@@ -76,7 +76,7 @@ class DepartmentsController extends Controller
$department = new Department;
$department->fill($request->all());
$department->user_id = Auth::user()->id;
$department->manager_id = ($request->has('manager_id' ) ? $request->input('manager_id') : null);
$department->manager_id = ($request->filled('manager_id' ) ? $request->input('manager_id') : null);
if ($department->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.create.success')));
@@ -142,7 +142,7 @@ class DepartmentsController extends Controller
'image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$departments = $departments->where('name', 'LIKE', '%'.$request->get('search').'%');
}
@@ -24,7 +24,7 @@ class DepreciationsController extends Controller
$depreciations = Depreciation::select('id','name','months','user_id','created_at','updated_at');
if ($request->has('search')) {
if ($request->filled('search')) {
$depreciations = $depreciations->TextSearch($request->input('search'));
}
@@ -22,9 +22,9 @@ class GroupsController extends Controller
$this->authorize('view', Group::class);
$allowed_columns = ['id','name','created_at', 'users_count'];
$groups = Group::select('id','name','permissions','created_at','updated_at')->withCount('users');
$groups = Group::select('id','name','permissions','created_at','updated_at')->withCount('users as users_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$groups = $groups->TextSearch($request->input('search'));
}
+14 -14
View File
@@ -25,59 +25,59 @@ 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'));
$licenses = Company::scopeCompanyables(License::with('company', 'manufacturer', 'freeSeats', 'supplier','category')->withCount('freeSeats as free_seats_count'));
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$licenses->where('company_id','=',$request->input('company_id'));
}
if ($request->has('name')) {
if ($request->filled('name')) {
$licenses->where('licenses.name','=',$request->input('name'));
}
if ($request->has('product_key')) {
if ($request->filled('product_key')) {
$licenses->where('licenses.serial','=',$request->input('product_key'));
}
if ($request->has('order_number')) {
if ($request->filled('order_number')) {
$licenses->where('order_number','=',$request->input('order_number'));
}
if ($request->has('purchase_order')) {
if ($request->filled('purchase_order')) {
$licenses->where('purchase_order','=',$request->input('purchase_order'));
}
if ($request->has('license_name')) {
if ($request->filled('license_name')) {
$licenses->where('license_name','=',$request->input('license_name'));
}
if ($request->has('license_email')) {
if ($request->filled('license_email')) {
$licenses->where('license_email','=',$request->input('license_email'));
}
if ($request->has('manufacturer_id')) {
if ($request->filled('manufacturer_id')) {
$licenses->where('manufacturer_id','=',$request->input('manufacturer_id'));
}
if ($request->has('supplier_id')) {
if ($request->filled('supplier_id')) {
$licenses->where('supplier_id','=',$request->input('supplier_id'));
}
if ($request->has('category_id')) {
if ($request->filled('category_id')) {
$licenses->where('category_id','=',$request->input('category_id'));
}
if ($request->has('depreciation_id')) {
if ($request->filled('depreciation_id')) {
$licenses->where('depreciation_id','=',$request->input('depreciation_id'));
}
if ($request->has('supplier_id')) {
if ($request->filled('supplier_id')) {
$licenses->where('supplier_id','=',$request->input('supplier_id'));
}
if ($request->has('search')) {
if ($request->filled('search')) {
$licenses = $licenses->TextSearch($request->input('search'));
}
@@ -41,11 +41,11 @@ class LocationsController extends Controller
'locations.updated_at',
'locations.image',
'locations.currency'
])->withCount('assignedAssets')
->withCount('assets')
->withCount('users');
])->withCount('assignedAssets as assigned_assets_count')
->withCount('assets as assets_count')
->withCount('users as users_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$locations = $locations->TextSearch($request->input('search'));
}
@@ -123,9 +123,9 @@ class LocationsController extends Controller
'locations.image',
'locations.currency'
])
->withCount('assignedAssets')
->withCount('assets')
->withCount('users')->findOrFail($id);
->withCount('assignedAssets as assigned_assets_count')
->withCount('assets as assets_count')
->withCount('users as users_count')->findOrFail($id);
return (new LocationsTransformer)->transformLocation($location);
}
@@ -192,7 +192,7 @@ class LocationsController extends Controller
'locations.image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$locations = $locations->where('locations.name', 'LIKE', '%'.$request->get('search').'%');
}
@@ -26,13 +26,13 @@ class ManufacturersController extends Controller
$manufacturers = Manufacturer::select(
array('id','name','url','support_url','support_email','support_phone','created_at','updated_at','image', 'deleted_at')
)->withCount('assets')->withCount('licenses')->withCount('consumables')->withCount('accessories');
)->withCount('assets as assets_count')->withCount('licenses as licenses_count')->withCount('consumables as consumables_count')->withCount('accessories as accessories_count');
if ($request->input('deleted')=='true') {
$manufacturers->onlyTrashed();
}
if ($request->has('search')) {
if ($request->filled('search')) {
$manufacturers = $manufacturers->TextSearch($request->input('search'));
}
@@ -83,7 +83,7 @@ class ManufacturersController extends Controller
public function show($id)
{
$this->authorize('view', Manufacturer::class);
$manufacturer = Manufacturer::withCount('assets')->withCount('licenses')->withCount('consumables')->withCount('accessories')->findOrFail($id);
$manufacturer = Manufacturer::withCount('assets as assets_count')->withCount('licenses as licenses_count')->withCount('consumables as consumables_count')->withCount('accessories as accessories_count')->findOrFail($id);
return (new ManufacturersTransformer)->transformManufacturer($manufacturer);
}
@@ -145,7 +145,7 @@ class ManufacturersController extends Controller
'image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$manufacturers = $manufacturers->where('name', 'LIKE', '%'.$request->get('search').'%');
}
@@ -22,25 +22,25 @@ class ReportsController extends Controller
$actionlogs = Actionlog::with('item', 'user', 'target','location');
if ($request->has('search')) {
if ($request->filled('search')) {
$actionlogs = $actionlogs->TextSearch(e($request->input('search')));
}
if (($request->has('target_type')) && ($request->has('target_id'))) {
if (($request->filled('target_type')) && ($request->filled('target_id'))) {
$actionlogs = $actionlogs->where('target_id','=',$request->input('target_id'))
->where('target_type','=',"App\\Models\\".ucwords($request->input('target_type')));
}
if (($request->has('item_type')) && ($request->has('item_id'))) {
if (($request->filled('item_type')) && ($request->filled('item_id'))) {
$actionlogs = $actionlogs->where('item_id','=',$request->input('item_id'))
->where('item_type','=',"App\\Models\\".ucwords($request->input('item_type')));
}
if ($request->has('action_type')) {
if ($request->filled('action_type')) {
$actionlogs = $actionlogs->where('action_type','=',$request->input('action_type'))->orderBy('created_at', 'desc');
}
if ($request->has('uploads')) {
if ($request->filled('uploads')) {
$actionlogs = $actionlogs->whereNotNull('filename')->orderBy('created_at', 'desc');
}
@@ -24,9 +24,9 @@ class StatuslabelsController extends Controller
$this->authorize('view', Statuslabel::class);
$allowed_columns = ['id','name','created_at', 'assets_count','color','default_label'];
$statuslabels = Statuslabel::withCount('assets');
$statuslabels = Statuslabel::withCount('assets as assets_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$statuslabels = $statuslabels->TextSearch($request->input('search'));
}
@@ -55,7 +55,7 @@ class StatuslabelsController extends Controller
$this->authorize('create', Statuslabel::class);
$request->except('deployable', 'pending','archived');
if (!$request->has('type')) {
if (!$request->filled('type')) {
return response()->json(Helper::formatStandardApiResponse('error', null, ["type" => ["Status label type is required."]]),500);
}
@@ -106,7 +106,7 @@ class StatuslabelsController extends Controller
$request->except('deployable', 'pending','archived');
if (!$request->has('type')) {
if (!$request->filled('type')) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Status label type is required.'));
}
@@ -162,7 +162,7 @@ class StatuslabelsController extends Controller
{
$this->authorize('view', Statuslabel::class);
$statuslabels = Statuslabel::with('assets')->groupBy('id')->withCount('assets')->get();
$statuslabels = Statuslabel::with('assets')->groupBy('id')->withCount('assets as assets_count')->get();
$labels=[];
$points=[];
@@ -26,10 +26,10 @@ class SuppliersController extends Controller
$suppliers = Supplier::select(
array('id','name','address','address2','city','state','country','fax', 'phone','email','contact','created_at','updated_at','deleted_at','image','notes')
)->withCount('assets')->withCount('licenses')->withCount('accessories');
)->withCount('assets as assets_count')->withCount('licenses as licenses_count')->withCount('accessories as accessories_count');
if ($request->has('search')) {
if ($request->filled('search')) {
$suppliers = $suppliers->TextSearch($request->input('search'));
}
@@ -115,7 +115,7 @@ class SuppliersController extends Controller
public function destroy($id)
{
$this->authorize('delete', Supplier::class);
$supplier = Supplier::with('asset_maintenances', 'assets', 'licenses')->withCount('asset_maintenances','assets', 'licenses')->findOrFail($id);
$supplier = Supplier::with('asset_maintenances', 'assets', 'licenses')->withCount('asset_maintenances as asset_maintenances_count','assets as assets_count', 'licenses as licenses_count')->findOrFail($id);
$this->authorize('delete', $supplier);
@@ -153,7 +153,7 @@ class SuppliersController extends Controller
'image',
]);
if ($request->has('search')) {
if ($request->filled('search')) {
$suppliers = $suppliers->where('suppliers.name', 'LIKE', '%'.$request->get('search').'%');
}
+15 -12
View File
@@ -58,31 +58,31 @@ class UsersController extends Controller
'users.zip',
])->with('manager', 'groups', 'userloc', 'company', 'department','assets','licenses','accessories','consumables')
->withCount('assets','licenses','accessories','consumables');
->withCount('assets as assets_count','licenses as licenses_count','accessories as accessories_count','consumables as consumables_count');
$users = Company::scopeCompanyables($users);
if (($request->has('deleted')) && ($request->input('deleted')=='true')) {
if (($request->filled('deleted')) && ($request->input('deleted')=='true')) {
$users = $users->GetDeleted();
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$users = $users->where('users.company_id', '=', $request->input('company_id'));
}
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$users = $users->where('users.location_id', '=', $request->input('location_id'));
}
if ($request->has('group_id')) {
if ($request->filled('group_id')) {
$users = $users->ByGroup($request->get('group_id'));
}
if ($request->has('department_id')) {
if ($request->filled('department_id')) {
$users = $users->where('users.department_id','=',$request->input('department_id'));
}
if ($request->has('search')) {
if ($request->filled('search')) {
$users = $users->TextSearch($request->input('search'));
}
@@ -100,6 +100,9 @@ class UsersController extends Controller
case 'department':
$users = $users->OrderDepartment($order);
break;
case 'company':
$users = $users->OrderCompany($order);
break;
default:
$allowed_columns =
[
@@ -148,7 +151,7 @@ class UsersController extends Controller
$users = Company::scopeCompanyables($users);
if ($request->has('search')) {
if ($request->filled('search')) {
$users = $users->SimpleNameSearch($request->get('search'))
->orWhere('username', 'LIKE', '%'.$request->get('search').'%')
->orWhere('employee_num', 'LIKE', '%'.$request->get('search').'%');
@@ -201,7 +204,7 @@ class UsersController extends Controller
$user->password = bcrypt($request->get('password', $tmp_pass));
if ($user->save()) {
if ($request->has('groups')) {
if ($request->filled('groups')) {
$user->groups()->sync($request->input('groups'));
} else {
$user->groups()->sync(array());
@@ -247,7 +250,7 @@ class UsersController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot be your own manager'));
}
if ($request->has('password')) {
if ($request->filled('password')) {
$user->password = bcrypt($request->input('password'));
}
@@ -257,7 +260,7 @@ class UsersController extends Controller
if ($user->save()) {
if ($request->has('groups')) {
if ($request->filled('groups')) {
$user->groups()->sync($request->input('groups'));
} else {
$user->groups()->sync(array());
@@ -340,7 +343,7 @@ class UsersController extends Controller
$this->authorize('update', User::class);
if ($request->has('id')) {
if ($request->filled('id')) {
try {
$user = User::find($request->get('id'));
$user->two_factor_secret = null;
@@ -65,15 +65,15 @@ class AssetCheckinController extends Controller
$asset->assignedTo()->disassociate($asset);
$asset->assigned_type = null;
$asset->accepted = null;
$asset->name = e($request->get('name'));
$asset->name = $request->get('name');
if ($request->has('status_id')) {
if ($request->filled('status_id')) {
$asset->status_id = e($request->get('status_id'));
}
$asset->location_id = $asset->rtd_location_id;
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$asset->location_id = e($request->get('location_id'));
}
@@ -93,7 +93,7 @@ class AssetCheckinController extends Controller
$data['model_name'] = $asset->model->name;
$data['model_number'] = $asset->model->model_number;
if ($backto=='user') {
if ((isset($user)) && ($backto =='user')) {
return redirect()->route("users.show", $user->id)->with('success', trans('admin/hardware/message.checkin.success'));
}
return redirect()->route("hardware.index")->with('success', trans('admin/hardware/message.checkin.success'));
@@ -28,7 +28,6 @@ class AssetCheckoutController extends Controller
{
// Check if the asset exists
if (is_null($asset = Asset::find(e($assetId)))) {
// Redirect to the asset management page with error
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
}
@@ -39,7 +38,6 @@ class AssetCheckoutController extends Controller
}
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available'));
// Get the dropdown of users and then pass it to the checkout view
}
@@ -71,12 +69,12 @@ class AssetCheckoutController extends Controller
$asset = $this->updateAssetLocation($asset, $target);
$checkout_at = date("Y-m-d H:i:s");
if (($request->has('checkout_at')) && ($request->get('checkout_at')!= date("Y-m-d"))) {
if (($request->filled('checkout_at')) && ($request->get('checkout_at')!= date("Y-m-d"))) {
$checkout_at = $request->get('checkout_at');
}
$expected_checkin = '';
if ($request->has('expected_checkin')) {
if ($request->filled('expected_checkin')) {
$expected_checkin = $request->get('expected_checkin');
}
@@ -111,12 +111,16 @@ class AssetFilesController extends Controller
$this->authorize('update', $asset);
$log = Actionlog::find($fileId);
$full_filename = $destinationPath.'/'.$log->filename;
if (file_exists($full_filename)) {
unlink($destinationPath.'/'.$log->filename);
if ($log) {
$full_filename = $destinationPath.'/'.$log->filename;
if (file_exists($full_filename)) {
unlink($destinationPath.'/'.$log->filename);
}
$log->delete();
return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success'));
}
$log->delete();
return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success'));
return redirect()->back()->with('error', 'Could not find matching upload log.');
}
// Redirect to the hardware management page
@@ -97,7 +97,7 @@ class AssetModelsController extends Controller
$path = app('models_upload_path');
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path.'/'.$file_name);
@@ -194,7 +194,7 @@ class AssetModelsController extends Controller
$file_name = $model->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('models_upload_path').$file_name);
@@ -373,7 +373,7 @@ class AssetModelsController extends Controller
if ((is_array($models_raw_array)) && (count($models_raw_array) > 0)) {
$models = AssetModel::whereIn('id', $models_raw_array)->withCount('assets')->orderBy('assets_count', 'ASC')->get();
$models = AssetModel::whereIn('id', $models_raw_array)->withCount('assets as assets_count')->orderBy('assets_count', 'ASC')->get();
// If deleting....
if ($request->input('bulk_actions')=='delete') {
@@ -420,10 +420,10 @@ class AssetModelsController extends Controller
$update_array = array();
if (($request->has('manufacturer_id') && ($request->input('manufacturer_id')!='NC'))) {
if (($request->filled('manufacturer_id') && ($request->input('manufacturer_id')!='NC'))) {
$update_array['manufacturer_id'] = $request->input('manufacturer_id');
}
if (($request->has('category_id') && ($request->input('category_id')!='NC'))) {
if (($request->filled('category_id') && ($request->input('category_id')!='NC'))) {
$update_array['category_id'] = $request->input('category_id');
}
if ($request->input('fieldset_id')!='NC') {
@@ -461,7 +461,7 @@ class AssetModelsController extends Controller
if ((is_array($models_raw_array)) && (count($models_raw_array) > 0)) {
$models = AssetModel::whereIn('id', $models_raw_array)->withCount('assets')->get();
$models = AssetModel::whereIn('id', $models_raw_array)->withCount('assets as assets_count')->get();
$del_error_count = 0;
$del_count = 0;
+11 -11
View File
@@ -71,7 +71,7 @@ class AssetsController extends Controller
public function index(Request $request)
{
$this->authorize('index', Asset::class);
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$company = Company::find($request->input('company_id'));
} else {
$company = null;
@@ -96,7 +96,7 @@ class AssetsController extends Controller
->with('item', new Asset)
->with('statuslabel_types', Helper::statusTypeList());
if ($request->has('model_id')) {
if ($request->filled('model_id')) {
$selected_model = AssetModel::find($request->input('model_id'));
$view->with('selected_model', $selected_model);
}
@@ -143,7 +143,7 @@ class AssetsController extends Controller
}
// Create the image (if one was chosen.)
if ($request->has('image')) {
if ($request->filled('image')) {
$image = $request->input('image');
// After modification, the image is prefixed by mime info like the following:
@@ -163,7 +163,7 @@ class AssetsController extends Controller
}
$path = public_path('uploads/assets/'.$file_name);
try {
Image::make($image)->resize(500, 500, function ($constraint) {
Image::make($image)->resize(800, 800, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -183,7 +183,7 @@ class AssetsController extends Controller
// Validation for these fields is handled through the AssetRequest form request
$model = AssetModel::find($request->get('model_id'));
if ($model->fieldset) {
if (($model) && ($model->fieldset)) {
foreach ($model->fieldset->fields as $field) {
if ($field->field_encrypted=='1') {
if (Gate::allows('admin')) {
@@ -313,7 +313,7 @@ class AssetsController extends Controller
$asset->supplier_id = $request->input('supplier_id', null);
// If the box isn't checked, it's not in the request at all.
$asset->requestable = $request->has('requestable');
$asset->requestable = $request->filled('requestable');
$asset->rtd_location_id = $request->input('rtd_location_id', null);
if ($asset->assigned_to=='') {
@@ -321,7 +321,7 @@ class AssetsController extends Controller
}
if ($request->has('image_delete')) {
if ($request->filled('image_delete')) {
try {
unlink(public_path().'/uploads/assets/'.$asset->image);
$asset->image = '';
@@ -343,7 +343,7 @@ class AssetsController extends Controller
$asset->physical = '1';
// Update the image
if ($request->has('image')) {
if ($request->filled('image')) {
$image = $request->input('image');
// See postCreate for more explaination of the following.
$header = explode(';', $image, 2)[0];
@@ -359,7 +359,7 @@ class AssetsController extends Controller
$file_name = str_random(25).".".$extension;
$path = public_path('uploads/assets/'.$file_name);
try {
Image::make($image)->resize(500, 500, function ($constraint) {
Image::make($image)->resize(800, 800, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -380,7 +380,7 @@ class AssetsController extends Controller
// FIXME: No idea why this is returning a Builder error on db_column_name.
// Need to investigate and fix. Using static method for now.
$model = AssetModel::find($request->get('model_id'));
if ($model->fieldset) {
if (($model) && ($model->fieldset)) {
foreach ($model->fieldset->fields as $field) {
if ($field->field_encrypted=='1') {
if (Gate::allows('admin')) {
@@ -579,7 +579,7 @@ class AssetsController extends Controller
//get the first row, usually the CSV header
//$headers = $csv->fetchOne();
$results = $csv->fetchAssoc();
$results = $csv->getRecords();
$item = array();
$status = array();
$status['error'] = array();
@@ -193,7 +193,6 @@ class LoginController extends Controller
if ($user = Auth::user()) {
$user->last_login = \Carbon::now();
\Log::debug('Last login:'.$user->last_login);
$user->save();
}
// Redirect to the users page
@@ -276,7 +275,7 @@ class LoginController extends Controller
return redirect()->route('login')->with('error', trans('auth/general.login_prompt'));
}
if (!$request->has('two_factor_secret')) {
if (!$request->filled('two_factor_secret')) {
return redirect()->route('two-factor')->with('error', trans('auth/message.two_factor.code_required'));
}
@@ -314,7 +313,7 @@ class LoginController extends Controller
return redirect()->away($customLogoutUrl);
}
return redirect()->route('login')->with('success', trans('auth/general.logout.success'));
return redirect()->route('login')->with('success', trans('auth/message.logout.success'));
}
+21 -21
View File
@@ -26,13 +26,13 @@ class BulkAssetsController extends Controller
{
$this->authorize('update', Asset::class);
if (!$request->has('ids')) {
if (!$request->filled('ids')) {
return redirect()->back()->with('error', 'No assets selected');
}
$asset_ids = array_keys($request->input('ids'));
if ($request->has('bulk_actions')) {
if ($request->filled('bulk_actions')) {
switch($request->input('bulk_actions')) {
case 'labels':
return view('hardware/labels')
@@ -68,22 +68,22 @@ class BulkAssetsController extends Controller
\Log::debug($request->input('ids'));
if(!$request->has('ids') || count($request->input('ids')) <= 0) {
if(!$request->filled('ids') || count($request->input('ids')) <= 0) {
return redirect()->route("hardware.index")->with('warning', trans('No assets selected, so nothing was updated.'));
}
$assets = array_keys($request->input('ids'));
if (($request->has('purchase_date'))
|| ($request->has('purchase_cost'))
|| ($request->has('supplier_id'))
|| ($request->has('order_number'))
|| ($request->has('warranty_months'))
|| ($request->has('rtd_location_id'))
|| ($request->has('requestable'))
|| ($request->has('company_id'))
|| ($request->has('status_id'))
|| ($request->has('model_id'))
if (($request->filled('purchase_date'))
|| ($request->filled('purchase_cost'))
|| ($request->filled('supplier_id'))
|| ($request->filled('order_number'))
|| ($request->filled('warranty_months'))
|| ($request->filled('rtd_location_id'))
|| ($request->filled('requestable'))
|| ($request->filled('company_id'))
|| ($request->filled('status_id'))
|| ($request->filled('model_id'))
) {
foreach ($assets as $assetId) {
$this->update_array = [];
@@ -96,20 +96,20 @@ class BulkAssetsController extends Controller
->conditionallyAddItem('supplier_id')
->conditionallyAddItem('warranty_months');
if ($request->has('purchase_cost')) {
if ($request->filled('purchase_cost')) {
$this->update_array['purchase_cost'] = Helper::ParseFloat($request->input('purchase_cost'));
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$this->update_array['company_id'] = $request->input('company_id');
if ($request->input('company_id')=="clear") {
$this->update_array['company_id'] = null;
}
}
if ($request->has('rtd_location_id')) {
if ($request->filled('rtd_location_id')) {
$this->update_array['rtd_location_id'] = $request->input('rtd_location_id');
if (($request->has('update_real_loc')) && (($request->input('update_real_loc')) == '1')) {
if (($request->filled('update_real_loc')) && (($request->input('update_real_loc')) == '1')) {
$this->update_array['location_id'] = $request->input('rtd_location_id');
}
}
@@ -137,7 +137,7 @@ class BulkAssetsController extends Controller
*/
protected function conditionallyAddItem($field)
{
if(request()->has($field)) {
if(request()->filled($field)) {
$this->update_array[$field] = request()->input($field);
}
return $this;
@@ -155,7 +155,7 @@ class BulkAssetsController extends Controller
{
$this->authorize('delete', Asset::class);
if ($request->has('ids')) {
if ($request->filled('ids')) {
$assets = Asset::find($request->get('ids'));
foreach ($assets as $asset) {
$update_array['deleted_at'] = date('Y-m-d H:i:s');
@@ -206,13 +206,13 @@ class BulkAssetsController extends Controller
}
}
$checkout_at = date("Y-m-d H:i:s");
if (($request->has('checkout_at')) && ($request->get('checkout_at')!= date("Y-m-d"))) {
if (($request->filled('checkout_at')) && ($request->get('checkout_at')!= date("Y-m-d"))) {
$checkout_at = e($request->get('checkout_at'));
}
$expected_checkin = '';
if ($request->has('expected_checkin')) {
if ($request->filled('expected_checkin')) {
$expected_checkin = e($request->get('expected_checkin'));
}
@@ -87,7 +87,7 @@ class CategoriesController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/categories/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -164,7 +164,7 @@ class CategoriesController extends Controller
$file_name = $category->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('categories_upload_path').$file_name);
+2 -2
View File
@@ -67,7 +67,7 @@ final class CompaniesController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/companies/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -133,7 +133,7 @@ final class CompaniesController extends Controller
$file_name = $company->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('companies_upload_path').$file_name);
@@ -95,7 +95,7 @@ class ComponentsController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/components/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -168,7 +168,7 @@ class ComponentsController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/components/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -91,7 +91,7 @@ class ConsumablesController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/consumables/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -162,7 +162,7 @@ class ConsumablesController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/consumables/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -44,7 +44,7 @@ class CustomFieldsetsController extends Controller
$custom_fields_list = ["" => "Add New Field to Fieldset"] + CustomField::pluck("name", "id")->toArray();
$maxid = 0;
foreach ($cfset->fields() as $field) {
foreach ($cfset->fields as $field) {
if ($field->pivot->order > $maxid) {
$maxid=$field->pivot->order;
}
@@ -172,7 +172,7 @@ class CustomFieldsetsController extends Controller
* @since [v1.8]
* @return View
*/
public function associate($id)
public function associate(Request $request, $id)
{
$set = CustomFieldset::find($id);
@@ -180,12 +180,12 @@ class CustomFieldsetsController extends Controller
$this->authorize('update', $set);
foreach ($set->fields as $field) {
if ($field->id == Input::get('field_id')) {
if ($field->id == $request->input('field_id')) {
return redirect()->route("fieldsets.show", [$id])->withInput()->withErrors(['field_id' => trans('admin/custom_fields/message.field.already_added')]);
}
}
$results=$set->fields()->attach(Input::get('field_id'), ["required" => (Input::get('required') == "on"),"order" => Input::get('order')]);
$results = $set->fields()->attach(Input::get('field_id'), ["required" => ($request->input('required') == "on"),"order" => $request->input('order', 1)]);
return redirect()->route("fieldsets.show", [$id])->with("success", trans('admin/custom_fields/message.field.create.assoc_success'));
}
@@ -30,7 +30,7 @@ class DepartmentsController extends Controller
{
$this->authorize('index', Department::class);
$company = null;
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$company = Company::find($request->input('company_id'));
}
return view('departments/index')->with('company', $company);
@@ -51,13 +51,13 @@ class DepartmentsController extends Controller
$department = new Department;
$department->fill($request->all());
$department->user_id = Auth::user()->id;
$department->manager_id = ($request->has('manager_id' ) ? $request->input('manager_id') : null);
$department->manager_id = ($request->filled('manager_id' ) ? $request->input('manager_id') : null);
if ($request->file('image')) {
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/departments/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -162,7 +162,7 @@ class DepartmentsController extends Controller
$this->authorize('update', $department);
$department->fill($request->all());
$department->manager_id = ($request->has('manager_id' ) ? $request->input('manager_id') : null);
$department->manager_id = ($request->filled('manager_id' ) ? $request->input('manager_id') : null);
$old_image = $department->image;
@@ -176,7 +176,7 @@ class DepartmentsController extends Controller
$file_name = $department->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('departments_upload_path').$file_name);
+33 -28
View File
@@ -545,21 +545,24 @@ class LicensesController extends Controller
$destinationPath = config('app.private_uploads').'/licenses';
// the license is valid
if (isset($license->id)) {
if ($license) {
$this->authorize('edit', $license);
$log = Actionlog::find($fileId);
$full_filename = $destinationPath.'/'.$log->filename;
if (file_exists($full_filename)) {
unlink($destinationPath.'/'.$log->filename);
if ($log) {
$full_filename = $destinationPath.'/'.$log->filename;
if (file_exists($full_filename)) {
unlink($destinationPath.'/'.$log->filename);
}
$log->delete();
return redirect()->back()->with('success', trans('admin/licenses/message.deletefile.success'));
}
$log->delete();
return redirect()->back()->with('success', trans('admin/licenses/message.deletefile.success'));
return redirect()->back()->with('error', 'Could not locate that file.');
}
// Prepare the error message
$error = trans('admin/licenses/message.does_not_exist', compact('id'));
// Redirect to the licence management page
return redirect()->route('licenses.index')->with('error', $error);
return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.does_not_exist', compact('id')));
}
@@ -582,29 +585,31 @@ class LicensesController extends Controller
if (isset($license->id)) {
$this->authorize('view', $license);
$log = Actionlog::find($fileId);
$file = $log->get_src('licenses');
if ($log) {
if ($file =='') {
return response('File not found on server', 404)
->header('Content-Type', 'text/plain');
}
$mimetype = \File::mimeType($file);
if (!file_exists($file)) {
return response('File '.$file.' not found on server', 404)
->header('Content-Type', 'text/plain');
}
if ($download != 'true') {
if ($contents = file_get_contents($file)) {
return Response::make($contents)->header('Content-Type', $mimetype);
$file = $log->get_src('licenses');
if ($file =='') {
return response('File not found on server', 404)
->header('Content-Type', 'text/plain');
}
return JsonResponse::create(["error" => "Failed validation: "], 500);
$mimetype = \File::mimeType($file);
if (!file_exists($file)) {
return response('File '.$file.' not found on server', 404)
->header('Content-Type', 'text/plain');
}
if ($download != 'true') {
if ($contents = file_get_contents($file)) {
return Response::make($contents)->header('Content-Type', $mimetype);
}
return JsonResponse::create(["error" => "Failed validation: "], 500);
}
return Response::download($file);
}
return Response::download($file);
}
+2 -2
View File
@@ -101,7 +101,7 @@ class LocationsController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/locations/'.$file_name);
Image::make($image->getRealPath())->resize(600, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -185,7 +185,7 @@ class LocationsController extends Controller
$file_name = $location->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(600, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('locations_upload_path').$file_name);
@@ -81,7 +81,7 @@ class ManufacturersController extends Controller
$image = $request->file('image');
$file_name = str_slug($image->getClientOriginalName()).".".$image->getClientOriginalExtension();
$path = public_path('uploads/manufacturers/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -155,7 +155,7 @@ class ManufacturersController extends Controller
$file_name = $manufacturer->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('manufacturers_upload_path').$file_name);
+76 -76
View File
@@ -314,65 +314,65 @@ class ReportsController extends Controller
// Open output stream
$handle = fopen('php://output', 'w');
if ($request->has('use_bom')) {
if ($request->filled('use_bom')) {
fprintf($handle, chr(0xEF) . chr(0xBB) . chr(0xBF));
}
$header = [];
if ($request->has('company')) {
if ($request->filled('company')) {
$header[] = trans('general.company');
}
if ($request->has('asset_name')) {
if ($request->filled('asset_name')) {
$header[] = trans('admin/hardware/form.name');
}
if ($request->has('asset_tag')) {
if ($request->filled('asset_tag')) {
$header[] = trans('admin/hardware/table.asset_tag');
}
if ($request->has('model')) {
if ($request->filled('model')) {
$header[] = trans('admin/hardware/form.model');
$header[] = trans('general.model_no');
}
if ($request->has('category')) {
if ($request->filled('category')) {
$header[] = trans('general.category');
}
if ($request->has('manufacturer')) {
if ($request->filled('manufacturer')) {
$header[] = trans('admin/hardware/form.manufacturer');
}
if ($request->has('serial')) {
if ($request->filled('serial')) {
$header[] = trans('admin/hardware/table.serial');
}
if ($request->has('purchase_date')) {
if ($request->filled('purchase_date')) {
$header[] = trans('admin/hardware/table.purchase_date');
}
if (($request->has('purchase_cost')) || ($request->has('depreciation'))) {
if (($request->filled('purchase_cost')) || ($request->filled('depreciation'))) {
$header[] = trans('admin/hardware/table.purchase_cost');
}
if ($request->has('eol')) {
if ($request->filled('eol')) {
$header[] = trans('admin/hardware/table.eol');
}
if ($request->has('order')) {
if ($request->filled('order')) {
$header[] = trans('admin/hardware/form.order');
}
if ($request->has('supplier')) {
if ($request->filled('supplier')) {
$header[] = trans('general.supplier');
}
if ($request->has('location')) {
if ($request->filled('location')) {
$header[] = trans('admin/hardware/table.location');
}
if ($request->has('location_address')) {
if ($request->filled('location_address')) {
$header[] = trans('general.address');
$header[] = trans('general.address');
$header[] = trans('general.city');
@@ -381,11 +381,11 @@ class ReportsController extends Controller
$header[] = trans('general.zip');
}
if ($request->has('rtd_location')) {
if ($request->filled('rtd_location')) {
$header[] = trans('admin/hardware/form.default_location');
}
if ($request->has('rtd_location_address')) {
if ($request->filled('rtd_location_address')) {
$header[] = trans('general.address');
$header[] = trans('general.address');
$header[] = trans('general.city');
@@ -395,65 +395,65 @@ class ReportsController extends Controller
}
if ($request->has('assigned_to')) {
if ($request->filled('assigned_to')) {
$header[] = trans('admin/hardware/table.checkoutto');
$header[] = trans('general.type');
}
if ($request->has('username')) {
if ($request->filled('username')) {
$header[] = 'Username';
}
if ($request->has('employee_num')) {
if ($request->filled('employee_num')) {
$header[] = 'Employee No.';
}
if ($request->has('manager')) {
if ($request->filled('manager')) {
$header[] = trans('admin/users/table.manager');
}
if ($request->has('department')) {
if ($request->filled('department')) {
$header[] = trans('general.department');
}
if ($request->has('status')) {
if ($request->filled('status')) {
$header[] = trans('general.status');
}
if ($request->has('warranty')) {
if ($request->filled('warranty')) {
$header[] = 'Warranty';
$header[] = 'Warranty Expires';
}
if ($request->has('depreciation')) {
if ($request->filled('depreciation')) {
$header[] = 'Value';
$header[] = 'Diff';
}
if ($request->has('checkout_date')) {
if ($request->filled('checkout_date')) {
$header[] = trans('admin/hardware/table.checkout_date');
}
if ($request->has('expected_checkin')) {
if ($request->filled('expected_checkin')) {
$header[] = trans('admin/hardware/form.expected_checkin');
}
if ($request->has('created_at')) {
if ($request->filled('created_at')) {
$header[] = trans('general.created_at');
}
if ($request->has('updated_at')) {
if ($request->filled('updated_at')) {
$header[] = trans('general.updated_at');
}
if ($request->has('last_audit_date')) {
if ($request->filled('last_audit_date')) {
$header[] = trans('general.last_audit');
}
if ($request->has('next_audit_date')) {
if ($request->filled('next_audit_date')) {
$header[] = trans('general.next_audit_date');
}
if ($request->has('notes')) {
if ($request->filled('notes')) {
$header[] = trans('general.notes');
}
@@ -471,52 +471,52 @@ class ReportsController extends Controller
'location', 'assetstatus', 'assetlog', 'company', 'defaultLoc','assignedTo',
'model.category', 'model.manufacturer','supplier');
if ($request->has('by_location_id')) {
if ($request->filled('by_location_id')) {
$assets->where('assets.location_id', $request->input('by_location_id'));
}
if ($request->has('by_rtd_location_id')) {
if ($request->filled('by_rtd_location_id')) {
\Log::debug('RTD location should match: '.$request->input('by_rtd_location_id'));
$assets->where('assets.rtd_location_id', $request->input('by_rtd_location_id'));
}
if ($request->has('by_supplier_id')) {
if ($request->filled('by_supplier_id')) {
$assets->where('assets.supplier_id', $request->input('by_supplier_id'));
}
if ($request->has('by_company_id')) {
if ($request->filled('by_company_id')) {
$assets->where('assets.company_id', $request->input('by_company_id'));
}
if ($request->has('by_model_id')) {
if ($request->filled('by_model_id')) {
$assets->where('assets.model_id', $request->input('by_model_id'));
}
if ($request->has('by_category_id')) {
if ($request->filled('by_category_id')) {
$assets->InCategory($request->input('by_category_id'));
}
if ($request->has('by_manufacturer_id')) {
if ($request->filled('by_manufacturer_id')) {
$assets->ByManufacturer($request->input('by_manufacturer_id'));
}
if ($request->has('by_order_number')) {
if ($request->filled('by_order_number')) {
$assets->where('assets.order_number', $request->input('by_order_number'));
}
if ($request->has('by_status_id')) {
if ($request->filled('by_status_id')) {
$assets->where('assets.status_id', $request->input('by_status_id'));
}
if (($request->has('purchase_start')) && ($request->has('purchase_end'))) {
if (($request->filled('purchase_start')) && ($request->filled('purchase_end'))) {
$assets->whereBetween('assets.purchase_date', [$request->input('purchase_start'), $request->input('purchase_end')]);
}
if (($request->has('created_start')) && ($request->has('created_end'))) {
if (($request->filled('created_start')) && ($request->filled('created_end'))) {
$assets->whereBetween('assets.created_at', [$request->input('created_start'), $request->input('created_end')]);
}
if (($request->has('expected_checkin_start')) && ($request->has('expected_checkin_end'))) {
if (($request->filled('expected_checkin_start')) && ($request->filled('expected_checkin_end'))) {
$assets->whereBetween('assets.expected_checkin', [$request->input('expected_checkin_start'), $request->input('expected_checkin_end')]);
}
@@ -525,61 +525,61 @@ class ReportsController extends Controller
foreach ($assets as $asset) {
$row = [];
if ($request->has('company')) {
if ($request->filled('company')) {
$row[] = ($asset->company) ? $asset->company->name : '';
}
if ($request->has('asset_name')) {
if ($request->filled('asset_name')) {
$row[] = ($asset->name) ? $asset->name : '';
}
if ($request->has('asset_tag')) {
if ($request->filled('asset_tag')) {
$row[] = ($asset->asset_tag) ? $asset->asset_tag : '';
}
if ($request->has('model')) {
if ($request->filled('model')) {
$row[] = ($asset->model) ? $asset->model->name : '';
$row[] = ($asset->model) ? $asset->model->model_number : '';
}
if ($request->has('category')) {
if ($request->filled('category')) {
$row[] = (($asset->model) && ($asset->model->category)) ? $asset->model->category->name : '';
}
if ($request->has('manufacturer')) {
if ($request->filled('manufacturer')) {
$row[] = ($asset->model && $asset->model->manufacturer) ? $asset->model->manufacturer->name : '';
}
if ($request->has('serial')) {
if ($request->filled('serial')) {
$row[] = ($asset->serial) ? $asset->serial : '';
}
if ($request->has('purchase_date')) {
if ($request->filled('purchase_date')) {
$row[] = ($asset->purchase_date) ? $asset->purchase_date : '';
}
if ($request->has('purchase_cost')) {
if ($request->filled('purchase_cost')) {
$row[] = ($asset->purchase_cost) ? Helper::formatCurrencyOutput($asset->purchase_cost) : '';
}
if ($request->has('eol')) {
if ($request->filled('eol')) {
$row[] = ($asset->purchase_date!='') ? $asset->present()->eol_date() : '';
}
if ($request->has('order')) {
if ($request->filled('order')) {
$row[] = ($asset->order_number) ? $asset->order_number : '';
}
if ($request->has('supplier')) {
if ($request->filled('supplier')) {
$row[] = ($asset->supplier) ? $asset->supplier->name : '';
}
if ($request->has('location')) {
if ($request->filled('location')) {
$row[] = ($asset->location) ? $asset->location->present()->name() : '';
}
if ($request->has('location_address')) {
if ($request->filled('location_address')) {
$row[] = ($asset->location) ? $asset->location->address : '';
$row[] = ($asset->location) ? $asset->location->address2 : '';
$row[] = ($asset->location) ? $asset->location->city : '';
@@ -588,11 +588,11 @@ class ReportsController extends Controller
$row[] = ($asset->location) ? $asset->location->zip : '';
}
if ($request->has('rtd_location')) {
if ($request->filled('rtd_location')) {
$row[] = ($asset->defaultLoc) ? $asset->defaultLoc->present()->name() : '';
}
if ($request->has('rtd_location_address')) {
if ($request->filled('rtd_location_address')) {
$row[] = ($asset->defaultLoc) ? $asset->defaultLoc->address : '';
$row[] = ($asset->defaultLoc) ? $asset->defaultLoc->address2 : '';
$row[] = ($asset->defaultLoc) ? $asset->defaultLoc->city : '';
@@ -602,12 +602,12 @@ class ReportsController extends Controller
}
if ($request->has('assigned_to')) {
if ($request->filled('assigned_to')) {
$row[] = ($asset->checkedOutToUser() && $asset->assigned) ? $asset->assigned->getFullNameAttribute() : ($asset->assigned ? $asset->assigned->display_name : '');
$row[] = ($asset->checkedOutToUser() && $asset->assigned) ? 'user' : $asset->assignedType();
}
if ($request->has('username')) {
if ($request->filled('username')) {
// Only works if we're checked out to a user, not anything else.
if ($asset->checkedOutToUser()) {
$row[] = ($asset->assignedto) ? $asset->assignedto->username : '';
@@ -616,7 +616,7 @@ class ReportsController extends Controller
}
}
if ($request->has('employee_num')) {
if ($request->filled('employee_num')) {
// Only works if we're checked out to a user, not anything else.
if ($asset->checkedOutToUser()) {
$row[] = ($asset->assignedto) ? $asset->assignedto->employee_num : '';
@@ -625,7 +625,7 @@ class ReportsController extends Controller
}
}
if ($request->has('manager')) {
if ($request->filled('manager')) {
if ($asset->checkedOutToUser()) {
$row[] = (($asset->assignedto) && ($asset->assignedto->manager)) ? $asset->assignedto->manager->present()->fullName : '';
} else {
@@ -634,7 +634,7 @@ class ReportsController extends Controller
}
if ($request->has('department')) {
if ($request->filled('department')) {
if ($asset->checkedOutToUser()) {
$row[] = (($asset->assignedto) && ($asset->assignedto->department)) ? $asset->assignedto->department->name : '';
} else {
@@ -642,55 +642,55 @@ class ReportsController extends Controller
}
}
if ($request->has('status')) {
if ($request->filled('status')) {
$row[] = ($asset->assetstatus) ? $asset->assetstatus->name.' ('.$asset->present()->statusMeta.')' : '';
}
if ($request->has('warranty')) {
if ($request->filled('warranty')) {
$row[] = ($asset->warranty_months) ? $asset->warranty_months : '';
$row[] = $asset->present()->warrantee_expires();
}
if ($request->has('depreciation')) {
if ($request->filled('depreciation')) {
$depreciation = $asset->getDepreciatedValue();
$diff = ($asset->purchase_cost - $depreciation);
$row[] = Helper::formatCurrencyOutput($depreciation);
$row[] = Helper::formatCurrencyOutput($diff);
}
if ($request->has('checkout_date')) {
if ($request->filled('checkout_date')) {
$row[] = ($asset->last_checkout) ? $asset->last_checkout : '';
}
if ($request->has('expected_checkin')) {
if ($request->filled('expected_checkin')) {
$row[] = ($asset->expected_checkin) ? $asset->expected_checkin : '';
}
if ($request->has('created_at')) {
if ($request->filled('created_at')) {
$row[] = ($asset->created_at) ? $asset->created_at : '';
}
if ($request->has('updated_at')) {
if ($request->filled('updated_at')) {
$row[] = ($asset->updated_at) ? $asset->updated_at : '';
}
if ($request->has('last_audit_date')) {
if ($request->filled('last_audit_date')) {
$row[] = ($asset->last_audit_date) ? $asset->last_audit_date : '';
}
if ($request->has('next_audit_date')) {
if ($request->filled('next_audit_date')) {
$row[] = ($asset->next_audit_date) ? $asset->next_audit_date : '';
}
if ($request->has('notes')) {
if ($request->filled('notes')) {
$row[] = ($asset->notes) ? $asset->notes : '';
}
foreach ($customfields as $customfield) {
$column_name = $customfield->db_column_name();
if ($request->has($customfield->db_column_name())) {
if ($request->filled($customfield->db_column_name())) {
$row[] = $asset->$column_name;
}
}
+11 -11
View File
@@ -326,7 +326,7 @@ class SettingsController extends Controller
$setting->modellist_displays = '';
if (($request->has('show_in_model_list')) && (count($request->input('show_in_model_list')) > 0))
if (($request->filled('show_in_model_list')) && (count($request->input('show_in_model_list')) > 0))
{
$setting->modellist_displays = implode(',', $request->input('show_in_model_list'));
}
@@ -495,7 +495,7 @@ class SettingsController extends Controller
$setting->pwd_secure_complexity = '';
if ($request->has('pwd_secure_complexity')) {
if ($request->filled('pwd_secure_complexity')) {
$setting->pwd_secure_complexity = implode('|', $request->input('pwd_secure_complexity'));
}
@@ -794,31 +794,31 @@ class SettingsController extends Controller
if ($request->has('labels_display_name')) {
if ($request->filled('labels_display_name')) {
$setting->labels_display_name = 1;
} else {
$setting->labels_display_name = 0;
}
if ($request->has('labels_display_serial')) {
if ($request->filled('labels_display_serial')) {
$setting->labels_display_serial = 1;
} else {
$setting->labels_display_serial = 0;
}
if ($request->has('labels_display_tag')) {
if ($request->filled('labels_display_tag')) {
$setting->labels_display_tag = 1;
} else {
$setting->labels_display_tag = 0;
}
if ($request->has('labels_display_tag')) {
if ($request->filled('labels_display_tag')) {
$setting->labels_display_tag = 1;
} else {
$setting->labels_display_tag = 0;
}
if ($request->has('labels_display_model')) {
if ($request->filled('labels_display_model')) {
$setting->labels_display_model = 1;
} else {
$setting->labels_display_model = 0;
@@ -865,7 +865,7 @@ class SettingsController extends Controller
$setting->ldap_server = $request->input('ldap_server');
$setting->ldap_server_cert_ignore = $request->input('ldap_server_cert_ignore', false);
$setting->ldap_uname = $request->input('ldap_uname');
if (Input::has('ldap_pword')) {
if (Input::filled('ldap_pword')) {
$setting->ldap_pword = Crypt::encrypt($request->input('ldap_pword'));
}
$setting->ldap_basedn = $request->input('ldap_basedn');
@@ -907,7 +907,7 @@ class SettingsController extends Controller
public function getBackups()
{
$path = storage_path().'/app/'.config('laravel-backup.backup.name');
$path = storage_path().'/app/'.config('backup.backup.name');
$files = array();
@@ -983,7 +983,7 @@ class SettingsController extends Controller
public function downloadFile($filename = null)
{
if (!config('app.lock_passwords')) {
$path = storage_path().'/app/'.config('laravel-backup.backup.name');
$path = storage_path().'/app/'.config('backup.backup.name');
$file = $path.'/'.$filename;
if (file_exists($file)) {
return Response::download($file);
@@ -1012,7 +1012,7 @@ class SettingsController extends Controller
if (!config('app.lock_passwords')) {
$path = storage_path().'/app/'.config('laravel-backup.backup.name');
$path = storage_path().'/app/'.config('backup.backup.name');
$file = $path.'/'.$filename;
if (file_exists($file)) {
unlink($file);
@@ -78,7 +78,7 @@ class StatuslabelsController extends Controller
// create a new model instance
$statusLabel = new Statuslabel();
if (!$request->has('statuslabel_types')) {
if (!$request->filled('statuslabel_types')) {
return redirect()->back()->withInput()->withErrors(['statuslabel_types' => trans('validation.statuslabel_type')]);
}
@@ -141,7 +141,7 @@ class StatuslabelsController extends Controller
return redirect()->route('statuslabels.index')->with('error', trans('admin/statuslabels/message.does_not_exist'));
}
if (!$request->has('statuslabel_types')) {
if (!$request->filled('statuslabel_types')) {
return redirect()->back()->withInput()->withErrors(['statuslabel_types' => trans('validation.statuslabel_type')]);
}
+3 -3
View File
@@ -83,7 +83,7 @@ class SuppliersController extends Controller
$image = $request->file('image');
$file_name = str_random(25).".".$image->getClientOriginalExtension();
$path = public_path('uploads/suppliers/'.$file_name);
Image::make($image->getRealPath())->resize(200, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save($path);
@@ -159,7 +159,7 @@ class SuppliersController extends Controller
$file_name = $supplier->id.'-'.str_slug($image->getClientOriginalName()) . "." . $image->getClientOriginalExtension();
if ($image->getClientOriginalExtension()!='svg') {
Image::make($image->getRealPath())->resize(500, null, function ($constraint) {
Image::make($image->getRealPath())->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->save(app('suppliers_upload_path').$file_name);
@@ -196,7 +196,7 @@ class SuppliersController extends Controller
public function destroy($supplierId)
{
$this->authorize('delete', Supplier::class);
if (is_null($supplier = Supplier::with('asset_maintenances', 'assets', 'licenses')->withCount('asset_maintenances','assets','licenses')->find($supplierId))) {
if (is_null($supplier = Supplier::with('asset_maintenances', 'assets', 'licenses')->withCount('asset_maintenances as asset_maintenances_count','assets as assets_count','licenses as licenses_count')->find($supplierId))) {
return redirect()->route('suppliers.index')->with('error', trans('admin/suppliers/message.not_found'));
}
+16 -16
View File
@@ -107,7 +107,7 @@ class UsersController extends Controller
//Username, email, and password need to be handled specially because the need to respect config values on an edit.
$user->email = $data['email'] = e($request->input('email'));
$user->username = $data['username'] = e($request->input('username'));
if ($request->has('password')) {
if ($request->filled('password')) {
$user->password = bcrypt($request->input('password'));
$data['password'] = $request->input('password');
}
@@ -139,13 +139,13 @@ class UsersController extends Controller
if ($user->save()) {
if ($request->has('groups')) {
if ($request->filled('groups')) {
$user->groups()->sync($request->input('groups'));
} else {
$user->groups()->sync(array());
}
if (($request->input('email_user') == 1) && ($request->has('email'))) {
if (($request->input('email_user') == 1) && ($request->filled('email'))) {
// Send the credentials through email
$data = array();
$data['email'] = e($request->input('email'));
@@ -263,7 +263,7 @@ class UsersController extends Controller
}
if ($request->has('username')) {
if ($request->filled('username')) {
$user->username = $request->input('username');
}
$user->email = $request->input('email');
@@ -297,7 +297,7 @@ class UsersController extends Controller
->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]);
// Do we want to update the user password?
if ($request->has('password')) {
if ($request->filled('password')) {
$user->password = bcrypt($request->input('password'));
}
@@ -390,7 +390,7 @@ class UsersController extends Controller
{
$this->authorize('update', User::class);
if (($request->has('ids')) && (count($request->input('ids')) > 0)) {
if (($request->filled('ids')) && (count($request->input('ids')) > 0)) {
$statuslabel_list = Helper::statusLabelList();
$user_raw_array = array_keys(Input::get('ids'));
$users = User::whereIn('id', $user_raw_array)->with('groups', 'assets', 'licenses', 'accessories')->get();
@@ -416,28 +416,28 @@ class UsersController extends Controller
{
$this->authorize('update', User::class);
if (($request->has('ids')) && (count($request->input('ids')) > 0)) {
if (($request->filled('ids')) && (count($request->input('ids')) > 0)) {
$user_raw_array = $request->input('ids');
$update_array = array();
$manager_conflict = false;
$users = User::whereIn('id', $user_raw_array)->where('id', '!=', Auth::user()->id)->get();
if ($request->has('location_id')) {
if ($request->filled('location_id')) {
$update_array['location_id'] = $request->input('location_id');
}
if ($request->has('department_id')) {
if ($request->filled('department_id')) {
$update_array['department_id'] = $request->input('department_id');
}
if ($request->has('company_id')) {
if ($request->filled('company_id')) {
$update_array['company_id'] = $request->input('company_id');
}
if ($request->has('locale')) {
if ($request->filled('locale')) {
$update_array['locale'] = $request->input('locale');
}
if ($request->has('manager_id')) {
if ($request->filled('manager_id')) {
// Do not allow a manager update if the selected manager is one of the users being
// edited.
@@ -448,7 +448,7 @@ class UsersController extends Controller
}
}
if ($request->has('activated')) {
if ($request->filled('activated')) {
$update_array['activated'] = $request->input('activated');
}
@@ -458,7 +458,7 @@ class UsersController extends Controller
}
// Only sync groups if groups were selected
if ($request->has('groups')) {
if ($request->filled('groups')) {
foreach ($users as $user) {
$user->groups()->sync($request->input('groups'));
}
@@ -490,9 +490,9 @@ class UsersController extends Controller
{
$this->authorize('update', User::class);
if ((!$request->has('ids')) || (count($request->input('ids')) == 0)) {
if ((!$request->filled('ids')) || (count($request->input('ids')) == 0)) {
return redirect()->back()->with('error', 'No users selected');
} elseif ((!$request->has('status_id')) || ($request->input('status_id')=='')) {
} elseif ((!$request->filled('status_id')) || ($request->input('status_id')=='')) {
return redirect()->route('users.index')->with('error', 'No status selected');
} else {
@@ -269,7 +269,7 @@ class ViewAssetsController extends Controller
return redirect()->to('account/view-assets')->with('error', trans('admin/users/message.error.incorrect_user_accepted'));
}
if ($request->has('signature_output')) {
if ($request->filled('signature_output')) {
$path = config('app.private_uploads').'/signatures';
$sig_filename = "siglog-".$findlog->id.'-'.date('Y-m-d-his').".png";
$data_uri = e($request->get('signature_output'));
+1 -1
View File
@@ -44,7 +44,7 @@ class Kernel extends HttpKernel
],
'api' => [
'throttle:60,1',
'throttle:120,1',
'auth:api',
],
];
+11
View File
@@ -6,6 +6,8 @@ use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;
class EncryptCookies extends BaseEncrypter
{
/**
* The names of the cookies that should not be encrypted.
*
@@ -14,4 +16,13 @@ class EncryptCookies extends BaseEncrypter
protected $except = [
//
];
/**
* Indicates if cookies should be serialized.
*
* @var bool
*/
protected static $serialize = true;
}
+21 -1
View File
@@ -2,10 +2,12 @@
namespace App\Http\Requests;
use App\Http\Requests\Request;
use App\Models\AssetModel;
use Session;
use Illuminate\Contracts\Validation\Validator;
class AssetRequest extends Request
{
/**
@@ -65,4 +67,22 @@ class AssetRequest extends Request
\Input::flash();
return parent::response($errors);
}
/**
* Handle a failed validation attempt.
*
* public function json($data = [], $status = 200, array $headers = [], $options = 0)
*
* @param \Illuminate\Contracts\Validation\Validator $validator
* @return void
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function failedValidation(Validator $validator)
{
return response()->json([
'message' => 'The given data is invalid',
'errors' => $validator->errors()
], 422);
}
}
+2 -1
View File
@@ -120,7 +120,8 @@ abstract class Importer
public function import()
{
$headerRow = $this->csv->fetchOne();
$results = $this->normalizeInputArray($this->csv->fetchAssoc());
$this->csv->setHeaderOffset(0); //explicitly sets the CSV document header record
$results = $this->normalizeInputArray($this->csv->getRecords($headerRow));
$this->populateCustomFields($headerRow);
+1 -3
View File
@@ -1038,9 +1038,7 @@ class Asset extends Depreciable
->orWhere('assets.order_number', 'LIKE', '%'.$search.'%')
->orWhere('assets.notes', 'LIKE', '%'.$search.'%');
}
foreach (CustomField::all() as $field) {
$query->orWhere('assets.'.$field->db_column_name(), 'LIKE', "%$search%");
}
})->withTrashed()->whereNull("assets.deleted_at"); //workaround for laravel bug
}
-1
View File
@@ -26,7 +26,6 @@ class Department extends SnipeModel
protected $rules = [
'name' => 'required|max:255',
'user_id' => 'nullable|exists:users,id',
'location_id' => 'numeric|nullable',
'company_id' => 'numeric|nullable',
'manager_id' => 'numeric|nullable',
+2 -2
View File
@@ -7,10 +7,10 @@ use Watson\Validating\ValidatingTrait;
class Group extends SnipeModel
{
protected $table = 'groups';
protected $table = 'permission_groups';
public $rules = array(
'name' => 'required|min:3|max:255',
'name' => 'required|min:2|max:255',
);
/**
+14 -1
View File
@@ -491,7 +491,7 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo
public function scopeByGroup($query, $id) {
return $query->whereHas('groups', function ($query) use ($id) {
$query->where('groups.id', '=', $id);
$query->where('permission_groups.id', '=', $id);
});
}
@@ -549,4 +549,17 @@ class User extends SnipeModel implements AuthenticatableContract, CanResetPasswo
{
return $query->leftJoin('departments as departments_users', 'users.department_id', '=', 'departments_users.id')->orderBy('departments_users.name', $order);
}
/**
* Query builder scope to order on company
*
* @param Illuminate\Database\Query\Builder $query Query builder instance
* @param text $order Order
*
* @return Illuminate\Database\Query\Builder Modified query builder
*/
public function scopeOrderCompany($query, $order)
{
return $query->leftJoin('companies as companies_user', 'users.company_id', '=', 'companies_user.id')->orderBy('companies_user.name', $order);
}
}
+28
View File
@@ -111,6 +111,34 @@ class SettingsServiceProvider extends ServiceProvider
return url('/').'/uploads/companies/';
});
// Accessories paths and URLs
\App::singleton('accessories_upload_path', function(){
return public_path('/uploads/accessories/');
});
\App::singleton('accessories_upload_url', function(){
return url('/').'/uploads/accessories/';
});
// Consumables paths and URLs
\App::singleton('consumables_upload_path', function(){
return public_path('/uploads/consumables/');
});
\App::singleton('consumables_upload_url', function(){
return url('/').'/uploads/consumables/';
});
// Components paths and URLs
\App::singleton('components_upload_path', function(){
return public_path('/uploads/components/');
});
\App::singleton('components_upload_url', function(){
return url('/').'/uploads/components/';
});
// Set the monetary locale to the configured locale to make helper::parseFloat work.
+29 -22
View File
@@ -5,44 +5,47 @@
"license": "AGPL-3.0-or-later",
"type": "project",
"require": {
"php": ">=5.6.4",
"barryvdh/laravel-debugbar": "^2.4",
"doctrine/cache": "^1.6",
"doctrine/common": "^2.7",
"doctrine/dbal": "^2.5.13",
"doctrine/inflector": "1.1.*",
"doctrine/instantiator": "1.0.*",
"php": ">=7.1.2",
"barryvdh/laravel-debugbar": "^3.2",
"doctrine/cache": "^1.8",
"doctrine/common": "^2.10",
"doctrine/dbal": "2.9.0",
"doctrine/inflector": "^1.3",
"doctrine/instantiator": "^1.2",
"eduardokum/laravel-mail-auto-embed": "^1.0",
"erusev/parsedown": "^1.7.3",
"fideloper/proxy": "^3.3",
"intervention/image": "^2.3",
"erusev/parsedown": "^1.7",
"fideloper/proxy": "^4.1",
"guzzlehttp/guzzle": "^6.3",
"intervention/image": "^2.4",
"javiereguiluz/easyslugger": "^1.0",
"laravel/framework": "5.4.35",
"laravel/passport": "^3.0",
"laravel/framework": "5.5.*",
"laravel/passport": "4.*",
"laravel/tinker": "^1.0",
"laravelcollective/html": "^5.3",
"league/csv": "^8.1",
"laravelcollective/html": "^5.5",
"league/csv": "^9.2",
"maknz/slack": "^1.7",
"neitanod/forceutf8": "^2.0",
"patchwork/utf8": "~1.2",
"patchwork/utf8": "^1.3",
"phpdocumentor/reflection-docblock": "3.2.2",
"phpspec/prophecy": "1.6.2",
"phpspec/prophecy": "^1.8",
"pragmarx/google2fa": "^5.0",
"pragmarx/google2fa-laravel": "^0.3.0",
"pragmarx/google2fa-laravel": "^1.0",
"predis/predis": "^1.1",
"rollbar/rollbar-laravel": "2.4.1",
"rollbar/rollbar-laravel": "^4.0",
"schuppo/password-strength": "~1.5",
"spatie/laravel-backup": "3.11.0",
"spatie/laravel-backup": "^5.12",
"tecnickcom/tc-lib-barcode": "^1.15",
"tightenco/ziggy": "^0.4.1",
"tightenco/ziggy": "^0.7.1",
"unicodeveloper/laravel-password": "^1.0",
"watson/validating": "^3.0"
},
"require-dev": {
"codeception/codeception": "2.3.6",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"phpunit/php-token-stream": "1.4.11",
"phpunit/phpunit": "~5.7",
"phpunit/phpunit": "~6.0",
"roave/security-advisories": "dev-master",
"squizlabs/php_codesniffer": "*",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*"
@@ -67,6 +70,10 @@
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
@@ -75,7 +82,7 @@
"optimize-autoloader": true,
"process-timeout":3000,
"platform": {
"php": "5.6.4"
"php": "7.1.2"
}
}
Generated
+1741 -426
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -286,7 +286,6 @@ return [
* Package Service Providers...
*/
Barryvdh\Debugbar\ServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
Spatie\Backup\BackupServiceProvider::class,
+222
View File
@@ -0,0 +1,222 @@
<?php
// This is janky, but necessary to figure out whether to include the .env in the backup
$included_dirs = [
base_path('public/uploads'),
base_path('config'),
base_path('storage/private_uploads'),
base_path('storage/oauth-private.key'),
base_path('storage/oauth-public.key'),
];
if (env('BACKUP_ENV')=='true') {
$included_dirs[] = base_path('.env');
}
return [
'backup' => [
/*
* The name of this application. You can use this name to monitor
* the backups.
*/
'name' => 'backups',
'source' => [
'files' => [
/*
* The list of directories and files that will be included in the backup.
*/
'include' => $included_dirs,
/*
* These directories and files will be excluded from the backup.
*
* Directories used by the backup process will automatically be excluded.
*/
'exclude' => [
base_path('vendor'),
base_path('node_modules'),
],
/*
* Determines if symlinks should be followed.
*/
'followLinks' => false,
],
/*
* The names of the connections to the databases that should be backed up
* MySQL, PostgreSQL, SQLite and Mongo databases are supported.
*
* The content of the database dump may be customized for each connection
* by adding a 'dump' key to the connection settings in config/database.php.
* E.g.
* 'mysql' => [
* ...
* 'dump' => [
* 'excludeTables' => [
* 'table_to_exclude_from_backup',
* 'another_table_to_exclude'
* ]
* ]
* ],
*
* For a complete list of available customization options, see https://github.com/spatie/db-dumper
*/
'databases' => [
'mysql',
],
],
/*
* The database dump can be compressed to decrease diskspace usage.
*
* Out of the box Laravel-backup supplies
* Spatie\DbDumper\Compressors\GzipCompressor::class.
*
* You can also create custom compressor. More info on that here:
* https://github.com/spatie/db-dumper#using-compression
*
* If you do not want any compressor at all, set it to null.
*/
'database_dump_compressor' => null,
'destination' => [
/*
* The filename prefix used for the backup zip file.
*/
'filename_prefix' => 'snipe-it-',
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'local',
],
],
/*
* The directory where the temporary files will be stored.
*/
'temporary_directory' => storage_path('app/backup-temp'),
],
/*
* You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
* For Slack you need to install guzzlehttp/guzzle.
*
* You can also use your own notification classes, just make sure the class is named after one of
* the `Spatie\Backup\Events` classes.
*/
'notifications' => [
'notifications' => [
\Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'],
\Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'],
],
/*
* Here you can specify the notifiable to which the notifications should be sent. The default
* notifiable will use the variables specified in this config file.
*/
'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
'mail' => [
'to' => env('MAIL_BACKUP_NOTIFICATION_ADDRESS', null),
],
'slack' => [
'webhook_url' => '',
/*
* If this is set to null the default channel of the webhook will be used.
*/
'channel' => null,
'username' => null,
'icon' => null,
],
],
/*
* Here you can specify which backups should be monitored.
* If a backup does not meet the specified requirements the
* UnHealthyBackupWasFound event will be fired.
*/
'monitorBackups' => [
[
'name' => config('app.name'),
'disks' => ['local'],
'newestBackupsShouldNotBeOlderThanDays' => 1,
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
],
/*
[
'name' => 'name of the second app',
'disks' => ['local', 's3'],
'newestBackupsShouldNotBeOlderThanDays' => 1,
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
],
*/
],
'cleanup' => [
/*
* The strategy that will be used to cleanup old backups. The default strategy
* will keep all backups for a certain amount of days. After that period only
* a daily backup will be kept. After that period only weekly backups will
* be kept and so on.
*
* No matter how you configure it the default strategy will never
* delete the newest backup.
*/
'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'defaultStrategy' => [
/*
* The number of days for which backups must be kept.
*/
'keepAllBackupsForDays' => 7,
/*
* The number of days for which daily backups must be kept.
*/
'keepDailyBackupsForDays' => 16,
/*
* The number of weeks for which one weekly backup must be kept.
*/
'keepWeeklyBackupsForWeeks' => 8,
/*
* The number of months for which one monthly backup must be kept.
*/
'keepMonthlyBackupsForMonths' => 4,
/*
* The number of years for which one yearly backup must be kept.
*/
'keepYearlyBackupsForYears' => 2,
/*
* After cleaning up the backups remove the oldest backup until
* this amount of megabytes has been reached.
*/
'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000,
],
],
];
+7 -3
View File
@@ -80,9 +80,13 @@ return [
'strict' => false,
'engine' => 'InnoDB',
'unix_socket' => env('DB_SOCKET',''),
'dump_command_path' => env('DB_DUMP_PATH', '/usr/local/bin'), // only the path, so without 'mysqldump'
'dump_command_timeout' => 60 * 5, // 5 minute timeout
'dump_using_single_transaction' => true, // perform dump using a single transaction
'dump' => [
'dump_binary_path' => env('DB_DUMP_PATH', '/usr/local/bin'), // only the path, so without 'mysqldump'
'use_single_transaction',
'timeout' => 60 * 5, // 5 minute timeout
//'exclude_tables' => ['table1', 'table2'],
//'add_extra_option' => '--optionname=optionvalue',
],
'options' => (env('DB_SSL')) ? [
PDO::MYSQL_ATTR_SSL_KEY => env('DB_SSL_KEY_PATH'), // /path/to/key.pem
PDO::MYSQL_ATTR_SSL_CERT => env('DB_SSL_CERT_PATH'), // /path/to/cert.pem
-191
View File
@@ -1,191 +0,0 @@
<?php
/*
|--------------------------------------------------------------------------
| DO NOT EDIT THIS FILE DIRECTLY.
|--------------------------------------------------------------------------
| This file reads from your .env configuration file and should not
| be modified directly.
*/
return [
'backup' => [
/*
* The name of this application. You can use this name to monitor
* the backups.
*/
'name' => 'backups',
'source' => [
'files' => [
/*
* The list of directories that should be part of the backup. You can
* specify individual files as well.
*/
'include' => [
base_path('public/uploads'),
base_path('config'),
base_path('storage/private_uploads'),
base_path('storage/oauth-private.key'),
base_path('storage/oauth-public.key'),
(env('BACKUP_ENV')=='true') ? base_path('.env') : '',
],
/*
* These directories will be excluded from the backup.
* You can specify individual files as well.
*/
'exclude' => [
// base_path('vendor'),
// base_path('node_modules'),
],
/*
* Determines if symlinks should be followed.
*/
'followLinks' => false,
],
/*
* The names of the connections to the databases that should be part of the backup.
* Currently only MySQL- and PostgreSQL-databases are supported.
*/
'databases' => [
'mysql',
],
],
'destination' => [
/*
* The disk names on which the backups will be stored.
*/
'disks' => [
'local',
],
],
],
'cleanup' => [
/*
* The strategy that will be used to cleanup old backups.
* The youngest backup will never be deleted.
*/
'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'defaultStrategy' => [
/*
* The amount of days that all daily backups must be kept.
*/
'keepAllBackupsForDays' => 7,
/*
* The amount of days that all daily backups must be kept.
*/
'keepDailyBackupsForDays' => 16,
/*
* The amount of weeks of which one weekly backup must be kept.
*/
'keepWeeklyBackupsForWeeks' => 8,
/*
* The amount of months of which one monthly backup must be kept.
*/
'keepMonthlyBackupsForMonths' => 4,
/*
* The amount of years of which one yearly backup must be kept
*/
'keepYearlyBackupsForYears' => 2,
/*
* After cleaning up the backups remove the oldest backup until
* this amount of megabytes has been reached.
*/
'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000
]
],
/*
* In this array you can specify which backups should be monitored.
* If a backup does not meet the specified requirements the
* UnHealthyBackupWasFound-event will be fired.
*/
'monitorBackups' => [
[
'name' => 'backups',
'disks' => ['local'],
'newestBackupsShouldNotBeOlderThanDays' => 1,
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
],
/*
[
'name' => 'name of the second app',
'disks' => ['local', 's3'],
'newestBackupsShouldNotBeOlderThanDays' => 1,
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
],
*/
],
'notifications' => [
/*
* This class will be used to send all notifications.
*/
'handler' => Spatie\Backup\Notifications\Notifier::class,
/*
* Here you can specify the ways you want to be notified when certain
* events take place. Possible values are "log", "mail", "slack" and "pushover".
*
* Slack requires the installation of the maknz/slack package.
*/
'events' => [
'whenBackupWasSuccessful' => ['log'],
'whenCleanupWasSuccessful' => ['log'],
'whenHealthyBackupWasFound' => ['log'],
'whenBackupHasFailed' => ['log'],
'whenCleanupHasFailed' => ['log'],
'whenUnhealthyBackupWasFound' => ['log'],
],
/*
* Here you can specify how emails should be sent.
*/
'mail' => [
'from' => env('MAIL_FROM_ADDR', 'your@email.com'),
'to' => env('MAIL_FROM_ADDR', 'your@email.com'),
],
/*
* Here you can specify how messages should be sent to Slack.
*/
'slack' => [
'channel' => '#backups',
'username' => 'Backup bot',
'icon' => ':robot:',
],
/*
* Here you can specify how messages should be sent to Pushover.
*/
'pushover' => [
'token' => env('PUSHOVER_APP_TOKEN'),
'user' => env('PUSHOVER_USER_KEY'),
'sounds' => [
'success' => env('PUSHOVER_SOUND_SUCCESS','pushover'),
'error' => env('PUSHOVER_SOUND_ERROR','siren'),
],
],
]
];
+5 -5
View File
@@ -1,10 +1,10 @@
<?php
return array (
'app_version' => 'v4.6.18',
'full_app_version' => 'v4.6.18 - build 4036-g21ec67053',
'build_version' => '4036',
'app_version' => 'v4.7.5',
'full_app_version' => 'v4.7.5 - build 4118-g03a451240',
'build_version' => '4118',
'prerelease_version' => '',
'hash_version' => 'g21ec67053',
'full_hash' => 'v4.6.18-9-g21ec67053',
'hash_version' => 'g03a451240',
'full_hash' => 'v4.7.5-10-g03a451240',
'branch' => 'master',
);
@@ -29,7 +29,7 @@ class MigrationCartalystSentryInstallGroups extends Migration {
*/
public function up()
{
Schema::create('groups', function($table)
Schema::create('permission_groups', function($table)
{
$table->increments('id');
$table->string('name');
@@ -46,7 +46,7 @@ class MigrationCartalystSentryInstallGroups extends Migration {
*/
public function down()
{
Schema::drop('groups');
Schema::drop('permission_groups');
}
}
@@ -2,39 +2,44 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use App\Models\Group;
class UpdateGroupFieldForReporting extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
// Schema::table('groups', function(Blueprint $table)
// {
// //
// });
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::update('update '.DB::getTablePrefix().'groups set permissions = ? where id = ?', ['{"admin":1,"users":1,"reports":1}', 1]);
// This is janky because we had to do a back in time change to handle a MySQL 8+
// compatibility issue.
DB::update('update '.DB::getTablePrefix().'groups set permissions = ? where id = ?', ['{"users":1,"reports":1}', 2]);
// Ideally we'd be using the model here, but since we can't really know whether this is an upgrade
// or a fresh install, we have to check which table is being used.
if (Schema::hasTable('permission_groups')) {
// DB::statement('UPDATE '.$prefix.'groups SET permissions="{\"admin\":1,\"users\":1,\"reports\":1}" where id=1');
// DB::statement('UPDATE '.$prefix.'groups SET permissions="{\"users\":1,\"reports\":1}" where id=2');
Group::where('id', 1)->update(['permissions' => '{"users-poop":1,"reports":1}']);
Group::where('id', 2)->update(['permissions' => '{"users-pop":1,"reports":1}']);
}
} elseif (Schema::hasTable('groups')) {
DB::update('update '.DB::getTablePrefix().'groups set permissions = ? where id = ?', ['{"admin-farts":1,"users":1,"reports":1}', 1]);
DB::update('update '.DB::getTablePrefix().'groups set permissions = ? where id = ?', ['{"users-farts":1,"reports":1}', 2]);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
@@ -0,0 +1,44 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class RenameGroupsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
// We check to see if this table exists before attempting the migration since
// upgraded installs would have this table, but new installs wouldn't.
// We had to change the name of the table in the older migrations
// to handle a MySQl 8+ compatibility issue related to reserved words.
// Without going back in time in migrations, this would fail since the groups table
// would never be allowed to be created in the first place on MySql 8+.
//
// So... if an upgrade, let's rename that table.
// If a new install, the migration was already changed, so the table isn't
// called that anymore and we can skip this migration.
if (Schema::hasTable('groups')) {
Schema::rename('groups', 'permission_groups');
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
if (Schema::hasTable('permission_groups')) {
Schema::rename('permission_groups', 'groups');
}
}
}
+1 -2
View File
@@ -7541,7 +7541,7 @@ var pieOptions = {
//- END PIE CHART -
//-----------------
var baseUrl = $('meta[name="baseUrl"]').attr('content');
(function($, settings) {
var Components = {};
@@ -7598,7 +7598,6 @@ $(document).ready(function () {
* Slideout help menu
*/
$('.slideout-menu-toggle').on('click', function(event){
console.log('clicked');
event.preventDefault();
// create menu variables
var slideoutMenu = $('.slideout-menu');
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -8,7 +8,7 @@
"/css/app.css.map": "/css/app.css.map?id=96b5c985e860716e6a16",
"/css/overrides.css.map": "/css/overrides.css.map?id=f7ce9ca49027594ac402",
"/css/dist/all.css": "/css/dist/all.css?id=98db4e9b7650453c8b00",
"/js/dist/all.js": "/js/dist/all.js?id=269c4bb386c5ae0dcce4",
"/js/dist/all.js": "/js/dist/all.js?id=bf1b244d8cc9096e4a18",
"/css/build/all.css": "/css/build/all.css?id=98db4e9b7650453c8b00",
"/js/build/all.js": "/js/build/all.js?id=269c4bb386c5ae0dcce4"
"/js/build/all.js": "/js/build/all.js?id=bf1b244d8cc9096e4a18"
}
+1 -2
View File
@@ -73,7 +73,7 @@ var pieOptions = {
//- END PIE CHART -
//-----------------
var baseUrl = $('meta[name="baseUrl"]').attr('content');
(function($, settings) {
var Components = {};
@@ -130,7 +130,6 @@ $(document).ready(function () {
* Slideout help menu
*/
$('.slideout-menu-toggle').on('click', function(event){
console.log('clicked');
event.preventDefault();
// create menu variables
var slideoutMenu = $('.slideout-menu');
@@ -5,8 +5,8 @@ return array(
'about_categories' => 'Kategorijos padeda jums tvarkyti savo daiktus. Kai kurių pavyzdžių kategorijos gali būti &quot;Desktops&quot;, &quot;Laptops&quot;, &quot;Mobilieji telefonai&quot;, &quot;Tablets&quot; ir tt, bet jūs galite naudoti kategorijas bet kokiu būdu, kuris jums yra naudingas.',
'asset_categories' => 'Įrangos kategorijos',
'category_name' => 'Kategorijos pavadinimas',
'checkin_email' => 'Send email to user on checkin/checkout.',
'checkin_email_notification' => 'This user will be sent an email on checkin/checkout.',
'checkin_email' => 'Siųsti el. laišką vartotojui gavus/priskyrus.',
'checkin_email_notification' => 'Šis vartotojas gaus el. Laišką registracijos / išrašymo metu (paskyrimas).',
'clone' => 'Kopijuoti kategoriją',
'create' => 'Sukurti kategoriją',
'edit' => 'Keisti kategoriją',
@@ -20,7 +20,7 @@ return array(
'field_element_short' => 'Elementas',
'field_format' => 'Formatas',
'field_custom_format' => 'Pritaikomas formatas',
'field_custom_format_help' => 'This field allows you to use a regex expression for validation. It should start with "regex:" - for example, to validate that a custom field value contains a valid IMEI (15 numeric digits), you would use <code>regex:/^[0-9]{15}$/</code>.',
'field_custom_format_help' => 'Šis laukelis leidžia Jums naudoti REGEX validaciją. Tai turėtų prasidėti "regax:" - pavyzdžiui norint validuoti pasirinkto laukelio reikšmę IMEI (15 skaičių), privalote naudoti <code>regex:/^[0-9]{15}$/</code>.',
'required' => 'Privalomas',
'req' => 'Privaloma.',
'used_by_models' => 'Naudojama modelių',
@@ -28,5 +28,5 @@ return array(
'create_fieldset' => 'Nauja laukų grupė',
'create_field' => 'Naujas pritaikomas laukelis',
'value_encrypted' => 'Šio lauko vertė yra užkoduota duomenų bazėje. Tik admin vartotojai galės peržiūrėti iššifruotą vertę',
'show_in_email' => 'Include the value of this field in checkout emails sent to the user? Encrypted fields cannot be included in emails.',
'show_in_email' => 'Įterptos šio laukelio išdavimo reikšmės bus siunčiamos vartotojams? Užšifruoti laukai negali būti įterpti į el. laišką.',
);
+1 -1
View File
@@ -38,7 +38,7 @@ return array(
'tag' => 'Įrangos pavadinimas',
'update' => 'Įrangos atnaujinimas',
'warranty' => 'Garantija',
'warranty_expires' => 'Warranty Expires',
'warranty_expires' => 'Garantija baigiasi',
'years' => 'metai',
)
;
+1 -1
View File
@@ -5,7 +5,7 @@ return array(
'about_assets_text' => 'Turtas - tai daiktai, kurie stebimi serijos numeriu arba turinio žyma. Jie dažniausiai būna vertingesni dalykai, kai svarbu nustatyti konkretų elementą.',
'archived' => 'Archyvuota',
'asset' => 'Įranga',
'bulk_checkout' => 'Checkout Assets',
'bulk_checkout' => 'Išduota įranga',
'checkin' => 'Išduota įranga',
'checkout' => 'Patikros turtas',
'clone' => 'Kopijuoti įrangą',
+1 -1
View File
@@ -62,7 +62,7 @@ return array(
'success' => 'Įranga išduota sėkmingai.',
'user_does_not_exist' => 'Netinkamas naudotojas. Prašome bandykite dar kartą.',
'not_available' => 'Šis turtas negali būti išsiunčiamas!',
'no_assets_selected' => 'You must select at least one asset from the list'
'no_assets_selected' => 'Jūs turite pasirinkti bent vieną turtą iš sąrašo'
),
'checkin' => array(
@@ -16,8 +16,8 @@ return array(
),
'restore' => array(
'error' => 'Manufacturer was not restored, please try again',
'success' => 'Manufacturer restored successfully.'
'error' => 'Gamintojas nebuvo atkurtas, prašome bandyti dar kartą',
'success' => 'Gamintojas buvo atkurtas sėkmingai.'
),
'delete' => array(
+4 -4
View File
@@ -4,9 +4,9 @@ return array(
'about_models_title' => 'Apie turto modelius',
'about_models_text' => 'Turto modeliai yra būdas grupuoti identišką turtą. "MBP 2013", "IPhone 6s" ir kt.',
'deleted' => 'Šis modelis ištrintas. <a href="/hardware/models/:model_id/restore">Spauskite atkurti modelį čia</a>.',
'bulk_delete' => 'Bulk Delete Asset Models',
'bulk_delete_help' => 'Use the checkboxes below to confirm the deletion of the selected asset models. Asset models that have assets associated with them cannot be deleted until the assets are associated with a different model.',
'bulk_delete_warn' => 'You are about to delete :model_count asset models.',
'bulk_delete' => 'Ištrinti pažymėtus turto modelius',
'bulk_delete_help' => '„Pažymėkite žemiau esantį langelį, kad patvirtintumėte pasirinktų turto modelių ištrynimą. Turto modeliai, kuriuose yra su jais susijęs turtas, negali būti ištrinti, išskyrus tuos atvejus, kai tas turtas yra susietas su kitu modeliu.“.',
'bulk_delete_warn' => 'Ketinate ištrinti :model_count turto modelius.',
'restore' => 'Atkurti modelį',
'requestable' => 'Naudotojai gali užklausi šį modelį',
'show_mac_address' => 'Rodykite MAC adreso laukelį įrangoje šiam modeliui',
@@ -14,5 +14,5 @@ return array(
'view_models' => 'Peržiūrėti modelius',
'fieldset' => 'Laukų grupė',
'no_custom_field' => 'Nėra pritaikytų laukų',
'add_default_values' => 'Add default values',
'add_default_values' => 'Pridėti numatytąją reikšmę',
);
+3 -3
View File
@@ -34,9 +34,9 @@ return array(
),
'bulkdelete' => array(
'error' => 'No models were selected, so nothing was deleted.',
'success' => ':success_count model(s) deleted!',
'success_partial' => ':success_count model(s) were deleted, however :fail_count were unable to be deleted because they still have assets associated with them.'
'error' => 'Nepasirinktas modelis, nėra ką ištrinti.',
'success' => ':success_count model(s) ištrinti!',
'success_partial' => ':success_count model(s) buvo ištrinti, bet :fail_count negalima ištrinti todėl, kad turtas vis dar susietas.'
),
);
+35 -35
View File
@@ -4,8 +4,8 @@ return array(
'ad' => 'Active Directory',
'ad_domain' => '"Active Directory" domenas',
'ad_domain_help' => 'Tai kartais sutampa su jūsų el. Pašto domenu, bet ne visada.',
'admin_cc_email' => 'CC Email',
'admin_cc_email_help' => 'If you would like to send a copy of checkin/checkout emails that are sent to users to an additional email account, enter it here. Otherwise leave this field blank.',
'admin_cc_email' => 'CC El. paštas',
'admin_cc_email_help' => 'Jeigu Jūs norite siųsti išduoto/neišduoto turto sąrašo kopiją, įveskite čia el. pašto adresą. Kitu atveju palikite laukelį tuščią.',
'is_ad' => 'Tai yra "Active Directory" serveris',
'alert_email' => 'Siūsti įspėjimus',
'alerts_enabled' => 'Perspėjimai įjungti',
@@ -25,9 +25,9 @@ return array(
'confirm_purge_help' => 'Žemiau esančiame laukelyje įveskite tekstą "DELETE", kad išvalykite ištrintus įrašus. Šis veiksmas negali būti panaikintas.',
'custom_css' => 'Užsakytas CSS',
'custom_css_help' => 'Įveskite bet kokį užsakytą CSS peržiūrėjimo norėtumėte naudoti. Neįtraukite &lt;style>&lt;/Stilius&gt; žymės.',
'custom_forgot_pass_url' => 'Custom Password Reset URL',
'custom_forgot_pass_url_help' => 'This replaces the built-in forgotten password URL on the login screen, useful to direct people to internal or hosted LDAP password reset functionality. It will effectively disable local user forgotten password functionality.',
'dashboard_message' => 'Dashboard Message',
'custom_forgot_pass_url' => 'Pasirinktinio slaptažodžio atkūrimo nuoroda',
'custom_forgot_pass_url_help' => 'Tai pakeičia pamiršto slaptažodžio nuorodą prisijungimo lange. Naudinga tiesiogiai nukreipti į LDAP slaptažodžio atkūrimo funkcionalumą. Būtų efektyviau išjungti vietinių vartotojų pamirštų slaptažodžių funkcionalumą.',
'dashboard_message' => 'Prietaisų skydelio pranešimai',
'dashboard_message_help' => 'Šis tekstas bus rodomas valdymo skydelyje, kiekvienam turinčiam teisę peržiūrėti valdymo skydelį.',
'default_currency' => 'Numatytoji valiuta',
'default_eula_text' => 'Numatytasis EULA',
@@ -42,8 +42,8 @@ return array(
'alt_barcode_type' => '1D barkodo tipas',
'eula_settings' => 'EULA nustatymai',
'eula_markdown' => 'Šis EULA leidžia <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'footer_text' => 'Additional Footer Text ',
'footer_text_help' => 'This text will appear in the right-side footer. Links are allowed using <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>. Line breaks, headers, images, etc may result in unpredictable results.',
'footer_text' => 'Papildomas poraštė tekstas ',
'footer_text_help' => 'Šis tekstas bus rodomas dešinėje poraštės pusėje. Nuorodos leidžiamos naudojant <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>. Eilutės lūžei, antraštės, paveiksliukai etc gali sukelti nenuspėjamus rezultatus.',
'general_settings' => 'Bendrieji nustatymai',
'generate_backup' => 'Atsarginė kopija',
'header_color' => 'Atraštės spalva',
@@ -52,8 +52,8 @@ return array(
'ldap_enabled' => 'LDAP įjungtas',
'ldap_integration' => 'LDAP integracija',
'ldap_settings' => 'LDAP nustatymai',
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
'ldap_login_sync_help' => 'This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
'ldap_login_test_help' => 'Prašome įvesti tinkamą LDAP vartotojo vardą ir slaptažodį iš bazės DN. Jūs privalote patikrinti ar LDAP prisijungimas sukonfigūruotas tinkamai. PIRMIAUSIA JŪS PRIVALOTE IŠSAUGOTI LDAP NUSTATYMUS.',
'ldap_login_sync_help' => 'Tai patikrina ar LDAP sinchronizacija teisinga. Jeigu Jūsų LADAP autentifikacijos užkalusa nėra teisinga, vartotojai gali negalėti prisijungti. PIRMIAUSIA JŪS PRIVALOTE IŠSAUGOTI LDAP NUSTATYMUS.',
'ldap_server' => 'LDAP serveris',
'ldap_server_help' => 'Tai turėtų prasidėti su ldap: // (nešifruotam arba TLS) arba ldaps: (jei tai SSL)',
'ldap_server_cert' => 'LDAP SSL sertifikato patvirtinimas',
@@ -75,24 +75,24 @@ return array(
'ldap_active_flag' => 'LDAP aktyvios vėliavos',
'ldap_emp_num' => 'LDAP darbuotojų skaičius',
'ldap_email' => 'LDAP el.paštas',
'license' => 'Software License',
'license' => 'Programinės įrangos licenzija',
'load_remote_text' => 'Nuotoliniai skriptai',
'load_remote_help_text' => 'Šis Snipe-IT įdiegimas gali įtraukti programinius kodus iš interneto.',
'login_note' => 'Prisijungimo pastaba',
'login_note_help' => 'Pasirinktinai į savo prisijungimo ekraną įtraukite keletą sakinių, pavyzdžiui, kad padėtumėte žmonėms, kurie rasti pamestą ar pavogtą įrenginį. Šiame lauke pritariama <a href="https://help.github.com/articles/github-flavored-markdown/"> "Github" skonio markdown</a>',
'login_remote_user_text' => 'Remote User login options',
'login_remote_user_enabled_text' => 'Enable Login with Remote User Header',
'login_remote_user_enabled_help' => 'This option enables Authentication via the REMOTE_USER header according to the "Common Gateway Interface (rfc3875)"',
'login_common_disabled_text' => 'Disable other authentication mechanisms',
'login_common_disabled_help' => 'This option disables other authentication mechanisms. Just enable this option if you are sure that your REMOTE_USER login is already working',
'login_remote_user_custom_logout_url_text' => 'Custom logout URL',
'login_remote_user_custom_logout_url_help' => 'If a url is provided here, users will get redirected to this URL after the user logs out of Snipe-IT. This is useful to close the user sessions of your Authentication provider correctly.',
'login_remote_user_text' => 'Nuotolinio vartotojo prisijungimo parametrai',
'login_remote_user_enabled_text' => 'Įjungti nuotolinį prisijungimą naudojant vartotojo antraštę',
'login_remote_user_enabled_help' => 'Ši opcija įjungia autentifikaciją "REMOTE_USER" per "Cammon Gateway" vartotojo sąsają (rfc3875)',
'login_common_disabled_text' => 'Išjungti kitus autentifikacijos mechanizmus',
'login_common_disabled_help' => 'Ši opcija išjungia kitus autentifikacijos mechanizmus. Šią funkciją įjunkite jeigu esate tikri jog REMOTE_USER prisijungimas veikia',
'login_remote_user_custom_logout_url_text' => 'Pasirinktinė atsijungimo URL',
'login_remote_user_custom_logout_url_help' => 'Čia įveskite nuorodą į kurią bus nukreipti vartotojai prisijungę prie Snite-IT. Tai naudinga uždarant vartotojo sesiją.',
'logo' => 'Logotipas',
'logo_print_assets' => 'Use in Print',
'logo_print_assets_help' => 'Use branding on printable asset lists ',
'logo_print_assets' => 'Naudoti spausdinimui',
'logo_print_assets_help' => 'Naudoti turto sąrašą spausdinimą ',
'full_multiple_companies_support_help_text' => 'Apriboti vartotojai (įskaitant administratorius) priskirtus kompanijoms.',
'full_multiple_companies_support_text' => 'Pilnas kelių kompanijų palaikymas',
'show_in_model_list' => 'Show in Model Dropdowns',
'show_in_model_list' => 'Rodyti išskleidžiame modelyje',
'optional' => 'pasirinktinai',
'per_page' => 'Rezultatai puslapyje',
'php' => 'PHP versija',
@@ -109,23 +109,23 @@ return array(
'setting' => 'Nustatymai',
'settings' => 'Nustatymai',
'show_alerts_in_menu' => 'Rodyti įspėjimus viršutiniame meniu',
'show_archived_in_list' => 'Archived Assets',
'show_archived_in_list_text' => 'Show archived assets in the "all assets" listing',
'show_images_in_email' => 'Show images in emails',
'show_images_in_email_help' => 'Uncheck this box if your Snipe-IT installation is behind a VPN or closed network and users outside the network will not be able to load images served from this installation in their emails.',
'show_archived_in_list' => 'Archyvuotas turtas',
'show_archived_in_list_text' => 'Rodyti archyvuotą turtą "visame turto" sąraše',
'show_images_in_email' => 'Rodyti nuotraukas el. pašte',
'show_images_in_email_help' => 'Nuimkite žymelę jeigu jūsų Snipe-IT instaliacija yra VPN arba uždarame tinkle ir vartotojai esantys už tinklo negalės įkrauti paveikslėlių jų el. paštuose.',
'site_name' => 'Interneto puslapio pavadinimas',
'slack_botname' => 'Slack\'o boto vardas',
'slack_channel' => 'Slack\'o kanalas',
'slack_endpoint' => 'Slack\'o galutinis taškas',
'slack_integration' => 'Slack\'o nustatymai',
'slack_integration_help' => 'Slack\'o integravimas yra pasirinktinis, tačiau kanalas ir galutinis taškas reikalingas jie jūs norite juos naudoti su Slack programėle. Norėdami konfigūruoti Slack\'o integraciją pirmiausia privalote <a href=":slack_link" target="_new">sukurti įeinantį priedą</a> savo turimoje Slack\'o paskyroje.',
'slack_integration_help_button' => 'Once you have saved your Slack information, a test button will appear.',
'slack_test_help' => 'Test whether your Slack integration is configured correctly. YOU MUST SAVE YOUR UPDATED SLACK SETTINGS FIRST.',
'slack_integration_help_button' => 'Jeigu jūs išsaugosite informaciją, testavimo mygtukas bus rodomas.',
'slack_test_help' => 'Patikrinkite, ar tinkamai atlikta „Slack“ konfigūracija. Jūs privalote išsaugoti savo "SLACK" nustatymus pirmiausia.',
'snipe_version' => 'Snipe-IT versija',
'support_footer' => 'Support Footer Links ',
'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual',
'version_footer' => 'Version in Footer ',
'version_footer_help' => 'Specify who sees the Snipe-IT version and build number.',
'support_footer' => 'Palaikomos poraštė nuorodos ',
'support_footer_help' => 'Nurodykite, kas matys nuorodas į „Snipe-IT“ palaikymo informacijos ir naudotojo vadovą',
'version_footer' => 'Versija poraštėje ',
'version_footer_help' => 'Nurodykite kad galės matyti Snipe-IT versijas ir versijos numerius.',
'system' => 'Sistemos informacija',
'update' => 'Atnaujinti nustatymus',
'value' => 'Vertė',
@@ -136,9 +136,9 @@ return array(
'label_dimensions' => 'Etiketės išmatavimai (coliais)',
'next_auto_tag_base' => 'Kitas automatinis prieaugis',
'page_padding' => 'Puslapio maržos (coliais)',
'privacy_policy_link' => 'Link to Privacy Policy',
'privacy_policy' => 'Privacy Policy',
'privacy_policy_link_help' => 'If a url is included here, a link to your privacy policy will be included in the app footer and in any emails that the system sends out, in compliance with GDPR. ',
'privacy_policy_link' => 'Privatumo politikos nuorodos',
'privacy_policy' => 'Privatumo politika',
'privacy_policy_link_help' => 'Jeigu nuorodas įterpsite čia tai nuorodos privatumo politikos bus įterptas poraštėje ir kiekviename siunčiame el. laiške, palaikant GDPR. ',
'purge' => 'Išvalyti ištrintus įrašus',
'labels_display_bgutter' => 'Etiketės apatinis latakai',
'labels_display_sgutter' => 'Etiketės pusės latakai',
@@ -181,7 +181,7 @@ return array(
'bottom' => 'apačioje',
'vertical' => 'vertikalus',
'horizontal' => 'horizontalus',
'unique_serial' => 'Unique serial numbers',
'unique_serial_help_text' => 'Checking this box will enforce a uniqueness constraint on asset serials',
'unique_serial' => 'Unikalus serijinis numeris',
'unique_serial_help_text' => 'Pažymėtas šis langelis reiškia unikalius serijinius kiekvienam turtui',
'zerofill_count' => 'Turto žymų ilgis, įskaitant "zerofill"',
);
@@ -5,8 +5,8 @@ return array(
'archived' => 'Archyvuota',
'create' => 'Sukurti būlės kortelę',
'color' => 'Diagramos spalva',
'default_label' => 'Default Label',
'default_label_help' => 'This is used to ensure your most commonly used status labels appear at the top of the select box when creating/editing assets.',
'default_label' => 'Numatytoji etikėtė',
'default_label_help' => 'Tai naudojama norint užtikrinti, kad dažniausiai naudotos būsenos etiketės būtų rodomos lango viršuje kuriant / redaguojant turtą.',
'deployable' => 'Naudojamas',
'info' => 'Būklės kortelės naudojamos apibūdinti įvairias jūsų įrangos būkles, kuriose ji randasi. Kortelės gali būti nurodančios, kad įranga remontuojama, prarasta, pavota ir t. t. Jūs galite suskurti naują būklės kortelę išduotiems, atnaujinamiems ir kitiems įrenginiams.',
'name' => 'Būklės pavadinimas',
@@ -19,9 +19,9 @@ return array(
'confirm' => 'Ar jūs tikrai norite ištrinti šį tiekėją?',
'error' => 'Nepavyko ištrinti tiekėjo. Prašome bandykite dar kartą.',
'success' => 'Tiekėjas ištrintas sėkmingai.',
'assoc_assets' => 'This supplier is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this supplier and try again. ',
'assoc_licenses' => 'This supplier is currently associated with :licenses_count licences(s) and cannot be deleted. Please update your licenses to no longer reference this supplier and try again. ',
'assoc_maintenances' => 'This supplier is currently associated with :asset_maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ',
'assoc_assets' => 'Šis tiekėjas šiuo metu susietas su bent vienu modeliu ir negali būti ištrintas. Prašome atnaujinkite savo modelius, kad šie nebūtu susieti su šiuo tiekėju ir bandykite dar kartą. ',
'assoc_licenses' => 'Šis tiekėjas šiuo metu susietas su licenzija ir negali būti ištrinti. Prašome atnaujinkite savo modelius, kad šie nebūtų susieti su šiuo tiekėjų ir bandykite dar kartą. ',
'assoc_maintenances' => 'Šis tiekėjas šiuo metu susietas su bent vienu modeliu ir negali būti ištrintas. Prašome atnaujinkite savo modelius, kad šie nebūtu susieti su šiuo tiekėju ir bandykite dar kartą. ',
)
);
+3 -3
View File
@@ -2,8 +2,8 @@
return array(
'activated_help_text' => 'This user can login',
'activated_disabled_help_text' => 'You cannot edit activation status for your own account.',
'activated_help_text' => 'Šis vartotojas gali prisijungti',
'activated_disabled_help_text' => 'Jūs negalite keisti savosios pąskyros aktyvacijos statuso.',
'assets_user' => 'Priskirta įranga :name',
'bulk_update_warn' => 'Jūs ketinate redaguoti vartotojų: user_count savybes. Atminkite, kad negalėsite pakeisti savo naudotojo atributų naudodami šią formą ir savo pasirinkimą keisti individualiai.',
'bulk_update_help' => 'Ši forma leidžia vienu metu atnaujinti kelis naudotojus. Užpildykite tik tuos laukelius, kuriuos reikia keisti. Visi tušti laukai lieka nepakeisti.',
@@ -17,7 +17,7 @@ return array(
'restore_user' => 'Spauskite čia norėdami juos atkurti.',
'last_login' => 'Paskutinis prisijungimas',
'ldap_config_text' => 'LDAP konfigūracijos parametrus galite rasti Administratorius> Nustatymai. Pasirinkta vieta (pasirinktinai) bus nustatyta visiems importuojamiems vartotojams.',
'print_assigned' => 'Print All Assigned',
'print_assigned' => 'Spausdinti visą turtą',
'software_user' => ':name išduota įranga',
'view_user' => 'Peržiūrėti :name vartotoją',
'usercsv' => 'CSV dokumentas',
+1 -1
View File
@@ -12,5 +12,5 @@ return array(
'submit' => 'Išsaugoti',
'upload' => 'Įkelti',
'select_file' => 'Pasirinkite failą ...',
'select_files' => 'Select Files...',
'select_files' => 'Pasirinkite failą...',
);
+16 -16
View File
@@ -9,7 +9,7 @@
'activity_report' => 'Veiksmų ataskaita',
'address' => 'Adresas',
'admin' => 'Administratorius',
'administrator' => 'Administrator',
'administrator' => 'Administratorius',
'add_seats' => 'Prideta licenzijų',
'all_assets' => 'Visa įranga',
'all' => 'Viskas',
@@ -39,9 +39,9 @@
'checkin' => 'Pridėti',
'checkin_from' => 'Pridėti iš',
'checkout' => 'Išimti',
'checkouts_count' => 'Checkouts',
'checkins_count' => 'Checkins',
'user_requests_count' => 'Requests',
'checkouts_count' => 'Išduota',
'checkins_count' => 'Pridėti',
'user_requests_count' => 'Užklausos',
'city' => 'Miestas',
'click_here' => 'Paspauskite čia',
'clear_selection' => 'Išvalyti pasirinkimą',
@@ -68,14 +68,14 @@
'debug_warning' => 'Įspėjimas!',
'debug_warning_text' => 'Ši programa veikia gamybos režimu, įjungus derinimą. Tai gali atskleisti slaptus duomenis, jei jūsų programa yra prieinama išoriniam pasauliui. Išjunkite derinimo režimą nustatydami <code>APP_DEBUG</code> reikšmę savo <code>.env</code> byloje <code>false</code>.',
'delete' => 'Ištrinti',
'delete_confirm' => 'Are you sure you wish to delete :item?',
'delete_confirm' => 'Ar jūs norite tikrai ištrinti?',
'deleted' => 'Ištrinta',
'delete_seats' => 'Ištrintos licenzijos',
'departments' => 'Departamentai',
'department' => 'Departamentas',
'deployed' => 'Naudojama',
'depreciation_report' => 'Nusidėvėjimo ataskaita',
'details' => 'Details',
'details' => 'Detaliau',
'download' => 'Atsisiųsti',
'depreciation' => 'Nusidėvėjimas',
'editprofile' => 'Koreguoti profilį',
@@ -85,16 +85,16 @@
'email_domain_help' => 'Tai naudojama importuojant importuojamus el. Pašto adresus',
'filastname_format' => 'V. Pavardė (vpavarde@example.com)',
'firstname_lastname_format' => 'Vardas Pavardė (vpavarde@example.com)',
'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)',
'firstname_lastname_underscore_format' => 'Vardas Pavardė (vpavarde@example.com)',
'lastnamefirstinitial_format' => 'Pavardė, vardo pirmoji raidė (pavardėV@example.com',
'first' => 'Pirmas',
'first_name' => 'Vardas',
'first_name_format' => 'Vardas (vpavarde@example.com)',
'files' => 'Files',
'files' => 'Failas',
'file_name' => 'Failas',
'file_uploads' => 'Failo Įkėlimas',
'generate' => 'Sukurti',
'github_markdown' => 'This field accepts <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'github_markdown' => 'Šis laukas leidžia <a href="https://help.github.com/articles/github-flavored-markdown/">Github automatizuota žymėjimą</a>.',
'groups' => 'Grupės',
'gravatar_email' => 'Gravatar el. paštas',
'history' => 'Istorija',
@@ -103,7 +103,7 @@
'image' => 'Paveikslėlis',
'image_delete' => 'Ištrinti nuotrauką',
'image_upload' => 'Įkelti nuotrauką',
'image_filetypes_help' => 'Accepted filetypes are jpg, png, gif, and svg. Max upload size allowed is :size.',
'image_filetypes_help' => 'Priimami failų tipai yra: jpg, png, gif, and svg. Didžiausias leidžiamas įkėlimo dydis :size.',
'import' => 'Įkelti',
'import-history' => 'Importuoti istoriją',
'asset_maintenance' => 'Įrangos priežiūra',
@@ -127,7 +127,7 @@
'locations' => 'Vietovės',
'logout' => 'Atsijungti',
'lookup_by_tag' => 'Paiešką pagal turto žymą',
'maintenances' => 'Maintenances',
'maintenances' => 'Techninis aptarnavimas',
'manufacturer' => 'Gamintojas',
'manufacturers' => 'Gamintojai',
'markdown' => 'Šis laukas leidžia <a href="https://help.github.com/articles/github-flavored-markdown/">Github skonio markdown</a>.',
@@ -181,11 +181,11 @@
'select_company' => 'Pasirinkite kompaniją',
'select_asset' => 'Pasirinkite įrangą',
'settings' => 'Nustatymai',
'show_deleted' => 'Show Deleted',
'show_current' => 'Show Current',
'show_deleted' => 'Peržiūrėti ištrintus',
'show_current' => 'Rodyti dabartinį',
'sign_in' => 'Prisijungti',
'signature' => 'Parašas',
'skin' => 'Skin',
'skin' => 'Išvaizda',
'some_features_disabled' => 'DEMO MODE: kai kurios funkcijos yra išjungtos šio diegimo metu.',
'site_name' => 'Interneto puslapio pavadinimas',
'state' => 'Rajonas',
@@ -206,7 +206,7 @@
'unknown_admin' => 'Nežinomas administratorius',
'username_format' => 'Vartotojo vardas Formatas',
'update' => 'Atnaujinti',
'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, txt, lic, zip, and rar. Max upload size allowed is :size.',
'upload_filetypes_help' => 'Priimami failų tipai yra: png, gif, jpg, jpeg, doc, docx, pdf, xls, txt, lic, zip, and rar.. Didžiausias leidžiamas įkėlimo dydis :size.',
'uploaded' => 'Įkeltas',
'user' => 'Naudotojas',
'accepted' => 'priimta',
+7 -7
View File
@@ -21,7 +21,7 @@ return array(
'Confirm_Asset_Checkin' => 'Patvirtinkite turto registraciją.',
'Confirm_Accessory_Checkin' => 'Patvirtinkite priedų registraciją.',
'Confirm_accessory_delivery' => 'Patvirtinkite aksesuaro pristatymą.',
'Confirm_license_delivery' => 'Confirm license delivery.',
'Confirm_license_delivery' => 'Patvirtinti licenzijos pristatymą.',
'Confirm_asset_delivery' => 'Patvirtinkite įrangos gavimą.',
'Confirm_consumable_delivery' => 'Patvirtinkite vartojimo pristatymą.',
'current_QTY' => 'Esamas kiekis',
@@ -52,19 +52,19 @@ return array(
'requested' => 'Užklausta:',
'reset_link' => 'Jūsų slaptažodžio atstatymo nuoroda',
'reset_password' => 'Paspauskite norėdami pakeisti savo slaptažodį:',
'serial' => 'Serial',
'serial' => 'Serija',
'supplier' => 'Tiekėjas',
'tag' => 'Žymė',
'test_email' => 'Išbandykite "Snipe-IT" el. Laišką',
'test_mail_text' => 'Tai yra "Snipe-IT Asset Management System" testas. Jei tai gavote, paštas dirba :)',
'the_following_item' => 'Šis elementas buvo pažymėtas:',
'low_inventory_alert' => 'There is :count item that is below minimum inventory or will soon be low.|There are :count items that are below minimum inventory or will soon be low.',
'assets_warrantee_alert' => 'There is :count asset with a warrantee expiring in the next :threshold days.|There are :count assets with warrantees expiring in the next :threshold days.',
'license_expiring_alert' => 'There is :count license expiring in the next :threshold days.|There are :count licenses expiring in the next :threshold days.',
'low_inventory_alert' => 'Tai yra reikšmė minimalaus inventoriaus arba greitai pasibaigiančio.:count | Tai yra reikšmė minimalaus inventoriaus arba greitai pasibaigiančio.:count.',
'assets_warrantee_alert' => 'Tiek turto :count kurių garantinis aptarnavimas baigsis už :threshold days.|Tiek turto :count kurių garantinis aptarnavimas baigsis už :threshold days.',
'license_expiring_alert' => 'Tiek licenzijų :count baigsis už :threshold days.|Tiek licenzijų :count baigsis už :threshold days.',
'to_reset' => 'Jei norite iš naujo nustatyti savo: žiniatinklio slaptažodį, užpildykite šią formą:',
'type' => 'Tipas',
'user' => 'User',
'username' => 'Username',
'user' => 'Vartotojas',
'username' => 'Vartotojo vardas',
'welcome' => 'Sveiki :vardas',
'welcome_to' => 'Sveiki atvykę į: internetą!',
'your_credentials' => 'Jūsų Snipe-IT įgaliojimai',
+1 -1
View File
@@ -2,6 +2,6 @@
return [
'sent' => 'Nuoroda atkurti slaptažodį išsiųsta!',
'user' => 'No matching active user found with that email.',
'user' => 'Neaptikta vartotojo su šiuo elektroninio pašto adresu.',
];
+2 -2
View File
@@ -67,7 +67,7 @@ return array(
'not_in' => 'Pasirinktas :attribute neteisingas.',
'numeric' => ':attribute privalo būti skaičius.',
'present' => 'Atributo laukas turi būti.',
'valid_regex' => 'That is not a valid regex. ',
'valid_regex' => 'Tai nėra tinkamas regex. ',
'regex' => ':attribute formatas neteisingas.',
'required' => ':attribute laukelis privalomas.',
'required_if' => ':attribute laukelis yra privalomas kai :other yra :value.',
@@ -88,7 +88,7 @@ return array(
'unique' => ':attribute jau užimtas.',
'uploaded' => 'Nepavyko įkelti atributo.',
'url' => ':attribute formatas neteisingas.',
"unique_undeleted" => "The :attribute must be unique.",
"unique_undeleted" => ":attribute turi būti unikalus.",
/*
|--------------------------------------------------------------------------
@@ -3,7 +3,7 @@
return array(
'about_assets_title' => 'Om tillgångar',
'about_assets_text' => 'Tillgångar är poster som spåras med serienummer eller tillgångstagg. De tenderar att vara mer värdefulla saker där identifiering av en viss sak är viktig.',
'archived' => 'arkiveras',
'archived' => 'Arkiverade',
'asset' => 'Tillgång',
'bulk_checkout' => 'Checkout tillgångar',
'checkin' => 'Checkin Asset',
@@ -16,7 +16,7 @@ return array(
'requestable' => 'Requestable',
'requested' => 'Begärda',
'restore' => 'Återställ tillgången',
'pending' => 'Avvaktan',
'pending' => 'Väntande',
'undeployable' => 'Undeployable',
'view' => 'Visa tillgång',
);
@@ -2,7 +2,7 @@
return array(
'about' => 'Om statusetiketter',
'archived' => 'arkiveras',
'archived' => 'Arkiverade',
'create' => 'Skapa statusetikett',
'color' => 'Diagramfärg',
'default_label' => 'Standard etikett',
@@ -10,7 +10,7 @@ return array(
'deployable' => 'Deployable',
'info' => 'Statusetiketter används för att beskriva de olika tillstånd som dina tillgångar kan vara i. De kan vara ute för reparation, förlorade / stulna etc. Du kan skapa nya statusetiketter för deployerbara, pågående och arkiverade tillgångar.',
'name' => 'Statusnamn',
'pending' => 'Avvaktan',
'pending' => 'Väntande',
'status_type' => 'Statustyp',
'show_in_nav' => 'Visa i sidnav',
'title' => 'Statusetiketter',
+2 -2
View File
@@ -148,7 +148,7 @@
'order_number' => 'Order Nummer',
'page_menu' => 'Visar _MENU_ objekt',
'pagination_info' => 'Visar _START_ till _END_ av _TOTAL_ objekt',
'pending' => 'Avvaktan',
'pending' => 'Väntande',
'people' => 'Personer',
'per_page' => 'Resultat per sida',
'previous' => 'Föregående',
@@ -202,7 +202,7 @@
'total_accessories' => 'Totala tillbehör',
'total_consumables' => 'totala förbrukningsvaror',
'type' => 'Typ',
'undeployable' => 'Un-utvecklingsbara',
'undeployable' => 'Ej tillgängliga',
'unknown_admin' => 'Okänd Admin',
'username_format' => 'Användarnamn Format',
'update' => 'Uppdatering',
+35
View File
@@ -0,0 +1,35 @@
<?php
return [
'exception_message' => 'رسالة استثناء: :message',
'exception_trace' => 'تتبع الإستثناء: :trace',
'exception_message_title' => 'رسالة استثناء',
'exception_trace_title' => 'تتبع الإستثناء',
'backup_failed_subject' => 'أخفق النسخ الاحتياطي لل :application_name',
'backup_failed_body' => 'مهم: حدث خطأ أثناء النسخ الاحتياطي :application_name',
'backup_successful_subject' => 'نسخ احتياطي جديد ناجح ل :application_name',
'backup_successful_subject_title' => 'نجاح النسخ الاحتياطي الجديد!',
'backup_successful_body' => 'أخبار عظيمة، نسخة احتياطية جديدة ل :application_name تم إنشاؤها بنجاح على القرص المسمى :disk_name.',
'cleanup_failed_subject' => 'فشل تنظيف النسخ الاحتياطي للتطبيق :application_name .',
'cleanup_failed_body' => 'حدث خطأ أثناء تنظيف النسخ الاحتياطية ل :application_name',
'cleanup_successful_subject' => 'تنظيف النسخ الاحتياطية ل :application_name تمت بنجاح',
'cleanup_successful_subject_title' => 'تنظيف النسخ الاحتياطية تم بنجاح!',
'cleanup_successful_body' => 'تنظيف النسخ الاحتياطية ل :application_name على القرص المسمى :disk_name تم بنجاح.',
'healthy_backup_found_subject' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name صحية',
'healthy_backup_found_subject_title' => 'النسخ الاحتياطية ل :application_name صحية',
'healthy_backup_found_body' => 'تعتبر النسخ الاحتياطية ل :application_name صحية. عمل جيد!',
'unhealthy_backup_found_subject' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية',
'unhealthy_backup_found_subject_title' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية. :problem',
'unhealthy_backup_found_body' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name غير صحية.',
'unhealthy_backup_found_not_reachable' => 'لا يمكن الوصول إلى وجهة النسخ الاحتياطي. :error',
'unhealthy_backup_found_empty' => 'لا توجد نسخ احتياطية لهذا التطبيق على الإطلاق.',
'unhealthy_backup_found_old' => 'تم إنشاء أحدث النسخ الاحتياطية في :date وتعتبر قديمة جدا.',
'unhealthy_backup_found_unknown' => 'عذرا، لا يمكن تحديد سبب دقيق.',
'unhealthy_backup_found_full' => 'النسخ الاحتياطية تستخدم الكثير من التخزين. الاستخدام الحالي هو :disk_usage وهو أعلى من الحد المسموح به من :disk_limit.',
];

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