feat: Rebrand circles to teams in the frontend
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
40bd712eb3
commit
45b7dcadcf
|
@ -1 +1 @@
|
|||
<svg height="16" viewBox="0 0 21.33 21.33" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M10.67 1.33a9.34 9.34 0 100 18.68 9.34 9.34 0 000-18.68zM6.93 15.8a2.33 2.33 0 110-4.67 2.33 2.33 0 010 4.67zm1.4-8.87a2.33 2.33 0 114.67 0 2.33 2.33 0 01-4.67 0zm6.07 8.87a2.33 2.33 0 110-4.67 2.33 2.33 0 010 4.67z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z" /></svg>
|
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 655 B |
|
@ -22,7 +22,7 @@
|
|||
|
||||
<template>
|
||||
<AppContent v-if="!circle">
|
||||
<EmptyContent :name="t('contacts', 'Please select a circle')">
|
||||
<EmptyContent :name="t('contacts', 'Please select a team')">
|
||||
<template #icon>
|
||||
<IconCircles :size="20" />
|
||||
</template>
|
||||
|
@ -30,7 +30,7 @@
|
|||
</AppContent>
|
||||
|
||||
<AppContent v-else-if="loading">
|
||||
<EmptyContent class="empty-content" :name="t('contacts', 'Loading circle …')">
|
||||
<EmptyContent class="empty-content" :name="t('contacts', 'Loading team…')">
|
||||
<template #icon>
|
||||
<IconLoading :size="20" />
|
||||
</template>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<!-- not a member -->
|
||||
<template v-if="!circle.isMember">
|
||||
<!-- Pending request validation -->
|
||||
<EmptyContent v-if="circle.isPendingMember" :name="t('contacts', 'Your request to join this circle is pending approval')">
|
||||
<EmptyContent v-if="circle.isPendingMember" :name="t('contacts', 'Your request to join this team is pending approval')">
|
||||
<template #icon>
|
||||
<IconLoading :size="20" />
|
||||
</template>
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<!-- leave circle -->
|
||||
<ActionButton v-if="circle.canLeave"
|
||||
@click="confirmLeaveCircle">
|
||||
{{ t('contacts', 'Leave circle') }}
|
||||
{{ t('contacts', 'Leave team') }}
|
||||
<ExitToApp slot="icon"
|
||||
:size="16"
|
||||
decorative />
|
||||
|
@ -79,7 +79,7 @@
|
|||
<template #icon>
|
||||
<IconDelete :size="20" />
|
||||
</template>
|
||||
{{ t('contacts', 'Delete circle') }}
|
||||
{{ t('contacts', 'Delete team') }}
|
||||
</ActionButton>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -132,13 +132,13 @@
|
|||
|
||||
<!-- New circle button caption and modal -->
|
||||
<AppNavigationCaption id="newcircle"
|
||||
:name="t('contacts', 'Circles')">
|
||||
:name="t('contacts', 'Teams')">
|
||||
<template #actions>
|
||||
<NcActionButton @click="toggleNewCircleModal">
|
||||
<template #icon>
|
||||
<IconAdd :size="20" />
|
||||
</template>
|
||||
{{ t('contacts', 'Create a new circle') }}
|
||||
{{ t('contacts', 'Create a new team') }}
|
||||
</NcActionButton>
|
||||
</template>
|
||||
</AppNavigationCaption>
|
||||
|
@ -390,8 +390,8 @@ export default {
|
|||
},
|
||||
collapseCirclesTitle() {
|
||||
return this.collapsedCircles
|
||||
? t('contacts', 'Show all circles')
|
||||
: t('contacts', 'Collapse circles')
|
||||
? t('contacts', 'Show all teams')
|
||||
: t('contacts', 'Collapse teams')
|
||||
},
|
||||
},
|
||||
|
||||
|
@ -437,13 +437,13 @@ export default {
|
|||
this.isNewCircleModalOpen = true
|
||||
},
|
||||
async createNewCircle(circleName, isPersonal, isLocal) {
|
||||
this.logger.debug('Creating new circle', { circleName })
|
||||
this.logger.debug('Creating new team', { circleName })
|
||||
|
||||
this.createCircleLoading = true
|
||||
|
||||
// Check if already exists
|
||||
if (this.circles.find(circle => circle.name === circleName)) {
|
||||
this.createCircleError = t('contacts', 'This circle already exists')
|
||||
this.createCircleError = t('contacts', 'This team already exists')
|
||||
return
|
||||
}
|
||||
this.createCircleError = null
|
||||
|
@ -460,7 +460,7 @@ export default {
|
|||
},
|
||||
})
|
||||
} catch (error) {
|
||||
showError(t('contacts', 'An error happened during the creation of the circle'))
|
||||
showError(t('contacts', 'An error happened during the creation of the team'))
|
||||
} finally {
|
||||
this.createCircleLoading = false
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<template #title>
|
||||
<input v-model="circle.displayName"
|
||||
:readonly="!circle.isOwner"
|
||||
:placeholder="t('contacts', 'Circle name')"
|
||||
:placeholder="t('contacts', 'Team name')"
|
||||
type="text"
|
||||
autocomplete="off"
|
||||
autocorrect="off"
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
<!-- org, title -->
|
||||
<template v-if="!circle.isOwner" #subtitle>
|
||||
{{ t('contacts', 'Circle owned by {owner}', { owner: circle.owner.displayName}) }}
|
||||
{{ t('contacts', 'Team owned by {owner}', { owner: circle.owner.displayName}) }}
|
||||
</template>
|
||||
</DetailsHeader>
|
||||
|
||||
|
@ -105,7 +105,7 @@
|
|||
<Logout slot="icon"
|
||||
:size="16"
|
||||
decorative />
|
||||
{{ t('contacts', 'Leave circle') }}
|
||||
{{ t('contacts', 'Leave team') }}
|
||||
</Button>
|
||||
|
||||
<!-- delete circle -->
|
||||
|
@ -116,7 +116,7 @@
|
|||
<template #icon>
|
||||
<IconDelete :size="20" />
|
||||
</template>
|
||||
{{ t('contacts', 'Delete circle') }}
|
||||
{{ t('contacts', 'Delete team') }}
|
||||
</Button>
|
||||
</section>
|
||||
</AppContentDetails>
|
||||
|
@ -173,9 +173,9 @@ export default {
|
|||
computed: {
|
||||
descriptionPlaceholder() {
|
||||
if (this.circle.description.trim() === '') {
|
||||
return t('contacts', 'There is no description for this circle')
|
||||
return t('contacts', 'There is no description for this team')
|
||||
}
|
||||
return t('contacts', 'Enter a description for the circle')
|
||||
return t('contacts', 'Enter a description for the team')
|
||||
},
|
||||
|
||||
isEmptyDescription() {
|
||||
|
@ -211,7 +211,7 @@ export default {
|
|||
try {
|
||||
await editCircle(this.circle.id, CircleEdit.Description, description)
|
||||
} catch (error) {
|
||||
console.error('Unable to edit circle description', description, error)
|
||||
console.error('Unable to edit team description', description, error)
|
||||
showError(t('contacts', 'An error happened during description sync'))
|
||||
} finally {
|
||||
this.loadingDescription = false
|
||||
|
@ -226,7 +226,7 @@ export default {
|
|||
try {
|
||||
await editCircle(this.circle.id, CircleEdit.Name, name)
|
||||
} catch (error) {
|
||||
console.error('Unable to edit circle name', name, error)
|
||||
console.error('Unable to edit name', name, error)
|
||||
showError(t('contacts', 'An error happened during name sync'))
|
||||
} finally {
|
||||
this.loadingName = false
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
:disabled="loading.length > 0"
|
||||
wrapper-element="li"
|
||||
@update:checked="changePasswordProtection">
|
||||
{{ t('contacts', 'Enforce password protection on files shared to this circle') }}
|
||||
{{ t('contacts', 'Enforce password protection on files shared to this team') }}
|
||||
</CheckboxRadioSwitch>
|
||||
|
||||
<CheckboxRadioSwitch v-if="enforcePasswordProtection"
|
||||
|
@ -42,7 +42,7 @@
|
|||
:disabled="loading.length > 0"
|
||||
wrapper-element="li"
|
||||
@update:checked="changeUseUniquePassword">
|
||||
{{ t('contacts', 'Use a unique password for all shares to this circle') }}
|
||||
{{ t('contacts', 'Use a unique password for all shares to this team') }}
|
||||
</CheckboxRadioSwitch>
|
||||
|
||||
<li class="unique-password">
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<div class="entity-picker__new">
|
||||
<input ref="input"
|
||||
v-model="circleName"
|
||||
:placeholder="t('contacts', 'New circle name')"
|
||||
:placeholder="t('contacts', 'New team name')"
|
||||
class="entity-picker__new-input"
|
||||
type="text"
|
||||
@keypress.enter="onSubmit">
|
||||
|
@ -42,10 +42,10 @@
|
|||
<template v-if="false">
|
||||
<CheckboxRadioSwitch :checked.sync="isPersonal"
|
||||
:disabled="loading !== false">
|
||||
{{ t('contacts', 'Personal circle') }}
|
||||
{{ t('contacts', 'Personal team') }}
|
||||
</CheckboxRadioSwitch>
|
||||
<p>
|
||||
{{ t('contacts', 'This circle will only be visible to you. Other members will not be able to see or use it.') }}
|
||||
{{ t('contacts', 'This team will only be visible to you. Other members will not be able to see or use it.') }}
|
||||
</p>
|
||||
</template>
|
||||
|
||||
|
@ -53,10 +53,10 @@
|
|||
<template v-if="isGlobalScale">
|
||||
<CheckboxRadioSwitch :checked.sync="isLocal"
|
||||
:disabled="loading !== false">
|
||||
{{ t('contacts', 'Local circle') }}
|
||||
{{ t('contacts', 'Local team') }}
|
||||
</CheckboxRadioSwitch>
|
||||
<p>
|
||||
{{ t('contacts', 'This circle will not be shared with the other instances of the global scale') }}
|
||||
{{ t('contacts', 'This team will not be shared with the other instances of the global scale') }}
|
||||
</p>
|
||||
</template>
|
||||
</div>
|
||||
|
@ -70,7 +70,7 @@
|
|||
<button :disabled="isEmptyName || loading"
|
||||
class="navigation__button-right primary"
|
||||
@click="onSubmit">
|
||||
{{ t('contacts', 'Create circle') }}
|
||||
{{ t('contacts', 'Create team') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</EmptyContent>
|
||||
</template>
|
||||
<template v-else-if="!circle.isMember">
|
||||
<EmptyContent class="empty-content" :name="t('contacts', 'The list of members is only visible to members of this circle')">
|
||||
<EmptyContent class="empty-content" :name="t('contacts', 'The list of members is only visible to members of this team')">
|
||||
<template #icon>
|
||||
<IconContact :size="20" />
|
||||
</template>
|
||||
|
@ -60,7 +60,7 @@
|
|||
<template #icon>
|
||||
<IconInfo :size="20" />
|
||||
</template>
|
||||
{{ t('contacts', 'Show circle details') }}
|
||||
{{ t('contacts', 'Show team details') }}
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
|
@ -294,7 +294,7 @@ export default {
|
|||
|
||||
this.resetPicker()
|
||||
} catch (error) {
|
||||
showError(t('contacts', 'There was an issue adding members to the circle'))
|
||||
showError(t('contacts', 'There was an issue adding members to the team'))
|
||||
console.error('There was an issue adding members to the circle', this.pickerCircle, error)
|
||||
} finally {
|
||||
this.pickerLoading = false
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
|
||||
<!-- Leave or delete member from circle -->
|
||||
<ActionButton v-if="isCurrentUser && !circle.isOwner" @click="deleteMember">
|
||||
{{ t('contacts', 'Leave circle') }}
|
||||
{{ t('contacts', 'Leave team') }}
|
||||
<ExitToApp slot="icon"
|
||||
:size="16"
|
||||
decorative />
|
||||
|
|
|
@ -64,7 +64,7 @@ export default {
|
|||
if (this.circle.requireJoinAccept) {
|
||||
return t('contacts', 'Request to join')
|
||||
}
|
||||
return t('contacts', 'Join circle')
|
||||
return t('contacts', 'Join team')
|
||||
},
|
||||
},
|
||||
|
||||
|
@ -74,7 +74,7 @@ export default {
|
|||
t('contacts', 'You are about to leave {circle}.\nAre you sure?', {
|
||||
circle: this.circle.displayName,
|
||||
}),
|
||||
t('contacts', 'Please confirm circle leave'),
|
||||
t('contacts', 'Please confirm team leave'),
|
||||
OC.dialogs.YES_NO_BUTTONS,
|
||||
this.leaveCircle,
|
||||
true,
|
||||
|
@ -99,7 +99,7 @@ export default {
|
|||
this.circle.initiator = null
|
||||
} catch (error) {
|
||||
console.error('Could not leave the circle', member, error)
|
||||
showError(t('contacts', 'Could not leave the circle {displayName}', this.circle))
|
||||
showError(t('contacts', 'Could not leave the team {displayName}', this.circle))
|
||||
} finally {
|
||||
this.loadingAction = false
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ export default {
|
|||
// Append new member
|
||||
member.circle.addMember(member)
|
||||
} catch (error) {
|
||||
showError(t('contacts', 'Unable to join the circle'))
|
||||
showError(t('contacts', 'Unable to join the team'))
|
||||
console.error('Unable to join the circle', error)
|
||||
} finally {
|
||||
this.loadingJoin = false
|
||||
|
@ -131,7 +131,7 @@ export default {
|
|||
t('contacts', 'You are about to delete {circle}.\nAre you sure?', {
|
||||
circle: this.circle.displayName,
|
||||
}),
|
||||
t('contacts', 'Please confirm circle deletion'),
|
||||
t('contacts', 'Please confirm team deletion'),
|
||||
OC.dialogs.YES_NO_BUTTONS,
|
||||
this.deleteCircle,
|
||||
true,
|
||||
|
@ -148,7 +148,7 @@ export default {
|
|||
try {
|
||||
this.$store.dispatch('deleteCircle', this.circle.id)
|
||||
} catch (error) {
|
||||
showError(t('contacts', 'Unable to delete the circle'))
|
||||
showError(t('contacts', 'Unable to delete the team'))
|
||||
} finally {
|
||||
this.loadingAction = false
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ const MEMBER_TYPE_MAIL: MemberType = 4
|
|||
const MEMBER_TYPE_CONTACT: MemberType = 8
|
||||
const MEMBER_TYPE_CIRCLE: MemberType = 16
|
||||
|
||||
export const CIRCLE_DESC = t('contacts', 'Circles are groups of people that you can create yourself and with whom you can share data. They can be made up of other accounts or groups of accounts of the Nextcloud instance, but also of contacts from your address book or even external people by simply entering their e-mail addresses.')
|
||||
export const CIRCLE_DESC = t('contacts', 'Teams are groups of people that you can create yourself and with whom you can share data. They can be made up of other accounts or groups of accounts of the Nextcloud instance, but also of contacts from your address book or even external people by simply entering their e-mail addresses.')
|
||||
|
||||
// Circles config flags
|
||||
/* eslint-disable no-tabs */
|
||||
|
@ -90,7 +90,7 @@ const CIRCLE_CONFIG_FEDERATED: CircleConfig = 32768 // Federated
|
|||
|
||||
// Existing members types
|
||||
export const CIRCLES_MEMBER_TYPES = {
|
||||
[MEMBER_TYPE_CIRCLE]: t('contacts', 'Circle'),
|
||||
[MEMBER_TYPE_CIRCLE]: t('contacts', 'Team'),
|
||||
[MEMBER_TYPE_USER]: t('contacts', 'User'),
|
||||
[MEMBER_TYPE_GROUP]: t('contacts', 'Group'),
|
||||
[MEMBER_TYPE_MAIL]: t('contacts', 'Email'),
|
||||
|
@ -121,10 +121,10 @@ export const PUBLIC_CIRCLE_CONFIG = {
|
|||
[CIRCLE_CONFIG_VISIBLE]: t('contacts', 'Visible to everyone'),
|
||||
},
|
||||
|
||||
[t('contacts', 'Circle membership')]: {
|
||||
[t('contacts', 'Team membership')]: {
|
||||
// TODO: implement backend
|
||||
// [CIRCLE_CONFIG_CIRCLE_INVITE]: t('contacts', 'Circle must confirm when invited in another circle'),
|
||||
[CIRCLE_CONFIG_ROOT]: t('contacts', 'Prevent circle from being a member of another circle'),
|
||||
// [CIRCLE_CONFIG_CIRCLE_INVITE]: t('contacts', 'Team must confirm when invited in another circle'),
|
||||
[CIRCLE_CONFIG_ROOT]: t('contacts', 'Prevent teams from being a member of another team'),
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ export const CIRCLES_MEMBER_GROUPING = [
|
|||
// },
|
||||
{
|
||||
id: `picker-${Type.SHARE_TYPE_CIRCLE}`,
|
||||
label: t('contacts', 'Circles'),
|
||||
label: t('contacts', 'Teams'),
|
||||
share: Type.SHARE_TYPE_CIRCLE,
|
||||
type: MEMBER_TYPE_CIRCLE,
|
||||
},
|
||||
|
@ -171,7 +171,7 @@ export const CIRCLES_MEMBER_GROUPING = [
|
|||
// TODO: implement SHARE_TYPE_CONTACT
|
||||
{
|
||||
id: 'picker-contact',
|
||||
label: t('contacts', 'Contacts'),
|
||||
label: t('contacts', 'Teams'),
|
||||
share: Type.SHARE_TYPE_EMAIL,
|
||||
type: MEMBER_TYPE_CONTACT,
|
||||
},
|
||||
|
|
|
@ -140,7 +140,7 @@ const actions = {
|
|||
})
|
||||
|
||||
if (failure) {
|
||||
showError(t('contacts', 'An error has occurred in circle(s). Check the console for more details.'))
|
||||
showError(t('contacts', 'An error has occurred in team(s). Check the console for more details.'))
|
||||
}
|
||||
|
||||
return circles
|
||||
|
@ -200,7 +200,7 @@ const actions = {
|
|||
return circle
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
showError(t('contacts', 'Unable to create circle {circleName}', { circleName }))
|
||||
showError(t('contacts', 'Unable to create team {circleName}', { circleName }))
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -218,7 +218,7 @@ const actions = {
|
|||
logger.debug('Deleted circle', { circleId })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
showError(t('contacts', 'Unable to delete circle {circleId}', circleId))
|
||||
showError(t('contacts', 'Unable to delete team {circleId}', circleId))
|
||||
}
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue