@fishawack/lab-velocity 2.0.0-beta.10 → 2.0.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +31 -6
  2. package/_Build/vue/components/layout/Alert.vue +5 -5
  3. package/_Build/vue/{modules/AuthModule/components/VBreadcrumbs.vue → components/layout/Breadcrumbs.vue} +4 -4
  4. package/_Build/vue/{modules/AuthModule/components → components/layout}/Chips.vue +2 -2
  5. package/_Build/vue/components/layout/Footer.vue +11 -10
  6. package/_Build/vue/{modules/AuthModule/components/VFormFooter.vue → components/layout/FormFooter.vue} +2 -2
  7. package/_Build/vue/{modules/AuthModule/components → components/layout}/FormRole.vue +7 -7
  8. package/_Build/vue/components/layout/Layout.vue +74 -0
  9. package/_Build/vue/components/layout/Navigation.vue +77 -0
  10. package/_Build/vue/{modules/AuthModule/components/VPageHeader.vue → components/layout/PageHeader.vue} +7 -2
  11. package/_Build/vue/components/layout/SideBar.vue +26 -0
  12. package/_Build/vue/{modules/AuthModule/components/VTable.vue → components/layout/Table.vue} +6 -15
  13. package/_Build/vue/{modules/AuthModule/components/VTableSorter.vue → components/layout/TableSorter.vue} +15 -17
  14. package/_Build/vue/components/layout/pageTitle.vue +1 -1
  15. package/_Build/vue/components/navigation/MenuItem.vue +7 -2
  16. package/_Build/vue/components/navigation/MenuItemGroup.vue +7 -2
  17. package/_Build/vue/modules/AuthModule/js/router.js +21 -89
  18. package/_Build/vue/modules/AuthModule/js/store.js +13 -4
  19. package/_Build/vue/modules/AuthModule/{adminRoutes/PCompanies/Children/partials → routes/PCompanies}/form.vue +15 -8
  20. package/_Build/vue/modules/AuthModule/routes/PCompanies/resource.js +180 -0
  21. package/_Build/vue/modules/AuthModule/{adminRoutes/PUsers/Children/partials → routes/PUsers}/form.vue +15 -8
  22. package/_Build/vue/modules/AuthModule/routes/PUsers/resource.js +214 -0
  23. package/_Build/vue/modules/AuthModule/routes/change-password.vue +9 -8
  24. package/_Build/vue/modules/AuthModule/routes/container.vue +2 -11
  25. package/_Build/vue/modules/AuthModule/routes/force-reset.vue +9 -8
  26. package/_Build/vue/modules/AuthModule/routes/register.vue +9 -8
  27. package/_Build/vue/modules/AuthModule/routes/reset.vue +9 -8
  28. package/components/_descriptions.scss +2 -0
  29. package/components/_footer.scss +1 -0
  30. package/components/_header.scss +3 -27
  31. package/components/_layout.scss +56 -0
  32. package/components/_sidebar.scss +12 -27
  33. package/index.js +7 -1
  34. package/package.json +1 -1
  35. package/_Build/vue/components/layout/sideBar.vue +0 -25
  36. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/Upload/upload.vue +0 -259
  37. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/create.vue +0 -62
  38. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/edit.vue +0 -98
  39. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/index.vue +0 -90
  40. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/show.vue +0 -267
  41. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/parent.vue +0 -36
  42. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/create.vue +0 -113
  43. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/edit.vue +0 -101
  44. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/index.vue +0 -112
  45. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/show.vue +0 -123
  46. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/parent.vue +0 -36
  47. /package/_Build/vue/{modules/AuthModule/components → components/layout}/AuthModal.vue +0 -0
  48. /package/_Build/vue/{modules/AuthModule/components → components/layout}/Chip.vue +0 -0
  49. /package/_Build/vue/{modules/AuthModule/components/VPasswordValidation.vue → components/layout/PasswordValidation.vue} +0 -0
  50. /package/_Build/vue/{modules/AuthModule/components/VRoleLegend.vue → components/layout/RoleLegend.vue} +0 -0
