Skip to content

Commit e9429d4

Browse files
authored
Merge pull request #14 from connorabbas/develop
Updates from admin
2 parents 2d98a29 + 7f5545d commit e9429d4

File tree

11 files changed

+200
-165
lines changed

11 files changed

+200
-165
lines changed

.devcontainer/devcontainer.json

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
// https://aka.ms/devcontainer.json
22
{
3-
"name": "PrimeVue Inertia",
4-
"dockerComposeFile": [
5-
"../docker-compose.yml"
6-
],
7-
"service": "primevue_inertia",
8-
"workspaceFolder": "/var/www/html",
9-
"customizations": {
10-
"vscode": {
11-
"extensions": [
12-
"absszero.vscode-laravel-goto",
13-
"amiralizadeh9480.laravel-extra-intellisense",
14-
"bmewburn.vscode-intelephense-client",
15-
"codingyu.laravel-goto-view",
16-
"eamodio.gitlens",
17-
"esbenp.prettier-vscode",
18-
"mikestead.dotenv",
19-
"recca0120.vscode-phpunit",
20-
"streetsidesoftware.code-spell-checker",
21-
"MehediDracula.php-namespace-resolver",
22-
"onecentlin.laravel-blade",
23-
"hollowtree.vue-snippets",
24-
"Vue.volar",
25-
"shd101wyy.markdown-preview-enhanced"
26-
],
27-
"settings": {}
28-
}
29-
},
30-
"remoteUser": "sail",
31-
"postCreateCommand": "chown -R 1000:1000 /var/www/html 2>/dev/null || true"
32-
// "forwardPorts": [],
33-
// "runServices": [],
34-
// "shutdownAction": "none",
3+
"name": "PrimeVue Inertia",
4+
"dockerComposeFile": [
5+
"../docker-compose.yml"
6+
],
7+
"service": "primevue_inertia",
8+
"workspaceFolder": "/var/www/html",
9+
"customizations": {
10+
"vscode": {
11+
"extensions": [
12+
"absszero.vscode-laravel-goto",
13+
"amiralizadeh9480.laravel-extra-intellisense",
14+
"bmewburn.vscode-intelephense-client",
15+
"codingyu.laravel-goto-view",
16+
"eamodio.gitlens",
17+
"esbenp.prettier-vscode",
18+
"mikestead.dotenv",
19+
"streetsidesoftware.code-spell-checker",
20+
"MehediDracula.php-namespace-resolver",
21+
"hbenl.vscode-test-explorer",
22+
"ms-vscode.test-adapter-converter",
23+
"recca0120.vscode-phpunit",
24+
"onecentlin.laravel-blade",
25+
"hollowtree.vue-snippets",
26+
"Vue.volar",
27+
"shd101wyy.markdown-preview-enhanced"
28+
],
29+
"settings": {}
30+
}
31+
},
32+
"remoteUser": "sail",
33+
"postCreateCommand": "chown -R 1000:1000 /var/www/html 2>/dev/null || true"
34+
// "forwardPorts": [],
35+
// "runServices": [],
36+
// "shutdownAction": "none",
3537
}

app/Http/Controllers/Auth/ConfirmablePasswordController.php

Lines changed: 0 additions & 41 deletions
This file was deleted.

docker/8.3/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,9 @@ networks:
5959
database:
6060
name: mariadb_network
6161

