diff --git a/ProcessMaker/Http/Controllers/Process/ScreenController.php b/ProcessMaker/Http/Controllers/Process/ScreenController.php
index 109a4f523c..1ae64dc53b 100644
--- a/ProcessMaker/Http/Controllers/Process/ScreenController.php
+++ b/ProcessMaker/Http/Controllers/Process/ScreenController.php
@@ -56,7 +56,21 @@ public function index(Request $request)
'countCategories' => ScreenCategory::where(['status' => 'ACTIVE', 'is_system' => false])->count(),
];
- return view('processes.screens.index', compact('listConfig', 'catConfig'));
+ $myScreenTemplates = (object) [
+
+ ];
+
+ $publicScreenTemplates = (object) [
+
+ ];
+
+ return view('processes.screens.index',
+ compact(
+ 'listConfig',
+ 'catConfig',
+ 'myScreenTemplates',
+ 'publicScreenTemplates',
+ ));
}
/**
diff --git a/resources/js/components/shared/EllipsisMenu.vue b/resources/js/components/shared/EllipsisMenu.vue
index d100f218ff..ccbc57998b 100644
--- a/resources/js/components/shared/EllipsisMenu.vue
+++ b/resources/js/components/shared/EllipsisMenu.vue
@@ -25,6 +25,10 @@
+
+
+
+
@@ -110,7 +114,22 @@ export default {
components: { PmqlInput },
filters: { },
mixins: [],
- props: ["actions", "permission", "data", "isDocumenterInstalled", "divider", "lauchpad", "customButton", "showProgress", "isPackageInstalled", "searchBar", "variant", "redirectTo", "redirectId"],
+ props: [
+ "actions",
+ "permission",
+ "data",
+ "isDocumenterInstalled",
+ "divider",
+ "lauchpad",
+ "screenTemplate",
+ "customButton",
+ "showProgress",
+ "isPackageInstalled",
+ "searchBar",
+ "variant",
+ "redirectTo",
+ "redirectId",
+ ],
data() {
return {
active: false,
diff --git a/resources/js/components/shared/ellipsisMenuActions.js b/resources/js/components/shared/ellipsisMenuActions.js
index 554373c513..05dd07a158 100644
--- a/resources/js/components/shared/ellipsisMenuActions.js
+++ b/resources/js/components/shared/ellipsisMenuActions.js
@@ -253,6 +253,31 @@ export default {
permission: ["delete-decision_tables", "view-additional-asset-actions"]
},
],
+ myTemplateActions: [
+ //TODO: Update My Template Ellipsis Menu Actions
+ {
+ value: "edit-template",
+ content: "Edit Template",
+ link: true,
+ href: "/designer/screen-builder/{{id}}/edit",
+ permission: ["edit-screens", "view-additional-asset-actions"],
+ icon: "fas fa-pen-square",
+ },
+ {
+ value: "make-public",
+ content: "Make Public",
+ link: true,
+ href: "/designer/screens/{{id}}/edit",
+ permission: ["edit-screens", "view-additional-asset-actions"],
+ icon: "fas fa-file-export",
+ },
+ {
+ value: "delete-template",
+ content: "Delete Template",
+ permission: ["delete-screens", "view-additional-asset-actions"],
+ icon: "fas fa-trash-alt",
+ },
+ ],
};
},
};
diff --git a/resources/js/processes/screen-templates/components/MyTemplatesListing.vue b/resources/js/processes/screen-templates/components/MyTemplatesListing.vue
new file mode 100644
index 0000000000..91c4dfe4af
--- /dev/null
+++ b/resources/js/processes/screen-templates/components/MyTemplatesListing.vue
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row[header.field] }}
+
+
+
+
+
+
+
+ {{ getNestedPropertyValue(row, header) }}
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/processes/screen-templates/index.js b/resources/js/processes/screen-templates/index.js
new file mode 100644
index 0000000000..2a0e9fcc79
--- /dev/null
+++ b/resources/js/processes/screen-templates/index.js
@@ -0,0 +1,26 @@
+import Vue from "vue";
+import MyTemplatesListing from "../screen-templates/components/MyTemplatesListing";
+
+new Vue({
+ el: "#myTemplatesIndex",
+ components: {
+ MyTemplatesListing,
+ },
+ data: {
+ filter: "",
+ pmql: "",
+ urlPmql: "",
+ },
+ methods: {
+ onNLQConversion(query) {
+ this.onChange(query);
+ this.reload();
+ },
+ onChange(query) {
+ this.pmql = query;
+ },
+ reload() {
+ this.$refs.myTemplatesListing.fetch();
+ },
+ },
+});
diff --git a/resources/views/components/categorized_resource.blade.php b/resources/views/components/categorized_resource.blade.php
index d5b1aa75f6..54dcb355be 100644
--- a/resources/views/components/categorized_resource.blade.php
+++ b/resources/views/components/categorized_resource.blade.php
@@ -46,6 +46,27 @@
@endisset
+ @elseif (isset($myScreenTemplates))
+ @if ($catConfig->permissions['view'])
+
+
+ {{ $tabs[1] ?? __('Categories') }}
+
+
+ @endif
+
+
+ {{ $tabs[2] ?? __('My Templates') }}
+
+
+
+
+ {{ $tabs[3] ?? __('Public Templates') }}
+
+
@else
@if ($catConfig->permissions['view'] && $catConfig->routes->itemsIndexWeb !== "data-sources.index")
@@ -105,10 +126,15 @@
@endcan
-
-
- {{ $categoryList }}
-
+
+
+ {{ $categoryList }}
+
@isset($tabs[3])
@@ -117,8 +143,43 @@
@endisset
+ @elseif(isset($myScreenTemplates))
+
+
+ {{ $categoryList }}
+
+
+ @isset($tabs[3])
+
+
+ {{ $myTemplatesList }}
+
+
+ @endisset
+ @isset($tabs[4])
+
+
+ {{ $publicTemplatesList }}
+
+
+ @endisset
@else
-
+
{{ $categoryList }}
@@ -149,6 +210,12 @@
loadTemplates = function () {
ProcessMaker.EventBus.$emit("api-data-process-templates");
}
+ loadMyTemplates = function () {
+ console.log('my templates loaded');
+ }
+ loadPublicTemplates = function () {
+ console.log('public templates loaded');
+ }
if ({{$listConfig->countCategories}} === 0) loadCategory();
@append
diff --git a/resources/views/processes/screens/index.blade.php b/resources/views/processes/screens/index.blade.php
index d16ca704b7..adf1ed082f 100644
--- a/resources/views/processes/screens/index.blade.php
+++ b/resources/views/processes/screens/index.blade.php
@@ -20,9 +20,13 @@
'tabs' => [
__('Screens'),
__('Categories'),
+ __('My Templates'),
+ __('Public Templates'),
],
'listConfig' => $listConfig,
- 'catConfig' => $catConfig
+ 'catConfig' => $catConfig,
+ 'myScreenTemplates' => $myScreenTemplates,
+ 'publicScreenTemplates' => $publicScreenTemplates,
])
@slot('itemList')
@component('processes.screens.list', ['config' => $listConfig])
@@ -33,6 +37,16 @@
@component('categories.list', ['config' => $catConfig])
@endcomponent
@endslot
+
+ @slot('myTemplatesList')
+ @component('processes.screens.myTemplates', ['config' => $myScreenTemplates])
+ @endcomponent
+ @endslot
+
+ @slot('publicTemplatesList')
+ @component('processes.screens.publicTemplates', ['config' => $publicScreenTemplates])
+ @endcomponent
+ @endslot
@endcomponent
@endsection
diff --git a/resources/views/processes/screens/myTemplates.blade.php b/resources/views/processes/screens/myTemplates.blade.php
new file mode 100644
index 0000000000..debaf4797e
--- /dev/null
+++ b/resources/views/processes/screens/myTemplates.blade.php
@@ -0,0 +1,30 @@
+
+
+@section('js')
+
+
+@append
diff --git a/resources/views/processes/screens/publicTemplates.blade.php b/resources/views/processes/screens/publicTemplates.blade.php
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/webpack.mix.js b/webpack.mix.js
index 604b4b5570..dde3d42f7a 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -106,6 +106,7 @@ mix
.js("resources/js/processes/screens/index.js", "public/js/processes/screens")
.js("resources/js/processes/screens/edit.js", "public/js/processes/screens")
.js("resources/js/processes/screens/preview.js", "public/js/processes/screens")
+ .js("resources/js/processes/screen-templates/index.js", "public/js/processes/screen-templates")
.js("resources/js/processes/signals/index.js", "public/js/processes/signals")
.js("resources/js/processes/signals/edit.js", "public/js/processes/signals")
.js("resources/js/processes/screen-builder/main.js", "public/js/processes/screen-builder")