diff --git a/.travis.yml b/.travis.yml index e3d66dd232..f708c0aa51 100755 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ before_script: - cp app/config/testing/database.example.php app/config/testing/database.php - cp app/config/testing/mail.example.php app/config/testing/mail.php - composer self-update - - composer install --prefer-source --no-interaction + - composer install --prefer-source - php artisan key:generate --env=testing - php artisan migrate:install --env=testing --no-interaction -vvv - php artisan migrate --package cartalyst/sentry --env=testing --no-interaction -vvv diff --git a/CHANGELOG.md b/CHANGELOG.md index bc77bd9e5c..a75bf870a1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,175 @@ +### v1.2.6.1 - Released Mar 12, 2015 08:25:28 +* view • Fixed layout for remember me button +* view • Trying to fix pre-commit hook :( +* view • Fixes #579 - user cannot accept more than once +* view • Fixes #602 for strict_mode +* view • Fixes #605 - hides user requestable view from admins +* view • Fixes #596 - better routes for checking in multiple items from user +* view • Added #596 fix for accessories +* view • Fixes #280 - updated link to use config url +* view • Fixes #597 - print-friendly view on users +* view • Fixed DB format for nullable EULA +* view • ref #599. showing groups in user detail view. fixes a small design bug with group edit view +* view • Updated Sentry version to fix #625 +* view • Merge pull request #629 from uberbrady/unicode_fix +* view • Fix #637 - Remove Deleted Models from drop down +* view • Fixes #645 - adds zip and rar to filetype + + +### v1.2.6 - Released Feb 28, 2015 08:27:45 + + +### v1.2.6-beta - Released Feb 27, 2015 03:17:06 +#### This is a pre-release +* view • Fixed missing checkedout-to info on asset view +* view • Fixed a bug when no assets are in table that the autoincrement method blows up. Also optimzed the logic to get max id instead of popping top off creation date. +* view • Fixes #476 - added logo upload and header color +* view • Fix #541 - Headers not being skipped if checked +* view • Fixes #546 - only insert data if values exist +* view • Fix activate for strict db +* view • Fixes #423 +* view • Fixes #163 - accept acceptance + eula +* view • Merge conflict resolution. Added a use at the same line as remote. Fixed +* view • Fixed bug for reporting on upload in dashboard +* view • Fixed font path +* view • Fixed chevrons +* view • Fixed icon +* view • Fix language string for create accessory +* view • Mobile fixes +* view • more small mobile fixes +* view • Fixes #567 - bug in depreciation report csv export +* view • Fixed relation between accessory and category +* view • Fixes #565 - Soft Delete Models and Allow Restore +* view • Reverting icon fix +* view • Fixed EULA mail +* view • Fixed back arrow +* view • Fixes #538 - sortable tables +* view • Fixed funky layout from datatables +* view • Fixed user relationship +* view • Fixed accessory relationship +* view • Fixed attach to relation +* view • Fixed arrow icon +* view • Fixed user relationship +* view • Fixes accessory relationshop for pivot +* view • Fixed error icon +* view • Fixed bad method call in accessories on delete +* view • Fixed assetlog display +* view • Fixed typo for accessories accept + + +### v1.2.5 - Released Feb 18, 2015 03:18:10 +* view • Fix #475 and styling +* view • Merge pull request #516 from splaer/fix-475 +* view • Fixes error when no model present because new asset +* view • Possible fix for #518 - license count issue +* view • Fix #517 - User Requestable Assets +* view • Fixed mac address not showing +* view • Fixes #520 - state no longer required +* view • Fixes #520 postal code requirement +* view • Fixes #525 - added serial to asset model UI +* view • Fixes #523 - added file uploads to assets +* view • Fixes #457 - added bulk options to hardware +* view • Fixed blade reference +* view • Fixed seeder with duplicate ID +* view • Fixes #440 - removed unique constraint on serial +* view • Fixes #439 - loads javascript and CSS locally +* view • Fixed the depreciation report, fixes to calculate current depreciated value (which were only used there). Additional fixes and refactoring around Depreciable, in terms of how assets get depreciation via models, and licenses get depreciation directly. + + +### v1.2.4 - Released Feb 12, 2015 06:57:47 +* view • Fixed checkout logic for new assigned_to +* view • Fixes checkin button on view +* view • Fixed wonky checkin/checkout buttons +* view • Fix RTD query to not display checked out asset +* view • Fixed scope chaining on assigned_to +* view • Fixed seeder +* view • Fix count in header +* view • Fixed language file for status label messages +* view • Fixed migration for to set assigned_to to null per #506 +* view • Fix licenses so null instead of 0 +* view • Fixed licenses so null instead of 0 +* view • Fixes #508 - compacted UI for licenses overview +* view • Fixes #329 and #454 - added category asset view +* view • Fixes #382 - allow admins to restore deleted assets +* view • Fixes #387 - sortable asset view by manufacturer +* view • Fixed naming conflict for requestable +* view • Fix for wrong math on remaining licenses when assigned to an asset +* view • Fix for error when asset has null status +* view • Fixed intenting +* view • Fixes #509 - added MAC address as model option + + +### v1.2.4-beta - Released Feb 11, 2015 01:11:40 +#### This is a pre-release +* view • Fixes #477 - wrong sidebar on asset view +* view • Merge pull request #498 from snipe/fixes/477 +* view • Fixes #499 - timestamps in asset logs +* view • Fixes #484 +* view • Fix RTD bug +* view • Fixes #502 - normalized statuses +* view • Small fix for pending status +* view • Fixed spacer in sidenav for list all + + +### v1.2.3 - Released Feb 09, 2015 12:22:12 + + +### v1.2.3-beta - Released Feb 07, 2015 06:02:52 +#### This is a pre-release +* view • Fixes issue related to #471 - assigning to user ID 0 causes erro +* view • Possible fix for #484 - fullname issue +* view • Fixed safe mode issue with license seeder +* view • Fixes #488 - longer user jobtitle +* view • Fixes #487 - maintained and purchase order in strict mode +* view • Resolves #478 - redirects non-reporting users to view assets page +* view • Fixes #483 - line breaks in notes on view +* view • Fix reporting error on depreciation +* view • Possible fix for #491 - solving for giticide on package dep +* view • More travis fixes +* view • Fix for asset log incorrectly using soft deletes +* view • Minor display fixes +* view • Fixed datetime + + +### v1.2.2 - Released Jan 22, 2015 11:41:36 +* view • Fixes #447 - added asset log entry on save +* view • Fixes #451 - allows spaces in state name +* view • Fixes #432 - add model name to checkout +* view • Fixed language strings for incrementing IDs + + +### v1.2.1 - Released Jan 22, 2015 09:24:01 + + +### v1.2.0 - Released Jan 22, 2015 09:24:01 +* view • Fixed changelog +* view • Possibly fixes #343 +* view • Fix #342 +* view • Fix class on th +* view • Fixed english language string +* view • Fix array check for empty rows +* view • Fix Report Langs +* view • Fix License form langs +* view • Fixes #362, reduced asset name to 2 char min +* view • Fixed typo in english +* view • Fixes #374 to keep the requirement to PHP 5.4 +* view • Fix #377 - Checkout users last_name, first_name +* view • Fixed #373 - added ability to auto-increment asset tags +* view • Fixes #348 - remove constraints on license keys +* view • Fixes #367 - added model number to dropdown +* view • Fixes #386 and #273 - altered column type to text +* view • Formattig fixes for #386 +* view • Fix #388 - License not showing checked out in view +* view • Check if ->adminuser->id isset before trying to print the fullName so we can catch when a user that created an asset has been deleted. Fixes #349 +* view • fixed #435. using namespace with route groups to increase the readability +* view • Merge pull request #436 from rashivkp/fix-435 +* view • Fixes #469 +* view • Fixes #467 +* view • Fixes #468 - updated ordering on license checkout + + ### v1.1 - Released Nov 06, 2014 02:16:26 * view • Added DB Prefix to Migrations * view • Fixed operator for setting bool display diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..cd046319e5 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,13 @@ +## Contributor Code of Conduct + +As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion. + +Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/) \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5d92581d85..ae8746df79 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,10 @@ # Contribution Guidelines -Please submit all issues and pull requests to the [snipe/snipe-it](http://github.com/snipe/snipe-it) repository in the `develop` branch! +**Before opening an issue to report a bug or request help, make sure you've checked the [Common Issues](http://snipeitapp.com/documentation/common-issues/) and [Getting Help](http://snipeitapp.com/documentation/getting-help/) pages.** + +## Developing on Snipe-IT + +Please submit all pull requests to the [snipe/snipe-it](http://github.com/snipe/snipe-it) repository in the `develop` branch! **As you're working on bug-fixes or features, please break them out into their own feature branches and open the pull request against your feature branch**. It makes it _much_ easier to decipher down the road, as you open multiple pull requests over time, and makes it much easier for me to approve pull requests quickly. @@ -19,3 +23,9 @@ The labels we use in GitHub Issues and Waffle.io indicate whether we've confirme If you're not a coder but want to give back to the project and you're fluent in other languages, that's okay too. We use [CrowdIn](https://crowdin.com) to manage translations, and it makes it super-simple for you to add translations (or validate proposed translations) to the project without messing with code. __Check out [the Snipe-IT CrowdIn translation project here](https://crowdin.com/project/snipe-it/)__. Thanks! + +----- + +## Contributor Code of Conduct + +Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. diff --git a/README.md b/README.md index 75aee597d8..7a177f0552 100755 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is a FOSS project for asset management in IT Operations. Knowing who has wh It is built on [Laravel 4.2](http://laravel.com) and uses the [Sentry 2](https://github.com/cartalyst/sentry) package. -This project is being actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](http://snipeitapp.com/demo.php).) +This project is being actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](http://snipeitapp.com/demo/).) __This is web-based software__. This means there there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows. @@ -65,3 +65,8 @@ Whenever you pull down a new version from master or develop, when you grab the [ php artisan migrate Forgetting to do this can mean your DB might end up out of sync with the new files you just pulled, or you may have some funky cached autoloader values. It's a good idea to get into the habit of running these every time you pull anything new down. If there are no database changes to migrate, it won't hurt anything to run migrations anyway. + +## Contributor Code of Conduct + +Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. + diff --git a/app/config/local/mail.example.php b/app/config/local/mail.example.php index 8d882a11e0..50e438f6d3 100755 --- a/app/config/local/mail.example.php +++ b/app/config/local/mail.example.php @@ -28,7 +28,7 @@ return array( | */ - 'host' => 'smtp.mailgun.org', + 'host' => 'smtp.mandrillapp.com', /* |-------------------------------------------------------------------------- diff --git a/app/config/packages/chumper/datatable/.gitkeep b/app/config/packages/chumper/datatable/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/app/config/packages/chumper/datatable/config.php b/app/config/packages/chumper/datatable/config.php new file mode 100644 index 0000000000..34777b1dc9 --- /dev/null +++ b/app/config/packages/chumper/datatable/config.php @@ -0,0 +1,208 @@ + array( + + /* + |-------------------------------------------------------------------------- + | Table class + |-------------------------------------------------------------------------- + | + | Class(es) added to the table + | Supported: string + | + */ + + 'class' => 'table table-bordered', + + /* + |-------------------------------------------------------------------------- + | Table ID + |-------------------------------------------------------------------------- + | + | ID given to the table. Used for connecting the table and the Datatables + | jQuery plugin. If left empty a random ID will be generated. + | Supported: string + | + */ + + 'id' => '', + + /* + |-------------------------------------------------------------------------- + | DataTable options + |-------------------------------------------------------------------------- + | + | jQuery dataTable plugin options. The array will be json_encoded and + | passed through to the plugin. See https://datatables.net/usage/options + | for more information. + | Supported: array + | + */ + + 'options' => array( + + "pagingType" => "full_numbers", + 'processing'=>true, + 'language'=>array( + 'processing'=>' Loading...' + ), + 'deferRender'=> true, + 'stateSave'=> true, + 'paging'=>true, + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + 'sButtonText'=>'Copy', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), + array( + 'sExtends'=>'print', + 'sButtonText'=>'Print', + 'mColumns'=>'visible', + 'bShowAll'=>true, + ), + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + 'sButtonText'=>'csv', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), + array( + 'sExtends'=>'xls', + 'sButtonText'=>'XLS', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), + array( + 'sExtends'=>'pdf', + 'sButtonText'=>'PDF', + 'mColumns'=>'visible', + 'bFooter'=>false, + ) + ) + ) + ) + ), + + ), + + /* + |-------------------------------------------------------------------------- + | DataTable callbacks + |-------------------------------------------------------------------------- + | + | jQuery dataTable plugin callbacks. The array will be json_encoded and + | passed through to the plugin. See https://datatables.net/usage/callbacks + | for more information. + | Supported: array + | + */ + + 'callbacks' => array( + "stateSaveCallback"=>"function (oSettings, oData) { + localStorage.setItem('DataTables_'+window.location.pathname, JSON.stringify(oData)); + }", + "stateLoadCallback"=>"function (oSettings) { + return JSON.parse(localStorage.getItem('DataTables_'+window.location.pathname)); + }", + ), + + /* + |-------------------------------------------------------------------------- + | Skip javascript in table template + |-------------------------------------------------------------------------- + | + | Determines if the template should echo the javascript + | Supported: boolean + | + */ + + 'noScript' => false, + + + /* + |-------------------------------------------------------------------------- + | Table view + |-------------------------------------------------------------------------- + | + | Template used to render the table + | Supported: string + | + */ + + 'table_view' => 'datatable::template', + + + /* + |-------------------------------------------------------------------------- + | Script view + |-------------------------------------------------------------------------- + | + | Template used to render the javascript + | Supported: string + | + */ + + 'script_view' => 'datatable::javascript', + + + ), + + + /* + |-------------------------------------------------------------------------- + | Engine specific configuration options. + |-------------------------------------------------------------------------- + | + */ + + 'engine' => array( + + /* + |-------------------------------------------------------------------------- + | Search for exact words + |-------------------------------------------------------------------------- + | + | If the search should be done with exact matching + | Supported: boolean + | + */ + + 'exactWordSearch' => false, + + /* + |-------------------------------------------------------------------------- + | Enable to display all records. + |-------------------------------------------------------------------------- + | + | Be careful! It may be overloaded with large record. + | Supported: boolean + | + */ + 'enableDisplayAll' => false, + /* + |-------------------------------------------------------------------------- + | Limit display when iDisplayLength invaild + |-------------------------------------------------------------------------- + */ + 'defaultDisplayLength' => 10, + ) + + +); diff --git a/app/config/production/mail.example.php b/app/config/production/mail.example.php index 8d882a11e0..50e438f6d3 100755 --- a/app/config/production/mail.example.php +++ b/app/config/production/mail.example.php @@ -28,7 +28,7 @@ return array( | */ - 'host' => 'smtp.mailgun.org', + 'host' => 'smtp.mandrillapp.com', /* |-------------------------------------------------------------------------- diff --git a/app/config/staging/mail.example.php b/app/config/staging/mail.example.php index 8d882a11e0..50e438f6d3 100755 --- a/app/config/staging/mail.example.php +++ b/app/config/staging/mail.example.php @@ -28,7 +28,7 @@ return array( | */ - 'host' => 'smtp.mailgun.org', + 'host' => 'smtp.mandrillapp.com', /* |-------------------------------------------------------------------------- diff --git a/app/config/testing/mail.example.php b/app/config/testing/mail.example.php index a4da87593b..22ebbad7e0 100755 --- a/app/config/testing/mail.example.php +++ b/app/config/testing/mail.example.php @@ -28,7 +28,7 @@ return array( | */ - 'host' => 'smtp.mailgun.org', + 'host' => 'smtp.mandrillapp.com', /* |-------------------------------------------------------------------------- diff --git a/app/config/version.php b/app/config/version.php index 7c1795ab94..177395f244 100644 --- a/app/config/version.php +++ b/app/config/version.php @@ -1,5 +1,5 @@ 'v1.2.6-26', - 'hash_version' => 'v1.2.6-26-gbb33e3c', + 'app_version' => 'v1.2.6.1-166', + 'hash_version' => 'v1.2.6.1-166-g51148f1', ); \ No newline at end of file diff --git a/app/controllers/account/ChangeEmailController.php b/app/controllers/account/ChangeEmailController.php index 8ef3e8d19b..6907181c77 100755 --- a/app/controllers/account/ChangeEmailController.php +++ b/app/controllers/account/ChangeEmailController.php @@ -32,16 +32,18 @@ class ChangeEmailController extends AuthorizedController */ public function postIndex() { - // Declare the rules for the form validation - $rules = array( - 'current_password' => 'required|between:3,32', - 'email' => 'required|email|unique:users,email,'.Sentry::getUser()->email.',email', - 'email_confirm' => 'required|same:email', - ); + if (Config::get('app.lock_passwords')) { return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords')); } else { + + // Declare the rules for the form validation + $rules = array( + 'current_password' => 'required|between:3,32', + 'email' => 'required|email|unique:users,email,'.Sentry::getUser()->email.',email', + 'email_confirm' => 'required|same:email', + ); // Create a new validator instance from our validation rules $validator = Validator::make(Input::all(), $rules); diff --git a/app/controllers/account/ChangePasswordController.php b/app/controllers/account/ChangePasswordController.php index 29e1737151..aefdb629e3 100755 --- a/app/controllers/account/ChangePasswordController.php +++ b/app/controllers/account/ChangePasswordController.php @@ -32,16 +32,19 @@ class ChangePasswordController extends AuthorizedController */ protected function postIndex() { - // Declare the rules for the form validation + + + if (Config::get('app.lock_passwords')) { + return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords')); + } else { + + // Declare the rules for the form validation $rules = array( 'old_password' => 'required|min:6', 'password' => 'required|min:6', 'password_confirm' => 'required|same:password', ); - - if (Config::get('app.lock_passwords')) { - return Redirect::route('change-password')->with('error', Lang::get('admin/users/table.lock_passwords')); - } else { + // Create a new validator instance from our validation rules $validator = Validator::make(Input::all(), $rules); diff --git a/app/controllers/admin/AccessoriesController.php b/app/controllers/admin/AccessoriesController.php index b8d7932011..1052ae607d 100755 --- a/app/controllers/admin/AccessoriesController.php +++ b/app/controllers/admin/AccessoriesController.php @@ -14,6 +14,7 @@ use View; use User; use Actionlog; use Mail; +use Datatable; class AccessoriesController extends AdminController { @@ -25,11 +26,7 @@ class AccessoriesController extends AdminController public function getIndex() { - // Grab all the accessories - $accessories = Accessory::orderBy('created_at', 'DESC')->get(); - - // Show the page - return View::make('backend/accessories/index', compact('accessories')); + return View::make('backend/accessories/index'); } @@ -360,7 +357,54 @@ class AccessoriesController extends AdminController return Redirect::to("admin/accessories")->with('error', Lang::get('admin/accessories/message.checkin.error')); } + public function getDatatable() + { + $accessories = Accessory::select(array('id','name','qty')) + ->whereNull('deleted_at') + ->orderBy('created_at', 'DESC'); + $accessories = $accessories->get(); + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($accessories) + { + return 'numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').''; + }); + + return Datatable::collection($accessories) + ->addColumn('name',function($accessories) + { + return link_to('admin/accessories/'.$accessories->id.'/view', $accessories->name); + }) + ->addColumn('qty',function($accessories) + { + return $accessories->qty; + }) + ->addColumn('numRemaining',function($accessories) + { + return $accessories->numRemaining(); + }) + ->addColumn($actions) + ->searchColumns('name','qty','numRemaining','actions') + ->orderColumns('name','qty','numRemaining','actions') + ->make(); + } + + public function getDataView($accessoryID) + { + $accessory = Accessory::find($accessoryID); + $accessory_users = $accessory->users; + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($accessory_users){ + return 'Checkin'; + }); + + return Datatable::collection($accessory_users) + ->addColumn('name',function($accessory_users) + { + return link_to('/admin/users/'.$accessory_users->id.'/view', $accessory_users->fullName()); + }) + ->addColumn($actions) + ->make(); + } } diff --git a/app/controllers/admin/AssetsController.php b/app/controllers/admin/AssetsController.php index ab9e3d7c91..ac8cdc1898 100755 --- a/app/controllers/admin/AssetsController.php +++ b/app/controllers/admin/AssetsController.php @@ -23,6 +23,8 @@ use Location; use Log; use DNS2D; use Mail; +use Datatable; +use TCPDF; class AssetsController extends AdminController { @@ -36,40 +38,7 @@ class AssetsController extends AdminController public function getIndex() { - // Grab all the assets - - $assets = Asset::with('model','assigneduser','assetstatus','defaultLoc','assetlog')->Hardware(); - // Filter results - if (Input::get('Pending')) { - $assets->Pending(); - } elseif (Input::get('RTD')) { - $assets->RTD(); - } elseif (Input::get('Undeployable')) { - $assets->Undeployable(); - } elseif (Input::get('Archived')) { - $assets->Archived(); - } elseif (Input::get('Requestable')) { - $assets->RequestableAssets(); - } elseif (Input::get('Deployed')) { - $assets->Deployed(); - } elseif (Input::get('Deleted')) { - $assets->withTrashed()->Deleted(); - } - - $assets = $assets->orderBy('asset_tag', 'ASC')->get(); - - - // Paginate the users - /**$assets = $assets->paginate(Setting::getSettings()->per_page) - ->appends(array( - 'Pending' => Input::get('Pending'), - 'RTD' => Input::get('RTD'), - 'Undeployable' => Input::get('Undeployable'), - 'Deployed' => Input::get('Deployed'), - )); - **/ - - return View::make('backend/hardware/index', compact('assets')); + return View::make('backend/hardware/index'); } @@ -187,6 +156,8 @@ class AssetsController extends AdminController $asset->rtd_location_id = e(Input::get('rtd_location_id')); } + $asset->mac_address = ($checkModel == true) ? e(Input::get('mac_address')) : NULL; + // Save the asset data $asset->name = e(Input::get('name')); $asset->serial = e(Input::get('serial')); @@ -194,7 +165,6 @@ class AssetsController extends AdminController $asset->order_number = e(Input::get('order_number')); $asset->notes = e(Input::get('notes')); $asset->asset_tag = e(Input::get('asset_tag')); - $asset->mac_address = e(Input::get('mac_address')); $asset->user_id = Sentry::getId(); $asset->archived = '0'; $asset->physical = '1'; @@ -321,6 +291,9 @@ class AssetsController extends AdminController } else { $asset->rtd_location_id = e(Input::get('rtd_location_id')); } + + + $asset->mac_address = ($checkModel == true) ? e(Input::get('mac_address')) : NULL; // Update the asset data $asset->name = e(Input::get('name')); @@ -330,7 +303,6 @@ class AssetsController extends AdminController $asset->asset_tag = e(Input::get('asset_tag')); $asset->notes = e(Input::get('notes')); $asset->physical = '1'; - $asset->mac_address = e(Input::get('mac_address')); // Was the asset updated? if($asset->save()) { @@ -465,7 +437,7 @@ class AssetsController extends AdminController $data['log_id'] = $logaction->id; $data['eula'] = $asset->getEula(); $data['first_name'] = $user->first_name; - $data['item_name'] = $asset->name; + $data['item_name'] = $asset->assetNameForEula(); $data['require_acceptance'] = $asset->requireAcceptance(); @@ -828,18 +800,51 @@ class AssetsController extends AdminController **/ public function postBulkEdit($assets = null) { + + if (!Input::has('edit_asset')) { + return Redirect::back()->with('error', 'No assets selected'); + } else { + $asset_raw_array = Input::get('edit_asset'); + foreach ($asset_raw_array as $asset_id => $value) { + $asset_ids[] = $asset_id; + + } + + } + + if (Input::has('bulk_actions')) { + + + // Create labels + if (Input::get('bulk_actions')=='labels') { + $assets = Asset::find($asset_ids); + $assetcount = count($assets); + $count = 0; + + $settings = Setting::getSettings(); + return View::make('backend/hardware/labels')->with('assets',$assets)->with('settings',$settings)->with('count',$count); - if (Input::has('edit_asset')) { + + // Bulk edit + } elseif (Input::get('bulk_actions')=='edit') { + + $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'); + + return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list); - $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'); + + } + + } else { + return Redirect::back()->with('error', 'No action selected'); } - return View::make('backend/hardware/bulk')->with('assets',$assets)->with('supplier_list',$supplier_list)->with('statuslabel_list',$statuslabel_list)->with('location_list',$location_list); + } @@ -910,6 +915,119 @@ 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')); + + 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(); + + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($assets) + { + if ($assets->deleted_at=='') { + return ' '; + } elseif ($assets->model->deleted_at=='') { + return ''; + } + + }); + + $inout = new \Chumper\Datatable\Columns\FunctionColumn('inout', function ($assets) + { + if (($assets->assigned_to !='') && ($assets->assigned_to > 0)) { + return ''.Lang::get('general.checkin').''; + } else { + return ''.Lang::get('general.checkout').''; + } + }); + + + + return Datatable::collection($assets) + ->addColumn('',function($assets) + { + return ''; + }) + ->addColumn('name',function($assets) + { + return ''.$assets->name.''; + }) + + ->showColumns('asset_tag', 'serial') + + ->addColumn('model',function($assets) + { + return $assets->model->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) + { + if ($assets->assigned_to && $assets->assigneduser->userloc) { + return link_to('admin/location/'.$assets->assigneduser->userloc->id.'/edit', $assets->assigneduser->userloc->name); + } elseif ($assets->defaultLoc){ + return link_to('admin/location/'.$assets->defaultLoc->id.'/edit', $assets->defaultLoc->name); + } + }) + ->addColumn('category',function($assets) + { + return $assets->model->category->name; + + }) + + ->addColumn('eol',function($assets) + { + return $assets->eol_date(); + }) + + + ->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') + ->orderColumns('name', 'asset_tag', 'serial', 'model', 'status','location','eol','checkout_date', 'inout') + ->make(); + + } } diff --git a/app/controllers/admin/CategoriesController.php b/app/controllers/admin/CategoriesController.php index d46c18365c..476331ba84 100755 --- a/app/controllers/admin/CategoriesController.php +++ b/app/controllers/admin/CategoriesController.php @@ -11,6 +11,7 @@ use Sentry; use Str; use Validator; use View; +use Datatable; class CategoriesController extends AdminController { @@ -22,11 +23,8 @@ class CategoriesController extends AdminController public function getIndex() { - // Grab all the categories - $categories = Category::orderBy('created_at', 'DESC')->get(); - // Show the page - return View::make('backend/categories/index', compact('categories')); + return View::make('backend/categories/index'); } @@ -215,7 +213,65 @@ class CategoriesController extends AdminController } + public function getDatatable() + { + // Grab all the categories + $categories = Category::orderBy('created_at', 'DESC')->get(); + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($categories) { + return ''; + }); + + return Datatable::collection($categories) + ->showColumns('name') + ->addColumn('category_type', function($categories) { + return ucwords($categories->category_type); + }) + ->addColumn('count', function($categories) { + return ($categories->category_type=='asset') ? link_to('/admin/settings/categories/'.$categories->id.'/view', $categories->assetscount()) : $categories->accessoriescount(); + }) + ->addColumn('acceptance', function($categories) { + return ($categories->require_acceptance=='1') ? '' : ''; + }) + ->addColumn('eula', function($categories) { + return ($categories->getEula()) ? '' : ''; + }) + ->addColumn($actions) + ->searchColumns('name','category_type','count','acceptance','eula','actions') + ->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) + { + if (($categoryassets->assigned_to !='') && ($categoryassets->assigned_to > 0)) { + return ''.Lang::get('general.checkin').''; + } else { + return ''.Lang::get('general.checkout').''; + } + }); + + return Datatable::collection($categoryassets) + ->addColumn('name', function ($categoryassets) { + return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->name); + }) + ->addColumn('asset_tag', function ($categoryassets) { + return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->asset_tag); + }) + ->addColumn('assigned_to', function ($categoryassets) { + if ($categoryassets->assigned_to) { + return link_to('/admin/users/'.$categoryassets->assigned_to.'/view', $categoryassets->assigneduser->fullName()); + } + }) + ->addColumn($actions) + ->searchColumns('name','asset_tag','assigned_to','actions') + ->orderColumns('name','asset_tag','assigned_to','actions') + ->make(); + } } diff --git a/app/controllers/admin/LicensesController.php b/app/controllers/admin/LicensesController.php index 4af089534a..94a6196ce5 100755 --- a/app/controllers/admin/LicensesController.php +++ b/app/controllers/admin/LicensesController.php @@ -19,6 +19,7 @@ use Supplier; use Validator; use View; use Response; +use Datatable; class LicensesController extends AdminController { @@ -33,11 +34,8 @@ class LicensesController extends AdminController public function getIndex() { - // Grab all the licenses - $licenses = License::orderBy('created_at', 'DESC')->get(); - // Show the page - return View::make('backend/licenses/index', compact('licenses')); + return View::make('backend/licenses/index'); } @@ -777,4 +775,33 @@ class LicensesController extends AdminController return Redirect::route('licenses')->with('error', $error); } } + + public function getDatatable() { + $licenses = License::orderBy('created_at', 'DESC')->get(); + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($licenses) { + return ''; + }); + + return Datatable::collection($licenses) + ->addColumn('name', function($licenses) { + return link_to('/admin/licenses/'.$licenses->id.'/view', $licenses->name); + }) + ->addColumn('serial', function($licenses) { + return link_to('/admin/licenses/'.$licenses->id.'/view', mb_strimwidth($licenses->serial, 0, 50, "...")); + }) + ->addColumn('totalSeats', function($licenses) { + return $licenses->totalSeatsByLicenseID(); + }) + ->addColumn('remaining', function($licenses) { + return $licenses->remaincount(); + }) + ->addColumn('purchase_date', function($licenses) { + return $licenses->purchase_date; + }) + ->addColumn($actions) + ->searchColumns('name','serial','totalSeats','remaining','purchase_date','actions') + ->orderColumns('name','serial','totalSeats','remaining','purchase_date','actions') + ->make(); + } } diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index 1e548e3ce0..8a8fcb7d4a 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -14,6 +14,7 @@ use Manufacturer; use Str; use Validator; use View; +use Datatable; class ModelsController extends AdminController { @@ -24,16 +25,8 @@ class ModelsController extends AdminController */ public function getIndex() { - // Grab all the models - $models = Model::orderBy('created_at', 'DESC'); - if (Input::get('Deleted')) { - $models->withTrashed()->Deleted(); - } - - $models = $models->with('category','assets','depreciation')->get(); - // Show the page - return View::make('backend/models/index', compact('models')); + return View::make('backend/models/index'); } /** @@ -315,6 +308,76 @@ class ModelsController extends AdminController return $view; } + + public function getDatatable($status = null) + { + $models = Model::orderBy('created_at', 'DESC')->with('category','assets','depreciation'); + ($status != 'Deleted') ?: $models->withTrashed()->Deleted();; + $models = $models->get(); + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($models) { + if($models->deleted_at=='') { + return ''; + } else { + return ''; + } + }); + + return Datatable::collection($models) + ->addColumn('name', function ($models) { + return link_to('/hardware/models/'.$models->id.'/view', $models->name); + }) + ->showColumns('modelno') + ->addColumn('asset_count', function($models) { + return $models->assets->count(); + }) + ->addColumn('depreciation', function($models) { + return (($models->depreciation)&&($models->depreciation->id > 0)) ? $models->depreciation->name.' ('.$models->depreciation->months.')' : Lang::get('general.no_depreciation'); + }) + ->addColumn('category', function($models) { + return ($models->category) ? $models->category->name : ''; + }) + ->addColumn('eol', function($models) { + return ($models->eol) ? $models->eol.' '.Lang::get('general.months') : ''; + }) + ->addColumn($actions) + ->searchColumns('name','modelno','asset_count','depreciation','category','eol','actions') + ->orderColumns('name','modelno','asset_count','depreciation','category','eol','actions') + ->make(); + } + + + public function getDataView($modelID) + { + $model = Model::withTrashed()->find($modelID); + $modelassets = $model->assets; + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($modelassets) + { + if (($modelassets->assigned_to !='') && ($modelassets->assigned_to > 0)) { + return ''.Lang::get('general.checkin').''; + } else { + return ''.Lang::get('general.checkout').''; + } + }); + + return Datatable::collection($modelassets) + ->addColumn('name', function ($modelassets) { + return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->name); + }) + ->addColumn('asset_tag', function ($modelassets) { + return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->asset_tag); + }) + ->showColumns('serial') + ->addColumn('assigned_to', function ($modelassets) { + if ($modelassets->assigned_to) { + return link_to('/admin/users/'.$modelassets->assigned_to.'/view', $modelassets->assigneduser->fullName()); + } + }) + ->addColumn($actions) + ->searchColumns('name','asset_tag','serial','assigned_to','actions') + ->orderColumns('name','asset_tag','serial','assigned_to','actions') + ->make(); + } } diff --git a/app/controllers/admin/ReportsController.php b/app/controllers/admin/ReportsController.php index dbb20c947b..919764ff80 100644 --- a/app/controllers/admin/ReportsController.php +++ b/app/controllers/admin/ReportsController.php @@ -45,13 +45,13 @@ class ReportsController extends AdminController Lang::get('general.model_no'), Lang::get('general.name'), Lang::get('admin/hardware/table.serial'), + Lang::get('general.status'), Lang::get('admin/hardware/table.purchase_date'), Lang::get('admin/hardware/table.purchase_cost'), Lang::get('admin/hardware/form.order'), Lang::get('admin/hardware/form.supplier'), Lang::get('admin/hardware/table.checkoutto'), - Lang::get('admin/hardware/table.location'), - Lang::get('general.status') + Lang::get('admin/hardware/table.location') ); $header = array_map('trim', $header); $rows[] = implode($header, ','); @@ -69,6 +69,11 @@ class ReportsController extends AdminController $row[] = '"'.$asset->model->modelno.'"'; $row[] = $asset->name; $row[] = $asset->serial; + if ($asset->assetstatus) { + $row[] = $asset->assetstatus->name; + } else { + $row[] = ''; + } $row[] = $asset->purchase_date; $row[] = '"'.number_format($asset->purchase_cost).'"'; if ($asset->order_number) { @@ -107,16 +112,6 @@ class ReportsController extends AdminController $row[] = ''; // Empty string if location is not set } - if (($asset->status_id == '0') && ($asset->assigned_to == '0')) { - $row[] = Lang::get('general.ready_to_deploy'); - } elseif (($asset->status_id == '') && ($asset->assigned_to == '0')) { - $row[] = Lang::get('general.pending'); - } elseif ($asset->assetstatus) { - $row[] = $asset->assetstatus->name; - } else { - $row[] = ''; - } - $rows[] = implode($row, ','); } @@ -456,4 +451,4 @@ class ReportsController extends AdminController return Redirect::to("reports/custom")->with('error', Lang::get('admin/reports/message.error')); } } -} \ No newline at end of file +} diff --git a/app/controllers/admin/SettingsController.php b/app/controllers/admin/SettingsController.php index 06e43bd38b..199012d1d8 100755 --- a/app/controllers/admin/SettingsController.php +++ b/app/controllers/admin/SettingsController.php @@ -11,6 +11,7 @@ use Str; use Validator; use View; use Image; +use Config; class SettingsController extends AdminController { @@ -63,14 +64,19 @@ class SettingsController extends AdminController // Declare the rules for the form validation + $rules = array( - "site_name" => 'required|min:3', - "per_page" => 'required|min:1|numeric', - "qr_text" => 'min:1|max:31', - "logo" => 'mimes:jpeg,bmp,png,gif', - "alert_email" => 'email', - ); + "per_page" => 'required|min:1|numeric', + "qr_text" => 'min:1|max:31', + "logo" => 'mimes:jpeg,bmp,png,gif', + "alert_email" => 'email', + ); + + if (Config::get('app.lock_passwords')==false) { + $rules['site_name'] = 'required|min:3'; + } + // Create a new validator instance from our validation rules $validator = Validator::make(Input::all(), $rules); @@ -97,13 +103,14 @@ class SettingsController extends AdminController // Update the asset data $setting->id = '1'; - $setting->site_name = e(Input::get('site_name')); - $setting->display_asset_name = e(Input::get('display_asset_name', '0')); - $setting->display_checkout_date = e(Input::get('display_checkout_date', '0')); + + if (Config::get('app.lock_passwords')==false) { + $setting->site_name = e(Input::get('site_name')); + } + $setting->per_page = e(Input::get('per_page')); $setting->qr_code = e(Input::get('qr_code', '0')); $setting->barcode_type = e(Input::get('barcode_type')); - $setting->display_eol = e(Input::get('display_eol', '0')); $setting->load_remote = e(Input::get('load_remote', '0')); $setting->qr_text = e(Input::get('qr_text')); $setting->auto_increment_prefix = e(Input::get('auto_increment_prefix')); diff --git a/app/controllers/admin/UsersController.php b/app/controllers/admin/UsersController.php index 2772f5abf1..9a8c379398 100755 --- a/app/controllers/admin/UsersController.php +++ b/app/controllers/admin/UsersController.php @@ -20,7 +20,7 @@ use Redirect; use Sentry; use Validator; use View; -use Chumper\Datatable\Facades\Datatable; +use Datatable; use League\Csv\Reader; use Mail; @@ -47,41 +47,9 @@ class UsersController extends AdminController */ public function getIndex() { - // Grab all the users - depending on the scope to include - $users = Sentry::getUserProvider()->createModel(); - - // Do we want to include the deleted users? - // the with and onlyTrashed calls currently do not work - returns an - // inconsistent array which cannot be displayed by the blade output - - if (Input::get('withTrashed')) { - - $users = $users->withTrashed(); - //$users = Sentry::getUserProvider()->createModel()->paginate(); - - } elseif (Input::get('onlyTrashed')) { - - // this is a tempoary 'fix' to display NO deleted users. - //$users = Sentry::getUserProvider()->createModel()->whereNotNull('deleted_at')->paginate(); - //$users = Sentry::findAllUsers(); - //$users = users::deletedUsers()->paginate(); - $users = Sentry::getUserProvider()->createModel()->onlyTrashed(); - //$users = users::whereNotNull('deleted_at')->paginate(); - //$users = $users->onlyTrashed(); - //$users = Users::onlyTrashed()->get(); - //$users = Sentry::getUserProvider()->createModel(); - } - - - // Paginate the users - $users = $users->paginate(100000) - ->appends(array( - 'withTrashed' => Input::get('withTrashed'), - 'onlyTrashed' => Input::get('onlyTrashed'), - )); - + // Show the page - return View::make('backend/users/index', compact('users')); + return View::make('backend/users/index'); } /** @@ -308,12 +276,16 @@ class UsersController extends AdminController // Ooops.. something went wrong return Redirect::back()->withInput()->withErrors($validator); } + + // Only update the email address if locking is set to false + if (!Config::get('app.lock_passwords')) { + $user->email = Input::get('email'); + } try { // Update the user $user->first_name = Input::get('first_name'); - $user->last_name = Input::get('last_name'); - $user->email = Input::get('email'); + $user->last_name = Input::get('last_name'); $user->employee_num = Input::get('employee_num'); $user->activated = Input::get('activated', $user->activated); $user->permissions = Input::get('permissions'); @@ -321,6 +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'); if ($user->manager_id == "") { $user->manager_id = NULL; @@ -332,7 +305,7 @@ class UsersController extends AdminController // Do we want to update the user password? - if ($password) { + if (($password) && (!Config::get('app.lock_passwords'))) { $user->password = $password; } @@ -347,19 +320,22 @@ class UsersController extends AdminController $groupsToAdd = array_diff($selectedGroups, $userGroups); $groupsToRemove = array_diff($userGroups, $selectedGroups); - // Assign the user to groups - foreach ($groupsToAdd as $groupId) { - $group = Sentry::getGroupProvider()->findById($groupId); + if (!Config::get('app.lock_passwords')) { - $user->addGroup($group); - } - - // Remove the user from groups - foreach ($groupsToRemove as $groupId) { - $group = Sentry::getGroupProvider()->findById($groupId); - - $user->removeGroup($group); - } + // Assign the user to groups + foreach ($groupsToAdd as $groupId) { + $group = Sentry::getGroupProvider()->findById($groupId); + + $user->addGroup($group); + } + + // Remove the user from groups + foreach ($groupsToRemove as $groupId) { + $group = Sentry::getGroupProvider()->findById($groupId); + + $user->removeGroup($group); + } + } // Was the user updated? if ($user->save()) { @@ -403,7 +379,7 @@ class UsersController extends AdminController // Do we have permission to delete this user? - if ($user->isSuperUser() and ! Sentry::getUser()->isSuperUser()) { + if ((!Sentry::getUser()->isSuperUser()) || (Config::get('app.lock_passwords'))) { // Redirect to the user management page return Redirect::route('users')->with('error', 'Insufficient permissions!'); } @@ -490,34 +466,7 @@ class UsersController extends AdminController } - public function getDatatable() - { - return Datatable::collection(User::all()) - ->addColumn('name',function ($model) { - $name = HTML::image($model->gravatar(), $model->first_name, array('class'=>'img-circle avatar hidden-phone', 'style'=>'max-width: 45px')); - $name .= HTML::link(URL::action('Controllers\Admin\UsersController@getView', $model->id), $model->first_name . ' ' . $model->last_name, array('class' => 'name')); - return $name; - } - ) - ->showColumns('email') - ->addColumn('assets', function ($model) { - $assets = $model->assets->count(); - return $assets; - } - ) - ->addColumn('licenses', function ($model) { - $licenses = $model->licenses->count(); - return $licenses; - } - ) - ->addColumn('activated', function ($model) { - $activated = $model->isActivated() ? '' : ''; - return $activated; - } - ) - ->make(); - } - + /** * Unsuspend the given user. * @@ -733,6 +682,87 @@ class UsersController extends AdminController } + + public function getDatatable($status = null) + { + + $users = User::with('assets','licenses','manager','sentryThrottle'); + + switch ($status) { + case 'deleted': + $users->GetDeleted(); + break; + case '': + $users->GetNotDeleted(); + break; + } + + $users = $users->orderBy('created_at', 'DESC')->get(); + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($users) + { + $action_buttons = ''; + + + if ( ! is_null($users->deleted_at)) { + $action_buttons .= ' '; + } else { + if ($users->accountStatus()=='suspended') { + $action_buttons .= ' '; + } + + $action_buttons .= ' '; + + if ((Sentry::getId() !== $users->id) && (!Config::get('app.lock_passwords'))) { + $action_buttons .= ' '; + } else { + $action_buttons .= ' '; + } + } + return $action_buttons; + + }); + + + return Datatable::collection($users) + ->addColumn('name',function($users) + { + return ''.$users->fullName().''; + }) + + ->addColumn('email',function($users) + { + return ''.$users->email.''; + }) + + ->addColumn('manager',function($users) + { + if ($users->manager) { + return ''.$users->manager->fullName().''; + } + }) + + ->addColumn('assets',function($users) + { + return $users->assets->count(); + }) + + ->addColumn('licenses',function($users) + { + return $users->licenses->count(); + }) + ->addColumn('activated',function($users) + { + return $users->isActivated() ? '' : ''; + }) + + ->addColumn($actions) + ->searchColumns('name','email','manager','activated', 'licenses','assets') + ->orderColumns('name','email','manager','activated', 'licenses','assets') + ->make(); + + } + diff --git a/app/database/migrations/2015_03_18_055327_add_note_to_user.php b/app/database/migrations/2015_03_18_055327_add_note_to_user.php new file mode 100644 index 0000000000..3b199a3827 --- /dev/null +++ b/app/database/migrations/2015_03_18_055327_add_note_to_user.php @@ -0,0 +1,32 @@ +text('notes'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function ($table) { + $table->dropColumn('notes'); + }); + } + +} diff --git a/app/database/seeds/AssetsSeeder.php b/app/database/seeds/AssetsSeeder.php index 655a03c363..6ce0bcbd36 100755 --- a/app/database/seeds/AssetsSeeder.php +++ b/app/database/seeds/AssetsSeeder.php @@ -244,8 +244,8 @@ class AssetsSeeder extends Seeder $asset[] = array( - 'name' => 'Drunken Shanenigans Laptop', - 'asset_tag' => 'NNY6564567775', + 'name' => 'Borked Laptop', + 'asset_tag' => 'NNY656456778975', 'model_id' => 2, 'serial' => 'WS99689080890', 'purchase_date' => '2012-01-02', diff --git a/app/lang/ar/admin/accessories/table.php b/app/lang/ar/admin/accessories/table.php index c86dd8adfa..239909003d 100755 --- a/app/lang/ar/admin/accessories/table.php +++ b/app/lang/ar/admin/accessories/table.php @@ -1,9 +1,9 @@ 'EULA', - 'id' => 'ID', - 'require_acceptance' => 'Acceptance', - 'title' => 'Accessory Name', + 'eula_text' => 'اتفاقية ترخيص المستخدم', + 'id' => 'رقم المعرف', + 'require_acceptance' => 'القبول', + 'title' => 'اسم الملحق', ); diff --git a/app/lang/ar/admin/users/general.php b/app/lang/ar/admin/users/general.php index 550a32854d..e8a2a63180 100755 --- a/app/lang/ar/admin/users/general.php +++ b/app/lang/ar/admin/users/general.php @@ -3,13 +3,13 @@ return array( - 'assets_user' => 'Assets assigned to :name', - 'clone' => 'Clone User', - 'contact_user' => 'Contact :name', - 'edit' => 'Edit User', - 'history_user' => 'History for :name', - 'last_login' => 'Last Login', - 'software_user' => 'Software Checked out to :name', - 'view_user' => 'View User :name', - 'usercsv' => 'CSV file', + 'assets_user' => 'الجهاز مسجل بعهدة :name', + 'clone' => 'نسخ المستخدم', + 'contact_user' => 'اتصل بـ :name', + 'edit' => 'تعديل المستخدم', + 'history_user' => 'الأرشيف الخاص بـ :name', + 'last_login' => 'آخر دخول للمستخدم', + 'software_user' => 'البرامج المسجلة لـ :name', + 'view_user' => 'عرض المستخدم :name', + 'usercsv' => 'ملف CSV', ); diff --git a/app/lang/ar/admin/users/message.php b/app/lang/ar/admin/users/message.php index c668179bb0..60f5763fbd 100755 --- a/app/lang/ar/admin/users/message.php +++ b/app/lang/ar/admin/users/message.php @@ -2,33 +2,33 @@ return array( - 'user_exists' => 'User already exists!', - 'user_not_found' => 'User [:id] does not exist.', - 'user_login_required' => 'The login field is required', - 'user_password_required' => 'The password is required.', - 'insufficient_permissions' => 'Insufficient Permissions.', - 'user_deleted_warning' => 'This user has been deleted. You will have to restore this user to edit them or assign them new assets.', + 'user_exists' => 'المستخدم موجود مسبقاً!', + 'user_not_found' => 'المستخدم [id:] غير موجود.', + 'user_login_required' => 'حقل "الدخول" مطلوب', + 'user_password_required' => 'كلمة السر مطلوبة.', + 'insufficient_permissions' => 'صلاحيات غير كافية.', + 'user_deleted_warning' => 'تم حذف المستخدم. سيكون عليك استعادة هذا المستخدم للتعديل عليه او تسليمه اجهزة جديدة.', 'success' => array( - 'create' => 'User was successfully created.', - 'update' => 'User was successfully updated.', - 'delete' => 'User was successfully deleted.', - 'ban' => 'User was successfully banned.', - 'unban' => 'User was successfully unbanned.', - 'suspend' => 'User was successfully suspended.', - 'unsuspend' => 'User was successfully unsuspended.', - 'restored' => 'User was successfully restored.', - 'import' => 'Users imported successfully.', + 'create' => 'تم إنشاء المستخدم بنجاح.', + 'update' => 'تم تعديل المستخدم بنجاح.', + 'delete' => 'تم حذف المستخدم بنجاح.', + 'ban' => 'تم حظر المستخدم بنجاح.', + 'unban' => 'تم إلغاء الحظر عن المستخدم بنجاح.', + 'suspend' => 'تم تعليق المستخدم بنجاح.', + 'unsuspend' => 'تم إلغاء التعليق عن المستخدم بنجاح.', + 'restored' => 'تم استعادة المستخدم بنجاح.', + 'import' => 'تم استيراد المستخدمين بنجاح.', ), 'error' => array( - 'create' => 'There was an issue creating the user. Please try again.', - 'update' => 'There was an issue updating the user. Please try again.', - 'delete' => 'There was an issue deleting the user. Please try again.', - 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', - 'import' => 'There was an issue importing users. Please try again.', - 'asset_already_accepted' => 'This asset has already been accepted.', + 'create' => 'حدث خطأ ما أثناء إنشاء هذا المستخدم. حاول مرة أخرى.', + 'update' => 'حدث خطأ أثناء تحديث هذا المستخدم. حاول مرة أخرى.', + 'delete' => 'حدث خطأ ما أثناء حذف هذا المستخدم. حاول مرة أخرى.', + 'unsuspend' => 'حدث خطأ ما أثناء إلغاء التعليق عن المستخدم. حاول مرة أخرى.', + 'import' => 'حدث خطأ أثناء استيراد المستخدمين. حاول مرة أخرى.', + 'asset_already_accepted' => 'هذا الجهاز تم قبوله مسبقاً.', ), ); diff --git a/app/lang/ar/admin/users/table.php b/app/lang/ar/admin/users/table.php index 02768b6874..374f93f0d7 100755 --- a/app/lang/ar/admin/users/table.php +++ b/app/lang/ar/admin/users/table.php @@ -2,32 +2,35 @@ return array( - 'activated' => 'Active', - 'allow' => 'Allow', - 'checkedout' => 'Assets', - 'created_at' => 'Created', - 'createuser' => 'Create User', - 'deny' => 'Deny', - 'email' => 'Email', - 'employee_num' => 'Employee No.', - 'first_name' => 'First Name', + 'activated' => 'نشط', + 'allow' => 'السماح', + 'checkedout' => 'الأصول', + 'created_at' => 'تم إنشاؤه', + 'createuser' => 'أنشاء مستخدم جديد', + 'deny' => 'رفض', + 'email' => 'البريد الالكتروني', + 'employee_num' => 'رقم الموظف', + 'first_name' => 'الإسم الأول', 'groupnotes' => 'Select a group to assign to the user, remember that a user takes on the permissions of the group they are assigned.', - 'id' => 'Id', + 'id' => 'رقم المعرف', 'inherit' => 'Inherit', - 'job' => 'Job Title', - 'last_login' => 'Last Login', - 'last_name' => 'Last Name', - 'location' => 'Location', - 'lock_passwords' => 'Login details cannot be changed on this installation.', - 'manager' => 'Manager', - 'name' => 'Name', - 'password_confirm' => 'Confirm Password', - 'password' => 'Password', - 'phone' => 'Phone', - 'title' => 'Title', - 'updateuser' => 'Update User', - 'username' => 'Username', - 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', - 'viewusers' => 'View Users', + 'job' => 'العنوان الوظيفي', + 'last_login' => 'اخر تسجيل دخول', + 'last_name' => 'الإسم الأخير', + 'location' => 'الموقع', + 'lock_passwords' => 'لا يمكن تغيير تفاصيل الدخول بالنسبة لهذا التنصيب.', + 'manager' => 'المدير', + 'name' => 'الاسم', + 'notes' => 'Notes', + 'password_confirm' => 'تأكيد كلمة المرور', + 'password' => 'كلمة المرور', + 'phone' => 'رقم الهاتف', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', + 'title' => 'المسمى الوظيفي', + 'updateuser' => 'تحديث المستخدم', + 'username' => 'اسم المستخدم', + 'username_note' => '(يستخدم فقط للربط مع الـ Active Directory وليس لغرض تسجيل الدخول.)', + 'cloneuser' => 'نسخ المستخدم', + 'viewusers' => 'عرض المستخدمين', ); diff --git a/app/lang/ar/general.php b/app/lang/ar/general.php index fbf27087cc..bbd3d23d16 100755 --- a/app/lang/ar/general.php +++ b/app/lang/ar/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'غير قابلة للتوزيع', 'unknown_admin' => 'إداري غير معروف', 'user' => 'المستخدم', + 'users' => 'Users', 'viewassets' => 'عرض الأصول المسجلة', 'website' => 'الموقع', 'welcome' => 'إهلاً وسهلاً، :name', diff --git a/app/lang/cs/admin/users/table.php b/app/lang/cs/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/cs/admin/users/table.php +++ b/app/lang/cs/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/cs/general.php b/app/lang/cs/general.php index e8ba42f929..5cd3572849 100755 --- a/app/lang/cs/general.php +++ b/app/lang/cs/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Ne-přiřaditelné', 'unknown_admin' => 'Neznámy správce', 'user' => 'Uživatel', + 'users' => 'Users', 'viewassets' => 'Zobrazit přiřazený majetek', 'website' => 'Webová stránka', 'welcome' => 'Vítej, :name', diff --git a/app/lang/da/admin/users/table.php b/app/lang/da/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/da/admin/users/table.php +++ b/app/lang/da/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/da/general.php b/app/lang/da/general.php index 98afe10dd0..d264e64b12 100755 --- a/app/lang/da/general.php +++ b/app/lang/da/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'Bruger', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Hjemmeside', 'welcome' => 'Velkommen, :name', diff --git a/app/lang/de/admin/hardware/form.php b/app/lang/de/admin/hardware/form.php index f36b676d17..2cf41aa4e4 100755 --- a/app/lang/de/admin/hardware/form.php +++ b/app/lang/de/admin/hardware/form.php @@ -6,8 +6,8 @@ return array( 'bulk_update_help' => 'Diese Eingabemaske erlaubt Ihnen die Aktualisierung von mehrere Assets zugleich. Füllen Sie die Felder aus welche Sie ändern möchten. Alle leeren Felder bleiben unverändert. ', 'bulk_update_warn' => 'Sie sind dabei die Eigenschaften von :asset_count assets zu bearbeiten.', 'checkedout_to' => 'Herausgegeben an', - 'checkout_date' => 'Checkout Date', - 'checkin_date' => 'Checkin Date', + 'checkout_date' => 'Ausgecheckt am', + 'checkin_date' => 'Eingecheckt am', 'checkout_to' => 'Herausgeben an', 'cost' => 'Einkaufspreis', 'create' => 'Asset erstellen', diff --git a/app/lang/de/admin/settings/general.php b/app/lang/de/admin/settings/general.php index 5feeb4bdc6..c9096291ba 100755 --- a/app/lang/de/admin/settings/general.php +++ b/app/lang/de/admin/settings/general.php @@ -6,7 +6,7 @@ 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', - 'barcode_type' => 'Barcode Type', + 'barcode_type' => 'Barcode Typ', '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', @@ -28,7 +28,7 @@ return array( 'setting' => 'Einstellung', 'settings' => 'Einstellungen', 'site_name' => 'Seitenname', - 'snipe_version' => 'Snipe-IT version', + 'snipe_version' => 'Snipe-IT Version', 'system' => 'Systeminformationen', 'update' => 'Einstellungen übernehmen', 'value' => 'Wert', diff --git a/app/lang/de/admin/users/message.php b/app/lang/de/admin/users/message.php index 779fcc00c6..e3929127d6 100755 --- a/app/lang/de/admin/users/message.php +++ b/app/lang/de/admin/users/message.php @@ -28,7 +28,7 @@ return array( 'delete' => 'Beim Entfernen des Benutzers ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.', 'unsuspend' => 'Es gab ein Problem beim reaktivieren des Benutzers. Bitte versuche es erneut.', 'import' => 'Es gab ein Problem beim importieren der Benutzer. Bitte noch einmal versuchen.', - 'asset_already_accepted' => 'This asset has already been accepted.', + 'asset_already_accepted' => 'Dieses Asset wurde bereits akzeptiert.', ), ); diff --git a/app/lang/de/admin/users/table.php b/app/lang/de/admin/users/table.php index bc4a65d87a..e3c42f9845 100755 --- a/app/lang/de/admin/users/table.php +++ b/app/lang/de/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Die Login-Daten können auf dieser Installation nicht geändert werden.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Kennwort bestätigen', 'password' => 'Passwort', 'phone' => 'Telefonnummer', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Titel', 'updateuser' => 'Benutzer aktualisieren', 'username' => 'Benutzernamen', 'username_note' => '(Dies wird für den Bind an das Active Directory benutzt, nicht für die Anmeldung.)', - 'cloneuser' => 'Benutzer kopieren', + 'cloneuser' => 'Benutzer kopieren', 'viewusers' => 'Benutzer anzeigen', ); diff --git a/app/lang/de/general.php b/app/lang/de/general.php index 70bd9e11bd..0e646c9628 100755 --- a/app/lang/de/general.php +++ b/app/lang/de/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Nicht herausgebbar', 'unknown_admin' => 'Unbekannter Administrator', 'user' => 'Nutzer', + 'users' => 'Users', 'viewassets' => 'Zugeordnete Assets anzeigen', 'website' => 'Webseite', 'welcome' => 'Wilkommen, :name', diff --git a/app/lang/en-GB/admin/users/table.php b/app/lang/en-GB/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/en-GB/admin/users/table.php +++ b/app/lang/en-GB/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/en-GB/general.php b/app/lang/en-GB/general.php index 440f2a5c94..0b4fa67713 100755 --- a/app/lang/en-GB/general.php +++ b/app/lang/en-GB/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/en/admin/users/table.php b/app/lang/en/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/en/admin/users/table.php +++ b/app/lang/en/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/en/general.php b/app/lang/en/general.php index 2dd93149e1..96ff475f39 100755 --- a/app/lang/en/general.php +++ b/app/lang/en/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/es-ES/admin/users/table.php b/app/lang/es-ES/admin/users/table.php index 13a4f3a168..6cbf2f2e01 100755 --- a/app/lang/es-ES/admin/users/table.php +++ b/app/lang/es-ES/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Los detalles de acceso no pueden ser cambiados en esta instalación.', 'manager' => 'Responsable', 'name' => 'Usuario', + 'notes' => 'Notes', 'password_confirm' => 'Confirmar Password', 'password' => 'Contraseña', 'phone' => 'Teléfono', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Puesto', 'updateuser' => 'Actualizar Usuario', 'username' => 'UsuarioUsuario', 'username_note' => '(Esto se usa solo para la conexión con Active Directory, no para el inicio de sesión.)', - 'cloneuser' => 'Clonar Usuario', + 'cloneuser' => 'Clonar Usuario', 'viewusers' => 'Ver Usuarios', ); diff --git a/app/lang/es-ES/general.php b/app/lang/es-ES/general.php index b2a45e687d..2261c24539 100755 --- a/app/lang/es-ES/general.php +++ b/app/lang/es-ES/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'No Instalable', 'unknown_admin' => 'Admin Desconocido', 'user' => 'Usuario', + 'users' => 'Users', 'viewassets' => 'Ver Equipos Asignados', 'website' => 'Sitio web', 'welcome' => 'Bienvenido, :name', diff --git a/app/lang/fi/admin/users/table.php b/app/lang/fi/admin/users/table.php index 2b61e1dc19..412c97046a 100755 --- a/app/lang/fi/admin/users/table.php +++ b/app/lang/fi/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Esimies', 'name' => 'Nimi', + 'notes' => 'Notes', 'password_confirm' => 'Vahvista Salasana', 'password' => 'Salasana', 'phone' => 'Puhelin', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Titteli', 'updateuser' => 'Päivitä Käyttäjä', 'username' => 'Käyttäjätunnus', 'username_note' => '(Tätä käytetään vain Active Directory synkronointiin, ei kirjautumista varten.)', - 'cloneuser' => 'Monista Käyttäjä', + 'cloneuser' => 'Monista Käyttäjä', 'viewusers' => 'Näytä Käyttäjät', ); diff --git a/app/lang/fi/general.php b/app/lang/fi/general.php index ca0c482130..3505534bbb 100755 --- a/app/lang/fi/general.php +++ b/app/lang/fi/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Ei-käyttöönotettavissa', 'unknown_admin' => 'Tuntematon Ylläpitäjä', 'user' => 'Käyttäjä', + 'users' => 'Users', 'viewassets' => 'Näytä Käyttöönotetut Laitteet', 'website' => 'Verkkosivu', 'welcome' => 'Tervetuloa, :name', diff --git a/app/lang/fr/admin/accessories/general.php b/app/lang/fr/admin/accessories/general.php index c0182c2a03..54001e6d46 100755 --- a/app/lang/fr/admin/accessories/general.php +++ b/app/lang/fr/admin/accessories/general.php @@ -1,19 +1,19 @@ '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', + 'about_accessories_title' => 'À propos des accessoires', + 'about_accessories_text' => 'Les accessoires sont des items que vous assignerai à des utilisateurs mais qui n\'ont pas de numéro de série (ou que vous ne désirez pas en faire un suivi). Par exemple, une souris ou un clavier.', + 'accessory_category' => 'Catégorie d\'accessoire', + 'accessory_name' => 'Nom de l\'accessoire', + 'create' => 'Créér une catégorie', + 'eula_text' => 'License de catégorie', + 'eula_text_help' => 'Ce champ vous permet de configurer vos licenses d\'utilisation pour chaque type d\'items. Si vous avez seulement une license pour tout vos items, vous pouvez cochez la case ci-dessous pour utiliser celle par défaut.', + 'require_acceptance' => 'L\'utilisateur doit confirmer qu\'il accepte les items dans cette catégorie.', + 'no_default_eula' => 'Aucune licence d\'utilisation par défaut trouvée. Ajoutez-en une dans la section "Réglages".', + 'qty' => 'Quantité', 'total' => 'Total', - 'remaining' => 'Avail', - 'update' => 'Update Category', + 'remaining' => 'Dispo', + 'update' => 'Actualiser Catégorie', 'use_default_eula' => 'Use the primary default EULA instead.', 'use_default_eula_disabled' => 'Use the primary default EULA instead. No primary default EULA is set. Please add one in Settings.', diff --git a/app/lang/fr/admin/users/table.php b/app/lang/fr/admin/users/table.php index 3b38290cc1..7af0e6026e 100755 --- a/app/lang/fr/admin/users/table.php +++ b/app/lang/fr/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Responsable', 'name' => 'Nom', + 'notes' => 'Notes', 'password_confirm' => 'Confirmer le mot de passe', 'password' => 'Mot de passe', 'phone' => 'Téléphone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Titre', 'updateuser' => 'Mettre à jour l\'utilisateur', 'username' => 'Nom d\'utilisateur', 'username_note' => '( Ceci est utilisé pour la liaison ne Active Directory , pas pour la connexion. )', - 'cloneuser' => 'Cloner l\'utilisateur', + 'cloneuser' => 'Cloner l\'utilisateur', 'viewusers' => 'Voir les utilisateurs', ); diff --git a/app/lang/fr/general.php b/app/lang/fr/general.php index 84ca58bc47..95f647868e 100755 --- a/app/lang/fr/general.php +++ b/app/lang/fr/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Non déployable', 'unknown_admin' => 'Admin inconnu', 'user' => 'Utilisateur', + 'users' => 'Users', 'viewassets' => 'Voir les actifs associés', 'website' => 'Site web', 'welcome' => 'Bienvenue, :name', diff --git a/app/lang/hu/admin/users/table.php b/app/lang/hu/admin/users/table.php index 15c146fd7b..c310e0aa98 100755 --- a/app/lang/hu/admin/users/table.php +++ b/app/lang/hu/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Felettes', 'name' => 'Név', + 'notes' => 'Notes', 'password_confirm' => 'Jelszó megerősítése', 'password' => 'Jelszó', 'phone' => 'Telefon', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/hu/general.php b/app/lang/hu/general.php index 88e455b156..69c6cb801a 100755 --- a/app/lang/hu/general.php +++ b/app/lang/hu/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'Felhasználó', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/it/admin/users/table.php b/app/lang/it/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/it/admin/users/table.php +++ b/app/lang/it/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/it/general.php b/app/lang/it/general.php index 2dd93149e1..96ff475f39 100755 --- a/app/lang/it/general.php +++ b/app/lang/it/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/ja/admin/users/table.php b/app/lang/ja/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/ja/admin/users/table.php +++ b/app/lang/ja/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/ja/general.php b/app/lang/ja/general.php index 2dd93149e1..96ff475f39 100755 --- a/app/lang/ja/general.php +++ b/app/lang/ja/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/ms/admin/users/table.php b/app/lang/ms/admin/users/table.php index 3eeab357b0..681a244b79 100755 --- a/app/lang/ms/admin/users/table.php +++ b/app/lang/ms/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Pengurus', 'name' => 'Nama', + 'notes' => 'Notes', 'password_confirm' => 'Sahkan kata laluan', 'password' => 'Kata Laluan', 'phone' => 'Telefon', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Tajuk', 'updateuser' => 'Kemaskini Pengguna', 'username' => 'Nama pengguna', 'username_note' => '(Ini digunakan untuk \'Active Directory\' sahaja, bukan untuk log masuk.)', - 'cloneuser' => 'Pendua Pengguna', + 'cloneuser' => 'Pendua Pengguna', 'viewusers' => 'Papar Pengguna', ); diff --git a/app/lang/ms/general.php b/app/lang/ms/general.php index dc58a79b24..edd32eb32b 100755 --- a/app/lang/ms/general.php +++ b/app/lang/ms/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Tidak Boleh Agih', 'unknown_admin' => 'Pentadbir Tidak Dikenali', 'user' => 'Pengguna', + 'users' => 'Users', 'viewassets' => 'Paparkan Harta yang diserahkan', 'website' => 'Tapak web', 'welcome' => 'Selamat Datang :nama', diff --git a/app/lang/nl/admin/users/table.php b/app/lang/nl/admin/users/table.php index 82e7940dc8..5d6179da39 100755 --- a/app/lang/nl/admin/users/table.php +++ b/app/lang/nl/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Naam', + 'notes' => 'Notes', 'password_confirm' => 'Bevestig uw wachtwoord', 'password' => 'Wachtwoord', 'phone' => 'Telefoon', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Titel', 'updateuser' => 'Gebruiker bijwerken', 'username' => 'Gebruikersnaam', 'username_note' => '(Dit wordt enkel gebruikt om te koppelen met de Active Directory, niet om aan te melden.)', - 'cloneuser' => 'Gebruiker klonen', + 'cloneuser' => 'Gebruiker klonen', 'viewusers' => 'Bekijk gebruikers', ); diff --git a/app/lang/nl/general.php b/app/lang/nl/general.php index 0b3410b092..c65b434394 100755 --- a/app/lang/nl/general.php +++ b/app/lang/nl/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Niet-inzetbaar', 'unknown_admin' => 'Onbekende Beheerder', 'user' => 'Gebruiker', + 'users' => 'Users', 'viewassets' => 'Bekijk toegekende materialen', 'website' => 'Website', 'welcome' => 'Welkom :name', diff --git a/app/lang/no/admin/users/table.php b/app/lang/no/admin/users/table.php index 45cea8944a..aefd7494a9 100755 --- a/app/lang/no/admin/users/table.php +++ b/app/lang/no/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Innloggingsdetaljer kan ikke endres i denne installasjonen.', 'manager' => 'Overordnet', 'name' => 'Navn', + 'notes' => 'Notes', 'password_confirm' => 'Bekreft passord', 'password' => 'Passord', 'phone' => 'Telefon', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Tittel', 'updateuser' => 'Oppdater bruker', 'username' => 'Brukernavn', 'username_note' => '(Dette brukes til binding i Active Directory, ikke for innlogging)', - 'cloneuser' => 'Klon bruker', + 'cloneuser' => 'Klon bruker', 'viewusers' => 'Vis brukere', ); diff --git a/app/lang/no/general.php b/app/lang/no/general.php index db4241d465..205bdb6de1 100755 --- a/app/lang/no/general.php +++ b/app/lang/no/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Ikke utleverbar', 'unknown_admin' => 'Ukjent admin', 'user' => 'Bruker', + 'users' => 'Users', 'viewassets' => 'Vis tildelte eiendeler', 'website' => 'Nettsted', 'welcome' => 'Velkommen, :name', diff --git a/app/lang/pl/admin/users/table.php b/app/lang/pl/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/pl/admin/users/table.php +++ b/app/lang/pl/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/pl/general.php b/app/lang/pl/general.php index f502a816a2..07caad6b30 100755 --- a/app/lang/pl/general.php +++ b/app/lang/pl/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Nie przypisane', 'unknown_admin' => 'Nieznany Administrator', 'user' => 'Użytkownik', + 'users' => 'Users', 'viewassets' => 'Zobacz przypisane aktywa', 'website' => 'Adres witryny', 'welcome' => 'Witaj, :name', diff --git a/app/lang/pt-BR/admin/users/table.php b/app/lang/pt-BR/admin/users/table.php index e3e786983b..6c1d8116d7 100755 --- a/app/lang/pt-BR/admin/users/table.php +++ b/app/lang/pt-BR/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Detalhes de login não podem ser alterados nesta instalação.', 'manager' => 'Gerenciador', 'name' => 'Nome', + 'notes' => 'Notes', 'password_confirm' => 'Confirmar Senha', 'password' => 'Senha', 'phone' => 'Telefone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Título', 'updateuser' => 'Atualizar Usuário', 'username' => 'Usuário', 'username_note' => '(Istó é usado somente para conexão do Active Directory, não para login.)', - 'cloneuser' => 'Clonar Usuário', + 'cloneuser' => 'Clonar Usuário', 'viewusers' => 'Ver Usuários', ); diff --git a/app/lang/pt-BR/general.php b/app/lang/pt-BR/general.php index dcb0b02645..c04e08090c 100755 --- a/app/lang/pt-BR/general.php +++ b/app/lang/pt-BR/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Não implantável', 'unknown_admin' => 'Administrador Desconhecido', 'user' => 'Usuário', + 'users' => 'Users', 'viewassets' => 'Ver Bens Atribuídos', 'website' => 'Site', 'welcome' => 'Bem-vindo, :name', diff --git a/app/lang/pt-PT/admin/users/table.php b/app/lang/pt-PT/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/pt-PT/admin/users/table.php +++ b/app/lang/pt-PT/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/pt-PT/general.php b/app/lang/pt-PT/general.php index 2dd93149e1..96ff475f39 100755 --- a/app/lang/pt-PT/general.php +++ b/app/lang/pt-PT/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/ro/admin/users/table.php b/app/lang/ro/admin/users/table.php index 1aff4078d1..786e46a3e5 100755 --- a/app/lang/ro/admin/users/table.php +++ b/app/lang/ro/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Nume', + 'notes' => 'Notes', 'password_confirm' => 'Confirma parola', 'password' => 'Parola', 'phone' => 'Telefon', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Titlu', 'updateuser' => 'Actualizeaza utilizator', 'username' => 'Utilizator', 'username_note' => '(Folosit numai pentru legatura cu Active Directory, nu pentru logare.)', - 'cloneuser' => 'Cloneaza utilizator', + 'cloneuser' => 'Cloneaza utilizator', 'viewusers' => 'Vezi utilizatori', ); diff --git a/app/lang/ro/general.php b/app/lang/ro/general.php index fb5a002649..14a6232adc 100755 --- a/app/lang/ro/general.php +++ b/app/lang/ro/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Nelansabil', 'unknown_admin' => 'Admin necunoscut', 'user' => 'Utilizator', + 'users' => 'Users', 'viewassets' => 'Vezi active desemnate', 'website' => 'Website', 'welcome' => 'Bine ati venit, :name', diff --git a/app/lang/ru/admin/hardware/form.php b/app/lang/ru/admin/hardware/form.php index c3db09beb7..38ce826a86 100755 --- a/app/lang/ru/admin/hardware/form.php +++ b/app/lang/ru/admin/hardware/form.php @@ -6,8 +6,8 @@ return array( 'bulk_update_help' => 'Эта форма позволяет Вам обновить несколько объектов за раз. Заполняйте только те поля, которые нужно изменить. Пустые поля останутся без изменений. ', 'bulk_update_warn' => 'Редактирование свойств :asset_count assets.', 'checkedout_to' => 'Привязан к', - 'checkout_date' => 'Checkout Date', - 'checkin_date' => 'Checkin Date', + 'checkout_date' => 'Дата выдачи', + 'checkin_date' => 'Дата возврата', 'checkout_to' => 'Привязать к', 'cost' => 'Цена', 'create' => 'Создать актив', diff --git a/app/lang/ru/admin/settings/general.php b/app/lang/ru/admin/settings/general.php index c54fa1383e..4a395b933c 100755 --- a/app/lang/ru/admin/settings/general.php +++ b/app/lang/ru/admin/settings/general.php @@ -6,7 +6,7 @@ return array( 'auto_increment_assets' => 'Генерировать автоматическое возрастание идентификационных номеров активов', 'auto_increment_prefix' => 'Префикс ( не обязательно )', 'auto_incrementing_help' => 'Включить автоматические возрастание ID активов начиная с', - 'barcode_type' => 'Barcode Type', + 'barcode_type' => 'Тип штрихкода', 'default_eula_text' => 'Пользовательское соглашение по умолчанию', 'default_eula_help_text' => 'Вы так же можете привязать собственные пользовательские соглашения к определенным категориям активов.', 'display_asset_name' => 'Отображаемое имя актива', @@ -28,7 +28,7 @@ return array( 'setting' => 'Настройка', 'settings' => 'Настройки', 'site_name' => 'Название сайта', - 'snipe_version' => 'Snipe-IT version', + 'snipe_version' => 'Версия Snipe-IT', 'system' => 'Информация о системе', 'update' => 'Обновить настройки', 'value' => 'Значение', diff --git a/app/lang/ru/admin/users/message.php b/app/lang/ru/admin/users/message.php index 1d2032ea19..88e8dbd1e6 100755 --- a/app/lang/ru/admin/users/message.php +++ b/app/lang/ru/admin/users/message.php @@ -28,7 +28,7 @@ return array( 'delete' => 'При удалении пользователя возникла проблема. Пожалуйста попробуйте снова.', 'unsuspend' => 'При разморозке пользователя возникла проблема. Пожалуйста попробуйте снова.', 'import' => 'При импорте пользователей произошла ошибка. Попробуйте еще раз.', - 'asset_already_accepted' => 'This asset has already been accepted.', + 'asset_already_accepted' => 'Этот актив уже был принят.', ), ); diff --git a/app/lang/ru/admin/users/table.php b/app/lang/ru/admin/users/table.php index 611ccee226..3dee13e82d 100755 --- a/app/lang/ru/admin/users/table.php +++ b/app/lang/ru/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Подробности логина не могут быть изменены на этой конфигурации.', 'manager' => 'Руководитель', 'name' => 'Имя', + 'notes' => 'Notes', 'password_confirm' => 'Подтверждение пароля', 'password' => 'Пароль', 'phone' => 'Телефон', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Название', 'updateuser' => 'Обновить пользователя', 'username' => 'Имя Пользователя', 'username_note' => '(Это используется для связи с Active Directory, а не для входа.)', - 'cloneuser' => 'Дублировать пользователя', + 'cloneuser' => 'Дублировать пользователя', 'viewusers' => 'Просмотр пользователей', ); diff --git a/app/lang/ru/general.php b/app/lang/ru/general.php index 6fa84b1f1b..71a3319a21 100755 --- a/app/lang/ru/general.php +++ b/app/lang/ru/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Не развертываемый', 'unknown_admin' => 'Неизвестный администратор', 'user' => 'Пользователь', + 'users' => 'Users', 'viewassets' => 'Показать присвоенные активы', 'website' => 'Сайт', 'welcome' => 'Добро пожаловать, :name', diff --git a/app/lang/sv-SE/admin/users/table.php b/app/lang/sv-SE/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/sv-SE/admin/users/table.php +++ b/app/lang/sv-SE/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/sv-SE/general.php b/app/lang/sv-SE/general.php index c7d01e72c8..253bd8005c 100755 --- a/app/lang/sv-SE/general.php +++ b/app/lang/sv-SE/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/th/admin/accessories/general.php b/app/lang/th/admin/accessories/general.php new file mode 100755 index 0000000000..c0182c2a03 --- /dev/null +++ b/app/lang/th/admin/accessories/general.php @@ -0,0 +1,20 @@ + '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 primary default EULA instead.', + 'use_default_eula_disabled' => 'Use the primary default EULA instead. No primary default EULA is set. Please add one in Settings.', + +); diff --git a/app/lang/th/admin/accessories/message.php b/app/lang/th/admin/accessories/message.php new file mode 100755 index 0000000000..62f179c5a1 --- /dev/null +++ b/app/lang/th/admin/accessories/message.php @@ -0,0 +1,37 @@ + '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' => 'Category was not created, please try again.', + 'success' => 'Category created successfully.' + ), + + 'update' => array( + 'error' => 'Category was not updated, please try again', + 'success' => 'Category updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this category?', + 'error' => 'There was an issue deleting the category. Please try again.', + 'success' => 'The category was deleted successfully.' + ), + + 'checkout' => array( + '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' => 'Accessory was not checked in, please try again', + 'success' => 'Accessory checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ) + + +); diff --git a/app/lang/th/admin/accessories/table.php b/app/lang/th/admin/accessories/table.php new file mode 100755 index 0000000000..c86dd8adfa --- /dev/null +++ b/app/lang/th/admin/accessories/table.php @@ -0,0 +1,9 @@ + 'EULA', + 'id' => 'ID', + 'require_acceptance' => 'Acceptance', + 'title' => 'Accessory Name', + +); diff --git a/app/lang/th/admin/categories/general.php b/app/lang/th/admin/categories/general.php new file mode 100755 index 0000000000..241dd24326 --- /dev/null +++ b/app/lang/th/admin/categories/general.php @@ -0,0 +1,21 @@ + 'About Asset Categories', + 'about_categories' => 'Asset categories help you organize your assets. Some example categories might be "Desktops", "Laptops", "Mobile Phones", "Tablets", and so on, but you can use asset categories any way that makes sense for you.', + 'asset_categories' => 'Asset Categories', + 'category_name' => 'Category Name', + 'clone' => 'Clone Category', + 'create' => 'Create Category', + 'edit' => 'Edit Category', + 'eula_text' => 'Category EULA', + 'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.', + 'require_acceptance' => 'Require users to confirm acceptance of assets in this category.', + 'required_acceptance' => 'This user will be emailed with a link to confirm acceptance of this item.', + 'required_eula' => 'This user will be emailed a copy of the EULA', + 'no_default_eula' => 'No primary default EULA found. Add one in Settings.', + 'update' => 'Update Category', + 'use_default_eula' => 'Use the primary default EULA instead.', + 'use_default_eula_disabled' => 'Use the primary default EULA instead. No primary default EULA is set. Please add one in Settings.', + +); diff --git a/app/lang/th/admin/categories/message.php b/app/lang/th/admin/categories/message.php new file mode 100755 index 0000000000..c4f947bd3f --- /dev/null +++ b/app/lang/th/admin/categories/message.php @@ -0,0 +1,24 @@ + 'Category does not exist.', + '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' => 'Category was not created, please try again.', + 'success' => 'Category created successfully.' + ), + + 'update' => array( + 'error' => 'Category was not updated, please try again', + 'success' => 'Category updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this category?', + 'error' => 'There was an issue deleting the category. Please try again.', + 'success' => 'The category was deleted successfully.' + ) + +); diff --git a/app/lang/th/admin/categories/table.php b/app/lang/th/admin/categories/table.php new file mode 100755 index 0000000000..a3ee96ae7f --- /dev/null +++ b/app/lang/th/admin/categories/table.php @@ -0,0 +1,10 @@ + 'EULA', + 'id' => 'ID', + 'parent' => 'Parent', + 'require_acceptance' => 'Acceptance', + 'title' => 'Asset Category Name', + +); diff --git a/app/lang/th/admin/depreciations/general.php b/app/lang/th/admin/depreciations/general.php new file mode 100755 index 0000000000..d5796ff9f6 --- /dev/null +++ b/app/lang/th/admin/depreciations/general.php @@ -0,0 +1,12 @@ + 'About Asset Depreciations', + 'about_depreciations' => 'You can set up asset depreciations to depreciate assets based on straight-line depreciation.', + 'asset_depreciations' => 'Asset Depreciations', + 'create_depreciation' => 'Create Depreciation', + 'depreciation_name' => 'Depreciation Name', + 'number_of_months' => 'Number of Months', + 'update_depreciation' => 'Update Depreciation', + +); diff --git a/app/lang/th/admin/depreciations/message.php b/app/lang/th/admin/depreciations/message.php new file mode 100755 index 0000000000..c20e52c13c --- /dev/null +++ b/app/lang/th/admin/depreciations/message.php @@ -0,0 +1,25 @@ + 'Depreciation class does not exist.', + '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' => 'Depreciation class was not created, please try again. :(', + 'success' => 'Depreciation class created successfully. :)' + ), + + 'update' => array( + 'error' => 'Depreciation class was not updated, please try again', + 'success' => 'Depreciation class updated successfully.' + ), + + 'delete' => array( + '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.' + ) + +); diff --git a/app/lang/th/admin/depreciations/table.php b/app/lang/th/admin/depreciations/table.php new file mode 100755 index 0000000000..5ba01d132c --- /dev/null +++ b/app/lang/th/admin/depreciations/table.php @@ -0,0 +1,10 @@ + 'ID', + 'months' => 'Months', + 'term' => 'Term', + 'title' => 'Name ', + +); diff --git a/app/lang/th/admin/groups/message.php b/app/lang/th/admin/groups/message.php new file mode 100755 index 0000000000..f14b6339e8 --- /dev/null +++ b/app/lang/th/admin/groups/message.php @@ -0,0 +1,22 @@ + 'Group already exists!', + 'group_not_found' => 'Group [:id] does not exist.', + 'group_name_required' => 'The name field is required', + + 'success' => array( + 'create' => 'Group was successfully created.', + 'update' => 'Group was successfully updated.', + 'delete' => 'Group was successfully deleted.', + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this group?', + '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.', + ), + +); diff --git a/app/lang/th/admin/groups/table.php b/app/lang/th/admin/groups/table.php new file mode 100755 index 0000000000..61f060a116 --- /dev/null +++ b/app/lang/th/admin/groups/table.php @@ -0,0 +1,9 @@ + 'Id', + 'name' => 'Name', + 'users' => '# of Users', + +); diff --git a/app/lang/th/admin/groups/titles.php b/app/lang/th/admin/groups/titles.php new file mode 100755 index 0000000000..12c333a66f --- /dev/null +++ b/app/lang/th/admin/groups/titles.php @@ -0,0 +1,13 @@ + 'Group Management', + 'create_group' => 'Create New Group', + 'edit_group' => 'Edit Group', + 'group_name' => 'Group Name', + 'group_admin' => 'Group Admin', + 'allow' => 'Allow', + 'deny' => 'Deny', + +); diff --git a/app/lang/th/admin/hardware/form.php b/app/lang/th/admin/hardware/form.php new file mode 100755 index 0000000000..337b49c571 --- /dev/null +++ b/app/lang/th/admin/hardware/form.php @@ -0,0 +1,41 @@ + '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' => 'Checked Out To', + 'checkout_date' => 'Checkout Date', + 'checkin_date' => 'Checkin Date', + 'checkout_to' => 'Checkout to', + 'cost' => 'Purchase Cost', + 'create' => 'Create Asset', + 'date' => 'Purchase Date', + 'depreciates_on' => 'Depreciates On', + 'depreciation' => 'Depreciation', + 'default_location' => 'Default Location', + 'eol_date' => 'EOL Date', + 'eol_rate' => 'EOL Rate', + 'expires' => 'Expires', + 'fully_depreciated' => 'Fully Depreciated', + 'help_checkout' => 'If you wish to assign this asset immediately, you should select "Ready to Deploy" from the status list above, or unexpected things may happen. ', + 'mac_address' => 'MAC Address', + 'manufacturer' => 'Manufacturer', + 'model' => 'Model', + 'months' => 'months', + 'name' => 'Asset Name', + 'notes' => 'Notes', + 'order' => 'Order Number', + 'qr' => 'QR Code', + 'requestable' => 'Users may request this asset', + 'select_statustype' => 'Select Status Type', + 'serial' => 'Serial', + 'status' => 'Status', + 'supplier' => 'Supplier', + 'tag' => 'Asset Tag', + 'update' => 'Asset Update', + 'warranty' => 'Warranty', + 'years' => 'years', +) +; diff --git a/app/lang/th/admin/hardware/general.php b/app/lang/th/admin/hardware/general.php new file mode 100755 index 0000000000..56554b1eda --- /dev/null +++ b/app/lang/th/admin/hardware/general.php @@ -0,0 +1,18 @@ + 'Archived', + 'asset' => 'Asset', + 'checkin' => 'Checkin Asset', + 'checkout' => 'Checkout Asset to User', + 'clone' => 'Clone Asset', + 'deployable' => 'Deployable', + 'deleted' => 'This asset has been deleted. Click here to restore it.', + 'edit' => 'Edit Asset', + 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.
Click here to restore the model.', + 'requestable' => 'Requestable', + 'restore' => 'Restore Asset', + 'pending' => 'Pending', + 'undeployable' => 'Undeployable', + 'view' => 'View Asset', +); diff --git a/app/lang/th/admin/hardware/message.php b/app/lang/th/admin/hardware/message.php new file mode 100755 index 0000000000..953c99df70 --- /dev/null +++ b/app/lang/th/admin/hardware/message.php @@ -0,0 +1,57 @@ + 'Warning: This asset has been marked as currently undeployable. + If this status has changed, please update the asset status.', + 'does_not_exist' => 'Asset does not exist.', + 'assoc_users' => 'This asset is currently checked out to a user and cannot be deleted. Please check the asset in first, and then try deleting again. ', + + 'create' => array( + 'error' => 'Asset was not created, please try again. :(', + 'success' => 'Asset created successfully. :)' + ), + + 'update' => array( + 'error' => 'Asset was not updated, please try again', + 'success' => 'Asset updated successfully.', + 'nothing_updated' => 'No fields were selected, so nothing was updated.', + ), + + 'restore' => array( + 'error' => 'Asset was not restored, please try again', + 'success' => 'Asset restored successfully.' + ), + + 'deletefile' => array( + 'error' => 'File not deleted. Please try again.', + 'success' => 'File successfully deleted.', + ), + + 'upload' => array( + 'error' => 'File(s) not uploaded. Please try again.', + 'success' => 'File(s) successfully uploaded.', + 'nofiles' => 'You did not select any files for upload', + 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.', + ), + + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this asset?', + 'error' => 'There was an issue deleting the asset. Please try again.', + 'success' => 'The asset was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'Asset was not checked out, please try again', + 'success' => 'Asset checked out successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ), + + 'checkin' => array( + 'error' => 'Asset was not checked in, please try again', + 'success' => 'Asset checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ) + +); diff --git a/app/lang/th/admin/hardware/table.php b/app/lang/th/admin/hardware/table.php new file mode 100755 index 0000000000..2a5a60e1f0 --- /dev/null +++ b/app/lang/th/admin/hardware/table.php @@ -0,0 +1,22 @@ + 'Asset Tag', + 'asset_model' => 'Model', + 'book_value' => 'Value', + 'change' => 'In/Out', + 'checkout_date' => 'Checkout Date', + 'checkoutto' => 'Checked Out', + 'diff' => 'Diff', + 'dl_csv' => 'Download CSV', + 'eol' => 'EOL', + 'id' => 'ID', + 'location' => 'Location', + 'purchase_cost' => 'Cost', + 'purchase_date' => 'Purchased', + 'serial' => 'Serial', + 'status' => 'Status', + 'title' => 'Asset ', + +); diff --git a/app/lang/th/admin/licenses/form.php b/app/lang/th/admin/licenses/form.php new file mode 100755 index 0000000000..164ab9def1 --- /dev/null +++ b/app/lang/th/admin/licenses/form.php @@ -0,0 +1,27 @@ + 'Asset', + 'checkin' => 'Checkin', + 'cost' => 'Purchase Cost', + 'create' => 'Create License', + 'date' => 'Purchase Date', + 'depreciation' => 'Depreciation', + 'expiration' => 'Expiration Date', + 'maintained' => 'Maintained', + 'name' => 'Software Name', + 'no_depreciation' => 'Do Not Depreciate', + 'notes' => 'Notes', + 'order' => 'Order No.', + 'purchase_order' => 'Purchase Order Number', + 'remaining_seats' => 'Remaining Seats', + 'seats' => 'Seats', + 'serial' => 'Serial', + 'supplier' => 'Supplier', + 'termination_date' => 'Termination Date', + 'to_email' => 'Licensed to Email', + 'to_name' => 'Licensed to Name', + 'update' => 'Update License', + 'checkout_help' => 'You must check a license out to a hardware asset or a person. You can select both, but the owner of the asset must match the person you\'re checking the asset out to.' +); diff --git a/app/lang/th/admin/licenses/general.php b/app/lang/th/admin/licenses/general.php new file mode 100755 index 0000000000..0e776b99d6 --- /dev/null +++ b/app/lang/th/admin/licenses/general.php @@ -0,0 +1,19 @@ + 'Checkin License Seat', + 'checkout_history' => 'Checkout History', + 'checkout' => 'Checkout License Seat', + 'edit' => 'Edit License', + 'clone' => 'Clone License', + 'history_for' => 'History for ', + 'in_out' => 'In/Out', + 'info' => 'License Info', + 'license_seats' => 'License Seats', + 'seat' => 'Seat', + 'seats' => 'Seats', + 'software_licenses' => 'Software Licenses', + 'user' => 'User', + 'view' => 'View License', +); diff --git a/app/lang/th/admin/licenses/message.php b/app/lang/th/admin/licenses/message.php new file mode 100755 index 0000000000..84ada1ccb9 --- /dev/null +++ b/app/lang/th/admin/licenses/message.php @@ -0,0 +1,50 @@ + 'License does not exist.', + 'user_does_not_exist' => 'User does not exist.', + 'asset_does_not_exist' => 'The asset you are trying to associate with this license does not exist.', + 'owner_doesnt_match_asset' => 'The asset you are trying to associate with this license is owned by somene other than the person selected in the assigned to dropdown.', + 'assoc_users' => 'This license is currently checked out to a user and cannot be deleted. Please check the license in first, and then try deleting again. ', + + + 'create' => array( + 'error' => 'License was not created, please try again.', + 'success' => 'License created successfully.' + ), + + 'deletefile' => array( + 'error' => 'File not deleted. Please try again.', + 'success' => 'File successfully deleted.', + ), + + 'upload' => array( + 'error' => 'File(s) not uploaded. Please try again.', + 'success' => 'File(s) successfully uploaded.', + 'nofiles' => 'You did not select any files for upload', + 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.', + ), + + 'update' => array( + 'error' => 'License was not updated, please try again', + 'success' => 'License updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this license?', + 'error' => 'There was an issue deleting the license. Please try again.', + 'success' => 'The license was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'There was an issue checking out the license. Please try again.', + 'success' => 'The license was checked out successfully' + ), + + 'checkin' => array( + 'error' => 'There was an issue checking in the license. Please try again.', + 'success' => 'The license was checked in successfully' + ), + +); diff --git a/app/lang/th/admin/licenses/table.php b/app/lang/th/admin/licenses/table.php new file mode 100755 index 0000000000..dfce4136cb --- /dev/null +++ b/app/lang/th/admin/licenses/table.php @@ -0,0 +1,17 @@ + 'Assigned To', + 'checkout' => 'In/Out', + 'id' => 'ID', + 'license_email' => 'License Email', + 'license_name' => 'Licensed To', + 'purchase_date' => 'Purchase Date', + 'purchased' => 'Purchased', + 'seats' => 'Seats', + 'hardware' => 'Hardware', + 'serial' => 'Serial', + 'title' => 'License', + +); diff --git a/app/lang/th/admin/locations/message.php b/app/lang/th/admin/locations/message.php new file mode 100755 index 0000000000..b2277f9a9d --- /dev/null +++ b/app/lang/th/admin/locations/message.php @@ -0,0 +1,25 @@ + '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' => 'Location was not created, please try again.', + 'success' => 'Location created successfully.' + ), + + 'update' => array( + 'error' => 'Location was not updated, please try again', + 'success' => 'Location updated successfully.' + ), + + 'delete' => array( + '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.' + ) + +); diff --git a/app/lang/th/admin/locations/table.php b/app/lang/th/admin/locations/table.php new file mode 100755 index 0000000000..4c2c86d330 --- /dev/null +++ b/app/lang/th/admin/locations/table.php @@ -0,0 +1,15 @@ + 'ID', + 'city' => 'City', + 'state' => 'State', + 'country' => 'Country', + 'create' => 'Create Location', + 'update' => 'Update Location', + 'name' => 'Location Name', + 'address' => 'Address', + 'zip' => 'Postal Code', + 'locations' => 'Locations', +); diff --git a/app/lang/th/admin/manufacturers/message.php b/app/lang/th/admin/manufacturers/message.php new file mode 100755 index 0000000000..6586d2af44 --- /dev/null +++ b/app/lang/th/admin/manufacturers/message.php @@ -0,0 +1,24 @@ + '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' => 'Manufacturer was not created, please try again.', + 'success' => 'Manufacturer created successfully.' + ), + + 'update' => array( + 'error' => 'Manufacturer was not updated, please try again', + 'success' => 'Manufacturer updated successfully.' + ), + + 'delete' => array( + '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.' + ) + +); diff --git a/app/lang/th/admin/manufacturers/table.php b/app/lang/th/admin/manufacturers/table.php new file mode 100755 index 0000000000..1861ee7c56 --- /dev/null +++ b/app/lang/th/admin/manufacturers/table.php @@ -0,0 +1,11 @@ + 'Asset Manufacturers', + 'create' => 'Create Manufacturer', + 'id' => 'ID', + 'name' => 'Manufacturer Name', + 'update' => 'Update Manufacturer', + +); diff --git a/app/lang/th/admin/models/general.php b/app/lang/th/admin/models/general.php new file mode 100755 index 0000000000..564f6b4fd3 --- /dev/null +++ b/app/lang/th/admin/models/general.php @@ -0,0 +1,11 @@ + 'This model has been deleted. Click here to restore it.', + 'restore' => 'Restore Model', + 'show_mac_address' => 'Show MAC address field in assets in this model', + 'view_deleted' => 'View Deleted', + 'view_models' => 'View Models', + +); diff --git a/app/lang/th/admin/models/message.php b/app/lang/th/admin/models/message.php new file mode 100755 index 0000000000..e69a316dd0 --- /dev/null +++ b/app/lang/th/admin/models/message.php @@ -0,0 +1,30 @@ + 'Model does not exist.', + 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', + + + 'create' => array( + 'error' => 'Model was not created, please try again.', + 'success' => 'Model created successfully.' + ), + + 'update' => array( + 'error' => 'Model was not updated, please try again', + 'success' => 'Model updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this asset model?', + 'error' => 'There was an issue deleting the model. Please try again.', + 'success' => 'The model was deleted successfully.' + ), + + 'restore' => array( + 'error' => 'Model was not restored, please try again', + 'success' => 'Model restored successfully.' + ), + +); diff --git a/app/lang/th/admin/models/table.php b/app/lang/th/admin/models/table.php new file mode 100755 index 0000000000..11a512b3d3 --- /dev/null +++ b/app/lang/th/admin/models/table.php @@ -0,0 +1,17 @@ + 'Create Asset Model', + 'created_at' => 'Created at', + 'eol' => 'EOL', + 'modelnumber' => 'Model No.', + 'name' => 'Asset Model Name', + 'numassets' => 'Assets', + 'title' => 'Asset Models', + 'update' => 'Update Asset Model', + 'view' => 'View Asset Model', + 'update' => 'Update Asset Model', + 'clone' => 'Clone Model', + 'edit' => 'Edit Model', +); diff --git a/app/lang/th/admin/reports/general.php b/app/lang/th/admin/reports/general.php new file mode 100755 index 0000000000..b03b97546f --- /dev/null +++ b/app/lang/th/admin/reports/general.php @@ -0,0 +1,5 @@ + 'Select the options you want for your asset report.' +); diff --git a/app/lang/th/admin/reports/message.php b/app/lang/th/admin/reports/message.php new file mode 100755 index 0000000000..d4c8f8198f --- /dev/null +++ b/app/lang/th/admin/reports/message.php @@ -0,0 +1,5 @@ + 'You must select at least ONE option.' +); diff --git a/app/lang/th/admin/settings/general.php b/app/lang/th/admin/settings/general.php new file mode 100755 index 0000000000..0f686e859d --- /dev/null +++ b/app/lang/th/admin/settings/general.php @@ -0,0 +1,35 @@ + 'Send alerts to', + 'alerts_enabled' => 'Alerts enabled', + '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', + '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_markdown' => 'This EULA allows Github flavored markdown.', + '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', + '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', + 'snipe_version' => 'Snipe-IT version', + 'system' => 'System Information', + 'update' => 'Update Settings', + 'value' => 'Value', +); diff --git a/app/lang/th/admin/settings/message.php b/app/lang/th/admin/settings/message.php new file mode 100755 index 0000000000..693813ca0d --- /dev/null +++ b/app/lang/th/admin/settings/message.php @@ -0,0 +1,11 @@ + array( + 'error' => 'An error has occurred while updating. ', + 'success' => 'Settings updated successfully.' + ), + +); diff --git a/app/lang/th/admin/statuslabels/message.php b/app/lang/th/admin/statuslabels/message.php new file mode 100755 index 0000000000..98280082ef --- /dev/null +++ b/app/lang/th/admin/statuslabels/message.php @@ -0,0 +1,25 @@ + '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' => 'Location was not created, please try again.', + 'success' => 'Location created successfully.' + ), + + 'update' => array( + 'error' => 'Location was not updated, please try again', + 'success' => 'Location updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this status label?', + 'error' => 'There was an issue deleting the location. Please try again.', + 'success' => 'The location was deleted successfully.' + ) + +); diff --git a/app/lang/th/admin/statuslabels/table.php b/app/lang/th/admin/statuslabels/table.php new file mode 100755 index 0000000000..dd21781115 --- /dev/null +++ b/app/lang/th/admin/statuslabels/table.php @@ -0,0 +1,15 @@ + 'About Status Labels', + 'archived' => 'Archived', + 'create' => 'Create Status Label', + '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' => 'Status Name', + 'pending' => 'Pending', + 'status_type' => 'Status Type', + 'title' => 'Status Labels', + 'undeployable' => 'Undeployable', + 'update' => 'Update Status Label', +); diff --git a/app/lang/th/admin/suppliers/message.php b/app/lang/th/admin/suppliers/message.php new file mode 100755 index 0000000000..df4bc41af3 --- /dev/null +++ b/app/lang/th/admin/suppliers/message.php @@ -0,0 +1,24 @@ + 'Supplier does not exist.', + 'assoc_users' => 'This supplier is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this supplier and try again. ', + + 'create' => array( + 'error' => 'Supplier was not created, please try again.', + 'success' => 'Supplier created successfully.' + ), + + 'update' => array( + 'error' => 'Supplier was not updated, please try again', + 'success' => 'Supplier updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this supplier?', + 'error' => 'There was an issue deleting the supplier. Please try again.', + 'success' => 'Supplier was deleted successfully.' + ) + +); diff --git a/app/lang/th/admin/suppliers/table.php b/app/lang/th/admin/suppliers/table.php new file mode 100755 index 0000000000..88adfc692b --- /dev/null +++ b/app/lang/th/admin/suppliers/table.php @@ -0,0 +1,25 @@ + 'Supplier Address', + 'assets' => 'Assets', + 'city' => 'City', + 'contact' => 'Contact Name', + 'country' => 'Country', + 'create' => 'Create Supplier', + 'email' => 'Email', + 'fax' => 'Fax', + 'id' => 'ID', + 'licenses' => 'Licenses', + 'name' => 'Supplier Name', + 'notes' => 'Notes', + 'phone' => 'Phone', + 'state' => 'State', + 'suppliers' => 'Suppliers', + 'update' => 'Update Supplier', + 'url' => 'URL', + 'view' => 'View Supplier', + 'view_assets_for' => 'View Assets for', + 'zip' => 'Postal Code', + +); diff --git a/app/lang/th/admin/users/general.php b/app/lang/th/admin/users/general.php new file mode 100755 index 0000000000..550a32854d --- /dev/null +++ b/app/lang/th/admin/users/general.php @@ -0,0 +1,15 @@ + 'Assets assigned to :name', + 'clone' => 'Clone User', + 'contact_user' => 'Contact :name', + 'edit' => 'Edit User', + 'history_user' => 'History for :name', + 'last_login' => 'Last Login', + 'software_user' => 'Software Checked out to :name', + 'view_user' => 'View User :name', + 'usercsv' => 'CSV file', + ); diff --git a/app/lang/th/admin/users/message.php b/app/lang/th/admin/users/message.php new file mode 100755 index 0000000000..c668179bb0 --- /dev/null +++ b/app/lang/th/admin/users/message.php @@ -0,0 +1,34 @@ + 'User already exists!', + 'user_not_found' => 'User [:id] does not exist.', + 'user_login_required' => 'The login field is required', + 'user_password_required' => 'The password is required.', + 'insufficient_permissions' => 'Insufficient Permissions.', + 'user_deleted_warning' => 'This user has been deleted. You will have to restore this user to edit them or assign them new assets.', + + + 'success' => array( + 'create' => 'User was successfully created.', + 'update' => 'User was successfully updated.', + 'delete' => 'User was successfully deleted.', + 'ban' => 'User was successfully banned.', + 'unban' => 'User was successfully unbanned.', + 'suspend' => 'User was successfully suspended.', + 'unsuspend' => 'User was successfully unsuspended.', + 'restored' => 'User was successfully restored.', + 'import' => 'Users imported successfully.', + ), + + 'error' => array( + 'create' => 'There was an issue creating the user. Please try again.', + 'update' => 'There was an issue updating the user. Please try again.', + 'delete' => 'There was an issue deleting the user. Please try again.', + 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', + 'import' => 'There was an issue importing users. Please try again.', + 'asset_already_accepted' => 'This asset has already been accepted.', + ), + +); diff --git a/app/lang/th/admin/users/table.php b/app/lang/th/admin/users/table.php new file mode 100755 index 0000000000..8c9b40a454 --- /dev/null +++ b/app/lang/th/admin/users/table.php @@ -0,0 +1,36 @@ + 'Active', + 'allow' => 'Allow', + 'checkedout' => 'Assets', + 'created_at' => 'Created', + 'createuser' => 'Create User', + 'deny' => 'Deny', + 'email' => 'Email', + 'employee_num' => 'Employee No.', + 'first_name' => 'First Name', + 'groupnotes' => 'Select a group to assign to the user, remember that a user takes on the permissions of the group they are assigned.', + 'id' => 'Id', + 'inherit' => 'Inherit', + 'job' => 'Job Title', + 'last_login' => 'Last Login', + 'last_name' => 'Last Name', + 'location' => 'Location', + 'lock_passwords' => 'Login details cannot be changed on this installation.', + 'manager' => 'Manager', + 'name' => 'Name', + 'notes' => 'Notes', + 'password_confirm' => 'Confirm Password', + 'password' => 'Password', + 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', + 'title' => 'Title', + 'updateuser' => 'Update User', + 'username' => 'Username', + 'username_note' => '(This is used for Active Directory binding only, not for login.)', + 'cloneuser' => 'Clone User', + 'viewusers' => 'View Users', +); diff --git a/app/lang/th/auth/message.php b/app/lang/th/auth/message.php new file mode 100755 index 0000000000..8148b126e9 --- /dev/null +++ b/app/lang/th/auth/message.php @@ -0,0 +1,36 @@ + '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' => 'There was a problem while trying to log you in, please try again.', + 'success' => 'You have successfully logged in.', + ), + + 'signup' => array( + 'error' => 'There was a problem while trying to create your account, please try again.', + 'success' => 'Account sucessfully created.', + ), + + 'forgot-password' => array( + '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' => 'There was a problem while trying to reset your password, please try again.', + 'success' => 'Your password has been successfully reset.', + ), + + 'activate' => array( + 'error' => 'There was a problem while trying to activate your account, please try again.', + 'success' => 'Your account has been successfully activated.', + ), + +); diff --git a/app/lang/th/button.php b/app/lang/th/button.php new file mode 100755 index 0000000000..79591b3c90 --- /dev/null +++ b/app/lang/th/button.php @@ -0,0 +1,14 @@ + 'Actions', + 'add' => 'Add New', + 'cancel' => 'Cancel', + 'delete' => 'Delete', + 'edit' => 'Edit', + 'restore' => 'Restore', + 'submit' => 'Submit', + 'upload' => 'Upload', + +); diff --git a/app/lang/th/general.php b/app/lang/th/general.php new file mode 100755 index 0000000000..96ff475f39 --- /dev/null +++ b/app/lang/th/general.php @@ -0,0 +1,104 @@ + 'Accessories', + 'accessory' => 'Accessory', + 'address' => 'Address', + 'admin' => 'Admin', + 'all_assets' => 'All Assets', + 'all' => 'All', + 'archived' => 'Archived', + 'asset_models' => 'Asset Models', + 'asset' => 'Asset', + 'asset_report' => 'Asset Report', + 'asset_tag' => 'Asset Tag', + 'assets_available' => 'assets available', + 'assets' => 'Assets', + 'avatar_delete' => 'Delete Avatar', + 'avatar_upload' => 'Upload Avatar', + 'back' => 'Back', + 'cancel' => 'Cancel', + 'categories' => 'Asset Categories', + 'category' => 'Asset Category', + 'changeemail' => 'Change Email Address', + 'changepassword' => 'Change Password', + 'checkin' => 'Checkin', + 'checkout' => 'Checkout', + 'city' => 'City', + 'country' => 'Country', + 'create' => 'Create New', + 'created_asset' => 'created asset', + 'created_at' => 'Created at', + 'currency' => '$', + 'current' => 'Current', + 'custom_report' => 'Custom Asset Report', + 'dashboard' => 'Dashboard', + 'date' => 'Date', + 'delete' => 'Delete', + 'deleted' => 'Deleted', + 'deployed' => 'Deployed', + 'depreciation_report' => 'Depreciation Report', + 'download' => 'Download', + 'depreciation' => 'Depreciation', + 'editprofile' => 'Edit Your Profile', + 'eol' => 'EOL', + 'first_name' => 'First Name', + 'file_name' => 'File', + 'file_uploads' => 'File Uploads', + 'generate' => 'Generate', + 'groups' => 'Groups', + 'gravatar_email' => 'Gravatar Email Address', + 'history_for' => 'History for', + 'id' => 'ID', + 'image_delete' => 'Delete Image', + 'image_upload' => 'Upload Image', + 'last_name' => 'Last Name', + 'license' => 'License', + 'license_report' => 'License Report', + 'licenses_available' => 'licenses available', + 'licenses' => 'Licenses', + 'list_all' => 'List All', + 'location' => 'Location', + 'locations' => 'Locations', + 'logout' => 'Logout', + 'manufacturer' => 'Manufacturer', + 'manufacturers' => 'Manufacturers', + 'model_no' => 'Model No.', + 'months' => 'months', + 'moreinfo' => 'More Info', + 'name' => 'Name', + 'no_depreciation' => 'No Depreciation', + 'no_results' => 'No Results.', + 'no' => 'No', + 'notes' => 'Notes', + 'pending' => 'Pending', + 'people' => 'People', + 'per_page' => 'Results Per Page', + 'profile' => 'Your profile', + 'ready_to_deploy' => 'Ready to Deploy', + 'reports' => 'Reports', + 'save' => 'Save', + 'settings' => 'Settings', + 'sign_in' => 'Sign in', + 'site_name' => 'Site Name', + 'state' => 'State', + 'status_labels' => 'Status Labels', + 'status' => 'Status', + 'suppliers' => 'Suppliers', + 'total_assets' => 'total assets', + 'total_licenses' => 'total licenses', + 'type' => 'Type', + 'undeployable' => 'Un-deployable', + 'unknown_admin' => 'Unknown Admin', + 'user' => 'User', + 'users' => 'Users', + 'viewassets' => 'View Assigned Assets', + 'website' => 'Website', + 'welcome' => 'Welcome, :name', + 'years' => 'years', + 'yes' => 'Yes', + 'zip' => 'Zip', + +); diff --git a/app/lang/th/pagination.php b/app/lang/th/pagination.php new file mode 100755 index 0000000000..b573b51e91 --- /dev/null +++ b/app/lang/th/pagination.php @@ -0,0 +1,20 @@ + '« Previous', + + 'next' => 'Next »', + +); diff --git a/app/lang/th/reminders.php b/app/lang/th/reminders.php new file mode 100755 index 0000000000..e7a476e3a2 --- /dev/null +++ b/app/lang/th/reminders.php @@ -0,0 +1,24 @@ + "Passwords must be six characters and match the confirmation.", + + "user" => "Username or email address is incorrect", + + "token" => "This password reset token is invalid.", + + "sent" => "If a matching email address was found, a password reminder has been sent!", + +); diff --git a/app/lang/th/table.php b/app/lang/th/table.php new file mode 100755 index 0000000000..f7a49d86c1 --- /dev/null +++ b/app/lang/th/table.php @@ -0,0 +1,10 @@ + 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + +); diff --git a/app/lang/th/validation.php b/app/lang/th/validation.php new file mode 100755 index 0000000000..4c6e269ded --- /dev/null +++ b/app/lang/th/validation.php @@ -0,0 +1,95 @@ + "The :attribute must be accepted.", + "active_url" => "The :attribute is not a valid URL.", + "after" => "The :attribute must be a date after :date.", + "alpha" => "The :attribute may only contain letters.", + "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", + "alpha_num" => "The :attribute may only contain letters and numbers.", + "before" => "The :attribute must be a date before :date.", + "between" => array( + "numeric" => "The :attribute must be between :min - :max.", + "file" => "The :attribute must be between :min - :max kilobytes.", + "string" => "The :attribute must be between :min - :max characters.", + ), + "confirmed" => "The :attribute confirmation does not match.", + "date" => "The :attribute is not a valid date.", + "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" => "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" => "The :attribute must be a file of type: :values.", + "min" => array( + "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" => "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" => "The :attribute must be :size.", + "file" => "The :attribute must be :size kilobytes.", + "string" => "The :attribute must be :size characters.", + ), + "unique" => "The :attribute has already been taken.", + "url" => "The :attribute format is invalid.", + + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => array(), + 'alpha_space' => "The :attribute field may only contain letters, commas, spaces and dashes.", + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => array(), + +); diff --git a/app/lang/vi/admin/users/table.php b/app/lang/vi/admin/users/table.php index 02768b6874..8c9b40a454 100755 --- a/app/lang/vi/admin/users/table.php +++ b/app/lang/vi/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => 'Manager', 'name' => 'Name', + 'notes' => 'Notes', 'password_confirm' => 'Confirm Password', 'password' => 'Password', 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => 'Title', 'updateuser' => 'Update User', 'username' => 'Username', 'username_note' => '(This is used for Active Directory binding only, not for login.)', - 'cloneuser' => 'Clone User', + 'cloneuser' => 'Clone User', 'viewusers' => 'View Users', ); diff --git a/app/lang/vi/general.php b/app/lang/vi/general.php index 2dd93149e1..96ff475f39 100755 --- a/app/lang/vi/general.php +++ b/app/lang/vi/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'user' => 'User', + 'users' => 'Users', 'viewassets' => 'View Assigned Assets', 'website' => 'Website', 'welcome' => 'Welcome, :name', diff --git a/app/lang/zh-CN/admin/users/table.php b/app/lang/zh-CN/admin/users/table.php index f040b717c3..17d0c21501 100755 --- a/app/lang/zh-CN/admin/users/table.php +++ b/app/lang/zh-CN/admin/users/table.php @@ -21,13 +21,16 @@ return array( 'lock_passwords' => 'Login details cannot be changed on this installation.', 'manager' => '领导', 'name' => '名字', + 'notes' => 'Notes', 'password_confirm' => '确认密码', 'password' => '密码', 'phone' => '电话', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', 'title' => '职位', 'updateuser' => '更新用户', 'username' => '用户名', 'username_note' => '(这个是用来活动目录「Active Directory」的绑定,非用来登录)', - 'cloneuser' => '克隆用户', + 'cloneuser' => '克隆用户', 'viewusers' => '查看用户', ); diff --git a/app/lang/zh-CN/general.php b/app/lang/zh-CN/general.php index e5d530e889..99d7bf5560 100755 --- a/app/lang/zh-CN/general.php +++ b/app/lang/zh-CN/general.php @@ -93,6 +93,7 @@ return array( 'undeployable' => '无法被分配', 'unknown_admin' => '未知管理员', 'user' => '用户', + 'users' => 'Users', 'viewassets' => '查看资产分配', 'website' => '站点', 'welcome' => '欢迎您,:name', diff --git a/app/macros.php b/app/macros.php index 55ab2cd757..da8997f960 100755 --- a/app/macros.php +++ b/app/macros.php @@ -12,260 +12,260 @@ Form::macro('countries', function ($name = "country", $selected = null, $class = $countries = array( ''=>"Select a Country", - 'ac'=>'Ascension Island', - 'ad'=>'Andorra', - 'ae'=>'United Arab Emirates', - 'af'=>'Afghanistan', - 'ag'=>'Antigua And Barbuda', - 'ai'=>'Anguilla', - 'al'=>'Albania', - 'am'=>'Armenia', - 'an'=>'Netherlands Antilles', - 'ao'=>'Angola', - 'aq'=>'Antarctica', - 'ar'=>'Argentina', - 'as'=>'American Samoa', - 'at'=>'Austria', - 'au'=>'Australia', - 'aw'=>'Aruba', - 'ax'=>'Ã…land', - 'az'=>'Azerbaijan', - 'ba'=>'Bosnia And Herzegovina', - 'bb'=>'Barbados', - 'be'=>'Belgium', - 'bd'=>'Bangladesh', - 'bf'=>'Burkina Faso', - 'bg'=>'Bulgaria', - 'bh'=>'Bahrain', - 'bi'=>'Burundi', - 'bj'=>'Benin', - 'bm'=>'Bermuda', - 'bn'=>'Brunei Darussalam', - 'bo'=>'Bolivia', - 'br'=>'Brazil', - 'bs'=>'Bahamas', - 'bt'=>'Bhutan', - 'bv'=>'Bouvet Island', - 'bw'=>'Botswana', - 'by'=>'Belarus', - 'bz'=>'Belize', - 'ca'=>'Canada', - 'cc'=>'Cocos (Keeling) Islands', - 'cd'=>'Congo (Democratic Republic)', - 'cf'=>'Central African Republic', - 'cg'=>'Congo (Republic)', - 'ch'=>'Switzerland', - 'ci'=>'Cote D’Ivoire', - 'ck'=>'Cook Islands', - 'cl'=>'Chile', - 'cm'=>'Cameroon', - 'cn'=>'People’s Republic of China', - 'co'=>'Colombia', - 'cr'=>'Costa Rica', - 'cu'=>'Cuba', - 'cv'=>'Cape Verde', - 'cx'=>'Christmas Island', - 'cy'=>'Cyprus', - 'cz'=>'Czech Republic', - 'de'=>'Germany', - 'dj'=>'Djibouti', - 'dk'=>'Denmark', - 'dm'=>'Dominica', - 'do'=>'Dominican Republic', - 'dz'=>'Algeria', - 'ec'=>'Ecuador', - 'ee'=>'Estonia', - 'eg'=>'Egypt', - 'er'=>'Eritrea', - 'es'=>'Spain', - 'et'=>'Ethiopia', - 'eU'=>'European Union', - 'fi'=>'Finland', - 'fj'=>'Fiji', - 'fk'=>'Falkland Islands (Malvinas)', - 'fm'=>'Micronesia, Federated States Of', - 'fo'=>'Faroe Islands', - 'fr'=>'France', - 'ga'=>'Gabon', - 'gb'=>'United Kingdom', - 'gd'=>'Grenada', - 'ge'=>'Georgia', - 'gf'=>'French Guiana', - 'gg'=>'Guernsey', - 'gh'=>'Ghana', - 'gi'=>'Gibraltar', - 'gl'=>'Greenland', - 'gm'=>'Gambia', - 'gn'=>'Guinea', - 'gp'=>'Guadeloupe', - 'gq'=>'Equatorial Guinea', - 'gr'=>'Greece', - 'gs'=>'South Georgia And The South Sandwich Islands', - 'gt'=>'Guatemala', - 'gu'=>'Guam', - 'gw'=>'Guinea-Bissau', - 'gy'=>'Guyana', - 'hk'=>'Hong Kong', - 'hm'=>'Heard And Mc Donald Islands', - 'hn'=>'Honduras', - 'hr'=>'Croatia (local name: Hrvatska)', - 'ht'=>'Haiti', - 'hu'=>'Hungary', - 'id'=>'Indonesia', - 'ie'=>'Ireland', - 'il'=>'Israel', - 'im'=>'Isle of Man', - 'in'=>'India', - 'io'=>'British Indian Ocean Territory', - 'iq'=>'Iraq', - 'ir'=>'Iran (Islamic Republic Of)', - 'is'=>'Iceland', - 'it'=>'Italy', - 'je'=>'Jersey', - 'jm'=>'Jamaica', - 'jo'=>'Jordan', - 'jp'=>'Japan', - 'ke'=>'Kenya', - 'kg'=>'Kyrgyzstan', - 'kh'=>'Cambodia', - 'ki'=>'Kiribati', - 'km'=>'Comoros', - 'kn'=>'Saint Kitts And Nevis', - 'kr'=>'Korea, Republic Of', - 'kw'=>'Kuwait', - 'ky'=>'Cayman Islands', - 'kz'=>'Kazakhstan', - 'la'=>'Lao People’s Democratic Republic', - 'lb'=>'Lebanon', - 'lc'=>'Saint Lucia', - 'li'=>'Liechtenstein', - 'lk'=>'Sri Lanka', - 'lr'=>'Liberia', - 'ls'=>'Lesotho', - 'lt'=>'Lithuania', - 'lu'=>'Luxembourg', - 'lv'=>'Latvia', - 'ly'=>'Libyan Arab Jamahiriya', - 'ma'=>'Morocco', - 'mc'=>'Monaco', - 'md'=>'Moldova, Republic Of', - 'me'=>'Montenegro', - 'mg'=>'Madagascar', - 'mh'=>'Marshall Islands', - 'mk'=>'Macedonia, The Former Yugoslav Republic Of', - 'ml'=>'Mali', - 'mm'=>'Myanmar', - 'mn'=>'Mongolia', - 'mo'=>'Macau', - 'mp'=>'Northern Mariana Islands', - 'mq'=>'Martinique', - 'mr'=>'Mauritania', - 'ms'=>'Montserrat', - 'mt'=>'Malta', - 'mu'=>'Mauritius', - 'mv'=>'Maldives', - 'mw'=>'Malawi', - 'mx'=>'Mexico', - 'my'=>'Malaysia', - 'mz'=>'Mozambique', - 'na'=>'Namibia', - 'nc'=>'New Caledonia', - 'ne'=>'Niger', - 'nf'=>'Norfolk Island', - 'ng'=>'Nigeria', - 'ni'=>'Nicaragua', - 'nl'=>'Netherlands', - 'no'=>'Norway', - 'np'=>'Nepal', - 'nr'=>'Nauru', - 'nu'=>'Niue', - 'nz'=>'New Zealand', - 'om'=>'Oman', - 'pa'=>'Panama', - 'pe'=>'Peru', - 'pf'=>'French Polynesia', - 'pg'=>'Papua New Guinea', - 'ph'=>'Philippines, Republic of the', - 'pk'=>'Pakistan', - 'pl'=>'Poland', - 'pm'=>'St. Pierre And Miquelon', - 'pn'=>'Pitcairn', - 'pr'=>'Puerto Rico', - 'ps'=>'Palestine', - 'pt'=>'Portugal', - 'pw'=>'Palau', - 'py'=>'Paraguay', - 'qa'=>'Qatar', - 're'=>'Reunion', - 'ro'=>'Romania', - 'rs'=>'Serbia', - 'ru'=>'Russian Federation', - 'rw'=>'Rwanda', - 'sa'=>'Saudi Arabia', - 'uk'=>'Scotland', - 'sb'=>'Solomon Islands', - 'sc'=>'Seychelles', - 'sd'=>'Sudan', - 'se'=>'Sweden', - 'sg'=>'Singapore', - 'sh'=>'St. Helena', - 'si'=>'Slovenia', - 'sj'=>'Svalbard And Jan Mayen Islands', - 'sk'=>'Slovakia (Slovak Republic)', - 'sl'=>'Sierra Leone', - 'sm'=>'San Marino', - 'sn'=>'Senegal', - 'so'=>'Somalia', - 'sr'=>'Suriname', - 'st'=>'Sao Tome And Principe', - 'su'=>'Soviet Union', - 'sv'=>'El Salvador', - 'sy'=>'Syrian Arab Republic', - 'sz'=>'Swaziland', - 'tc'=>'Turks And Caicos Islands', - 'td'=>'Chad', - 'tf'=>'French Southern Territories', - 'tg'=>'Togo', - 'th'=>'Thailand', - 'tj'=>'Tajikistan', - 'tk'=>'Tokelau', - 'ti'=>'East Timor (new code)', - 'tm'=>'Turkmenistan', - 'tn'=>'Tunisia', - 'to'=>'Tonga', - 'tp'=>'East Timor (old code)', - 'tr'=>'Turkey', - 'tt'=>'Trinidad And Tobago', - 'tv'=>'Tuvalu', - 'tw'=>'Taiwan', - 'tz'=>'Tanzania, United Republic Of', - 'ua'=>'Ukraine', - 'ug'=>'Uganda', - 'uk'=>'United Kingdom', - 'um'=>'United States Minor Outlying Islands', - 'us'=>'United States', - 'uy'=>'Uruguay', - 'uz'=>'Uzbekistan', - 'va'=>'Vatican City State (Holy See)', - 'vc'=>'Saint Vincent And The Grenadines', - 've'=>'Venezuela', - 'vg'=>'Virgin Islands (British)', - 'vi'=>'Virgin Islands (U.S.)', - 'vn'=>'Viet Nam', - 'vu'=>'Vanuatu', - 'wf'=>'Wallis And Futuna Islands', - 'ws'=>'Samoa', - 'ye'=>'Yemen', - 'yt'=>'Mayotte', - 'za'=>'South Africa', - 'zm'=>'Zambia', - 'zw'=>'Zimbabwe' + 'AC'=>'Ascension Island', + 'AD'=>'Andorra', + 'AE'=>'United Arab Emirates', + 'AF'=>'Afghanistan', + 'AG'=>'Antigua And Barbuda', + 'AI'=>'Anguilla', + 'AL'=>'Albania', + 'AM'=>'Armenia', + 'AN'=>'Netherlands Antilles', + 'AO'=>'Angola', + 'AQ'=>'Antarctica', + 'AR'=>'Argentina', + 'AS'=>'American Samoa', + 'AT'=>'Austria', + 'AU'=>'Australia', + 'AW'=>'Aruba', + 'AX'=>'Ã…land', + 'AZ'=>'Azerbaijan', + 'BA'=>'Bosnia And Herzegovina', + 'BB'=>'Barbados', + 'BE'=>'Belgium', + 'BD'=>'Bangladesh', + 'BF'=>'Burkina Faso', + 'BG'=>'Bulgaria', + 'BH'=>'Bahrain', + 'BI'=>'Burundi', + 'BJ'=>'Benin', + 'BM'=>'Bermuda', + 'BN'=>'Brunei Darussalam', + 'BO'=>'Bolivia', + 'BR'=>'Brazil', + 'BS'=>'Bahamas', + 'BT'=>'Bhutan', + 'BV'=>'Bouvet Island', + 'BW'=>'Botswana', + 'BY'=>'Belarus', + 'BZ'=>'Belize', + 'CA'=>'Canada', + 'CC'=>'Cocos (Keeling) Islands', + 'CD'=>'Congo (Democratic Republic)', + 'CF'=>'Central African Republic', + 'CG'=>'Congo (Republic)', + 'CH'=>'Switzerland', + 'CI'=>'Côte d\'Ivoire', + 'CK'=>'Cook Islands', + 'CL'=>'Chile', + 'CM'=>'Cameroon', + 'CN'=>'People\'s Republic of China', + 'CO'=>'Colombia', + 'CR'=>'Costa Rica', + 'CU'=>'Cuba', + 'CV'=>'Cape Verde', + 'CX'=>'Christmas Island', + 'CY'=>'Cyprus', + 'CZ'=>'Czech Republic', + 'DE'=>'Germany', + 'DJ'=>'Djibouti', + 'DK'=>'Denmark', + 'DM'=>'Dominica', + 'DO'=>'Dominican Republic', + 'DZ'=>'Algeria', + 'EC'=>'Ecuador', + 'EE'=>'Estonia', + 'EG'=>'Egypt', + 'ER'=>'Eritrea', + 'ES'=>'Spain', + 'ET'=>'Ethiopia', + 'EU'=>'European Union', + 'FI'=>'Finland', + 'FJ'=>'Fiji', + 'FK'=>'Falkland Islands (Malvinas)', + 'FM'=>'Micronesia, Federated States Of', + 'FO'=>'Faroe Islands', + 'FR'=>'France', + 'GA'=>'Gabon', + 'GB'=>'United Kingdom', + 'GD'=>'Grenada', + 'GE'=>'Georgia', + 'GF'=>'French Guiana', + 'GG'=>'Guernsey', + 'GH'=>'Ghana', + 'GI'=>'Gibraltar', + 'GL'=>'Greenland', + 'GM'=>'Gambia', + 'GN'=>'Guinea', + 'GP'=>'Guadeloupe', + 'GQ'=>'Equatorial Guinea', + 'GR'=>'Greece', + 'GS'=>'South Georgia And The South Sandwich Islands', + 'GT'=>'Guatemala', + 'GU'=>'Guam', + 'GW'=>'Guinea-Bissau', + 'GY'=>'Guyana', + 'HK'=>'Hong Kong', + 'HM'=>'Heard And Mc Donald Islands', + 'HN'=>'Honduras', + 'HR'=>'Croatia (local name: Hrvatska)', + 'HT'=>'Haiti', + 'HU'=>'Hungary', + 'ID'=>'Indonesia', + 'IE'=>'Ireland', + 'IL'=>'Israel', + 'IM'=>'Isle of Man', + 'IN'=>'India', + 'IO'=>'British Indian Ocean Territory', + 'IQ'=>'Iraq', + 'IR'=>'Iran, Islamic Republic Of', + 'IS'=>'Iceland', + 'IT'=>'Italy', + 'JE'=>'Jersey', + 'JM'=>'Jamaica', + 'JO'=>'Jordan', + 'JP'=>'Japan', + 'KE'=>'Kenya', + 'KG'=>'Kyrgyzstan', + 'KH'=>'Cambodia', + 'KI'=>'Kiribati', + 'KM'=>'Comoros', + 'KN'=>'Saint Kitts And Nevis', + 'KR'=>'Korea, Republic Of', + 'KW'=>'Kuwait', + 'KY'=>'Cayman Islands', + 'KZ'=>'Kazakhstan', + 'LA'=>'Lao People\'s Democratic Republic', + 'LB'=>'Lebanon', + 'LC'=>'Saint Lucia', + 'LI'=>'Liechtenstein', + 'LK'=>'Sri Lanka', + 'LR'=>'Liberia', + 'LS'=>'Lesotho', + 'LT'=>'Lithuania', + 'LU'=>'Luxembourg', + 'LV'=>'Latvia', + 'LY'=>'Libyan Arab Jamahiriya', + 'MA'=>'Morocco', + 'MC'=>'Monaco', + 'MD'=>'Moldova, Republic Of', + 'ME'=>'Montenegro', + 'MG'=>'Madagascar', + 'MH'=>'Marshall Islands', + 'MK'=>'Macedonia, The Former Yugoslav Republic Of', + 'ML'=>'Mali', + 'MM'=>'Myanmar', + 'MN'=>'Mongolia', + 'MO'=>'Macau', + 'MP'=>'Northern Mariana Islands', + 'MQ'=>'Martinique', + 'MR'=>'Mauritania', + 'MS'=>'Montserrat', + 'MT'=>'Malta', + 'MU'=>'Mauritius', + 'MV'=>'Maldives', + 'MW'=>'Malawi', + 'MX'=>'Mexico', + 'MY'=>'Malaysia', + 'MZ'=>'Mozambique', + 'NA'=>'Namibia', + 'NC'=>'New Caledonia', + 'NE'=>'Niger', + 'NF'=>'Norfolk Island', + 'NG'=>'Nigeria', + 'NI'=>'Nicaragua', + 'NL'=>'Netherlands', + 'NO'=>'Norway', + 'NP'=>'Nepal', + 'NR'=>'Nauru', + 'NU'=>'Niue', + 'NZ'=>'New Zealand', + 'OM'=>'Oman', + 'PA'=>'Panama', + 'PE'=>'Peru', + 'PF'=>'French Polynesia', + 'PG'=>'Papua New Guinea', + 'PH'=>'Philippines, Republic of the', + 'PK'=>'Pakistan', + 'PL'=>'Poland', + 'PM'=>'St. Pierre And Miquelon', + 'PN'=>'Pitcairn', + 'PR'=>'Puerto Rico', + 'PS'=>'Palestine', + 'PT'=>'Portugal', + 'PW'=>'Palau', + 'PY'=>'Paraguay', + 'QA'=>'Qatar', + 'RE'=>'Reunion', + 'RO'=>'Romania', + 'RS'=>'Serbia', + 'RU'=>'Russian Federation', + 'RW'=>'Rwanda', + 'SA'=>'Saudi Arabia', + 'UK'=>'Scotland', + 'SB'=>'Solomon Islands', + 'SC'=>'Seychelles', + 'SD'=>'Sudan', + 'SE'=>'Sweden', + 'SG'=>'Singapore', + 'SH'=>'St. Helena', + 'SI'=>'Slovenia', + 'SJ'=>'Svalbard And Jan Mayen Islands', + 'SK'=>'Slovakia (Slovak Republic)', + 'SL'=>'Sierra Leone', + 'SM'=>'San Marino', + 'SN'=>'Senegal', + 'SO'=>'Somalia', + 'SR'=>'Suriname', + 'ST'=>'Sao Tome And Principe', + 'SU'=>'Soviet Union', + 'SV'=>'El Salvador', + 'SY'=>'Syrian Arab Republic', + 'SZ'=>'Swaziland', + 'TC'=>'Turks And Caicos Islands', + 'TD'=>'Chad', + 'TF'=>'French Southern Territories', + 'TG'=>'Togo', + 'TH'=>'Thailand', + 'TJ'=>'Tajikistan', + 'TK'=>'Tokelau', + 'TI'=>'East Timor', + 'TM'=>'Turkmenistan', + 'TN'=>'Tunisia', + 'TO'=>'Tonga', + 'TP'=>'East Timor (old code)', + 'TR'=>'Turkey', + 'TT'=>'Trinidad And Tobago', + 'TV'=>'Tuvalu', + 'TW'=>'Taiwan', + 'TZ'=>'Tanzania, United Republic Of', + 'UA'=>'Ukraine', + 'UG'=>'Uganda', + 'UK'=>'United Kingdom', + 'UM'=>'United States Minor Outlying Islands', + 'US'=>'United States', + 'UY'=>'Uruguay', + 'UZ'=>'Uzbekistan', + 'VA'=>'Vatican City State (Holy See)', + 'VC'=>'Saint Vincent And The Grenadines', + 'VE'=>'Venezuela', + 'VG'=>'Virgin Islands (British)', + 'VI'=>'Virgin Islands (U.S.)', + 'VN'=>'Viet Nam', + 'VU'=>'Vanuatu', + 'WF'=>'Wallis And Futuna Islands', + 'WS'=>'Samoa', + 'YE'=>'Yemen', + 'YT'=>'Mayotte', + 'ZA'=>'South Africa', + 'ZM'=>'Zambia', + 'ZW'=>'Zimbabwe' ); $select = ''; diff --git a/app/models/Asset.php b/app/models/Asset.php index 7d4b830afd..0ac3d04d29 100755 --- a/app/models/Asset.php +++ b/app/models/Asset.php @@ -17,8 +17,7 @@ class Asset extends Depreciable 'checkout_date' => 'date|max:10|min:10', 'checkin_date' => 'date|max:10|min:10', 'supplier_id' => 'integer', - 'asset_tag' => 'required|alpha_space|min:3|max:255|unique:assets,asset_tag,{id}', - //'serial' => 'required|alpha_dash|min:3|max:255|unique:assets,serial,{id}', + 'asset_tag' => 'required|alpha_space|min:3|max:255|unique:assets,asset_tag,{id}', 'status' => 'integer' ); @@ -120,8 +119,19 @@ class Asset extends Depreciable { return $this->belongsTo('Statuslabel','status_id'); } - - + + /** + * Get name for EULA + **/ + public function assetNameForEula() + { + if ($this->name=='') { + return $this->model->name; + } else { + return $this->name; + } + } + public function warrantee_expires() { $date = date_create($this->purchase_date); @@ -165,6 +175,7 @@ class Asset extends Depreciable { return $this->belongsTo('Supplier','supplier_id'); } + public function months_until_eol() { @@ -216,7 +227,7 @@ class Asset extends Depreciable if ($this->model->category->eula_text) { return $Parsedown->text(e($this->model->category->eula_text)); - } elseif (Setting::getSettings()->default_eula_text) { + } elseif ($this->model->category->use_default_eula == '1') { return $Parsedown->text(e(Setting::getSettings()->default_eula_text)); } else { return null; diff --git a/app/models/Throttle.php b/app/models/Throttle.php new file mode 100644 index 0000000000..9d348391ea --- /dev/null +++ b/app/models/Throttle.php @@ -0,0 +1,12 @@ +belongsTo('User', 'user_id'); + } + + +} diff --git a/app/models/User.php b/app/models/User.php index d5875f3d3e..31a30ae08c 100755 --- a/app/models/User.php +++ b/app/models/User.php @@ -23,6 +23,7 @@ class User extends SentryUserModel { return "{$this->first_name} {$this->last_name}"; } + /** * Returns the user Gravatar image url. @@ -76,17 +77,36 @@ class User extends SentryUserModel { return $this->belongsTo('User','manager_id')->withTrashed(); } - + + public function accountStatus() { - $throttle = Sentry::findThrottlerByUserId($this->id); - - if ($throttle->isBanned()) { - return 'banned'; - } elseif ($throttle->isSuspended()) { - return 'suspended'; + if ($this->sentryThrottle) { + if ($this->sentryThrottle->suspended==1) { + return 'suspended'; + } elseif ($this->sentryThrottle->banned==1) { + return 'banned'; + } else { + return false; + } } else { - return ''; + return false; } } + + public function sentryThrottle() { + return $this->hasOne('Throttle'); + } + + public function scopeGetDeleted($query) + { + return $query->withTrashed()->whereNotNull('deleted_at'); + } + + public function scopeGetNotDeleted($query) + { + return $query->whereNull('deleted_at'); + } + + } diff --git a/app/routes.php b/app/routes.php index 438bb55939..37b6189c78 100755 --- a/app/routes.php +++ b/app/routes.php @@ -1,4 +1,49 @@ 'api', 'namespace' => 'Controllers\Admin', 'before' => 'admin-auth'), function () { + /*---Hardware API---*/ + Route::group(array('prefix' => 'hardware'), function() { + Route::resource('/', 'AssetsController'); + Route::get('list/{status?}', array('as'=>'api.hardware.list', 'uses'=>'AssetsController@getDatatable')); + }); + /*---Accessories API---*/ + Route::group(array('prefix'=>'accessories'), function () { + Route::resource('/', 'AccessoriesController'); + Route::get('list', array('as'=>'api.accessories.list', 'uses'=>'AccessoriesController@getDatatable')); + Route::get('{accessoryID}/view', array('as'=>'api.accessories.view', 'uses'=>'AccessoriesController@getDataView')); + }); + /*---Users API---*/ + Route::group(array('prefix'=>'users'), function() { + Route::resource('/', 'UsersController'); + Route::get('list/{status?}', array('as'=>'api.users.list', 'uses'=>'UsersController@getDatatable')); + }); + /*---Licenses API---*/ + Route::group(array('prefix'=>'licenses'), function() { + Route::resource('/', 'LicensesController'); + Route::get('list', array('as'=>'api.licenses.list', 'uses'=>'LicensesController@getDatatable')); + }); + /*---Models API---*/ + Route::group(array('prefix'=>'models'), function() { + Route::resource('/', 'ModelsController'); + Route::get('list/{status?}', array('as'=>'api.models.list', 'uses'=>'ModelsController@getDatatable')); + Route::get('{modelId}/check', function ($modelId) { + $model = Model::find($modelId); + return $model->show_mac_address; + }); + + Route::get('{modelID}/view', array('as'=>'api.models.view', 'uses'=>'ModelsController@getDataView')); + }); + /*--- Categories API---*/ + Route::group(array('prefix'=>'categories'), function() { + Route::resource('/', 'CategoriesController'); + Route::get('list', array('as'=>'api.categories.list', 'uses'=>'CategoriesController@getDatatable')); + Route::get('{categoryID}/view', array('as'=>'api.categories.view', 'uses'=>'CategoriesController@getDataView')); + }); +}); /* |-------------------------------------------------------------------------- @@ -112,6 +157,7 @@ Route::group(array('prefix' => 'admin', 'before' => 'admin-auth', 'namespace' => # Accessories Route::group(array('prefix' => 'accessories'), function () { + Route::get('create', array('as' => 'create/accessory', 'uses' => 'AccessoriesController@getCreate')); Route::post('create', 'AccessoriesController@postCreate'); Route::get('{accessoryID}/edit', array('as' => 'update/accessory', 'uses' => 'AccessoriesController@getEdit')); @@ -209,7 +255,7 @@ Route::group(array('prefix' => 'admin', 'before' => 'admin-auth', 'namespace' => # User Management Route::group(array('prefix' => 'users'), function () { - Route::get('/', array('as' => 'users', 'uses' => 'UsersController@getIndex')); + Route::get('create', array('as' => 'create/user', 'uses' => 'UsersController@getCreate')); Route::post('create', 'UsersController@postCreate'); Route::get('import', array('as' => 'import/user', 'uses' => 'UsersController@getImport')); @@ -222,9 +268,8 @@ Route::group(array('prefix' => 'admin', 'before' => 'admin-auth', 'namespace' => Route::get('{userId}/restore', array('as' => 'restore/user', 'uses' => 'UsersController@getRestore')); Route::get('{userId}/view', array('as' => 'view/user', 'uses' => 'UsersController@getView')); Route::get('{userId}/unsuspend', array('as' => 'unsuspend/user', 'uses' => 'UsersController@getUnsuspend')); - - - Route::get('datatable', array('as' => 'api.users', 'uses' => 'UsersController@getDatatable')); + Route::get('/', array('as' => 'users', 'uses' => 'UsersController@getIndex')); + }); # Group Management diff --git a/app/views/backend/accessories/index.blade.php b/app/views/backend/accessories/index.blade.php index a2b9132eb2..5773b2234e 100755 --- a/app/views/backend/accessories/index.blade.php +++ b/app/views/backend/accessories/index.blade.php @@ -17,49 +17,76 @@
-
-
- -
- - - - - - - - - - - @foreach ($accessories as $accessory) - - - - - - - @endforeach - -
@lang('admin/accessories/table.title')@lang('admin/accessories/general.total')@lang('admin/accessories/general.remaining')@lang('table.actions')
{{{ $accessory->name }}}{{{ $accessory->qty }}} {{{ $accessory->numRemaining() }}} - numRemaining() > 0 ) ? '' : ' disabled') }}>@lang('general.checkout') - - - -
+
+
+ {{ Datatable::table() + ->addColumn(Lang::get('admin/accessories/table.title'), + Lang::get('admin/accessories/general.total'), + Lang::get('admin/accessories/general.remaining'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.accessories.list'), + 'dom' =>'T<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + 'sButtonText'=>'Copy', + 'mColumns'=>array(0,1,2), + 'bFooter'=>false, + ), + array( + 'sExtends'=>'print', + 'sButtonText'=>'Print', + 'mColumns'=>array(0,1,2), + 'bShowAll'=>true, + 'bFooter'=>true, + ), + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + 'sButtonText'=>'csv', + 'mColumns'=>array(0,1,2), + 'bFooter'=>false, + ), + array( + 'sExtends'=>'xls', + 'sButtonText'=>'XLS', + 'mColumns'=>array(0,1,2), + 'bFooter'=>false, + ), + array( + 'sExtends'=>'pdf', + 'sButtonText'=>'PDF', + 'mColumns'=>array(0,1,2), + 'bFooter'=>false, + ) + ) + ), + ) + ), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(3)), + ), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} +
+ +
+

