Compare commits

...

93 Commits

Author SHA1 Message Date
snipe d47e2aab76 Updated language strings 2016-06-02 19:02:33 -07:00
snipe c7399b0c4f Fixes #2029 2016-06-02 11:23:36 -07:00
snipe 086b13c17e Fixed version number 2016-05-23 23:12:01 -07:00
snipe 2620da186b Few more importer fixes 2016-05-23 23:10:58 -07:00
snipe 3689a52894 More status label fixes on import 2016-05-23 22:50:03 -07:00
snipe 725a9320cb Make sure status label is never null or empty 2016-05-23 22:40:48 -07:00
snipe 12996cafac Added status label, supplier and warranty months to importer 2016-05-23 22:09:02 -07:00
snipe 859c53e975 Merge remote-tracking branch 'origin/master' into develop 2016-05-23 20:56:28 -07:00
snipe 1322d81d64 Merge branch 'master' of github.com:snipe/snipe-it 2016-05-23 20:55:50 -07:00
snipe 3ab828a4cd Make licenses sortable by name, serial 2016-05-23 20:55:41 -07:00
snipe 5ca572b914 Merge pull request #2073 from merid14/patch-4
Fix for casematch in case statements
2016-05-23 12:01:15 -07:00
Walter 1bc7ff9941 Fix for casematch in case statements
Fix for casematch in case statements to allow distribution detection.
2016-05-23 14:57:38 -04:00
snipe b855f2fa2b Merge pull request #1986 from TahsinAbrar/develop
on forget password, show error message if user not found with email
2016-05-20 13:51:39 -07:00
snipe 114e6ec6cc Merge pull request #2065 from merid14/patch-3
Fix supported distros
2016-05-20 12:25:33 -07:00
Walter be4230af81 Fix supported distros
Should fix the issue with RHEL 7.2 not being recognized as supported.
Should fix php7.0 bug with Ubuntu 16.04
2016-05-20 15:21:44 -04:00
snipe 390de7ae36 Merge remote-tracking branch 'origin/develop' 2016-05-16 21:55:19 -07:00
snipe 588f0a23ba Updated language strings 2016-05-16 21:55:05 -07:00
snipe d40129bdae Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	Dockerfile
2016-05-16 20:55:08 -07:00
snipe 54f3c65624 Fixes #1634 - better handling for category listings that are not asset categories 2016-05-16 20:53:51 -07:00
snipe 8e18218652 [Bugfix] Fixed admin user display bug 2016-05-11 21:36:59 -07:00
snipe bf9aba3f20 Merge pull request #2007 from samepage-labs/docker_ubuntu_trusty
Docker image requires ubuntu trusty, not latest
2016-05-10 00:08:33 -07:00
snipe 7e554a3c59 Merge branch 'develop' 2016-05-09 16:03:49 -07:00
snipe 91ac9bd485 Merge pull request #2011 from snipe/fix_ubuntu_version_in_docker
Pin down Docker version to ubuntu:wily
2016-05-05 12:44:54 -07:00
Brady Wetherington f16122070a Pin down Docker version to ubuntu:wily 2016-05-05 12:41:52 -07:00
Petr Baloun 4803bc71ec Docker image requires ubuntu trusty, not latest 2016-05-04 11:45:53 +02:00
Tahsin Abrar f0a589f150 on forget password, show error message if user not found with email 2016-04-24 17:55:32 +06:00
snipe 32591d4ca0 Merge pull request #1917 from samepage-labs/docker_persistent_dirs
Docker persistent dirs
2016-04-07 16:55:02 -07:00
Petr Baloun d1bcee0dfa Moved ssl keys to /var/lib/snipeit 2016-04-04 09:31:45 +02:00
Petr Baloun e4dfb188fa Created data volume, redirected data directories there 2016-04-04 09:31:45 +02:00
snipe 4f057bfe5e Merge pull request #1910 from samepage-labs/docker_mysql_client
Missing mysql client in docker image #1908
2016-04-01 00:41:56 -07:00
Petr Baloun 8bbaf2e52f Added mysql client 2016-03-31 13:03:26 +02:00
snipe cf5fcdf9d7 Merge pull request #1826 from richardhofman6/ldap-import-pagination
Added LDAP pagination for user import.
2016-03-25 01:37:45 -07:00
snipe 2333d4e933 Merge pull request #1839 from merid14/patch-2
PRs against master make snipe cry.
2016-03-25 01:23:49 -07:00
snipe e1be3efd82 Renamed doc files 2016-03-15 21:25:02 -07:00
snipe 97f97e3590 Remove search from docs 2016-03-15 21:14:00 -07:00
snipe 701c16f4e6 Updated name 2016-03-15 21:04:40 -07:00
snipe 59c203b6ae Docs 2016-03-15 20:53:58 -07:00
snipe d84479d9fc Merge remote-tracking branch 'origin/develop' 2016-03-15 20:52:25 -07:00
snipe 480f0ef13b Merge pull request #1851 from mathieuk/fix_some_xss
Fix some XSS issues
2016-03-14 16:04:15 -07:00
Mathieu Kooiman 6020de6321 Fix hard to exploit stored XSS possibility: code wrongly expected people to only be able to submit entries from <select> 2016-03-13 14:25:46 +01:00
Mathieu Kooiman 796866fd54 Fix self-xss possibilities in /admin/licenses/create|edit 2016-03-13 14:08:57 +01:00
Mathieu Kooiman ef58de5e8c Fix self-xss points in /admin/asset_maintenances/create
- title, start_date and completion_date were rendered unescaped
2016-03-13 13:59:25 +01:00
Mathieu Kooiman 7e07c7dee3 Fix reflected XSS: /hardware?status=[injectionpoint] 2016-03-13 13:53:20 +01:00
Walter 9dc57ff673 Fixed bug for 7.1 and 7.2 2016-03-11 11:19:55 -05:00
Walter dea95f9f5b Update timezone command
fixed bug in centos 7 timezone command due to the formatting change from centos 7.1 to 7.2
2016-03-10 10:32:45 -05:00
Richard Hofman 23431fafd9 Added LDAP pagination for user import. 2016-03-08 19:39:39 +13:00
snipe 2cf566422c Merge remote-tracking branch 'origin/develop' 2016-03-02 19:10:39 -08:00
snipe b85d624f08 Updated issue template 2016-03-02 19:10:14 -08:00
snipe e69eddeef8 Possible build fix (dbal deps) 2016-02-29 11:10:54 -08:00
snipe 061e0d4cdb Possible build error fix, requiring lower version of doctrine packages 2016-02-29 11:04:47 -08:00
snipe 64b1355393 Bumped version 2016-02-18 12:17:16 -08:00
snipe 2cf169a64a Missing strings in other languages 2016-02-18 12:17:08 -08:00
snipe 6d810a9b0d Bumped version 2016-02-18 12:10:05 -08:00
snipe 4a9701af71 Added missing strings 2016-02-18 12:09:59 -08:00
snipe 0890a22bdb Fixed checkboxes 2016-02-17 14:11:55 -08:00
snipe f9c66917bd Issue template 2016-02-17 14:10:06 -08:00
snipe 311cccbb1e Bumped version 2016-02-17 03:05:15 -08:00
snipe ca27ef6741 Check for eol value or return false on eol_date() 2016-02-17 03:05:02 -08:00
snipe 0dfa0d9c45 Merge branch 'develop' of github.com:snipe/snipe-it into develop 2016-02-17 02:32:11 -08:00
snipe 90442c720b Bumped version 2016-02-17 02:31:57 -08:00
snipe e228577936 Removed model uniqueness constraint
Weird regression issue :(
2016-02-17 02:31:48 -08:00
snipe 9a18312ab1 Merge pull request #1588 from mtucker6784/develop
Showing our love to Debian & resolving conflict
2016-02-16 16:53:06 -08:00
snipe fc4863837f Updated language strings 2016-02-16 10:46:43 -08:00
snipe 9bb2ffcf9a Skip escaping on permissons array 2016-02-16 10:36:26 -08:00
snipe a78874d986 Fixes #1768 - XSS vulnerability in user create/display 2016-02-16 10:33:25 -08:00
snipe 458f413c61 Fixed tests 2016-02-12 17:32:40 -08:00
snipe 503f9145a4 Bumped version 2016-02-12 14:13:37 -08:00
snipe 04233336aa Remove signin message if form not submitted 2016-02-12 14:12:58 -08:00
snipe e5b2163ffe Use helper for company selectlist, added missing language strings 2016-02-12 14:08:35 -08:00
snipe 9f899ee878 Bumped version 2016-02-11 12:55:59 -08:00
snipe 03caa85396 Fixes #1752 - header color bug in FF 2016-02-11 12:54:59 -08:00
snipe f1a4608faf Fixes #1757 - pass item_serial to blade 2016-02-11 12:09:40 -08:00
snipe c66fe3d4d2 Bumped version 2016-02-11 12:06:12 -08:00
snipe 855b3809d0 Only import settings if there is a need to 2016-02-11 12:06:06 -08:00
snipe 2d4dee2f72 Added debug to auth filters 2016-02-11 12:05:51 -08:00
snipe 8667964e3c Use DB table prefix 2016-02-11 12:05:39 -08:00
snipe 72a2ee6ea4 Updated badges 2016-02-11 01:41:37 -08:00
snipe 6a638f131f Fixes #1750 - wrong HTML field type 2016-02-11 01:39:35 -08:00
snipe ab5ff0f709 Bumped version 2016-02-10 13:19:14 -08:00
snipe 36fd4ab7c5 Updated language strings 2016-02-10 13:19:04 -08:00
snipe 98db6fe9df Fixes #1741 - adds serial to checkout email 2016-02-09 14:23:45 -08:00
snipe 20fd420690 Fixed typo in asset acceptance email 2016-02-09 12:10:02 -08:00
snipe 771e21d9f7 Fixes #832 - show activated status in user listing 2016-01-27 21:02:18 -08:00
snipe 3fd9df62f4 Redirect back to user listing on save 2016-01-27 20:48:34 -08:00
snipe 1b1a733043 Basic boolean search, defaults to AND, can use OR 2016-01-27 20:43:18 -08:00
snipe e70dab64a2 Fixes #1686 - added notes to model 2016-01-27 20:39:19 -08:00
snipe f121766037 Higher page numbers 2016-01-27 19:51:13 -08:00
snipe 9563cf4614 Fixes #1659 - different cookie for each view 2016-01-27 19:51:02 -08:00
snipe 2d56240408 Inline styles to show that the email, username field are editable 2016-01-27 17:04:16 -08:00
snipe 00bb511506 Bumped version 2016-01-27 14:39:18 -08:00
snipe fb1dd29059 Fix for custom fields error if creating asset from asset model page 2016-01-27 14:39:00 -08:00
snipe 0896ca6517 Fixes #1670 - first name validates for one letter 2016-01-22 10:40:16 -08:00
mtucker6784 2982cffc3a Showing our love to Debian & resolving conflict 2016-01-06 07:20:38 -07:00
2247 changed files with 20125 additions and 3275 deletions
+31
View File
@@ -0,0 +1,31 @@
#### Expected Behavior (or desired behavior if a feature request)
(what you expect to happen goes here)
-----
#### Actual Behavior
(what actually happens goes here)
-----
#### Please confirm you have done the following before posting your bug report:
- [ ] I have enabled debug mode
- [ ] I have read [checked the Common Issues page](http://docs.snipeitapp.com/common-issues.html)
-----
#### Please provide answers to these questions before posting your bug report:
- Version of Snipe-IT you're running
- What OS and web server you're running Snipe-IT on
- What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
- If you're getting an error in your browser, include that error
- What specific Snipe-IT page you're on, and what specific element you're interacting with to trigger the error
- If a stacktrace is provided in the error, include that too.
- Any errors that appear in your browser's error console.
- Confirm whether the error is [reproduceable on the demo](https://snipeitapp.com/demo).
- Include any additional information you can find in `app/storage/logs` and your webserver's logs.
- Include what you've done so far in the installation, and if you got any error messages along the way.
- Indicate whether or not you've manually edited any data directly in the database
+15 -2
View File
@@ -1,4 +1,4 @@
FROM ubuntu
FROM ubuntu:trusty
MAINTAINER Brady Wetherington <uberbrady@gmail.com>
RUN apt-get update && apt-get install -y \
@@ -12,7 +12,8 @@ php5-gd \
patch \
curl \
vim \
git
git \
mysql-client
RUN php5enmod mcrypt
RUN php5enmod gd
@@ -28,6 +29,7 @@ RUN echo export APACHE_RUN_GROUP=staff >> /etc/apache2/envvars
COPY docker/000-default.conf /etc/apache2/sites-enabled/000-default.conf
#SSL
RUN mkdir -p /var/lib/snipeit/ssl
COPY docker/001-default-ssl.conf /etc/apache2/sites-enabled/001-default-ssl.conf
#COPY docker/001-default-ssl.conf /etc/apache2/sites-available/001-default-ssl.conf
@@ -50,6 +52,13 @@ COPY docker/*.php /var/www/html/app/config/production/
RUN chown -R docker /var/www/html
RUN \
rm -r "/var/www/html/app/private_uploads" && ln -fs "/var/lib/snipeit/data/private_uploads" "/var/www/html/app/private_uploads" && \
rm -r "/var/www/html/public/uploads/avatars" && ln -fs "/var/lib/snipeit/data/uploads/avatars" "/var/www/html/public/uploads/avatars" && \
rm -r "/var/www/html/public/uploads/models" && ln -fs "/var/lib/snipeit/data/uploads/models" "/var/www/html/public/uploads/models" && \
rm -r "/var/www/html/public/uploads/suppliers" && ln -fs "/var/lib/snipeit/data/uploads/suppliers" "/var/www/html/public/uploads/suppliers" && \
rm -r "/var/www/html/app/storage/dumps" && ln -fs "/var/lib/snipeit/dumps" "/var/www/html/app/storage/dumps"
############## DEPENDENCIES via COMPOSER ###################
#global install of composer
@@ -67,6 +76,10 @@ RUN cd /var/www/html;composer install
#RUN chmod +x /tmp/app_install.exp
#RUN /tmp/app_install.exp
############### DATA VOLUME #################
VOLUME [/var/lib/snipeit]
##### START SERVER
COPY docker/entrypoint.sh /entrypoint.sh
+4 -3
View File
@@ -1,10 +1,11 @@
[![Click here to lend your support to: Snipe IT - Free Open Source Asset Management System and make a donation at pledgie.com](https://pledgie.com/campaigns/22899.png?skin_name=chrome)](https://pledgie.com/campaigns/22899) [![Build Status](https://travis-ci.org/snipe/snipe-it.svg?branch=develop)](https://travis-ci.org/snipe/snipe-it) [![Stories in Ready](https://badge.waffle.io/snipe/snipe-it.png?label=ready&title=Ready)](http://waffle.io/snipe/snipe-it) [![ProjectStatus](http://stillmaintained.com/snipe/snipe-it.png)](http://stillmaintained.com/snipe/snipe-it) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.png)](https://crowdin.com/project/snipe-it)
[![Build Status](https://travis-ci.org/snipe/snipe-it.svg?branch=develop)](https://travis-ci.org/snipe/snipe-it) [![Stories in Ready](https://badge.waffle.io/snipe/snipe-it.png?label=ready+for+dev&amp;title=Ready+for+development)](http://waffle.io/snipe/snipe-it) [![Maintenance](https://img.shields.io/maintenance/yes/2016.svg)]() [![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.png)](https://crowdin.com/project/snipe-it)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/snipe/snipe-it?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/)
[![Twitter Follow](https://img.shields.io/twitter/follow/snipeyhead.svg?style=social)](https://twitter.com/snipeyhead)
## Snipe-IT - Asset Management For the Rest of Us
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/snipe/snipe-it?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
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 4.2](http://laravel.com) and uses the [Sentry 2](https://github.com/cartalyst/sentry) package.
+111 -30
View File
@@ -59,7 +59,7 @@ class AssetImportCommand extends Command {
// Loop through the records
$nbInsert = $csv->each(function ($row) use ($duplicates) {
$status_id = 1;
// Let's just map some of these entries to more user friendly words
@@ -77,7 +77,7 @@ class AssetImportCommand extends Command {
$user_email = '';
}
// User's email
// User's username
if (array_key_exists('2',$row)) {
$user_username = trim($row[2]);
} else {
@@ -98,23 +98,24 @@ class AssetImportCommand extends Command {
$user_asset_category = '';
}
// Asset Name
// Asset Model
if (array_key_exists('5',$row)) {
$user_asset_name = trim($row[5]);
$user_asset_model = substr(trim($row[5]), 0, 254);
} else {
$user_asset_name = '';
$user_asset_model = '';
}
// Asset Manufacturer
if (array_key_exists('6',$row)) {
$user_asset_mfgr = trim($row[6]);
$user_asset_mfgr = substr(trim($row[6]), 0, 254);
} else {
$user_asset_mfgr = '';
}
// Asset model number
if (array_key_exists('7',$row)) {
$user_asset_modelno = trim($row[7]);
$user_asset_modelno = substr(trim($row[7]), 0, 254);
//$user_asset_modelno = trim($row[7]);
} else {
$user_asset_modelno = '';
}
@@ -169,16 +170,49 @@ class AssetImportCommand extends Command {
$user_asset_purchase_cost = '';
}
// Asset Company Name
if (array_key_exists('14',$row)) {
if ($row[14]!='') {
$user_asset_company_name = trim($row[14]);
} else {
$user_asset_company_name= '';
}
} else {
$user_asset_company_name = '';
}
// Asset Company Name
if (array_key_exists('14',$row)) {
if ($row[14]!='') {
$user_asset_company_name = trim($row[14]);
} else {
$user_asset_company_name= '';
}
} else {
$user_asset_company_name = '';
}
// Asset Status Name
if (array_key_exists('15',$row)) {
if ($row[15]!='') {
$user_asset_status = trim($row[15]);
} else {
$user_asset_status= '';
}
} else {
$user_asset_status = '';
}
// Asset Warranty Months
if (array_key_exists('16',$row)) {
if ($row[16]!='') {
$user_asset_warranty = intval($row[16]);
} else {
$user_asset_warranty= NULL;
}
} else {
$user_asset_warranty = NULL;
}
// Asset Supplier
if (array_key_exists('17',$row)) {
if ($row[17]!='') {
$user_asset_supplier = trim($row[17]);
} else {
$user_asset_supplier= '';
}
} else {
$user_asset_supplier = '';
}
// A number was given instead of a name
@@ -220,7 +254,7 @@ class AssetImportCommand extends Command {
$this->comment('Username: '.$user_username);
$this->comment('Email: '.$user_email);
$this->comment('Category Name: '.$user_asset_category);
$this->comment('Item: '.$user_asset_name);
$this->comment('Item: '.$user_asset_model);
$this->comment('Manufacturer ID: '.$user_asset_mfgr);
$this->comment('Model No: '.$user_asset_modelno);
$this->comment('Serial No: '.$user_asset_serial);
@@ -228,9 +262,11 @@ class AssetImportCommand extends Command {
$this->comment('Location: '.$user_asset_location);
$this->comment('Purchase Date: '.$user_asset_purchase_date);
$this->comment('Purchase Cost: '.$user_asset_purchase_cost);
$this->comment('Status: '.$user_asset_status);
$this->comment('Supplier: '.$user_asset_supplier);
$this->comment('Warranty Months: '.$user_asset_warranty);
$this->comment('Notes: '.$user_asset_notes);
$this->comment('Company Name: '.$user_asset_company_name);
$this->comment('Company Name: '.$user_asset_company_name);
$this->comment('------------- Action Summary ----------------');
if ($user_username!='') {
@@ -269,7 +305,7 @@ class AssetImportCommand extends Command {
$this->comment('Location '.$user_asset_location.' already exists');
} else {
$location = new Location();
$location = new Location();
if ($user_asset_location!='') {
@@ -310,7 +346,7 @@ class AssetImportCommand extends Command {
} else {
$category = new Category();
$category->name = e($category_name);
$category->name = e($category_name);
$category->category_type = 'asset';
$category->user_id = 1;
@@ -338,21 +374,65 @@ class AssetImportCommand extends Command {
}
// Check for the supplier match and create it if it doesn't exist
if ($supplier = Supplier::where('name', e($user_asset_supplier))->first()) {
$this->comment('Supplier '.$user_asset_supplier.' already exists');
} else {
$supplier = new Supplier();
$supplier->name = e($user_asset_supplier);
$supplier->user_id = 1;
if ($supplier->save()) {
$this->comment('Supplier '.$user_asset_supplier.' was created');
} else {
$this->comment('Something went wrong! Supplier '.$user_asset_supplier.' was NOT created');
}
}
if ($user_asset_status=='') {
$user_asset_status = 'Unspecified Status';
}
// Check for the status label match and create it if it doesn't exist
if ($statuslabel = Statuslabel::where('name', e($user_asset_status))->first()) {
$this->comment('Status Label '.$user_asset_status.' already exists');
} else {
$statuslabel = new Statuslabel();
$statuslabel->name = e($user_asset_status);
$statuslabel->user_id = 1;
$statuslabel->deployable = 1;
if ($statuslabel->save()) {
$this->comment('Status Label '.$user_asset_status.' was created');
} else {
$this->comment('Something went wrong! Status Label '.$user_asset_status.' was NOT created');
}
}
$status_id = $statuslabel->id;
// Check for the asset model match and create it if it doesn't exist
if ($asset_model = Model::where('name', e($user_asset_name))->where('modelno', e($user_asset_modelno))->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
$this->comment('The Asset Model '.$user_asset_name.' with model number '.$user_asset_modelno.' already exists');
if ($asset_model = Model::where('name', e($user_asset_model ))->where('modelno', e($user_asset_modelno))->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
$this->comment('The Asset Model '.$user_asset_model .' with model number '.$user_asset_modelno.' already exists');
} else {
$asset_model = new Model();
$asset_model->name = e($user_asset_name);
$asset_model->name = e($user_asset_model );
$asset_model->manufacturer_id = $manufacturer->id;
$asset_model->modelno = e($user_asset_modelno);
$asset_model->category_id = $category->id;
$asset_model->user_id = 1;
if ($asset_model->save()) {
$this->comment('Asset Model '.$user_asset_name.' with model number '.$user_asset_modelno.' was created');
$this->comment('Asset Model '.$user_asset_model .' with model number '.$user_asset_modelno.' was created');
} else {
$this->comment('Something went wrong! Asset Model '.$user_asset_name.' was NOT created');
$this->comment('Something went wrong! Asset Model '.$user_asset_model .' was NOT created');
}
}
@@ -390,7 +470,7 @@ class AssetImportCommand extends Command {
if ($user_asset_purchase_cost!='') {
$asset->purchase_cost = ParseFloat(e($user_asset_purchase_cost));
} else {
$asset->purchase_cost = 0.00;
$asset->purchase_cost = '0.00';
}
$asset->serial = e($user_asset_serial);
$asset->asset_tag = e($user_asset_tag);
@@ -399,6 +479,7 @@ class AssetImportCommand extends Command {
$asset->rtd_location_id = $location->id;
$asset->user_id = 1;
$asset->status_id = $status_id;
$asset->warranty_months = $user_asset_warranty;
$asset->company_id = $company->id;
if ($user_asset_purchase_date!='') {
$asset->purchase_date = $user_asset_purchase_date;
@@ -408,9 +489,9 @@ class AssetImportCommand extends Command {
$asset->notes = e($user_asset_notes);
if ($asset->save()) {
$this->comment('Asset '.$user_asset_name.' with serial number '.$user_asset_serial.' was created');
$this->comment('Asset '.$user_asset_model .' with serial number '.$user_asset_serial.' was created');
} else {
$this->comment('Something went wrong! Asset '.$user_asset_name.' was NOT created');
$this->comment('Something went wrong! Asset '.$user_asset_model .' was NOT created');
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
<?php
return array (
'app_version' => 'v2.1.0',
'hash_version' => 'v2.1.0-47-g39f40a3',
'app_version' => 'v2.1.1',
'hash_version' => 'v2.1.1-55-g701c16f',
);
+1
View File
@@ -332,6 +332,7 @@ class AuthController extends BaseController
}
} catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
return Redirect::route('forgot-password')->withInput()->with('error', $e->getMessage());
// Even though the username was not found, we will pretend
// we have sent the password reset code through username,
// this is a security measure against hackers.
@@ -42,7 +42,7 @@ class AccessoriesController extends AdminController
{
// Show the page
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
$company_list = Company::getSelectList();
$company_list = companyList();
$location_list = locationsList();
return View::make('backend/accessories/edit')
->with('accessory', new Accessory)
@@ -125,7 +125,7 @@ class AccessoriesController extends AdminController
}
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','accessory')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
$company_list = Company::getSelectList();
$company_list = companyList();
$location_list = locationsList();
return View::make('backend/accessories/edit', compact('accessory'))
+4 -3
View File
@@ -68,7 +68,7 @@ class AssetsController extends AdminController
$manufacturer_list = manufacturerList();
$category_list = categoryList();
$supplier_list = suppliersList();
$company_list = Company::getSelectList();
$company_list = companyList();
$assigned_to = usersList();
$statuslabel_types = statusTypeList();
@@ -253,7 +253,7 @@ class AssetsController extends AdminController
$manufacturer_list = manufacturerList();
$category_list = categoryList();
$supplier_list = suppliersList();
$company_list = Company::getSelectList();
$company_list = companyList();
$assigned_to = usersList();
$statuslabel_types = statusTypeList();
@@ -650,6 +650,7 @@ class AssetsController extends AdminController
$data['item_name'] = $asset->showAssetName();
$data['checkin_date'] = $logaction->created_at;
$data['item_tag'] = $asset->asset_tag;
$data['item_serial'] = $asset->serial;
$data['note'] = $logaction->note;
if ((($asset->checkin_email()=='1')) && ($user) && (!Config::get('app.lock_passwords'))) {
@@ -882,7 +883,7 @@ class AssetsController extends AdminController
$supplier_list = suppliersList();
$assigned_to = usersList();
$statuslabel_types = statusTypeList();
$company_list = Company::getSelectList();
$company_list = companyList();
$asset = clone $asset_to_clone;
$asset->id = null;
+117 -5
View File
@@ -171,20 +171,25 @@ class CategoriesController extends AdminController
// Check if the category exists
if (is_null($category = Category::find($categoryId))) {
// Redirect to the blogs management page
return Redirect::to('admin/settings/categories')->with('error', Lang::get('admin/categories/message.not_found'));
return Redirect::route('categories')->with('error', Lang::get('admin/categories/message.not_found'));
}
if ($category->has_models() > 0) {
return Redirect::route('categories')->with('error', Lang::get('admin/categories/message.assoc_models'));
} elseif ($category->accessories()->count() > 0) {
return Redirect::route('categories')->with('error', Lang::get('admin/categories/message.assoc_accessories'));
} elseif ($category->consumables()->count() > 0) {
return Redirect::route('categories')->with('error', Lang::get('admin/categories/message.assoc_consumables'));
// Redirect to the asset management page
return Redirect::to('admin/settings/categories')->with('error', Lang::get('admin/categories/message.assoc_users'));
} else {
$category->delete();
// Redirect to the locations management page
return Redirect::to('admin/settings/categories')->with('success', Lang::get('admin/categories/message.delete.success'));
return Redirect::route('categories')->with('success', Lang::get('admin/categories/message.delete.success'));
}
@@ -267,7 +272,7 @@ class CategoriesController extends AdminController
return $data;
}
public function getDataView($categoryID) {
public function getDataViewAssets($categoryID) {
$category = Category::with('assets.company')->find($categoryID);
$category_assets = $category->assets;
@@ -335,4 +340,111 @@ class CategoriesController extends AdminController
}
public function getDataViewAccessories($categoryID) {
$category = Category::with('accessories.company')->find($categoryID);
$category_assets = $category->accessories;
if (Input::has('search')) {
$category_assets = $category_assets->TextSearch(e(Input::get('search')));
}
if (Input::has('offset')) {
$offset = e(Input::get('offset'));
} else {
$offset = 0;
}
if (Input::has('limit')) {
$limit = e(Input::get('limit'));
} else {
$limit = 50;
}
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
$allowed_columns = ['id','name','serial','asset_tag'];
$sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at';
$count = $category_assets->count();
$rows = array();
foreach ($category_assets as $asset) {
$actions = '';
$inout='';
if ($asset->deleted_at=='') {
$actions = '<div style=" white-space: nowrap;"><a href="'.route('update/accessory', $asset->id).'" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a> <a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/accessory', $asset->id).'" data-content="'.Lang::get('admin/hardware/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($asset->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a></div>';
}
$rows[] = array(
'id' => $asset->id,
'name' => link_to_route('view/accessory', $asset->name, [$asset->id]),
'actions' => $actions,
'companyName' => Company::getName($asset),
);
}
$data = array('total' => $count, 'rows' => $rows);
return $data;
}
public function getDataViewConsumables($categoryID) {
$category = Category::with('accessories.company')->find($categoryID);
$category_assets = $category->consumables;
if (Input::has('search')) {
$category_assets = $category_assets->TextSearch(e(Input::get('search')));
}
if (Input::has('offset')) {
$offset = e(Input::get('offset'));
} else {
$offset = 0;
}
if (Input::has('limit')) {
$limit = e(Input::get('limit'));
} else {
$limit = 50;
}
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
$allowed_columns = ['id','name','serial','asset_tag'];
$sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at';
$count = $category_assets->count();
$rows = array();
foreach ($category_assets as $asset) {
$actions = '';
$inout='';
if ($asset->deleted_at=='') {
$actions = '<div style=" white-space: nowrap;"><a href="'.route('update/consumable', $asset->id).'" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a> <a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/consumable', $asset->id).'" data-content="'.Lang::get('admin/hardware/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($asset->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a></div>';
}
$rows[] = array(
'id' => $asset->id,
'name' => link_to_route('view/consumable', $asset->name, [$asset->id]),
'actions' => $actions,
'companyName' => Company::getName($asset),
);
}
$data = array('total' => $count, 'rows' => $rows);
return $data;
}
}
@@ -42,7 +42,7 @@ class ConsumablesController extends AdminController
{
// Show the page
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','consumable')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
$company_list = Company::getSelectList();
$company_list = companyList();
$location_list = locationsList();
return View::make('backend/consumables/edit')
@@ -126,7 +126,7 @@ class ConsumablesController extends AdminController
}
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','consumable')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
$company_list = Company::getSelectList();
$company_list = companyList();
$location_list = locationsList();
return View::make('backend/consumables/edit', compact('consumable'))
+4 -4
View File
@@ -56,7 +56,7 @@ class LicensesController extends AdminController
$depreciation_list = array('0' => Lang::get('admin/licenses/form.no_depreciation')) + Depreciation::lists('name', 'id');
$supplier_list = array('' => 'Select Supplier') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
$maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No');
$company_list = Company::getSelectList();
$company_list = companyList();
return View::make('backend/licenses/edit')
->with('license_options',$license_options)
@@ -203,7 +203,7 @@ class LicensesController extends AdminController
$depreciation_list = array('0' => Lang::get('admin/licenses/form.no_depreciation')) + Depreciation::lists('name', 'id');
$supplier_list = array('' => 'Select Supplier') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
$maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No');
$company_list = Company::getSelectList();
$company_list = companyList();
return View::make('backend/licenses/edit', compact('license'))
->with('license_options',$license_options)
@@ -782,7 +782,7 @@ class LicensesController extends AdminController
// Show the page
$license_options = array('0' => 'Top Level') + License::lists('name', 'id');
$maintained_list = array('' => 'Maintained', '1' => 'Yes', '0' => 'No');
$company_list = Company::getSelectList();
$company_list = companyList();
//clone the orig
$license = clone $license_to_clone;
$license->id = null;
@@ -956,7 +956,7 @@ class LicensesController extends AdminController
$licenses = $licenses->TextSearch(Input::get('search'));
}
$allowed_columns = ['id','name'];
$allowed_columns = ['id','name','serial'];
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at';
@@ -75,7 +75,7 @@ class LocationsController extends AdminController
} else {
$location->parent_id = e(Input::get('parent_id'));
}
$location->currency = Input::get('currency','$');
$location->currency = e(Input::get('currency','$'));
$location->address = e(Input::get('address'));
$location->address2 = e(Input::get('address2'));
$location->city = e(Input::get('city'));
@@ -203,7 +203,7 @@ class LocationsController extends AdminController
} else {
$location->parent_id = e(Input::get('parent_id',''));
}
$location->currency = Input::get('currency','$');
$location->currency = e(Input::get('currency','$'));
$location->address = e(Input::get('address'));
$location->address2 = e(Input::get('address2'));
$location->city = e(Input::get('city'));
@@ -115,6 +115,7 @@ class ModelsController extends AdminController
$model->modelno = e(Input::get('modelno'));
$model->manufacturer_id = e(Input::get('manufacturer_id'));
$model->category_id = e(Input::get('category_id'));
$model->note = e(Input::get('note'));
$model->user_id = Sentry::getId();
if (Input::get('custom_fieldset')!='') {
$model->fieldset_id = e(Input::get('custom_fieldset'));
@@ -166,6 +167,7 @@ class ModelsController extends AdminController
$model->category_id = e(Input::get('category_id'));
$model->modelno = e(Input::get('modelno'));
$model->user_id = Sentry::getUser()->id;
$model->note = e(Input::get('note'));
$model->eol=0;
if($model->save()) {
@@ -243,6 +245,7 @@ class ModelsController extends AdminController
$model->modelno = e(Input::get('modelno'));
$model->manufacturer_id = e(Input::get('manufacturer_id'));
$model->category_id = e(Input::get('category_id'));
$model->note = e(Input::get('note'));
if (Input::get('custom_fieldset')=='') {
$model->fieldset_id = null;
} else {
@@ -454,6 +457,7 @@ class ModelsController extends AdminController
'depreciation' => (($model->depreciation)&&($model->depreciation->id > 0)) ? $model->depreciation->name.' ('.$model->depreciation->months.')' : Lang::get('general.no_depreciation'),
'category' => ($model->category) ? $model->category->name : '',
'eol' => ($model->eol) ? $model->eol.' '.Lang::get('general.months') : '',
'note' => $model->getNote(),
'actions' => $actions
);
}
+63 -37
View File
@@ -43,13 +43,13 @@ class UsersController extends AdminController {
* @var array
*/
protected $validationRules = array(
'first_name' => 'required|alpha_space|min:2',
'last_name' => 'required|alpha_space|min:2',
'first_name' => 'required|alpha_space|min:1',
'last_name' => 'required|alpha_space|min:1',
'location_id' => 'numeric',
'username' => 'required|min:2|unique:users,deleted_at,NULL',
'email' => 'email|unique:users,email',
'password' => 'required|min:6',
'password_confirm' => 'required|min:6|same:password',
'password_confirm' => 'required|same:password',
'company_id' => 'integer',
);
@@ -86,7 +86,7 @@ class UsersController extends AdminController {
$location_list = locationsList();
$manager_list = managerList();
$company_list = Company::getSelectList();
$company_list = companyList();
/* echo '<pre>';
print_r($userPermissions);
@@ -285,7 +285,7 @@ class UsersController extends AdminController {
$this->encodeAllPermissions($permissions);
$location_list = locationsList();
$company_list = Company::getSelectList();
$company_list = companyList();
$manager_list = array('' => 'Select a User') + DB::table('users')
->select(DB::raw('concat(last_name,", ",first_name," (",email,")") as full_name, id'))
->whereNull('deleted_at')
@@ -371,21 +371,21 @@ class UsersController extends AdminController {
try {
// Update the user
$user->first_name = Input::get('first_name');
$user->last_name = Input::get('last_name');
$user->username = Input::get('username');
$user->email = Input::get('email');
$user->employee_num = Input::get('employee_num');
$user->activated = Input::get('activated', $user->activated);
$user->first_name = e(Input::get('first_name'));
$user->last_name = e(Input::get('last_name'));
$user->username = e(Input::get('username'));
$user->email = e(Input::get('email'));
$user->employee_num = e(Input::get('employee_num'));
$user->activated = e(Input::get('activated', $user->activated));
if (Sentry::getUser()->hasAccess('superuser')) {
$user->permissions = Input::get('permissions');
}
$user->jobtitle = Input::get('jobtitle');
$user->phone = Input::get('phone');
$user->jobtitle = e(Input::get('jobtitle'));
$user->phone = e(Input::get('phone'));
$user->location_id = Input::get('location_id');
$user->company_id = Company::getIdForUser(Input::get('company_id'));
$user->manager_id = Input::get('manager_id');
$user->notes = Input::get('notes');
$user->notes = e(Input::get('notes'));
if ($user->manager_id == "") {
$user->manager_id = NULL;
@@ -403,7 +403,7 @@ class UsersController extends AdminController {
// Do we want to update the user email?
if (!Config::get('app.lock_passwords')) {
$user->email = Input::get('email');
$user->email = e(Input::get('email'));
}
// Get the current user groups
@@ -439,7 +439,7 @@ class UsersController extends AdminController {
$success = Lang::get('admin/users/message.success.update');
// Redirect to the user page
return Redirect::route('view/user', $id)->with('success', $success);
return Redirect::route('users')->with('success', $success);
}
// Prepare the error message
@@ -737,7 +737,7 @@ class UsersController extends AdminController {
$this->encodeAllPermissions($permissions);
$location_list = array('' => '') + Location::lists('name', 'id');
$company_list = Company::getSelectList();
$company_list = companyList();
$manager_list = array('' => 'Select a User') + DB::table('users')
->select(DB::raw('concat(last_name,", ",first_name," (",email,")") as full_name, id'))
->whereNull('deleted_at')
@@ -907,7 +907,7 @@ class UsersController extends AdminController {
$sort = e(Input::get('sort'));
}
$users = User::select(array('users.id','users.employee_num','users.email','users.username','users.location_id','users.manager_id','users.first_name','users.last_name','users.created_at','users.notes','users.company_id', 'users.deleted_at'))
$users = User::select(array('users.id','users.employee_num','users.email','users.username','users.location_id','users.manager_id','users.first_name','users.last_name','users.created_at','users.notes','users.company_id', 'users.deleted_at','users.activated'))
->with('assets','accessories','consumables','licenses','manager','sentryThrottle','groups','userloc','company');
$users = Company::scopeCompanyables($users);
@@ -935,7 +935,7 @@ class UsersController extends AdminController {
$allowed_columns =
[
'last_name','first_name','email','username','employee_num',
'assets','accessories', 'consumables','licenses','groups'
'assets','accessories', 'consumables','licenses','groups','activated'
];
$sort = in_array($sort, $allowed_columns) ? $sort : 'first_name';
@@ -955,7 +955,7 @@ class UsersController extends AdminController {
$actions = '<nobr>';
foreach ($user->groups as $group) {
$group_names .= '<a href="' . Config::get('app.url') . '/admin/groups/' . $group->id . '/edit" class="label label-default">' . $group->name . '</a> ';
$group_names .= '<a href="' . Config::get('app.url') . '/admin/groups/' . $group->id . '/edit" class="label label-default">' . e($group->name) . '</a> ';
}
@@ -983,19 +983,20 @@ class UsersController extends AdminController {
'checkbox' =>'<div class="text-center hidden-xs hidden-sm"><input type="checkbox" name="edit_user['.$user->id.']" class="one_required"></div>',
'name' => '<a title="'.$user->fullName().'" href="../admin/users/'.$user->id.'/view">'.$user->fullName().'</a>',
'email' => ($user->email!='') ?
'<a href="mailto:'.$user->email.'" class="hidden-md hidden-lg">'.$user->email.'</a>'
.'<a href="mailto:'.$user->email.'" class="hidden-xs hidden-sm"><i class="fa fa-envelope"></i></a>'
'<a href="mailto:'.e($user->email).'" class="hidden-md hidden-lg">'.e($user->email).'</a>'
.'<a href="mailto:'.e($user->email).'" class="hidden-xs hidden-sm"><i class="fa fa-envelope"></i></a>'
.'</span>' : '',
'username' => $user->username,
'location' => ($user->userloc) ? $user->userloc->name : '',
'manager' => ($user->manager) ? '<a title="' . $user->manager->fullName() . '" href="users/' . $user->manager->id . '/view">' . $user->manager->fullName() . '</a>' : '',
'username' => e($user->username),
'location' => ($user->userloc) ? e($user->userloc->name) : '',
'manager' => ($user->manager) ? '<a title="' . e($user->manager->fullName()) . '" href="users/' . $user->manager->id . '/view">' . e($user->manager->fullName()) . '</a>' : '',
'assets' => $user->assets->count(),
'employee_num' => $user->employee_num,
'employee_num' => e($user->employee_num),
'licenses' => $user->licenses->count(),
'accessories' => $user->accessories->count(),
'consumables' => $user->consumables->count(),
'groups' => $group_names,
'notes' => $user->notes,
'notes' => e($user->notes),
'activated' => ($user->activated=='1') ? '<i class="fa fa-check"></i>' : '<i class="fa fa-times"></i>',
'actions' => ($actions) ? $actions : '',
'companyName' => is_null($user->company) ? '' : e($user->company->name)
);
@@ -1248,17 +1249,42 @@ class UsersController extends AdminController {
return Redirect::route('users')->with('error', Lang::get('admin/users/message.error.ldap_could_not_bind').ldap_error($ldapconn));
}
// Perform the search
$search_results = @ldap_search($ldapconn, $base_dn, '('.$filter.')');
if (!$search_results) {
return Redirect::route('users')->with('error', Lang::get('admin/users/message.error.ldap_could_not_search').ldap_error($ldapconn));
}
// Set up LDAP pagination for very large databases
// @author Richard Hofman
$page_size = 500;
$cookie = '';
$result_set = array();
$global_count = 0;
// Get results
$results = @ldap_get_entries($ldapconn, $search_results);
if (!$results) {
return Redirect::route('users')->with('error', Lang::get('admin/users/message.error.ldap_could_not_get_entries').ldap_error($ldapconn));
}
// Perform the search
do {
// Paginate (non-critical, if not supported by server)
ldap_control_paged_result($ldapconn, $page_size, false, $cookie);
$search_results = ldap_search($ldapconn, $base_dn, '('.$filter.')');
if (!$search_results) {
return Redirect::route('users')->with('error', Lang::get('admin/users/message.error.ldap_could_not_search').ldap_error($ldapconn));
}
// Get results from page
$results = ldap_get_entries($ldapconn, $search_results);
if (!$results) {
return Redirect::route('users')->with('error', Lang::get('admin/users/message.error.ldap_could_not_get_entries').ldap_error($ldapconn));
}
// Add results to result set
$global_count += $results['count'];
$result_set = array_merge($result_set, $results);
ldap_control_paged_result_response($ldapconn, $search_results, $cookie);
} while ($cookie !== null && $cookie != '');
// Clean up after search
$result_set['count'] = $global_count;
$results = $result_set;
ldap_control_paged_result($ldapconn, 0);
$summary = array();
for ($i = 0; $i < $results["count"]; $i++) {
@@ -11,9 +11,8 @@ class EditLocationIdAssetLogsTable extends Migration
*/
public function up()
{
$prefix=DB::getTablePrefix();
DB::statement('ALTER TABLE '.$prefix.'asset_logs MODIFY location_id int(11) null');
DB::statement('ALTER TABLE '.$prefix.'asset_logs MODIFY added_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP');
DB::statement('ALTER TABLE '.DB::getTablePrefix().'asset_logs MODIFY location_id int(11) null');
DB::statement('ALTER TABLE '.DB::getTablePrefix().'asset_logs MODIFY added_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP');
}
@@ -18,8 +18,8 @@ class ImportLdapSettings extends Migration {
// Only update the settings record if there IS an LDAP Config
// AND the Settings table doesn't already have LDAP settings in it
if ((Config::get('ldap.url')) && ($settings->ldap_server=='')) {
if ((Config::get('ldap.url')) && ($settings) && ($settings->ldap_server)) {
$settings->ldap_enabled = 1;
$settings->ldap_server = Config::get('ldap.url');
$settings->ldap_uname = Config::get('ldap.username');
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddNotesToModels extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('models', function ($table) {
$table->text('note')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('models', function ($table) {
$table->dropColumn('note');
});
}
}
+9 -2
View File
@@ -34,6 +34,7 @@ App::after(function ($request, $response) {
Route::filter('auth', function () {
// Check if the user is logged in
if ( ! Sentry::check()) {
Log::debug('Not logged in - auth filter');
// Store the current uri in the session
Session::put('loginRedirect', Request::url());
@@ -74,7 +75,8 @@ Route::filter('guest', function () {
Route::filter('admin-auth', function () {
// Check if the user is logged in
if ( ! Sentry::check()) {
if ( !Sentry::check()) {
LOG::debug('Not logged in - admin-auth');
// Store the current uri in the session
Session::put('loginRedirect', Request::url());
@@ -84,8 +86,9 @@ Route::filter('admin-auth', function () {
// Check if the user has access to the admin pages
if ( ! Sentry::getUser()->hasAccess('admin')) {
LOG::debug('Not a super admin');
// Show the insufficient permissions page
return Redirect::route('view-assets');
return Redirect::route('view-assets')->with('error','You do not have permission to view this page.');
}
});
@@ -102,6 +105,7 @@ Route::filter('admin-auth', function () {
Route::filter('reporting-auth', function () {
// Check if the user is logged in
if ( ! Sentry::check()) {
LOG::debug('Not logged in');
// Store the current uri in the session
Session::put('loginRedirect', Request::url());
@@ -111,6 +115,7 @@ Route::filter('reporting-auth', function () {
// Check if the user has access to the admin pages
if ( ! Sentry::getUser()->hasAccess('reports')) {
LOG::debug('Unsufficient permissions');
// Show the insufficient permissions page
return Redirect::route('profile')->with("error","You do not have permission to view this page.");
}
@@ -119,6 +124,7 @@ Route::filter('reporting-auth', function () {
Route::filter('backup-auth', function () {
if (!Sentry::getUser()->isSuperUser()) {
LOG::debug('Not a super admin');
return Redirect::route('home')->with('error', Lang::get('general.insufficient_permissions'));
}
});
@@ -138,6 +144,7 @@ Route::filter('backup-auth', function () {
Route::filter('csrf', function () {
if (Session::token() != Input::get('_token')) {
LOG::debug('No CSRF token');
throw new Illuminate\Session\TokenMismatchException;
}
});
+1 -1
View File
@@ -27,7 +27,7 @@ function modelList() {
}
function companyList() {
$company_list = array('' => '') + DB::table('companies')
$company_list = array('0' => Lang::get('general.select_company')) + DB::table('companies')
->orderBy('name', 'asc')
->lists('name', 'id');
return $company_list;
+9 -6
View File
@@ -5,19 +5,22 @@ return array(
'about_accessories_text' => 'الملحقات هي أي شيء تقوم بتسليمه للمستخدمين لكنه لا يحتوي على رقم تسلسلي (أو أنك لست بحاجة إلى تتبعه بشكل خاص). مثال: فأرة الحاسوب أو لوحة المفاتيح.',
'accessory_category' => 'فئة الملحق',
'accessory_name' => 'اسم الملحق',
'cost' => 'Purchase Cost',
'create' => 'Create Accessory',
'date' => 'Purchase Date',
'cost' => 'تكلفة شراء',
'checkout' => 'الملحقات المخرجة',
'checkin' => 'إدخالات الملحقات',
'create' => 'إنشاء ملحق',
'date' => 'تاريخ الشراء',
'edit' => 'تعديل الملحق',
'eula_text' => 'إنشاء اتفاقية جديدة',
'eula_text_help' => 'يسمح لك هذا الحقل بتخصيص الاتفاقيات لأنواع معينة من الأصول. اذا كنت تمتلك اتفاقية واحدة لجميع أصولك يمكنك أن تقوم بتأشير المربع في الأسفل لاستخدام الاتفاقية الافتراضية.',
'require_acceptance' => 'مطالبة المستخدمين بتأكيد قبولهم الأصول في هذه الفئة.',
'no_default_eula' => 'ليس هناك اتفاقيات. قم باضافة واحدة من "الاعدادات".',
'order' => 'Order Number',
'order' => 'رقم طلب الشراء',
'qty' => 'الكمية',
'total' => 'المجموع',
'remaining' => 'المتاح',
'update' => 'Update Accessory',
'update' => 'تحديث الملحق',
'use_default_eula' => 'قم باستعمال <a href="#" data-toggle="modal" data-target="#eulaModal">primary default EULA</a>.',
'use_default_eula_disabled' => '<del>Use the primary default EULA instead.</del> No primary default EULA is set. Please add one in Settings.',
'use_default_eula_disabled' => '<del>استخدام (اتفاقية ترخيص المستخدم) الافتراضية الأساسية بدلا من ذلك.</del> لم يتم تحديد (اتفاقية ترخيص المستخدم) الافتراضية الأساسية. الرجاء إضافتها في الإعدادات.',
);
+9 -9
View File
@@ -2,23 +2,23 @@
return array(
'does_not_exist' => 'Accessory does not exist.',
'does_not_exist' => 'الملحق غير موجود.',
'assoc_users' => 'تم إخراج :count عنصر من هذا الملحق للمستخدمين، الرجاء إيداع الملحقات ثم حاول مرة أخرى. ',
'create' => array(
'error' => 'Accessory was not created, please try again.',
'success' => 'Accessory created successfully.'
'error' => 'لم يتم انشاء الملحق، الرجاء المحاولة مرة اخرى.',
'success' => 'تم انشاء الملحق بنجاح.'
),
'update' => array(
'error' => 'Accessory was not updated, please try again',
'success' => 'Accessory updated successfully.'
'error' => 'لم يتم تحديث الملحق، الرجاء المحاولة مرة أخرى',
'success' => 'تم بنجاح تحديث الملحق.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this category?',
'error' => 'There was an issue deleting the category. Please try again.',
'success' => 'The category was deleted successfully.'
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذا الملحق؟',
'error' => 'حدث خطأ أثناء محاولة حذف الملحق. الرجاء حاول مرة أخرى.',
'success' => 'تم حذف الملحق بنجاح.'
),
'checkout' => array(
@@ -30,7 +30,7 @@ return array(
'checkin' => array(
'error' => 'لم يتم إيداع الملحق، الرجاء المحاولة مرة أخرى',
'success' => 'تم إيداع الملحق بنجاح.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
'user_does_not_exist' => 'هذا المستخدم خاطئ، الرجاء المحاولة مرة أخرى.'
)
+1 -1
View File
@@ -1,7 +1,7 @@
<?php
return array(
'dl_csv' => 'Download CSV',
'dl_csv' => 'التنزيل كملف CSV',
'eula_text' => 'اتفاقية ترخيص المستخدم',
'id' => 'رقم المعرف',
'require_acceptance' => 'القبول',
+10 -10
View File
@@ -1,14 +1,14 @@
<?php
return [
'asset_maintenance_type' => 'Maintenance Type',
'title' => 'Title',
'start_date' => 'Started',
'completion_date' => 'Completed',
'cost' => 'Cost',
'is_warranty' => 'Warranty Improvement',
'asset_maintenance_time' => 'Days',
'notes' => 'Notes',
'update' => 'Update',
'create' => 'Create'
'asset_maintenance_type' => 'تصنيف الصيانة',
'title' => 'المسمى',
'start_date' => 'بدأت',
'completion_date' => 'أنجزت',
'cost' => 'التكلفة',
'is_warranty' => 'تحسين الضمان',
'asset_maintenance_time' => 'أيام',
'notes' => 'مُلاحظات',
'update' => 'تعديل',
'create' => 'إنشاء'
];
+7 -7
View File
@@ -1,11 +1,11 @@
<?php
return [
'asset_maintenances' => 'Asset Maintenances',
'edit' => 'Edit Asset Maintenance',
'delete' => 'Delete Asset Maintenance',
'view' => 'View Asset Maintenance Details',
'repair' => 'Repair',
'maintenance' => 'Maintenance',
'upgrade' => 'Upgrade'
'asset_maintenances' => 'صيانة الاُصول',
'edit' => 'تعديل صيانة الأصل',
'delete' => 'حذف صيانة الأصل',
'view' => 'عرض تفاصيل صيانة الأصل',
'repair' => 'إصلاح',
'maintenance' => 'الصيانة',
'upgrade' => 'الترقية'
];
+9 -9
View File
@@ -1,17 +1,17 @@
<?php
return [
'not_found' => 'Asset Maintenance you were looking for was not found!',
'not_found' => 'لم يتم العثور على صيانة الأصل!',
'delete' => [
'confirm' => 'Are you sure you wish to delete this asset maintenance?',
'error' => 'There was an issue deleting the asset maintenance. Please try again.',
'success' => 'The asset maintenance was deleted successfully.'
'confirm' => 'هل أنت متأكد من رغبتك في حذف صيانة الأصل؟',
'error' => 'حدثت مشكلة في عملية الحذف لصيانة الأصل. الرجاء المحاولة مرة اُخرى.',
'success' => 'تم حذف صيانة الأصل بنجاح.'
],
'create' => [
'error' => 'Asset Maintenance was not created, please try again.',
'success' => 'Asset Maintenance created successfully.'
'error' => 'لم يتم إنشاء صيانة الأصل، الرجاء المحاولة مرة أخرى.',
'success' => 'تم إنشاء صيانة الأصل بنجاح.'
],
'asset_maintenance_incomplete' => 'Not Completed Yet',
'warranty' => 'Warranty',
'not_warranty' => 'Not Warranty',
'asset_maintenance_incomplete' => 'لم يكتمل بعد',
'warranty' => 'الضمان',
'not_warranty' => 'لا يوجد ضمان',
];
+5 -5
View File
@@ -1,9 +1,9 @@
<?php
return [
'title' => 'Asset Maintenance',
'asset_name' => 'Asset',
'supplier_name' => 'Supplier',
'is_warranty' => 'Warranty',
'dl_csv' => 'Download CSV'
'title' => 'صيانة الاُصل',
'asset_name' => 'الأصل',
'supplier_name' => 'المزود',
'is_warranty' => 'الضمان',
'dl_csv' => 'التنزيل كملف CSV'
];
+11 -11
View File
@@ -5,18 +5,18 @@ return array(
'about_categories' => 'تصنيفات الأصول تساعدك على ترتيب الأصول. من الأمثلة على التصنيفات &quot; مكاتب &quot;، &quot;أجهزة الكمبيوتر المحمولة &quot;، &quot;الهواتف النقالة &quot;، &quot;أجهزة لوحية &quot; وهكذا، كما يمكنك استخدام التصنيفات بأي طريقة تناسبك. ',
'asset_categories' => 'التصنيفات',
'category_name' => 'اسم التصنيف',
'checkin_email' => 'Send email to user on checkin.',
'clone' => 'Clone Category',
'checkin_email' => 'إرسال إشعار للمستخدم عند الإدخال.',
'clone' => 'نسخ التصنيف',
'create' => 'إنشاء تصنيف',
'edit' => 'Edit Category',
'eula_text' => 'Category EULA',
'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.',
'require_acceptance' => 'Require users to confirm acceptance of assets in this category.',
'required_acceptance' => 'This user will be emailed with a link to confirm acceptance of this item.',
'required_eula' => 'This user will be emailed a copy of the EULA',
'no_default_eula' => 'No primary default EULA found. Add one in Settings.',
'edit' => 'تعديل التصنيف',
'eula_text' => 'إتفاقية الإستخدام للتصنيف',
'eula_text_help' => 'يسمح لك هذا الحقل بتخصيص الاتفاقيات لأنواع معينة من الأصول. اذا كنت تمتلك اتفاقية واحدة لجميع أصولك يمكنك أن تقوم بتأشير المربع في الأسفل لاستخدام الاتفاقية الافتراضية.',
'require_acceptance' => 'مطالبة المستخدمين بتأكيد قبولهم للأصول في هذا التصنيف.',
'required_acceptance' => 'سيتم اشعار المستخدم لتأكيد قبول الأصل.',
'required_eula' => 'سيتم إشعار هذا المستخدم بإتفاقية الإستخدام',
'no_default_eula' => 'ليس هناك اي اتفاقيات إستخدام. قم باضافة واحدة من "الاعدادات".',
'update' => 'تحديث التصنيف',
'use_default_eula' => 'Use the <a href="#" data-toggle="modal" data-target="#eulaModal">primary default EULA</a> instead.',
'use_default_eula_disabled' => '<del>Use the primary default EULA instead.</del> No primary default EULA is set. Please add one in Settings.',
'use_default_eula' => 'قم باستعمال <a href="#" data-toggle="modal" data-target="#eulaModal">إتفاقية الإستخدام الإفتراضية</a>.',
'use_default_eula_disabled' => '<del>إستعمال إتفاقية الإستخدام الافتراضية بدلا من ذلك.</del> لم يتم تحديد إتفاقية الإستخدام الافتراضية. الرجاء إضافتها في الإعدادات.',
);
+2 -1
View File
@@ -3,7 +3,8 @@
return array(
'does_not_exist' => 'التصنيف غير موجود.',
'assoc_users' => 'هذا التصنيف مرتبط مع نموذج. فضلاً قم بتحديث النماذج بحيث لا تكون مرتبطة بهذا التصنيف. ',
'assoc_models' => 'This category is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this category and try again. ',
'assoc_items' => 'This category is currently associated with at least one :asset_type and cannot be deleted. Please update your :asset_type to no longer reference this category and try again. ',
'create' => array(
'error' => 'فشل إنشاء التصنيف، فضلاً حاول مرة أخرى.',
+2 -2
View File
@@ -1,10 +1,10 @@
<?php
return array(
'eula_text' => 'EULA',
'eula_text' => 'اتفاقية ترخيص المستخدم',
'id' => 'الرقم',
'parent' => 'التصنيف الأب',
'require_acceptance' => 'Acceptance',
'require_acceptance' => 'القبول',
'title' => 'اسم التصنيف',
);
+4
View File
@@ -0,0 +1,4 @@
<?php
return [
'select_company' => 'اختر الشركة',
];
+18
View File
@@ -0,0 +1,18 @@
<?php
return array(
'does_not_exist' => 'الشركة غير موجودة.',
'assoc_users' => 'هذه الشركة مرتبطة حاليا مع نموذج ولا يمكن حذفها. رجاءً قم بتحديث النماذج بحيث لا تكون مرتبطة بهذه الشركة ثم حاول مرة اُخرى. ',
'create' => array(
'error' => 'لم يتم انشاء الشركة، رجاءً حاول مرة اُخرى.',
'success' => 'تم إنشاء الشركة بنجاح.'
),
'update' => array(
'error' => 'لم يتم تحديث الشركة، رجاءً حاول مرة اُخرى',
'success' => 'تم تحديث الشركة بنجاح.'
),
'delete' => array(
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذه الشركة؟',
'error' => 'حدثت مشكلة اثناء عملية حذف الشركة. رجاءً المحاولة مرة اُخرى.',
'success' => 'تم حذف الشركة بنجاح.'
)
);
+9
View File
@@ -0,0 +1,9 @@
<?php
return array(
'companies' => 'الشركات',
'create' => 'إنشاء شركة',
'title' => 'شركة',
'update' => 'تحديث الشركة',
'name' => 'إسم الشركة',
'id' => 'رقم التعريف',
);
+17
View File
@@ -0,0 +1,17 @@
<?php
return array(
'about_components_title' => 'حول المكونات',
'about_components_text' => 'المكونات هي العناصر التي تشكل جزءا من الأصل، على سبيل المثال القرص الصلب، ذاكرة الوصول العشوائي، إلخ.',
'component_name' => 'اسم المكون',
'checkin' => 'ادخالات المكونات',
'checkout' => 'مخرجات المكونات',
'cost' => 'تكلفة الشراء',
'create' => 'إنشاء مكون',
'edit' => 'تعديل مكون',
'date' => 'تاريخ الشراء',
'order' => 'رقم طلب الشراء',
'remaining' => 'المتبقية',
'total' => 'المجموع',
'update' => 'تحديث مكون',
);
+36
View File
@@ -0,0 +1,36 @@
<?php
return array(
'does_not_exist' => 'المكون غير موجود.',
'create' => array(
'error' => 'لم يتم إنشاء المكون، الرجاء المحاولة مرة أخرى.',
'success' => 'تم إنشاء المكون بنجاح.'
),
'update' => array(
'error' => 'لم يتم تحديث المكون، الرجاء المحاولة مرة أخرى',
'success' => 'تم تحديث المكون بنجاح.'
),
'delete' => array(
'confirm' => 'هل أنت متأكد من رغبتك في حذف هذا المكون؟',
'error' => 'حدثت مشكلة اثناء عملية حذف المكون. رجاءً المحاولة مرة اُخرى.',
'success' => 'تم حذف المكون بنجاح.'
),
'checkout' => array(
'error' => 'لم تتم عملة اخراج المكون، الرجاء المحاولة مرة اخرى',
'success' => 'تم إخراج المكون بنجاح.',
'user_does_not_exist' => 'هذا المستخدم خاطئ، الرجاء المحاولة مرة أخرى.'
),
'checkin' => array(
'error' => 'لم تتم عملية اخراج المكون، الرجاء المحاولة مرة اخرى',
'success' => 'تم إدخال المكون بنجاح.',
'user_does_not_exist' => 'هذا المستخدم خاطئ، الرجاء المحاولة مرة أخرى.'
)
);
+5
View File
@@ -0,0 +1,5 @@
<?php
return array(
'title' => 'اسم المكون',
);
+11 -10
View File
@@ -1,14 +1,15 @@
<?php
return array(
'about_consumables_title' => 'About Consumables',
'about_consumables_text' => 'Consumables are anything purchased that will be used up over time. For example, printer ink or copier paper.',
'consumable_name' => 'Consumable Name',
'cost' => 'Purchase Cost',
'create' => 'Create Consumable',
'date' => 'Purchase Date',
'order' => 'Order Number',
'remaining' => 'Remaining',
'total' => 'Total',
'update' => 'Update Consumable',
'about_consumables_title' => 'حول المواد الاستهلاكية',
'about_consumables_text' => 'المواد الاستهلاكية هي الأشياء المشتراة والتي ستستخدم مع مرور الوقت. على سبيل المثال، حبر الطابعة أو ورق الناسخة.',
'consumable_name' => 'اسم المادة الإستهلاكية',
'cost' => 'تكلفة الشراء',
'create' => 'إنشاء مادة إستهلاكية',
'date' => 'تاريخ الشراء',
'item_no' => 'Item No.',
'order' => 'رقم طلب الشراء',
'remaining' => 'المتبقية',
'total' => 'المجموع',
'update' => 'تحديث المادة الإستهلاكية',
);
View File
View File
@@ -0,0 +1,23 @@
<?php
return array(
'custom_fields' => 'Custom Fields',
'field' => 'Field',
'about_fieldsets_title' => 'About Fieldsets',
'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used used for specific asset model types.',
'fieldset' => 'Fieldset',
'qty_fields' => 'Qty Fields',
'fieldsets' => 'Fieldsets',
'fieldset_name' => 'Fieldset Name',
'field_name' => 'Field Name',
'field_element' => 'Form Element',
'field_element_short' => 'Element',
'field_format' => 'Format',
'field_custom_format' => 'Custom Format',
'required' => 'Required',
'req' => 'Req.',
'used_by_models' => 'Used By Models',
'order' => 'Order',
'create_fieldset' => 'New Fieldset',
'create_field' => 'New Custom Field',
);
@@ -0,0 +1,57 @@
<?php
return array(
'field' => array(
'invalid' => 'That field does not exist.',
'already_added' => 'Field already added',
'create' => array(
'error' => 'Field was not created, please try again.',
'success' => 'Field created successfully.',
'assoc_success' => 'Field successfully added to fieldset.'
),
'update' => array(
'error' => 'Field was not updated, please try again',
'success' => 'Field updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this field?',
'error' => 'There was an issue deleting the field. Please try again.',
'success' => 'The field was deleted successfully.',
'in_use' => 'Field is still in use.',
)
),
'fieldset' => array(
'create' => array(
'error' => 'Fieldset was not created, please try again.',
'success' => 'Fieldset created successfully.'
),
'update' => array(
'error' => 'Fieldset was not updated, please try again',
'success' => 'Fieldset updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this fieldset?',
'error' => 'There was an issue deleting the fieldset. Please try again.',
'success' => 'The fieldset was deleted successfully.',
'in_use' => 'Fieldset is still in use.',
)
),
);
View File
View File
View File
View File
View File
View File
View File
View File
+9 -1
View File
@@ -36,6 +36,12 @@ return array(
'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.',
),
'import' => array(
'error' => 'Some Items did not import Correctly.',
'errorDetail' => 'The Following Items were not imported because of errors.',
'success' => "Your File has been imported",
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this asset?',
@@ -52,7 +58,9 @@ return array(
'checkin' => array(
'error' => 'Asset was not checked in, please try again',
'success' => 'Asset checked in successfully.',
'user_does_not_exist' => 'That user is invalid.. Please try again.'
'user_does_not_exist' => 'That user is invalid. Please try again.',
'already_checked_in' => 'That asset is already checked in.',
),
'requests' => array(
View File
View File
View File
View File
View File
View File
+1 -1
View File
@@ -1,7 +1,7 @@
<?php
return array(
'assets_rtd' => 'Assets RTD',
'assets_rtd' => 'Assets', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted.
'assets_checkedout' => 'Assets Assigned',
'id' => 'ID',
'city' => 'City',
View File
View File
View File
View File
View File
View File
View File
+32 -3
View File
@@ -2,23 +2,30 @@
return array(
'alert_email' => 'Send alerts to',
'alerts_enabled' => 'Alerts enabled',
'alerts_enabled' => 'Alerts Enabled',
'alert_interval' => 'Expiring Alerts Threshold (in days)',
'alert_inv_threshold' => 'Inventory Alert Threshold',
'asset_ids' => 'Asset IDs',
'auto_increment_assets' => 'Generate auto-incrementing asset IDs',
'auto_increment_prefix' => 'Prefix (optional)',
'auto_incrementing_help' => 'Enable auto-incrementing asset IDs first to set this',
'backups' => 'Backups',
'barcode_type' => 'Barcode Type',
'barcode_settings' => 'Barcode Settings',
'confirm_purge' => 'Confirm Purge',
'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone.',
'custom_css' => 'Custom CSS',
'custom_css_help' => 'Enter any custom CSS overrides you would like to use. Do not include the &lt;style&gt;&lt;/style&gt; tags.',
'default_currency' => 'Default Currency',
'default_eula_text' => 'Default EULA',
'default_language' => 'Default Language',
'default_eula_help_text' => 'You can also associate custom EULAs to specific asset categories.',
'display_asset_name' => 'Display Asset Name',
'display_checkout_date' => 'Display Checkout Date',
'display_eol' => 'Display EOL in table view',
'display_qr' => 'Display QR Codes',
'display_qr' => 'Display Square Codes',
'display_alt_barcode' => 'Display 2D barcode',
'barcode_type' => '3D Barcode Type',
'alt_barcode_type' => '2D barcode type',
'eula_settings' => 'EULA Settings',
'eula_markdown' => 'This EULA allows <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'general_settings' => 'General Settings',
@@ -72,4 +79,26 @@ return array(
'brand' => 'Branding',
'about_settings_title' => 'About Settings',
'about_settings_text' => 'These settings let you customize certain aspects of your installation.',
'labels_per_page' => 'Labels per page',
'label_dimensions' => 'Label dimensions (inches)',
'page_padding' => 'Page margins (inches)',
'purge' => 'Purge Deleted Records',
'labels_display_bgutter' => 'Label bottom gutter',
'labels_display_sgutter' => 'Label side gutter',
'labels_fontsize' => 'Label font size',
'labels_pagewidth' => 'Label sheet width',
'labels_pageheight' => 'Label sheet height',
'label_gutters' => 'Label spacing (inches)',
'page_dimensions' => 'Page dimensions (inches)',
'label_fields' => 'Label visible fields',
'inches' => 'inches',
'width_w' => 'w',
'height_h' => 'h',
'text_pt' => 'pt',
'left' => 'left',
'right' => 'right',
'top' => 'top',
'bottom' => 'bottom',
'vertical' => 'vertical',
'horizontal' => 'horizontal',
);
+5
View File
@@ -13,5 +13,10 @@ return array(
'generated' => 'A new backup file was successfully created.',
'file_not_found' => 'That backup file could not be found on the server.',
),
'purge' => array(
'error' => 'An error has occurred while purging. ',
'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.',
'success' => 'Deleted records successfully purged.'
),
);
+9 -9
View File
@@ -2,24 +2,24 @@
return array(
'does_not_exist' => 'Location does not exist.',
'assoc_users' => 'This location is currently associated with at least one user and cannot be deleted. Please update your users to no longer reference this location and try again. ',
'does_not_exist' => 'Status Label does not exist.',
'assoc_assets' => 'This Status Label is currently associated with at least one Asset and cannot be deleted. Please update your assets to no longer reference this status and try again. ',
'create' => array(
'error' => 'Location was not created, please try again.',
'success' => 'Location created successfully.'
'error' => 'Status Label was not created, please try again.',
'success' => 'Status Label created successfully.'
),
'update' => array(
'error' => 'Location was not updated, please try again',
'success' => 'Location updated successfully.'
'error' => 'Status Label was not updated, please try again',
'success' => 'Status Label updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this status label?',
'error' => 'There was an issue deleting the location. Please try again.',
'success' => 'The location was deleted successfully.'
'confirm' => 'Are you sure you wish to delete this Status Label?',
'error' => 'There was an issue deleting the Status Label. Please try again.',
'success' => 'The Status Label was deleted successfully.'
)
);
View File
View File
View File
+2 -2
View File
@@ -4,14 +4,14 @@
return array(
'assets_user' => 'الجهاز مسجل بعهدة :name',
'current_assets' => 'Assets currently checked out to this user',
'clone' => 'نسخ المستخدم',
'contact_user' => 'اتصل بـ :name',
'edit' => 'تعديل المستخدم',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'history_user' => 'الأرشيف الخاص بـ :name',
'last_login' => 'آخر دخول للمستخدم',
'ldap_config_text' => 'LDAP configuration settings can be found in the app/config folder in a file called ldap.php. The selected location will be set for all imported users. You will need to have at least one location set to use this feature.',
'ldap_text' => 'Connect to LDAP and create users. Passwords will be auto-generated.',
'ldap_config_text' => 'LDAP configuration settings can be found Admin > Settings. The (optional) selected location will be set for all imported users.',
'software_user' => 'البرامج المسجلة لـ :name',
'view_user' => 'عرض المستخدم :name',
'usercsv' => 'ملف CSV',
View File
View File
+12
View File
@@ -0,0 +1,12 @@
<?php
return [
'send_password_link' => 'Send Password Reset Link',
'email_reset_password' => 'Email Password Reset',
'reset_password' => 'Reset Password',
'login' => 'Login',
'login_prompt' => 'Please Login',
'forgot_password' => 'I forgot my password',
'remember_me' => 'Remember Me',
];
Executable → Regular
View File
Executable → Regular
+10 -9
View File
@@ -2,14 +2,15 @@
return array(
'actions' => 'الإجراءات',
'add' => 'Add New',
'cancel' => 'Cancel',
'delete' => 'حذف',
'edit' => 'تعديل',
'restore' => 'إستعادة',
'request' => 'Request',
'submit' => 'إرسال',
'upload' => 'Upload',
'actions' => 'الإجراءات',
'add' => 'Add New',
'cancel' => 'Cancel',
'checkin_and_delete' => 'Checkin & Delete User',
'delete' => 'حذف',
'edit' => 'تعديل',
'restore' => 'إستعادة',
'request' => 'Request',
'submit' => 'إرسال',
'upload' => 'Upload',
);
Executable → Regular
+19
View File
@@ -2,6 +2,7 @@
return [
'accessories' => 'Accessories',
'activated' => 'Activated',
'accessory' => 'Accessory',
'accessory_report' => 'Accessory Report',
'action' => 'Action',
@@ -33,6 +34,8 @@
'city' => 'المدينة',
'companies' => 'Companies',
'company' => 'Company',
'component' => 'Component',
'components' => 'Components',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'الدولة',
@@ -53,13 +56,20 @@
'depreciation' => 'الإستهلاك',
'editprofile' => 'تعديل الملف الشخصي',
'eol' => 'الحياة',
'email_domain' => 'Email Domain',
'email_format' => 'Email Format',
'email_domain_help' => 'This is used to generate email addresses when importing',
'filastname_format' => 'First Initial Last Name (jsmith@example.com)',
'firstname_lastname_format' => 'First Name Last Name (jane.smith@example.com)',
'first' => 'First',
'first_name' => 'الإسم الأول',
'first_name_format' => 'First Name (jane@example.com)',
'file_name' => 'File',
'file_uploads' => 'File Uploads',
'generate' => 'Generate',
'groups' => 'المجموعات',
'gravatar_email' => 'البريد الإلكتروني لخدمة Gravatar',
'history' => 'History',
'history_for' => 'السجل لـ',
'id' => 'الرقم',
'image_delete' => 'حذف الصورة',
@@ -70,6 +80,7 @@
'asset_maintenances' => 'Asset Maintenances',
'item' => 'Item',
'insufficient_permissions' => 'Insufficient permissions!',
'language' => 'Language',
'last' => 'Last',
'last_name' => 'الإسم الأخير',
'license' => 'الرخص',
@@ -83,8 +94,12 @@
'location' => 'الموقع',
'locations' => 'المواقع',
'logout' => 'تسجيل خروج',
'lookup_by_tag' => 'Lookup by Asset Tag',
'manufacturer' => 'الشركة المصنعة',
'manufacturers' => 'الشركات المصنعة',
'markdown' => 'This field allows <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
'min_amt' => 'Min. QTY',
'min_amt_help' => 'Minimum number of items that should be available before an alert gets triggered.',
'model_no' => 'رقم الموديل',
'months' => 'أشهر',
'moreinfo' => 'المزيد من المعلومات',
@@ -120,6 +135,8 @@
'select_user' => 'Select a User',
'select_date' => 'Select Date',
'select_statuslabel' => 'Select Status',
'select_company' => 'Select Company',
'select_asset' => 'Select Asset',
'settings' => 'الإعدادات',
'sign_in' => 'تسجيل الدخول',
'site_name' => 'إسم الموقع',
@@ -132,6 +149,7 @@
'type' => 'Type',
'undeployable' => 'غير قابلة للتوزيع',
'unknown_admin' => 'إداري غير معروف',
'username_format' => 'Username Format',
'update' => 'Update',
'uploaded' => 'Uploaded',
'user' => 'المستخدم',
@@ -146,4 +164,5 @@
'yes' => 'نعم',
'zip' => 'الرمز البريدي',
'noimage' => 'No image uploaded or image not found.',
'token_expired' => 'Your form session has expired. Please try again.',
];
Executable → Regular
View File
+7
View File
@@ -0,0 +1,7 @@
<?php
return [
'sent' => 'Your password link has been sent!',
'user' => 'That user does not exist or does not have an email address associated',
];
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
+1
View File
@@ -33,6 +33,7 @@ return array(
"digits_between" => "The :attribute must be between :min and :max digits.",
"email" => "The :attribute format is invalid.",
"exists" => "The selected :attribute is invalid.",
"email_array" => "One or more email addresses is invalid.",
"image" => "The :attribute must be an image.",
"in" => "The selected :attribute is invalid.",
"integer" => "The :attribute must be an integer.",
+3
View File
@@ -6,8 +6,11 @@ return array(
'accessory_category' => 'Категория аксесоари',
'accessory_name' => 'Аксесоар',
'cost' => 'Стойност на закупуване',
'checkout' => 'Checkout Accessory',
'checkin' => 'Checkin Accessory',
'create' => 'Създаване на аксесоар',
'date' => 'Дата на закупуване',
'edit' => 'Edit Accessory',
'eula_text' => 'EULA на категорията',
'eula_text_help' => 'Това поле позволява да задавате различни EULA за всеки тип активи. Ако имате обща EULA за всички активи, можете да използвате кутийката по-долу за да използвате една обща по подразбиране.',
'require_acceptance' => 'Задължаване на потребителите да потвърждават приемането на активи от тази категория.',
+3 -3
View File
@@ -16,9 +16,9 @@ return array(
),
'delete' => array(
'confirm' => 'Сигурни ли сте, че желаете изтриване на категорията?',
'error' => 'Проблем при изтриване на категорията. Моля опитайте отново.',
'success' => 'Категорията бе изтрита успешно.'
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the accessory. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
View File
View File
View File
View File
View File
View File
+2 -1
View File
@@ -3,7 +3,8 @@
return array(
'does_not_exist' => 'Категорията не съществува.',
'assoc_users' => 'Тази категория е асоциирана с поне един модел и не може да бъде изтрита. Моля обновете връзките с моделите и опитайте отново.',
'assoc_models' => 'This category is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this category and try again. ',
'assoc_items' => 'This category is currently associated with at least one :asset_type and cannot be deleted. Please update your :asset_type to no longer reference this category and try again. ',
'create' => array(
'error' => 'Категорията не беше създадена. Моля опитайте отново.',
View File
+4
View File
@@ -0,0 +1,4 @@
<?php
return [
'select_company' => 'Изберете компания',
];
+18
View File
@@ -0,0 +1,18 @@
<?php
return array(
'does_not_exist' => 'Компанията не съществува.',
'assoc_users' => 'This company is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this company and try again. ',
'create' => array(
'error' => 'Company was not created, please try again.',
'success' => 'Company created successfully.'
),
'update' => array(
'error' => 'Company was not updated, please try again',
'success' => 'Company updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this company?',
'error' => 'There was an issue deleting the company. Please try again.',
'success' => 'The Company was deleted successfully.'
)
);
+9
View File
@@ -0,0 +1,9 @@
<?php
return array(
'companies' => 'Компании',
'create' => 'Създаване на компания',
'title' => 'Компания',
'update' => 'Редакция на комания',
'name' => 'Име на компания',
'id' => 'ID',
);
+17
View File
@@ -0,0 +1,17 @@
<?php
return array(
'about_components_title' => 'About Components',
'about_components_text' => 'Components are items that are part of an asset, for example HDD, RAM, etc.',
'component_name' => 'Component Name',
'checkin' => 'Checkin Component',
'checkout' => 'Checkout Component',
'cost' => 'Purchase Cost',
'create' => 'Create Component',
'edit' => 'Edit Component',
'date' => 'Purchase Date',
'order' => 'Order Number',
'remaining' => 'Remaining',
'total' => 'Total',
'update' => 'Update Component',
);
+36
View File
@@ -0,0 +1,36 @@
<?php
return array(
'does_not_exist' => 'Component does not exist.',
'create' => array(
'error' => 'Component was not created, please try again.',
'success' => 'Component created successfully.'
),
'update' => array(
'error' => 'Component was not updated, please try again',
'success' => 'Component updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this component?',
'error' => 'There was an issue deleting the component. Please try again.',
'success' => 'The component was deleted successfully.'
),
'checkout' => array(
'error' => 'Component was not checked out, please try again',
'success' => 'Component checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Component was not checked in, please try again',
'success' => 'Component checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
+5
View File
@@ -0,0 +1,5 @@
<?php
return array(
'title' => 'Component Name',
);
+1
View File
@@ -7,6 +7,7 @@ return array(
'cost' => 'Стойност на закупуване',
'create' => 'Създаване на консуматив',
'date' => 'Дата на закупуване',
'item_no' => 'Item No.',
'order' => 'Номер на поръчка',
'remaining' => 'Остава',
'total' => 'Oбщо',
View File
View File

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