@dcrackel/hematournamentui 1.0.241 → 1.0.243
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.
- package/dist/HemaTournamentUI-lib.es.js +2531 -2456
- package/dist/HemaTournamentUI-lib.umd.js +27 -27
- package/package.json +14 -14
- package/src/assets/loading.gif +0 -0
- package/src/mocks/tournamentMock.js +39 -33
- package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplay.stories.js +16 -26
- package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplayModal.vue +6 -3
- package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.stories.js +28 -0
- package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.vue +45 -0
- package/src/stories/Templates/TournamentManagement/AddTournament/PageOne/AddTournamentPageOne.stories.js +13 -0
- package/src/stories/Templates/TournamentManagement/AddTournament/PageOne/AddTournamentPageOne.vue +24 -3
- package/src/stories/Templates/TournamentManagement/EditTournament/EditBasic/EditTournamentBasicInfo.vue +41 -2
- package/tailwind.config.js +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcrackel/hematournamentui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.243",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/HemaTournamentUI-lib.umd.js",
|
|
7
7
|
"module": "dist/HemaTournamentUI-lib.es.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@fontsource/fira-code": "^5.0.18",
|
|
29
29
|
"@fontsource/inter": "^5.0.19",
|
|
30
30
|
"@fontsource/roboto-mono": "^5.0.18",
|
|
31
|
-
"@storybook/icons": "^1.2.
|
|
31
|
+
"@storybook/icons": "^1.2.10",
|
|
32
32
|
"@tiptap/extension-bold": "^2.1.13",
|
|
33
33
|
"@tiptap/extension-highlight": "^2.1.13",
|
|
34
34
|
"@tiptap/extension-text-align": "^2.1.13",
|
|
@@ -52,17 +52,17 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@chromatic-com/storybook": "^1.6.1",
|
|
55
|
-
"@storybook/addon-actions": "^8.2.
|
|
56
|
-
"@storybook/addon-docs": "^8.2.
|
|
57
|
-
"@storybook/addon-essentials": "^8.2.
|
|
58
|
-
"@storybook/addon-interactions": "^8.2.
|
|
59
|
-
"@storybook/addon-links": "^8.2.
|
|
60
|
-
"@storybook/addon-mdx-gfm": "^8.2.
|
|
61
|
-
"@storybook/blocks": "^8.2.
|
|
62
|
-
"@storybook/react": "^8.2.
|
|
63
|
-
"@storybook/test": "^8.2.
|
|
64
|
-
"@storybook/vue3": "^8.2.
|
|
65
|
-
"@storybook/vue3-vite": "^8.2.
|
|
55
|
+
"@storybook/addon-actions": "^8.2.7",
|
|
56
|
+
"@storybook/addon-docs": "^8.2.7",
|
|
57
|
+
"@storybook/addon-essentials": "^8.2.7",
|
|
58
|
+
"@storybook/addon-interactions": "^8.2.7",
|
|
59
|
+
"@storybook/addon-links": "^8.2.7",
|
|
60
|
+
"@storybook/addon-mdx-gfm": "^8.2.7",
|
|
61
|
+
"@storybook/blocks": "^8.2.7",
|
|
62
|
+
"@storybook/react": "^8.2.7",
|
|
63
|
+
"@storybook/test": "^8.2.7",
|
|
64
|
+
"@storybook/vue3": "^8.2.7",
|
|
65
|
+
"@storybook/vue3-vite": "^8.2.7",
|
|
66
66
|
"@vitejs/plugin-vue": "^5.0.0",
|
|
67
67
|
"@vitest/coverage-v8": "^1.1.0",
|
|
68
68
|
"@vue/cli-plugin-babel": "^5.0.8",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"eslint": "^8.56.0",
|
|
72
72
|
"eslint-plugin-storybook": "^0.8.0",
|
|
73
73
|
"eslint-plugin-vue": "^9.20.1",
|
|
74
|
-
"storybook": "^8.2.
|
|
74
|
+
"storybook": "^8.2.7",
|
|
75
75
|
"storybook-vue3-router": "^5.0.0",
|
|
76
76
|
"tailwindcss": "^3.4.3",
|
|
77
77
|
"vite": "^5.0.10",
|
|
Binary file
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
const mockTournaments = [
|
|
2
2
|
{
|
|
3
|
-
"TournamentId":
|
|
4
|
-
"Name": "
|
|
5
|
-
"StartDate": "2024-
|
|
6
|
-
"EndDate": "2024-
|
|
7
|
-
"Description": "
|
|
8
|
-
"ClubId":
|
|
3
|
+
"TournamentId": 19,
|
|
4
|
+
"Name": "Sword Quench",
|
|
5
|
+
"StartDate": "2024-08-02",
|
|
6
|
+
"EndDate": "2024-08-02",
|
|
7
|
+
"Description": "<p>This is a test</p>",
|
|
8
|
+
"ClubId": 10,
|
|
9
9
|
"AddressId": 1,
|
|
10
10
|
"Visibility": "Open",
|
|
11
11
|
"HostedOnM2": true,
|
|
12
|
-
"PrimaryContactId":
|
|
13
|
-
"CreatedByPersonId":
|
|
12
|
+
"PrimaryContactId": 75,
|
|
13
|
+
"CreatedByPersonId": 1,
|
|
14
14
|
"Club": {
|
|
15
|
-
"ClubId":
|
|
16
|
-
"Name": "
|
|
15
|
+
"ClubId": 10,
|
|
16
|
+
"Name": "Columbus United Fencing Club"
|
|
17
17
|
},
|
|
18
18
|
"Address": {
|
|
19
19
|
"Name": "Test Location",
|
|
@@ -23,33 +23,39 @@ const mockTournaments = [
|
|
|
23
23
|
"Zip": 43015,
|
|
24
24
|
"Coordinates": "40.2828592,-83.1118049"
|
|
25
25
|
},
|
|
26
|
-
"PrimaryContact":
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
"PrimaryContact": {
|
|
27
|
+
"PersonId": 75,
|
|
28
|
+
"DisplayName": "William Handford",
|
|
29
|
+
"Pronouns": "He/Him",
|
|
30
|
+
"FirstName": "William",
|
|
31
|
+
"LastName": "Handford",
|
|
32
|
+
"Birthday": null,
|
|
33
|
+
"ClubId": 10,
|
|
34
|
+
"HemaRatingsId": 8966,
|
|
35
|
+
"ShowData": true,
|
|
36
|
+
"AccessLevel": "User"
|
|
37
|
+
},
|
|
38
|
+
"CreatedByPerson": {
|
|
39
|
+
"PersonId": 1,
|
|
40
|
+
"DisplayName": "Dwain Crackel",
|
|
41
|
+
"Pronouns": "He/Him",
|
|
42
|
+
"FirstName": "Dwain",
|
|
43
|
+
"LastName": "Crackel",
|
|
44
|
+
"Birthday": "1980-07-16",
|
|
45
|
+
"ClubId": 10,
|
|
46
|
+
"HemaRatingsId": 8962,
|
|
47
|
+
"ShowData": true,
|
|
48
|
+
"AccessLevel": "User"
|
|
49
|
+
},
|
|
50
|
+
"SocialMedia": [],
|
|
38
51
|
"Images": [
|
|
39
52
|
{
|
|
40
|
-
"ImageId":
|
|
41
|
-
"URL": "
|
|
42
|
-
"AltText": "
|
|
53
|
+
"ImageId": 28,
|
|
54
|
+
"URL": "http://localhost/uploads/t-b3e00ebf.png",
|
|
55
|
+
"AltText": "Sword Quench image"
|
|
43
56
|
}
|
|
44
57
|
],
|
|
45
|
-
"Tag": [
|
|
46
|
-
{
|
|
47
|
-
"TagName": "Saber"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"TagName": "Longsword"
|
|
51
|
-
}
|
|
52
|
-
]
|
|
58
|
+
"Tag": []
|
|
53
59
|
},
|
|
54
60
|
{
|
|
55
61
|
"TournamentId": 4,
|
|
@@ -1,47 +1,37 @@
|
|
|
1
1
|
import AddDisplayModal from './AddDisplayModal.vue';
|
|
2
|
-
import getAllStaffByTournamentId from "../../../../mocks/getAllStaffByTournamentId.js";
|
|
3
|
-
import getEventByTournamentId from "../../../../mocks/getEventByTournamentId.js";
|
|
4
2
|
|
|
5
3
|
export default {
|
|
6
4
|
title: 'Molecules/Modals/AddDisplayModal',
|
|
7
5
|
component: AddDisplayModal,
|
|
8
6
|
tags: ['autodocs'],
|
|
9
7
|
args: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
staffDropDown: getAllStaffByTournamentId,
|
|
15
|
-
eventDropDown: getEventByTournamentId
|
|
8
|
+
show: true,
|
|
9
|
+
clubs: [{ id: 1, name: 'Club 1' }, { id: 2, name: 'Club 2' }],
|
|
10
|
+
userClub: { id: 1, name: 'Club 1' },
|
|
11
|
+
isAdmin: true
|
|
16
12
|
},
|
|
17
13
|
argTypes: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
staffDropDown: { control: { type: 'array' } },
|
|
23
|
-
eventDropDown: { control: { type: 'array' } },
|
|
14
|
+
show: { control: { type: 'boolean' } },
|
|
15
|
+
clubs: { control: { type: 'array' } },
|
|
16
|
+
userClub: { control: { type: 'object' } },
|
|
17
|
+
isAdmin: { control: { type: 'boolean' } }
|
|
24
18
|
},
|
|
25
19
|
};
|
|
26
20
|
|
|
27
21
|
export const Default = {
|
|
28
22
|
args: {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
staffDropDown: getAllStaffByTournamentId,
|
|
34
|
-
eventDropDown: getEventByTournamentId
|
|
23
|
+
show: true,
|
|
24
|
+
clubs: [{ id: 1, name: 'Club 1' }, { id: 2, name: 'Club 2' }],
|
|
25
|
+
userClub: { id: 1, name: 'Club 1' },
|
|
26
|
+
isAdmin: true
|
|
35
27
|
},
|
|
36
28
|
};
|
|
37
29
|
|
|
38
30
|
export const WithInitialCount = {
|
|
39
31
|
args: {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
staffDropDown: getAllStaffByTournamentId,
|
|
45
|
-
eventDropDown: getEventByTournamentId
|
|
32
|
+
show: true,
|
|
33
|
+
clubs: [{ id: 1, name: 'Club 1' }, { id: 2, name: 'Club 2' }],
|
|
34
|
+
userClub: { id: 2, name: 'Club 2' },
|
|
35
|
+
isAdmin: false
|
|
46
36
|
},
|
|
47
37
|
};
|
|
@@ -33,15 +33,18 @@ export default {
|
|
|
33
33
|
},
|
|
34
34
|
clubs: {
|
|
35
35
|
type: Array,
|
|
36
|
-
required: true
|
|
36
|
+
required: true,
|
|
37
|
+
default: () => []
|
|
37
38
|
},
|
|
38
39
|
userClub: {
|
|
39
40
|
type: Object,
|
|
40
|
-
required: true
|
|
41
|
+
required: true,
|
|
42
|
+
default: () => ({})
|
|
41
43
|
},
|
|
42
44
|
isAdmin: {
|
|
43
45
|
type: Boolean,
|
|
44
|
-
required: true
|
|
46
|
+
required: true,
|
|
47
|
+
default: false
|
|
45
48
|
}
|
|
46
49
|
},
|
|
47
50
|
methods: {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import LoadingModal from './LoadingModal.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Molecules/Modals/LoadingModal',
|
|
5
|
+
component: LoadingModal,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
args: {
|
|
8
|
+
show: true,
|
|
9
|
+
headerText: "Loading...",
|
|
10
|
+
animatedGif: "https://media.giphy.com/media/sSgvbe1m3n93G/giphy.gif", // Replace with the actual gif URL
|
|
11
|
+
loadingText: "Please wait while we load the data."
|
|
12
|
+
},
|
|
13
|
+
argTypes: {
|
|
14
|
+
show: { control: { type: 'boolean' } },
|
|
15
|
+
headerText: { control: { type: 'text' } },
|
|
16
|
+
animatedGif: { control: { type: 'text' } },
|
|
17
|
+
loadingText: { control: { type: 'text' } }
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const Default = {
|
|
22
|
+
args: {
|
|
23
|
+
show: true,
|
|
24
|
+
headerText: "Loading...",
|
|
25
|
+
animatedGif: "https://media.giphy.com/media/sSgvbe1m3n93G/giphy.gif", // Replace with the actual gif URL
|
|
26
|
+
loadingText: "Please wait while we load the data."
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<transition
|
|
3
|
+
enter-active-class="transition-opacity duration-500"
|
|
4
|
+
enter-class="opacity-0"
|
|
5
|
+
enter-to-class="opacity-100"
|
|
6
|
+
leave-active-class="transition-opacity duration-500"
|
|
7
|
+
leave-class="opacity-100"
|
|
8
|
+
leave-to-class="opacity-0"
|
|
9
|
+
>
|
|
10
|
+
<div v-if="show" class="fixed inset-0 bg-secondary bg-opacity-75 flex items-center justify-center z-50">
|
|
11
|
+
<div class="w-1/3 min-w-[30rem] bg-loadingModalBG rounded-lg shadow-lg pb-6 px-2 text-center py-4">
|
|
12
|
+
<div class="text-lg font-semibold mt-2">{{ headerText }}</div>
|
|
13
|
+
<img :src="loadedImageGif" alt="Loading" class="my-4 mx-auto w-52" />
|
|
14
|
+
<div class="text-sm">{{ loadingText }}</div>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</transition>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
import loadingImage from '../../../../assets/loading.gif';
|
|
22
|
+
|
|
23
|
+
export default {
|
|
24
|
+
name: "LoadingModal",
|
|
25
|
+
props: {
|
|
26
|
+
show: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
default: true
|
|
29
|
+
},
|
|
30
|
+
headerText: {
|
|
31
|
+
type: String,
|
|
32
|
+
required: true
|
|
33
|
+
},
|
|
34
|
+
loadingText: {
|
|
35
|
+
type: String,
|
|
36
|
+
required: true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
data() {
|
|
40
|
+
return {
|
|
41
|
+
loadedImageGif: loadingImage
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
</script>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import AddTournamentPageOne from './AddTournamentPageOne.vue';
|
|
2
2
|
import mockLocation from '../../../../../mocks/locationMock.js';
|
|
3
3
|
import mockPersons from '../../../../../mocks/personsMock.js';
|
|
4
|
+
import mockTournaments from '../../../../../mocks/tournamentMock.js';
|
|
4
5
|
|
|
5
6
|
export default {
|
|
6
7
|
title: 'Templates/TournamentManagement/AddTournament/PageOne',
|
|
@@ -46,3 +47,15 @@ export const Default = {
|
|
|
46
47
|
imageServer: 'http://localhost/uploads/'
|
|
47
48
|
}
|
|
48
49
|
};
|
|
50
|
+
|
|
51
|
+
export const ExistingTournament = {
|
|
52
|
+
args: {
|
|
53
|
+
existingTournament: mockTournaments[0],
|
|
54
|
+
locations: mockLocation,
|
|
55
|
+
|
|
56
|
+
addNewText: "Add New Location",
|
|
57
|
+
uploadImageName: 'Storybook-test',
|
|
58
|
+
uploadServer: 'http://localhost/uploads/',
|
|
59
|
+
imageServer: 'http://localhost/uploads/'
|
|
60
|
+
}
|
|
61
|
+
};
|
package/src/stories/Templates/TournamentManagement/AddTournament/PageOne/AddTournamentPageOne.vue
CHANGED
|
@@ -46,7 +46,10 @@
|
|
|
46
46
|
<div class="flex flex-col pb-4">
|
|
47
47
|
<BaseText :color="'primaryHighlight'" :invalid="false" :size="'sm'" :text="'Primary Contact'"
|
|
48
48
|
:weight="'normal'" class="mb-1" data-testid="text-primary-contact"/>
|
|
49
|
-
<FindPerson :addBorder="true"
|
|
49
|
+
<FindPerson :addBorder="true"
|
|
50
|
+
:persons="persons" addNewText="Add New Person"
|
|
51
|
+
@new-person-submitted="handleNewPerson"
|
|
52
|
+
@person-selected="handleAddExistingPerson"/>
|
|
50
53
|
</div>
|
|
51
54
|
<div class="flex flex-col pb-4">
|
|
52
55
|
<BaseText :color="'primaryHighlight'" :invalid="validation.visibility" :size="'sm'"
|
|
@@ -74,10 +77,12 @@ import BaseButton from "../../../../Molecules/Buttons/BaseButton/BaseButton.vue"
|
|
|
74
77
|
import FindLocation from "../../../../Organisms/ComplexInputs/FindLocation/FindLocation.vue";
|
|
75
78
|
import FindPerson from "../../../../Organisms/ComplexInputs/FindPerson/FindPerson.vue";
|
|
76
79
|
import TitledInput from "../../../../Molecules/CombinationInputs/TitledInput/TitledInput.vue";
|
|
80
|
+
import FindOrAddPerson from "../../../../Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.vue";
|
|
77
81
|
|
|
78
82
|
export default {
|
|
79
83
|
name: 'AddTournamentPageOne',
|
|
80
84
|
components: {
|
|
85
|
+
FindOrAddPerson,
|
|
81
86
|
TitledInput,
|
|
82
87
|
FindPerson,
|
|
83
88
|
FindLocation,
|
|
@@ -91,6 +96,10 @@ export default {
|
|
|
91
96
|
BaseButton
|
|
92
97
|
},
|
|
93
98
|
props: {
|
|
99
|
+
existingTournament: {
|
|
100
|
+
type: Object,
|
|
101
|
+
required: false
|
|
102
|
+
},
|
|
94
103
|
locations: Array,
|
|
95
104
|
persons: Array,
|
|
96
105
|
urlToImage: {
|
|
@@ -116,11 +125,15 @@ export default {
|
|
|
116
125
|
name: '',
|
|
117
126
|
imageLink: '',
|
|
118
127
|
addressId: 0,
|
|
128
|
+
primaryContactId: 0,
|
|
129
|
+
clubId: 0,
|
|
119
130
|
startDate: '',
|
|
120
131
|
totalDays: 1,
|
|
132
|
+
hostedOnM2: true,
|
|
121
133
|
description: '',
|
|
122
134
|
visibility: '',
|
|
123
|
-
externalLinks: Array
|
|
135
|
+
externalLinks: Array,
|
|
136
|
+
tags: Array
|
|
124
137
|
},
|
|
125
138
|
validation: {
|
|
126
139
|
name: false,
|
|
@@ -172,7 +185,15 @@ export default {
|
|
|
172
185
|
handleNewImageUrl(url) {
|
|
173
186
|
this.tournament.imageLink = url;
|
|
174
187
|
this.$emit('update:image', url);
|
|
175
|
-
}
|
|
188
|
+
},
|
|
189
|
+
handleNewPerson(person) {
|
|
190
|
+
this.tournament.primaryContactId = person.PersonId;
|
|
191
|
+
this.$emit('add:primaryContact', person);
|
|
192
|
+
},
|
|
193
|
+
handleAddExistingPerson(person) {
|
|
194
|
+
this.tournament.primaryContactId = person.PersonId;
|
|
195
|
+
this.$emit('add:existingPrimaryContact', person);
|
|
196
|
+
},
|
|
176
197
|
},
|
|
177
198
|
computed: {
|
|
178
199
|
areAnyFieldsAreLeftInvalid() {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
:weight="'normal'" class="mb-1 ml-1" data-testid="text-cover-image"/>
|
|
9
9
|
<div class="w-full flex justify-center">
|
|
10
10
|
<div class="w-3/4">
|
|
11
|
-
<ImageCropper :
|
|
11
|
+
<ImageCropper :urlToImage="tournamentImage" :imageName="`${localTournament.TournamentId}`" @update:url="handleUpdateUrl"/>
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
<TextBoxEditor :initialContent="localTournament.Description" :invalid="validation.description"
|
|
32
32
|
@update:editorContent="handleEditorUpdate"/>
|
|
33
33
|
</div>
|
|
34
|
+
|
|
35
|
+
<section class="flex flex-col">
|
|
34
36
|
<div class="flex flex-row justify-center mb-3">
|
|
35
37
|
<div class="flex flex-col w-1/2 mr-1">
|
|
36
38
|
<BaseText :color="'quinary'" :invalid="validation.startDate" :size="'sm'" :text="'Start Date'"
|
|
@@ -43,6 +45,22 @@
|
|
|
43
45
|
<BaseInput :addBorder="true" :placeholder="totalDays" @update:value="handleTotalDays"/>
|
|
44
46
|
</div>
|
|
45
47
|
</div>
|
|
48
|
+
<div class="flex flex-col pb-4">
|
|
49
|
+
<BaseText :color="'primaryHighlight'" :invalid="false" :size="'sm'" :text="'Primary Contact'"
|
|
50
|
+
:weight="'normal'" class="mb-1" data-testid="text-primary-contact"/>
|
|
51
|
+
<FindPerson :addBorder="true"
|
|
52
|
+
:persons="persons" addNewText="Add New Person"
|
|
53
|
+
@new-person-submitted="handleNewPerson"
|
|
54
|
+
@person-selected="handleAddExistingPerson"/>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="flex flex-col pb-4">
|
|
57
|
+
<BaseText :color="'primaryHighlight'" :invalid="validation.visibility" :size="'sm'"
|
|
58
|
+
:text="'Tournament Visibility'" :weight="'normal'" class="mb-2" data-testid="text-visibility"/>
|
|
59
|
+
<BaseRadioGroup :invalid="validation.visibility" :items="visibilityItems"
|
|
60
|
+
@update:value="value => tournament.visibility = value"/>
|
|
61
|
+
</div>
|
|
62
|
+
</section>
|
|
63
|
+
|
|
46
64
|
<div class="flex flex-row justify-center my-10">
|
|
47
65
|
<BaseButton class="w-1/2 ml-1" color="neutral" label="Cancel" size="sm" type="primary" @click="handleCancel"/>
|
|
48
66
|
<BaseButton class="w-1/2 mr-1 transition-all duration-300 ease-in-out" color="neutral" :label="saveButtonLabel" selected=selected size="sm" type="primary"
|
|
@@ -63,9 +81,13 @@ import TextBoxEditor from "../../../../Organisms/ComplexInputs/TextBoxEditor/Tex
|
|
|
63
81
|
import FindLocation from "../../../../Organisms/ComplexInputs/FindLocation/FindLocation.vue";
|
|
64
82
|
import DatePicker from "../../../../Organisms/ComplexInputs/DatePicker/DatePicker.vue";
|
|
65
83
|
import EditEventsTopMenu from "../../../Menus/EditEventsTopMenu/EditEventsTopMenu.vue";
|
|
84
|
+
import FindPerson from "../../../../Organisms/ComplexInputs/FindPerson/FindPerson.vue";
|
|
85
|
+
import BaseRadioGroup from "../../../../Atoms/RadioGroup/BaseRadioGroup.vue";
|
|
66
86
|
|
|
67
87
|
export default {
|
|
68
88
|
components: {
|
|
89
|
+
BaseRadioGroup,
|
|
90
|
+
FindPerson,
|
|
69
91
|
EditEventsTopMenu,
|
|
70
92
|
DatePicker,
|
|
71
93
|
FindLocation,
|
|
@@ -89,6 +111,18 @@ export default {
|
|
|
89
111
|
saveButtonLabel: {
|
|
90
112
|
type: String,
|
|
91
113
|
default: 'Save'
|
|
114
|
+
},
|
|
115
|
+
uploadImageName: {
|
|
116
|
+
type: String,
|
|
117
|
+
default: 'default-image'
|
|
118
|
+
},
|
|
119
|
+
uploadServer: {
|
|
120
|
+
type: String,
|
|
121
|
+
default: 'http://localhost/uploads/'
|
|
122
|
+
},
|
|
123
|
+
imageServer: {
|
|
124
|
+
type: String,
|
|
125
|
+
default: 'http://localhost/uploads/'
|
|
92
126
|
}
|
|
93
127
|
},
|
|
94
128
|
emits: ['tab:menu-click', 'manageEvent', 'editEvent', 'addEvent', 'image:upload'],
|
|
@@ -109,7 +143,12 @@ export default {
|
|
|
109
143
|
{id: 'Basic', label: 'Basic', color: 'primaryHighlight'},
|
|
110
144
|
{id: 'Details', label: 'Details', color: 'primaryHighlight'},
|
|
111
145
|
{id: 'Events', label: 'Events', color: 'primaryHighlight'},
|
|
112
|
-
]
|
|
146
|
+
],
|
|
147
|
+
visibilityItems: [
|
|
148
|
+
{label: 'Open', value: 'open', description: 'Viewable To Everyone'},
|
|
149
|
+
{label: 'Club', value: 'club', description: 'Viewable Only to Members of Your Club'},
|
|
150
|
+
{label: 'Private', value: 'private', description: 'Only Viewable by you'},
|
|
151
|
+
],
|
|
113
152
|
}
|
|
114
153
|
},
|
|
115
154
|
computed: {
|