Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
boco-frontend
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
idatt2106_2022_02
boco-frontend
Commits
7f85493e
Commit
7f85493e
authored
3 years ago
by
Erik Borgeteien Hansen
Browse files
Options
Downloads
Patches
Plain Diff
add modal dialog when leaving group
parent
fa3cf230
No related branches found
No related tags found
1 merge request
!136
Warning when leaving group
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/components/CommunityComponents/CommunityHamburger.vue
+1
-10
1 addition, 10 deletions
src/components/CommunityComponents/CommunityHamburger.vue
src/components/CommunityComponents/CommunityHeader.vue
+98
-68
98 additions, 68 deletions
src/components/CommunityComponents/CommunityHeader.vue
with
99 additions
and
78 deletions
src/components/CommunityComponents/CommunityHamburger.vue
+
1
−
10
View file @
7f85493e
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<li
id=
"leaveGroup"
v-if=
"!admin"
>
<li
id=
"leaveGroup"
v-if=
"!admin"
>
<div
<div
class=
"cursor-pointer block py-2 px-4 text-sm text-error-medium hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
class=
"cursor-pointer block py-2 px-4 text-sm text-error-medium hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
@
click=
"
l
eaveCommunity"
@
click=
"
this.$emit('openL
eaveCommunity
Dialog')
"
>
>
Forlat Gruppe
Forlat Gruppe
</div>
</div>
...
@@ -38,8 +38,6 @@
...
@@ -38,8 +38,6 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
LeaveCommunity
}
from
"
@/utils/apiutil
"
;
export
default
{
export
default
{
name
:
"
CommunityHamburger
"
,
name
:
"
CommunityHamburger
"
,
data
()
{
data
()
{
...
@@ -49,13 +47,6 @@ export default {
...
@@ -49,13 +47,6 @@ export default {
communityID
:
-
1
,
communityID
:
-
1
,
};
};
},
},
methods
:
{
leaveCommunity
:
async
function
()
{
this
.
id
=
this
.
$route
.
params
.
communityID
;
await
LeaveCommunity
(
this
.
id
);
this
.
$router
.
push
(
"
/
"
);
},
},
created
()
{
created
()
{
this
.
communityID
=
this
.
$route
.
params
.
communityID
;
this
.
communityID
=
this
.
$route
.
params
.
communityID
;
if
(
!
Array
.
isArray
(
this
.
$store
.
state
.
user
.
adminList
))
return
;
if
(
!
Array
.
isArray
(
this
.
$store
.
state
.
user
.
adminList
))
return
;
...
...
This diff is collapsed.
Click to expand it.
src/components/CommunityComponents/CommunityHeader.vue
+
98
−
68
View file @
7f85493e
<
template
>
<
template
>
<div
v-if=
"loading"
class=
"flex place-content-center mx-4"
>
<div>
<LoaderSpinner
/>
<CustomFooterModal
</div>
:title=
"'Er du sikker på at du vil forlate felleskapet?'"
<div
v-else
class=
"flex items-center justify-between mx-4"
>
:message=
"'Dersom felleskapet er låst er du nødt til å spørre om å bli med på nytt.'"
<router-link
:visible=
"leaveDialog"
:to=
"'/community/' + community.communityId"
@
close=
"this.leaveDialog = false"
class=
"flex-1 min-w-0"
>
>
<h2
<div
class=
"flex place-content-center min-w-6"
>
class=
"text-xl md:text-2xl text-gray-600 font-medium w-full sm:truncate"
<ColoredButton
>
class=
"m-2"
{{
community
.
name
}}
:buttonColor=
"'red'"
</h2>
@
click=
"leaveCommunity()"
<div
:text=
"'Ja'"
class=
"mt-1 flex flex-col sm:flex-row sm:flex-wrap sm:mt-0 sm:space-x-6"
/>
<ColoredButton
class=
"m-2"
:text=
"'Nei'"
@
click=
"this.leaveDialog = false"
/>
</div>
</CustomFooterModal>
<div
v-if=
"loading"
class=
"flex place-content-center mx-4"
>
<LoaderSpinner
/>
</div>
<div
v-else
class=
"flex items-center justify-between mx-4"
>
<router-link
:to=
"'/community/' + community.communityId"
class=
"flex-1 min-w-0"
>
>
<div
class=
"mt-2 flex items-center text-sm text-gray-500"
>
<h2
class=
"text-xl md:text-2xl text-gray-600 font-medium w-full sm:truncate"
>
{{
community
.
name
}}
</h2>
<div
class=
"mt-1 flex flex-col sm:flex-row sm:flex-wrap sm:mt-0 sm:space-x-6"
>
<div
class=
"mt-2 flex items-center text-sm text-gray-500"
>
<svg
class=
"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400"
xmlns=
"http://www.w3.org/2000/svg"
viewBox=
"0 0 20 20"
fill=
"currentColor"
aria-hidden=
"true"
>
<path
fill-rule=
"evenodd"
d=
"M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z"
clip-rule=
"evenodd"
/>
</svg>
{{
community
.
location
}}
</div>
</div>
</router-link>
<div>
<!-- If the user is not a member in the community, this button will show -->
<div
v-if=
"!member"
>
<ColoredButton
v-if=
"!member"
:text=
"'Bli med'"
@
click=
"joinCommunity(community.communityId)"
class=
"m-2"
/>
<CustomFooterModal
@
close=
"this.dialogOpen = false"
:visible=
"dialogOpen"
title=
"Kan ikke bli med"
message=
"Logg inn først for å bli med i en gruppe."
/>
</div>
<!-- If the user is member of the community, this hamburger menu will show -->
<div
v-if=
"member"
>
<svg
<svg
cl
ass=
"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400
"
@
cl
ick=
"toggleHamburgerMenu()
"
xmlns=
"http://www.w3.org/2000/svg"
xmlns=
"http://www.w3.org/2000/svg"
viewBox=
"0 0 20 20"
class=
"w-9 h-9 cursor-pointer"
fill=
"currentColor"
fill=
"none"
aria-hidden=
"true"
viewBox=
"0 0 24 24"
stroke=
"currentColor"
>
>
<path
<path
fill-rule=
"evenodd"
stroke-linecap=
"round"
d=
"M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z"
stroke-linejoin=
"round"
clip-rule=
"evenodd"
stroke-width=
"2"
d=
"M4 6h16M4 12h16M4 18h16"
/>
/>
</svg>
</svg>
{{
community
.
location
}}
</div>
</div>
</router-link>
<div>
<!-- If the user is not a member in the community, this button will show -->
<div
v-if=
"!member"
>
<ColoredButton
v-if=
"!member"
:text=
"'Bli med'"
@
click=
"joinCommunity(community.communityId)"
class=
"m-2"
/>
<CustomFooterModal
@
close=
"this.dialogOpen = false"
:visible=
"dialogOpen"
title=
"Kan ikke bli med"
message=
"Logg inn først for å bli med i en gruppe."
/>
</div>
<!-- If the user is member of the community, this hamburger menu will show -->
<CommunityHamburger
<div
v-if=
"member"
>
@
openLeaveCommunityDialog=
"this.leaveDialog = true"
<svg
v-if=
"hamburgerOpen"
@
click=
"toggleHamburgerMenu()"
class=
"origin-top-right absolute right-0"
xmlns=
"http://www.w3.org/2000/svg"
:community-i-d=
"community.communityId"
class=
"w-9 h-9 cursor-pointer"
:admin=
"admin"
fill=
"none"
viewBox=
"0 0 24 24"
stroke=
"currentColor"
>
<path
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-width=
"2"
d=
"M4 6h16M4 12h16M4 18h16"
/>
/>
</svg>
<!-- class="absolute" -->
</div>
<CommunityHamburger
v-if=
"hamburgerOpen"
class=
"origin-top-right absolute right-0"
:community-i-d=
"community.communityId"
:admin=
"admin"
/>
<!-- class="absolute" -->
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -88,6 +111,8 @@ import LoaderSpinner from "@/components/BaseComponents/LoaderSpinner";
...
@@ -88,6 +111,8 @@ import LoaderSpinner from "@/components/BaseComponents/LoaderSpinner";
import
CommunityService
from
"
@/services/community.service
"
;
import
CommunityService
from
"
@/services/community.service
"
;
import
CustomFooterModal
from
"
@/components/BaseComponents/CustomFooterModal
"
;
import
CustomFooterModal
from
"
@/components/BaseComponents/CustomFooterModal
"
;
import
{
parseCurrentUser
}
from
"
@/utils/token-utils
"
;
import
{
parseCurrentUser
}
from
"
@/utils/token-utils
"
;
import
{
LeaveCommunity
}
from
"
@/utils/apiutil
"
;
import
{
import
{
JoinOpenCommunity
,
JoinOpenCommunity
,
// GetIfUserAlreadyInCommunity,
// GetIfUserAlreadyInCommunity,
...
@@ -109,10 +134,11 @@ export default {
...
@@ -109,10 +134,11 @@ export default {
data
()
{
data
()
{
return
{
return
{
hamburgerOpen
:
false
,
hamburgerOpen
:
false
,
d
ialog
Open
:
false
,
leaveD
ialog
:
false
,
member
:
false
,
member
:
false
,
community
:
{},
community
:
{},
loading
:
true
,
loading
:
true
,
openDialog
:
false
,
};
};
},
},
props
:
{
props
:
{
...
@@ -122,6 +148,10 @@ export default {
...
@@ -122,6 +148,10 @@ export default {
toggleHamburgerMenu
()
{
toggleHamburgerMenu
()
{
this
.
hamburgerOpen
=
!
this
.
hamburgerOpen
;
this
.
hamburgerOpen
=
!
this
.
hamburgerOpen
;
},
},
leaveCommunity
:
async
function
()
{
await
LeaveCommunity
(
this
.
community
.
communityID
);
this
.
$router
.
push
(
"
/
"
);
},
async
load
()
{
async
load
()
{
this
.
community
=
await
CommunityService
.
getCommunity
(
this
.
community
=
await
CommunityService
.
getCommunity
(
this
.
$route
.
params
.
communityID
this
.
$route
.
params
.
communityID
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment