@fishawack/lab-velocity 2.0.0-beta.2 → 2.0.0-beta.21

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 (105) hide show
  1. package/README.md +439 -37
  2. package/_Build/vue/components/basic/Button.vue +1 -1
  3. package/_Build/vue/components/form/Select.vue +2 -2
  4. package/_Build/vue/components/form/Spinner.vue +5 -0
  5. package/_Build/vue/components/layout/Alert.vue +5 -5
  6. package/_Build/vue/{modules/AuthModule/components/VBreadcrumbs.vue → components/layout/Breadcrumbs.vue} +5 -4
  7. package/_Build/vue/{modules/AuthModule/components → components/layout}/Chips.vue +2 -2
  8. package/_Build/vue/components/layout/Footer.vue +11 -10
  9. package/_Build/vue/{modules/AuthModule/components/VFormFooter.vue → components/layout/FormFooter.vue} +13 -7
  10. package/_Build/vue/{modules/AuthModule/components → components/layout}/FormRole.vue +9 -7
  11. package/_Build/vue/components/layout/Layout.vue +76 -0
  12. package/_Build/vue/components/layout/Navigation.vue +77 -0
  13. package/_Build/vue/{modules/AuthModule/components/VPageHeader.vue → components/layout/PageHeader.vue} +7 -2
  14. package/_Build/vue/components/layout/SideBar.vue +26 -0
  15. package/_Build/vue/{modules/AuthModule/components/VTable.vue → components/layout/Table.vue} +19 -17
  16. package/_Build/vue/{modules/AuthModule/components/VTableSorter.vue → components/layout/TableSorter.vue} +35 -25
  17. package/_Build/vue/components/layout/pageTitle.vue +1 -1
  18. package/_Build/vue/components/navigation/MenuItem.vue +7 -2
  19. package/_Build/vue/components/navigation/MenuItemGroup.vue +7 -2
  20. package/_Build/vue/modules/AuthModule/js/axios.js +19 -0
  21. package/_Build/vue/modules/AuthModule/js/router.js +21 -89
  22. package/_Build/vue/modules/AuthModule/js/store.js +15 -6
  23. package/_Build/vue/modules/AuthModule/{adminRoutes/PCompanies/Children/partials → routes/PCompanies}/form.vue +32 -17
  24. package/_Build/vue/modules/AuthModule/routes/PCompanies/resource.js +168 -0
  25. package/_Build/vue/modules/AuthModule/{adminRoutes/PUsers/Children/partials → routes/PUsers}/form.vue +30 -18
  26. package/_Build/vue/modules/AuthModule/routes/PUsers/resource.js +202 -0
  27. package/_Build/vue/modules/AuthModule/routes/account-exists.vue +3 -3
  28. package/_Build/vue/modules/AuthModule/routes/change-password.vue +23 -24
  29. package/_Build/vue/modules/AuthModule/routes/container.vue +2 -11
  30. package/_Build/vue/modules/AuthModule/routes/expired-reset.vue +6 -6
  31. package/_Build/vue/modules/AuthModule/routes/expired-verification.vue +11 -10
  32. package/_Build/vue/modules/AuthModule/routes/force-reset.vue +24 -28
  33. package/_Build/vue/modules/AuthModule/routes/forgot.vue +6 -6
  34. package/_Build/vue/modules/AuthModule/routes/login.vue +9 -13
  35. package/_Build/vue/modules/AuthModule/routes/logincallback.vue +2 -4
  36. package/_Build/vue/modules/AuthModule/routes/loginsso.vue +9 -11
  37. package/_Build/vue/modules/AuthModule/routes/logout.vue +1 -3
  38. package/_Build/vue/modules/AuthModule/routes/logoutheadless.vue +1 -3
  39. package/_Build/vue/modules/AuthModule/routes/register.vue +19 -21
  40. package/_Build/vue/modules/AuthModule/routes/reset.vue +14 -13
  41. package/_Build/vue/modules/AuthModule/routes/success-forgot.vue +10 -9
  42. package/_Build/vue/modules/AuthModule/routes/success-reset.vue +3 -3
  43. package/_Build/vue/modules/AuthModule/routes/success-verify.vue +2 -4
  44. package/_Build/vue/modules/AuthModule/routes/verify.vue +13 -16
  45. package/_Build/vue/modules/resource/Children/create.vue +76 -0
  46. package/_Build/vue/modules/resource/Children/edit.vue +110 -0
  47. package/_Build/vue/modules/resource/Children/index.vue +47 -0
  48. package/_Build/vue/modules/resource/Children/partials/form.vue +57 -0
  49. package/_Build/vue/modules/resource/Children/show.vue +97 -0
  50. package/_Build/vue/modules/resource/index.js +280 -0
  51. package/_Build/vue/modules/resource/parent.vue +41 -0
  52. package/_base.scss +0 -1
  53. package/_defaults.scss +2 -13
  54. package/_variables.scss +9 -4
  55. package/components/_alert.scss +5 -0
  56. package/components/_auth.scss +163 -0
  57. package/components/_basic.scss +55 -0
  58. package/components/_breadcrumbs.scss +39 -0
  59. package/components/_button.scss +304 -0
  60. package/components/_cascader.scss +12 -0
  61. package/components/_checkbox.scss +41 -0
  62. package/components/_chip.scss +24 -0
  63. package/components/_collapse.scss +24 -0
  64. package/components/_datepicker.scss +52 -0
  65. package/components/_descriptions.scss +2 -0
  66. package/components/_footer.scss +47 -0
  67. package/components/_form.scss +24 -0
  68. package/components/_header.scss +30 -0
  69. package/components/_icon.scss +25 -0
  70. package/components/_inputNumber.scss +22 -0
  71. package/components/_layout.scss +56 -0
  72. package/components/_link.scss +44 -0
  73. package/components/_loader.scss +43 -0
  74. package/components/_menu.scss +112 -0
  75. package/components/_modal.scss +24 -0
  76. package/components/_pageTitle.scss +8 -0
  77. package/components/_permissionLegend.scss +18 -0
  78. package/components/_select.scss +29 -0
  79. package/components/_sidebar.scss +41 -0
  80. package/components/_switch.scss +14 -0
  81. package/components/_table.scss +20 -0
  82. package/components/_tooltip.scss +4 -0
  83. package/components/_typography.scss +162 -0
  84. package/components/_upload.scss +15 -0
  85. package/components/_wysiwyg.scss +7 -0
  86. package/components/_wysiwyg2.scss +142 -0
  87. package/index.js +7 -1
  88. package/package.json +4 -2
  89. package/vendor.scss +0 -1
  90. package/_Build/vue/components/layout/sideBar.vue +0 -25
  91. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/Upload/upload.vue +0 -251
  92. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/create.vue +0 -62
  93. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/edit.vue +0 -98
  94. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/index.vue +0 -90
  95. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/show.vue +0 -262
  96. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/parent.vue +0 -36
  97. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/create.vue +0 -112
  98. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/edit.vue +0 -103
  99. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/index.vue +0 -112
  100. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/show.vue +0 -120
  101. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/parent.vue +0 -36
  102. /package/_Build/vue/{modules/AuthModule/components → components/layout}/AuthModal.vue +0 -0
  103. /package/_Build/vue/{modules/AuthModule/components → components/layout}/Chip.vue +0 -0
  104. /package/_Build/vue/{modules/AuthModule/components/VPasswordValidation.vue → components/layout/PasswordValidation.vue} +0 -0
  105. /package/_Build/vue/{modules/AuthModule/components/VRoleLegend.vue → components/layout/RoleLegend.vue} +0 -0
@@ -1,103 +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
- errors: this.$root.errors,
90
- });
91
- }
92
-
93
- this.$router.replace({
94
- name: "users.show",
95
- params: { id: res.data.id },
96
- });
97
- } catch (e) {
98
- this.$root.errors(e);
99
- }
100
- },
101
- },
102
- };
103
- </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,120 +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
- <el-button
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
- </el-button>
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
- <GSpinner class="fill-5" />
73
- <p v-text="`Loading...`" />
74
- </div>
75
- </div>
76
- </div>
77
- </template>
78
-
79
- <script>
80
- import axios from "axios";
81
-
82
- export default {
83
- name: "PShow",
84
-
85
- components: {
86
- VBreadcrumbs: require("../../../components/VBreadcrumbs.vue").default,
87
- VPageHeader: require("../../../components/VPageHeader.vue").default,
88
- FormRole: require("../../../components/FormRole.vue").default,
89
- },
90
-
91
- props: {
92
- breadcrumbs: {
93
- type: Array,
94
- required: true,
95
- },
96
- },
97
-
98
- data() {
99
- return {
100
- user: null,
101
- addBreadcrumbs: [...this.$props.breadcrumbs],
102
- };
103
- },
104
-
105
- mounted() {
106
- axios
107
- .get(`/api/users/${this.$route.params.id}?include=company`)
108
- .then((res) => {
109
- this.user = res.data.data;
110
- this.addBreadcrumbs.push({
111
- href: {
112
- name: "users.show",
113
- param: this.user.id,
114
- },
115
- text: this.user.name,
116
- });
117
- });
118
- },
119
- };
120
- </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 "@fishawack/lab-velocity";
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>