diff --git a/resources/jscomposition/base/table/BaseTable.vue b/resources/jscomposition/base/table/BaseTable.vue
index 638ba50f69..3fd2797617 100644
--- a/resources/jscomposition/base/table/BaseTable.vue
+++ b/resources/jscomposition/base/table/BaseTable.vue
@@ -9,7 +9,7 @@
:key="index"
:columns="columns"
:column="column">
-
+
diff --git a/resources/jscomposition/base/table/THeader.vue b/resources/jscomposition/base/table/THeader.vue
index e7dee4d39e..cd10c14b54 100644
--- a/resources/jscomposition/base/table/THeader.vue
+++ b/resources/jscomposition/base/table/THeader.vue
@@ -47,7 +47,7 @@ export default defineComponent({
return props.column?.headerFormatter(props.columns);
}
- return props.column.headerName || props.column.field || "";
+ return props.column.header || props.column.field || "";
};
return {
getValue,
diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js
new file mode 100644
index 0000000000..1a7a835625
--- /dev/null
+++ b/resources/jscomposition/cases/casesDetail/api/index.js
@@ -0,0 +1,24 @@
+export default {};
+
+const getData = async () => {
+ const objectsList = [];
+
+ for (let i = 0; i <= 31; i += 1) {
+ const obj = {
+ id: `${i}`,
+ case_title: `Case Title ${i}`,
+ process_name: `Process ${i}`,
+ assigned: `Avatar ${i}`,
+ current_task: `Task ${i}`,
+ status: `badge ${i}`,
+ started: `21/21/${i}`,
+ due_date: `21/21/${i}`,
+ };
+
+ objectsList.push(obj);
+ }
+
+ return objectsList;
+};
+
+export { getData };
diff --git a/resources/js/cases/components/CaseDetail.vue b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue
similarity index 86%
rename from resources/js/cases/components/CaseDetail.vue
rename to resources/jscomposition/cases/casesDetail/components/CaseDetail.vue
index 6135a8aeb5..b348088f5c 100644
--- a/resources/js/cases/components/CaseDetail.vue
+++ b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue
@@ -10,6 +10,8 @@
diff --git a/resources/js/cases/components/Tabs.vue b/resources/jscomposition/cases/casesDetail/components/Tabs.vue
similarity index 91%
rename from resources/js/cases/components/Tabs.vue
rename to resources/jscomposition/cases/casesDetail/components/Tabs.vue
index d7f752eca7..0f0f056932 100644
--- a/resources/js/cases/components/Tabs.vue
+++ b/resources/jscomposition/cases/casesDetail/components/Tabs.vue
@@ -12,7 +12,7 @@
:href="tab.href"
class="tw-whitespace-nowrap tw-border-b-2 tw-px-1 tw-py-4 tw-text-sm tw-font-medium"
:class="[tabSelected === tab.current ? 'tw-border-blue-500 tw-text-blue-500'
- : 'tw-border-transparent tw-text-gray-500 hover:tw-border-gray-600 hover:tw-text-gray-600'
+ : 'tw-border-transparent tw-text-gray-500 hover:tw-border-gray-600 hover:tw-text-gray-600'
]"
:aria-current="tab.current ? 'page' : undefined"
@click="selectTab(tab)"
@@ -21,7 +21,7 @@
-
diff --git a/resources/jscomposition/cases/casesDetail/components/TaskTable.vue b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue
new file mode 100644
index 0000000000..ec56dc0555
--- /dev/null
+++ b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
diff --git a/resources/jscomposition/cases/casesDetail/config/columns.js b/resources/jscomposition/cases/casesDetail/config/columns.js
new file mode 100644
index 0000000000..21f34b20e1
--- /dev/null
+++ b/resources/jscomposition/cases/casesDetail/config/columns.js
@@ -0,0 +1,99 @@
+import BadgeContainer from "../../casesMain/components/BadgeContainer.vue";
+import AvatarContainer from "../../casesMain/components/AvatarContainer.vue";
+
+export default {};
+
+// Column for Task
+const taskNumberColumn = () => ({
+ field: "id",
+ header: "Tasks #",
+ resizable: true,
+ width: 200,
+});
+
+const taskNameColumn = () => ({
+ field: "case_title",
+ header: "Task Name",
+ resizable: true,
+ width: 200,
+});
+
+const processNameColumn = () => ({
+ field: "process_name",
+ header: "Process",
+ resizable: true,
+ width: 200,
+});
+
+const assignedColumn = () => ({
+ field: "assigned",
+ header: "Assigned",
+ resizable: true,
+ width: 200,
+ cellRenderer: () => AvatarContainer,
+});
+
+const dueDateColumn = () => ({
+ field: "due_date",
+ header: "Due Date",
+ resizable: true,
+ width: 200,
+});
+
+// Columns for Requests
+const requestNumberColumn = () => ({
+ field: "id",
+ header: "Request #",
+ resizable: true,
+ width: 200,
+});
+
+const requestNameColumn = () => ({
+ field: "case_title",
+ header: "Request Name",
+ resizable: true,
+ width: 200,
+});
+
+const currentTaskColumn = () => ({
+ field: "current_task",
+ header: "Current Task",
+ resizable: true,
+ width: 200,
+});
+
+const statusColumn = () => ({
+ field: "status",
+ header: "Status",
+ resizable: true,
+ width: 200,
+ cellRenderer: () => BadgeContainer,
+});
+
+const startedColumn = () => ({
+ field: "started_date",
+ header: "started",
+ resizable: true,
+ width: 200,
+});
+
+export const getColumns = (type) => {
+ const columns = {
+ tasks: [
+ taskNumberColumn(),
+ taskNameColumn(),
+ processNameColumn(),
+ assignedColumn(),
+ dueDateColumn(),
+ ],
+ requests: [
+ requestNumberColumn(),
+ requestNameColumn(),
+ currentTaskColumn(),
+ statusColumn(),
+ startedColumn(),
+ ],
+ };
+
+ return columns[type];
+};
diff --git a/resources/js/cases/edit.js b/resources/jscomposition/cases/casesDetail/edit.js
similarity index 100%
rename from resources/js/cases/edit.js
rename to resources/jscomposition/cases/casesDetail/edit.js
diff --git a/resources/views/cases/edit.blade.php b/resources/views/cases/edit.blade.php
index a89c2e3b46..b95a5fba74 100644
--- a/resources/views/cases/edit.blade.php
+++ b/resources/views/cases/edit.blade.php
@@ -21,5 +21,5 @@
@endsection
@section('js')
-
+
@endsection
diff --git a/routes/web.php b/routes/web.php
index 79f9f40450..3ef78d39a3 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -137,6 +137,7 @@
Route::post('/keep-alive', [LoginController::class, 'keepAlive'])->name('keep-alive');
// Cases
Route::get('cases', [RequestController::class, 'index'])->name('cases.index')->middleware('no-cache');
+ Route::get('cases/{request}', [RequestController::class, 'edit'])->name('cases.edit');
// This is a temporary API the engine team will create the API
Route::get('cases-main', [CasesController::class, 'index'])->name('cases-main.index')->middleware('no-cache');
Route::get('cases/{type?}', [RequestController::class, 'index'])->name('cases_by_type')
diff --git a/webpack.mix.js b/webpack.mix.js
index e26379255a..ece7502148 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -122,6 +122,7 @@ mix
.js("resources/js/requests/show.js", "public/js/requests")
.js("resources/js/requests/preview.js", "public/js/requests")
.js("resources/jscomposition/cases/casesMain/main.js", "public/js/composition/cases/casesMain/main.js")
+ .js("resources/jscomposition/cases/casesDetail/edit.js", "public/js/composition/cases/casesDetail/edit.js")
.js("resources/js/processes/translations/import.js", "public/js/processes/translations")
.js("resources/js/processes-catalogue/index.js", "public/js/processes-catalogue/index.js")