From be25cc201d2708d6cf9710f6fe2163d5ba76ef52 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:50:34 +1000 Subject: [PATCH 01/11] Added version column to licenses table --- ...0_054836_add_version_to_licenses_table.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 database/migrations/2025_09_10_054836_add_version_to_licenses_table.php diff --git a/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php b/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php new file mode 100644 index 000000000000..41c2d1d5a04c --- /dev/null +++ b/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php @@ -0,0 +1,30 @@ +string('version')->after('name')->nullable()->default(null); + }; + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('licenses', function (Blueprint $table) { + // + }); + } +}; From 73f2e6387d3b10123b3a871e9fbc234093b028ab Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:51:29 +1000 Subject: [PATCH 02/11] Added version field to license model --- app/Models/License.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Models/License.php b/app/Models/License.php index ecd1b003e3bb..dfa99a56a443 100755 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -45,6 +45,7 @@ class License extends Depreciable protected $rules = [ 'name' => 'required|string|min:3|max:255', + 'name' => 'string|nullable', 'seats' => 'required|min:1|integer|limit_change:10000', // limit_change is a "pseudo-rule" that translates into 'between', see prepareLimitChangeRule() below 'license_email' => 'email|nullable|max:120', 'license_name' => 'string|nullable|max:100', @@ -73,6 +74,7 @@ class License extends Depreciable 'manufacturer_id', 'category_id', 'name', + 'version', 'notes', 'order_number', 'purchase_cost', From 1589aadc05cd8bdfb58708e038155bb873d21281 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:54:41 +1000 Subject: [PATCH 03/11] Adds software version field --- resources/lang/en-GB/admin/licenses/form.php | 1 + resources/lang/en-US/admin/licenses/form.php | 1 + resources/views/licenses/edit.blade.php | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/resources/lang/en-GB/admin/licenses/form.php b/resources/lang/en-GB/admin/licenses/form.php index ce29167874f4..9e52fd9fe1db 100644 --- a/resources/lang/en-GB/admin/licenses/form.php +++ b/resources/lang/en-GB/admin/licenses/form.php @@ -9,6 +9,7 @@ 'license_key' => 'Product Key', 'maintained' => 'Maintained', 'name' => 'Software Name', + 'version' => 'Software Version', 'no_depreciation' => 'Do Not Depreciate', 'purchase_order' => 'Purchase Order Number', 'reassignable' => 'Reassignable', diff --git a/resources/lang/en-US/admin/licenses/form.php b/resources/lang/en-US/admin/licenses/form.php index ce29167874f4..9e52fd9fe1db 100644 --- a/resources/lang/en-US/admin/licenses/form.php +++ b/resources/lang/en-US/admin/licenses/form.php @@ -9,6 +9,7 @@ 'license_key' => 'Product Key', 'maintained' => 'Maintained', 'name' => 'Software Name', + 'version' => 'Software Version', 'no_depreciation' => 'Do Not Depreciate', 'purchase_order' => 'Purchase Order Number', 'reassignable' => 'Reassignable', diff --git a/resources/views/licenses/edit.blade.php b/resources/views/licenses/edit.blade.php index 87b018021606..4362b0a9d781 100755 --- a/resources/views/licenses/edit.blade.php +++ b/resources/views/licenses/edit.blade.php @@ -14,6 +14,16 @@ {{-- Page content --}} @section('inputFields') @include ('partials.forms.edit.name', ['translated_name' => trans('admin/licenses/form.name')]) + + +
+ +
+ + {!! $errors->first('version', '') !!} +
+
+ @include ('partials.forms.edit.category-select', ['translated_name' => trans('admin/categories/general.category_name'), 'fieldname' => 'category_id', 'required' => 'true', 'category_type' => 'license']) From 3c8e9845293a687399f4c69125588d7f2b7cbf58 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:55:31 +1000 Subject: [PATCH 04/11] Adds license version field to controller --- app/Http/Controllers/Licenses/LicensesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/Licenses/LicensesController.php b/app/Http/Controllers/Licenses/LicensesController.php index b1728469b4be..c9923d9105be 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -87,6 +87,7 @@ public function store(Request $request) $license->maintained = $request->input('maintained', 0); $license->manufacturer_id = $request->input('manufacturer_id'); $license->name = $request->input('name'); + $license->version = $request->input('version'); $license->notes = $request->input('notes'); $license->order_number = $request->input('order_number'); $license->purchase_cost = $request->input('purchase_cost'); From 72b3d69bedf7c020603e4494a37c269bb23a5a50 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:57:10 +1000 Subject: [PATCH 05/11] Adds license version to API and table view Adds the license version to the API response and the license table view. This allows users to see the specific version of a license. --- app/Http/Transformers/LicensesTransformer.php | 1 + app/Presenters/LicensePresenter.php | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/Http/Transformers/LicensesTransformer.php b/app/Http/Transformers/LicensesTransformer.php index 24822efeca7d..86d8401a23a6 100644 --- a/app/Http/Transformers/LicensesTransformer.php +++ b/app/Http/Transformers/LicensesTransformer.php @@ -24,6 +24,7 @@ public function transformLicense(License $license) $array = [ 'id' => (int) $license->id, 'name' => e($license->name), + 'version' => e($license->version), 'company' => ($license->company) ? ['id' => (int) $license->company->id, 'name'=> e($license->company->name)] : null, 'manufacturer' => ($license->manufacturer) ? ['id' => (int) $license->manufacturer->id, 'name'=> e($license->manufacturer->name)] : null, 'product_key' => (Gate::allows('viewKeys', License::class)) ? e($license->serial) : '------------', diff --git a/app/Presenters/LicensePresenter.php b/app/Presenters/LicensePresenter.php index b0518ef2640d..1d2a7ddb3c52 100644 --- a/app/Presenters/LicensePresenter.php +++ b/app/Presenters/LicensePresenter.php @@ -36,6 +36,12 @@ public static function dataTableLayout() 'switchable' => false, 'title' => trans('general.name'), 'formatter' => 'licensesLinkFormatter', + ], [ + ], [ + 'field' => 'version', + 'searchable' => false, + 'sortable' => true, + 'title' => trans('admin/licenses/form.version'), ], [ 'field' => 'product_key', 'searchable' => true, From 295d1ad2715faaf0f7f4641a01e732b78561e0c1 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 15:59:59 +1000 Subject: [PATCH 06/11] Displays license version in license view --- resources/views/licenses/view.blade.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/views/licenses/view.blade.php b/resources/views/licenses/view.blade.php index 591870c544aa..fec56aa10b5e 100755 --- a/resources/views/licenses/view.blade.php +++ b/resources/views/licenses/view.blade.php @@ -160,6 +160,16 @@ @endif + @if ($license->version) +
+
+ {{ trans('admin/licenses/form.version') }} +
+
+ {{ $license->version }} +
+
+ @endif @if ($license->license_name!='')
From a6546953f9a23d68d8bc28d86b33dc9fd9fb267c Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 16:02:06 +1000 Subject: [PATCH 07/11] Adds version to update method --- app/Http/Controllers/Licenses/LicensesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/Licenses/LicensesController.php b/app/Http/Controllers/Licenses/LicensesController.php index c9923d9105be..106d254ba012 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -170,6 +170,7 @@ public function update(Request $request, License $license) $license->license_name = $request->input('license_name'); $license->maintained = $request->input('maintained',0); $license->name = $request->input('name'); + $license->version = $request->input('version'); $license->notes = $request->input('notes'); $license->order_number = $request->input('order_number'); $license->purchase_cost = $request->input('purchase_cost'); From 76ab8a1d8bf94717e43e8ce6d59095f35f4878e4 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Wed, 10 Sep 2025 16:09:39 +1000 Subject: [PATCH 08/11] added down method for migration --- .../2025_09_10_054836_add_version_to_licenses_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php b/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php index 41c2d1d5a04c..3e361155f94a 100644 --- a/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php +++ b/database/migrations/2025_09_10_054836_add_version_to_licenses_table.php @@ -24,7 +24,7 @@ public function up(): void public function down(): void { Schema::table('licenses', function (Blueprint $table) { - // + $table->dropColumn('version'); }); } }; From 8ab9154040df251d06211af3935f1c5c5d2a3b81 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Thu, 11 Sep 2025 12:03:01 +1000 Subject: [PATCH 09/11] added version to $allowed_columns in Licenses API --- app/Http/Controllers/Api/LicensesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/Api/LicensesController.php b/app/Http/Controllers/Api/LicensesController.php index db39f987aa41..de1b5077912c 100644 --- a/app/Http/Controllers/Api/LicensesController.php +++ b/app/Http/Controllers/Api/LicensesController.php @@ -124,6 +124,7 @@ public function index(Request $request) : JsonResponse | array [ 'id', 'name', + 'version', 'purchase_cost', 'expiration_date', 'purchase_order', From 4091caeb17d8a4b77f1559f8e50126c6a5594988 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Thu, 11 Sep 2025 12:25:33 +1000 Subject: [PATCH 10/11] added version to the LicenseImporter --- app/Importer/LicenseImporter.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Importer/LicenseImporter.php b/app/Importer/LicenseImporter.php index d5df4aba3c59..d0c138eb3c3e 100644 --- a/app/Importer/LicenseImporter.php +++ b/app/Importer/LicenseImporter.php @@ -75,6 +75,7 @@ public function createLicenseIfNotExists(array $row) $this->item['reassignable'] = 1; } $this->item['seats'] = $this->findCsvMatch($row, 'seats'); + $this->item['version'] = $this->findCsvMatch($row, 'version'); $this->item["termination_date"] = null; if ($this->findCsvMatch($row, "termination_date")!='') { From 6d3e49481c1a8f8dd7a64fed81e729deb4237e47 Mon Sep 17 00:00:00 2001 From: Nathan Taylor Date: Fri, 12 Sep 2025 13:01:10 +1000 Subject: [PATCH 11/11] added version to Livewire/Importer --- app/Livewire/Importer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index dd80eec2cc2b..9db830cd06a6 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -296,6 +296,7 @@ public function mount() 'license_name' => trans('admin/licenses/form.to_name'), 'location' => trans('general.location'), 'maintained' => trans('admin/licenses/form.maintained'), + 'version' => trans('admin/licenses/form.version'), 'manufacturer' => trans('general.manufacturer'), 'min_amt' => trans('general.min_amt'), 'notes' => trans('general.notes'),