+
@lang('admin/accessories/general.about_accessories_title')
+

@lang('admin/accessories/general.about_accessories_text')

+ +
-
- - - -
-

-
@lang('admin/accessories/general.about_accessories_title')
-

@lang('admin/accessories/general.about_accessories_text')

- -
-
@stop diff --git a/app/views/backend/accessories/view.blade.php b/app/views/backend/accessories/view.blade.php index fb295a878e..a2f9876c77 100644 --- a/app/views/backend/accessories/view.blade.php +++ b/app/views/backend/accessories/view.blade.php @@ -31,35 +31,45 @@ @if ($accessory->users->count() > 0) - - - - - - - - - - @foreach ($accessory->users as $accessory_users) - - - - - - @endforeach - - - -
@lang('general.user')@lang('table.actions')
- - - {{{ $accessory_users->fullName() }}} - - - - - Checkin -
+ {{ Datatable::table() + ->addColumn(Lang::get('general.user'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.accessories.view', $accessory->id), + 'dom' =>'T<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + ), + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + ), + array( + 'sExtends'=>'xls', + ), + array( + 'sExtends'=>'pdf', + ), + ), + ), + ) + ), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(1)), + array('width'=>'auto','targets'=>array(1)), + ), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} @else
diff --git a/app/views/backend/categories/index.blade.php b/app/views/backend/categories/index.blade.php index f14f64dfa8..47342f9651 100755 --- a/app/views/backend/categories/index.blade.php +++ b/app/views/backend/categories/index.blade.php @@ -17,59 +17,34 @@
-
-
- -
- - - - - - - - - - - - - @foreach ($categories as $category) - - - - - - - - - @endforeach - -
@lang('admin/categories/table.title')@lang('general.type')@lang('general.assets')@lang('admin/categories/table.require_acceptance')@lang('admin/categories/table.eula_text')@lang('table.actions')
{{{ $category->name }}}{{{ ucwords($category->category_type) }}} - @if ($category->category_type=='asset') - {{ $category->assetscount() }} - @elseif ($category->category_type=='accessory') - {{ $category->accessoriescount() }} - @endif - {{ ($category->require_acceptance=='1') ? '' : ''}}{{ ($category->getEula()) ? '' : ''}} - - - -
+
+
+ {{ Datatable::table() + ->addColumn(Lang::get('admin/categories/table.title'), + Lang::get('general.type'), + Lang::get('general.assets'), + Lang::get('admin/categories/table.require_acceptance'), + Lang::get('admin/categories/table.eula_text'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=> route('api.categories.list'), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(5),'activate'=>'mouseover'), + 'columnDefs'=> array(array('bSortable'=>false,'targets'=>array(5))), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} +
-
-
- - - -
-

-
@lang('admin/categories/general.about_asset_categories')
-

@lang('admin/categories/general.about_categories')

- -
-
+ +
+

+
@lang('admin/categories/general.about_asset_categories')
+

@lang('admin/categories/general.about_categories')

+
+
@stop diff --git a/app/views/backend/categories/view.blade.php b/app/views/backend/categories/view.blade.php index 845a2e7f44..99b731d5c8 100644 --- a/app/views/backend/categories/view.blade.php +++ b/app/views/backend/categories/view.blade.php @@ -39,43 +39,23 @@ @if (count($category->assets) > 0) - - - - - - - - - - - - @foreach ($category->assets as $modelassets) - - - - - - - - @endforeach - - - -
@lang('general.name')@lang('general.asset_tag')@lang('general.user')@lang('table.actions')
{{{ $modelassets->name }}}{{{ $modelassets->asset_tag }}} - @if ($modelassets->assigneduser) - - {{{ $modelassets->assigneduser->fullName() }}} - - @endif - - @if ($modelassets->assigned_to != 0) - Checkin - @else - Checkout - @endif -
- + {{ Datatable::table() + ->addColumn(Lang::get('general.name'), + Lang::get('general.asset_tag'), + Lang::get('general.user'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.categories.view', $category->id), + 'dom' =>'T<"clear">lfrtip', + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(3)), + array('width'=>'auto','targets'=>array(3)), + ), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} @else
diff --git a/app/views/backend/hardware/datatable.blade.php b/app/views/backend/hardware/datatable.blade.php new file mode 100644 index 0000000000..e2306e3d84 --- /dev/null +++ b/app/views/backend/hardware/datatable.blade.php @@ -0,0 +1,37 @@ + + + @for ($i = 0; $i < count($columns); $i++) + + @endfor + + + + @foreach($columns as $i => $c) + + @endforeach + + + + + + + + + @foreach($data as $d) + + @foreach($d as $dd) + + @endforeach + + @endforeach + +
{{ $c }}
+ +
{{ $dd }}
+ +@if (!$noScript) + @include(Config::get('datatable::table.script_view'), array('id' => $id, 'options' => $options, 'callbacks' => $callbacks)) +@endif \ No newline at end of file diff --git a/app/views/backend/hardware/edit.blade.php b/app/views/backend/hardware/edit.blade.php index 223f17e70e..dee143bb86 100755 --- a/app/views/backend/hardware/edit.blade.php +++ b/app/views/backend/hardware/edit.blade.php @@ -81,26 +81,23 @@
@if (isset($selected_model)) - {{ Form::select('model_id', $model_list , $selected_model->id, array('class'=>'select2', 'style'=>'min-width:400px')) }} + {{ Form::select('model_id', $model_list , $selected_model->id, array('class'=>'select2 model', 'style'=>'min-width:400px')) }} @else - {{ Form::select('model_id', $model_list , Input::old('model_id', $asset->model_id), array('class'=>'select2', 'style'=>'min-width:400px')) }} + {{ Form::select('model_id', $model_list , Input::old('model_id', $asset->model_id), array('class'=>'select2 model', 'style'=>'min-width:400px')) }} @endif {{ $errors->first('model_id', '
:message') }}
- - @if ($asset->model && $asset->model->show_mac_address == '1') -
+ - @endif
@@ -218,4 +215,28 @@
+ + @stop diff --git a/app/views/backend/hardware/index.blade.php b/app/views/backend/hardware/index.blade.php index 7abf903efa..82e3563261 100755 --- a/app/views/backend/hardware/index.blade.php +++ b/app/views/backend/hardware/index.blade.php @@ -1,20 +1,21 @@ @extends('backend/layouts/default') @section('title0') - @if (Input::get('Pending') || Input::get('Undeployable') || Input::get('Deleted') || Input::get('Requestable') || Input::get('RTD') || Input::get('Deployed') || Input::get('Archived')) - @if (Input::get('Pending')) + + @if (Input::get('status')) + @if (Input::get('status')=='Pending') @lang('general.pending') - @elseif (Input::get('RTD')) + @elseif (Input::get('status')=='RTD') @lang('general.ready_to_deploy') - @elseif (Input::get('Undeployable')) + @elseif (Input::get('status')=='Undeployable') @lang('general.undeployable') - @elseif (Input::get('Deployed')) + @elseif (Input::get('status')=='Deployable') @lang('general.deployed') - @elseif (Input::get('Requestable')) + @elseif (Input::get('status')=='Requestable') @lang('admin/hardware/general.requestable') - @elseif (Input::get('Archived')) + @elseif (Input::get('status')=='Archived') @lang('general.archived') - @elseif (Input::get('Deleted')) + @elseif (Input::get('status')=='Deleted') @lang('general.deleted') @endif @else @@ -32,6 +33,10 @@ {{-- Page content --}} @section('content') +
@@ -40,12 +45,8 @@
-
+
- - - -@if ($assets->count() > 0) {{ Form::open([ @@ -55,160 +56,61 @@ -
- +{{ Datatable::table() + ->addColumn('',Lang::get('admin/hardware/form.name'), + Lang::get('admin/hardware/table.asset_tag'), + Lang::get('admin/hardware/table.serial'), + Lang::get('admin/hardware/form.model'), + Lang::get('admin/hardware/table.status'), + Lang::get('admin/hardware/table.location'), + Lang::get('general.category'), + Lang::get('admin/hardware/table.eol'), + Lang::get('admin/hardware/table.checkout_date'), + Lang::get('admin/hardware/table.change'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=> route('api.hardware.list', Input::get('status')), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(0,10,11),'activate'=>'mouseover'), + 'columnDefs'=> array(array('visible'=>false,'targets'=>array(7,8,9)),array('orderable'=>false,'targets'=>array(0,10,11))), + 'order'=>array(array(1,'asc')), + ) + ) + ->render('backend/hardware/datatable') }} - - - - - - @if (Setting::getSettings()->display_asset_name) - - - @endif - - - - @if (Input::get('Deployed') && Setting::getSettings()->display_checkout_date) - - - @endif - @if (Setting::getSettings()->display_eol) - - - @endif - - - - - - - - - - - - @foreach ($assets as $asset) - - - - - - @if (Setting::getSettings()->display_asset_name) - - @endif - - - - - - - - - - @if (Input::get('Deployed') && Setting::getSettings()->display_checkout_date) - - @endif - @if (Setting::getSettings()->display_eol) - - @endif - - - - - @endforeach - -
@lang('admin/hardware/table.asset_tag')@lang('admin/hardware/table.asset_model')@lang('general.name')@lang('admin/hardware/table.serial')@lang('general.status')@lang('admin/hardware/table.location')@lang('admin/hardware/table.checkout_date')@lang('admin/hardware/table.eol')@lang('admin/hardware/table.change')@lang('table.actions')
{{{ $asset->asset_tag }}}{{{ $asset->model->name }}}{{{ $asset->name }}}{{{ $asset->serial }}} - @if (Input::get('Pending')) - @lang('general.pending') - @elseif (Input::get('RTD')) - @lang('general.ready_to_deploy') - @elseif (Input::get('Undeployable')) - @if ($asset->assetstatus) - {{{ $asset->assetstatus->name }}} - @endif - @else - @if ($asset->assigneduser) - - {{{ $asset->assigneduser->fullName() }}} - - @else - @if ($asset->assetstatus) - {{{ $asset->assetstatus->name }}} - @endif - @endif - @endif - - @if ($asset->assigneduser && $asset->assetloc) - {{{ $asset->assetloc->name }}} - @elseif ($asset->defaultLoc) - {{{ $asset->defaultLoc->name }}} - - @endif - - - @if (count($asset->assetlog) > 0) - {{{ $asset->assetlog->first()->created_at }}} - @endif - - @if ($asset->model->eol) - {{{ $asset->eol_date() }}} - @endif - - - @if (($asset->assetstatus) && (($asset->assetstatus->deployable == 1 ) && ($asset->deleted_at==''))) - @if (($asset->assigned_to !='') && ($asset->assigned_to > 0)) - @lang('general.checkin') - @else - @lang('general.checkout') - @endif - @endif - - - - @if ($asset->deleted_at=='') - - - @else - @if ($asset->model->deleted_at=='') - - @endif - @endif - -
{{ Form::close() }}
+ -@else -
-
- - @lang('general.no_results') -
-
-
- -@endif @stop diff --git a/app/views/backend/hardware/labels.blade.php b/app/views/backend/hardware/labels.blade.php new file mode 100644 index 0000000000..2a64d5b587 --- /dev/null +++ b/app/views/backend/hardware/labels.blade.php @@ -0,0 +1,81 @@ + + + + + Labels + + + + + + + +@foreach ($assets as $asset) + +
+
+
+ @if ($settings->qr_text!='') + {{ $settings->qr_text }} +

+ @endif + + @if ($asset->asset_tag!='') + T: {{ $asset->asset_tag }} +
+ @endif + @if ($asset->serial!='') + S: {{ $asset->serial }} +
+ @endif + +
+
+ @if ($count % 18 == 0) +
+ + @endif + +@endforeach + + + + + + + + + diff --git a/app/views/backend/hardware/view.blade.php b/app/views/backend/hardware/view.blade.php index fac3b61be1..f6bc33e0df 100755 --- a/app/views/backend/hardware/view.blade.php +++ b/app/views/backend/hardware/view.blade.php @@ -371,9 +371,14 @@ @if ($asset->assetstatus) -

{{{ $asset->assetstatus->name }}} - @lang('admin/hardware/general.asset')
- +

+ @if (($asset->assetstatus->deployable=='1') && ($asset->assigned_to > 0)) + @lang('admin/hardware/general.asset') + @lang('general.deployed') + @else + {{{ $asset->assetstatus->name }}} + @lang('admin/hardware/general.asset') + @endif
    @if (($asset->assetstatus->deployable=='1') && ($asset->assigned_to > 0) && ($asset->deleted_at=='')) @@ -387,7 +392,7 @@ @endif
- @if ($asset->assetstatus->notes) + @if (($asset->assetstatus->notes) && ($asset->assigned_to==''))
diff --git a/app/views/backend/layouts/default.blade.php b/app/views/backend/layouts/default.blade.php index bcf7e7d377..36034c1ed2 100644 --- a/app/views/backend/layouts/default.blade.php +++ b/app/views/backend/layouts/default.blade.php @@ -36,8 +36,8 @@ - - + + @@ -48,7 +48,8 @@ - + + - - - diff --git a/app/views/backend/licenses/index.blade.php b/app/views/backend/licenses/index.blade.php index 8106044e23..6721f94253 100755 --- a/app/views/backend/licenses/index.blade.php +++ b/app/views/backend/licenses/index.blade.php @@ -17,62 +17,25 @@
-
- - - - - - - - - - - - - - - @foreach ($licenses as $license) - - @if ($license->licenseseats) - - - - - - - - - - - - - @endif - - - @endforeach - - - - - - - - -
@lang('admin/licenses/table.title')@lang('admin/licenses/table.serial')@lang('admin/licenses/form.seats')@lang('admin/licenses/form.remaining_seats')@lang('admin/licenses/table.purchase_date')@lang('table.actions')
{{{ $license->name }}} - {{{ mb_strimwidth($license->serial, 0, 50, "...") }}} - - {{{ $license->totalSeatsByLicenseID() }}} - - {{{ $license->remaincount() }}} - - {{{ $license->purchase_date }}} - - - -
+ {{ Datatable::table() + ->addColumn(Lang::get('admin/licenses/table.title'), + Lang::get('admin/licenses/table.serial'), + Lang::get('admin/licenses/form.seats'), + Lang::get('admin/licenses/form.remaining_seats'), + Lang::get('admin/licenses/table.purchase_date'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.licenses.list'), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(5),'activate'=>'mouseover'), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(5)), + array('width'=>'20%','targets'=>array(5)), + ), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }}
@stop diff --git a/app/views/backend/locations/index.blade.php b/app/views/backend/locations/index.blade.php index 2030447c65..63be00ca19 100755 --- a/app/views/backend/locations/index.blade.php +++ b/app/views/backend/locations/index.blade.php @@ -34,7 +34,7 @@ Locations :: {{{ $location->name }}} {{{ $location->address }}}, {{{ $location->address2 }}} - {{{ $location->city }}}, {{{ $location->state }}} {{{ $location->country }}} + {{{ $location->city }}}, {{{ strtoupper($location->state) }}} {{{ strtoupper($location->country) }}}
- - - - - - - - - - - - - - @foreach ($models as $model) - - - - - - - - - - - - @endforeach - -
@lang('admin/models/table.title')@lang('admin/models/table.modelnumber')@lang('admin/models/table.numassets')@lang('general.depreciation')@lang('general.category')@lang('general.eol')@lang('table.actions')
{{{ $model->name }}}{{{ $model->modelno }}}{{ ($model->assets->count()) }} - - @if (($model->depreciation) && ($model->depreciation->id > 0)) {{{ $model->depreciation->name }}} - ({{{ $model->depreciation->months }}} - @lang('general.months') - ) - @else - @lang('general.no_depreciation') - @endif - - - @if ($model->category) {{{ $model->category->name }}} - @endif - - - @if ($model->eol) {{{ $model->eol }}} - @lang('general.months') - @else - -- - @endif - - - @if($model->deleted_at=="") - - - @else - - @endif -
+ {{ Datatable::table() + ->addColumn(Lang::get('admin/models/table.title'), + Lang::get('admin/models/table.modelnumber'), + Lang::get('admin/models/table.numassets'), + Lang::get('general.depreciation'), + Lang::get('general.category'), + Lang::get('general.eol'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=> route('api.models.list', Input::get('status')), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(6),'activate'=>'mouseover'), + 'columnDefs'=> array(array('bSortable'=>false,'targets'=>array(6))), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} @stop diff --git a/app/views/backend/models/view.blade.php b/app/views/backend/models/view.blade.php index 9e639bb29a..67e864b49b 100755 --- a/app/views/backend/models/view.blade.php +++ b/app/views/backend/models/view.blade.php @@ -52,51 +52,25 @@ @if (count($model->assets) > 0) - - - - - - - - - - - - - @foreach ($model->assets as $modelassets) - - - - - - - - - @endforeach - - - -
@lang('general.name')@lang('general.asset_tag')@lang('admin/hardware/table.serial')@lang('general.user')@lang('table.actions')
{{{ $modelassets->name }}}{{{ $modelassets->asset_tag }}} - @if ($modelassets->serial) - - {{{ $modelassets->serial }}} - - @endif - - @if ($modelassets->assigneduser) - - {{{ $modelassets->assigneduser->fullName() }}} - - @endif - - @if ($modelassets->assigned_to != 0) - Checkin - @else - Checkout - @endif -
- + {{ Datatable::table() + ->addColumn(Lang::get('general.name'), + Lang::get('general.asset_tag'), + Lang::get('admin/hardware/table.serial'), + Lang::get('general.user'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.models.view', $model->id), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(4),'activate'=>'mouseover'), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(4)), + array('width'=>'auto','targets'=>array(4)), + ), + 'order'=>array(array(0,'asc')), + ) + ) + ->render() }} @else
diff --git a/app/views/backend/reports/asset.blade.php b/app/views/backend/reports/asset.blade.php index a4db5045ba..40f519efa0 100644 --- a/app/views/backend/reports/asset.blade.php +++ b/app/views/backend/reports/asset.blade.php @@ -41,7 +41,6 @@ @lang('admin/hardware/form.supplier') @lang('admin/hardware/table.checkoutto') @lang('admin/hardware/table.location') - @lang('general.status') @@ -99,20 +98,10 @@ @if (($asset->assigned_to > 0) && ($asset->assigneduser->location_id > 0)) {{{ $asset->assigneduser->userLoc->name }}} - @elseif ($asset->rtd_location_id) + @elseif ($asset->defaultLoc) {{{ $asset->defaultLoc->name }}} @endif - - @if (($asset->status_id == '0') && ($asset->assigned_to == '0')) - @lang('general.ready_to_deploy') - @elseif (($asset->status_id == '') && ($asset->assigned_to == '0')) - @lang('general.pending') - @elseif ($asset->assetstatus) - {{{ $asset->assetstatus->name }}} - @endif - - @endforeach @@ -120,4 +109,4 @@
-@stop \ No newline at end of file +@stop diff --git a/app/views/backend/settings/edit.blade.php b/app/views/backend/settings/edit.blade.php index b1dd598c0c..57c0bc06cd 100755 --- a/app/views/backend/settings/edit.blade.php +++ b/app/views/backend/settings/edit.blade.php @@ -56,8 +56,14 @@ padding: 0px 20px; {{ Form::label('site_name', Lang::get('admin/settings/general.site_name')) }}
- {{ Form::text('site_name', Input::old('site_name', $setting->site_name), array('class' => 'form-control')) }} - {{ $errors->first('site_name', '
:message') }} + @if (Config::get('app.lock_passwords')===true) + {{ Form::text('site_name', Input::old('site_name', $setting->site_name), array('class' => 'form-control', 'disabled'=>'disabled')) }} + @else + {{ Form::text('site_name', Input::old('site_name', $setting->site_name), array('class' => 'form-control')) }} + + @endif + + {{ $errors->first('site_name', '
:message') }}
@@ -113,28 +119,6 @@ padding: 0px 20px;
- -
- - -
- -
- -
- -
- -
- + +
+ +
+ + {{ $errors->first('notes', '
:message') }} +
+
diff --git a/app/views/backend/users/index.blade.php b/app/views/backend/users/index.blade.php index ed164e7c12..729d258645 100755 --- a/app/views/backend/users/index.blade.php +++ b/app/views/backend/users/index.blade.php @@ -12,113 +12,50 @@
Import - @lang('general.create') - @if (Input::get('onlyTrashed')) - Show Current Users + @lang('general.create') + @if (Input::get('status')=='deleted') + @lang('admin/users/table.show_current') @else - Show Deleted Users + @lang('admin/users/table.show_deleted') @endif

- @if (Input::get('onlyTrashed')) + @if (Input::get('status')=='deleted') @lang('general.deleted') @else @lang('general.current') @endif - + @lang('general.users')

-
+
-@if ($users->getTotal() > 0) -
-
- - - - - - - - - - - - - +{{ Datatable::table() + ->addColumn( + Lang::get('admin/users/table.name'), + Lang::get('admin/users/table.email'), + Lang::get('admin/users/table.manager'), + Lang::get('general.assets'), + Lang::get('general.licenses'), + Lang::get('admin/users/table.activated'), + Lang::get('table.actions') + ) + ->setOptions( + array( + 'sAjaxSource'=>route('api.users.list', Input::get('status')), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','activate'=>'mouseover'), + 'columnDefs'=> array(array('visible'=>false,'targets'=>array()),array('bSortable'=>false,'targets'=>array(6))), + 'order'=>array(array(1,'asc')), + ) + ) + ->render() }} - @foreach ($users as $user) - - - - - - - - - - - @endforeach - -
@lang('admin/users/table.name')@lang('admin/users/table.email')@lang('admin/users/table.manager')@lang('general.assets')@lang('general.licenses')@lang('admin/users/table.activated')@lang('table.actions')
- @if ($user->avatar) - - @else - - @endif - {{{ $user->fullName() }}} - {{{ $user->email }}} - @if ($user->manager) {{{ $user->manager->fullName() }}} - @endif - {{{ $user->assets->count() }}}{{{ $user->licenses->count() }}}{{ $user->isActivated() ? '' : ''}} - - - @if (is_null($user->deleted_at)) - @if ($user->accountStatus()=='suspended') - - @endif - @endif - - - @if ( ! is_null($user->deleted_at)) - - @else - - - @if ((Sentry::getId() !== $user->id) && (!Config::get('app.lock_passwords'))) - - - @else - - @endif - @endif -
- -@else - - -
-
- - @lang('general.no_results') - -
-
-@endif @stop diff --git a/app/views/backend/users/view.blade.php b/app/views/backend/users/view.blade.php index 8c86bef035..01673ce24b 100755 --- a/app/views/backend/users/view.blade.php +++ b/app/views/backend/users/view.blade.php @@ -257,46 +257,46 @@
@endif - - -
+
- -
@lang('admin/users/general.contact_user', array('name' => $user->first_name))
- @if ($user->location_id)
- +
@endif + @if ($user->notes!='') + + @endif + @if ($user->last_login!='')
@lang('admin/users/general.last_login') {{{ $user->last_login->diffForHumans() }}}
@endif
- @stop diff --git a/app/views/frontend/account/change-email.blade.php b/app/views/frontend/account/change-email.blade.php index 56c285b1ef..89e8b7f902 100755 --- a/app/views/frontend/account/change-email.blade.php +++ b/app/views/frontend/account/change-email.blade.php @@ -66,8 +66,7 @@ Change your Email
@lang('button.cancel') - - I forgot my password +
diff --git a/app/views/frontend/account/change-password.blade.php b/app/views/frontend/account/change-password.blade.php index d7849ffd12..3c7c127329 100755 --- a/app/views/frontend/account/change-password.blade.php +++ b/app/views/frontend/account/change-password.blade.php @@ -60,10 +60,9 @@ Change your Password
@lang('button.cancel') - - I forgot my password +
-@stop \ No newline at end of file +@stop diff --git a/app/views/frontend/auth/signin.blade.php b/app/views/frontend/auth/signin.blade.php index 38cc0cfc20..be994c27dd 100755 --- a/app/views/frontend/auth/signin.blade.php +++ b/app/views/frontend/auth/signin.blade.php @@ -15,23 +15,16 @@ Account Sign in :: -
+
- - - +
- -
+ +
{{ $errors->first('email', '
:message') }}
@@ -39,33 +32,31 @@ Account Sign in ::
- -
+ +
{{ $errors->first('password', '
:message') }}
- -
- -
- - -
- -
- Cancel - -
-
- - - - - + + +
+ +
+ +
+
+ +
+ +
+ +
@stop diff --git a/app/views/frontend/auth/signup.blade.php b/app/views/frontend/auth/signup.blade.php deleted file mode 100755 index 0a408ed7d8..0000000000 --- a/app/views/frontend/auth/signup.blade.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('backend/layouts/default') - -{{-- Page title --}} -@section('title') -Account Sign up :: -@parent -@stop - -{{-- Page content --}} -@section('content') - -
-
- - - - -
- -
- - {{ $errors->first('first_name', ':message') }} -
-
- - -
- -
- - {{ $errors->first('last_name', ':message') }} -
-
- - -
- -
- - {{ $errors->first('email', ':message') }} -
-
- - -
- -
- - {{ $errors->first('email_confirm', ':message') }} -
-
- - -
- -
- - {{ $errors->first('password', ':message') }} -
-
- - -
- -
- - {{ $errors->first('password_confirm', ':message') }} -
-
- -
- - -
-
- Cancel - - -
-
-
-
-@stop diff --git a/composer.json b/composer.json index e67625f93e..45a7dd7965 100755 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "doctrine/dbal": "v2.4.2", "cartalyst/sentry": "2.1.5", "barryvdh/laravel-debugbar": "1.x", - "chumper/datatable": "dev-master", + "chumper/datatable": "2.3.*", "dinesh/barcode": "dev-master", "intervention/image": "dev-master", "league/csv": "~7.0", diff --git a/public/assets/.siteflow b/public/assets/.siteflow deleted file mode 100644 index c15c5e26ee..0000000000 --- a/public/assets/.siteflow +++ /dev/null @@ -1,528 +0,0 @@ -{ - "id" : "00000000-0000-0000-0000-000000000000", - "javascriptIndentation" : 4, - "files" : { - "css\/lib\/morris.css" : { - "output" : "css\/lib\/morris.out.css" - }, - "js\/dataTables.responsive.js" : { - "output" : "js\/dataTables.responsive.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/open-sans.css" : { - "output" : "css\/compiled\/open-sans.out.css" - }, - "css\/compiled\/form-wizard.css" : { - "output" : "css\/compiled\/form-wizard.out.css" - }, - "js\/morris.min.js" : { - "output" : "js\/morris.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/user-profile.scss" : { - "output" : "css\/scss\/user-profile.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/bootstrap\/bootstrap-responsive.min.css" : { - "output" : "css\/bootstrap\/bootstrap-responsive.min.out.css" - }, - "css\/scss\/icons.scss" : { - "output" : "css\/scss\/icons.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/index.scss" : { - "output" : "css\/scss\/index.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/form-wizard.scss" : { - "output" : "css\/scss\/form-wizard.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/wysihtml5-0.3.0.js" : { - "output" : "js\/wysihtml5-0.3.0.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/new-user.css" : { - "output" : "css\/compiled\/new-user.out.css" - }, - "js\/select2.min.js" : { - "output" : "js\/select2.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/jquery.flot.stack.js" : { - "output" : "js\/jquery.flot.stack.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/ace\/mode-javascript.js" : { - "output" : "js\/ace\/mode-javascript.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/lib\/jquery.dataTables.css" : { - "output" : "css\/lib\/jquery.dataTables.out.css" - }, - "css\/lib\/font-awesome.min.css" : { - "output" : "css\/lib\/font-awesome.min.out.css" - }, - "css\/scss\/personal-info.scss" : { - "output" : "css\/scss\/personal-info.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/datatables.css" : { - "output" : "css\/compiled\/datatables.out.css" - }, - "css\/scss\/new-user.scss" : { - "output" : "css\/scss\/new-user.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/user-list.css" : { - "output" : "css\/compiled\/user-list.out.css" - }, - "js\/fuelux.wizard.js" : { - "output" : "js\/fuelux.wizard.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/ui-elements.css" : { - "output" : "css\/compiled\/ui-elements.out.css" - }, - "css\/scss\/elements.scss" : { - "output" : "css\/scss\/elements.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/elements.css" : { - "output" : "css\/compiled\/elements.out.css" - }, - "js\/jquery.flot.resize.js" : { - "output" : "js\/jquery.flot.resize.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/user-profile.css" : { - "output" : "css\/compiled\/user-profile.out.css" - }, - "js\/html5.js" : { - "output" : "js\/html5.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/print.css" : { - "output" : "css\/compiled\/print.out.css" - }, - "js\/jquery.flot.js" : { - "output" : "js\/jquery.flot.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/tables.css" : { - "output" : "css\/compiled\/tables.out.css" - }, - "css\/scss\/code-editor.scss" : { - "output" : "css\/scss\/code-editor.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/tables.scss" : { - "output" : "css\/scss\/tables.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/lib\/jquery-ui-1.10.2.custom.css" : { - "output" : "css\/lib\/jquery-ui-1.10.2.custom.out.css" - }, - "js\/raphael-min.js" : { - "output" : "js\/raphael-min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/grids.scss" : { - "output" : "css\/scss\/grids.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/bootstrap\/bootstrap.css" : { - "output" : "css\/bootstrap\/bootstrap.out.css" - }, - "css\/compiled\/dataTables.responsive.css" : { - "output" : "css\/compiled\/dataTables.responsive.out.css" - }, - "css\/scss\/calendar.scss" : { - "output" : "css\/scss\/calendar.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/signin.scss" : { - "output" : "css\/scss\/signin.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/code-editor.css" : { - "output" : "css\/compiled\/code-editor.out.css" - }, - "js\/snipeit.js" : { - "output" : "js\/snipeit.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/web-app-icons.scss" : { - "output" : "css\/scss\/web-app-icons.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/bootstrap.js" : { - "output" : "js\/bootstrap.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/ui-elements.scss" : { - "output" : "css\/scss\/ui-elements.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/form-showcase.scss" : { - "output" : "css\/scss\/form-showcase.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/bootstrap.min.js" : { - "output" : "js\/bootstrap.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/theme.js" : { - "output" : "js\/theme.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/lib\/select2.css" : { - "output" : "css\/lib\/select2.out.css" - }, - "css\/compiled\/index.css" : { - "output" : "css\/compiled\/index.out.css" - }, - "css\/lib\/bootstrap-wysihtml5.css" : { - "output" : "css\/lib\/bootstrap-wysihtml5.out.css" - }, - "css\/bootstrap\/bootstrap.min.css" : { - "output" : "css\/bootstrap\/bootstrap.min.out.css" - }, - "css\/compiled\/grids.css" : { - "output" : "css\/compiled\/grids.out.css" - }, - "js\/bootstrap.datepicker.js" : { - "output" : "js\/bootstrap.datepicker.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/jquery.knob.js" : { - "output" : "js\/jquery.knob.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/personal-info.css" : { - "output" : "css\/compiled\/personal-info.out.css" - }, - "css\/compiled\/icons.css" : { - "output" : "css\/compiled\/icons.out.css" - }, - "css\/lib\/font-awesome.css" : { - "output" : "css\/lib\/font-awesome.out.css" - }, - "js\/jquery.tmpl.min.js" : { - "output" : "js\/jquery.tmpl.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/jquery.uniform.min.js" : { - "output" : "js\/jquery.uniform.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/bootstrap\/bootstrap-overrides.css" : { - "output" : "css\/bootstrap\/bootstrap-overrides.out.css" - }, - "js\/fullcalendar.min.js" : { - "output" : "js\/fullcalendar.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/calendar.css" : { - "output" : "css\/compiled\/calendar.out.css" - }, - "js\/jquery-latest.js" : { - "output" : "js\/jquery-latest.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/gallery.css" : { - "output" : "css\/compiled\/gallery.out.css" - }, - "css\/lib\/fullcalendar.print.css" : { - "output" : "css\/lib\/fullcalendar.print.out.css" - }, - "css\/compiled\/signin.css" : { - "output" : "css\/compiled\/signin.out.css" - }, - "css\/scss\/user-list.scss" : { - "output" : "css\/scss\/user-list.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/gcal.js" : { - "output" : "js\/gcal.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/jquery.dataTables.min.js" : { - "output" : "js\/jquery.dataTables.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/datatables.scss" : { - "output" : "css\/scss\/datatables.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/lib\/uniform.default.css" : { - "output" : "css\/lib\/uniform.default.out.css" - }, - "css\/scss\/chart-showcase.scss" : { - "output" : "css\/scss\/chart-showcase.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/ace\/ace.js" : { - "output" : "js\/ace\/ace.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/layout.css" : { - "output" : "css\/compiled\/layout.out.css" - }, - "css\/bootstrap\/bootstrap-responsive.css" : { - "output" : "css\/bootstrap\/bootstrap-responsive.out.css" - }, - "css\/compiled\/chart-showcase.css" : { - "output" : "css\/compiled\/chart-showcase.out.css" - }, - "css\/scss\/signup.scss" : { - "output" : "css\/scss\/signup.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/compiled\/signup.css" : { - "output" : "css\/compiled\/signup.out.css" - }, - "css\/compiled\/web-app-icons.css" : { - "output" : "css\/compiled\/web-app-icons.out.css" - }, - "css\/scss\/layout.scss" : { - "output" : "css\/scss\/layout.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "js\/jquery-ui-1.10.2.custom.min.js" : { - "output" : "js\/jquery-ui-1.10.2.custom.min.out.js", - "profiles" : { - "uglify" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/scss\/gallery.scss" : { - "output" : "css\/scss\/gallery.css", - "profiles" : { - "sass" : "00000000-0000-0000-0000-000000000000" - } - }, - "css\/lib\/fullcalendar.css" : { - "output" : "css\/lib\/fullcalendar.out.css" - }, - "css\/compiled\/form-showcase.css" : { - "output" : "css\/compiled\/form-showcase.out.css" - }, - "css\/lib\/bootstrap.datepicker.css" : { - "output" : "css\/lib\/bootstrap.datepicker.out.css" - } - }, - "flows" : { - "stylus" : { - "stylus" : "00000000-0000-0000-0000-000000000000", - "output" : "*.css" - }, - "sass" : { - "sass" : "00000000-0000-0000-0000-000000000000", - "output" : "*.css" - }, - "coffee" : { - "coffee" : "00000000-0000-0000-0000-000000000000", - "jshint" : "00000000-0000-0000-0000-000000000000", - "output" : "*.js", - "uglify" : "00000000-0000-0000-0000-000000000000" - }, - "jinja" : { - "jinja" : "00000000-0000-0000-0000-000000000000", - "output" : "*" - }, - "less" : { - "less" : "00000000-0000-0000-0000-000000000000", - "output" : "*.css" - }, - "css" : { - "output" : "*.out.css" - }, - "js" : { - "jshint" : "00000000-0000-0000-0000-000000000000", - "uglify" : "00000000-0000-0000-0000-000000000000", - "output" : "*.out.js" - } - }, - "profiles" : { - "stylus" : { - "00000000-0000-0000-0000-000000000000" : { - "mediaquery" : false, - "name" : "Default Stylus Profile", - "comments" : false, - "format" : 1 - } - }, - "coffee" : { - "00000000-0000-0000-0000-000000000000" : { - "name" : "Default CoffeeScript Profile", - "bare" : false - } - }, - "sass" : { - "00000000-0000-0000-0000-000000000000" : { - "name" : "Default Sass Profile", - "style" : "compressed", - "debug" : 0 - } - }, - "jshint" : { - "00000000-0000-0000-0000-000000000000" : { - "name" : "Default JSHint Profile", - "options" : [ - "undef", - "unused", - "bitwise", - "curly", - "eqeqeq", - "latedef", - "newcap", - "noarg", - "nonew", - "trailing", - "browser", - "jquery" - ], - "globals" : "" - } - }, - "less" : { - "00000000-0000-0000-0000-000000000000" : { - "imports" : false, - "mediaquery" : false, - "name" : "Default Less Profile", - "comments" : false, - "format" : 1 - } - }, - "jinja" : { - "00000000-0000-0000-0000-000000000000" : { - "name" : "Default Jinja Profile", - "autoescape" : false - } - }, - "uglify" : { - "00000000-0000-0000-0000-000000000000" : { - "name" : "Default UglifyJS Profile", - "options" : [ - "--mangle", - "--compress", - "beautify" - ] - } - } - }, - "version" : 10100 -} \ No newline at end of file diff --git a/public/assets/css/bootstrap/bootstrap.css b/public/assets/css/bootstrap/bootstrap.css index a11ab74af5..32ec159fc4 100755 --- a/public/assets/css/bootstrap/bootstrap.css +++ b/public/assets/css/bootstrap/bootstrap.css @@ -1328,8 +1328,9 @@ th { padding: 5px; } .table-bordered { - border: 1px solid #dddddd; + border-top: 1px solid #dddddd; } +/* .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, @@ -1338,6 +1339,7 @@ th { .table-bordered > tfoot > tr > td { border: 1px solid #dddddd; } +*/ .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px; diff --git a/public/assets/css/compiled/dataTables.colVis.css b/public/assets/css/compiled/dataTables.colVis.css new file mode 100644 index 0000000000..51f546de8e --- /dev/null +++ b/public/assets/css/compiled/dataTables.colVis.css @@ -0,0 +1,185 @@ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * ColVis styles + */ +div.ColVis { + float: right; + margin-bottom: 1em; +} + +button.ColVis_Button, +ul.ColVis_collection li { + position: relative; + float: left; + margin-right: 3px; + padding: 5px 8px; + border: 1px solid #999; + cursor: pointer; + *cursor: hand; + font-size: 0.88em; + color: black !important; + white-space: nowrap; + + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 1px 1px 3px #ccc; + -moz-box-shadow: 1px 1px 3px #ccc; + -ms-box-shadow: 1px 1px 3px #ccc; + -o-box-shadow: 1px 1px 3px #ccc; + box-shadow: 1px 1px 3px #ccc; + + /* Generated by http://www.colorzilla.com/gradient-editor/ */ + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ +} + +.ColVis_Button:hover, +ul.ColVis_collection li:hover { + border: 1px solid #666; + text-decoration: none !important; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; + + background: #f3f3f3; /* Old browsers */ + background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ + background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ +} + +button.ColVis_Button { + height: 30px; + padding: 3px 8px; +} + +button.ColVis_Button::-moz-focus-inner { + border: none !important; + padding: 0; +} + +button.ColVis_Button:active { + outline: none; +} + + +div.ColVis_collectionBackground { + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + background-color: black; + z-index: 1100; +} + +ul.ColVis_collection { + list-style: none; + width: 150px; + padding: 8px 8px 4px 8px; + margin: 0; + border: 1px solid #ccc; + border: 1px solid rgba( 0, 0, 0, 0.4 ); + background-color: #f3f3f3; + background-color: rgba( 255, 255, 255, 0.3 ); + overflow: hidden; + z-index: 2002; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); +} + +ul.ColVis_collection li { + position: relative; + height: auto; + left: 0; + right: 0; + padding: 0.5em; + + display: block; + float: none; + margin-bottom: 4px; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; +} + +ul.ColVis_collection li { + text-align: left; +} + +ul.ColVis_collection li.ColVis_Button:hover { + border: 1px solid #999; + background-color: #f0f0f0; +} + +ul.ColVis_collection li span { + display: inline-block; + padding-left: 0.5em; + cursor: pointer; +} + + +ul.ColVis_collection li.ColVis_Special { + border-color: #555; + background: rgb(237,237,237); /* Old browsers */ + background: -webkit-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, rgba(237,237,237,1) 0%, rgba(214,214,214,1) 77%, rgba(232,232,232,1) 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* IE10+ */ + background: -o-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* Opera 11.10+ */ + background: linear-gradient(to bottom, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#e8e8e8',GradientType=0 ); /* IE6-9 */ +} + +ul.ColVis_collection li.ColVis_Special:hover { + background: #e2e2e2; /* Old browsers */ + background: -webkit-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* IE10+ */ + background: -o-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#e2e2e2',GradientType=0 ); /* IE6-9 */ +} + + +span.ColVis_radio { + display: inline-block; + width: 20px; +} + +div.ColVis_catcher { + position: absolute; + z-index: 1101; +} + +.disabled { + color: #999; +} + + diff --git a/public/assets/css/compiled/dataTables.tableTools.css b/public/assets/css/compiled/dataTables.tableTools.css new file mode 100644 index 0000000000..bb54339d2d --- /dev/null +++ b/public/assets/css/compiled/dataTables.tableTools.css @@ -0,0 +1,345 @@ +/* + * File: TableTools.css + * Description: Styles for TableTools 2 + * Author: Allan Jardine (www.sprymedia.co.uk) + * Language: Javascript + * License: GPL v2 / 3 point BSD + * Project: DataTables + * + * Copyright 2009-2012 Allan Jardine, all rights reserved. + * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * CSS name space: + * DTTT DataTables TableTools + * + * Style sheet provides: + * CONTAINER TableTools container element and styles applying to all components + * BUTTON_STYLES Action specific button styles + * SELECTING Row selection styles + * COLLECTIONS Drop down list (collection) styles + * PRINTING Print display styles + */ + + +/* + * CONTAINER + * TableTools container element and styles applying to all components + */ +div.DTTT_container { + position: relative; + float: right; + margin-bottom: 1em; +} + +@media screen and (max-width: 640px) { + div.DTTT_container { + float: none !important; + text-align: center; + } + + div.DTTT_container:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; + } +} + + +button.DTTT_button, +div.DTTT_button, +a.DTTT_button { + position: relative; + display: inline-block; + margin-right: 3px; + padding: 5px 8px; + height: 30px; + border: 1px solid #999; + cursor: pointer; + *cursor: hand; + font-size: 0.88em; + color: black !important; + + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 1px 1px 3px #ccc; + -moz-box-shadow: 1px 1px 3px #ccc; + -ms-box-shadow: 1px 1px 3px #ccc; + -o-box-shadow: 1px 1px 3px #ccc; + box-shadow: 1px 1px 3px #ccc; + + /* Generated by http://www.colorzilla.com/gradient-editor/ */ + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ +} + + +/* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */ +button.DTTT_button { + height: 30px; + padding: 3px 8px; +} + +.DTTT_button embed { + outline: none; +} + +button.DTTT_button:hover, +div.DTTT_button:hover, +a.DTTT_button:hover { + border: 1px solid #666; + text-decoration: none !important; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; + + background: #f3f3f3; /* Old browsers */ + background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ + background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ +} + +button.DTTT_button:focus, +div.DTTT_button:focus, +a.DTTT_button:focus { + border: 1px solid #426c9e; + text-shadow: 0 1px 0 #c4def1; + outline: none; + + background-color: #a3d0ef 100%; + background-image: -webkit-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, #a3d0ef 100%); + background-image: -moz-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, #a3d0ef 100%); + background-image: -ms-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, #a3d0ef 100%); + background-image: -o-linear-gradient(top, #a3d0ef 0%, #79ace9 65%, #a3d0ef 100%); + background-image: linear-gradient(top, #a3d0ef 0%, #79ace9 65%, #a3d0ef 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#a3d0ef', EndColorStr='#a3d0ef'); +} + +button.DTTT_button:active, +div.DTTT_button:active, +a.DTTT_button:active { + -webkit-box-shadow: inset 1px 1px 3px #999999; + -moz-box-shadow: inset 1px 1px 3px #999999; + box-shadow: inset 1px 1px 3px #999999; +} + +button.DTTT_disabled, +div.DTTT_disabled, +a.DTTT_disabled { + color: #999; + border: 1px solid #d0d0d0; + + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */ +} + + + +/* + * BUTTON_STYLES + * Action specific button styles + * If you want img/tabletools - comment this back in + +a.DTTT_button_csv, +a.DTTT_button_xls, +a.DTTT_button_copy, +a.DTTT_button_pdf, +a.DTTT_button_print { + padding-right: 0px; +} + +a.DTTT_button_csv span, +a.DTTT_button_xls span, +a.DTTT_button_copy span, +a.DTTT_button_pdf span, +a.DTTT_button_print span { + display: inline-block; + height: 18px; + line-height: 18px; + padding-right: 10px; +} +*/ + +button.DTTT_button_collection span { + padding-right: 17px; + background: url(../../img/tabletools/collection.png) no-repeat center right; +} + +button.DTTT_button_collection:hover span { + padding-right: 17px; + background: #f0f0f0 url(../../img/tabletools/collection_hover.png) no-repeat center right; +} + + +/* + * SELECTING + * Row selection styles + */ +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +table.dataTable tr.DTTT_selected.odd { + background-color: #d6dff8; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_1 { + background-color: #c1cce8; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_2 { + background-color: #c1cce8; +} + +table.dataTable tr.DTTT_selected.odd td.sorting_3 { + background-color: #c1cce8; +} + + +table.dataTable tr.DTTT_selected.even { + background-color: #eaf0ff; +} + +table.dataTable tr.DTTT_selected.even td.sorting_1 { + background-color: #c1cce8; +} + +table.dataTable tr.DTTT_selected.even td.sorting_2 { + background-color: #c1cce8; +} + +table.dataTable tr.DTTT_selected.even td.sorting_3 { + background-color: #c1cce8; +} + + +/* + * COLLECTIONS + * Drop down list (collection) styles + */ + +div.DTTT_collection { + width: 150px; + padding: 8px 8px 4px 8px; + border: 1px solid #ccc; + border: 1px solid rgba( 0, 0, 0, 0.4 ); + background-color: #f3f3f3; + background-color: rgba( 255, 255, 255, 0.3 ); + overflow: hidden; + z-index: 2002; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); +} + +div.DTTT_collection_background { + background: transparent url(../../img/tabletools/background.png) repeat top left; + z-index: 2001; +} + +div.DTTT_collection button.DTTT_button, +div.DTTT_collection div.DTTT_button, +div.DTTT_collection a.DTTT_button { + position: relative; + left: 0; + right: 0; + + display: block; + float: none; + margin-bottom: 4px; + + -webkit-box-shadow: 1px 1px 3px #999; + -moz-box-shadow: 1px 1px 3px #999; + -ms-box-shadow: 1px 1px 3px #999; + -o-box-shadow: 1px 1px 3px #999; + box-shadow: 1px 1px 3px #999; +} + + +/* + * PRINTING + * Print display styles + */ + +.DTTT_print_info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + height: 150px; + margin-left: -200px; + margin-top: -75px; + text-align: center; + color: #333; + padding: 10px 30px; + + background: #ffffff; /* Old browsers */ + background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ + background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ + background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ + + opacity: 0.95; + + border: 1px solid black; + border: 1px solid rgba(0, 0, 0, 0.5); + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -ms-border-radius: 6px; + -o-border-radius: 6px; + border-radius: 6px; + + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + -o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); +} + +.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + diff --git a/public/assets/css/compiled/layout.css b/public/assets/css/compiled/layout.css index 6c39202cfc..ae0062155f 100644 --- a/public/assets/css/compiled/layout.css +++ b/public/assets/css/compiled/layout.css @@ -2,4 +2,4 @@ This file has been generated with SiteFlow (http://siteflow.witiz.com). To remove this comment, please support us and upgrade to SiteFlow Pro. */ -body{font-family:'Open Sans', sans-serif;background-color:#f7f7f7;position:relative;margin:0px;font-size:12px;padding:0px}h1,h2,h3,h4,h5{margin:0;line-height:inherit;color:#29323d}h1 small,h2 small,h3 small,h4 small,h5 small{margin-left:15px;font-style:italic}body.menu{overflow-x:hidden}body.menu .content{margin-left:165px;position:fixed;width:850px}body.menu #sidebar-nav{position:absolute;left:0;border-right:0px;box-shadow:none}input.search{background:url("../../img/lens.png") #fcfcfc no-repeat 95%;box-shadow:none;height:25px;width:220px;font-size:13px;padding:2px 6px;border:1px solid #d0dde9;margin:0;border-radius:2px;top:11px}.header{margin-bottom:60px}.header h1,.header h2,.header h3,.header h4,.header h5{float:left;margin-top:5px}.navbar-inverse input.search{height:27px;width:220px;padding:3px 6px;background:url("../../img/lens.png") #0f1217 no-repeat 95%;border:1px solid #0f1217;position:relative;border-radius:4px;top:9px;color:#000;font-size:13px;margin-right:40px;-webkit-transition:all .3s linear;-moz-transition:all .3s linear;transition:all .3s linear}.navbar-inverse input.search:focus{background-color:#fff;border:0}.navbar-inverse .settings i{color:#9ba3ad;font-size:21px}.navbar-inverse .notification-dropdown{position:relative}.navbar-inverse .notification-dropdown>a:hover,.navbar-inverse .notification-dropdown>a.active{background:#254261 !important;box-shadow:inset 1px 0px 1px 0px #3e5a79}.navbar-inverse .notification-dropdown i{font-size:17px;color:#9ba3ad}.navbar-inverse .notification-dropdown .count{position:absolute;top:1px;left:58%;background:#35bac4;padding:0px 5px;border-radius:30px;color:#fff;line-height:16px;z-index:9999;text-align:center;font-size:11px}.navbar-inverse .pop-dialog{position:absolute;right:-10px;top:55px;display:none}.navbar-inverse .pop-dialog.is-visible{display:block;-webkit-animation:reveal .2s ease-out;-moz-animation:reveal .2s ease-out;animation:reveal .2s ease-out}.navbar-inverse .pop-dialog .body{box-shadow:0px 1px 9px 1px #c2c2c2}.navbar-inverse .pop-dialog .close-icon{float:right;text-decoration:none;z-index:9999;position:relative}.navbar-inverse .pop-dialog .footer{border-top:1px solid #e6e8e9;background-color:#eff4f7;margin:15px 0px -10px 0px;border-radius:0px 0px 5px 5px;padding:12px 20px;text-align:center}.navbar-inverse .pop-dialog .footer a{font-weight:600;color:#7d91a8}.navbar-inverse .pop-dialog .notifications{width:330px;margin:10px -10px 0px -10px}.navbar-inverse .pop-dialog .notifications h3{font-size:13px;color:#404951;font-weight:bold;padding-left:20px;margin-top:5px;margin-bottom:15px}.navbar-inverse .pop-dialog .notifications .item{display:block;padding:10px 0px 8px 20px;border-top:1px solid #e7e8ea;color:#363636;text-decoration:none;padding-left:50px;position:relative;transition:all .25s linear;-moz-transition:all .25s linear;-webkit-transition:all .25s linear;-o-transition:all .25s linear}.navbar-inverse .pop-dialog .notifications .item:hover{background:#f0f6ff}.navbar-inverse .pop-dialog .notifications .item>i{color:#fc827b;position:absolute;left:19px;font-size:18px}.navbar-inverse .pop-dialog .notifications .item>i.icon-user{left:18px}.navbar-inverse .pop-dialog .notifications .item .time{float:right;color:#82a3c1;font-style:italic;font-weight:600;font-size:11px;min-width:60px;margin-right:5px}.navbar-inverse .pop-dialog .notifications .item .time i{font-size:13px;color:#cfcfcf;margin-right:1px}.navbar-inverse .pop-dialog .messages{width:325px;margin:10px -10px 0px -10px}.navbar-inverse .pop-dialog .messages .item{display:block;padding:10px 20px 15px 20px;height:80px;border-bottom:1px solid #e7e8ea;color:#363636;text-decoration:none;position:relative;transition:all .25s linear;-moz-transition:all .25s linear;-webkit-transition:all .25s linear;-o-transition:all .25s linear}.navbar-inverse .pop-dialog .messages .item.last{border-bottom:0px}.navbar-inverse .pop-dialog .messages .item:hover{background:#f0f6ff}.navbar-inverse .pop-dialog .messages .item .display{float:left;border-radius:50px;margin-right:15px}.navbar-inverse .pop-dialog .messages .item .name{font-size:12px;color:#404951;font-weight:bold}.navbar-inverse .pop-dialog .messages .item .msg{font-size:11px;color:#636363;line-height:13px;position:relative;top:2px}.navbar-inverse .pop-dialog .messages .item .time{position:absolute;right:0px;bottom:6px;color:#82a3c1;font-style:italic;font-weight:600;font-size:11px;min-width:60px;margin-right:5px}.navbar-inverse .pop-dialog .messages .item .time i{font-size:13px;color:#cfcfcf;margin-right:1px}.navbar-inverse .pop-dialog .messages .footer{margin-top:6px}#sidebar-nav{position:absolute;width:180px;float:left;margin:0em;padding-top:5.8em}#sidebar-nav #dashboard-menu{list-style:none;padding-right:15px;padding-left:15px;margin-bottom:0;margin-left:20px}#sidebar-nav #dashboard-menu>li>a{display:block;padding:19px 14px 15px 14px;margin-left:-15px;margin-bottom:5px;border-bottom:1px solid #dae1e8;box-shadow:0 2px 1px -1px #FFFFFF;color:#6e829b;outline:0px;line-height:21px}#sidebar-nav #dashboard-menu>li{position:relative}#sidebar-nav #dashboard-menu>li .icon-group{font-size:22px}#sidebar-nav #dashboard-menu>li i{font-size:23px;top:17px}#sidebar-nav #dashboard-menu>li:hover i{opacity:1}#sidebar-nav #dashboard-menu>li.active>a,#sidebar-nav #dashboard-menu>li>a:hover{color:#33455a;text-decoration:none}#sidebar-nav #dashboard-menu>li.active a{font-weight:600;text-shadow:1px 1px 1px #fff}#sidebar-nav #dashboard-menu>li.active i{opacity:1}#sidebar-nav #dashboard-menu .pointer{position:absolute;right:9px;top:20px}#sidebar-nav #dashboard-menu .pointer .arrow,#sidebar-nav #dashboard-menu .pointer .arrow_border{border-color:transparent #fff transparent transparent;border-width:11px;border-style:solid;font-size:0;left:50%;line-height:0;margin:0 auto;position:absolute;top:0;width:0;z-index:1002;left:0;margin-left:45%}#sidebar-nav #dashboard-menu .pointer .arrow_border{border-color:transparent #c0d2dd transparent transparent;border-width:11px;margin-left:-1px;border-style:solid;z-index:1001;top:0px}#sidebar-nav #dashboard-menu a span{margin-left:35px;transition:color .1s linear;-moz-transition:color .1s linear;-webkit-transition:color .1s linear;-o-transition:color .1s linear}#sidebar-nav #dashboard-menu a.ui-elements span{margin-left:25px}#sidebar-nav #dashboard-menu a i{position:absolute;left:0;height:24px;width:24px;opacity:0.7;transition:opacity .1s ease;-moz-transition:opacity .1s ease;-webkit-transition:opacity .1s ease;-o-transition:opacity .1s ease}#sidebar-nav #dashboard-menu a i.icon-chevron-down{position:relative;float:right;top:5px;font-size:11px;color:#686868;width:initial;height:initial}#sidebar-nav #dashboard-menu>li.active .dropdown-toggle{border-bottom:0px;box-shadow:none}#sidebar-nav #dashboard-menu ul.submenu{list-style-type:none;display:none;margin-top:7px;margin-bottom:15px;margin-right:5px;margin-left:-15px;padding-left:15px;border-bottom:1px solid #dae1e8;box-shadow:0 2px 1px -1px #FFFFFF;padding-bottom:10px}#sidebar-nav #dashboard-menu ul.submenu.active{display:block}#sidebar-nav #dashboard-menu ul.submenu a{font-weight:normal;font-size:13px;color:#4c535a;text-decoration:none;display:block;margin-bottom:7px}#sidebar-nav #dashboard-menu ul.submenu a:hover{text-decoration:underline}#sidebar-nav #dashboard-menu ul.submenu a.active{font-weight:bold;text-shadow:none}#pad-wrapper{padding:0px 50px;margin-top:15px}#pad-wrapper h4{color:#696d73;font-style:italic}.content{min-width:400px;min-height:620px;margin-bottom:20px;padding-bottom:50px;overflow:hidden;position:relative;background:#fff;margin-left:177px;border-left:1px solid #dae3e9;border-bottom:1px solid #dae3e9;box-shadow:-3px 3px 3px -2px #f1f1f3;border-radius:0px 0px 0px 5px;-webkit-transition:margin-left .3s ease;-moz-transition:margin-left .3s ease;-o-transition:margin-left .3s ease;-ms-transition:margin-left .3s ease;transition:margin-left .3s ease}.content.wide-content{margin-left:0;border-radius:0}.content .skins-nav{opacity:1;-webkit-transition:right .3s;-moz-transition:right .3s;-ms-transition:right .3s;-o-transition:right .3s;transition:right .3s;position:fixed;right:-88px;top:135px;font-size:13px;z-index:9999}.content .skins-nav:hover{right:0}.content .skins-nav a{display:block;color:#fff;text-decoration:none;padding-left:10px;height:37px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;margin-bottom:3px;-webkit-transition:all .5s;-moz-transition:all .5s;-ms-transition:all .5s;-o-transition:all .5s;transition:all .5s}.content .skins-nav a.first_nav{background:rgba(95,175,228,0.8)}.content .skins-nav a.first_nav:hover{background:#5fafe4}.content .skins-nav a.second_nav{background:rgba(36,43,77,0.8)}.content .skins-nav a.second_nav:hover{background:#242b4d}.content .skins-nav a .icon{float:left;width:9px;height:10px;background:url("../../img/skin-nav-bullets.png") 0 0 no-repeat;margin:15px 15px 0 5px}.content .skins-nav a.selected .icon{background-position:0 -9px}.content .skins-nav a .text{padding-right:12px;white-space:nowrap;display:block;width:115px;position:relative;top:9px;-webkit-transition:width .2s;-moz-transition:width .2s;-ms-transition:width .2s;-o-transition:width .2s;transition:width .2s}@media (max-width: 768px){#pad-wrapper{padding:0px 15px}.content{min-width:0px;margin:0}#dashboard-menu .pointer{display:none}#sidebar-nav{left:-200px;position:fixed;z-index:9999;background-color:#f7f7f7;padding-top:0px;border-right:1px solid #ccc;width:165px;box-shadow:1px 1px 4px 1px #e9e9e9;-webkit-transition:left .3s ease;-moz-transition:left .3s ease;-o-transition:left .3s ease;-ms-transition:left .3s ease;transition:left .3s ease}#sidebar-nav #dashboard-menu{margin-left:10px}#sidebar-nav #dashboard-menu li a span{visibility:visible}#sidebar-nav #dashboard-menu li:last-child a{border-bottom:0px;box-shadow:none}}@media (max-width: 822px){.navbar-inverse input.search{display:none}}@media (max-width: 767px){#main-stats .stat{width:50%;float:left}}.alert-msg{color:#b94a48} +body{font-family:'Open Sans', sans-serif;background-color:#f7f7f7;position:relative;margin:0px;font-size:12px;padding:0px}h1,h2,h3,h4,h5{margin:0;line-height:inherit;color:#29323d}h1 small,h2 small,h3 small,h4 small,h5 small{margin-left:15px;font-style:italic}body.menu{overflow-x:hidden}body.menu .content{margin-left:165px;position:fixed;width:850px}body.menu #sidebar-nav{position:absolute;left:0;border-right:0px;box-shadow:none}input.search{background:url("../../img/lens.png") #fcfcfc no-repeat 95%;box-shadow:none;height:25px;width:220px;font-size:13px;padding:2px 6px;border:1px solid #d0dde9;margin:0;border-radius:2px;top:11px}.header{margin-bottom:25px}.header h1,.header h2,.header h3,.header h4,.header h5{float:left;margin-top:5px}.navbar-inverse input.search{height:27px;width:220px;padding:3px 6px;background:url("../../img/lens.png") #0f1217 no-repeat 95%;border:1px solid #0f1217;position:relative;border-radius:4px;top:9px;color:#000;font-size:13px;margin-right:40px;-webkit-transition:all .3s linear;-moz-transition:all .3s linear;transition:all .3s linear}.navbar-inverse input.search:focus{background-color:#fff;border:0}.navbar-inverse .settings i{color:#9ba3ad;font-size:21px}.navbar-inverse .notification-dropdown{position:relative}.navbar-inverse .notification-dropdown>a:hover,.navbar-inverse .notification-dropdown>a.active{background:#254261 !important;box-shadow:inset 1px 0px 1px 0px #3e5a79}.navbar-inverse .notification-dropdown i{font-size:17px;color:#9ba3ad}.navbar-inverse .notification-dropdown .count{position:absolute;top:1px;left:58%;background:#35bac4;padding:0px 5px;border-radius:30px;color:#fff;line-height:16px;z-index:9999;text-align:center;font-size:11px}.navbar-inverse .pop-dialog{position:absolute;right:-10px;top:55px;display:none}.navbar-inverse .pop-dialog.is-visible{display:block;-webkit-animation:reveal .2s ease-out;-moz-animation:reveal .2s ease-out;animation:reveal .2s ease-out}.navbar-inverse .pop-dialog .body{box-shadow:0px 1px 9px 1px #c2c2c2}.navbar-inverse .pop-dialog .close-icon{float:right;text-decoration:none;z-index:9999;position:relative}.navbar-inverse .pop-dialog .footer{border-top:1px solid #e6e8e9;background-color:#eff4f7;margin:15px 0px -10px 0px;border-radius:0px 0px 5px 5px;padding:12px 20px;text-align:center}.navbar-inverse .pop-dialog .footer a{font-weight:600;color:#7d91a8}.navbar-inverse .pop-dialog .notifications{width:330px;margin:10px -10px 0px -10px}.navbar-inverse .pop-dialog .notifications h3{font-size:13px;color:#404951;font-weight:bold;padding-left:20px;margin-top:5px;margin-bottom:15px}.navbar-inverse .pop-dialog .notifications .item{display:block;padding:10px 0px 8px 20px;border-top:1px solid #e7e8ea;color:#363636;text-decoration:none;padding-left:50px;position:relative;transition:all .25s linear;-moz-transition:all .25s linear;-webkit-transition:all .25s linear;-o-transition:all .25s linear}.navbar-inverse .pop-dialog .notifications .item:hover{background:#f0f6ff}.navbar-inverse .pop-dialog .notifications .item>i{color:#fc827b;position:absolute;left:19px;font-size:18px}.navbar-inverse .pop-dialog .notifications .item>i.icon-user{left:18px}.navbar-inverse .pop-dialog .notifications .item .time{float:right;color:#82a3c1;font-style:italic;font-weight:600;font-size:11px;min-width:60px;margin-right:5px}.navbar-inverse .pop-dialog .notifications .item .time i{font-size:13px;color:#cfcfcf;margin-right:1px}.navbar-inverse .pop-dialog .messages{width:325px;margin:10px -10px 0px -10px}.navbar-inverse .pop-dialog .messages .item{display:block;padding:10px 20px 15px 20px;height:80px;border-bottom:1px solid #e7e8ea;color:#363636;text-decoration:none;position:relative;transition:all .25s linear;-moz-transition:all .25s linear;-webkit-transition:all .25s linear;-o-transition:all .25s linear}.navbar-inverse .pop-dialog .messages .item.last{border-bottom:0px}.navbar-inverse .pop-dialog .messages .item:hover{background:#f0f6ff}.navbar-inverse .pop-dialog .messages .item .display{float:left;border-radius:50px;margin-right:15px}.navbar-inverse .pop-dialog .messages .item .name{font-size:12px;color:#404951;font-weight:bold}.navbar-inverse .pop-dialog .messages .item .msg{font-size:11px;color:#636363;line-height:13px;position:relative;top:2px}.navbar-inverse .pop-dialog .messages .item .time{position:absolute;right:0px;bottom:6px;color:#82a3c1;font-style:italic;font-weight:600;font-size:11px;min-width:60px;margin-right:5px}.navbar-inverse .pop-dialog .messages .item .time i{font-size:13px;color:#cfcfcf;margin-right:1px}.navbar-inverse .pop-dialog .messages .footer{margin-top:6px}#sidebar-nav{position:absolute;width:180px;float:left;margin:0em;padding-top:5.8em}#sidebar-nav #dashboard-menu{list-style:none;padding-right:15px;padding-left:15px;margin-bottom:0;margin-left:20px}#sidebar-nav #dashboard-menu>li>a{display:block;padding:19px 14px 15px 14px;margin-left:-15px;margin-bottom:5px;border-bottom:1px solid #dae1e8;box-shadow:0 2px 1px -1px #FFFFFF;color:#6e829b;outline:0px;line-height:21px}#sidebar-nav #dashboard-menu>li{position:relative}#sidebar-nav #dashboard-menu>li .icon-group{font-size:22px}#sidebar-nav #dashboard-menu>li i{font-size:23px;top:17px}#sidebar-nav #dashboard-menu>li:hover i{opacity:1}#sidebar-nav #dashboard-menu>li.active>a,#sidebar-nav #dashboard-menu>li>a:hover{color:#33455a;text-decoration:none}#sidebar-nav #dashboard-menu>li.active a{font-weight:600;text-shadow:1px 1px 1px #fff}#sidebar-nav #dashboard-menu>li.active i{opacity:1}#sidebar-nav #dashboard-menu .pointer{position:absolute;right:9px;top:20px}#sidebar-nav #dashboard-menu .pointer .arrow,#sidebar-nav #dashboard-menu .pointer .arrow_border{border-color:transparent #fff transparent transparent;border-width:11px;border-style:solid;font-size:0;left:50%;line-height:0;margin:0 auto;position:absolute;top:0;width:0;z-index:1002;left:0;margin-left:45%}#sidebar-nav #dashboard-menu .pointer .arrow_border{border-color:transparent #c0d2dd transparent transparent;border-width:11px;margin-left:-1px;border-style:solid;z-index:1001;top:0px}#sidebar-nav #dashboard-menu a span{margin-left:35px;transition:color .1s linear;-moz-transition:color .1s linear;-webkit-transition:color .1s linear;-o-transition:color .1s linear}#sidebar-nav #dashboard-menu a.ui-elements span{margin-left:25px}#sidebar-nav #dashboard-menu a i{position:absolute;left:0;height:24px;width:24px;opacity:0.7;transition:opacity .1s ease;-moz-transition:opacity .1s ease;-webkit-transition:opacity .1s ease;-o-transition:opacity .1s ease}#sidebar-nav #dashboard-menu a i.icon-chevron-down{position:relative;float:right;top:5px;font-size:11px;color:#686868;width:initial;height:initial}#sidebar-nav #dashboard-menu>li.active .dropdown-toggle{border-bottom:0px;box-shadow:none}#sidebar-nav #dashboard-menu ul.submenu{list-style-type:none;display:none;margin-top:7px;margin-bottom:15px;margin-right:5px;margin-left:-15px;padding-left:15px;border-bottom:1px solid #dae1e8;box-shadow:0 2px 1px -1px #FFFFFF;padding-bottom:10px}#sidebar-nav #dashboard-menu ul.submenu.active{display:block}#sidebar-nav #dashboard-menu ul.submenu a{font-weight:normal;font-size:13px;color:#4c535a;text-decoration:none;display:block;margin-bottom:7px}#sidebar-nav #dashboard-menu ul.submenu a:hover{text-decoration:underline}#sidebar-nav #dashboard-menu ul.submenu a.active{font-weight:bold;text-shadow:none}#pad-wrapper{padding:0px 50px;margin-top:15px}#pad-wrapper h4{color:#696d73;font-style:italic}.content{min-width:400px;min-height:620px;margin-bottom:20px;padding-bottom:50px;overflow:hidden;position:relative;background:#fff;margin-left:177px;border-left:1px solid #dae3e9;border-bottom:1px solid #dae3e9;box-shadow:-3px 3px 3px -2px #f1f1f3;border-radius:0px 0px 0px 5px;-webkit-transition:margin-left .3s ease;-moz-transition:margin-left .3s ease;-o-transition:margin-left .3s ease;-ms-transition:margin-left .3s ease;transition:margin-left .3s ease}.content.wide-content{margin-left:0;border-radius:0}.content .skins-nav{opacity:1;-webkit-transition:right .3s;-moz-transition:right .3s;-ms-transition:right .3s;-o-transition:right .3s;transition:right .3s;position:fixed;right:-88px;top:135px;font-size:13px;z-index:9999}.content .skins-nav:hover{right:0}.content .skins-nav a{display:block;color:#fff;text-decoration:none;padding-left:10px;height:37px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;margin-bottom:3px;-webkit-transition:all .5s;-moz-transition:all .5s;-ms-transition:all .5s;-o-transition:all .5s;transition:all .5s}.content .skins-nav a.first_nav{background:rgba(95,175,228,0.8)}.content .skins-nav a.first_nav:hover{background:#5fafe4}.content .skins-nav a.second_nav{background:rgba(36,43,77,0.8)}.content .skins-nav a.second_nav:hover{background:#242b4d}.content .skins-nav a .icon{float:left;width:9px;height:10px;background:url("../../img/skin-nav-bullets.png") 0 0 no-repeat;margin:15px 15px 0 5px}.content .skins-nav a.selected .icon{background-position:0 -9px}.content .skins-nav a .text{padding-right:12px;white-space:nowrap;display:block;width:115px;position:relative;top:9px;-webkit-transition:width .2s;-moz-transition:width .2s;-ms-transition:width .2s;-o-transition:width .2s;transition:width .2s}@media (max-width: 768px){#pad-wrapper{padding:0px 15px}.content{min-width:0px;margin:0}#dashboard-menu .pointer{display:none}#sidebar-nav{left:-200px;position:fixed;z-index:9999;background-color:#f7f7f7;padding-top:0px;border-right:1px solid #ccc;width:165px;box-shadow:1px 1px 4px 1px #e9e9e9;-webkit-transition:left .3s ease;-moz-transition:left .3s ease;-o-transition:left .3s ease;-ms-transition:left .3s ease;transition:left .3s ease}#sidebar-nav #dashboard-menu{margin-left:10px}#sidebar-nav #dashboard-menu li a span{visibility:visible}#sidebar-nav #dashboard-menu li:last-child a{border-bottom:0px;box-shadow:none}}@media (max-width: 822px){.navbar-inverse input.search{display:none}}@media (max-width: 767px){#main-stats .stat{width:50%;float:left}}.alert-msg{color:#b94a48} diff --git a/public/assets/css/lib/jquery.dataTables.css b/public/assets/css/lib/jquery.dataTables.css index b0e842b7d4..6ddad3f791 100755 --- a/public/assets/css/lib/jquery.dataTables.css +++ b/public/assets/css/lib/jquery.dataTables.css @@ -74,6 +74,7 @@ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } .dataTables_filter { float: right; text-align: right; + padding-right: 20px; } .dataTables_filter label { font-weight: 600; @@ -212,15 +213,16 @@ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; } top: 50%; left: 50%; width: 250px; - height: 30px; + height: 50px; margin-left: -125px; margin-top: -15px; padding: 14px 0 2px 0; border: 1px solid #ddd; text-align: center; color: #999; - font-size: 14px; - background-color: white; + font-size: 16px; + background-color: #FFF; + z-index: 1; } diff --git a/public/assets/css/scss/layout.scss b/public/assets/css/scss/layout.scss index 8d9e4bd459..c526eac6a2 100644 --- a/public/assets/css/scss/layout.scss +++ b/public/assets/css/scss/layout.scss @@ -48,7 +48,7 @@ input.search{ } .header{ - margin-bottom: 60px; + margin-bottom: 25px; h1, h2, h3, h4, h5 { float: left; margin-top: 5px; diff --git a/public/assets/img/tabletools/background.png b/public/assets/img/tabletools/background.png new file mode 100644 index 0000000000..915efba689 Binary files /dev/null and b/public/assets/img/tabletools/background.png differ diff --git a/public/assets/img/tabletools/collection.png b/public/assets/img/tabletools/collection.png new file mode 100644 index 0000000000..5dd4dfdf69 Binary files /dev/null and b/public/assets/img/tabletools/collection.png differ diff --git a/public/assets/img/tabletools/collection_hover.png b/public/assets/img/tabletools/collection_hover.png new file mode 100644 index 0000000000..7b37b1e963 Binary files /dev/null and b/public/assets/img/tabletools/collection_hover.png differ diff --git a/public/assets/img/tabletools/copy.png b/public/assets/img/tabletools/copy.png new file mode 100644 index 0000000000..5b01ab165a Binary files /dev/null and b/public/assets/img/tabletools/copy.png differ diff --git a/public/assets/img/tabletools/copy_hover.png b/public/assets/img/tabletools/copy_hover.png new file mode 100644 index 0000000000..039a7fc32b Binary files /dev/null and b/public/assets/img/tabletools/copy_hover.png differ diff --git a/public/assets/img/tabletools/csv.png b/public/assets/img/tabletools/csv.png new file mode 100644 index 0000000000..43df1559f7 Binary files /dev/null and b/public/assets/img/tabletools/csv.png differ diff --git a/public/assets/img/tabletools/csv_hover.png b/public/assets/img/tabletools/csv_hover.png new file mode 100644 index 0000000000..10b34d3b90 Binary files /dev/null and b/public/assets/img/tabletools/csv_hover.png differ diff --git a/public/assets/img/tabletools/pdf.png b/public/assets/img/tabletools/pdf.png new file mode 100644 index 0000000000..1b038d0884 Binary files /dev/null and b/public/assets/img/tabletools/pdf.png differ diff --git a/public/assets/img/tabletools/pdf_hover.png b/public/assets/img/tabletools/pdf_hover.png new file mode 100644 index 0000000000..eb06855f4f Binary files /dev/null and b/public/assets/img/tabletools/pdf_hover.png differ diff --git a/public/assets/img/tabletools/print.png b/public/assets/img/tabletools/print.png new file mode 100644 index 0000000000..2db08242a0 Binary files /dev/null and b/public/assets/img/tabletools/print.png differ diff --git a/public/assets/img/tabletools/print_hover.png b/public/assets/img/tabletools/print_hover.png new file mode 100644 index 0000000000..9808a9cc9c Binary files /dev/null and b/public/assets/img/tabletools/print_hover.png differ diff --git a/public/assets/img/tabletools/xls.png b/public/assets/img/tabletools/xls.png new file mode 100644 index 0000000000..5aaf40d0e3 Binary files /dev/null and b/public/assets/img/tabletools/xls.png differ diff --git a/public/assets/img/tabletools/xls_hover.png b/public/assets/img/tabletools/xls_hover.png new file mode 100644 index 0000000000..5b1930afd8 Binary files /dev/null and b/public/assets/img/tabletools/xls_hover.png differ diff --git a/public/assets/js/dataTables.colVis.js b/public/assets/js/dataTables.colVis.js new file mode 100644 index 0000000000..331de3ffa0 --- /dev/null +++ b/public/assets/js/dataTables.colVis.js @@ -0,0 +1,1107 @@ +/*! ColVis 1.1.1 + * ©2010-2014 SpryMedia Ltd - datatables.net/license + */ + +/** + * @summary ColVis + * @description Controls for column visibility in DataTables + * @version 1.1.1 + * @file dataTables.colReorder.js + * @author SpryMedia Ltd (www.sprymedia.co.uk) + * @contact www.sprymedia.co.uk/contact + * @copyright Copyright 2010-2014 SpryMedia Ltd. + * + * This source file is free software, available under the following license: + * MIT license - http://datatables.net/license/mit + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + * + * For details please refer to: http://www.datatables.net + */ + +(function(window, document, undefined) { + + +var factory = function( $, DataTable ) { +"use strict"; + +/** + * ColVis provides column visibility control for DataTables + * + * @class ColVis + * @constructor + * @param {object} DataTables settings object. With DataTables 1.10 this can + * also be and API instance, table node, jQuery collection or jQuery selector. + * @param {object} ColVis configuration options + */ +var ColVis = function( oDTSettings, oInit ) +{ + /* Santiy check that we are a new instance */ + if ( !this.CLASS || this.CLASS != "ColVis" ) + { + alert( "Warning: ColVis must be initialised with the keyword 'new'" ); + } + + if ( typeof oInit == 'undefined' ) + { + oInit = {}; + } + + if ( $.fn.dataTable.camelToHungarian ) { + $.fn.dataTable.camelToHungarian( ColVis.defaults, oInit ); + } + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public class variables + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * @namespace Settings object which contains customisable information for + * ColVis instance. Augmented by ColVis.defaults + */ + this.s = { + /** + * DataTables settings object + * @property dt + * @type Object + * @default null + */ + "dt": null, + + /** + * Customisation object + * @property oInit + * @type Object + * @default passed in + */ + "oInit": oInit, + + /** + * Flag to say if the collection is hidden + * @property hidden + * @type boolean + * @default true + */ + "hidden": true, + + /** + * Store the original visibility settings so they could be restored + * @property abOriginal + * @type Array + * @default [] + */ + "abOriginal": [] + }; + + + /** + * @namespace Common and useful DOM elements for the class instance + */ + this.dom = { + /** + * Wrapper for the button - given back to DataTables as the node to insert + * @property wrapper + * @type Node + * @default null + */ + "wrapper": null, + + /** + * Activation button + * @property button + * @type Node + * @default null + */ + "button": null, + + /** + * Collection list node + * @property collection + * @type Node + * @default null + */ + "collection": null, + + /** + * Background node used for shading the display and event capturing + * @property background + * @type Node + * @default null + */ + "background": null, + + /** + * Element to position over the activation button to catch mouse events when using mouseover + * @property catcher + * @type Node + * @default null + */ + "catcher": null, + + /** + * List of button elements + * @property buttons + * @type Array + * @default [] + */ + "buttons": [], + + /** + * List of group button elements + * @property groupButtons + * @type Array + * @default [] + */ + "groupButtons": [], + + /** + * Restore button + * @property restore + * @type Node + * @default null + */ + "restore": null + }; + + /* Store global reference */ + ColVis.aInstances.push( this ); + + /* Constructor logic */ + this.s.dt = $.fn.dataTable.Api ? + new $.fn.dataTable.Api( oDTSettings ).settings()[0] : + oDTSettings; + + this._fnConstruct( oInit ); + return this; +}; + + + +ColVis.prototype = { + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Get the ColVis instance's control button so it can be injected into the + * DOM + * @method button + * @returns {node} ColVis button + */ + button: function () + { + return this.dom.wrapper; + }, + + /** + * Alias of `rebuild` for backwards compatibility + * @method fnRebuild + */ + "fnRebuild": function () + { + this.rebuild(); + }, + + /** + * Rebuild the list of buttons for this instance (i.e. if there is a column + * header update) + * @method fnRebuild + */ + rebuild: function () + { + /* Remove the old buttons */ + for ( var i=this.dom.buttons.length-1 ; i>=0 ; i-- ) { + this.dom.collection.removeChild( this.dom.buttons[i] ); + } + this.dom.buttons.splice( 0, this.dom.buttons.length ); + + if ( this.dom.restore ) { + this.dom.restore.parentNode( this.dom.restore ); + } + + /* Re-add them (this is not the optimal way of doing this, it is fast and effective) */ + this._fnAddGroups(); + this._fnAddButtons(); + + /* Update the checkboxes */ + this._fnDrawCallback(); + }, + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Private methods (they are of course public in JS, but recommended as private) + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Constructor logic + * @method _fnConstruct + * @returns void + * @private + */ + "_fnConstruct": function ( init ) + { + this._fnApplyCustomisation( init ); + + var that = this; + var i, iLen; + this.dom.wrapper = document.createElement('div'); + this.dom.wrapper.className = "ColVis"; + + this.dom.button = $( '