diff --git a/ProcessMaker/Http/Controllers/Api/DevLinkController.php b/ProcessMaker/Http/Controllers/Api/DevLinkController.php
index 634ddac124..bec0058ceb 100644
--- a/ProcessMaker/Http/Controllers/Api/DevLinkController.php
+++ b/ProcessMaker/Http/Controllers/Api/DevLinkController.php
@@ -4,10 +4,10 @@
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
+use ProcessMaker\Exception\ValidationException;
use ProcessMaker\Http\Controllers\Controller;
use ProcessMaker\Http\Resources\ApiCollection;
use ProcessMaker\Jobs\DevLinkInstall;
-use ProcessMaker\Exception\ValidationException;
use ProcessMaker\Models\Bundle;
use ProcessMaker\Models\BundleAsset;
use ProcessMaker\Models\DevLink;
@@ -131,6 +131,7 @@ public function createBundle(Request $request)
{
$bundle = new Bundle();
$bundle->name = $request->input('name');
+ $bundle->description = $request->input('description');
$bundle->published = (bool) $request->input('published', false);
$bundle->version = 1;
$bundle->saveOrFail();
@@ -143,6 +144,7 @@ public function updateBundle(Request $request, Bundle $bundle)
$bundle->validateEditable();
$bundle->name = $request->input('name');
+ $bundle->description = $request->input('description');
$bundle->published = (bool) $request->input('published', false);
$bundle->saveOrFail();
@@ -212,7 +214,7 @@ public function addAsset(Request $request, Bundle $bundle)
$asset = $request->input('type')::findOrFail($request->input('id'));
$bundle->addAsset($asset);
}
-
+
public function addAssetToBundles(Request $request)
{
$bundles = $request->input('bundles');
diff --git a/database/migrations/2024_11_26_145144_add_description_to_bundles_table.php b/database/migrations/2024_11_26_145144_add_description_to_bundles_table.php
new file mode 100644
index 0000000000..26f93cef62
--- /dev/null
+++ b/database/migrations/2024_11_26_145144_add_description_to_bundles_table.php
@@ -0,0 +1,27 @@
+text('description')->after('name')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('bundles', function (Blueprint $table) {
+ $table->dropColumn('description');
+ });
+ }
+};
diff --git a/resources/js/admin/devlink/components/BundleModal.vue b/resources/js/admin/devlink/components/BundleModal.vue
index abc1c3ae41..2f83ff1b3d 100644
--- a/resources/js/admin/devlink/components/BundleModal.vue
+++ b/resources/js/admin/devlink/components/BundleModal.vue
@@ -10,6 +10,14 @@
+
+
+
diff --git a/resources/js/admin/devlink/components/LocalBundles.vue b/resources/js/admin/devlink/components/LocalBundles.vue
index 6a0bba8bed..047a768a7b 100644
--- a/resources/js/admin/devlink/components/LocalBundles.vue
+++ b/resources/js/admin/devlink/components/LocalBundles.vue
@@ -85,6 +85,7 @@ const fields = [
const bundleAttributes = {
id: null,
name: '',
+ description: '',
published: false,
};