9191 :assetId =" assetId"
9292 :assetName =" assetName"
9393 />
94+ <add-to-bundle :asset-type =" bundleAssetType" />
9495 </div >
9596 </div >
9697 </div >
@@ -112,6 +113,7 @@ import AddToProjectModal from "../../components/shared/AddToProjectModal.vue";
112113import CreateTemplateModal from " ../../components/templates/CreateTemplateModal.vue" ;
113114import CreatePmBlockModal from " ../../components/pm-blocks/CreatePmBlockModal.vue" ;
114115import EllipsisMenu from " ../../components/shared/EllipsisMenu.vue" ;
116+ import AddToBundle from " ../../components/shared/AddToBundle.vue" ;
115117
116118const uniqIdsMixin = createUniqIdsMixin ();
117119
@@ -121,6 +123,7 @@ export default {
121123 CreateTemplateModal,
122124 CreatePmBlockModal,
123125 EllipsisMenu,
126+ AddToBundle,
124127 },
125128 mixins: [
126129 datatableMixin,
@@ -170,6 +173,7 @@ export default {
170173 assetId: " " ,
171174 processTemplateName: " " ,
172175 pmBlockName: " " ,
176+ bundleAssetType: " ProcessMaker\\ Models\\ Process" ,
173177 };
174178 },
175179 methods: {
@@ -216,17 +220,20 @@ export default {
216220 getActions (data ) {
217221 switch (data .asset_type ) {
218222 case " Process" :
219- return this .processActions ;
223+ return this .addBundleAction ( this . processActions , 7 ) ;
220224 case " Screen" :
221- return this .screenActions .filter ((object ) => object .value !== " duplicate-item" );
225+ return this .addBundleAction (
226+ this .screenActions .filter ((object ) => object .value !== " duplicate-item" ),
227+ 3 ,
228+ );
222229 case " Script" :
223- return this .scriptActions ;
230+ return this .addBundleAction ( this . scriptActions , 3 ) ;
224231 case " Data Source" :
225- return this .dataSourceActions ;
232+ return this .addBundleAction ( this . dataSourceActions , 2 ) ;
226233 case " Decision Table" :
227- return this .decisionTableActions ;
234+ return this .addBundleAction ( this . decisionTableActions , 2 ) ;
228235 case " Flow Genie" :
229- return this .flowGenieActions ;
236+ return this .addBundleAction ( this . flowGenieActions , 2 ) ;
230237 default :
231238 return []; // Handle unknown asset types as needed
232239 }
@@ -266,6 +273,15 @@ export default {
266273 * go to navigate action
267274 */
268275 onNavigate (action , data ) {
276+ if (action .value === " add-to-bundle" ) {
277+ const assetType = this .getBundleAssetType (data .asset_type );
278+ if (! assetType) {
279+ return ;
280+ }
281+ this .bundleAssetType = assetType;
282+ this .$root .$emit (" add-to-bundle" , data);
283+ return ;
284+ }
269285 switch (data .asset_type ) {
270286 case " Process" :
271287 this .assetType = " process" ;
@@ -320,6 +336,37 @@ export default {
320336 this .pmBlockName = name;
321337 this .$refs [" create-pm-block-modal" ].show ();
322338 },
339+ addBundleAction (actions , index ) {
340+ const addToBundleAction = {
341+ value: " add-to-bundle" ,
342+ content: " Add to Bundle" ,
343+ icon: " fp-add-outlined" ,
344+ permission: " admin" ,
345+ };
346+ return actions .toSpliced (index, 0 , addToBundleAction);
347+ },
348+ getBundleAssetType (assetType ) {
349+ switch (assetType) {
350+ case " Process" :
351+ return " ProcessMaker\\ Models\\ Process" ;
352+ case " Screen" :
353+ return " ProcessMaker\\ Models\\ Screen" ;
354+ case " Script" :
355+ return " ProcessMaker\\ Models\\ Script" ;
356+ case " Data Source" :
357+ return " ProcessMaker\\ Packages\\ Connectors\\ DataSources\\ Models\\ DataSource" ;
358+ case " Decision Table" :
359+ return " ProcessMaker\\ Package\\ PackageDecisionEngine\\ Models\\ DecisionTable" ;
360+ case " Flow Genie" :
361+ return " ProcessMaker\\ Package\\ PackageAi\\ Models\\ FlowGenie" ;
362+ case " Collection" :
363+ return " ProcessMaker\\ Plugins\\ Collections\\ Models\\ Collection" ;
364+ case " PM Block" :
365+ return " ProcessMaker\\ Package\\ PackagePmBlocks\\ Models\\ PmBlock" ;
366+ default :
367+ return null ;
368+ }
369+ },
323370 },
324371};
325372< / script>
0 commit comments