@@ -1,101 +0,0 @@
1
- <template>
2
- <VBreadcrumbs
3
- :items="addBreadcrumbs"
4
- class="mb-8"
5
- container-classes="m-0"
6
- />
7
-
8
- <div class="container px-6 tablet:px-4 mobile:px-2 mb-8 ml-0 mr-0">
9
- <div class="grid__1/1">
10
- <div class="grid__1/1 mb-4">
11
- <h2 class="h1">Edit User</h2>
12
- </div>
13
- <div class="grid__1/2">
14
- <XForm
15
- :id="id"
16
- ref="form"
17
- :form="form"
18
- :submit="submit"
19
- method="patch"
20
- />
21
- </div>
22
- </div>
23
- </div>
24
- </template>
25
-
26
- <script>
27
- import Form from "form-backend-validation";
28
-
29
- export default {
30
- name: "PEdit",
31
-
32
- components: {
33
- VBreadcrumbs: require("../../../components/VBreadcrumbs.vue").default,
34
- XForm: require("./partials/form.vue").default,
35
- },
36
-
37
- props: {
38
- breadcrumbs: {
39
- type: Array,
40
- required: true,
41
- },
42
- },
43
-
44
- data() {
45
- return {
46
- id: null,
47
- form: new Form({
48
- name: null,
49
- email: null,
50
- company_id: null,
51
- roles: [],
52
- }),
53
- addBreadcrumbs: [...this.$props.breadcrumbs],
54
- };
55
- },
56
-
57
- async mounted() {
58
- this.id = this.$route.params.id;
59
- window.axios
60
- .get(`/api/users/${this.id}?include=company`)
61
- .then((res) => {
62
- const user = res.data.data;
63
- this.form.name = user.name;
64
- this.form.email = user.email;
65
- this.form.company_id = user.company_id;
66
- this.form.roles = user.overrides_roles_and_permissions
67
- ? user.roles.map((val) => {
68
- return val.id;
69
- })
70
- : [];
71
- this.addBreadcrumbs.push({
72
- href: {
73
- name: "users.show",
74
- param: this.id,
75
- },
76
- text: user.name,
77
- });
78
- });
79
- },
80
-
81
- methods: {
82
- async submit() {
83
- try {
84
- let res = await this.form.patch(`/api/users/${this.id}`);
85
-
86
- // if changing ourselves, re-fetch user data
87
- if (res.data.id === this.$store.state.auth.user.id) {
88
- await this.$store.dispatch("getUser");
89
- }
90
-
91
- this.$router.replace({
92
- name: "users.show",
93
- params: { id: res.data.id },
94
- });
95
- } catch (e) {
96
- console.log(e);
97
- }
98
- },
99
- },
100
- };
101
- </script>
@@ -1,112 +0,0 @@
1
- <template>
2
- <VBreadcrumbs :items="breadcrumbs" />
3
-
4
- <div class="container px-6 tablet:px-4 mobile:px-2 mb-8 ml-0 mr-0">
5
- <div class="grid__1/1">
6
- <h2 class="h1 pb-4">
7
- {{ breadcrumbs[breadcrumbs.length - 1].text }}
8
- </h2>
9
-
10
- <VTableSorter
11
- key="PIndex"
12
- api="users"
13
- :json-data="jsonData"
14
- defaults="include=company"
15
- :fixed-height="false"
16
- :display-edit-action="$store.getters.can('write users')"
17
- />
18
-
19
- <VRoleLegend class="mt-5" />
20
- </div>
21
- </div>
22
- </template>
23
-
24
- <script>
25
- export default {
26
- name: "PIndex",
27
-
28
- components: {
29
- VBreadcrumbs: require("../../../components/VBreadcrumbs.vue").default,
30
- VTableSorter: require("../../../components/VTableSorter.vue").default,
31
- VRoleLegend: require("../../../components/VRoleLegend.vue").default,
32
- },
33
-
34
- props: {
35
- breadcrumbs: {
36
- type: Array,
37
- required: true,
38
- },
39
- },
40
-
41
- data() {
42
- return {
43
- jsonData: {
44
- label: "user",
45
- multiLabel: "users",
46
- pageLink: "users",
47
- api: "/api/users",
48
- searchable: {
49
- label: "Search users",
50
- value: "email",
51
- },
52
- tableStructure: [
53
- {
54
- label: "Name",
55
- key: "name",
56
- sortable: true,
57
- },
58
- {
59
- label: "Email",
60
- key: "email",
61
- sortable: true,
62
- },
63
- {
64
- label: "Company",
65
- sortable: true,
66
- component: {
67
- is: () => "router-link",
68
- props: (row) => ({
69
- to: {
70
- name: "companies.show",
71
- params: { id: row.company_id },
72
- },
73
- text: row.company.name,
74
- }),
75
- },
76
- },
77
- {
78
- label: "Role",
79
- component: {
80
- module: (row) => {
81
- if (
82
- !row.overrides_roles_and_permissions ||
83
- row.roles.length === 1
84
- )
85
- return require("../../../components/Chip.vue")
86
- .default;
87
-
88
- return require("../../../components/Chips.vue")
89
- .default;
90
- },
91
- props: (row) => {
92
- if (!row.overrides_roles_and_permissions)
93
- return {
94
- name: "inherited",
95
- label: "Inherited",
96
- };
97
-
98
- return row.roles.length === 1
99
- ? {
100
- name: row.roles[0].name,
101
- label: row.roles[0].label,
102
- }
103
- : { array: row.roles };
104
- },
105
- },
106
- },
107
- ],
108
- },
109
- };
110
- },
111
- };
112
- </script>
@@ -1,123 +0,0 @@
1
- <template>
2
- <VBreadcrumbs
3
- :items="addBreadcrumbs"
4
- class="mb-8"
5
- container-classes="m-0"
6
- />
7
-
8
- <div class="container px-6 tablet:px-4 mobile:px-2 mb-8 ml-0 mr-0">
9
- <div class="grid__1/1">
10
- <template v-if="user">
11
- <div class="bg-0 p-3 box-shadow-1 border-r-4 mb-6">
12
- <VPageHeader
13
- icon="icon-user"
14
- :title="`${user.name} ${user.last_name ?? ''}`"
15
- >
16
- <VelButton
17
- v-if="$store.getters.can('write users')"
18
- tag="a"
19
- type="primary"
20
- @click="
21
- $router.push({
22
- name: 'users.edit',
23
- param: user.id,
24
- })
25
- "
26
- >
27
- <GIcon
28
- class="fill-0 mr-0.5"
29
- name="icon-edit"
30
- embed
31
- artboard
32
- />
33
- Edit user
34
- </VelButton>
35
- </VPageHeader>
36
-
37
- <hr class="my-3 hr-muted" />
38
-
39
- <table>
40
- <tbody>
41
- <tr>
42
- <td class="p">Email</td>
43
- <td class="p">{{ user.email }}</td>
44
- </tr>
45
- <tr>
46
- <td class="p">Company</td>
47
- <td class="p">
48
- <router-link
49
- :to="{
50
- name: 'companies.show',
51
- params: { id: user.company.id },
52
- }"
53
- >
54
- {{ user.company?.name }}
55
- </router-link>
56
- </td>
57
- </tr>
58
- </tbody>
59
- </table>
60
-
61
- <hr class="my-3 hr-muted" />
62
-
63
- <FormRole
64
- :overrides="user.overrides_roles_and_permissions"
65
- :form="{ roles: user.roles.map((d) => d.id) }"
66
- :readonly="true"
67
- />
68
- </div>
69
- </template>
70
-
71
- <div v-else class="absolute transform-center text-center">
72
- <VelSpinner />
73
- </div>
74
- </div>
75
- </div>
76
- </template>
77
-
78
- <script>
79
- import axios from "axios";
80
- import VelButton from "../../../../../components/basic/Button.vue";
81
- import VelSpinner from "../../../../../components/form/Spinner.vue";
82
-
83
- export default {
84
- name: "PShow",
85
-
86
- components: {
87
- VBreadcrumbs: require("../../../components/VBreadcrumbs.vue").default,
88
- VPageHeader: require("../../../components/VPageHeader.vue").default,
89
- FormRole: require("../../../components/FormRole.vue").default,
90
- VelButton,
91
- VelSpinner,
92
- },
93
-
94
- props: {
95
- breadcrumbs: {
96
- type: Array,
97
- required: true,
98
- },
99
- },
100
-
101
- data() {
102
- return {
103
- user: null,
104
- addBreadcrumbs: [...this.$props.breadcrumbs],
105
- };
106
- },
107
-
108
- mounted() {
109
- axios
110
- .get(`/api/users/${this.$route.params.id}?include=company`)
111
- .then((res) => {
112
- this.user = res.data.data;
113
- this.addBreadcrumbs.push({
114
- href: {
115
- name: "users.show",
116
- param: this.user.id,
117
- },
118
- text: this.user.name,
119
- });
120
- });
121
- },
122
- };
123
- </script>
@@ -1,36 +0,0 @@
1
- <template>
2
- <PageTitle title="Users" />
3
-
4
- <router-view :key="$route.path" :breadcrumbs="breadcrumbs" />
5
- </template>
6
-
7
- <script>
8
- import PageTitle from "../../../../components/layout/pageTitle.vue";
9
-
10
- export default {
11
- name: "PUsers",
12
-
13
- components: {
14
- PageTitle,
15
- },
16
-
17
- data() {
18
- return {
19
- breadcrumbs: [
20
- {
21
- href: {
22
- name: "index",
23
- },
24
- text: "Home",
25
- },
26
- {
27
- href: {
28
- name: "users.index",
29
- },
30
- text: "Users",
31
- },
32
- ],
33
- };
34
- },
35
- };
36
- </script>