mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-25 05:34:06 -08:00
Merge remote-tracking branch 'origin/develop'
This commit is contained in:
commit
c706759b5c
|
@ -44,12 +44,17 @@ class LdapSync extends Command
|
||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// If LDAP enabled isn't set to 1 (ldap_enabled!=1) then we should cut this short immediately without going any further
|
||||||
|
if (Setting::getSettings()->ldap_enabled!='1') {
|
||||||
|
$this->error('LDAP is not enabled. Aborting. See Settings > LDAP to enable it.');
|
||||||
|
}
|
||||||
|
|
||||||
ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); //600 seconds = 10 minutes
|
ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); //600 seconds = 10 minutes
|
||||||
ini_set('memory_limit', env('LDAP_MEM_LIM', '500M'));
|
ini_set('memory_limit', env('LDAP_MEM_LIM', '500M'));
|
||||||
$ldap_result_username = Setting::getSettings()->ldap_username_field;
|
$ldap_result_username = Setting::getSettings()->ldap_username_field;
|
||||||
$ldap_result_last_name = Setting::getSettings()->ldap_lname_field;
|
$ldap_result_last_name = Setting::getSettings()->ldap_lname_field;
|
||||||
$ldap_result_first_name = Setting::getSettings()->ldap_fname_field;
|
$ldap_result_first_name = Setting::getSettings()->ldap_fname_field;
|
||||||
|
|
||||||
$ldap_result_active_flag = Setting::getSettings()->ldap_active_flag;
|
$ldap_result_active_flag = Setting::getSettings()->ldap_active_flag;
|
||||||
$ldap_result_emp_num = Setting::getSettings()->ldap_emp_num;
|
$ldap_result_emp_num = Setting::getSettings()->ldap_emp_num;
|
||||||
$ldap_result_email = Setting::getSettings()->ldap_email;
|
$ldap_result_email = Setting::getSettings()->ldap_email;
|
||||||
|
@ -303,17 +308,18 @@ class LdapSync extends Command
|
||||||
$user->activated = 0;
|
$user->activated = 0;
|
||||||
} */
|
} */
|
||||||
$enabled_accounts = [
|
$enabled_accounts = [
|
||||||
'512', // 0x200 NORMAL_ACCOUNT
|
'512', // 0x200 NORMAL_ACCOUNT
|
||||||
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
|
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
|
||||||
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
|
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
|
||||||
'66080', // 0x10220 NORMAL_ACCOUNT, PASSWD_NOTREQD, DONT_EXPIRE_PASSWORD
|
'66080', // 0x10220 NORMAL_ACCOUNT, PASSWD_NOTREQD, DONT_EXPIRE_PASSWORD
|
||||||
'262656', // 0x40200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED
|
'262656', // 0x40200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED
|
||||||
'262688', // 0x40220 NORMAL_ACCOUNT, PASSWD_NOTREQD, SMARTCARD_REQUIRED
|
'262688', // 0x40220 NORMAL_ACCOUNT, PASSWD_NOTREQD, SMARTCARD_REQUIRED
|
||||||
'328192', // 0x50200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
'328192', // 0x50200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
||||||
'328224', // 0x50220 NORMAL_ACCOUNT, PASSWD_NOT_REQD, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
'328224', // 0x50220 NORMAL_ACCOUNT, PASSWD_NOT_REQD, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
||||||
'4194816',// 0x400200 NORMAL_ACCOUNT, DONT_REQ_PREAUTH
|
'4194816',// 0x400200 NORMAL_ACCOUNT, DONT_REQ_PREAUTH
|
||||||
'4260352', // 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
|
'4260352', // 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
|
||||||
'1049088', // 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
|
'1049088', // 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
|
||||||
|
'1114624', // 0x110200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, NOT_DELEGATED,
|
||||||
];
|
];
|
||||||
$user->activated = (in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts)) ? 1 : 0;
|
$user->activated = (in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts)) ? 1 : 0;
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ class AccessoriesController extends Controller
|
||||||
public function store(ImageUploadRequest $request)
|
public function store(ImageUploadRequest $request)
|
||||||
{
|
{
|
||||||
$this->authorize(Accessory::class);
|
$this->authorize(Accessory::class);
|
||||||
|
|
||||||
// create a new model instance
|
// create a new model instance
|
||||||
$accessory = new Accessory();
|
$accessory = new Accessory();
|
||||||
|
|
||||||
|
@ -82,7 +83,6 @@ class AccessoriesController extends Controller
|
||||||
$accessory->supplier_id = request('supplier_id');
|
$accessory->supplier_id = request('supplier_id');
|
||||||
$accessory->notes = request('notes');
|
$accessory->notes = request('notes');
|
||||||
|
|
||||||
|
|
||||||
$accessory = $request->handleImages($accessory);
|
$accessory = $request->handleImages($accessory);
|
||||||
|
|
||||||
// Was the accessory created?
|
// Was the accessory created?
|
||||||
|
@ -127,45 +127,47 @@ class AccessoriesController extends Controller
|
||||||
*/
|
*/
|
||||||
public function update(ImageUploadRequest $request, $accessoryId = null)
|
public function update(ImageUploadRequest $request, $accessoryId = null)
|
||||||
{
|
{
|
||||||
if (is_null($accessory = Accessory::find($accessoryId))) {
|
if ($accessory = Accessory::withCount('users as users_count')->find($accessoryId)) {
|
||||||
|
|
||||||
|
$this->authorize($accessory);
|
||||||
|
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
"qty" => "required|numeric|min:$accessory->users_count"
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return redirect()->back()
|
||||||
|
->withErrors($validator)
|
||||||
|
->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Update the accessory data
|
||||||
|
$accessory->name = request('name');
|
||||||
|
$accessory->location_id = request('location_id');
|
||||||
|
$accessory->min_amt = request('min_amt');
|
||||||
|
$accessory->category_id = request('category_id');
|
||||||
|
$accessory->company_id = Company::getIdForCurrentUser(request('company_id'));
|
||||||
|
$accessory->manufacturer_id = request('manufacturer_id');
|
||||||
|
$accessory->order_number = request('order_number');
|
||||||
|
$accessory->model_number = request('model_number');
|
||||||
|
$accessory->purchase_date = request('purchase_date');
|
||||||
|
$accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost'));
|
||||||
|
$accessory->qty = request('qty');
|
||||||
|
$accessory->supplier_id = request('supplier_id');
|
||||||
|
$accessory->notes = request('notes');
|
||||||
|
|
||||||
|
$accessory = $request->handleImages($accessory);
|
||||||
|
|
||||||
|
// Was the accessory updated?
|
||||||
|
if ($accessory->save()) {
|
||||||
|
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success'));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
|
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$min = $accessory->numCheckedOut();
|
|
||||||
$validator = Validator::make($request->all(), [
|
|
||||||
"qty" => "required|numeric|min:$min"
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($validator->fails()) {
|
|
||||||
return redirect()->back()
|
|
||||||
->withErrors($validator)
|
|
||||||
->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->authorize($accessory);
|
|
||||||
|
|
||||||
// Update the accessory data
|
|
||||||
$accessory->name = request('name');
|
|
||||||
$accessory->location_id = request('location_id');
|
|
||||||
$accessory->min_amt = request('min_amt');
|
|
||||||
$accessory->category_id = request('category_id');
|
|
||||||
$accessory->company_id = Company::getIdForCurrentUser(request('company_id'));
|
|
||||||
$accessory->manufacturer_id = request('manufacturer_id');
|
|
||||||
$accessory->order_number = request('order_number');
|
|
||||||
$accessory->model_number = request('model_number');
|
|
||||||
$accessory->purchase_date = request('purchase_date');
|
|
||||||
$accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost'));
|
|
||||||
$accessory->qty = request('qty');
|
|
||||||
$accessory->supplier_id = request('supplier_id');
|
|
||||||
$accessory->notes = request('notes');
|
|
||||||
|
|
||||||
$accessory = $request->handleImages($accessory);
|
|
||||||
|
|
||||||
// Was the accessory updated?
|
|
||||||
if ($accessory->save()) {
|
|
||||||
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->back()->withInput()->withErrors($accessory->getErrors());
|
return redirect()->back()->withInput()->withErrors($accessory->getErrors());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,7 +219,7 @@ class AccessoriesController extends Controller
|
||||||
*/
|
*/
|
||||||
public function show($accessoryID = null)
|
public function show($accessoryID = null)
|
||||||
{
|
{
|
||||||
$accessory = Accessory::find($accessoryID);
|
$accessory = Accessory::withCount('users as users_count')->find($accessoryID);
|
||||||
$this->authorize('view', $accessory);
|
$this->authorize('view', $accessory);
|
||||||
if (isset($accessory->id)) {
|
if (isset($accessory->id)) {
|
||||||
return view('accessories/view', compact('accessory'));
|
return view('accessories/view', compact('accessory'));
|
||||||
|
|
|
@ -41,10 +41,13 @@ class AccessoriesController extends Controller
|
||||||
'min_amt',
|
'min_amt',
|
||||||
'company_id',
|
'company_id',
|
||||||
'notes',
|
'notes',
|
||||||
|
'users_count',
|
||||||
|
'qty',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
$accessories = Accessory::select('accessories.*')->with('category', 'company', 'manufacturer', 'users', 'location', 'supplier');
|
$accessories = Accessory::select('accessories.*')->with('category', 'company', 'manufacturer', 'users', 'location', 'supplier')
|
||||||
|
->withCount('users as users_count');
|
||||||
|
|
||||||
if ($request->filled('search')) {
|
if ($request->filled('search')) {
|
||||||
$accessories = $accessories->TextSearch($request->input('search'));
|
$accessories = $accessories->TextSearch($request->input('search'));
|
||||||
|
|
|
@ -33,7 +33,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$this->authorize('index', CustomFieldset::class);
|
$this->authorize('index', CustomField::class);
|
||||||
$fieldsets = CustomFieldset::withCount('fields as fields_count', 'models as models_count')->get();
|
$fieldsets = CustomFieldset::withCount('fields as fields_count', 'models as models_count')->get();
|
||||||
|
|
||||||
return (new CustomFieldsetsTransformer)->transformCustomFieldsets($fieldsets, $fieldsets->count());
|
return (new CustomFieldsetsTransformer)->transformCustomFieldsets($fieldsets, $fieldsets->count());
|
||||||
|
@ -49,7 +49,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
$this->authorize('view', CustomFieldset::class);
|
$this->authorize('view', CustomField::class);
|
||||||
if ($fieldset = CustomFieldset::find($id)) {
|
if ($fieldset = CustomFieldset::find($id)) {
|
||||||
return (new CustomFieldsetsTransformer)->transformCustomFieldset($fieldset);
|
return (new CustomFieldsetsTransformer)->transformCustomFieldset($fieldset);
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
$this->authorize('update', CustomFieldset::class);
|
$this->authorize('update', CustomField::class);
|
||||||
$fieldset = CustomFieldset::findOrFail($id);
|
$fieldset = CustomFieldset::findOrFail($id);
|
||||||
$fieldset->fill($request->all());
|
$fieldset->fill($request->all());
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$this->authorize('create', CustomFieldset::class);
|
$this->authorize('create', CustomField::class);
|
||||||
$fieldset = new CustomFieldset;
|
$fieldset = new CustomFieldset;
|
||||||
$fieldset->fill($request->all());
|
$fieldset->fill($request->all());
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$this->authorize('delete', CustomFieldset::class);
|
$this->authorize('delete', CustomField::class);
|
||||||
$fieldset = CustomFieldset::findOrFail($id);
|
$fieldset = CustomFieldset::findOrFail($id);
|
||||||
|
|
||||||
$modelsCount = $fieldset->models->count();
|
$modelsCount = $fieldset->models->count();
|
||||||
|
@ -136,7 +136,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function fields($id)
|
public function fields($id)
|
||||||
{
|
{
|
||||||
$this->authorize('view', CustomFieldset::class);
|
$this->authorize('view', CustomField::class);
|
||||||
$set = CustomFieldset::findOrFail($id);
|
$set = CustomFieldset::findOrFail($id);
|
||||||
$fields = $set->fields;
|
$fields = $set->fields;
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function fieldsWithDefaultValues($fieldsetId, $modelId)
|
public function fieldsWithDefaultValues($fieldsetId, $modelId)
|
||||||
{
|
{
|
||||||
$this->authorize('view', CustomFieldset::class);
|
$this->authorize('view', CustomField::class);
|
||||||
|
|
||||||
$set = CustomFieldset::findOrFail($fieldsetId);
|
$set = CustomFieldset::findOrFail($fieldsetId);
|
||||||
|
|
||||||
|
|
|
@ -75,9 +75,9 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
$this->authorize('create', CustomFieldset::class);
|
$this->authorize('create', CustomField::class);
|
||||||
|
|
||||||
return view('custom_fields.fieldsets.edit');
|
return view('custom_fields.fieldsets.edit')->with('item', new CustomFieldset());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,7 +91,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$this->authorize('create', CustomFieldset::class);
|
$this->authorize('create', CustomField::class);
|
||||||
|
|
||||||
$cfset = new CustomFieldset([
|
$cfset = new CustomFieldset([
|
||||||
'name' => e($request->get('name')),
|
'name' => e($request->get('name')),
|
||||||
|
@ -110,31 +110,52 @@ class CustomFieldsetsController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* What the actual fuck, Brady?
|
* Presents edit form for fieldset
|
||||||
*
|
*
|
||||||
* @todo Uhh, build this?
|
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||||
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
|
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @since [v1.8]
|
* @since [v6.0.14]
|
||||||
* @return Fuckall
|
* @return Redirect
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
//
|
$this->authorize('create', CustomField::class);
|
||||||
|
|
||||||
|
if ($fieldset = CustomFieldset::find($id)) {
|
||||||
|
return view('custom_fields.fieldsets.edit')->with('item', $fieldset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('fields.index')->with('error', trans('admin/custom_fields/general.fieldset_does_not_exist', ['id' => $id]));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET IN THE SEA BRADY.
|
* Saves updated fieldset data
|
||||||
*
|
*
|
||||||
* @todo Uhh, build this too?
|
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||||
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
|
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @since [v1.8]
|
* @since [v6.0.14]
|
||||||
* @return Fuckall
|
* @return Redirect
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function update($id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
//
|
$this->authorize('create', CustomField::class);
|
||||||
|
|
||||||
|
if ($fieldset = CustomFieldset::find($id)) {
|
||||||
|
|
||||||
|
$fieldset->name = $request->input('name');
|
||||||
|
|
||||||
|
if ($fieldset->save()) {
|
||||||
|
return redirect()->route('fields.index')->with('success', trans('admin/custom_fields/general.fieldset_updated'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->back()->withInput()->withErrors($fieldset->getErrors());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('fields.index')->with('error', trans('admin/custom_fields/general.fieldset_does_not_exist', ['id' => $id]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,7 +169,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$fieldset = CustomFieldset::find($id);
|
$fieldset = CustomField::find($id);
|
||||||
|
|
||||||
$this->authorize('delete', $fieldset);
|
$this->authorize('delete', $fieldset);
|
||||||
|
|
||||||
|
@ -175,7 +196,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function associate(Request $request, $id)
|
public function associate(Request $request, $id)
|
||||||
{
|
{
|
||||||
$set = CustomFieldset::find($id);
|
$set = CustomField::find($id);
|
||||||
|
|
||||||
$this->authorize('update', $set);
|
$this->authorize('update', $set);
|
||||||
|
|
||||||
|
@ -202,7 +223,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function makeFieldRequired($fieldset_id, $field_id)
|
public function makeFieldRequired($fieldset_id, $field_id)
|
||||||
{
|
{
|
||||||
$this->authorize('update', CustomFieldset::class);
|
$this->authorize('update', CustomField::class);
|
||||||
$field = CustomField::findOrFail($field_id);
|
$field = CustomField::findOrFail($field_id);
|
||||||
$fieldset = CustomFieldset::findOrFail($fieldset_id);
|
$fieldset = CustomFieldset::findOrFail($fieldset_id);
|
||||||
$fields[$field->id] = ['required' => 1];
|
$fields[$field->id] = ['required' => 1];
|
||||||
|
@ -220,7 +241,7 @@ class CustomFieldsetsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function makeFieldOptional($fieldset_id, $field_id)
|
public function makeFieldOptional($fieldset_id, $field_id)
|
||||||
{
|
{
|
||||||
$this->authorize('update', CustomFieldset::class);
|
$this->authorize('update', CustomField::class);
|
||||||
$field = CustomField::findOrFail($field_id);
|
$field = CustomField::findOrFail($field_id);
|
||||||
$fieldset = CustomFieldset::findOrFail($fieldset_id);
|
$fieldset = CustomFieldset::findOrFail($fieldset_id);
|
||||||
$fields[$field->id] = ['required' => 0];
|
$fields[$field->id] = ['required' => 0];
|
||||||
|
|
|
@ -38,7 +38,8 @@ class AccessoriesTransformer
|
||||||
'purchase_cost' => Helper::formatCurrencyOutput($accessory->purchase_cost),
|
'purchase_cost' => Helper::formatCurrencyOutput($accessory->purchase_cost),
|
||||||
'order_number' => ($accessory->order_number) ? e($accessory->order_number) : null,
|
'order_number' => ($accessory->order_number) ? e($accessory->order_number) : null,
|
||||||
'min_qty' => ($accessory->min_amt) ? (int) $accessory->min_amt : null,
|
'min_qty' => ($accessory->min_amt) ? (int) $accessory->min_amt : null,
|
||||||
'remaining_qty' => $accessory->numRemaining(),
|
'remaining_qty' => (int) $accessory->numRemaining(),
|
||||||
|
'users_count' => $accessory->users_count,
|
||||||
|
|
||||||
'created_at' => Helper::getFormattedDateObject($accessory->created_at, 'datetime'),
|
'created_at' => Helper::getFormattedDateObject($accessory->created_at, 'datetime'),
|
||||||
'updated_at' => Helper::getFormattedDateObject($accessory->updated_at, 'datetime'),
|
'updated_at' => Helper::getFormattedDateObject($accessory->updated_at, 'datetime'),
|
||||||
|
|
|
@ -327,20 +327,6 @@ class Accessory extends SnipeModel
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check how many items within an accessory are checked out
|
|
||||||
*
|
|
||||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
|
||||||
* @since [v5.0]
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function numCheckedOut()
|
|
||||||
{
|
|
||||||
$checkedout = 0;
|
|
||||||
$checkedout = $this->users->count();
|
|
||||||
|
|
||||||
return $checkedout;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check how many items of an accessory remain
|
* Check how many items of an accessory remain
|
||||||
|
@ -351,11 +337,11 @@ class Accessory extends SnipeModel
|
||||||
*/
|
*/
|
||||||
public function numRemaining()
|
public function numRemaining()
|
||||||
{
|
{
|
||||||
$checkedout = $this->users->count();
|
$checkedout = $this->users_count;
|
||||||
$total = $this->qty;
|
$total = $this->qty;
|
||||||
$remaining = $total - $checkedout;
|
$remaining = $total - $checkedout;
|
||||||
|
|
||||||
return $remaining;
|
return (int) $remaining;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
0
app/Models/User.php
Executable file → Normal file
0
app/Models/User.php
Executable file → Normal file
|
@ -80,19 +80,25 @@ class AccessoryPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'qty',
|
'field' => 'qty',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => false,
|
|
||||||
'title' => trans('admin/accessories/general.total'),
|
|
||||||
], [
|
|
||||||
'field' => 'min_qty',
|
|
||||||
'searchable' => false,
|
|
||||||
'sortable' => true,
|
'sortable' => true,
|
||||||
'title' => trans('general.min_amt'),
|
'title' => trans('admin/accessories/general.total'),
|
||||||
], [
|
], [
|
||||||
'field' => 'remaining_qty',
|
'field' => 'remaining_qty',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => false,
|
'sortable' => false,
|
||||||
'visible' => false,
|
'visible' => false,
|
||||||
'title' => trans('admin/accessories/general.remaining'),
|
'title' => trans('admin/accessories/general.remaining'),
|
||||||
|
],[
|
||||||
|
'field' => 'users_count',
|
||||||
|
'searchable' => false,
|
||||||
|
'sortable' => true,
|
||||||
|
'visible' => true,
|
||||||
|
'title' => trans('general.checked_out'),
|
||||||
|
], [
|
||||||
|
'field' => 'min_qty',
|
||||||
|
'searchable' => false,
|
||||||
|
'sortable' => true,
|
||||||
|
'title' => trans('general.min_amt'),
|
||||||
], [
|
], [
|
||||||
'field' => 'purchase_date',
|
'field' => 'purchase_date',
|
||||||
'searchable' => true,
|
'searchable' => true,
|
||||||
|
|
|
@ -12,4 +12,5 @@ return array(
|
||||||
'remaining' => 'Remaining',
|
'remaining' => 'Remaining',
|
||||||
'total' => 'Total',
|
'total' => 'Total',
|
||||||
'update' => 'Update Component',
|
'update' => 'Update Component',
|
||||||
|
'checkin_limit' => 'Amount checked in must be equal to or less than :assigned_qty'
|
||||||
);
|
);
|
||||||
|
|
|
@ -27,6 +27,9 @@ return [
|
||||||
'used_by_models' => 'Used By Models',
|
'used_by_models' => 'Used By Models',
|
||||||
'order' => 'Order',
|
'order' => 'Order',
|
||||||
'create_fieldset' => 'New Fieldset',
|
'create_fieldset' => 'New Fieldset',
|
||||||
|
'update_fieldset' => 'Update Fieldset',
|
||||||
|
'fieldset_does_not_exist' => 'Fieldset :id does not exist',
|
||||||
|
'fieldset_updated' => 'Fieldset updated',
|
||||||
'create_fieldset_title' => 'Create a new fieldset',
|
'create_fieldset_title' => 'Create a new fieldset',
|
||||||
'create_field' => 'New Custom Field',
|
'create_field' => 'New Custom Field',
|
||||||
'create_field_title' => 'Create a new custom field',
|
'create_field_title' => 'Create a new custom field',
|
||||||
|
|
0
resources/views/accessories/edit.blade.php
Executable file → Normal file
0
resources/views/accessories/edit.blade.php
Executable file → Normal file
|
@ -290,7 +290,7 @@
|
||||||
@if ($accessory->company)
|
@if ($accessory->company)
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4" style="padding-bottom: 15px;">
|
<div class="col-md-4" style="padding-bottom: 15px;">
|
||||||
{{ trans('general.company')}}
|
<strong> {{ trans('general.company')}}</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<a href="{{ route('companies.show', $accessory->company->id) }}">{{ $accessory->company->name }} </a>
|
<a href="{{ route('companies.show', $accessory->company->id) }}">{{ $accessory->company->name }} </a>
|
||||||
|
@ -302,7 +302,7 @@
|
||||||
@if ($accessory->category)
|
@if ($accessory->category)
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4" style="padding-bottom: 15px;">
|
<div class="col-md-4" style="padding-bottom: 15px;">
|
||||||
{{ trans('general.category')}}
|
<strong>{{ trans('general.category')}}</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<a href="{{ route('categories.show', $accessory->category->id) }}">{{ $accessory->category->name }} </a>
|
<a href="{{ route('categories.show', $accessory->category->id) }}">{{ $accessory->category->name }} </a>
|
||||||
|
@ -327,13 +327,22 @@
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4" style="padding-bottom: 15px;">
|
<div class="col-md-4" style="padding-bottom: 15px;">
|
||||||
Number remaining
|
<strong>{{ trans('admin/accessories/general.remaining') }}</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
{{ $accessory->numRemaining() }}
|
{{ $accessory->numRemaining() }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4" style="padding-bottom: 15px;">
|
||||||
|
<strong>{{ trans('general.checked_out') }}</strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
{{ $accessory->users_count }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@can('checkout', \App\Models\Accessory::class)
|
@can('checkout', \App\Models\Accessory::class)
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<input type="text" class="form-control" name="checkin_qty" aria-label="checkin_qty" value="{{ old('assigned_qty', $component_assets->assigned_qty) }}">
|
<input type="text" class="form-control" name="checkin_qty" aria-label="checkin_qty" value="{{ old('assigned_qty', $component_assets->assigned_qty) }}">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9 col-md-offset-2">
|
<div class="col-md-9 col-md-offset-2">
|
||||||
<p class="help-block">Must be {{ $component_assets->assigned_qty }} or less.</p>
|
<p class="help-block">{{ trans('admin/components/general.checkin_limit', ['assigned_qty' => $component_assets->assigned_qty]) }}</p>
|
||||||
{!! $errors->first('checkin_qty', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i>
|
{!! $errors->first('checkin_qty', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i>
|
||||||
:message</span>') !!}
|
:message</span>') !!}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
@if ($snipeSettings->slack_endpoint!='')
|
@if ($snipeSettings->slack_endpoint!='')
|
||||||
<i class="fab fa-slack"></i>
|
<i class="fab fa-slack"></i>
|
||||||
A slack message will be sent
|
{{ trans('general.slack_msg_note') }}
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,49 +1,17 @@
|
||||||
@extends('layouts.default')
|
@extends('layouts/edit-form', [
|
||||||
|
'createText' => trans('admin/custom_fields/general.create_fieldset') ,
|
||||||
|
'updateText' => trans('admin/custom_fields/general.update_fieldset'),
|
||||||
|
'helpText' => trans('admin/custom_fields/general.about_fieldsets_text'),
|
||||||
|
'helpPosition' => 'right',
|
||||||
|
'formAction' => (isset($item->id)) ? route('fieldsets.update', ['fieldset' => $item->id]) : route('fieldsets.store'),
|
||||||
|
])
|
||||||
|
|
||||||
{{-- Page title --}}
|
|
||||||
@section('title')
|
|
||||||
{{ trans('admin/custom_fields/general.create_fieldset') }}
|
|
||||||
@parent
|
|
||||||
@stop
|
|
||||||
|
|
||||||
@section('header_right')
|
|
||||||
<a href="{{ URL::previous() }}" class="btn btn-primary pull-right">
|
|
||||||
{{ trans('general.back') }}</a>
|
|
||||||
@stop
|
|
||||||
|
|
||||||
|
|
||||||
{{-- Page content --}}
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
@parent
|
||||||
<div class="col-md-9">
|
|
||||||
|
|
||||||
{{ Form::open(['route' => 'fieldsets.store', 'class'=>'form-horizontal']) }}
|
|
||||||
<!-- Horizontal Form -->
|
|
||||||
<div class="box box-default">
|
|
||||||
<div class="box-body">
|
|
||||||
|
|
||||||
<!-- Name -->
|
|
||||||
<div class="form-group {{ $errors->has('name') ? ' has-error' : '' }}">
|
|
||||||
<label for="name" class="col-md-4 control-label">
|
|
||||||
{{ trans('admin/custom_fields/general.fieldset_name') }}
|
|
||||||
</label>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input class="form-control" type="text" name="name" id="name" value="{{ old('name') }}" required>
|
|
||||||
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!-- /.box-body-->
|
|
||||||
<div class="box-footer text-right">
|
|
||||||
<button type="submit" class="btn btn-success"><i class="fas fa-check icon-white" aria-hidden="true"></i> {{ trans('general.save') }}</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!-- /.box.box-default-->
|
|
||||||
{{ Form::close() }}
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<h2>{{ trans('admin/custom_fields/general.about_fieldsets_title') }}</h4>
|
|
||||||
<p>{{ trans('admin/custom_fields/general.about_fieldsets_text') }}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
|
@section('inputFields')
|
||||||
|
@include ('partials.forms.edit.name', ['translated_name' => trans('general.name')])
|
||||||
|
@stop
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,18 @@
|
||||||
@endforeach
|
@endforeach
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
|
<nobr>
|
||||||
|
|
||||||
|
@can('update', $fieldset)
|
||||||
|
<a href="{{ route('fieldsets.edit', $fieldset->id) }}" class="btn btn-warning btn-sm">
|
||||||
|
<i class="fas fa-pencil-alt" aria-hidden="true"></i>
|
||||||
|
<span class="sr-only">{{ trans('button.edit') }}</span>
|
||||||
|
</a>
|
||||||
|
@endcan
|
||||||
|
|
||||||
@can('delete', $fieldset)
|
@can('delete', $fieldset)
|
||||||
{{ Form::open(['route' => array('fieldsets.destroy', $fieldset->id), 'method' => 'delete']) }}
|
{{ Form::open(['route' => array('fieldsets.destroy', $fieldset->id), 'method' => 'delete','style' => 'display:inline-block']) }}
|
||||||
@if($fieldset->models->count() > 0)
|
@if($fieldset->models->count() > 0)
|
||||||
<button type="submit" class="btn btn-danger btn-sm disabled" disabled><i class="fas fa-trash"></i></button>
|
<button type="submit" class="btn btn-danger btn-sm disabled" disabled><i class="fas fa-trash"></i></button>
|
||||||
@else
|
@else
|
||||||
|
@ -78,6 +88,7 @@
|
||||||
@endif
|
@endif
|
||||||
{{ Form::close() }}
|
{{ Form::close() }}
|
||||||
@endcan
|
@endcan
|
||||||
|
</nobr>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
Loading…
Reference in a new issue