Compare commits

..

16 Commits

Author SHA1 Message Date
snipe a5b2dbfaf0 Merge remote-tracking branch 'origin/develop' 2015-07-23 12:33:26 -07:00
snipe e455b2af6e Only update email if password locking isn't set to true 2015-07-23 12:30:44 -07:00
snipe d26c40b26e Fixed issue where email not saved on edit 2015-07-23 12:28:26 -07:00
snipe abb970fe39 Merge remote-tracking branch 'origin/develop' 2015-07-17 16:25:55 -07:00
snipe f8ecbed829 Added purchase date to importer 2015-07-17 16:25:20 -07:00
snipe 9ac093e0be Merge remote-tracking branch 'origin/develop' 2015-07-17 14:18:20 -07:00
snipe 38c9d8d6ca Added notes/order number to asset view 2015-07-17 14:18:08 -07:00
snipe 4557502b1d Added notes/order number to controller 2015-07-17 14:15:08 -07:00
snipe b85d972488 Added mod rewrite to force SSL 2015-07-16 20:32:10 -07:00
snipe 61e16a4668 Merge remote-tracking branch 'origin/develop' 2015-07-16 16:25:15 -07:00
snipe e447159d4a Added checks for missing fields, added email column, asset notes 2015-07-16 16:23:35 -07:00
snipe b191406a0c Ignore couscous 2015-07-16 14:58:22 -07:00
snipe dacbdd9aa5 Delete book.json 2015-07-10 19:46:17 -07:00
snipe e1eb2da5f3 Create book.json 2015-07-09 13:32:26 -07:00
snipe f5d4eb5842 Merge pull request #897 from madd15/patch-2
Fix #896 - Only show Checkout/Checkin if deployable
2015-07-09 01:19:57 -07:00
madd15 a22687abc5 Fix #896 - Only show Checkout/Checkin if deployable 2015-07-07 14:38:28 +09:30
367 changed files with 1595 additions and 9567 deletions
+2 -4
View File
@@ -7,7 +7,6 @@ composer.phar
/app/database/*.sqlite
/app/storage/meta/services.json
/app/config/*/mail.php
/app/config/*/session.php
/app/config/*/database.php
/app/config/*/app.php
public/packages/*
@@ -23,6 +22,5 @@ public/uploads/logo.gif
public/uploads/logo.png
.siteflow
public/assets/.siteflow
.settings/settings.json
app/config/local/session.php
.couscous
+9 -36
View File
@@ -18,7 +18,7 @@ class AppCommand extends Command
*
* @var string
*/
protected $description = 'This command kicks off your database table creation and migration, and creates your first admin user.';
protected $description = '';
/**
* Holds the user information.
@@ -28,7 +28,7 @@ class AppCommand extends Command
protected $userData = array(
'first_name' => null,
'last_name' => null,
'username' => null,
'email' => null,
'password' => null
);
@@ -66,7 +66,7 @@ class AppCommand extends Command
// Let's ask the user some questions, shall we?
$this->askUserFirstName();
$this->askUserLastName();
$this->askUserUsername();
$this->askUserEmail();
$this->askUserPassword();
$this->askUserDummyData();
@@ -162,7 +162,7 @@ class AppCommand extends Command
}
/**
* Asks the user for the username address.
* Asks the user for the user email address.
*
* @return void
* @todo Use the Laravel Validator
@@ -171,7 +171,7 @@ class AppCommand extends Command
{
do {
// Ask the user to input the email address
$email = $this->ask('Please enter your email: ');
$email = $this->ask('Please enter your user email: ');
// Check if email is valid
if ($email == '') {
@@ -185,32 +185,6 @@ class AppCommand extends Command
while ( ! $email);
}
/**
* Asks the user for the username address.
*
* @return void
* @todo Use the Laravel Validator
*/
protected function askUserUsername()
{
do {
// Ask the user to input the username
$username = $this->ask('Please enter your username: ');
// Check if username is valid
if ($username == '') {
// Return an error message
$this->error('Username is invalid. Please try again.');
}
// Store the username address
$this->userData['username'] = $username;
}
while ( ! $username);
}
/**
* Asks the user for the user password.
*
@@ -223,7 +197,7 @@ class AppCommand extends Command
// Ask the user to input the user password
$password = $this->ask('Please enter your user password (at least 8 characters): ');
// Check if password is valid
// Check if email is valid
if ($password == '') {
// Return an error message
$this->error('Password is invalid. Please try again.');
@@ -243,9 +217,9 @@ class AppCommand extends Command
protected function askUserDummyData()
{
// Ask the user to input the user password
$dummydata = $this->ask('Do you want to seed your database with dummy data? Y/n (default is yes): ');
$dummydata = $this->ask('Do you want to seed your database with dummy data? y/n (default is yes): ');
$this->dummyData = ( strstr($dummydata, 'Y' ) || empty($dummydata) ) ? true : false;
$this->dummyData = ( strstr($dummydata, 'y' ) || empty($dummydata) ) ? true : false;
}
/**
@@ -355,7 +329,7 @@ class AppCommand extends Command
$user = Sentry::getUserProvider()->create($data);
// Associate the Admin group to this user
$group = Sentry::findGroupByName('Admin');
$group = Sentry::getGroupProvider()->findById(1);
$user->addGroup($group);
// Show the success message
@@ -376,7 +350,6 @@ class AppCommand extends Command
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john.doe@example.com',
'username' => 'john.doe@example.com',
'password' => substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', mt_rand(1,10))),1,10),
'notes' => 'Generated on install',
'activated' => 1,
+156 -67
View File
@@ -61,64 +61,150 @@ class ImportCommand extends Command {
$nbInsert = $csv->each(function ($row) use ($duplicates) {
$status_id = 1;
if (is_numeric($row[0])) {
$this->comment('User '.$row[0].' is not a name - assume this user already exists');
} elseif ($row[0]=='') {
// Let's just map some of these entries to more user friendly words
if (array_key_exists('0',$row)) {
$user_name = $row[0];
} else {
$user_name = '';
}
if (array_key_exists('1',$row)) {
$user_email = $row[1];
} else {
$user_email = '';
}
if (array_key_exists('2',$row)) {
$user_asset_category = $row[2];
} else {
$user_asset_category = '';
}
if (array_key_exists('3',$row)) {
$user_asset_name = $row[3];
} else {
$user_asset_name = '';
}
if (array_key_exists('4',$row)) {
$user_asset_mfgr = $row[4];
} else {
$user_asset_mfgr = '';
}
if (array_key_exists('5',$row)) {
$user_asset_modelno = $row[5];
} else {
$user_asset_modelno = '';
}
if (array_key_exists('6',$row)) {
$user_asset_serial = $row[6];
} else {
$user_asset_serial = '';
}
if (array_key_exists('7',$row)) {
$user_asset_tag = $row[7];
} else {
$user_asset_tag = '';
}
if (array_key_exists('8',$row)) {
$user_asset_location = $row[8];
} else {
$user_asset_location = '';
}
if (array_key_exists('9',$row)) {
$user_asset_notes = $row[9];
} else {
$user_asset_notes = '';
}
if (array_key_exists('9',$row)) {
$user_asset_purchase_date = date("Y-m-d 00:00:01", strtotime($row[10]));
} else {
$user_asset_purchase_date = '';
}
// A number was given instead of a name
if (is_numeric($user_name)) {
$this->comment('User '.$user_name.' is not a name - assume this user already exists');
// No name was given
} elseif ($user_name=='') {
$this->comment('No user data provided - skipping user creation, just adding asset');
$first_name = '';
$last_name = '';
} else {
// Generate an email based on their name
$name = explode(" ", $row[0]);
$first_name = $name[0];
$last_name = '';
$email_last_name = '';
$name = explode(" ", $user_name);
$first_name = $name[0];
$email_last_name = '';
if ($first_name=='Unknown') {
$status_id = 7;
}
if (!array_key_exists(1, $name)) {
$last_name='';
$email_last_name = $last_name;
$email_prefix = $first_name;
} else {
$last_name = str_replace($first_name,'',$user_name);
if (!array_key_exists(1, $name)) {
$last_name='';
$email_last_name = $last_name;
$email_prefix = $first_name;
} else {
// Loop through the rest of the explode so you don't truncate
for ($x=0; $x < count($name); $x++) {
if (($x > 0) && ($name[$x]!='')) {
$last_name.=' '.$name[$x];
$email_last_name.=$name[$x];
if ($this->option('email_format')=='filastname') {
$email_last_name.=str_replace(' ','',$last_name);
$email_prefix = $first_name[0].$email_last_name;
} elseif ($this->option('email_format')=='firstname.lastname') {
$email_last_name.=str_replace(' ','',$last_name);
$email_prefix = $first_name.'.'.$email_last_name;
} elseif ($this->option('email_format')=='firstname') {
$email_last_name.=str_replace(' ','',$last_name);
$email_prefix = $first_name;
}
}
$email_prefix = $first_name[0].$email_last_name;
}
$email = strtolower(str_replace('.','',$email_prefix)).'@'.$this->option('domain');
$email = str_replace("'",'',$email);
// Generate an email based on their name if no email address is given
if ($user_email=='') {
if ($first_name=='Unknown') {
$status_id = 7;
}
$email = strtolower($email_prefix).'@'.$this->option('domain');
$user_email = str_replace("'",'',$email);
}
$this->comment('Full Name: '.$row[0]);
$this->comment('First Name: '.$first_name);
$this->comment('Last Name: '.$last_name);
$this->comment('Email: '.$email);
$this->comment('Category Name: '.$row[1]);
$this->comment('Item: '.$row[2]);
$this->comment('Manufacturer ID: '.$row[3]);
$this->comment('Model No: '.$row[4]);
$this->comment('Serial No: '.$row[5]);
$this->comment('Asset Tag: '.$row[6]);
$this->comment('Location: '.$row[7]);
}
$this->comment('Full Name: '.$user_name);
$this->comment('First Name: '.$first_name);
$this->comment('Last Name: '.$last_name);
$this->comment('Email: '.$user_email);
$this->comment('Category Name: '.$user_asset_category);
$this->comment('Item: '.$user_asset_name);
$this->comment('Manufacturer ID: '.$user_asset_mfgr);
$this->comment('Model No: '.$user_asset_modelno);
$this->comment('Serial No: '.$user_asset_serial);
$this->comment('Asset Tag: '.$user_asset_tag);
$this->comment('Location: '.$user_asset_location);
$this->comment('Purchase Date: '.$user_asset_purchase_date);
$this->comment('Notes: '.$user_asset_notes);
$this->comment('------------- Action Summary ----------------');
if (isset($email)) {
if ($user = User::where('email', $email)->first()) {
$this->comment('User '.$email.' already exists');
if ($user_email!='') {
if ($user = User::where('email', $user_email)->first()) {
$this->comment('User '.$user_email.' already exists');
} else {
// Create the user
$user = Sentry::createUser(array(
'first_name' => $first_name,
'last_name' => $last_name,
'email' => $email,
'email' => $user_email,
'password' => substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 10),
'activated' => true,
'permissions' => array(
@@ -140,11 +226,11 @@ class ImportCommand extends Command {
}
// Check for the location match and create it if it doesn't exist
if ($location = Location::where('name', $row[7])->first()) {
$this->comment('Location '.$row[7].' already exists');
if ($location = Location::where('name', $user_asset_location)->first()) {
$this->comment('Location '.$user_asset_location.' already exists');
} else {
$location = new Location();
$location->name = e($row[7]);
$location->name = e($user_asset_location);
$location->address = '';
$location->city = '';
$location->state = '';
@@ -154,65 +240,65 @@ class ImportCommand extends Command {
if (!$this->option('testrun')=='true') {
if ($location->save()) {
$this->comment('Location '.$row[7].' was created');
$this->comment('Location '.$user_asset_location.' was created');
} else {
$this->comment('Something went wrong! Location '.$row[1].' was NOT created');
$this->comment('Something went wrong! Location '.$user_asset_location.' was NOT created');
}
} else {
$this->comment('Location '.$row[7].' was (not) created - test run only');
$this->comment('Location '.$user_asset_location.' was (not) created - test run only');
}
}
// Check for the category match and create it if it doesn't exist
if ($category = Category::where('name', $row[1])->where('category_type', 'asset')->first()) {
$this->comment('Category '.$row[1].' already exists');
if ($category = Category::where('name', $user_asset_category)->where('category_type', 'asset')->first()) {
$this->comment('Category '.$user_asset_category.' already exists');
} else {
$category = new Category();
$category->name = e($row[1]);
$category->name = e($user_asset_category);
$category->category_type = 'asset';
$category->user_id = 1;
if ($category->save()) {
$this->comment('Category '.$row[1].' was created');
$this->comment('Category '.$user_asset_category.' was created');
} else {
$this->comment('Something went wrong! Category '.$row[1].' was NOT created');
$this->comment('Something went wrong! Category '.$user_asset_category.' was NOT created');
}
}
// Check for the manufacturer match and create it if it doesn't exist
if ($manufacturer = Manufacturer::where('name', $row[3])->first()) {
$this->comment('Manufacturer '.$row[3].' already exists');
if ($manufacturer = Manufacturer::where('name', $user_asset_mfgr)->first()) {
$this->comment('Manufacturer '.$user_asset_mfgr.' already exists');
} else {
$manufacturer = new Manufacturer();
$manufacturer->name = e($row[3]);
$manufacturer->name = e($user_asset_mfgr);
$manufacturer->user_id = 1;
if ($manufacturer->save()) {
$this->comment('Manufacturer '.$row[3].' was created');
$this->comment('Manufacturer '.$user_asset_mfgr.' was created');
} else {
$this->comment('Something went wrong! Manufacturer '.$row[3].' was NOT created');
$this->comment('Something went wrong! Manufacturer '.$user_asset_mfgr.' was NOT created');
}
}
// Check for the asset model match and create it if it doesn't exist
if ($asset_model = Model::where('name', $row[2])->where('modelno', $row[4])->where('category_id', $category->id)->where('manufacturer_id', $manufacturer->id)->first()) {
$this->comment('The Asset Model '.$row[2].' with model number '.$row[4].' already exists');
if ($asset_model = Model::where('name', $user_asset_name)->where('modelno', $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');
} else {
$asset_model = new Model();
$asset_model->name = e($row[2]);
$asset_model->name = e($user_asset_name);
$asset_model->manufacturer_id = $manufacturer->id;
$asset_model->modelno = e($row[4]);
$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 '.$row[2].' with model number '.$row[4].' was created');
$this->comment('Asset Model '.$user_asset_name.' with model number '.$user_asset_modelno.' was created');
} else {
$this->comment('Something went wrong! Asset Model '.$row[2].' was NOT created');
$this->comment('Something went wrong! Asset Model '.$user_asset_name.' was NOT created');
}
}
@@ -220,19 +306,21 @@ class ImportCommand extends Command {
// Check for the asset match and create it if it doesn't exist
$asset = new Asset();
$asset->name = e($row[2]);
$asset->serial = e($row[5]);
$asset->asset_tag = e($row[6]);
$asset->name = e($user_asset_name);
$asset->serial = e($user_asset_serial);
$asset->asset_tag = e($user_asset_tag);
$asset->model_id = $asset_model->id;
$asset->assigned_to = $user->id;
$asset->rtd_location_id = $location->id;
$asset->user_id = 1;
$asset->status_id = $status_id;
$asset->purchase_date = $user_asset_purchase_date;
$asset->notes = e($user_asset_notes);
if ($asset->save()) {
$this->comment('Asset '.$row[2].' with serial number '.$row[5].' was created');
$this->comment('Asset '.$user_asset_name.' with serial number '.$user_asset_serial.' was created');
} else {
$this->comment('Something went wrong! Asset '.$row[5].' was NOT created');
$this->comment('Something went wrong! Asset '.$user_asset_name.' was NOT created');
}
@@ -267,6 +355,7 @@ class ImportCommand extends Command {
{
return array(
array('domain', null, InputOption::VALUE_REQUIRED, 'Email domain for generated email addresses.', null),
array('email_format', null, InputOption::VALUE_REQUIRED, 'The format of the email addresses that should be generated. Options are firstname.lastname, firstname, filastname', null),
array('testrun', null, InputOption::VALUE_REQUIRED, 'Test the output without writing to the database or not.', null),
);
}
+28 -64
View File
@@ -37,94 +37,58 @@ class SendExpirationAlerts extends Command {
*/
public function fire()
{
// Expiring Assets
$expiring_assets = Asset::getExpiringWarrantee(60);
$this->info(count($expiring_assets).' expiring assets');
$asset_data['count'] = count($expiring_assets);
$asset_data['email_content'] ='';
$now = date("Y-m-d");
$data['count'] = count($expiring_assets);
$data['email_content'] ='';
foreach ($expiring_assets as $asset) {
$now = date("Y-m-d");
$expires = $asset->warrantee_expires();
$difference = round(abs(strtotime($expires) - strtotime($now))/86400);
if ($difference > 30) {
$asset_data['email_content'] .= '<tr style="background-color: #fcffa3;">';
$data['email_content'] .= '<tr style="background-color: #fcffa3;">';
} else {
$asset_data['email_content'] .= '<tr style="background-color:#d9534f;">';
$data['email_content'] .= '<tr style="background-color:#d9534f;">';
}
$asset_data['email_content'] .= '<td><a href="'.Config::get('app.url').'/hardware/'.$asset->id.'/view">';
$asset_data['email_content'] .= $asset->showAssetName().'</a></td><td>'.$asset->asset_tag.'</td>';
$asset_data['email_content'] .= '<td>'.$asset->warrantee_expires().'</td>';
$asset_data['email_content'] .= '<td>'.$difference.' days</td>';
$asset_data['email_content'] .= '</tr>';
$data['email_content'] .= '<td><a href="'.Config::get('app.url').'/hardware/'.$asset->id.'/view">';
$data['email_content'] .= $asset->name.'</a></td><td>'.$asset->asset_tag.'</td>';
$data['email_content'] .= '<td>'.$asset->warrantee_expires().'</td>';
$data['email_content'] .= '<td>'.$difference.' days</td>';
$data['email_content'] .= '</tr>';
}
// Expiring licenses
$expiring_licenses = License::getExpiringLicenses(60);
$this->info(count($expiring_licenses).' expiring licenses');
$license_data['count'] = count($expiring_licenses);
$license_data['email_content'] = '';
foreach ($expiring_licenses as $license) {
$expires = $license->expiration_date;
$difference = round(abs(strtotime($expires) - strtotime($now))/86400);
if ($difference > 30) {
$license_data['email_content'] .= '<tr style="background-color: #fcffa3;">';
} else {
$license_data['email_content'] .= '<tr style="background-color:#d9534f;">';
}
$license_data['email_content'] .= '<td><a href="'.Config::get('app.url').'/admin/licenses/'.$license->id.'/view">';
$license_data['email_content'] .= $license->name.'</a></td>';
$license_data['email_content'] .= '<td>'.$license->expiration_date.'</td>';
$license_data['email_content'] .= '<td>'.$difference.' days</td>';
$license_data['email_content'] .= '</tr>';
}
if ((Setting::getSettings()->alert_email!='') && (Setting::getSettings()->alerts_enabled==1)) {
if ((Setting::getSettings()->alert_email!='') && (Setting::getSettings()->alerts_enabled==1)){
if (count($expiring_assets) > 0) {
Mail::send('emails.expiring-assets-report', $asset_data, function ($m) {
Mail::send('emails.expiring-report', $data, function ($m) {
$m->to(Setting::getSettings()->alert_email, Setting::getSettings()->site_name);
$m->subject('Expiring Assets Report');
});
});
}
if (count($expiring_licenses) > 0) {
Mail::send('emails.expiring-licenses-report', $license_data, function ($m) {
$m->to(Setting::getSettings()->alert_email, Setting::getSettings()->site_name);
$m->subject('Expiring Licenses Report');
});
}
} else {
if (Setting::getSettings()->alert_email=='') {
echo "Could not send email. No alert email configured in settings. \n";
} elseif (Setting::getSettings()->alerts_enabled!=1) {
echo "Alerts are disabled in the settings. No mail will be sent. \n";
}
}
}
}
-65
View File
@@ -1,65 +0,0 @@
<?php
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class SystemBackup extends Command {
/**
* The console command name.
*
* @var string
*/
protected $name = 'snipeit:backup';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This commandcreates a database dump and zips up all of the uploaded files in the upload directories.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{
//
$files['avatars'] = glob(public_path().'/uploads/avatars/*');
$files['models'] = glob(public_path().'/uploads/models/*');
$files['suppliers'] = glob(public_path().'/uploads/suppliers/*');
$files['private_uploads'] = glob(app_path().'/private_uploads/*');
$base_filename = date('Ymdgis');
$zip_file = app_path().'/storage/dumps/'.$base_filename.'-backup.zip';
$db_dump = Config::get('backup::path').$base_filename.'-db.sql';
$this->call('db:backup', array('filename' => $db_dump));
Zipper::make($zip_file)
->folder('avatars')->add($files['avatars'])
->folder('models')->add($files['models'])
->folder('suppliers')->add($files['suppliers'])
->folder('private_uploads')->add($files['private_uploads'])
->folder('database')->add($db_dump)->close();
$this->info('Backup file created at '.$zip_file);
$this->info('Removing SQL dump at '.$db_dump);
unlink($db_dump);
}
}
+1 -4
View File
@@ -43,7 +43,7 @@ return array(
*/
'cipher' => MCRYPT_RIJNDAEL_256,
/*
|--------------------------------------------------------------------------
| Prevent Password changes
@@ -103,8 +103,6 @@ return array(
'Chumper\Datatable\DatatableServiceProvider',
'Dinesh\Barcode\BarcodeServiceProvider',
'Maknz\Slack\SlackServiceProvider',
'Schickling\Backup\BackupServiceProvider',
'Chumper\Zipper\ZipperServiceProvider',
),
@@ -179,7 +177,6 @@ return array(
'DNS1D' => 'Dinesh\Barcode\Facades\DNS1DFacade',
'DNS2D' => 'Dinesh\Barcode\Facades\DNS2DFacade',
'Slack' => 'Maknz\Slack\Facades\Slack',
'Zipper' => 'Chumper\Zipper\Zipper',
),
@@ -134,7 +134,7 @@ return array(
|
*/
'login_attribute' => 'username',
'login_attribute' => 'email',
),
@@ -1,31 +0,0 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Trusted Proxies
|--------------------------------------------------------------------------
|
| Set an array of trusted proxies, so Laravel knows to grab the client's
| information via the X-Forwarded-* headers.
|
| To trust all proxies, use the value '*':
|
| 'proxies' => '*'
|
|
| To trust only specific proxies (recommended), set an array of those
| proxies' IP addresses:
|
| 'proxies' => array('192.168.1.1', '192.168.1.2')
|
|
| Or use CIDR notation:
|
| 'proxies' => array('192.168.12.0/23')
|
*/
'proxies' => '*',
);
@@ -1,15 +0,0 @@
<?php
return array(
'path' => storage_path() . '/dumps/',
'mysql' => array(
'dump_command_path' => '',
'restore_command_path' => '',
),
's3' => array(
'path' => ''
),
'compress' => false,
);
+1 -1
View File
@@ -26,7 +26,7 @@ return array(
|
*/
'url' => 'https://production.yourserver.com',
'url' => 'http://production.yourserver.com',
/*
|--------------------------------------------------------------------------
+2 -2
View File
@@ -1,5 +1,5 @@
<?php
return array (
'app_version' => 'v1.2.8-150',
'hash_version' => 'v1.2.8-150-g84ffc1a',
'app_version' => 'v1.2.8-26',
'hash_version' => 'v1.2.8-26-gf5d4eb5',
);
+86 -14
View File
@@ -27,7 +27,7 @@ class AuthController extends BaseController
{
// Declare the rules for the form validation
$rules = array(
'username' => 'required',
'email' => 'required|email',
'password' => 'required',
);
@@ -42,7 +42,7 @@ class AuthController extends BaseController
try {
// Try to log the user in
Sentry::authenticate(Input::only('username', 'password'), Input::get('remember-me', 0));
Sentry::authenticate(Input::only('email', 'password'), Input::get('remember-me', 0));
// Get the page we were before
$redirect = Session::get('loginRedirect', 'account');
@@ -53,19 +53,91 @@ class AuthController extends BaseController
// Redirect to the users page
return Redirect::to($redirect)->with('success', Lang::get('auth/message.signin.success'));
} catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
$this->messageBag->add('username', Lang::get('auth/message.account_not_found'));
$this->messageBag->add('email', Lang::get('auth/message.account_not_found'));
} catch (Cartalyst\Sentry\Users\UserNotActivatedException $e) {
$this->messageBag->add('username', Lang::get('auth/message.account_not_activated'));
$this->messageBag->add('email', Lang::get('auth/message.account_not_activated'));
} catch (Cartalyst\Sentry\Throttling\UserSuspendedException $e) {
$this->messageBag->add('username', Lang::get('auth/message.account_suspended'));
$this->messageBag->add('email', Lang::get('auth/message.account_suspended'));
} catch (Cartalyst\Sentry\Throttling\UserBannedException $e) {
$this->messageBag->add('username', Lang::get('auth/message.account_banned'));
$this->messageBag->add('email', Lang::get('auth/message.account_banned'));
}
// Ooops.. something went wrong
return Redirect::back()->withInput()->withErrors($this->messageBag);
}
/**
* Account sign up.
*
* @return View
*/
public function getSignup()
{
// Is the user logged in?
if (Sentry::check()) {
return Redirect::route('account');
}
// Show the page
return View::make('frontend.auth.signup');
}
/**
* Account sign up form processing.
*
* @return Redirect
*/
public function postSignup()
{
// Declare the rules for the form validation
$rules = array(
'first_name' => 'required|min:2',
'last_name' => 'required|min:2',
'email' => 'required|email|unique:users',
'email_confirm' => 'required|email|same:email',
'password' => 'required|between:10,32',
'password_confirm' => 'required|same:password',
);
// Create a new validator instance from our validation rules
$validator = Validator::make(Input::all(), $rules);
// If validation fails, we'll exit the operation now.
if ($validator->fails()) {
// Ooops.. something went wrong
return Redirect::back()->withInput()->withErrors($validator);
}
try {
// Register the user
$user = Sentry::register(array(
'first_name' => Input::get('first_name'),
'last_name' => Input::get('last_name'),
'email' => Input::get('email'),
'password' => Input::get('password'),
));
// Data to be used on the email view
$data = array(
'user' => $user,
'activationUrl' => URL::route('activate', $user->getActivationCode()),
);
// Send the activation code through email
Mail::send('emails.register-activate', $data, function ($m) use ($user) {
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
$m->subject('Welcome ' . $user->first_name);
});
// Redirect to the register page
return Redirect::back()->with('success', Lang::get('auth/message.signup.success'));
} catch (Cartalyst\Sentry\Users\UserExistsException $e) {
$this->messageBag->add('email', Lang::get('auth/message.account_already_exists'));
}
// Ooops.. something went wrong
return Redirect::back()->withInput()->withErrors($this->messageBag);
}
/**
* User account activation page.
@@ -120,7 +192,7 @@ class AuthController extends BaseController
{
// Declare the rules for the validator
$rules = array(
'username' => 'required',
'email' => 'required|email',
);
// Create a new validator instance from our dynamic rules
@@ -134,22 +206,22 @@ class AuthController extends BaseController
try {
// Get the user password recovery code
$user = Sentry::getUserProvider()->findByLogin(Input::get('username'));
$user = Sentry::getUserProvider()->findByLogin(Input::get('email'));
// Data to be used on the username view
// Data to be used on the email view
$data = array(
'user' => $user,
'forgotPasswordUrl' => URL::route('forgot-password-confirm', $user->getResetPasswordCode()),
);
// Send the activation code through username
Mail::send('usernames.forgot-password', $data, function ($m) use ($user) {
$m->to($user->username, $user->first_name . ' ' . $user->last_name);
// Send the activation code through email
Mail::send('emails.forgot-password', $data, function ($m) use ($user) {
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
$m->subject('Account Password Recovery');
});
} catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
// Even though the username was not found, we will pretend
// we have sent the password reset code through username,
// Even though the email was not found, we will pretend
// we have sent the password reset code through email,
// this is a security measure against hackers.
}
+20 -20
View File
@@ -274,20 +274,20 @@ class AccessoriesController extends AdminController
$logaction->location_id = $user->location_id;
$logaction->user_id = Sentry::getUser()->id;
$logaction->note = e(Input::get('note'));
$settings = Setting::getSettings();
if ($settings->slack_endpoint) {
$slack_settings = [
'username' => $settings->botname,
'channel' => $settings->slack_channel,
'link_names' => true
];
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
try {
$client->attach([
'color' => 'good',
@@ -301,13 +301,13 @@ class AccessoriesController extends AdminController
'value' => e($logaction->note)
],
]
])->send('Accessory Checked Out');
} catch (Exception $e) {
}
}
@@ -390,20 +390,20 @@ class AccessoriesController extends AdminController
$logaction->asset_type = 'accessory';
$logaction->user_id = $admin_user->id;
$logaction->note = e(Input::get('note'));
$settings = Setting::getSettings();
if ($settings->slack_endpoint) {
$slack_settings = [
'username' => $settings->botname,
'channel' => $settings->slack_channel,
'link_names' => true
];
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
try {
$client->attach([
'color' => 'good',
@@ -416,17 +416,17 @@ class AccessoriesController extends AdminController
'title' => 'Note:',
'value' => e($logaction->note)
],
]
])->send('Accessory Checked In');
} catch (Exception $e) {
}
}
$log = $logaction->logaction('checkin from');
if ($backto=='user') {
+93 -103
View File
@@ -911,10 +911,10 @@ class AssetsController extends AdminController
$assets = Input::get('edit_asset');
$supplier_list = array('' => '') + Supplier::orderBy('name', 'asc')->lists('name', 'id');
$statuslabel_list = array('' => '') + Statuslabel::lists('name', 'id');
$location_list = array('' => '') + Location::lists('name', 'id');
$statuslabel_list = array('' => '') + Statuslabel::lists('name', 'id');
$location_list = array('' => '') + Location::lists('name', 'id');
return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list);
return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list);
}
@@ -941,7 +941,7 @@ class AssetsController extends AdminController
$assets = Input::get('bulk_edit');
if ( (Input::has('purchase_date')) || (Input::has('purchase_cost')) || (Input::has('supplier_id')) || (Input::has('order_number')) || (Input::has('warranty_months')) || (Input::has('rtd_location_id')) || (Input::has('status_id')) ) {
if ( (Input::has('purchase_date')) || (Input::has('rtd_location_id')) || (Input::has('status_id')) ) {
foreach ($assets as $key => $value) {
@@ -951,22 +951,6 @@ class AssetsController extends AdminController
$update_array['purchase_date'] = e(Input::get('purchase_date'));
}
if (Input::has('purchase_cost')) {
$update_array['purchase_cost'] = e(Input::get('purchase_cost'));
}
if (Input::has('supplier_id')) {
$update_array['supplier_id'] = e(Input::get('supplier_id'));
}
if (Input::has('order_number')) {
$update_array['order_number'] = e(Input::get('order_number'));
}
if (Input::has('warranty_months')) {
$update_array['warranty_months'] = e(Input::get('warranty_months'));
}
if (Input::has('rtd_location_id')) {
$update_array['rtd_location_id'] = e(Input::get('rtd_location_id'));
}
@@ -1014,74 +998,74 @@ class AssetsController extends AdminController
public function getDatatable($status = null)
{
$assets = Asset::with('model','assigneduser','assigneduser.userloc','assetstatus','defaultLoc','assetlog','model','model.category')->Hardware()->select(array('id', 'name','model_id','assigned_to','asset_tag','serial','status_id','purchase_date','deleted_at','rtd_location_id'));
$assets = Asset::with('model','assigneduser','assigneduser.userloc','assetstatus','defaultLoc','assetlog','model','model.category')->Hardware()->select(array('id', 'name','model_id','assigned_to','asset_tag','serial','status_id','purchase_date','deleted_at','rtd_location_id','notes','order_number'));
switch ($status) {
case 'Deleted':
$assets->withTrashed()->Deleted();
break;
case 'Pending':
$assets->Pending();
break;
case 'RTD':
$assets->RTD();
break;
case 'Undeployable':
$assets->Undeployable();
break;
case 'Archived':
$assets->Archived();
break;
case 'Requestable':
$assets->RequestableAssets();
break;
case 'Deployed':
$assets->Deployed();
break;
}
switch ($status) {
case 'Pending':
$assets->Pending();
break;
case 'RTD':
$assets->RTD();
break;
case 'Undeployable':
$assets->Undeployable();
break;
case 'Archived':
$assets->Archived();
break;
case 'Requestable':
$assets->RequestableAssets();
break;
case 'Deployed':
$assets->Deployed();
break;
case 'Deleted':
$assets->withTrashed()->Deleted();
break;
}
$assets = $assets->orderBy('asset_tag', 'ASC')->get();
$assets = $assets->orderBy('asset_tag', 'ASC')->get();
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($assets)
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($assets)
{
if ($assets->deleted_at=='') {
return '<a href="'.route('update/hardware', $assets->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/hardware', $assets->id).'" data-content="'.Lang::get('admin/hardware/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($assets->asset_tag).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
} elseif ($assets->model->deleted_at=='') {
return '<a href="'.route('restore/hardware', $assets->id).'" class="btn btn-warning btn-sm"><i class="fa fa-recycle icon-white"></i></a>';
}
});
$inout = new \Chumper\Datatable\Columns\FunctionColumn('inout', function ($assets)
{
if ($assets->deleted_at=='') {
return '<a href="'.route('update/hardware', $assets->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/hardware', $assets->id).'" data-content="'.Lang::get('admin/hardware/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($assets->asset_tag).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
} elseif ($assets->model->deleted_at=='') {
return '<a href="'.route('restore/hardware', $assets->id).'" class="btn btn-warning btn-sm"><i class="fa fa-recycle icon-white"></i></a>';
}
});
$inout = new \Chumper\Datatable\Columns\FunctionColumn('inout', function ($assets)
{
if (($assets->assigned_to !='') && ($assets->assigned_to > 0)) {
return '<a href="'.route('checkin/hardware', $assets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
} else {
return '<a href="'.route('checkout/hardware', $assets->id).'" class="btn btn-info btn-sm">'.Lang::get('general.checkout').'</a>';
}
if ($assets->assetstatus->deployable != 0) {
if (($assets->assigned_to !='') && ($assets->assigned_to > 0)) {
return '<a href="'.route('checkin/hardware', $assets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
} else {
return '<a href="'.route('checkout/hardware', $assets->id).'" class="btn btn-info btn-sm">'.Lang::get('general.checkout').'</a>';
}
}
});
return Datatable::collection($assets)
->addColumn('',function($assets)
{
return '<input type="checkbox" name="edit_asset['.$assets->id.']" class="one_required">';
})
->addColumn('name',function($assets)
{
return '<a title="'.$assets->name.'" href="hardware/'.$assets->id.'/view">'.$assets->name.'</a>';
})
->addColumn('asset_tag',function($assets)
{
return '<a title="'.$assets->asset_tag.'" href="hardware/'.$assets->id.'/view">'.$assets->asset_tag.'</a>';
})
return Datatable::collection($assets)
->addColumn('',function($assets)
{
return '<input type="checkbox" name="edit_asset['.$assets->id.']" class="one_required">';
})
->addColumn('name',function($assets)
{
return '<a title="'.$assets->name.'" href="hardware/'.$assets->id.'/view">'.$assets->name.'</a>';
})
->addColumn('asset_tag',function($assets)
{
return '<a title="'.$assets->asset_tag.'" href="hardware/'.$assets->id.'/view">'.$assets->asset_tag.'</a>';
})
->showColumns('serial')
->showColumns('serial')
->addColumn('model',function($assets)
{
@@ -1092,16 +1076,13 @@ class AssetsController extends AdminController
}
})
->addColumn('status',function($assets)
{
if ($assets->assigned_to!='') {
return link_to('../admin/users/'.$assets->assigned_to.'/view', $assets->assigneduser->fullName());
} else {
if ($assets->assetstatus) {
return $assets->assetstatus->name;
}
}
->addColumn('status',function($assets)
{
if ($assets->assigned_to!='') {
return link_to('../admin/users/'.$assets->assigned_to.'/view', $assets->assigneduser->fullName());
} else {
return $assets->assetstatus->name;
}
})
->addColumn('location',function($assets)
@@ -1120,26 +1101,35 @@ class AssetsController extends AdminController
return 'No category';
}
})
})
->addColumn('eol',function($assets)
{
return $assets->eol_date();
})
->addColumn('eol',function($assets)
{
return $assets->eol_date();
})
->addColumn('notes',function($assets)
{
return $assets->notes;
})
->addColumn('checkout_date',function($assets)
{
if (($assets->assigned_to!='') && ($assets->assetlog->first())) {
return $assets->assetlog->first()->created_at->format('Y-m-d');
}
->addColumn('order_number',function($assets)
{
return $assets->order_number;
})
})
->addColumn($inout)
->addColumn($actions)
->searchColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout','category')
->orderColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout')
->make();
->addColumn('checkout_date',function($assets)
{
if (($assets->assigned_to!='') && ($assets->assetlog->first())) {
return $assets->assetlog->first()->created_at->format('Y-m-d');
}
})
->addColumn($inout)
->addColumn($actions)
->searchColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout','category','notes','order_number')
->orderColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout','notes','order_number')
->make();
}
}
+10 -10
View File
@@ -36,7 +36,7 @@ class CategoriesController extends AdminController
public function getCreate()
{
// Show the page
$category_types= array('' => '', 'asset' => 'Asset', 'accessory' => 'Accessory', 'consumable' => 'Consumable');
$category_types= array('' => '', 'asset' => 'Asset', 'accessory' => 'Accessory');
return View::make('backend/categories/edit')->with('category',new Category)
->with('category_types',$category_types);
}
@@ -66,8 +66,8 @@ class CategoriesController extends AdminController
$category->name = e(Input::get('name'));
$category->category_type = e(Input::get('category_type'));
$category->eula_text = e(Input::get('eula_text'));
$category->use_default_eula = e(Input::get('use_default_eula', '0'));
$category->require_acceptance = e(Input::get('require_acceptance', '0'));
$category->use_default_eula = e(Input::get('use_default_eula', '0'));
$category->require_acceptance = e(Input::get('require_acceptance', '0'));
$category->user_id = Sentry::getId();
// Was the asset created?
@@ -101,8 +101,8 @@ class CategoriesController extends AdminController
//$category_options = array('' => 'Top Level') + Category::lists('name', 'id');
$category_options = array('' => 'Top Level') + DB::table('categories')->where('id', '!=', $categoryId)->lists('name', 'id');
$category_types= array('' => '', 'asset' => 'Asset', 'accessory' => 'Accessory', 'consumable' => 'Consumable');
$category_types= array('' => '', 'asset' => 'Asset', 'accessory' => 'Accessory');
return View::make('backend/categories/edit', compact('category'))
->with('category_options',$category_options)
->with('category_types',$category_types);
@@ -143,8 +143,8 @@ class CategoriesController extends AdminController
$category->name = e(Input::get('name'));
$category->category_type = e(Input::get('category_type'));
$category->eula_text = e(Input::get('eula_text'));
$category->use_default_eula = e(Input::get('use_default_eula', '0'));
$category->require_acceptance = e(Input::get('require_acceptance', '0'));
$category->use_default_eula = e(Input::get('use_default_eula', '0'));
$category->require_acceptance = e(Input::get('require_acceptance', '0'));
// Was the asset created?
if($category->save()) {
@@ -241,13 +241,13 @@ class CategoriesController extends AdminController
->orderColumns('name','category_type','count','acceptance','eula','actions')
->make();
}
public function getDataView($categoryID) {
$category = Category::find($categoryID);
$categoryassets = $category->assets;
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($categoryassets)
{
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($categoryassets)
{
if (($categoryassets->assigned_to !='') && ($categoryassets->assigned_to > 0)) {
return '<a href="'.route('checkin/hardware', $categoryassets->id).'" class="btn btn-primary btn-sm">'.Lang::get('general.checkin').'</a>';
} else {
@@ -1,390 +0,0 @@
<?php namespace Controllers\Admin;
use AdminController;
use Input;
use Lang;
use Redirect;
use Setting;
use DB;
use Sentry;
use Consumable;
use Str;
use Validator;
use View;
use User;
use Actionlog;
use Mail;
use Datatable;
use Slack;
use Config;
class ConsumablesController extends AdminController
{
/**
* Show a list of all the consumables.
*
* @return View
*/
public function getIndex()
{
return View::make('backend/consumables/index');
}
/**
* Consumable create.
*
* @return View
*/
public function getCreate()
{
// Show the page
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','consumable')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
return View::make('backend/consumables/edit')->with('consumable',new Consumable)->with('category_list',$category_list);
}
/**
* Consumable create form processing.
*
* @return Redirect
*/
public function postCreate()
{
// create a new model instance
$consumable = new Consumable();
$validator = Validator::make(Input::all(), $consumable->rules);
if ($validator->fails())
{
// The given data did not pass validation
return Redirect::back()->withInput()->withErrors($validator->messages());
}
else{
// Update the consumable data
$consumable->name = e(Input::get('name'));
$consumable->category_id = e(Input::get('category_id'));
$consumable->qty = e(Input::get('qty'));
$consumable->user_id = Sentry::getId();
// Was the consumable created?
if($consumable->save()) {
// Redirect to the new consumable page
return Redirect::to("admin/consumables")->with('success', Lang::get('admin/consumables/message.create.success'));
}
}
// Redirect to the consumable create page
return Redirect::to('admin/consumables/create')->with('error', Lang::get('admin/consumables/message.create.error'));
}
/**
* Consumable update.
*
* @param int $consumableId
* @return View
*/
public function getEdit($consumableId = null)
{
// Check if the consumable exists
if (is_null($consumable = Consumable::find($consumableId))) {
// Redirect to the blogs management page
return Redirect::to('admin/consumables')->with('error', Lang::get('admin/consumables/message.does_not_exist'));
}
$category_list = array('' => '') + DB::table('categories')->where('category_type','=','consumable')->whereNull('deleted_at')->orderBy('name','ASC')->lists('name', 'id');
return View::make('backend/consumables/edit', compact('consumable'))->with('category_list',$category_list);
}
/**
* Consumable update form processing page.
*
* @param int $consumableId
* @return Redirect
*/
public function postEdit($consumableId = null)
{
// Check if the blog post exists
if (is_null($consumable = Consumable::find($consumableId))) {
// Redirect to the blogs management page
return Redirect::to('admin/consumables')->with('error', Lang::get('admin/consumables/message.does_not_exist'));
}
// get the POST data
$new = Input::all();
// attempt validation
$validator = Validator::make(Input::all(), $consumable->validationRules($consumableId));
if ($validator->fails())
{
// The given data did not pass validation
return Redirect::back()->withInput()->withErrors($validator->messages());
}
// attempt validation
else {
// Update the consumable data
$consumable->name = e(Input::get('name'));
$consumable->category_id = e(Input::get('category_id'));
$consumable->qty = e(Input::get('qty'));
// Was the consumable created?
if($consumable->save()) {
// Redirect to the new consumable page
return Redirect::to("admin/consumables")->with('success', Lang::get('admin/consumables/message.update.success'));
}
}
// Redirect to the consumable management page
return Redirect::to("admin/consumables/$consumableID/edit")->with('error', Lang::get('admin/consumables/message.update.error'));
}
/**
* Delete the given consumable.
*
* @param int $consumableId
* @return Redirect
*/
public function getDelete($consumableId)
{
// Check if the blog post exists
if (is_null($consumable = Consumable::find($consumableId))) {
// Redirect to the blogs management page
return Redirect::to('admin/consumables')->with('error', Lang::get('admin/consumables/message.not_found'));
}
if ($consumable->hasUsers() > 0) {
return Redirect::to('admin/consumables')->with('error', Lang::get('admin/consumables/message.assoc_users', array('count'=> $consumable->hasUsers())));
} else {
$consumable->delete();
// Redirect to the locations management page
return Redirect::to('admin/consumables')->with('success', Lang::get('admin/consumables/message.delete.success'));
}
}
/**
* Get the consumable information to present to the consumable view page
*
* @param int $consumableId
* @return View
**/
public function getView($consumableID = null)
{
$consumable = Consumable::find($consumableID);
if (isset($consumable->id)) {
return View::make('backend/consumables/view', compact('consumable'));
} else {
// Prepare the error message
$error = Lang::get('admin/consumables/message.does_not_exist', compact('id'));
// Redirect to the user management page
return Redirect::route('consumables')->with('error', $error);
}
}
/**
* Check out the consumable to a person
**/
public function getCheckout($consumableId)
{
// Check if the consumable exists
if (is_null($consumable = Consumable::find($consumableId))) {
// Redirect to the consumable management page with error
return Redirect::to('consumables')->with('error', Lang::get('admin/consumables/message.not_found'));
}
// Get the dropdown of users and then pass it to the checkout view
$users_list = array('' => 'Select a User') + DB::table('users')->select(DB::raw('concat(last_name,", ",first_name) as full_name, id'))->whereNull('deleted_at')->orderBy('last_name', 'asc')->orderBy('first_name', 'asc')->lists('full_name', 'id');
return View::make('backend/consumables/checkout', compact('consumable'))->with('users_list',$users_list);
}
/**
* Check out the consumable to a person
**/
public function postCheckout($consumableId)
{
// Check if the consumable exists
if (is_null($consumable = Consumable::find($consumableId))) {
// Redirect to the consumable management page with error
return Redirect::to('consumables')->with('error', Lang::get('admin/consumables/message.not_found'));
}
$admin_user = Sentry::getUser();
$assigned_to = e(Input::get('assigned_to'));
// Declare the rules for the form validation
$rules = array(
'assigned_to' => 'required|min:1'
);
// Create a new validator instance from our validation rules
$validator = Validator::make(Input::all(), $rules);
// If validation fails, we'll exit the operation now.
if ($validator->fails()) {
// Ooops.. something went wrong
return Redirect::back()->withInput()->withErrors($validator);
}
// Check if the user exists
if (is_null($user = User::find($assigned_to))) {
// Redirect to the consumable management page with error
return Redirect::to('admin/consumables')->with('error', Lang::get('admin/consumables/message.user_does_not_exist'));
}
// Update the consumable data
$consumable->assigned_to = e(Input::get('assigned_to'));
$consumable->users()->attach($consumable->id, array(
'consumable_id' => $consumable->id,
'assigned_to' => e(Input::get('assigned_to'))));
$logaction = new Actionlog();
$logaction->consumable_id = $consumable->id;
$logaction->checkedout_to = $consumable->assigned_to;
$logaction->asset_type = 'consumable';
$logaction->location_id = $user->location_id;
$logaction->user_id = Sentry::getUser()->id;
$logaction->note = e(Input::get('note'));
$settings = Setting::getSettings();
if ($settings->slack_endpoint) {
$slack_settings = [
'username' => $settings->botname,
'channel' => $settings->slack_channel,
'link_names' => true
];
$client = new \Maknz\Slack\Client($settings->slack_endpoint,$slack_settings);
try {
$client->attach([
'color' => 'good',
'fields' => [
[
'title' => 'Checked Out:',
'value' => strtoupper($logaction->asset_type).' <'.Config::get('app.url').'/admin/consumables/'.$consumable->id.'/view'.'|'.$consumable->name.'> checked out to <'.Config::get('app.url').'/admin/users/'.$user->id.'/view|'.$user->fullName().'> by <'.Config::get('app.url').'/admin/users/'.$admin_user->id.'/view'.'|'.$admin_user->fullName().'>.'
],
[
'title' => 'Note:',
'value' => e($logaction->note)
],
]
])->send('Consumable Checked Out');
} catch (Exception $e) {
}
}
$log = $logaction->logaction('checkout');
$consumable_user = DB::table('consumables_users')->where('assigned_to','=',$consumable->assigned_to)->where('consumable_id','=',$consumable->id)->first();
$data['log_id'] = $logaction->id;
$data['eula'] = $consumable->getEula();
$data['first_name'] = $user->first_name;
$data['item_name'] = $consumable->name;
$data['require_acceptance'] = $consumable->requireAcceptance();
if (($consumable->requireAcceptance()=='1') || ($consumable->getEula())) {
Mail::send('emails.accept-asset', $data, function ($m) use ($user) {
$m->to($user->email, $user->first_name . ' ' . $user->last_name);
$m->subject('Confirm consumable delivery');
});
}
// Redirect to the new consumable page
return Redirect::to("admin/consumables")->with('success', Lang::get('admin/consumables/message.checkout.success'));
}
public function getDatatable()
{
$consumables = Consumable::select(array('id','name','qty'))
->whereNull('deleted_at')
->orderBy('created_at', 'DESC');
$consumables = $consumables->get();
$actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($consumables)
{
return '<a href="'.route('checkout/consumable', $consumables->id).'" style="margin-right:5px;" class="btn btn-info btn-sm" '.(($consumables->numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'</a><a href="'.route('update/consumable', $consumables->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><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', $consumables->id).'" data-content="'.Lang::get('admin/consumables/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($consumables->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
});
return Datatable::collection($consumables)
->addColumn('name',function($consumables)
{
return link_to('admin/consumables/'.$consumables->id.'/view', $consumables->name);
})
->addColumn('qty',function($consumables)
{
return $consumables->qty;
})
->addColumn('numRemaining',function($consumables)
{
return $consumables->numRemaining();
})
->addColumn($actions)
->searchColumns('name','qty','numRemaining','actions')
->orderColumns('name','qty','numRemaining','actions')
->make();
}
public function getDataView($consumableID)
{
$consumable = Consumable::find($consumableID);
$consumable_users = $consumable->users;
return Datatable::collection($consumable_users)
->addColumn('name',function($consumable_users)
{
return link_to('/admin/users/'.$consumable_users->id.'/view', $consumable_users->fullName());
})
->make();
}
}
+18 -18
View File
@@ -15,56 +15,56 @@ class DashboardController extends AdminController
public function getIndex()
{
// Show the page
$recent_activity = Actionlog::orderBy('created_at','DESC')->take(7)->get();
$recent_activity = Actionlog::orderBy('created_at','DESC')->with('accessorylog','consumablelog','licenselog','assetlog','adminlog','userlog')->take(7)->get();
$asset_stats['total'] = Asset::Hardware()->count();
$asset_stats['rtd']['total'] = Asset::Hardware()->RTD()->count();
if ($asset_stats['rtd']['total'] > 0) {
$asset_stats['rtd']['percent'] = round(($asset_stats['rtd']['total']/$asset_stats['total']) * 100);
} else {
$asset_stats['rtd']['percent'] = 0;
}
$asset_stats['pending']['total'] = Asset::Hardware()->Pending()->count();
if ($asset_stats['pending']['total'] > 0) {
$asset_stats['pending']['percent'] = round(($asset_stats['pending']['total']/$asset_stats['total']) * 100);
} else {
$asset_stats['pending']['percent'] = 0;
}
$asset_stats['deployed']['total'] = Asset::Hardware()->Deployed()->count();
if ($asset_stats['deployed']['total'] > 0) {
$asset_stats['deployed']['percent'] = round(($asset_stats['deployed']['total']/$asset_stats['total']) * 100);
} else {
$asset_stats['deployed']['percent'] = 0;
}
$asset_stats['undeployable']['total'] = Asset::Hardware()->Undeployable()->count();
if ($asset_stats['undeployable']['total'] > 0) {
$asset_stats['undeployable']['percent'] = round(($asset_stats['undeployable']['total']/$asset_stats['total']) * 100);
} else {
$asset_stats['undeployable']['percent'] = 0;
}
$asset_stats['archived']['total'] = Asset::Hardware()->Archived()->count();
if ($asset_stats['archived']['total'] > 0) {
$asset_stats['archived']['percent'] = round(($asset_stats['archived']['total']/$asset_stats['total']) * 100);
} else {
$asset_stats['archived']['percent'] = 0;
}
return View::make('backend/dashboard')->with('asset_stats',$asset_stats)->with('recent_activity',$recent_activity);
}
+19 -35
View File
@@ -23,7 +23,7 @@ class LocationsController extends AdminController
public function getIndex()
{
// Grab all the locations
$locations = Location::orderBy('created_at', 'DESC')->with('parent','assets','assignedassets')->get();
$locations = Location::orderBy('created_at', 'DESC')->get();
// Show the page
return View::make('backend/locations/index', compact('locations'));
@@ -37,15 +37,9 @@ class LocationsController extends AdminController
*/
public function getCreate()
{
$locations = Location::orderBy('name','ASC')->get();
$location_options_array = Location::getLocationHierarchy($locations);
$location_options = Location::flattenLocationsArray($location_options_array);
$location_options = array('' => 'Top Level') + $location_options;
return View::make('backend/locations/edit')
->with('location_options',$location_options)
->with('location',new Location);
// Show the page
$location_options = array('0' => 'Top Level') + Location::lists('name', 'id');
return View::make('backend/locations/edit')->with('location_options',$location_options)->with('location',new Location);
}
@@ -68,18 +62,12 @@ class LocationsController extends AdminController
// Save the location data
$location->name = e(Input::get('name'));
if (Input::get('parent_id')=='') {
$location->parent_id = null;
} else {
$location->parent_id = e(Input::get('parent_id'));
}
$location->currency = e(Input::get('currency'));
$location->address = e(Input::get('address'));
$location->address2 = e(Input::get('address2'));
$location->city = e(Input::get('city'));
$location->state = e(Input::get('state'));
$location->country = e(Input::get('country'));
$location->zip = e(Input::get('zip'));
$location->zip = e(Input::get('zip'));
$location->user_id = Sentry::getId();
// Was the asset created?
@@ -109,15 +97,14 @@ class LocationsController extends AdminController
{
// Check if the location exists
if (is_null($location = Location::find($locationId))) {
// Redirect to the blogs management page
return Redirect::to('admin/settings/locations')->with('error', Lang::get('admin/locations/message.does_not_exist'));
}
// Show the page
$locations = Location::orderBy('name','ASC')->get();
$location_options_array = Location::getLocationHierarchy($locations);
$location_options = Location::flattenLocationsArray($location_options_array);
$location_options = array('' => 'Top Level') + $location_options;
//$location_options = array('' => 'Top Level') + Location::lists('name', 'id');
$location_options = array('' => 'Top Level') + DB::table('locations')->where('id', '!=', $locationId)->lists('name', 'id');
return View::make('backend/locations/edit', compact('location'))->with('location_options',$location_options);
}
@@ -141,33 +128,27 @@ class LocationsController extends AdminController
if ($validator->fails())
{
// The given data did not pass validation
// The given data did not pass validation
return Redirect::back()->withInput()->withErrors($validator->messages());
}
// attempt validation
else {
// Update the location data
$location->name = e(Input::get('name'));
if (Input::get('parent_id')=='') {
$location->parent_id = null;
} else {
$location->parent_id = e(Input::get('parent_id',''));
}
$location->currency = e(Input::get('currency'));
$location->name = e(Input::get('name'));
$location->address = e(Input::get('address'));
$location->address2 = e(Input::get('address2'));
$location->city = e(Input::get('city'));
$location->state = e(Input::get('state'));
$location->country = e(Input::get('country'));
$location->zip = e(Input::get('zip'));
$location->country = e(Input::get('country'));
$location->zip = e(Input::get('zip'));
// Was the asset created?
if($location->save()) {
// Redirect to the saved location page
return Redirect::to("admin/settings/locations/")->with('success', Lang::get('admin/locations/message.update.success'));
}
}
}
// Redirect to the location management page
return Redirect::to("admin/settings/locations/$locationId/edit")->with('error', Lang::get('admin/locations/message.update.error'));
@@ -189,12 +170,15 @@ class LocationsController extends AdminController
}
if ($location->has_users->count() > 0) {
return Redirect::to('admin/settings/locations')->with('error', Lang::get('admin/locations/message.assoc_users'));
} elseif ($location->childLocations->count() > 0) {
if ($location->has_users() > 0) {
// Redirect to the asset management page
return Redirect::to('admin/settings/locations')->with('error', Lang::get('admin/locations/message.assoc_users'));
} else {
$location->delete();
// Redirect to the locations management page
return Redirect::to('admin/settings/locations')->with('success', Lang::get('admin/locations/message.delete.success'));
}
+8 -9
View File
@@ -57,19 +57,14 @@ class ModelsController extends AdminController
public function postCreate()
{
// get the POST data
$new = Input::all();
// Create a new manufacturer
$model = new Model;
$validator = Validator::make(Input::all(), $model->validationRules());
// attempt validation
if ($validator->fails())
{
// The given data did not pass validation
return Redirect::back()->withInput()->withErrors($validator->messages());
}
// attempt validation
else {
if ($model->validate($new)) {
if ( e(Input::get('depreciation_id')) == '') {
$model->depreciation_id = 0;
@@ -108,6 +103,10 @@ class ModelsController extends AdminController
// Redirect to the new model page
return Redirect::to("hardware/models")->with('success', Lang::get('admin/models/message.create.success'));
}
} else {
// failure
$errors = $model->errors();
return Redirect::back()->withInput()->withErrors($errors);
}
// Redirect to the model create page
+19 -25
View File
@@ -11,9 +11,6 @@ use Location;
use Redirect;
use Response;
use Actionlog;
use Setting;
use League\Csv\Writer;
use League\Csv\Reader;
class ReportsController extends AdminController
{
@@ -150,9 +147,6 @@ class ReportsController extends AdminController
// Grab all the assets
$assets = Asset::with('model','assigneduser','assetstatus','defaultLoc','assetlog')->orderBy('created_at', 'DESC')->get();
$csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
$csv->setOutputBOM(Reader::BOM_UTF16_BE);
$rows = array();
// Create the header row
@@ -167,9 +161,8 @@ class ReportsController extends AdminController
Lang::get('admin/hardware/table.book_value'),
Lang::get('admin/hardware/table.diff')
);
//we insert the CSV header
$csv->insertOne($header);
$header = array_map('trim', $header);
$rows[] = implode($header, ',');
// Create a row per asset
foreach ($assets as $asset) {
@@ -189,7 +182,7 @@ class ReportsController extends AdminController
if (($asset->assigned_to > 0) && ($asset->assigneduser->location_id > 0)) {
$location = Location::find($asset->assigneduser->location_id);
if ($location->city) {
$row[] = $location->city . ', ' . $location->state;
$row[] = '"'.$location->city . ', ' . $location->state.'"';
} elseif ($location->name) {
$row[] = $location->name;
} else {
@@ -199,24 +192,25 @@ class ReportsController extends AdminController
$row[] = ''; // Empty string if location is not set
}
if ($asset->assetloc) {
$currency = $asset->assetloc->currency;
} else {
$currency = Setting::first()->default_currency;
}
$row[] = $asset->purchase_date;
$row[] = $currency.number_format($asset->purchase_cost);
$row[] = $currency.number_format($asset->getDepreciatedValue());
$row[] = $currency.number_format(($asset->purchase_cost - $asset->getDepreciatedValue()));
$csv->insertOne($row);
$row[] = '"'.Lang::get('general.currency').number_format($asset->purchase_cost).'"';
$row[] = '"'.Lang::get('general.currency').number_format($asset->getDepreciatedValue()).'"';
$row[] = '"-'.Lang::get('general.currency').number_format(($asset->purchase_cost - $asset->getDepreciatedValue())).'"';
$rows[] = implode($row, ',');
}
$csv->output('depreciation-report-'.date('Y-m-d').'.csv');
die;
// spit out a csv
$csv = implode($rows, "\n");
$response = Response::make($csv, 200);
$response->header('Content-Type', 'text/csv');
$response->header('Content-disposition', 'attachment;filename=report.csv');
return $response;
}
/**
@@ -237,8 +231,8 @@ class ReportsController extends AdminController
->get();
return View::make('backend/reports/activity', compact('log_actions'));
}
/**
* Show Report for Licenses
*
@@ -12,7 +12,6 @@ use Validator;
use View;
use Image;
use Config;
use Response;
class SettingsController extends AdminController
{
@@ -72,7 +71,6 @@ class SettingsController extends AdminController
"logo" => 'mimes:jpeg,bmp,png,gif',
"alert_email" => 'email',
"slack_endpoint" => 'url',
"default_currency" => 'required',
"slack_channel" => 'regex:/(?<!\w)#\w+/',
"slack_botname" => 'alpha_dash',
);
@@ -119,7 +117,6 @@ class SettingsController extends AdminController
$setting->qr_code = e(Input::get('qr_code', '0'));
$setting->barcode_type = e(Input::get('barcode_type'));
$setting->load_remote = e(Input::get('load_remote', '0'));
$setting->default_currency = e(Input::get('default_currency', '$'));
$setting->qr_text = e(Input::get('qr_text'));
$setting->auto_increment_prefix = e(Input::get('auto_increment_prefix'));
$setting->auto_increment_assets = e(Input::get('auto_increment_assets', '0'));
@@ -144,63 +141,6 @@ class SettingsController extends AdminController
}
/**
* Generate the backup page
*
* @return View
**/
public function getBackups()
{
$path = Config::get('backup::path');
$files = array();
if ($handle = opendir($path)) {
/* This is the correct way to loop over the directory. */
while (false !== ($entry = readdir($handle))) {
clearstatcache();
if (substr(strrchr($entry,'.'),1)=='zip') {
$files[] = array(
'filename' => $entry,
'filesize' => Setting::fileSizeConvert(filesize(Config::get('backup::path').$entry)),
'modified' => filemtime(Config::get('backup::path').$entry)
);
}
}
closedir($handle);
}
return View::make('backend/settings/backups', compact('path','files'));
}
/**
* Download the dump file
*
* @param int $assetId
* @return View
**/
public function downloadFile($filename = null)
{
$file = Config::get('backup::path').'/'.$filename;
// the license is valid
if (file_exists($file)) {
return Response::download($file);
} else {
// Prepare the error message
$error = Lang::get('admin/settings/message.does_not_exist');
// Redirect to the licence management page
return Redirect::route('settings/backups')->with('error', $error);
}
}
}
+39 -78
View File
@@ -34,9 +34,8 @@ class UsersController extends AdminController
protected $validationRules = array(
'first_name' => 'required|alpha_space|min:2',
'last_name' => 'required|alpha_space|min:2',
'location_id' => 'numeric',
'username' => 'required|min:2|unique:users,username',
'email' => 'email|unique:users,email',
'location_id' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:6',
'password_confirm' => 'required|min:6|same:password',
);
@@ -262,15 +261,8 @@ class UsersController extends AdminController
return Redirect::route('users')->with('error', $error);
}
//Check if username is the same then unset validationRules
if (Input::get('username') == $user->username) {
unset($this->validationRules['username']);
}
//Check if email is the same then unset validationRules
if ($user->email == Input::get('email')) {
unset($this->validationRules['email']);
}
//
$this->validationRules['email'] = "required|email|unique:users,email,{$user->email},email";
// Do we want to update the user password?
if ( ! $password = Input::get('password')) {
@@ -292,10 +284,8 @@ class UsersController extends AdminController
try {
// Update the user
$user->first_name = Input::get('first_name');
$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->permissions = Input::get('permissions');
@@ -303,7 +293,7 @@ class UsersController extends AdminController
$user->phone = Input::get('phone');
$user->location_id = Input::get('location_id');
$user->manager_id = Input::get('manager_id');
$user->notes = Input::get('notes');
$user->notes = Input::get('notes');
if ($user->manager_id == "") {
$user->manager_id = NULL;
@@ -319,6 +309,11 @@ class UsersController extends AdminController
$user->password = $password;
}
// Do we want to update the user email?
if (!Config::get('app.lock_passwords')) {
$user->email = Input::get('email');
}
// Get the current user groups
$userGroups = $user->groups()->lists('group_id', 'group_id');
@@ -461,12 +456,10 @@ class UsersController extends AdminController
public function getView($userId = null)
{
$user = User::with('assets','assets.model','consumables','accessories','licenses','userloc')->find($userId);
$userlog = $user->userlog->load('assetlog','consumablelog','assetlog.model','licenselog','accessorylog','userlog','adminlog');
$user = Sentry::getUserProvider()->createModel()->find($userId);
if (isset($user->id)) {
return View::make('backend/users/view', compact('user','userlog'));
return View::make('backend/users/view', compact('user'));
} else {
// Prepare the error message
$error = Lang::get('admin/users/message.user_not_found', compact('id' ));
@@ -639,22 +632,20 @@ class UsersController extends AdminController
try {
// Check if this email already exists in the system
$user = DB::table('users')->where('username', $row[2])->first();
$user = DB::table('users')->where('email', $row[2])->first();
if ($user) {
$duplicates .= $row[2].', ';
} else {
$newuser = array(
'first_name' => $row[0],
'last_name' => $row[1],
'username' => $row[2],
'email' => $row[3],
'password' => $pass,
'activated' => $activated,
'location_id' => $row[4],
'permissions' => '{"user":1}',
'notes' => 'Imported user'
);
$newuser = array(
'first_name' => $row[0],
'last_name' => $row[1],
'email' => $row[2],
'password' => $pass,
'activated' => $activated,
'permissions' => '{"user":1}',
'notes' => 'Imported user'
);
DB::table('users')->insert($newuser);
@@ -667,19 +658,18 @@ class UsersController extends AdminController
$updateuser->save();
if (((Input::get('email_user')==1) && !Config::get('app.lock_passwords'))) {
if (Input::get('email_user')==1) {
// Send the credentials through email
if ($row[3]!='') {
$data = array();
$data['username'] = $row[2];
$data['first_name'] = $row[0];
$data['password'] = $pass;
Mail::send('emails.send-login', $data, function ($m) use ($newuser) {
$m->to($newuser['email'], $newuser['first_name'] . ' ' . $newuser['last_name']);
$m->subject('Welcome ' . $newuser['first_name']);
});
}
$data = array();
$data['email'] = $row[2];
$data['first_name'] = $row[0];
$data['password'] = $pass;
Mail::send('emails.send-login', $data, function ($m) use ($newuser) {
$m->to($newuser['email'], $newuser['first_name'] . ' ' . $newuser['last_name']);
$m->subject('Welcome ' . $newuser['first_name']);
});
}
}
@@ -701,7 +691,7 @@ class UsersController extends AdminController
public function getDatatable($status = null)
{
$users = User::with('assets','accessories','consumables','licenses','manager','sentryThrottle','groups','userloc');
$users = User::with('assets','licenses','manager','sentryThrottle');
switch ($status) {
case 'deleted':
@@ -747,12 +737,7 @@ class UsersController extends AdminController
->addColumn('email',function($users)
{
if ($users->email) {
return '<div class="text-center"><a title="'.$users->email.'" href="mailto:'.$users->email.'"><i class="fa fa-envelope fa-lg"></i></div>';
} else {
return '';
}
return '<a title="'.$users->email.'" href="mailto:'.$users->email.'">'.$users->email.'</a>';
})
->addColumn('manager',function($users)
@@ -762,14 +747,6 @@ class UsersController extends AdminController
}
})
->addColumn('location',function($users)
{
if ($users->userloc) {
return $users->userloc->name;
}
})
->addColumn('assets',function($users)
{
return $users->assets->count();
@@ -779,30 +756,14 @@ class UsersController extends AdminController
{
return $users->licenses->count();
})
->addColumn('accessories',function($users)
->addColumn('activated',function($users)
{
return $users->accessories->count();
return $users->isActivated() ? '<i class="fa fa-check"></i>' : '';
})
->addColumn('consumables',function($users)
{
return $users->consumables->count();
})
->addColumn('groups',function($users)
{
$group_names = '';
foreach ($users->groups as $group) {
$group_names .= '<a href="'.Config::get('app.url').'/admin/groups/'.$group->id.'/edit" class="label label-default">'.$group->name.'</a> ';
}
return $group_names;
})
->addColumn($actions)
->searchColumns('name','email','manager','activated','groups','location')
->orderColumns('name','email','manager','activated', 'licenses','assets','accessories','consumables','groups','location')
->searchColumns('name','email','manager','activated', 'licenses','assets')
->orderColumns('name','email','manager','activated', 'licenses','assets')
->make();
}
@@ -17,13 +17,13 @@ class AddAccessoriesTable extends Migration {
$table->increments('id');
$table->string('name')->nullable()->default(NULL);
$table->integer('category_id')->nullable()->default(NULL);
$table->integer('user_id')->nullable()->default(NULL);
$table->integer('qty')->default(0);
$table->boolean('requestable')->default(0);
$table->integer('user_id')->nullable()->default(NULL);
$table->integer('qty')->default(0);
$table->boolean('requestable')->default(0);
$table->timestamps();
$table->softDeletes();
});
Schema::table('asset_logs', function ($table) {
$table->integer('accessory_id')->nullable()->default(NULL);
});
@@ -39,7 +39,7 @@ class AddAccessoriesTable extends Migration {
{
//
Schema::drop('accessories');
Schema::table('asset_logs', function ($table) {
$table->dropColumn('accessory_id');
});
@@ -13,18 +13,18 @@ class UpdateAcceptedAtToAcceptanceId extends Migration {
public function up()
{
//
Schema::table('asset_logs', function ($table) {
$table->integer('accepted_id')->nullable()->default(NULL);
});
$results = DB::select('select invitation.id AS invitation_id, acceptance.id AS acceptance_id FROM asset_logs invitation INNER JOIN asset_logs acceptance ON (invitation.checkedout_to=acceptance.checkedout_to AND invitation.asset_id=acceptance.asset_id) WHERE invitation.action_type="checkout" AND acceptance.action_type="accepted"');
foreach ($results as $result) {
$update = DB::update('update asset_logs set accepted_id=? where id=?', [$result->acceptance_id, $result->invitation_id]);
$update = DB::update('update asset_logs set accepted_id=? where id=?', [$result->acceptance_id, $result->invitation_id]);
}
}
/**
@@ -38,7 +38,7 @@ class UpdateAcceptedAtToAcceptanceId extends Migration {
Schema::table('asset_logs', function ($table) {
$table->dropColumn('accepted_id');
});
}
}
@@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddParentIdToLocationsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('locations', function(Blueprint $table)
{
//
$table->integer('parent_id')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('locations', function(Blueprint $table)
{
//
$table->dropColumn('parent_id');
});
}
}
@@ -1,29 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class FixDefaultForUserNotes extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::statement('ALTER TABLE `'.DB::getTablePrefix().'users` MODIFY `notes` varchar(255) DEFAULT NULL;');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
DB::statement('ALTER TABLE `'.DB::getTablePrefix().'users` MODIFY `notes` varchar(255);');
}
}
@@ -1,63 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateConsumables extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::create('consumables', function ($table) {
$table->increments('id');
$table->string('name')->nullable()->default(NULL);
$table->integer('category_id')->nullable()->default(NULL);
$table->integer('location_id')->nullable()->default(NULL);
$table->integer('user_id')->nullable()->default(NULL);
$table->integer('qty')->default(0);
$table->boolean('requestable')->default(0);
$table->timestamps();
$table->softDeletes();
});
Schema::table('asset_logs', function ($table) {
$table->integer('consumable_id')->nullable()->default(NULL);
});
Schema::create('consumables_users', function ($table) {
$table->increments('id');
$table->integer('user_id')->nullable()->default(NULL);
$table->integer('consumable_id')->nullable()->default(NULL);
$table->integer('assigned_to')->nullable()->default(NULL);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
Schema::drop('consumables');
Schema::table('asset_logs', function ($table) {
$table->dropColumn('consumable_id');
});
Schema::drop('consumables_users');
}
}
@@ -1,30 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class MoveEmailToUsername extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
DB::update('UPDATE `'.DB::getTablePrefix().'users` SET `username`=`email`');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
//DB::statement('ALTER TABLE `users` MODIFY `notes` varchar(255);');
}
}
@@ -1,31 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class MakeEmailNullable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::statement('ALTER TABLE `'.DB::getTablePrefix().'users` MODIFY `email` varchar(255) DEFAULT NULL;');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
DB::statement('ALTER TABLE `'.DB::getTablePrefix().'users` MODIFY `email` varchar(255) NOT NULL;');
}
}
@@ -1,56 +0,0 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddCurrencyToSettingsAndLocations extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('settings', function(Blueprint $table)
{
$table->string('default_currency',10)->nullable()->default(NULL);
});
DB::update('UPDATE `'.DB::getTablePrefix().'settings` SET `default_currency`="'. Lang::get('general.currency').'"');
Schema::table('locations', function(Blueprint $table)
{
$table->string('currency',10)->nullable()->default(NULL);
});
DB::update('UPDATE `'.DB::getTablePrefix().'locations` SET `currency`="'. Lang::get('general.currency').'"');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
Schema::table('settings', function(Blueprint $table)
{
//
$table->dropColumn('default_currency');
});
Schema::table('locations', function(Blueprint $table)
{
//
$table->dropColumn('currency');
});
}
}
+7 -7
View File
@@ -72,7 +72,7 @@ class AssetsSeeder extends Seeder
'assigned_to' => NULL,
'physical' => 1,
'archived' => 0,
'status_id' => 2,
'status_id' => 2,
'notes' => '',
'deleted_at' => NULL,
'archived' => '0',
@@ -139,7 +139,7 @@ class AssetsSeeder extends Seeder
'created_at' => $date->modify('-10 day'),
'updated_at' => $date->modify('-3 day'),
'user_id' => 2,
'assigned_to' => 1,
'assigned_to' => 2,
'physical' => 1,
'archived' => 0,
'status_id' => 1,
@@ -162,10 +162,10 @@ class AssetsSeeder extends Seeder
'created_at' => $date->modify('-10 day'),
'updated_at' => $date->modify('-3 day'),
'user_id' => 2,
'assigned_to' => 1,
'assigned_to' => 2,
'physical' => 1,
'archived' => 0,
'status_id' => 1,
'status_id' => 1,
'notes' => '',
'deleted_at' => NULL,
'archived' => '0',
@@ -211,7 +211,7 @@ class AssetsSeeder extends Seeder
'assigned_to' => NULL,
'physical' => 1,
'archived' => 0,
'status_id' => '2',
'status_id' => '2',
'notes' => '',
'deleted_at' => NULL,
'archived' => '0',
@@ -234,7 +234,7 @@ class AssetsSeeder extends Seeder
'assigned_to' => NULL,
'physical' => 1,
'archived' => 1,
'status_id' => '2',
'status_id' => '4',
'notes' => '',
'deleted_at' => NULL,
'archived' => '0',
@@ -257,7 +257,7 @@ class AssetsSeeder extends Seeder
'assigned_to' => NULL,
'physical' => 1,
'archived' => 1,
'status_id' => '2',
'status_id' => '3',
'notes' => '',
'deleted_at' => NULL,
'archived' => '0',
+9 -9
View File
@@ -3,15 +3,15 @@
return array(
'does_not_exist' => 'هذه الفئة غير موجودة.',
'assoc_users' => 'تم إخراج :count عنصر من هذا الملحق للمستخدمين، الرجاء إيداع الملحقات ثم حاول مرة أخرى. ',
'assoc_users' => 'This accessory currently has :count items checked out to users. Please check in the accessories and and try again. ',
'create' => array(
'error' => 'فشل إنشاء التصنيف، الرجاء المحاولة مرة أخرى.',
'success' => 'تم إنشاء الفئة بنجاح.'
'error' => 'Category was not created, please try again.',
'success' => 'Category created successfully.'
),
'update' => array(
'error' => 'فشل تحديث التصنيف، الرجاء المحاولة مرة أخرى',
'error' => 'Category was not updated, please try again',
'success' => 'Category updated successfully.'
),
@@ -22,14 +22,14 @@ return array(
),
'checkout' => array(
'error' => 'لم يتم إخراج الملحق، الرجاء المحاولة مرة أخرى',
'success' => 'تم إخراج الملحق بنجاح.',
'user_does_not_exist' => 'هذا المستخدم خاطئ، الرجاء المحاولة مرة أخرى.'
'error' => 'Accessory was not checked out, please try again',
'success' => 'Accessory checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'لم يتم إيداع الملحق، الرجاء المحاولة مرة أخرى',
'success' => 'تم إيداع الملحق بنجاح.',
'error' => 'Accessory was not checked in, please try again',
'success' => 'Accessory checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
@@ -1,8 +0,0 @@
<?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.',
'remaining' => 'Remaining',
'total' => 'Total',
);
-36
View File
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
-5
View File
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
-1
View File
@@ -9,7 +9,6 @@ return array(
'deployable' => 'Deployable',
'deleted' => 'This asset has been deleted. <a href="/hardware/:asset_id/restore">Click here to restore it</a>.',
'edit' => 'Edit Asset',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.<br/> <a href="/hardware/models/:model_id/restore">Click here to restore the model</a>.',
'requestable' => 'Requestable',
'restore' => 'Restore Asset',
-1
View File
@@ -15,7 +15,6 @@ return array(
'notes' => 'Notes',
'order' => 'Order No.',
'purchase_order' => 'Purchase Order Number',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Remaining Seats',
'seats' => 'Seats',
'serial' => 'Serial',
-1
View File
@@ -6,7 +6,6 @@ return array(
'checkout_history' => 'Checkout History',
'checkout' => 'Checkout License Seat',
'edit' => 'Edit License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone License',
'history_for' => 'History for ',
'in_out' => 'In/Out',
+1 -2
View File
@@ -7,7 +7,6 @@ return array(
'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',
'default_eula_text' => 'Default EULA',
@@ -33,7 +32,7 @@ return array(
'qr_text' => 'QR Code Text',
'setting' => 'Setting',
'settings' => 'Settings',
'site_name' => 'Site Name',
'site_name' => 'Site Name',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
+2 -7
View File
@@ -5,7 +5,6 @@ return array(
'accessories' => 'Accessories',
'accessory' => 'Accessory',
'action' => 'Action',
'activity_report' => 'Activity Report',
'address' => 'العنوان',
'admin' => 'الإدارة',
@@ -22,16 +21,14 @@ return array(
'avatar_upload' => 'رفع صورة رمزية',
'back' => 'الرجوع للخلف',
'cancel' => 'إلغاء',
'categories' => 'Categories',
'category' => 'Category',
'categories' => 'تصنيفات الأصول',
'category' => 'تصنيف الأصول',
'changeemail' => 'تغيير عنوان البريد الإلكتروني',
'changepassword' => 'تغيير كلمة المرور',
'checkin' => 'تسجيل',
'checkin_from' => 'Checkin from',
'checkout' => 'ترجيع',
'city' => 'المدينة',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'الدولة',
'create' => 'إضافة',
'created_asset' => 'الأصول المضافة',
@@ -91,8 +88,6 @@ return array(
'previous' => 'Previous',
'processing' => 'Processing',
'profile' => 'ملفك الشخصي',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'جاهزة للتوزيع',
'recent_activity' => 'Recent Activity',
'reports' => 'التقارير',
+15 -16
View File
@@ -1,21 +1,20 @@
<?php
return array(
'about_accessories_title' => 'O příslušenství',
'about_accessories_text' => 'Příslušenství je cokoliv, co předáte uživatelům, ale nemá to sérivoé číslo (nebo to neevidujete). Např. myš, klávesnice.',
'accessory_category' => 'Kategorie příslušenství',
'accessory_name' => 'Název příslušenství',
'create' => 'Vytvořit kategorii',
'eula_text' => 'Kategorie EULA',
'eula_text_help' => 'Toto pole umožňuje upravit EULA pro různé druhy majetku. Pokud máte pouze jeden typ pro všechen majetek, můžete zaškrtnout položku níže pro použití jako výchozí.',
'require_acceptance' => 'Požadovat potvrzení převzetí majetku v této kategorii.',
'no_default_eula' => 'Žádná primární EULA. Přidat novou v Nastavení.',
'qty' => 'Množství',
'total' => 'CELKEM',
'remaining' => 'Dostupný',
'update' => 'Upravit kategorii',
'use_default_eula' => 'Použít <a href="#" data-toggle="modal" data-target="#eulaModal">primární výchozí EULA</a>.',
'use_default_eula_disabled' => '<del>Použít výchozí EULA.</del>
Žádná výchozí EULA nenastavena. Zadejte novou v nastevení.',
'about_accessories_title' => 'About Accessories',
'about_accessories_text' => 'Accessories are anything you issue to users but that do not have a serial number (or you do not care about tracking them uniquely). For example, computer mice or keyboards.',
'accessory_category' => 'Accessory Category',
'accessory_name' => 'Accessory Name',
'create' => 'Create 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.',
'no_default_eula' => 'No primary default EULA found. Add one in Settings.',
'qty' => 'QTY',
'total' => 'Total',
'remaining' => 'Avail',
'update' => 'Update Category',
'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.',
);
+15 -15
View File
@@ -2,35 +2,35 @@
return array(
'does_not_exist' => 'Kategorie neexistuje.',
'assoc_users' => 'Tato kategorie má nyní :count položek k předání uživatelům. Zkontrolujte převzetí příslušenství a zkuste to znovu. ',
'does_not_exist' => 'Category does not exist.',
'assoc_users' => 'This accessory currently has :count items checked out to users. Please check in the accessories and and try again. ',
'create' => array(
'error' => 'Kategorie nevytvořena, zkuste to znovu.',
'success' => 'Kategorie úspěšně vytvořena.'
'error' => 'Category was not created, please try again.',
'success' => 'Category created successfully.'
),
'update' => array(
'error' => 'Kategorie neaktualizována, zkuste to znovu',
'success' => 'Kategorie úspěšně aktualizována.'
'error' => 'Category was not updated, please try again',
'success' => 'Category updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu chcete smazat tuto kategorii?',
'error' => 'Vyskytl se problém při mazání kategorie. Zkuste to znovu.',
'success' => 'Kategorie byla úspěšně smazána.'
'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.'
),
'checkout' => array(
'error' => 'Příslušenství nebylo převzato, zkuste to znovu',
'success' => 'Příslušenství úspěšně předáno.',
'user_does_not_exist' => 'Neplatný uživatel. Zkuste to znovu.'
'error' => 'Accessory was not checked out, please try again',
'success' => 'Accessory checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Příslušenství nebylo převzato, zkuste to znovu',
'success' => 'Příslušenství úspěšně předáno.',
'user_does_not_exist' => 'Neplatný uživatel. Zkuste to znovu.'
'error' => 'Accessory was not checked in, please try again',
'success' => 'Accessory checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
+2 -2
View File
@@ -3,7 +3,7 @@
return array(
'eula_text' => 'EULA',
'id' => 'ID',
'require_acceptance' => 'Přijetí',
'title' => 'Název příslušenství',
'require_acceptance' => 'Acceptance',
'title' => 'Accessory Name',
);
+9 -9
View File
@@ -5,17 +5,17 @@ return array(
'about_categories' => 'Kategorie pomáhají organizovat majetek. Takovou kategorii může být např. &quot;Desktopy&quot;, &quot;Notebooky&quot;, &quot;Mobilní telefony&quot;, &quot;Tablety&quot;, apod., kategorie můžete ale používat jakkoliv Vám to bude dávat smysl. ',
'asset_categories' => 'Kategorie majetku',
'category_name' => 'Jméno kategorie',
'clone' => 'Klonovat Kategorii',
'clone' => 'Clone Category',
'create' => 'Vytvořit kategorii',
'edit' => 'Upravit Kategorii',
'eula_text' => 'EULA Kategorie',
'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' => 'Žádat uživatelé o potvrzení převzetí majetku v této kategorii.',
'required_acceptance' => 'Uživateli bude zaslán email s odkazem pro potvrzení přijetí této položky.',
'required_eula' => 'Tomuto uživateli bude zaslána kopie EUAL emailem',
'no_default_eula' => 'Nenalezena primární výchozí EULA. Přidejte ji v Nastaveních.',
'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.',
'update' => 'Upravit kategorii',
'use_default_eula' => 'Použijte raději <a href="#" data-toggle="modal" data-target="#eulaModal">primární výchozí EULA</a>.',
'use_default_eula_disabled' => '<del>Použijte raději primární výchozí EULA.</del> Nenalezena primární výchozí EULA. Přidejte ji v Nastaveních prosím.',
'use_default_eula' => '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.',
);
+7 -7
View File
@@ -6,19 +6,19 @@ return array(
'assoc_users' => '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. ',
'create' => array(
'error' => 'Kategorie nebyla vytvořena, zkuste to znovu prosím.',
'success' => 'Kategorie byla úspěšně vytvořena.'
'error' => 'Category was not created, please try again.',
'success' => 'Category created successfully.'
),
'update' => array(
'error' => 'Kategorie nebyla aktualizována, zkuste to znovu prosím',
'success' => 'Kategorie aktualizována úspěšně.'
'error' => 'Category was not updated, please try again',
'success' => 'Category updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu chcete smazat tuto kategorii na trvalo?',
'error' => 'Vyskytl se problém při mazání kategorie. Zkuste to znovu prosím.',
'success' => 'Kategorie byla úspěšně smazána.'
'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.'
)
);
@@ -1,8 +0,0 @@
<?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.',
'remaining' => 'Remaining',
'total' => 'Total',
);
-36
View File
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
-5
View File
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
+8 -8
View File
@@ -3,23 +3,23 @@
return array(
'does_not_exist' => 'Amortizační skupina neexistuje.',
'assoc_users' => 'Tato amortizace je momentálně spojena s jedním nebo více modely a nemůže být smazáno. Prosím smažte tyto modely a pak to zkuste znovu. ',
'assoc_users' => 'This depreciation is currently associated with one or more models and cannot be deleted. Please delete the models, and then try deleting again. ',
'create' => array(
'error' => 'Skupina amrotizace nebyla vytvořena, zkuste to znovu. :(',
'success' => 'Skupina amrotizace úspěšně vytvořena. :)'
'error' => 'Depreciation class was not created, please try again. :(',
'success' => 'Depreciation class created successfully. :)'
),
'update' => array(
'error' => 'Skupina amrotizace nebyla aktualizována, zkuste to znovu',
'success' => 'Skupina amrotizace úspěšně aktualizována.'
'error' => 'Depreciation class was not updated, please try again',
'success' => 'Depreciation class updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu chcete smazat tuto skupinu amrotizace?',
'error' => 'Vyskytl se problém při mazání skupiny amrotizace. Zkuste to znovu.',
'success' => 'Skupina amrotizace byla úspěšně smazána.'
'confirm' => 'Are you sure you wish to delete this depreciation class?',
'error' => 'There was an issue deleting the depreciation class. Please try again.',
'success' => 'The depreciation class was deleted successfully.'
)
);
+3 -3
View File
@@ -14,9 +14,9 @@ return array(
'delete' => array(
'confirm' => 'Určitě chcete odstranit tuto skupinu?',
'create' => 'Vyskytl se problém s vytvářením skupiny. Zkuste to znovu.',
'update' => 'Vyskytl se problém s aktualizací skupiny. Zkuste to znovu.',
'delete' => 'Vyskytl se problém se smazáním skupiny. Zkuste to znovu.',
'create' => 'There was an issue creating the group. Please try again.',
'update' => 'There was an issue updating the group. Please try again.',
'delete' => 'There was an issue deleting the group. Please try again.',
),
);
+7 -7
View File
@@ -2,12 +2,12 @@
return array(
'bulk_update' => 'Hromadná aktualizace majetku',
'bulk_update_help' => 'Tento formulář umožňuje hromadnou editaci majetku. Vyplňte pouze položky, které chcete změnit. Jakékoliv prázné položky zůstanou nezměněny. ',
'bulk_update_warn' => 'Budou se editovat vlastnosti :asset_count assets.',
'bulk_update' => 'Bulk Update Assets',
'bulk_update_help' => 'This form allows you to update multiple assets at once. Only fill in the fields you need to change. Any fields left blank will remain unchanged. ',
'bulk_update_warn' => 'You are about to edit the properties of :asset_count assets.',
'checkedout_to' => 'Vydané komu',
'checkout_date' => 'Datum vydání',
'checkin_date' => 'Datum převzetí',
'checkout_date' => 'Checkout Date',
'checkin_date' => 'Checkin Date',
'checkout_to' => 'Vydat někomu',
'cost' => 'Pořizovací cena',
'create' => 'Vytvořit záznam majetku',
@@ -20,7 +20,7 @@ return array(
'expires' => 'Expiruje',
'fully_depreciated' => 'Plně odepsané',
'help_checkout' => 'Pokud si přejete přiřadit majetek okamžitě, měli by jste ze seznamu stavů zvolit "Připraveno k přiděleni", nebo se může něco pokazit. ',
'mac_address' => 'MAC adresa',
'mac_address' => 'MAC Address',
'manufacturer' => 'Výrobce',
'model' => 'Model',
'months' => 'měsíce',
@@ -29,7 +29,7 @@ return array(
'order' => 'Č. objednávky',
'qr' => 'QR kód',
'requestable' => 'Uživatelé můžou požádat o tento majetek',
'select_statustype' => 'Zvolte typ stavu',
'select_statustype' => 'Select Status Type',
'serial' => 'Sériové číslo',
'status' => 'Stav',
'supplier' => 'Dodavatel',
+2 -3
View File
@@ -1,15 +1,14 @@
<?php
return array(
'archived' => 'Archivováno',
'archived' => 'Archived',
'asset' => 'Majetek',
'checkin' => 'Převzít majetek',
'checkout' => 'Předat majetek uživateli',
'clone' => 'Klonovat majetek',
'deployable' => 'Připraveno k nasazení',
'deployable' => 'Deployable',
'deleted' => 'This asset has been deleted. <a href="/hardware/:asset_id/restore">Click here to restore it</a>.',
'edit' => 'Upravit majetek',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.<br/> <a href="/hardware/models/:model_id/restore">Click here to restore the model</a>.',
'requestable' => 'Requestable',
'restore' => 'Restore Asset',
-1
View File
@@ -15,7 +15,6 @@ return array(
'notes' => 'Notes',
'order' => 'Order No.',
'purchase_order' => 'Purchase Order Number',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Remaining Seats',
'seats' => 'Seats',
'serial' => 'Serial',
-1
View File
@@ -6,7 +6,6 @@ return array(
'checkout_history' => 'Checkout History',
'checkout' => 'Checkout License Seat',
'edit' => 'Edit License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone License',
'history_for' => 'History for ',
'in_out' => 'In/Out',
+8 -8
View File
@@ -2,24 +2,24 @@
return array(
'does_not_exist' => 'Místo neexistuje.',
'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. ',
'create' => array(
'error' => 'Místo nebylo vytvořeno, zkuste to znovu prosím.',
'success' => 'Místo bylo úspěšně vytvořeno.'
'error' => 'Location was not created, please try again.',
'success' => 'Location created successfully.'
),
'update' => array(
'error' => 'Místo nebylo aktualizováno, zkuste to znovu prosím',
'success' => 'Místo úspěšně aktualizováno.'
'error' => 'Location was not updated, please try again',
'success' => 'Location updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu si želáte vymazat tohle místo na trvalo?',
'error' => 'Vyskytl se problém při mazání místa. Zkuste to znovu prosím.',
'success' => 'Místo bylo úspěšně smazáno.'
'confirm' => 'Are you sure you wish to delete this location?',
'error' => 'There was an issue deleting the location. Please try again.',
'success' => 'The location was deleted successfully.'
)
);
+9 -9
View File
@@ -2,23 +2,23 @@
return array(
'does_not_exist' => 'Výrobce neexistuje.',
'assoc_users' => 'Tento výrobce je uveden minimálně u jednoho modelu a nemůže být smazán. Odstraňte výrobce z modelů a zkuste to znovu. ',
'does_not_exist' => 'Manufacturer does not exist.',
'assoc_users' => 'This manufacturer is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this manufacturer and try again. ',
'create' => array(
'error' => 'Výrobce nebyl vytvořen, zkuste to znovu.',
'success' => 'Výrobce úspěšně vytvořen.'
'error' => 'Manufacturer was not created, please try again.',
'success' => 'Manufacturer created successfully.'
),
'update' => array(
'error' => 'Výrobce nebyl vytvořen, zkuste to znovu',
'success' => 'Výrobce úspěšně vytvořen.'
'error' => 'Manufacturer was not updated, please try again',
'success' => 'Manufacturer updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu chcete smazat tohoto výrobce?',
'error' => 'Vyskytl se problém se smazáním výrobce. Zkuste to znovu.',
'success' => 'Výrobce byl úspěšně smazán.'
'confirm' => 'Are you sure you wish to delete this manufacturer?',
'error' => 'There was an issue deleting the manufacturer. Please try again.',
'success' => 'The Manufacturer was deleted successfully.'
)
);
+4 -4
View File
@@ -2,10 +2,10 @@
return array(
'deleted' => 'Model byl vymazán. <a href="/hardware/models/:model_id/restore">Klikněte sem pro jeho obnovení</a>.',
'restore' => 'Obnovení Modelu',
'deleted' => 'This model has been deleted. <a href="/hardware/models/:model_id/restore">Click here to restore it</a>.',
'restore' => 'Restore Model',
'show_mac_address' => 'Show MAC address field in assets in this model',
'view_deleted' => 'Zobrazit smazané',
'view_models' => 'Zobrazit Modely',
'view_deleted' => 'View Deleted',
'view_models' => 'View Models',
);
+35 -36
View File
@@ -1,46 +1,45 @@
<?php
return array(
'alert_email' => 'Zasílat upozornění na',
'alerts_enabled' => 'Upozornění zapnuta',
'asset_ids' => 'ID majetku',
'auto_increment_assets' => 'Vygenerovat zvyšující se ID majetku',
'auto_increment_prefix' => 'Předpona (volitnelná)',
'auto_incrementing_help' => 'Nastavte nejdříve automaticky se zvyšující ID majetku pro nastavení tohoto',
'backups' => 'Backups',
'barcode_type' => 'Tyo čárového kódu',
'barcode_settings' => 'Nastavení čárového kódu',
'default_eula_text' => 'Výchozí EULA',
'default_eula_help_text' => 'Můžete také spojit vlastní EULA se specifickými kategoriemi majetku.',
'display_asset_name' => 'Zobrazit název majetku',
'display_checkout_date' => 'Zobrazit den převzetí',
'display_eol' => 'Zobrazit EOL v tabulkovém zobrazení',
'display_qr' => 'Zobrazit QR kódy',
'eula_settings' => 'Nastavení EULA',
'eula_markdown' => 'Tato EULA umožňuje <a href="https://help.github.com/articles/github-flavored-markdown/">Github markdown</a>.',
'general_settings' => 'Obecné nastavení',
'header_color' => 'Barva záhlaví',
'info' => 'Tato nastavení umožňují zvolit určité prvky instalace.',
'laravel' => 'Verze Laravel',
'load_remote' => 'Tato instalace Snipe-IT může nahrávat skripty z vnějšího světa.',
'alert_email' => 'Send alerts to',
'alerts_enabled' => 'Alerts enabled',
'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',
'barcode_type' => 'Barcode Type',
'barcode_settings' => 'Barcode Settings',
'default_eula_text' => 'Default EULA',
'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',
'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',
'header_color' => 'Header Color',
'info' => 'These settings let you customize certain aspects of your installation.',
'laravel' => 'Laravel Version',
'load_remote' => 'This Snipe-IT install can load scripts from the outside world.',
'logo' => 'Logo',
'optional' => 'volitelný',
'per_page' => 'Výsledků na stránku',
'php' => 'Verze PHP',
'php_gd_info' => 'Je nutné nainstalovat php-gd pro zobrazení QR kódů. Více v instalační příručce.',
'php_gd_warning' => 'PHP pluginy pro zpracování obrazu a GD nejsou nainstalovány.',
'qr_help' => 'Nejprve povolte QR kódy',
'qr_text' => 'Text QR kódu',
'setting' => 'Nastavení',
'settings' => 'Nastavení',
'site_name' => 'Název stránky',
'optional' => 'optional',
'per_page' => 'Results Per Page',
'php' => 'PHP Version',
'php_gd_info' => 'You must install php-gd to display QR codes, see install instructions.',
'php_gd_warning' => 'PHP Image Processing and GD plugin is NOT installed.',
'qr_help' => 'Enable QR Codes first to set this',
'qr_text' => 'QR Code Text',
'setting' => 'Setting',
'settings' => 'Settings',
'site_name' => 'Site Name',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
'slack_integration' => 'Slack Settings',
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new">create an incoming webhook</a> on your Slack account.',
'snipe_version' => 'Verze Snipe-IT',
'system' => 'Systémové informace',
'update' => 'Upravit nastavení',
'value' => 'Hodnota',
'snipe_version' => 'Snipe-IT version',
'system' => 'System Information',
'update' => 'Update Settings',
'value' => 'Value',
);
+2 -2
View File
@@ -4,8 +4,8 @@ return array(
'update' => array(
'error' => 'Vyskytla se chyba při aktualizaci. ',
'success' => 'Nastavení úspěšně uloženo.'
'error' => 'An error has occurred while updating. ',
'success' => 'Settings updated successfully.'
),
);
+9 -9
View File
@@ -2,24 +2,24 @@
return array(
'does_not_exist' => 'Místo neexistuje.',
'assoc_users' => 'Toto místo je spojeno s alespoň jedním uživatelem a nemůže být smazáno. Aktualizujte uživatele aby nenáleželi k tomuto místu a zkuste to znovu. ',
'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. ',
'create' => array(
'error' => 'Místo nebylo vytvořeno, zkuste to znovu.',
'success' => 'Místo úspěšně vytvořeno.'
'error' => 'Location was not created, please try again.',
'success' => 'Location created successfully.'
),
'update' => array(
'error' => 'Místo nebylo aktualizováno, zkuste to znovu',
'success' => 'Místo aktualizováno.'
'error' => 'Location was not updated, please try again',
'success' => 'Location updated successfully.'
),
'delete' => array(
'confirm' => 'Opravdu chcete smazat tento typ stavu?',
'error' => 'Vyskytl se problém při mazání místa. Zkuste to znovu.',
'success' => 'Místo bylo úspěšně smazáno.'
'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.'
)
);
+6 -6
View File
@@ -2,14 +2,14 @@
return array(
'about' => 'O označení stavu',
'archived' => 'Archivováno',
'archived' => 'Archived',
'create' => 'Vytvořit označení stavu',
'deployable' => 'Připraveno k nasazení',
'info' => 'Označení stavu se používá k popisu různých stavů majetku. Můžou být v opravě, ztracení atd. Lze vytvořit nové stavy pro další možné stavy.',
'deployable' => 'Deployable',
'info' => 'Status labels are used to describe the various states your assets could be in. They may be out for repair, lost/stolen, etc. You can create new status labels for deployable, pending and archived assets.',
'name' => 'Název stavu',
'pending' => 'Probíhající',
'status_type' => 'Typ stavu',
'pending' => 'Pending',
'status_type' => 'Status Type',
'title' => 'Označení stavu',
'undeployable' => 'Nemožné připravit',
'undeployable' => 'Undeployable',
'update' => 'Upravit označení stavu',
);
+15 -15
View File
@@ -2,35 +2,35 @@
return array(
'account_already_exists' => 'Účet s tímto emailem již existuje.',
'account_not_found' => 'Emailový účet nebo heslo je nesprávné.',
'account_not_activated' => 'Uživatelský účet není aktivován.',
'account_suspended' => 'Uživatelský účet je pozastaven.',
'account_banned' => 'Uživatelský účet je zablokován.',
'account_already_exists' => 'An account with the this email already exists.',
'account_not_found' => 'The email account or password is incorrect.',
'account_not_activated' => 'This user account is not activated.',
'account_suspended' => 'This user account is suspended.',
'account_banned' => 'This user account is banned.',
'signin' => array(
'error' => 'Vyskytl se problém při přihlášení, zkuste to znovu.',
'success' => 'Došlo k úspěšnému přihlášení.',
'error' => 'There was a problem while trying to log you in, please try again.',
'success' => 'You have successfully logged in.',
),
'signup' => array(
'error' => 'Vyskytl se problém při vytváření účtu, zkuste to znovu.',
'success' => 'Účet úspěšně vytvořen.',
'error' => 'There was a problem while trying to create your account, please try again.',
'success' => 'Account sucessfully created.',
),
'forgot-password' => array(
'error' => 'Vyskytl se problém při získávání kódu pro reset hesla, zkuste to znovu.',
'success' => 'Email určený k obnově hesla úspěšně odeslán.',
'error' => 'There was a problem while trying to get a reset password code, please try again.',
'success' => 'Password recovery email successfully sent.',
),
'forgot-password-confirm' => array(
'error' => 'Vyskytl se problém při resetování hesla, zkuste to znovu.',
'success' => 'Vaše heslo bylo úspěšně resetováno.',
'error' => 'There was a problem while trying to reset your password, please try again.',
'success' => 'Your password has been successfully reset.',
),
'activate' => array(
'error' => 'Vyskytl se problém při vytváření účtu, zkuste to znovu.',
'success' => 'Váš účet byl úspěšně vytvořen.',
'error' => 'There was a problem while trying to activate your account, please try again.',
'success' => 'Your account has been successfully activated.',
),
);
+3 -3
View File
@@ -3,12 +3,12 @@
return array(
'actions' => 'Akce',
'add' => 'Přidej nový',
'cancel' => 'Zrušit',
'add' => 'Add New',
'cancel' => 'Cancel',
'delete' => 'Smazat',
'edit' => 'Upravit',
'restore' => 'Obnovit',
'submit' => 'Odeslat',
'upload' => 'Nahrát',
'upload' => 'Upload',
);
+33 -38
View File
@@ -3,15 +3,14 @@
return array(
'accessories' => 'Příslušenství',
'accessory' => 'Příslušenství',
'action' => 'Action',
'activity_report' => 'Report aktivity',
'accessories' => 'Accessories',
'accessory' => 'Accessory',
'activity_report' => 'Activity Report',
'address' => 'Adresa',
'admin' => 'Admin',
'all_assets' => 'Všechna zařízení',
'all' => 'Vše',
'archived' => 'Archivováno',
'archived' => 'Archived',
'asset_models' => 'Modely majetku',
'asset' => 'Zařízeni',
'asset_report' => 'Report majetku',
@@ -22,16 +21,14 @@ return array(
'avatar_upload' => 'Nahrát avatara',
'back' => 'Zpět',
'cancel' => 'Storno',
'categories' => 'Categories',
'category' => 'Category',
'categories' => 'Kategorie majetku',
'category' => 'Kategorie majetku',
'changeemail' => 'Změnit e-mailovou adresu',
'changepassword' => 'Změnit heslo',
'checkin' => 'Příjem',
'checkin_from' => 'Převzít od',
'checkin_from' => 'Checkin from',
'checkout' => 'Výdej',
'city' => 'Město',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'Země',
'create' => 'Vytvořit nové',
'created_asset' => 'vytvořit majetek',
@@ -39,20 +36,20 @@ return array(
'currency' => 'Kč',
'current' => 'Aktuální',
'custom_report' => 'Vlastní report majetku',
'dashboard' => 'Nástěnka',
'dashboard' => 'Dashboard',
'date' => 'Datum',
'delete' => 'Odstranit',
'deleted' => 'Odstraněno',
'deployed' => 'Vydané',
'depreciation_report' => 'Report zastarání',
'download' => 'Stáhnout',
'download' => 'Download',
'depreciation' => 'Amortizace',
'editprofile' => 'Upravit profil',
'eol' => 'Konec životnosti',
'first' => 'První',
'first' => 'First',
'first_name' => 'Jméno',
'file_name' => 'Soubor',
'file_uploads' => 'Nahrání souboru',
'file_name' => 'File',
'file_uploads' => 'File Uploads',
'generate' => 'Vytvořit',
'groups' => 'Skupiny',
'gravatar_email' => 'Emailová adresa Gravatar',
@@ -60,15 +57,15 @@ return array(
'id' => 'ID',
'image_delete' => 'Smazat obrázek',
'image_upload' => 'Nahrát obrázek',
'item' => 'Položka',
'last' => 'Poslední',
'item' => 'Item',
'last' => 'Last',
'last_name' => 'Příjmení',
'license' => 'Licence',
'license_report' => 'Report licencí',
'licenses_available' => 'dostupných licencí',
'licenses' => 'Licence',
'list_all' => 'Vypsat vše',
'loading' => 'Nahrávání',
'loading' => 'Loading',
'location' => 'Lokalita',
'locations' => 'Umístění',
'logout' => 'Odhlásit',
@@ -78,34 +75,32 @@ return array(
'months' => 'měsíce',
'moreinfo' => 'Další informace',
'name' => 'Název',
'next' => 'Další',
'next' => 'Next',
'no_depreciation' => 'Žádná amortizace',
'no_results' => 'Žádné výsledky.',
'no' => 'Ne',
'notes' => 'Poznámky',
'page_menu' => 'Zobrazuji _MENU_ položky',
'pagination_info' => 'Zobrazuji _START_ to _END_ of _TOTAL_ položek',
'page_menu' => 'Showing _MENU_ items',
'pagination_info' => 'Showing _START_ to _END_ of _TOTAL_ items',
'pending' => 'Čeká na vyřízení',
'people' => 'Lidé',
'per_page' => 'Výsledků na stránku',
'previous' => 'Předchozí',
'processing' => 'Pracuji',
'previous' => 'Previous',
'processing' => 'Processing',
'profile' => 'Váš profil',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'Připraveno k přidělení',
'recent_activity' => 'Nedávná aktivita',
'recent_activity' => 'Recent Activity',
'reports' => 'Reporty',
'save' => 'Uložit',
'select' => 'Zvolit',
'search' => 'Hledat',
'select_depreciation' => 'Zvolit typ amortizace',
'select_location' => 'Zvolit místo',
'select_manufacturer' => 'Zvolit výrobce',
'select_model' => 'Zvolit model',
'select_supplier' => 'Zvolit dodavatele',
'select_user' => 'Zvolit uživatele',
'select_date' => 'Zvolit datum',
'select' => 'Select',
'search' => 'Search',
'select_depreciation' => 'Select a Depreciation Type',
'select_location' => 'Select a Location',
'select_manufacturer' => 'Select a Manufacturer',
'select_model' => 'Select a Model',
'select_supplier' => 'Select a Supplier',
'select_user' => 'Select a User',
'select_date' => 'Select Date',
'settings' => 'Nastavení',
'sign_in' => 'Přihlásit se',
'site_name' => 'Název lokality',
@@ -115,12 +110,12 @@ return array(
'suppliers' => 'Dodavatelé',
'total_assets' => 'celkem zařízení',
'total_licenses' => 'celkem licencí',
'type' => 'Typ',
'type' => 'Type',
'undeployable' => 'Ne-přiřaditelné',
'unknown_admin' => 'Neznámy správce',
'uploaded' => 'Nahráno',
'uploaded' => 'Uploaded',
'user' => 'Uživatel',
'users' => 'Uživatelé',
'users' => 'Users',
'viewassets' => 'Zobrazit přiřazený majetek',
'website' => 'Webová stránka',
'welcome' => 'Vítej, :name',
+4 -4
View File
@@ -13,12 +13,12 @@ return array(
|
*/
"password" => "Heslo musí mít šest znaků a schodovat se s potvrzujícím heslem.",
"password" => "Passwords must be six characters and match the confirmation.",
"user" => "Uživatelské jméno nebo email je chybný",
"user" => "Username or email address is incorrect",
"token" => "Tento token pro reset hesla je neplatný.",
"token" => "This password reset token is invalid.",
"sent" => "Pokud byl email nalezen, tak bylo heslo zasláno!",
"sent" => "If a matching email address was found, a password reminder has been sent!",
);
+1 -1
View File
@@ -5,6 +5,6 @@ return array(
'actions' => 'Akce',
'action' => 'Akce',
'by' => 'Vytvořil',
'item' => 'Položka',
'item' => 'Item',
);
+31 -31
View File
@@ -27,42 +27,42 @@ return array(
),
"confirmed" => "Potvrzení :attribute se neshoduje.",
"date" => ":attribute není platným datem.",
"date_format" => "Atribut :attribute nesouhlasí s formátem :format.",
"different" => ":attribute a :other se musí lišit.",
"digits" => ":attribute musí být :digits číslo.",
"digits_between" => ":attribute musí být mezi hodnotami :min a :max.",
"email" => "Formát :attribute je neplatný.",
"exists" => "Zvolený :attribute je neplatný.",
"image" => ":attribute musí být obrázek.",
"in" => "Zvolený :attribute je neplatný.",
"integer" => ":attribute musí být celočíselný.",
"ip" => ":attribute musí být platná IP adresa.",
"date_format" => "The :attribute does not match the format :format.",
"different" => "The :attribute and :other must be different.",
"digits" => "The :attribute must be :digits digits.",
"digits_between" => "The :attribute must be between :min and :max digits.",
"email" => "The :attribute format is invalid.",
"exists" => "The selected :attribute is invalid.",
"image" => "The :attribute must be an image.",
"in" => "The selected :attribute is invalid.",
"integer" => "The :attribute must be an integer.",
"ip" => "The :attribute must be a valid IP address.",
"max" => array(
"numeric" => ":attribute nesmí být větší než :max.",
"file" => ":attribute nesmí být větší než :max kilobajtů.",
"string" => ":attribute nesmí být větší než :max znaků.",
"numeric" => "The :attribute may not be greater than :max.",
"file" => "The :attribute may not be greater than :max kilobytes.",
"string" => "The :attribute may not be greater than :max characters.",
),
"mimes" => ":attribute musí být soubor typu: :values.",
"mimes" => "The :attribute must be a file of type: :values.",
"min" => array(
"numeric" => ":attribute musí být minimálne :min.",
"file" => ":attribute musí být minimálně :min kilobajtů.",
"string" => ":attribute musí mít minimálně :min znaků.",
"numeric" => "The :attribute must be at least :min.",
"file" => "The :attribute must be at least :min kilobytes.",
"string" => "The :attribute must be at least :min characters.",
),
"not_in" => "Zvolený :attribute je neplatný.",
"numeric" => ":attribute musí být číslo.",
"regex" => "Formát :attribute je neplatný.",
"required" => "Pole :attribute je požadováno.",
"required_if" => "Položka :attribute je vyžadována, když :other je :value.",
"required_with" => "Hodnota :attribute je vyžadována, když je přítomno :values.",
"required_without" => "Hodnota :attribute je vyžadována, když není přítomno :values.",
"same" => ":attribute a :other se musí shodovat.",
"not_in" => "The selected :attribute is invalid.",
"numeric" => "The :attribute must be a number.",
"regex" => "The :attribute format is invalid.",
"required" => "The :attribute field is required.",
"required_if" => "The :attribute field is required when :other is :value.",
"required_with" => "The :attribute field is required when :values is present.",
"required_without" => "The :attribute field is required when :values is not present.",
"same" => "The :attribute and :other must match.",
"size" => array(
"numeric" => ":attribute musí být :size.",
"file" => ":attribute musí být :size kilobajtů.",
"string" => ":attribute musí mít :size znaků.",
"numeric" => "The :attribute must be :size.",
"file" => "The :attribute must be :size kilobytes.",
"string" => "The :attribute must be :size characters.",
),
"unique" => ":attribute byl již vybrán.",
"url" => "Formát :attribute je neplatný.",
"unique" => "The :attribute has already been taken.",
"url" => "The :attribute format is invalid.",
/*
@@ -77,7 +77,7 @@ return array(
*/
'custom' => array(),
'alpha_space' => "Pole :attribute může obsahovat pouze znaky, čárky, mezery a pomlčky.",
'alpha_space' => "The :attribute field may only contain letters, commas, spaces and dashes.",
/*
|--------------------------------------------------------------------------
@@ -1,8 +0,0 @@
<?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.',
'remaining' => 'Remaining',
'total' => 'Total',
);
-36
View File
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
-5
View File
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
-1
View File
@@ -9,7 +9,6 @@ return array(
'deployable' => 'Deployable',
'deleted' => 'This asset has been deleted. <a href="/hardware/:asset_id/restore">Click here to restore it</a>.',
'edit' => 'Edit Asset',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.<br/> <a href="/hardware/models/:model_id/restore">Click here to restore the model</a>.',
'requestable' => 'Requestable',
'restore' => 'Restore Asset',
-1
View File
@@ -15,7 +15,6 @@ return array(
'notes' => 'Noter',
'order' => 'Order No.',
'purchase_order' => 'Purchase Order Number',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Remaining Seats',
'seats' => 'Seats',
'serial' => 'Serienummer',
-1
View File
@@ -6,7 +6,6 @@ return array(
'checkout_history' => 'Checkout History',
'checkout' => 'Checkout License Seat',
'edit' => 'Edit License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone License',
'history_for' => 'History for ',
'in_out' => 'In/Out',
+1 -2
View File
@@ -7,7 +7,6 @@ return array(
'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',
'default_eula_text' => 'Default EULA',
@@ -33,7 +32,7 @@ return array(
'qr_text' => 'QR Code Text',
'setting' => 'Setting',
'settings' => 'Settings',
'site_name' => 'Site Name',
'site_name' => 'Site Name',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
+2 -7
View File
@@ -5,7 +5,6 @@ return array(
'accessories' => 'Tilbehør',
'accessory' => 'Tilbehør',
'action' => 'Action',
'activity_report' => 'Activity Report',
'address' => 'Addresse',
'admin' => 'Admin',
@@ -22,16 +21,14 @@ return array(
'avatar_upload' => 'Upload Avatar',
'back' => 'Tilbage',
'cancel' => 'Annuller',
'categories' => 'Categories',
'category' => 'Category',
'categories' => 'Aktiv Kategorier',
'category' => 'Aktiv Kategori',
'changeemail' => 'Skift email adresse',
'changepassword' => 'Skift adgangskode',
'checkin' => 'Tjek Ind',
'checkin_from' => 'Checkin from',
'checkout' => 'Tjek Ud',
'city' => 'By',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'Land',
'create' => 'Opret ny',
'created_asset' => 'skabte aktiver',
@@ -91,8 +88,6 @@ return array(
'previous' => 'Previous',
'processing' => 'Processing',
'profile' => 'Din profil',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'Klar til Implementering',
'recent_activity' => 'Recent Activity',
'reports' => 'Rapporter',
@@ -1,8 +0,0 @@
<?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.',
'remaining' => 'Remaining',
'total' => 'Total',
);
-36
View File
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
-5
View File
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
-1
View File
@@ -9,7 +9,6 @@ return array(
'deployable' => 'Einsetzbar',
'deleted' => 'Dieses Asset wurde gelöscht. <a href="/hardware/:asset_id/restore">Zur Wiederherstellung hier klicken</a>.',
'edit' => 'Asset editieren',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'model_deleted' => 'Dieses Asset wurde gelöscht. Sie müssen das Modell Wiederherstellen bevor Sie das Asset Wiederherstellen können <br/><a href="/hardware/models/:model_id/restore">klicken Sie hier um das Modell wiederherzustellen</a>.',
'requestable' => 'Anforderbar',
'restore' => 'Asset wiederherstellen',
-1
View File
@@ -15,7 +15,6 @@ return array(
'notes' => 'Notizen',
'order' => 'Bestellnr.',
'purchase_order' => 'Bestellnummer',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Verbleibende Aktivierungen',
'seats' => 'Anzahl Aktivierungen',
'serial' => 'Seriennummer',
-1
View File
@@ -6,7 +6,6 @@ return array(
'checkout_history' => 'Zuweisungsverlauf',
'checkout' => 'Lizenzaktivierung herausgeben',
'edit' => 'Edit User',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone User',
'history_for' => 'Verlauf für ',
'in_out' => 'Zurücknehmen/Herausgeben',
+8 -9
View File
@@ -7,18 +7,17 @@ return array(
'auto_increment_assets' => 'Erzeugen von fortlaufenden Asset IDs',
'auto_increment_prefix' => 'Präfix (optional)',
'auto_incrementing_help' => 'Aktiviere zuerst fortlaufende Asset IDs um dies zu setzen',
'backups' => 'Backups',
'barcode_type' => 'Barcode Typ',
'barcode_settings' => 'Barcode Einstellungen',
'barcode_settings' => 'Barcode Settings',
'default_eula_text' => 'Standard EULA',
'default_eula_help_text' => 'Sie können ebenfalls eigene EULA\'s mit spezifischen Asset Kategorien verknüpfen.',
'display_asset_name' => 'Zeige Assetname an',
'display_checkout_date' => 'Zeige Herausgabedatum',
'display_eol' => 'Zeige EOL in der Tabellenansicht',
'display_qr' => 'Zeige QR-Codes',
'eula_settings' => 'EULA Einstellungen',
'eula_settings' => 'EULA Settings',
'eula_markdown' => 'Diese EULA <a href="https://help.github.com/articles/github-flavored-markdown/"> erlaubt Github Flavored Markdown</a>.',
'general_settings' => 'Generelle Einstellungen',
'general_settings' => 'General Settings',
'header_color' => 'Farbe der Kopfzeile',
'info' => 'Mit diesen Einstellungen können Sie verschieden Aspekte Ihrer Installation bearbeiten.',
'laravel' => 'Laravel Version',
@@ -33,12 +32,12 @@ return array(
'qr_text' => 'QR Code Text',
'setting' => 'Einstellung',
'settings' => 'Einstellungen',
'site_name' => 'Seitenname',
'site_name' => 'Seitenname',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Kanal',
'slack_endpoint' => 'Slack Endpunkt',
'slack_integration' => 'Slack Einstellungen',
'slack_integration_help' => 'Die Slackintegration ist optional. Der Endpunkt und kanal werden benötigt, wenn man Slack benutzen will. Um Slack zu konfigurieren muss zuerst <a href=":slack_link" target="_new"> einen eingehenden Webhook</a> in seinem Slackkonto einrichten.',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
'slack_integration' => 'Slack Settings',
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new">create an incoming webhook</a> on your Slack account.',
'snipe_version' => 'Snipe-IT Version',
'system' => 'Systeminformationen',
'update' => 'Einstellungen übernehmen',
+5 -10
View File
@@ -5,8 +5,7 @@ return array(
'accessories' => 'Zubehör',
'accessory' => 'Zubehör',
'action' => 'Aktion',
'activity_report' => 'Aktivitätsreport',
'activity_report' => 'Activity Report',
'address' => 'Supplier Address',
'admin' => 'Administrator',
'all_assets' => 'Alle Assets',
@@ -22,16 +21,14 @@ return array(
'avatar_upload' => 'Avatar hochladen',
'back' => 'Zurück',
'cancel' => 'Abbrechen',
'categories' => 'Categories',
'category' => 'Category',
'categories' => 'Asset Kategorien',
'category' => 'Asset Kategorie',
'changeemail' => 'E-Mail Adresse ändern',
'changepassword' => 'Passwort ändern',
'checkin' => 'Checkin Asset',
'checkin_from' => 'Einchecken von',
'checkout' => 'Checkout Asset to User',
'city' => 'Stadt',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'Land',
'create' => 'Create Location',
'created_asset' => 'Asset angelegt',
@@ -60,7 +57,7 @@ return array(
'id' => 'Id',
'image_delete' => 'Bild löschen',
'image_upload' => 'Bild hinzufügen',
'item' => 'Gegenstand',
'item' => 'Item',
'last' => 'Letztes',
'last_name' => 'Familienname',
'license' => 'Lizenz',
@@ -68,7 +65,7 @@ return array(
'licenses_available' => 'Verfügbare Lizenzen',
'licenses' => 'Lizenzen',
'list_all' => 'Alle auflisten',
'loading' => 'Am laden',
'loading' => 'Loading',
'location' => 'Standort',
'locations' => 'Standorte',
'logout' => 'Abmelden',
@@ -91,8 +88,6 @@ return array(
'previous' => 'Vorherige',
'processing' => 'In Arbeit',
'profile' => 'Ihr Profil',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'Fertig zum herausgeben',
'recent_activity' => 'Letzte Aktivität',
'reports' => 'Berichte',
@@ -1,8 +0,0 @@
<?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.',
'remaining' => 'Remaining',
'total' => 'Total',
);
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
@@ -9,7 +9,6 @@ return array(
'deployable' => 'Deployable',
'deleted' => 'This asset has been deleted. <a href="/hardware/:asset_id/restore">Click here to restore it</a>.',
'edit' => 'Edit Asset',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.<br/> <a href="/hardware/models/:model_id/restore">Click here to restore the model</a>.',
'requestable' => 'Requestable',
'restore' => 'Restore Asset',
-1
View File
@@ -15,7 +15,6 @@ return array(
'notes' => 'Notes',
'order' => 'Order No.',
'purchase_order' => 'Purchase Order Number',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Remaining Seats',
'seats' => 'Seats',
'serial' => 'Serial',
@@ -6,7 +6,6 @@ return array(
'checkout_history' => 'Checkout History',
'checkout' => 'Checkout License Seat',
'edit' => 'Edit License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone License',
'history_for' => 'History for ',
'in_out' => 'In/Out',
+1 -2
View File
@@ -7,7 +7,6 @@ return array(
'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',
'default_eula_text' => 'Default EULA',
@@ -33,7 +32,7 @@ return array(
'qr_text' => 'QR Code Text',
'setting' => 'Setting',
'settings' => 'Settings',
'site_name' => 'Site Name',
'site_name' => 'Site Name',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
+2 -7
View File
@@ -5,7 +5,6 @@ return array(
'accessories' => 'Accessories',
'accessory' => 'Accessory',
'action' => 'Action',
'activity_report' => 'Activity Report',
'address' => 'Address',
'admin' => 'Admin',
@@ -22,16 +21,14 @@ return array(
'avatar_upload' => 'Upload Avatar',
'back' => 'Back',
'cancel' => 'Cancel',
'categories' => 'Categories',
'category' => 'Category',
'categories' => 'Asset Categories',
'category' => 'Asset Category',
'changeemail' => 'Change Email Address',
'changepassword' => 'Change Password',
'checkin' => 'Checkin',
'checkin_from' => 'Checkin from',
'checkout' => 'Checkout',
'city' => 'City',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'Country',
'create' => 'Create New',
'created_asset' => 'created asset',
@@ -91,8 +88,6 @@ return array(
'previous' => 'Previous',
'processing' => 'Processing',
'profile' => 'Your profile',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'Ready to Deploy',
'recent_activity' => 'Recent Activity',
'reports' => 'Reports',
-11
View File
@@ -1,11 +0,0 @@
<?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',
'create' => 'Create Consumable',
'remaining' => 'Remaining',
'total' => 'Total',
'update' => 'Update Consumable',
);
-36
View File
@@ -1,36 +0,0 @@
<?php
return array(
'does_not_exist' => 'Consumable does not exist.',
'create' => array(
'error' => 'Consumable was not created, please try again.',
'success' => 'Consumable created successfully.'
),
'update' => array(
'error' => 'Consumable was not updated, please try again',
'success' => 'Consumable updated successfully.'
),
'delete' => array(
'confirm' => 'Are you sure you wish to delete this accessory?',
'error' => 'There was an issue deleting the consumable. Please try again.',
'success' => 'The accessory was deleted successfully.'
),
'checkout' => array(
'error' => 'Consumable was not checked out, please try again',
'success' => 'Consumable checked out successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
),
'checkin' => array(
'error' => 'Consumable was not checked in, please try again',
'success' => 'Consumable checked in successfully.',
'user_does_not_exist' => 'That user is invalid. Please try again.'
)
);
-5
View File
@@ -1,5 +0,0 @@
<?php
return array(
'title' => 'Consumable Name',
);
+1 -1
View File
@@ -9,7 +9,7 @@ return array(
'deployable' => 'Deployable',
'deleted' => 'This asset has been deleted. <a href="/hardware/:asset_id/restore">Click here to restore it</a>.',
'edit' => 'Edit Asset',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, doc, docx, pdf, txt, rar and zip.',
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.<br/> <a href="/hardware/models/:model_id/restore">Click here to restore the model</a>.',
'requestable' => 'Requestable',
'restore' => 'Restore Asset',
+1 -1
View File
@@ -10,12 +10,12 @@ return array(
'depreciation' => 'Depreciation',
'expiration' => 'Expiration Date',
'maintained' => 'Maintained',
'reassignable' => 'Reassignable',
'name' => 'Software Name',
'no_depreciation' => 'Do Not Depreciate',
'notes' => 'Notes',
'order' => 'Order No.',
'purchase_order' => 'Purchase Order Number',
'reassignable' => 'Reassignable',
'remaining_seats' => 'Remaining Seats',
'seats' => 'Seats',
'serial' => 'Serial',
+1 -1
View File
@@ -6,8 +6,8 @@ return array(
'checkout_history' => 'Checkout History',
'checkout' => 'Checkout License Seat',
'edit' => 'Edit License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.',
'clone' => 'Clone License',
'filetype_info' => 'Allowed filetypes are png, gif, jpg, doc, docx, pdf, txt, rar and zip.',
'history_for' => 'History for ',
'in_out' => 'In/Out',
'info' => 'License Info',
-2
View File
@@ -12,6 +12,4 @@ return array(
'address' => 'Address',
'zip' => 'Postal Code',
'locations' => 'Locations',
'parent' => 'Parent',
'currency' => 'Location Currency', // this is deprecated
);
+1 -3
View File
@@ -7,10 +7,8 @@ return array(
'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',
'default_currency' => 'Default Currency',
'default_eula_text' => 'Default EULA',
'default_eula_help_text' => 'You can also associate custom EULAs to specific asset categories.',
'display_asset_name' => 'Display Asset Name',
@@ -34,7 +32,7 @@ return array(
'qr_text' => 'QR Code Text',
'setting' => 'Setting',
'settings' => 'Settings',
'site_name' => 'Site Name',
'site_name' => 'Site Name',
'slack_botname' => 'Slack Botname',
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
+2 -9
View File
@@ -5,7 +5,6 @@ return array(
'accessories' => 'Accessories',
'accessory' => 'Accessory',
'action' => 'Action',
'activity_report' => 'Activity Report',
'address' => 'Address',
'admin' => 'Admin',
@@ -21,9 +20,8 @@ return array(
'avatar_delete' => 'Delete Avatar',
'avatar_upload' => 'Upload Avatar',
'back' => 'Back',
'bad_data' => 'Nothing found. Maybe bad data?',
'cancel' => 'Cancel',
'categories' => 'Categories',
'categories' => 'Asset/Accessory Categories',
'category' => 'Category',
'changeemail' => 'Change Email Address',
'changepassword' => 'Change Password',
@@ -31,13 +29,11 @@ return array(
'checkin_from' => 'Checkin from',
'checkout' => 'Checkout',
'city' => 'City',
'consumable' => 'Consumable',
'consumables' => 'Consumables',
'country' => 'Country',
'create' => 'Create New',
'created_asset' => 'created asset',
'created_at' => 'Created at',
'currency' => '$', // this is deprecated
'currency' => '$',
'current' => 'Current',
'custom_report' => 'Custom Asset Report',
'dashboard' => 'Dashboard',
@@ -93,8 +89,6 @@ return array(
'previous' => 'Previous',
'processing' => 'Processing',
'profile' => 'Your profile',
'qty' => 'QTY',
'quanitity' => 'Quanitity',
'ready_to_deploy' => 'Ready to Deploy',
'recent_activity' => 'Recent Activity',
'reports' => 'Reports',
@@ -121,7 +115,6 @@ return array(
'type' => 'Type',
'undeployable' => 'Un-deployable',
'unknown_admin' => 'Unknown Admin',
'update' => 'Update',
'uploaded' => 'Uploaded',
'user' => 'User',
'users' => 'Users',

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