62+
```
63+
```sql
64+
# init.sql
65+
GRANT ALL PRIVILEGES ON *.* TO 'docker_mariadb'@'%';
66+
FLUSH PRIVILEGES;
6267
```

package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/js/Components/LinksMenu.vue

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,25 @@ defineExpose({
1818
class="p-menu-item-link"
1919
custom
2020
>
21-
<span v-show="item.icon" :class="item.icon" class="mr-1" />
22-
<span>{{ item.label }}</span>
21+
<span
22+
v-show="item.icon"
23+
:class="item.icon"
24+
class="p-menu-item-icon"
25+
/>
26+
<span class="p-menu-item-label">{{ item.label }}</span>
2327
</Link>
2428
<a
2529
v-else
2630
:href="item.url"
2731
:target="item.target"
2832
v-bind="props.action"
2933
>
30-
<span v-show="item.icon" :class="item.icon" class="mr-1" />
31-
<span>{{ item.label }}</span>
34+
<span
35+
v-show="item.icon"
36+
:class="item.icon"
37+
class="p-menu-item-icon"
38+
/>
39+
<span class="p-menu-item-label">{{ item.label }}</span>
3240
</a>
3341
</template>
3442
</Menu>

resources/js/Components/LinksMenuBar.vue

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ defineExpose({
1919
v-if="item.route"
2020
:href="item.route"
2121
class="p-menubar-item-link"
22-
:class="
23-
item.active
24-
? 'text-primary'
25-
: 'text-surface-700 dark:text-surface-0'
26-
"
22+
:class="{
23+
'font-bold text-primary dark:text-primary-300 bg-primary-50 dark:bg-primary-950 rounded-lg':
24+
item.active,
25+
}"
2726
custom
2827
>
29-
<span v-show="item.icon" :class="item.icon" class="mr-1" />
30-
<span>{{ item.label }}</span>
28+
<span
29+
v-show="item.icon"
30+
:class="item.icon"
31+
class="p-menu-item-icon"
32+
/>
33+
<span class="p-menu-item-label">{{ item.label }}</span>
3134
</Link>
3235
<a
3336
v-else
@@ -36,8 +39,12 @@ defineExpose({
3639
v-bind="props.action"
3740
class="p-menubar-item-link"
3841
>
39-
<span v-show="item.icon" :class="item.icon" class="mr-1" />
40-
<span>{{ item.label }}</span>
42+
<span
43+
v-show="item.icon"
44+
:class="item.icon"
45+
class="p-menu-item-icon"
46+
/>
47+
<span class="p-menu-item-label">{{ item.label }}</span>
4148
<i
4249
v-if="hasSubmenu"
4350
:class="[

resources/js/Components/NestedLinksMenu.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ import PanelMenu from 'primevue/panelmenu';
3131
: 'text-surface-700 dark:text-surface-0'
3232
"
3333
>
34-
<span v-show="item.icon" :class="item.icon" class="mr-2" />
34+
<span
35+
v-show="item.icon"
36+
:class="item.icon"
37+
class="p-panelmenu-item-icon mr-2"
38+
/>
3539
<span>{{ item.label }}</span>
3640
</Link>
3741
<a
@@ -40,7 +44,11 @@ import PanelMenu from 'primevue/panelmenu';
4044
:href="item.url"
4145
:target="item.target"
4246
>
43-
<span v-show="item.icon" :class="item.icon" class="mr-2" />
47+
<span
48+
v-show="item.icon"
49+
:class="item.icon"
50+
class="p-panelmenu-item-icon mr-2"
51+
/>
4452
<span>{{ item.label }}</span>
4553
<span v-if="item.items" class="pi pi-angle-down ml-auto" />
4654
</a>
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import { ref, computed } from 'vue';
2+
import { router } from '@inertiajs/vue3';
3+
4+
export function useDataTable(defaultFilters = {}, only = ['urlParams']) {
5+
const dataTableDefaults = {
6+
filters: defaultFilters,
7+
sortField: '',
8+
sortOrder: 1,
9+
currentPage: 1,
10+
rowsPerPage: 20,
11+
};
12+
13+
const filters = ref(dataTableDefaults.filters);
14+
const sortField = ref(dataTableDefaults.sortField);
15+
const sortOrder = ref(dataTableDefaults.sortOrder);
16+
const currentPage = ref(dataTableDefaults.currentPage);
17+
const rowsPerPage = ref(dataTableDefaults.rowsPerPage);
18+
19+
const firstDatasetIndex = computed(() => {
20+
return (currentPage.value - 1) * rowsPerPage.value;
21+
});
22+
23+
function fetchData() {
24+
return new Promise((resolve, reject) => {
25+
router.reload({
26+
only,
27+
data: {
28+
filters: filters.value,
29+
sortField: sortField.value,
30+
sortOrder: sortOrder.value,
31+
page: currentPage.value,
32+
rows: rowsPerPage.value,
33+
},
34+
preserveState: true,
35+
onSuccess: (page) => {
36+
resolve(page);
37+
},
38+
onError: (errors) => {
39+
reject(errors);
40+
},
41+
});
42+
});
43+
}
44+
45+
function onPage(event) {
46+
currentPage.value = event.page + 1;
47+
rowsPerPage.value = event.rows;
48+
fetchData().then(() => {
49+
scrollToTop();
50+
});
51+
}
52+
53+
function onSort(event) {
54+
sortField.value = event.sortField;
55+
sortOrder.value = event.sortOrder;
56+
fetchData();
57+
}
58+
59+
function onFilter(event) {
60+
currentPage.value = 1;
61+
filters.value = event.filters;
62+
fetchData();
63+
}
64+
65+
function scrollToTop() {
66+
window.scrollTo({
67+
top: 0,
68+
behavior: 'smooth',
69+
});
70+
}
71+
72+
function reset() {
73+
filters.value = dataTableDefaults.filters;
74+
sortField.value = dataTableDefaults.sortField;
75+
sortOrder.value = dataTableDefaults.sortOrder;
76+
currentPage.value = dataTableDefaults.currentPage;
77+
rowsPerPage.value = dataTableDefaults.rowsPerPage;
78+
fetchData();
79+
}
80+
81+
function parseUrlParams(urlParams) {
82+
filters.value = urlParams?.filters || dataTableDefaults.filters;
83+
sortField.value = urlParams?.sortField || dataTableDefaults.sortField;
84+
sortOrder.value =
85+
parseInt(urlParams?.sortOrder) || dataTableDefaults.sortOrder;
86+
currentPage.value =
87+
parseInt(urlParams?.page) || dataTableDefaults.currentPage;
88+
rowsPerPage.value =
89+
parseInt(urlParams?.rows) || dataTableDefaults.rowsPerPage;
90+
}
91+
92+
return {
93+
filters,
94+
sortField,
95+
sortOrder,
96+
currentPage,
97+
rowsPerPage,
98+
firstDatasetIndex,
99+
onPage,
100+
onSort,
101+
onFilter,
102+
reset,
103+
fetchData,
104+
parseUrlParams,
105+
};
106+
}

0 commit comments

Comments
 (0)