From bc94f649de44483e2e42fc224bfbf7cc13dae3b6 Mon Sep 17 00:00:00 2001 From: Henry Jonas Date: Thu, 12 Sep 2024 10:24:18 -0400 Subject: [PATCH 1/4] FOUR-19004: Create a NEW VIEW for cases Part Counters --- .../Http/Controllers/CasesController.php | 44 ++++ .../base/buttons/OutlineButton.vue | 32 +++ resources/jscomposition/base/buttons/index.js | 7 + .../base/cards/ThreeSectionCard.vue | 68 +++++++ resources/jscomposition/base/cards/index.js | 7 + .../jscomposition/base/form/Dropdown.vue | 191 ++++++++++++++++++ .../jscomposition/base/form/InputLeading.vue | 34 ++++ resources/jscomposition/base/form/index.js | 9 + resources/jscomposition/base/index.js | 7 + .../jscomposition/base/table/BaseTable.vue | 72 +++++++ .../jscomposition/base/table/Pagination.vue | 128 ++++++++++++ resources/jscomposition/base/table/TCell.vue | 43 ++++ .../jscomposition/base/table/TFooter.vue | 16 ++ .../jscomposition/base/table/THeader.vue | 55 +++++ resources/jscomposition/base/table/TRow.vue | 14 ++ .../table/composables/columnComposable.js | 55 +++++ resources/jscomposition/base/table/index.js | 15 ++ resources/jscomposition/base/ui/Badge.vue | 22 ++ resources/jscomposition/base/ui/index.js | 7 + .../jscomposition/cases/casesMain/App.vue | 18 ++ .../cases/casesMain/CasesDataSection.vue | 54 +++++ .../cases/casesMain/CasesMain.vue | 49 +++++ .../cases/casesMain/api/index.js | 35 ++++ .../casesMain/components/AppCounters.vue | 67 ++++++ .../casesMain/components/AvatarContainer.vue | 17 ++ .../casesMain/components/BadgeContainer.vue | 23 +++ .../casesMain/components/BadgesSection.vue | 35 ++++ .../cases/casesMain/components/CaseFilter.vue | 22 ++ .../cases/casesMain/config/badges.js | 16 ++ .../cases/casesMain/config/columns.js | 132 ++++++++++++ .../cases/casesMain/config/index.js | 2 + .../jscomposition/cases/casesMain/main.js | 20 ++ .../jscomposition/cases/casesMain/routes.js | 28 +++ .../cases/casesMain/utils/counters.js | 45 +++++ .../cases/casesMain/utils/index.js | 1 + resources/jscomposition/system/Breadcrums.vue | 38 ++++ resources/jscomposition/system/index.js | 7 + resources/views/cases/casesMain.blade.php | 24 +++ routes/web.php | 6 + webpack.mix.js | 4 + 40 files changed, 1469 insertions(+) create mode 100644 ProcessMaker/Http/Controllers/CasesController.php create mode 100644 resources/jscomposition/base/buttons/OutlineButton.vue create mode 100644 resources/jscomposition/base/buttons/index.js create mode 100644 resources/jscomposition/base/cards/ThreeSectionCard.vue create mode 100644 resources/jscomposition/base/cards/index.js create mode 100644 resources/jscomposition/base/form/Dropdown.vue create mode 100644 resources/jscomposition/base/form/InputLeading.vue create mode 100644 resources/jscomposition/base/form/index.js create mode 100644 resources/jscomposition/base/index.js create mode 100644 resources/jscomposition/base/table/BaseTable.vue create mode 100644 resources/jscomposition/base/table/Pagination.vue create mode 100644 resources/jscomposition/base/table/TCell.vue create mode 100644 resources/jscomposition/base/table/TFooter.vue create mode 100644 resources/jscomposition/base/table/THeader.vue create mode 100644 resources/jscomposition/base/table/TRow.vue create mode 100644 resources/jscomposition/base/table/composables/columnComposable.js create mode 100644 resources/jscomposition/base/table/index.js create mode 100644 resources/jscomposition/base/ui/Badge.vue create mode 100644 resources/jscomposition/base/ui/index.js create mode 100644 resources/jscomposition/cases/casesMain/App.vue create mode 100644 resources/jscomposition/cases/casesMain/CasesDataSection.vue create mode 100644 resources/jscomposition/cases/casesMain/CasesMain.vue create mode 100644 resources/jscomposition/cases/casesMain/api/index.js create mode 100644 resources/jscomposition/cases/casesMain/components/AppCounters.vue create mode 100644 resources/jscomposition/cases/casesMain/components/AvatarContainer.vue create mode 100644 resources/jscomposition/cases/casesMain/components/BadgeContainer.vue create mode 100644 resources/jscomposition/cases/casesMain/components/BadgesSection.vue create mode 100644 resources/jscomposition/cases/casesMain/components/CaseFilter.vue create mode 100644 resources/jscomposition/cases/casesMain/config/badges.js create mode 100644 resources/jscomposition/cases/casesMain/config/columns.js create mode 100644 resources/jscomposition/cases/casesMain/config/index.js create mode 100644 resources/jscomposition/cases/casesMain/main.js create mode 100644 resources/jscomposition/cases/casesMain/routes.js create mode 100644 resources/jscomposition/cases/casesMain/utils/counters.js create mode 100644 resources/jscomposition/cases/casesMain/utils/index.js create mode 100644 resources/jscomposition/system/Breadcrums.vue create mode 100644 resources/jscomposition/system/index.js create mode 100644 resources/views/cases/casesMain.blade.php diff --git a/ProcessMaker/Http/Controllers/CasesController.php b/ProcessMaker/Http/Controllers/CasesController.php new file mode 100644 index 0000000000..d628cad18e --- /dev/null +++ b/ProcessMaker/Http/Controllers/CasesController.php @@ -0,0 +1,44 @@ + + + + + diff --git a/resources/jscomposition/base/buttons/index.js b/resources/jscomposition/base/buttons/index.js new file mode 100644 index 0000000000..4e49f4b276 --- /dev/null +++ b/resources/jscomposition/base/buttons/index.js @@ -0,0 +1,7 @@ +import OutlineButton from "./OutlineButton.vue"; + +export default {} + +export { + OutlineButton +} \ No newline at end of file diff --git a/resources/jscomposition/base/cards/ThreeSectionCard.vue b/resources/jscomposition/base/cards/ThreeSectionCard.vue new file mode 100644 index 0000000000..9ff7ef6221 --- /dev/null +++ b/resources/jscomposition/base/cards/ThreeSectionCard.vue @@ -0,0 +1,68 @@ + + + diff --git a/resources/jscomposition/base/cards/index.js b/resources/jscomposition/base/cards/index.js new file mode 100644 index 0000000000..ca12216c61 --- /dev/null +++ b/resources/jscomposition/base/cards/index.js @@ -0,0 +1,7 @@ +import ThreeSectionCard from "./ThreeSectionCard.vue" + +export default {} + +export { + ThreeSectionCard +} \ No newline at end of file diff --git a/resources/jscomposition/base/form/Dropdown.vue b/resources/jscomposition/base/form/Dropdown.vue new file mode 100644 index 0000000000..0d2cd15bfb --- /dev/null +++ b/resources/jscomposition/base/form/Dropdown.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/resources/jscomposition/base/form/InputLeading.vue b/resources/jscomposition/base/form/InputLeading.vue new file mode 100644 index 0000000000..0fc68eb6a5 --- /dev/null +++ b/resources/jscomposition/base/form/InputLeading.vue @@ -0,0 +1,34 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/base/form/index.js b/resources/jscomposition/base/form/index.js new file mode 100644 index 0000000000..8eec1e2f5b --- /dev/null +++ b/resources/jscomposition/base/form/index.js @@ -0,0 +1,9 @@ +import Dropdown from "./Dropdown.vue"; +import InputLeading from "./InputLeading.vue"; + +export default {} + +export { + Dropdown, + InputLeading +} \ No newline at end of file diff --git a/resources/jscomposition/base/index.js b/resources/jscomposition/base/index.js new file mode 100644 index 0000000000..ddbe2a67b6 --- /dev/null +++ b/resources/jscomposition/base/index.js @@ -0,0 +1,7 @@ +export * from "./buttons/index" +export * from "./cards/index" +export * from "./form/index" +export * from "./table/index" +export * from "./ui/index" + +export default {} diff --git a/resources/jscomposition/base/table/BaseTable.vue b/resources/jscomposition/base/table/BaseTable.vue new file mode 100644 index 0000000000..fe2a6bfb7f --- /dev/null +++ b/resources/jscomposition/base/table/BaseTable.vue @@ -0,0 +1,72 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/Pagination.vue b/resources/jscomposition/base/table/Pagination.vue new file mode 100644 index 0000000000..9e2d350dba --- /dev/null +++ b/resources/jscomposition/base/table/Pagination.vue @@ -0,0 +1,128 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/TCell.vue b/resources/jscomposition/base/table/TCell.vue new file mode 100644 index 0000000000..ebbcca8edf --- /dev/null +++ b/resources/jscomposition/base/table/TCell.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/TFooter.vue b/resources/jscomposition/base/table/TFooter.vue new file mode 100644 index 0000000000..6c5177e3ea --- /dev/null +++ b/resources/jscomposition/base/table/TFooter.vue @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/THeader.vue b/resources/jscomposition/base/table/THeader.vue new file mode 100644 index 0000000000..e1faf00fb3 --- /dev/null +++ b/resources/jscomposition/base/table/THeader.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/TRow.vue b/resources/jscomposition/base/table/TRow.vue new file mode 100644 index 0000000000..1d700ef645 --- /dev/null +++ b/resources/jscomposition/base/table/TRow.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/table/composables/columnComposable.js b/resources/jscomposition/base/table/composables/columnComposable.js new file mode 100644 index 0000000000..cae2353f02 --- /dev/null +++ b/resources/jscomposition/base/table/composables/columnComposable.js @@ -0,0 +1,55 @@ +import { + ref, onUnmounted +} from "vue"; + +export default {}; +/** + * This composable only works with columns in AppTable + * @param {*} column is a ref variable, come from App Table + * @param {*} tableName + * @returns + */ +export const columnResizeComposable = (column) => { + const startX = ref(0); + const startWidth = ref(0); + const isResizing = ref(false); + + //Resize the column value + const doResize = (event) => { + + if (isResizing.value) { + const diff = event.pageX - startX.value; + const min = 63; + const currentWidth = Math.max(min, startWidth.value + diff); + + column.width = currentWidth; + } + }; + + const stopResize = () => { + if (isResizing.value) { + document.removeEventListener("mousemove", doResize); + document.removeEventListener("mouseup", stopResize); + isResizing.value = false; + } + }; + + // Init the events in mousemove and finish in mouseup event + const startResize = (event, index) => { + isResizing.value = true; + startX.value = event.pageX; + startWidth.value =column.width || 200; + + document.addEventListener("mousemove", doResize); + document.addEventListener("mouseup", stopResize); + }; + + onUnmounted(() => { + document.removeEventListener("mousemove", doResize); + document.removeEventListener("mouseup", stopResize); + }); + + return { + startResize, + }; +}; diff --git a/resources/jscomposition/base/table/index.js b/resources/jscomposition/base/table/index.js new file mode 100644 index 0000000000..927748b7d0 --- /dev/null +++ b/resources/jscomposition/base/table/index.js @@ -0,0 +1,15 @@ +import BaseTable from "./BaseTable.vue"; +import Pagination from "./Pagination.vue"; +import TCell from "./TCell.vue"; +import THeader from "./THeader.vue"; +import TRow from "./TRow.vue"; + +export default {} + +export { + BaseTable, + Pagination, + TCell, + THeader, + TRow +} \ No newline at end of file diff --git a/resources/jscomposition/base/ui/Badge.vue b/resources/jscomposition/base/ui/Badge.vue new file mode 100644 index 0000000000..488d6be08a --- /dev/null +++ b/resources/jscomposition/base/ui/Badge.vue @@ -0,0 +1,22 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/base/ui/index.js b/resources/jscomposition/base/ui/index.js new file mode 100644 index 0000000000..d62371ab35 --- /dev/null +++ b/resources/jscomposition/base/ui/index.js @@ -0,0 +1,7 @@ +import Badge from "./Badge.vue" + +export default {} + +export { + Badge +} \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/App.vue b/resources/jscomposition/cases/casesMain/App.vue new file mode 100644 index 0000000000..e5b412c4ed --- /dev/null +++ b/resources/jscomposition/cases/casesMain/App.vue @@ -0,0 +1,18 @@ + + diff --git a/resources/jscomposition/cases/casesMain/CasesDataSection.vue b/resources/jscomposition/cases/casesMain/CasesDataSection.vue new file mode 100644 index 0000000000..ab6bc00201 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/CasesDataSection.vue @@ -0,0 +1,54 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/CasesMain.vue b/resources/jscomposition/cases/casesMain/CasesMain.vue new file mode 100644 index 0000000000..dd294634be --- /dev/null +++ b/resources/jscomposition/cases/casesMain/CasesMain.vue @@ -0,0 +1,49 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/api/index.js b/resources/jscomposition/cases/casesMain/api/index.js new file mode 100644 index 0000000000..ca51c56e1b --- /dev/null +++ b/resources/jscomposition/cases/casesMain/api/index.js @@ -0,0 +1,35 @@ +export default {} + +// Method to get counters - change with processmaker API +export const getCounters = async () => { + const url = "http://localhost:3000/appcounters"; + return { + myCases: 36, + inProgress: 20, + completed: 125, + allCases: 145, + allRequests: 777 + } +}; + +// Method to get data case list - change with processmaker API +export const getData = async () => { + let objects_list = [] + + for (let i = 0; i <= 31; i++) { + const obj = { + "caseNumber": `${i}`, + "caseTitle": `Case Title ${i}`, + "process": `Process ${i}`, + "task": `Task ${i}`, + "participants": `Avatar ${i}`, + "status": `badge ${i}`, + "started": `21/21/${i}`, + "completed": `22/22/${i}` + }; + + objects_list.push(obj); + } + + return objects_list; +}; \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/components/AppCounters.vue b/resources/jscomposition/cases/casesMain/components/AppCounters.vue new file mode 100644 index 0000000000..6c4bb421de --- /dev/null +++ b/resources/jscomposition/cases/casesMain/components/AppCounters.vue @@ -0,0 +1,67 @@ + + + diff --git a/resources/jscomposition/cases/casesMain/components/AvatarContainer.vue b/resources/jscomposition/cases/casesMain/components/AvatarContainer.vue new file mode 100644 index 0000000000..7bac3776a2 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/components/AvatarContainer.vue @@ -0,0 +1,17 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue b/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue new file mode 100644 index 0000000000..e2c2a493cb --- /dev/null +++ b/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/components/BadgesSection.vue b/resources/jscomposition/cases/casesMain/components/BadgesSection.vue new file mode 100644 index 0000000000..1e50276c65 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/components/BadgesSection.vue @@ -0,0 +1,35 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/components/CaseFilter.vue b/resources/jscomposition/cases/casesMain/components/CaseFilter.vue new file mode 100644 index 0000000000..38c94e66e9 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/components/CaseFilter.vue @@ -0,0 +1,22 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/config/badges.js b/resources/jscomposition/cases/casesMain/config/badges.js new file mode 100644 index 0000000000..b36f828a65 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/config/badges.js @@ -0,0 +1,16 @@ +export default {}; + +export const badges = [ + { + label: "Status : In progress" + }, + { + label: "Status : To do" + }, + { + label: "Status : New Badge" + }, + { + label: "Status : Badge Example" + } +]; diff --git a/resources/jscomposition/cases/casesMain/config/columns.js b/resources/jscomposition/cases/casesMain/config/columns.js new file mode 100644 index 0000000000..4f6722f327 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/config/columns.js @@ -0,0 +1,132 @@ +import BadgeContainer from "../components/BadgeContainer.vue"; +import AvatarContainer from "../components/AvatarContainer.vue"; + +export default {} +/** + * Example Column + * field: String + * headerName: String + * headerFormatter: callback + * resizable: Boolean + * visible: Callback + * formatter: Callback - Build the value in the cell + * width: Number + * cellRenderer: Object Vue to custom the cell + */ + +// My cases: [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] +// In Progress : [ Case#, Case Title, Process, Task, Participants, Status, Started] +// Completed : [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] +// AllCases : [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] +// AllRequest : [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] + + +export const caseNumberColumn = ()=>({ + field: "caseNumber", + headerName: "Case #", + resizable: true, + width: 200, +}) + +export const caseTitleColumn = ()=>({ + field: "caseTitle", + headerName: "Case Title", + resizable: true, + width: 200, +}) + +export const processColumn = ()=>({ + field: "process", + headerName: "Process", + resizable: true, + width: 200 +}) + +export const taskColumn = ()=>({ + field: "task", + headerName: "Task", + resizable: true, + width: 200 +}) + + +export const participantsColumn = ()=>({ + field: "participants", + headerName: "Participants", + resizable: true, + width: 200, + cellRenderer: () => { + return AvatarContainer; + } +}) + +export const statusColumn = ()=>({ + field: "status", + headerName: "Status", + resizable: true, + width: 200, + cellRenderer: () => { + return BadgeContainer; + } +}) + +export const startedColumn = ()=>({ + field: "started", + headerName: "Started", + resizable: true, + width: 200 +}) + +export const completedColumn = ()=>({ + field: "completed", + headerName: "Completed", + resizable: true, + width: 200 +}) + +export const getColumns = (type) => { + const columnsDefinition = { + 'my-cases': [ + caseNumberColumn(), + caseTitleColumn(), + processColumn(), + taskColumn(), + participantsColumn(), + statusColumn(), + startedColumn(), + completedColumn() + ], + 'in-progress': [ + caseNumberColumn(), + caseTitleColumn(), + processColumn(), + taskColumn(), + participantsColumn(), + statusColumn(), + startedColumn() + ], + 'completed': [ + caseNumberColumn(), + caseTitleColumn(), + processColumn(), + taskColumn(), + participantsColumn(), + statusColumn(), + startedColumn(), + completedColumn() + ], + 'all-cases': [ + caseNumberColumn(), + caseTitleColumn(), + processColumn(), + taskColumn(), + participantsColumn(), + statusColumn(), + startedColumn(), + completedColumn() + ] + } + + return columnsDefinition[type] || columnsDefinition.myCases; +} + diff --git a/resources/jscomposition/cases/casesMain/config/index.js b/resources/jscomposition/cases/casesMain/config/index.js new file mode 100644 index 0000000000..5bc60f9ebc --- /dev/null +++ b/resources/jscomposition/cases/casesMain/config/index.js @@ -0,0 +1,2 @@ +export * from './columns' +export * from './badges' diff --git a/resources/jscomposition/cases/casesMain/main.js b/resources/jscomposition/cases/casesMain/main.js new file mode 100644 index 0000000000..8b4676c85a --- /dev/null +++ b/resources/jscomposition/cases/casesMain/main.js @@ -0,0 +1,20 @@ + +import App from './App.vue' +import { routes } from './routes'; + +Vue.use(VueRouter); + +const router = new VueRouter({ + mode: "history", + base: "/", + routes +}); + +new Vue({ + el: "#cases-main", + router, + components:{ + App + }, + render: (h) => h(App), +}) diff --git a/resources/jscomposition/cases/casesMain/routes.js b/resources/jscomposition/cases/casesMain/routes.js new file mode 100644 index 0000000000..2a8c3f028b --- /dev/null +++ b/resources/jscomposition/cases/casesMain/routes.js @@ -0,0 +1,28 @@ +import CasesMain from "./CasesMain.vue" +import CasesDataSection from "./CasesDataSection.vue" + +export default {} + +export const routes = [ + { + name: "cases", + path: "/cases-main", + component: CasesMain, + props(route) { + return {}; + }, + children:[ + { + name: "cases-request", + path: ":id?", + component: CasesDataSection, + props(route) { + return { + listId: route.params?.id || 'my-cases', + }; + } + } + ] + + } +] \ No newline at end of file diff --git a/resources/jscomposition/cases/casesMain/utils/counters.js b/resources/jscomposition/cases/casesMain/utils/counters.js new file mode 100644 index 0000000000..63c26b053c --- /dev/null +++ b/resources/jscomposition/cases/casesMain/utils/counters.js @@ -0,0 +1,45 @@ +export default {} + +export const formatCounters = (data)=>{ + const counters = [ + { + header: "My cases", + body:data.myCases.toString(), + color:"amber", + icon:"fa-regular fa-user", + url:'/cases-main/my-cases' + }, + { + header: "In progress", + body:data.inProgress.toString(), + color:"green", + icon:"fa-solid fa-list", + url:'/cases-main/in-progress' + }, + { + header: "Completed", + body:data.completed.toString(), + color:"blue", + icon:"fa-regular fa-circle-check", + url:'/cases-main/completed' + }, + { + header: "All cases", + body:data.allCases.toString(), + color:"purple", + icon:"fa-regular fa-clipboard", + url:'/cases-main/all-cases' + }, + { + header: "All requests", + body:data.allRequests.toString(), + color:"gray", + icon:"fa-solid fa-play", + url:()=>{ + window.location.href = "/cases" + } + } + ] + + return counters +} diff --git a/resources/jscomposition/cases/casesMain/utils/index.js b/resources/jscomposition/cases/casesMain/utils/index.js new file mode 100644 index 0000000000..069f2719f6 --- /dev/null +++ b/resources/jscomposition/cases/casesMain/utils/index.js @@ -0,0 +1 @@ +export * from './counters' \ No newline at end of file diff --git a/resources/jscomposition/system/Breadcrums.vue b/resources/jscomposition/system/Breadcrums.vue new file mode 100644 index 0000000000..0c41c4d43a --- /dev/null +++ b/resources/jscomposition/system/Breadcrums.vue @@ -0,0 +1,38 @@ + + \ No newline at end of file diff --git a/resources/jscomposition/system/index.js b/resources/jscomposition/system/index.js new file mode 100644 index 0000000000..87a413c41b --- /dev/null +++ b/resources/jscomposition/system/index.js @@ -0,0 +1,7 @@ +import Breadcrums from "./Breadcrums.vue"; + +export default {} + +export { + Breadcrums +} \ No newline at end of file diff --git a/resources/views/cases/casesMain.blade.php b/resources/views/cases/casesMain.blade.php new file mode 100644 index 0000000000..9cc846d4de --- /dev/null +++ b/resources/views/cases/casesMain.blade.php @@ -0,0 +1,24 @@ +@extends('layouts.layout') + + + +@section('title') +@endsection + +@section('sidebar') +@include('layouts.sidebar', ['sidebar'=> Menu::get('sidebar_request')]) +@endsection + +@section('breadcrumbs') +@endsection + +@section('content') +
+@endsection + +@section('js') + +@endsection + +@section('css') +@endsection diff --git a/routes/web.php b/routes/web.php index c3848838a7..2fa719a5f2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -32,6 +32,7 @@ use ProcessMaker\Http\Controllers\ProcessesCatalogueController; use ProcessMaker\Http\Controllers\ProfileController; use ProcessMaker\Http\Controllers\RequestController; +use ProcessMaker\Http\Controllers\CasesController; use ProcessMaker\Http\Controllers\Saml\MetadataController; use ProcessMaker\Http\Controllers\TaskController; use ProcessMaker\Http\Controllers\TemplateController; @@ -136,6 +137,11 @@ 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-main', [CasesController::class, 'index'])->name('cases-main.index')->middleware('no-cache'); + + + + Route::get('cases/{type?}', [RequestController::class, 'index'])->name('cases_by_type') ->where('type', 'all|in_progress|completed') ->middleware('no-cache'); diff --git a/webpack.mix.js b/webpack.mix.js index 34d8ca2839..d525298ac9 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -121,6 +121,10 @@ mix .js("resources/js/requests/mobile.js", "public/js/requests/mobile.js") .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/js/processes/translations/import.js", "public/js/processes/translations") From 2f43d89016764038bdbec6f0ed754b8dab3ac344 Mon Sep 17 00:00:00 2001 From: Henry Jonas Date: Thu, 12 Sep 2024 13:02:34 -0400 Subject: [PATCH 2/4] FOUR-19004: Create a NEW VIEW for cases Part Counters --- .../Http/Controllers/CasesController.php | 4 +- resources/jscomposition/base/buttons/index.js | 2 - resources/jscomposition/base/cards/index.js | 2 - .../jscomposition/base/form/Dropdown.vue | 2 +- .../jscomposition/base/form/InputLeading.vue | 9 +- .../jscomposition/base/table/BaseTable.vue | 113 +++++------ .../jscomposition/base/table/Pagination.vue | 181 +++++++----------- resources/jscomposition/base/table/TCell.vue | 71 +++---- .../jscomposition/base/table/THeader.vue | 92 ++++----- resources/jscomposition/base/table/TRow.vue | 13 +- .../table/composables/columnComposable.js | 11 +- resources/jscomposition/base/table/index.js | 10 +- resources/jscomposition/base/ui/Badge.vue | 30 +-- resources/jscomposition/base/ui/index.js | 8 +- .../jscomposition/cases/casesMain/App.vue | 8 +- .../cases/casesMain/CasesDataSection.vue | 82 ++++---- .../cases/casesMain/CasesMain.vue | 84 ++++---- .../cases/casesMain/api/index.js | 36 ++-- .../casesMain/components/AppCounters.vue | 28 ++- .../casesMain/components/AvatarContainer.vue | 35 ++-- .../casesMain/components/BadgeContainer.vue | 31 ++- .../casesMain/components/BadgesSection.vue | 55 +++--- .../cases/casesMain/components/CaseFilter.vue | 32 ++-- .../cases/casesMain/config/badges.js | 24 +-- .../cases/casesMain/config/columns.js | 71 ++++--- .../cases/casesMain/config/index.js | 4 +- .../jscomposition/cases/casesMain/main.js | 21 +- .../jscomposition/cases/casesMain/routes.js | 45 +++-- .../cases/casesMain/utils/counters.js | 89 ++++----- .../cases/casesMain/utils/index.js | 2 +- resources/jscomposition/system/Breadcrums.vue | 28 ++- resources/jscomposition/system/index.js | 6 +- routes/web.php | 4 - webpack.mix.js | 4 - 34 files changed, 593 insertions(+), 644 deletions(-) diff --git a/ProcessMaker/Http/Controllers/CasesController.php b/ProcessMaker/Http/Controllers/CasesController.php index d628cad18e..8a5c5f7196 100644 --- a/ProcessMaker/Http/Controllers/CasesController.php +++ b/ProcessMaker/Http/Controllers/CasesController.php @@ -31,14 +31,14 @@ class CasesController extends Controller { - /** + /** * Get the list of requests. * * @return \Illuminate\View\View|\Illuminate\Contracts\View */ public function index($type = null) { - + // This is a temporary API the engine team will provide the new return view('cases.casesMain'); } } diff --git a/resources/jscomposition/base/buttons/index.js b/resources/jscomposition/base/buttons/index.js index 4e49f4b276..5a6c8fc3a0 100644 --- a/resources/jscomposition/base/buttons/index.js +++ b/resources/jscomposition/base/buttons/index.js @@ -1,7 +1,5 @@ import OutlineButton from "./OutlineButton.vue"; -export default {} - export { OutlineButton } \ No newline at end of file diff --git a/resources/jscomposition/base/cards/index.js b/resources/jscomposition/base/cards/index.js index ca12216c61..c8901f3cd2 100644 --- a/resources/jscomposition/base/cards/index.js +++ b/resources/jscomposition/base/cards/index.js @@ -1,7 +1,5 @@ import ThreeSectionCard from "./ThreeSectionCard.vue" -export default {} - export { ThreeSectionCard } \ No newline at end of file diff --git a/resources/jscomposition/base/form/Dropdown.vue b/resources/jscomposition/base/form/Dropdown.vue index 0d2cd15bfb..cbf7e11ebb 100644 --- a/resources/jscomposition/base/form/Dropdown.vue +++ b/resources/jscomposition/base/form/Dropdown.vue @@ -10,7 +10,7 @@ diff --git a/resources/jscomposition/base/form/InputLeading.vue b/resources/jscomposition/base/form/InputLeading.vue index 0fc68eb6a5..a2fb84868f 100644 --- a/resources/jscomposition/base/form/InputLeading.vue +++ b/resources/jscomposition/base/form/InputLeading.vue @@ -5,12 +5,11 @@ - + focus-visible:tw-outline-none + sm:tw-text-sm sm:tw-leading-6" :placeholder="placeholder"> \ No newline at end of file + diff --git a/resources/jscomposition/base/table/Pagination.vue b/resources/jscomposition/base/table/Pagination.vue index 9e2d350dba..e337041d4f 100644 --- a/resources/jscomposition/base/table/Pagination.vue +++ b/resources/jscomposition/base/table/Pagination.vue @@ -1,128 +1,81 @@ - \ No newline at end of file + diff --git a/resources/jscomposition/base/table/TCell.vue b/resources/jscomposition/base/table/TCell.vue index ebbcca8edf..e990f8d452 100644 --- a/resources/jscomposition/base/table/TCell.vue +++ b/resources/jscomposition/base/table/TCell.vue @@ -1,43 +1,46 @@ \ No newline at end of file + diff --git a/resources/jscomposition/base/table/THeader.vue b/resources/jscomposition/base/table/THeader.vue index e1faf00fb3..e7dee4d39e 100644 --- a/resources/jscomposition/base/table/THeader.vue +++ b/resources/jscomposition/base/table/THeader.vue @@ -1,55 +1,59 @@ \ No newline at end of file + diff --git a/resources/jscomposition/base/table/TRow.vue b/resources/jscomposition/base/table/TRow.vue index 1d700ef645..ad929a275a 100644 --- a/resources/jscomposition/base/table/TRow.vue +++ b/resources/jscomposition/base/table/TRow.vue @@ -1,14 +1,15 @@ \ No newline at end of file + diff --git a/resources/jscomposition/base/table/composables/columnComposable.js b/resources/jscomposition/base/table/composables/columnComposable.js index cae2353f02..2ce357f833 100644 --- a/resources/jscomposition/base/table/composables/columnComposable.js +++ b/resources/jscomposition/base/table/composables/columnComposable.js @@ -1,6 +1,4 @@ -import { - ref, onUnmounted -} from "vue"; +import { ref, onUnmounted } from "vue"; export default {}; /** @@ -16,12 +14,11 @@ export const columnResizeComposable = (column) => { //Resize the column value const doResize = (event) => { - if (isResizing.value) { const diff = event.pageX - startX.value; const min = 63; const currentWidth = Math.max(min, startWidth.value + diff); - + column.width = currentWidth; } }; @@ -38,8 +35,8 @@ export const columnResizeComposable = (column) => { const startResize = (event, index) => { isResizing.value = true; startX.value = event.pageX; - startWidth.value =column.width || 200; - + startWidth.value = column.width || 200; + document.addEventListener("mousemove", doResize); document.addEventListener("mouseup", stopResize); }; diff --git a/resources/jscomposition/base/table/index.js b/resources/jscomposition/base/table/index.js index 927748b7d0..6183b1cc26 100644 --- a/resources/jscomposition/base/table/index.js +++ b/resources/jscomposition/base/table/index.js @@ -4,12 +4,4 @@ import TCell from "./TCell.vue"; import THeader from "./THeader.vue"; import TRow from "./TRow.vue"; -export default {} - -export { - BaseTable, - Pagination, - TCell, - THeader, - TRow -} \ No newline at end of file +export { BaseTable, Pagination, TCell, THeader, TRow }; diff --git a/resources/jscomposition/base/ui/Badge.vue b/resources/jscomposition/base/ui/Badge.vue index 488d6be08a..f1f6c173b4 100644 --- a/resources/jscomposition/base/ui/Badge.vue +++ b/resources/jscomposition/base/ui/Badge.vue @@ -1,22 +1,24 @@ \ No newline at end of file + }, + setup() { + return {}; + }, +}); + diff --git a/resources/jscomposition/base/ui/index.js b/resources/jscomposition/base/ui/index.js index d62371ab35..0e62cb7097 100644 --- a/resources/jscomposition/base/ui/index.js +++ b/resources/jscomposition/base/ui/index.js @@ -1,7 +1,5 @@ -import Badge from "./Badge.vue" +import Badge from "./Badge.vue"; -export default {} +export default {}; -export { - Badge -} \ No newline at end of file +export { Badge }; diff --git a/resources/jscomposition/cases/casesMain/App.vue b/resources/jscomposition/cases/casesMain/App.vue index e5b412c4ed..fc6d013cb4 100644 --- a/resources/jscomposition/cases/casesMain/App.vue +++ b/resources/jscomposition/cases/casesMain/App.vue @@ -4,15 +4,15 @@ diff --git a/resources/jscomposition/cases/casesMain/CasesDataSection.vue b/resources/jscomposition/cases/casesMain/CasesDataSection.vue index ab6bc00201..ff7a733cc7 100644 --- a/resources/jscomposition/cases/casesMain/CasesDataSection.vue +++ b/resources/jscomposition/cases/casesMain/CasesDataSection.vue @@ -1,54 +1,54 @@ \ No newline at end of file + diff --git a/resources/jscomposition/cases/casesMain/CasesMain.vue b/resources/jscomposition/cases/casesMain/CasesMain.vue index dd294634be..71e136cc11 100644 --- a/resources/jscomposition/cases/casesMain/CasesMain.vue +++ b/resources/jscomposition/cases/casesMain/CasesMain.vue @@ -1,49 +1,51 @@ \ No newline at end of file + diff --git a/resources/jscomposition/cases/casesMain/api/index.js b/resources/jscomposition/cases/casesMain/api/index.js index ca51c56e1b..b7cbc82bc6 100644 --- a/resources/jscomposition/cases/casesMain/api/index.js +++ b/resources/jscomposition/cases/casesMain/api/index.js @@ -1,35 +1,35 @@ -export default {} +export default {}; // Method to get counters - change with processmaker API export const getCounters = async () => { const url = "http://localhost:3000/appcounters"; - return { - myCases: 36, - inProgress: 20, - completed: 125, - allCases: 145, - allRequests: 777 - } + return { + myCases: 36, + inProgress: 20, + completed: 125, + allCases: 145, + allRequests: 777, + }; }; // Method to get data case list - change with processmaker API export const getData = async () => { - let objects_list = [] + let objects_list = []; for (let i = 0; i <= 31; i++) { const obj = { - "caseNumber": `${i}`, - "caseTitle": `Case Title ${i}`, - "process": `Process ${i}`, - "task": `Task ${i}`, - "participants": `Avatar ${i}`, - "status": `badge ${i}`, - "started": `21/21/${i}`, - "completed": `22/22/${i}` + caseNumber: `${i}`, + caseTitle: `Case Title ${i}`, + process: `Process ${i}`, + task: `Task ${i}`, + participants: `Avatar ${i}`, + status: `badge ${i}`, + started: `21/21/${i}`, + completed: `22/22/${i}`, }; objects_list.push(obj); } return objects_list; -}; \ No newline at end of file +}; diff --git a/resources/jscomposition/cases/casesMain/components/AppCounters.vue b/resources/jscomposition/cases/casesMain/components/AppCounters.vue index 6c4bb421de..203bede000 100644 --- a/resources/jscomposition/cases/casesMain/components/AppCounters.vue +++ b/resources/jscomposition/cases/casesMain/components/AppCounters.vue @@ -1,8 +1,6 @@ \ No newline at end of file + setup() { + return {}; + }, +}); + diff --git a/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue b/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue index e2c2a493cb..af50e69d44 100644 --- a/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue +++ b/resources/jscomposition/cases/casesMain/components/BadgeContainer.vue @@ -1,23 +1,20 @@ \ No newline at end of file + components: { + Badge, + }, + props: {}, + setup() { + return {}; + }, +}); + diff --git a/resources/jscomposition/cases/casesMain/components/BadgesSection.vue b/resources/jscomposition/cases/casesMain/components/BadgesSection.vue index 1e50276c65..86065b6759 100644 --- a/resources/jscomposition/cases/casesMain/components/BadgesSection.vue +++ b/resources/jscomposition/cases/casesMain/components/BadgesSection.vue @@ -1,35 +1,36 @@ \ No newline at end of file + diff --git a/resources/jscomposition/cases/casesMain/components/CaseFilter.vue b/resources/jscomposition/cases/casesMain/components/CaseFilter.vue index 38c94e66e9..3d9e721653 100644 --- a/resources/jscomposition/cases/casesMain/components/CaseFilter.vue +++ b/resources/jscomposition/cases/casesMain/components/CaseFilter.vue @@ -1,22 +1,22 @@ \ No newline at end of file + components: { + OutlineButton, + InputLeading, + }, + setup() { + return {}; + }, +}); + diff --git a/resources/jscomposition/cases/casesMain/config/badges.js b/resources/jscomposition/cases/casesMain/config/badges.js index b36f828a65..d2832c87ba 100644 --- a/resources/jscomposition/cases/casesMain/config/badges.js +++ b/resources/jscomposition/cases/casesMain/config/badges.js @@ -1,16 +1,16 @@ export default {}; export const badges = [ - { - label: "Status : In progress" - }, - { - label: "Status : To do" - }, - { - label: "Status : New Badge" - }, - { - label: "Status : Badge Example" - } + { + label: "Status : In progress", + }, + { + label: "Status : To do", + }, + { + label: "Status : New Badge", + }, + { + label: "Status : Badge Example", + }, ]; diff --git a/resources/jscomposition/cases/casesMain/config/columns.js b/resources/jscomposition/cases/casesMain/config/columns.js index 4f6722f327..531f9b6a60 100644 --- a/resources/jscomposition/cases/casesMain/config/columns.js +++ b/resources/jscomposition/cases/casesMain/config/columns.js @@ -1,7 +1,7 @@ import BadgeContainer from "../components/BadgeContainer.vue"; import AvatarContainer from "../components/AvatarContainer.vue"; -export default {} +export default {}; /** * Example Column * field: String @@ -20,73 +20,71 @@ export default {} // AllCases : [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] // AllRequest : [Case#, Case Title, Process, Task, Participants, Status, Started, Completed] - -export const caseNumberColumn = ()=>({ +export const caseNumberColumn = () => ({ field: "caseNumber", headerName: "Case #", resizable: true, width: 200, -}) +}); -export const caseTitleColumn = ()=>({ +export const caseTitleColumn = () => ({ field: "caseTitle", headerName: "Case Title", resizable: true, width: 200, -}) +}); -export const processColumn = ()=>({ +export const processColumn = () => ({ field: "process", headerName: "Process", resizable: true, - width: 200 -}) + width: 200, +}); -export const taskColumn = ()=>({ +export const taskColumn = () => ({ field: "task", headerName: "Task", resizable: true, - width: 200 -}) - + width: 200, +}); -export const participantsColumn = ()=>({ +export const participantsColumn = () => ({ field: "participants", headerName: "Participants", resizable: true, width: 200, cellRenderer: () => { return AvatarContainer; - } -}) + }, +}); -export const statusColumn = ()=>({ +export const statusColumn = () => ({ field: "status", headerName: "Status", resizable: true, width: 200, cellRenderer: () => { return BadgeContainer; - } -}) + }, +}); -export const startedColumn = ()=>({ +export const startedColumn = () => ({ field: "started", headerName: "Started", resizable: true, - width: 200 -}) + width: 200, +}); -export const completedColumn = ()=>({ +export const completedColumn = () => ({ field: "completed", headerName: "Completed", resizable: true, - width: 200 -}) + width: 200, +}); export const getColumns = (type) => { const columnsDefinition = { - 'my-cases': [ + "my-cases": [ caseNumberColumn(), caseTitleColumn(), processColumn(), @@ -94,18 +92,18 @@ export const getColumns = (type) => { participantsColumn(), statusColumn(), startedColumn(), - completedColumn() + completedColumn(), ], - 'in-progress': [ + "in-progress": [ caseNumberColumn(), caseTitleColumn(), processColumn(), taskColumn(), participantsColumn(), statusColumn(), - startedColumn() + startedColumn(), ], - 'completed': [ + completed: [ caseNumberColumn(), caseTitleColumn(), processColumn(), @@ -113,9 +111,9 @@ export const getColumns = (type) => { participantsColumn(), statusColumn(), startedColumn(), - completedColumn() + completedColumn(), ], - 'all-cases': [ + "all-cases": [ caseNumberColumn(), caseTitleColumn(), processColumn(), @@ -123,10 +121,9 @@ export const getColumns = (type) => { participantsColumn(), statusColumn(), startedColumn(), - completedColumn() - ] - } + completedColumn(), + ], + }; return columnsDefinition[type] || columnsDefinition.myCases; -} - +}; diff --git a/resources/jscomposition/cases/casesMain/config/index.js b/resources/jscomposition/cases/casesMain/config/index.js index 5bc60f9ebc..963420fb99 100644 --- a/resources/jscomposition/cases/casesMain/config/index.js +++ b/resources/jscomposition/cases/casesMain/config/index.js @@ -1,2 +1,2 @@ -export * from './columns' -export * from './badges' +export * from "./columns"; +export * from "./badges"; diff --git a/resources/jscomposition/cases/casesMain/main.js b/resources/jscomposition/cases/casesMain/main.js index 8b4676c85a..97c89abc83 100644 --- a/resources/jscomposition/cases/casesMain/main.js +++ b/resources/jscomposition/cases/casesMain/main.js @@ -1,20 +1,19 @@ - -import App from './App.vue' -import { routes } from './routes'; +import App from "./App.vue"; +import { routes } from "./routes"; Vue.use(VueRouter); const router = new VueRouter({ mode: "history", base: "/", - routes + routes, }); new Vue({ - el: "#cases-main", - router, - components:{ - App - }, - render: (h) => h(App), -}) + el: "#cases-main", + router, + components: { + App, + }, + render: (h) => h(App), +}); diff --git a/resources/jscomposition/cases/casesMain/routes.js b/resources/jscomposition/cases/casesMain/routes.js index 2a8c3f028b..e21e05406e 100644 --- a/resources/jscomposition/cases/casesMain/routes.js +++ b/resources/jscomposition/cases/casesMain/routes.js @@ -1,28 +1,27 @@ -import CasesMain from "./CasesMain.vue" -import CasesDataSection from "./CasesDataSection.vue" +import CasesMain from "./CasesMain.vue"; +import CasesDataSection from "./CasesDataSection.vue"; -export default {} +export default {}; export const routes = [ - { - name: "cases", - path: "/cases-main", - component: CasesMain, + { + name: "cases", + path: "/cases-main", + component: CasesMain, + props(route) { + return {}; + }, + children: [ + { + name: "cases-request", + path: ":id?", + component: CasesDataSection, props(route) { - return {}; + return { + listId: route.params?.id || "my-cases", + }; }, - children:[ - { - name: "cases-request", - path: ":id?", - component: CasesDataSection, - props(route) { - return { - listId: route.params?.id || 'my-cases', - }; - } - } - ] - - } -] \ No newline at end of file + }, + ], + }, +]; diff --git a/resources/jscomposition/cases/casesMain/utils/counters.js b/resources/jscomposition/cases/casesMain/utils/counters.js index 63c26b053c..2ce87946f8 100644 --- a/resources/jscomposition/cases/casesMain/utils/counters.js +++ b/resources/jscomposition/cases/casesMain/utils/counters.js @@ -1,45 +1,46 @@ -export default {} +export default {}; +import { t } from "i18next"; -export const formatCounters = (data)=>{ - const counters = [ - { - header: "My cases", - body:data.myCases.toString(), - color:"amber", - icon:"fa-regular fa-user", - url:'/cases-main/my-cases' - }, - { - header: "In progress", - body:data.inProgress.toString(), - color:"green", - icon:"fa-solid fa-list", - url:'/cases-main/in-progress' - }, - { - header: "Completed", - body:data.completed.toString(), - color:"blue", - icon:"fa-regular fa-circle-check", - url:'/cases-main/completed' - }, - { - header: "All cases", - body:data.allCases.toString(), - color:"purple", - icon:"fa-regular fa-clipboard", - url:'/cases-main/all-cases' - }, - { - header: "All requests", - body:data.allRequests.toString(), - color:"gray", - icon:"fa-solid fa-play", - url:()=>{ - window.location.href = "/cases" - } - } - ] - - return counters -} +export const formatCounters = (data) => { + const counters = [ + { + header: t("My cases"), + body: data.myCases.toString(), + color: "amber", + icon: "fa-regular fa-user", + url: "/cases-main/my-cases", + }, + { + header: t("In progress"), + body: data.inProgress.toString(), + color: "green", + icon: "fa-solid fa-list", + url: "/cases-main/in-progress", + }, + { + header: t("Completed"), + body: data.completed.toString(), + color: "blue", + icon: "fa-regular fa-circle-check", + url: "/cases-main/completed", + }, + { + header: t("All cases"), + body: data.allCases.toString(), + color: "purple", + icon: "fa-regular fa-clipboard", + url: "/cases-main/all-cases", + }, + { + header: t("All requests"), + body: data.allRequests.toString(), + color: "gray", + icon: "fa-solid fa-play", + url: () => { + window.location.href = "/cases"; + }, + }, + ]; + + return counters; +}; diff --git a/resources/jscomposition/cases/casesMain/utils/index.js b/resources/jscomposition/cases/casesMain/utils/index.js index 069f2719f6..d6a4a113d4 100644 --- a/resources/jscomposition/cases/casesMain/utils/index.js +++ b/resources/jscomposition/cases/casesMain/utils/index.js @@ -1 +1 @@ -export * from './counters' \ No newline at end of file +export * from "./counters"; diff --git a/resources/jscomposition/system/Breadcrums.vue b/resources/jscomposition/system/Breadcrums.vue index 0c41c4d43a..a302a27c55 100644 --- a/resources/jscomposition/system/Breadcrums.vue +++ b/resources/jscomposition/system/Breadcrums.vue @@ -11,28 +11,36 @@
  • - \ No newline at end of file + diff --git a/resources/jscomposition/system/index.js b/resources/jscomposition/system/index.js index 87a413c41b..02e0d67feb 100644 --- a/resources/jscomposition/system/index.js +++ b/resources/jscomposition/system/index.js @@ -1,7 +1,5 @@ import Breadcrums from "./Breadcrums.vue"; -export default {} +export default {}; -export { - Breadcrums -} \ No newline at end of file +export { Breadcrums }; diff --git a/routes/web.php b/routes/web.php index 2fa719a5f2..e41cd225e4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -138,10 +138,6 @@ // Cases Route::get('cases', [RequestController::class, 'index'])->name('cases.index')->middleware('no-cache'); 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') ->where('type', 'all|in_progress|completed') ->middleware('no-cache'); diff --git a/webpack.mix.js b/webpack.mix.js index d525298ac9..e26379255a 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -121,11 +121,7 @@ mix .js("resources/js/requests/mobile.js", "public/js/requests/mobile.js") .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/js/processes/translations/import.js", "public/js/processes/translations") .js("resources/js/processes-catalogue/index.js", "public/js/processes-catalogue/index.js") From 90f4a957456f737689313eca4da3633987d1c591 Mon Sep 17 00:00:00 2001 From: Henry Jonas Date: Thu, 12 Sep 2024 13:15:03 -0400 Subject: [PATCH 3/4] FOUR-19004: Create a NEW VIEW for cases Part Counters --- resources/jscomposition/base/buttons/index.js | 4 +- resources/jscomposition/base/cards/index.js | 6 +- .../jscomposition/base/form/Dropdown.vue | 92 +++++++++++-------- .../jscomposition/base/table/Pagination.vue | 7 +- .../jscomposition/base/table/TFooter.vue | 16 ---- resources/jscomposition/base/table/index.js | 2 + routes/web.php | 1 + 7 files changed, 64 insertions(+), 64 deletions(-) delete mode 100644 resources/jscomposition/base/table/TFooter.vue diff --git a/resources/jscomposition/base/buttons/index.js b/resources/jscomposition/base/buttons/index.js index 5a6c8fc3a0..a86eca3ca3 100644 --- a/resources/jscomposition/base/buttons/index.js +++ b/resources/jscomposition/base/buttons/index.js @@ -1,5 +1,3 @@ import OutlineButton from "./OutlineButton.vue"; -export { - OutlineButton -} \ No newline at end of file +export { OutlineButton }; diff --git a/resources/jscomposition/base/cards/index.js b/resources/jscomposition/base/cards/index.js index c8901f3cd2..e14a1b5958 100644 --- a/resources/jscomposition/base/cards/index.js +++ b/resources/jscomposition/base/cards/index.js @@ -1,5 +1,3 @@ -import ThreeSectionCard from "./ThreeSectionCard.vue" +import ThreeSectionCard from "./ThreeSectionCard.vue"; -export { - ThreeSectionCard -} \ No newline at end of file +export { ThreeSectionCard }; diff --git a/resources/jscomposition/base/form/Dropdown.vue b/resources/jscomposition/base/form/Dropdown.vue index cbf7e11ebb..d203f60b34 100644 --- a/resources/jscomposition/base/form/Dropdown.vue +++ b/resources/jscomposition/base/form/Dropdown.vue @@ -1,16 +1,15 @@