From 636c558fe652f9f69b899e28587d3949e45845c6 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 4 Dec 2017 15:26:40 -0800 Subject: [PATCH 1/5] Fixed #4566 - search by purchase_date --- app/Models/Asset.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 148b97c010..9924d83eee 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -817,6 +817,8 @@ class Asset extends Depreciable ->orWhere('assets.asset_tag', 'LIKE', '%'.$search.'%') ->orWhere('assets.serial', 'LIKE', '%'.$search.'%') ->orWhere('assets.order_number', 'LIKE', '%'.$search.'%') + ->orWhere('assets.purchase_date', 'LIKE', '%'.$search.'%') + ->orWhere('assets.purchase_cost', 'LIKE', '%'.$search.'%') ->orWhere('assets.notes', 'LIKE', '%'.$search.'%'); } foreach (CustomField::all() as $field) { From ec4bed436c3d579cd52c04924d02253d3604980b Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 4 Dec 2017 19:52:18 -0800 Subject: [PATCH 2/5] Fixed #4565 - show manufacturer in models selectlist --- app/Http/Controllers/Api/AssetModelsController.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/AssetModelsController.php b/app/Http/Controllers/Api/AssetModelsController.php index f38118ba6f..501a2d7f49 100644 --- a/app/Http/Controllers/Api/AssetModelsController.php +++ b/app/Http/Controllers/Api/AssetModelsController.php @@ -188,17 +188,19 @@ class AssetModelsController extends Controller 'models.name', 'models.image', 'models.model_number', - ])->with('manufacturer'); + 'models.manufacturer_id', + ])->with('manufacturer')->OrderManufacturer('ASC'); if ($request->has('search')) { $assetmodels = $assetmodels->where('models.name', 'LIKE', '%'.$request->get('search').'%') ->orWhere('models.model_number', 'LIKE', '%'.$request->get('search').'%'); } + $assetmodels = $assetmodels->orderby('models.name', 'asc')->orderby('models.model_number', 'asc')->paginate(50); foreach ($assetmodels as $assetmodel) { - $assetmodel->use_text = $assetmodel->present()->modelName; + $assetmodel->use_text = (($assetmodel->manufacturer) ? e($assetmodel->manufacturer->name) : '').' '.$assetmodel->present()->modelName; $assetmodel->use_image = ($assetmodel->image) ? url('/').'/uploads/models/'.$assetmodel->image : null; } From a4323a030809d0ea179ebfdc997e1c832d89110f Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 4 Dec 2017 19:57:15 -0800 Subject: [PATCH 3/5] Fixed #4559 - min width for checkin/checkout buttons --- public/css/build/all.css | Bin 239757 -> 239802 bytes public/css/dist/all.css | Bin 239757 -> 239802 bytes public/css/overrides.css | Bin 5233 -> 5278 bytes public/mix-manifest.json | 6 +++--- resources/assets/less/overrides.less | 4 ++++ 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/public/css/build/all.css b/public/css/build/all.css index 1ae49d8efa5c801156b823aac924e50ecbeb3984..0d816efc57472e18075661b40f4c59972b456d3f 100644 GIT binary patch delta 61 zcmeCZ$hYevUqcIH3)2?n-W9rfNhNuDN$I+|iADMOc{(s|L1|GzPHJ^-W}a?&W=cth Km8C&JMJ)i{g%>&i delta 15 WcmdmWk+1h6UqcIH3)2?n-W32hpay*a diff --git a/public/css/dist/all.css b/public/css/dist/all.css index 1ae49d8efa5c801156b823aac924e50ecbeb3984..0d816efc57472e18075661b40f4c59972b456d3f 100644 GIT binary patch delta 61 zcmeCZ$hYevUqcIH3)2?n-W9rfNhNuDN$I+|iADMOc{(s|L1|GzPHJ^-W}a?&W=cth Km8C&JMJ)i{g%>&i delta 15 WcmdmWk+1h6UqcIH3)2?n-W32hpay*a diff --git a/public/css/overrides.css b/public/css/overrides.css index 36cdb81376b70440d63b12c1eddc9deb91518b3c..7ba454db7fe0ead417391872d80d65110e5ad9bd 100644 GIT binary patch delta 56 zcmeyUF;8=Yhlq||Qc0d(Qo3$#Vo`p69-LcHT2zpeTAiDjr(2$xQj%e1X;4rx*img { .input-daterange { border-radius: 0px; } + +.btn.bg-maroon, .btn.bg-purple{ + min-width:90px; +} From fdaa2799301391a6e18e2f1485329907d2eb5a95 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 4 Dec 2017 20:19:30 -0800 Subject: [PATCH 4/5] Fixed #4548 - add cateory to model dropdown --- .../Controllers/Api/AssetModelsController.php | 10 ++--- app/Models/AssetModel.php | 39 ++++++++++++++++++ public/js/build/all.js | Bin 808599 -> 808649 bytes public/js/dist/all.js | Bin 808599 -> 808649 bytes public/mix-manifest.json | 4 +- resources/assets/js/snipeit.js | 4 +- 6 files changed, 48 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Api/AssetModelsController.php b/app/Http/Controllers/Api/AssetModelsController.php index 501a2d7f49..060946d9d5 100644 --- a/app/Http/Controllers/Api/AssetModelsController.php +++ b/app/Http/Controllers/Api/AssetModelsController.php @@ -189,18 +189,18 @@ class AssetModelsController extends Controller 'models.image', 'models.model_number', 'models.manufacturer_id', - ])->with('manufacturer')->OrderManufacturer('ASC'); + 'models.category_id', + ])->with('manufacturer','category'); if ($request->has('search')) { - $assetmodels = $assetmodels->where('models.name', 'LIKE', '%'.$request->get('search').'%') - ->orWhere('models.model_number', 'LIKE', '%'.$request->get('search').'%'); + $assetmodels = $assetmodels->SearchByManufacturerOrCat($request->input('search')); } - $assetmodels = $assetmodels->orderby('models.name', 'asc')->orderby('models.model_number', 'asc')->paginate(50); + $assetmodels = $assetmodels->OrderCategory('ASC')->OrderManufacturer('ASC')->orderby('models.name', 'asc')->orderby('models.model_number', 'asc')->paginate(50); foreach ($assetmodels as $assetmodel) { - $assetmodel->use_text = (($assetmodel->manufacturer) ? e($assetmodel->manufacturer->name) : '').' '.$assetmodel->present()->modelName; + $assetmodel->use_text = (($assetmodel->category) ? e($assetmodel->category->name) : '').': '.(($assetmodel->manufacturer) ? e($assetmodel->manufacturer->name) : '').' '.$assetmodel->present()->modelName; $assetmodel->use_image = ($assetmodel->image) ? url('/').'/uploads/models/'.$assetmodel->image : null; } diff --git a/app/Models/AssetModel.php b/app/Models/AssetModel.php index aa485399d8..71af09422e 100755 --- a/app/Models/AssetModel.php +++ b/app/Models/AssetModel.php @@ -169,6 +169,32 @@ class AssetModel extends SnipeModel } + /** + * Query builder scope to search on text, including catgeory and manufacturer name + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $search Search term + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeSearchByManufacturerOrCat($query, $search) + { + + return $query->where('models.name', 'LIKE', "%$search%") + ->orWhere('model_number', 'LIKE', "%$search%") + ->orWhere(function ($query) use ($search) { + $query->whereHas('category', function ($query) use ($search) { + $query->where('categories.name', 'LIKE', '%'.$search.'%'); + }); + }) + ->orWhere(function ($query) use ($search) { + $query->whereHas('manufacturer', function ($query) use ($search) { + $query->where('manufacturers.name', 'LIKE', '%'.$search.'%'); + }); + }); + + } + /** * Query builder scope to order on manufacturer * @@ -182,5 +208,18 @@ class AssetModel extends SnipeModel return $query->leftJoin('manufacturers', 'models.manufacturer_id', '=', 'manufacturers.id')->orderBy('manufacturers.name', $order); } + /** + * Query builder scope to order on category name + * + * @param \Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return \Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderCategory($query, $order) + { + return $query->leftJoin('categories', 'models.category_id', '=', 'categories.id')->orderBy('categories.name', $order); + } + } diff --git a/public/js/build/all.js b/public/js/build/all.js index b35517b1c6f9c8dc2b2651406db5572d9ebb8ac3..1a69e18fa937fae9065d1c43fc304c866f10bd29 100644 GIT binary patch delta 103 zcmbQf*6`$7!-f{d7N!>F7M2#)7Pc1l7LFFq7OocVEj%|pBvUfW6pBkKb5d>9%QI6- uGOQGg4GJo()$OL=@Ziytv{uMXtk6Z3vC#)=n$GUYqrqsr-N2J4ofiNW79h+3 delta 53 zcmX@P)^Pe-!-f{d7N!>F7M2#)7Pc1l7LFFq7OocVEj%|prhoR}(PdPhZt2OR!DzHS J$&)9Y7XbFS5di=I diff --git a/public/js/dist/all.js b/public/js/dist/all.js index b35517b1c6f9c8dc2b2651406db5572d9ebb8ac3..1a69e18fa937fae9065d1c43fc304c866f10bd29 100644 GIT binary patch delta 103 zcmbQf*6`$7!-f{d7N!>F7M2#)7Pc1l7LFFq7OocVEj%|pBvUfW6pBkKb5d>9%QI6- uGOQGg4GJo()$OL=@Ziytv{uMXtk6Z3vC#)=n$GUYqrqsr-N2J4ofiNW79h+3 delta 53 zcmX@P)^Pe-!-f{d7N!>F7M2#)7Pc1l7LFFq7OocVEj%|prhoR}(PdPhZt2OR!DzHS J$&)9Y7XbFS5di=I diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 944cf7fb71..a4e607fcec 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -8,7 +8,7 @@ "/css/app.css.map": "/css/app.css.map?id=bdbe05e6ecd70ccfac72", "/css/overrides.css.map": "/css/overrides.css.map?id=898c91d4a425b01b589b", "/css/dist/all.css": "/css/dist/all.css?id=51e5995cec7ce583f5dd", - "/js/dist/all.js": "/js/dist/all.js?id=7b52ead3a55086ea1f8d", + "/js/dist/all.js": "/js/dist/all.js?id=88f08e0103b14f7949b3", "/css/build/all.css": "/css/build/all.css?id=51e5995cec7ce583f5dd", - "/js/build/all.js": "/js/build/all.js?id=7b52ead3a55086ea1f8d" + "/js/build/all.js": "/js/build/all.js?id=88f08e0103b14f7949b3" } \ No newline at end of file diff --git a/resources/assets/js/snipeit.js b/resources/assets/js/snipeit.js index d58d7a704e..f826be9827 100755 --- a/resources/assets/js/snipeit.js +++ b/resources/assets/js/snipeit.js @@ -241,9 +241,9 @@ $(document).ready(function () { var markup = "
" ; markup +="
"; if (datalist.image) { - markup += ""; + markup += "
"; } else { - markup += "
"; + markup += "
"; } markup += "
" + datalist.text + "
"; From 174e3e720aa1aa991085f7e55b5ce687d450ef22 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 4 Dec 2017 20:30:57 -0800 Subject: [PATCH 5/5] Fixed #4521 - profile location not selected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is kind of a janky way to handle this - I created a new dropdown select, instead of adding even more convoluted code to the partial. The reasoon for this is because there may be situations where $user is passed in *addition* to $item, and we don’t want to erroneously use that location if we’re not supposed to be. --- resources/views/account/profile.blade.php | 2 +- .../edit/location-profile-select.blade.php | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 resources/views/partials/forms/edit/location-profile-select.blade.php diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php index 3b8cddba0f..cf57a72746 100755 --- a/resources/views/account/profile.blade.php +++ b/resources/views/account/profile.blade.php @@ -38,7 +38,7 @@ - @include ('partials.forms.edit.location-select', ['translated_name' => trans('general.location'), 'fieldname' => 'location_id']) + @include ('partials.forms.edit.location-profile-select', ['translated_name' => trans('general.location')])
diff --git a/resources/views/partials/forms/edit/location-profile-select.blade.php b/resources/views/partials/forms/edit/location-profile-select.blade.php new file mode 100644 index 0000000000..f51c751e46 --- /dev/null +++ b/resources/views/partials/forms/edit/location-profile-select.blade.php @@ -0,0 +1,22 @@ + +
+ + {{ Form::label('location_id', $translated_name, array('class' => 'col-md-3 control-label')) }} +
+ +
+ + {!! $errors->first('location_id', '
:message
') !!} + +
+ + +