1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-14 17:18:33 +00:00

Merge branch '1642-rename-group-to-workspace-in-frontend-translations' into 'develop'

Resolve "Rename group to workspace in frontend translations."

Closes 

See merge request 
This commit is contained in:
Peter Evans 2023-03-15 13:51:26 +00:00
commit 0b3b5db99b
41 changed files with 226 additions and 213 deletions

View file

@ -0,0 +1,7 @@
{
"type": "refactor",
"message": "Renamed group to workspace in the frontend translations.",
"issue_number": 1642,
"bullet_points": [],
"created_at": "2023-03-15"
}

View file

@ -3,7 +3,7 @@
<div class="tree__action">
<a class="tree__link" @click="open">
<i class="tree__icon tree__icon--type fas fa-question-circle"></i>
{{ $t('chatwootSuportSidebarGroup.directSupport') }}
{{ $t('chatwootSupportSidebarWorkspace.directSupport') }}
</a>
</div>
</li>

View file

@ -13,7 +13,7 @@
{{
$t('teamsTable.title', {
teamCount: teamCount,
groupName: group.name,
workspaceName: group.name,
})
}}
</template>

View file

@ -9,8 +9,8 @@
"rbac": "RBAC",
"sso": "SSO",
"deactivated": "Available in enterprise version",
"licenseDescription": "Viewers are free with Baserow Enterprise. If a user has any other role, in any group then they will use a paid seat automatically.",
"overflowWarning": "You have too many non-viewer users and have used up all of your paid seats. Change users to become viewers on each groups members page."
"licenseDescription": "Viewers are free with Baserow Enterprise. If a user has any other role, in any workspace then they will use a paid seat automatically.",
"overflowWarning": "You have too many non-viewer users and have used up all of your paid seats. Change users to become viewers on each workspaces members page."
},
"trashType": {
"team": "team"
@ -18,12 +18,12 @@
"createTeamModal": {
"title": "Create team",
"invalidNameTitle": "Please use a different name",
"invalidNameMessage": "This team name is already in use in the specified group."
"invalidNameMessage": "This team name is already in use in the specified workspace."
},
"updateTeamModal": {
"title": "Update {teamName}",
"invalidNameTitle": "Please use a different name",
"invalidNameMessage": "This team name is already in use in the specified group."
"invalidNameMessage": "This team name is already in use in the specified workspace."
},
"manageTeamModals": {
"subheading": "Teams allow you to give or restrict permissions in bulk to multiple people."
@ -42,7 +42,7 @@
"remove": "Delete team"
},
"teamsTable": {
"title": "{teamCount} teams in {groupName}",
"title": "{teamCount} teams in {workspaceName}",
"createNew": "Create team",
"nameColumn": "Name",
"createdColumn": "Created on",
@ -63,14 +63,14 @@
"auditLog": {
"title": "Audit log",
"filterUserTitle": "User",
"filterGroupTitle": "Group",
"filterWorkspaceTitle": "Workspace",
"filterActionTypeTitle": "Event Type",
"filterFromTimestampTitle": "From Date",
"filterFromTimestamp": "From Date",
"filterToTimestampTitle": "To Date",
"filterToTimestamp": "To Date",
"user": "User",
"group": "Group",
"workspace": "Workspace",
"actionType": "Event Type",
"description": "Description",
"timestamp": "Timestamp",
@ -79,7 +79,7 @@
"exportModalTitle": "Export to CSV",
"clearFilters": "Clear",
"allUsers": "All Users",
"allGroups": "All Groups",
"allWorkspaces": "All Workspaces",
"allActionTypes": "All Event Types"
},
"auditLogExportModal": {
@ -147,7 +147,7 @@
"roles": {
"admin": {
"name": "Admin",
"description": "Can fully configure and edit groups and applications."
"description": "Can fully configure and edit workspaces and applications."
},
"builder": {
"name": "Builder",
@ -155,7 +155,7 @@
},
"editor": {
"name": "Editor",
"description": "Can fully edit data but not configure applications or groups."
"description": "Can fully edit data but not configure applications or workspaces."
},
"commenter": {
"name": "Commenter",
@ -171,7 +171,7 @@
},
"noRoleLowPriority": {
"name": "No role",
"description": "Get default group role from their teams."
"description": "Get default workspace role from their teams."
}
},
"memberRolesModal": {
@ -189,8 +189,8 @@
"everyoneHasAccess": "Everyone at {name} workspace can access this database.",
"onlyYouHaveAccess": "Only you can access this database.",
"warningTitle": "Other users might inherit access!",
"warningMessage": "Other users might inherit access via their respective roles on the parent group.",
"headerTooltip": "Database roles will override group roles."
"warningMessage": "Other users might inherit access via their respective roles on the parent workspace.",
"headerTooltip": "Database roles will override workspace roles."
},
"table": {
"title": "{name} table",
@ -198,8 +198,8 @@
"everyoneHasAccess": "Everyone at {name} workspace can access this table.",
"onlyYouHaveAccess": "Only you can access this table.",
"warningTitle": "Other users might inherit access!",
"warningMessage": "Other users might inherit access via their respective roles on the parent database or group.",
"headerTooltip": "Table roles will override group and database roles."
"warningMessage": "Other users might inherit access via their respective roles on the parent database or workspace.",
"headerTooltip": "Table roles will override workspace and database roles."
}
},
"memberRolesShareToggle": {
@ -266,7 +266,7 @@
"sso": "Single Sign On",
"rbac": "Role-based access control"
},
"chatwootSuportSidebarGroup": {
"chatwootSupportSidebarWorkspace": {
"directSupport": "Direct support"
},
"userTeamsField": {

View file

@ -35,13 +35,13 @@
@input="filterUser"
></PaginatedDropdown>
</FilterWrapper>
<FilterWrapper :name="$t('auditLog.filterGroupTitle')">
<FilterWrapper :name="$t('auditLog.filterWorkspaceTitle')">
<PaginatedDropdown
ref="groupFilter"
:value="filters.group_id"
:fetch-page="fetchGroups"
:empty-item-display-name="$t('auditLog.allGroups')"
:not-selected-text="$t('auditLog.allGroups')"
:empty-item-display-name="$t('auditLog.allWorkspaces')"
:not-selected-text="$t('auditLog.allWorkspaces')"
@input="filterGroup"
></PaginatedDropdown>
</FilterWrapper>
@ -122,7 +122,7 @@ export default {
),
new CrudTableColumn(
'group',
() => this.$t('auditLog.group'),
() => this.$t('auditLog.workspace'),
SimpleField,
true,
false,

View file

@ -68,7 +68,7 @@ export class GroupsAdminType extends PremiumAdminType {
getName() {
const { i18n } = this.app
return i18n.t('premium.adminType.groups')
return i18n.t('premium.adminType.workspaces')
}
getRouteName() {

View file

@ -6,7 +6,7 @@
@row-context="onRowContext"
>
<template #title>
{{ $t('groupsAdminTable.allGroups') }}
{{ $t('workspacesAdminTable.allWorkspaces') }}
</template>
<template #menus="slotProps">
<EditGroupContext
@ -40,63 +40,63 @@ export default {
this.columns = [
new CrudTableColumn(
'name',
() => this.$t('groupsAdminTable.name'),
() => this.$t('workspacesAdminTable.name'),
GroupNameField,
true,
true
),
new CrudTableColumn(
'users',
() => this.$t('groupsAdminTable.members'),
() => this.$t('workspacesAdminTable.members'),
GroupUsersField
),
new CrudTableColumn(
'application_count',
() => this.$t('groupsAdminTable.applications'),
() => this.$t('workspacesAdminTable.applications'),
SimpleField,
true
),
new CrudTableColumn(
'free_users',
() => this.$t('groupsAdminTable.freeUsers'),
() => this.$t('workspacesAdminTable.freeUsers'),
SimpleField
),
new CrudTableColumn(
'seats_taken',
() => this.$t('groupsAdminTable.seatsTaken'),
() => this.$t('workspacesAdminTable.seatsTaken'),
SimpleField,
false,
false,
false,
{},
'',
this.$t('groupsAdminTable.usageHelpText')
this.$t('workspacesAdminTable.usageHelpText')
),
new CrudTableColumn(
'row_count',
() => this.$t('groupsAdminTable.rowCount'),
() => this.$t('workspacesAdminTable.rowCount'),
SimpleField,
true,
false,
false,
{},
'',
this.$t('groupsAdminTable.usageHelpText')
this.$t('workspacesAdminTable.usageHelpText')
),
new CrudTableColumn(
'storage_usage',
() => this.$t('groupsAdminTable.storageUsage'),
() => this.$t('workspacesAdminTable.storageUsage'),
SimpleField,
true,
false,
false,
{},
'',
this.$t('groupsAdminTable.usageHelpText')
this.$t('workspacesAdminTable.usageHelpText')
),
new CrudTableColumn(
'created_on',
() => this.$t('groupsAdminTable.created'),
() => this.$t('workspacesAdminTable.created'),
LocalDateField,
true
),

View file

@ -6,7 +6,7 @@
<li>
<a @click.prevent="showDeleteModal">
<i class="context__menu-icon fas fa-fw fa-trash-alt"></i>
{{ $t('editGroupContext.delete') }}
{{ $t('editWorkspaceContext.delete') }}
</a>
</li>
</ul>

View file

@ -1,7 +1,7 @@
<template>
<Modal>
<h2 class="box__title">
{{ $t('deleteGroupModal.title', group) }}
{{ $t('deleteWorkspaceModal.title', group) }}
</h2>
<Error :error="error"></Error>
<div>
@ -11,7 +11,7 @@
</template>
</i18n>
<p>
{{ $t('deleteGroupModal.comment') }}
{{ $t('deleteWorkspaceModal.comment') }}
</p>
<div class="actions">
<div class="align-right">
@ -22,7 +22,7 @@
:title="group.name"
@click.prevent="deleteGroup()"
>
{{ $t('deleteGroupModal.delete', group) }}
{{ $t('deleteWorkspaceModal.delete', group) }}
</a>
</div>
</div>

View file

@ -55,7 +55,7 @@ export default {
),
new CrudTableColumn(
'groups',
() => this.$t('usersAdminTable.groups'),
() => this.$t('usersAdminTable.workspaces'),
UserGroupsField
),
new CrudTableColumn(

View file

@ -8,7 +8,7 @@
<template #icon="{ record }">
<i
v-if="record.permissions === 'ADMIN'"
v-tooltip="$t('premium.user.isGroupAdmin')"
v-tooltip="$t('premium.user.isWorkspaceAdmin')"
class="user-admin-group__icon fas fa-users-cog"
></i>
</template>

View file

@ -2,14 +2,14 @@
"premium": {
"user": {
"isStaff": "Is staff",
"isGroupAdmin": "Is group admin",
"isWorkspaceAdmin": "Is workspace admin",
"active": "Active",
"deactivated": "Deactivated"
},
"adminType": {
"dashboard": "Dashboard",
"users": "Users",
"groups": "Groups",
"workspaces": "Workspaces",
"licenses": "Licenses"
},
"viewType": {
@ -63,8 +63,8 @@
"registerLicenseForm": {
"licenseKey": "License key"
},
"groupsAdminTable": {
"allGroups": "All groups",
"workspacesAdminTable": {
"allWorkspaces": "All workspaces",
"id": "ID",
"name": "Name",
"members": "Members",
@ -74,16 +74,16 @@
"freeUsers": "Free users",
"seatsTaken": "Seats taken",
"storageUsage": "Storage Used (MB)",
"usageHelpText": "Calculated nightly when the track group usage setting is enabled"
"usageHelpText": "Calculated nightly when the track workspace usage setting is enabled"
},
"editGroupContext": {
"editWorkspaceContext": {
"delete": "Permanently delete"
},
"deleteGroupModal": {
"deleteWorkspaceModal": {
"title": "Delete {name}",
"confirmation": "Are you sure you want to delete the group: {name}?",
"comment": "The group will be permanently deleted, including the related applications. It is not possible to undo this action.",
"delete": "Delete group {name}"
"confirmation": "Are you sure you want to delete the workspace: {name}?",
"comment": "The workspace will be permanently deleted, including the related applications. It is not possible to undo this action.",
"delete": "Delete workspace {name}"
},
"activeUsers": {
"newUsers": "New users",
@ -93,7 +93,7 @@
"allUsers": "All users",
"username": "Username",
"name": "Name",
"groups": "Groups",
"workspaces": "Workspaces",
"lastLogin": "Last login",
"dateJoined": "Signed up",
"active": "Active"
@ -118,7 +118,7 @@
"warning": {
"changeEmail": "Changing this users email address means when they sign in they must use the new email address to do so. This must be communicated with that user.",
"inactiveUser": "When a user is marked as inactive they are prevented from signing in.",
"userStaff": "Making the user staff gives them admin access to all users, all groups and the ability to revoke your own staff permissions."
"userStaff": "Making the user staff gives them admin access to all users, all workspaces and the ability to revoke your own staff permissions."
},
"error": {
"invalidName": "Please enter a valid full name, it must be longer than 2 letters and less than 150.",
@ -131,7 +131,7 @@
"deleteUserModal": {
"title": "Delete {username}",
"confirmation": "Are you sure you want to delete the user: {name}?",
"comment1": "The user account will be deleted, however the groups that user is a member of will continue existing. The users group will not be deleted, even if this user is the last user in the group. Deleting the last user in a group prevents anyone being able to access that group.",
"comment1": "The user account will be deleted, however the workspaces that user is a member of will continue existing. The users workspace will not be deleted, even if this user is the last user in the workspace. Deleting the last user in a workspace prevents anyone being able to access that workspace.",
"comment2": "After deleting a user it is possible for a new user to sign up again using the deleted users email address. To ensure they cannot sign up again instead deactivate the user and do not delete them.",
"delete": "Delete user {username}"
},
@ -161,7 +161,7 @@
"selectOption": "Select option"
},
"kanbanViewStakedBy": {
"title": "Group field",
"title": "Workspace field",
"chooseField": "Which single select field should the cards be stacked by?"
},
"kanbanViewStack": {
@ -173,7 +173,7 @@
"title": "Dashboard",
"totals": "Totals",
"totalUsers": "Total users",
"totalGroups": "Total groups",
"totalWorkspaces": "Total workspaces",
"totalApplications": "Total applications",
"newUsers": "New users",
"newUsers24h": "New users last 24 hours",

View file

@ -24,7 +24,7 @@
</div>
<div class="admin-dashboard__numbers">
<div class="admin-dashboard__numbers-name">
{{ $t('dashboard.totalGroups') }}
{{ $t('dashboard.totalWorkspaces') }}
</div>
<div class="admin-dashboard__numbers-value">
{{ data.total_groups }}

View file

@ -103,7 +103,7 @@ describe('Sidebar Premium Features Snapshot tests', () => {
'sidebar.admin',
'premium.adminType.dashboard',
'premium.adminType.users',
'premium.adminType.groups',
'premium.adminType.workspaces',
])
)
})
@ -126,7 +126,7 @@ describe('Sidebar Premium Features Snapshot tests', () => {
openedPage,
'premium.adminType.dashboard',
'premium.adminType.users',
'premium.adminType.groups',
'premium.adminType.workspaces',
])
)
})

View file

@ -69,7 +69,7 @@
},
"permission": {
"admin": "Admin",
"adminDescription": "Can fully configure and edit groups and applications.",
"adminDescription": "Can fully configure and edit workspaces and applications.",
"member": "Member",
"memberDescription": "Can fully configure and edit applications."
},
@ -169,7 +169,7 @@
}
},
"trashType": {
"group": "group",
"workspace": "workspace",
"application": "application",
"table": "table",
"field": "field",
@ -208,10 +208,10 @@
"tooManyRequestsDescription": "You are sending too many requests to the server. Please wait a moment.",
"notCompletedTitle": "Action not completed.",
"notCompletedDescription": "The action couldn't be completed because an unknown error has occurred.",
"userNotInGroupTitle": "Action not allowed.",
"userNotInGroupDescription": "The action couldn't be completed because you aren't a member of the related group.",
"invalidGroupPermissionsTitle": "Action not allowed.",
"invalidGroupPermissionsDescription": "The action couldn't be completed because you don't have the right permissions to the related group.",
"userNotInWorkspaceTitle": "Action not allowed.",
"userNotInWorkspaceDescription": "The action couldn't be completed because you aren't a member of the related workspace.",
"invalidWorkspacePermissionsTitle": "Action not allowed.",
"invalidWorkspacePermissionsDescription": "The action couldn't be completed because you don't have the right permissions to the related workspace.",
"tableDoesNotExistTitle": "Table doesn't exist.",
"tableDoesNotExistDescription": "The action couldn't be completed because the related table doesn't exist anymore.",
"rowDoesNotExistTitle": "Row doesn't exist.",
@ -234,8 +234,8 @@
"cannotRestoreParentBeforeChildDescription": "You cannot restore this item because it depends on a deleted item. Please restore the parent item first.",
"cannotRestoreAsRelatedTableTrashedTitle": "Please restore the related tables first.",
"cannotRestoreAsRelatedTableTrashedDescription": "You cannot restore this field because it depends on other tables which are still trashed. Please restore the other related tables first.",
"groupUserIsLastAdminTitle": "Can't leave the group",
"groupUserIsLastAdminDescription": "It's not possible to leave the group because you're the last admin or because other admin's accounts are pending deletion. Please delete the group or give another user admin permissions.",
"workspaceUserIsLastAdminTitle": "Can't leave the workspace",
"workspaceUserIsLastAdminDescription": "It's not possible to leave the workspace because you're the last admin or because other admin's accounts are pending deletion. Please delete the workspace or give another user admin permissions.",
"errorMaxJobCountExceededTitle": "Couldn't start action.",
"errorMaxJobCountExceededDescription": "You cannot start any more of these actions as you have others still running in the background. Please try again once the previous actions complete.",
"failedToLockFieldDueToConflictTitle": "Can't change field",
@ -245,7 +245,7 @@
"failedToUndoRedoDueToConflictTitle": "Can't undo/redo",
"failedToUndoRedoDueToConflictDescription": "Another operation is currently running blocking your undo or redo, please wait until it finishes before trying again.",
"maximumSnapshotsReachedTitle": "Snapshots limit reached",
"maximumSnapshotsReachedDescription": "The maximum number of snapshots in a group has been reached.",
"maximumSnapshotsReachedDescription": "The maximum number of snapshots in a workspace has been reached.",
"snapshotBeingCreatedTitle": "A snapshot is already being created",
"snapshotBeingCreatedDescription": "It is not possible to create multiple snapshots at the same time.",
"snapshotBeingRestoredTitle": "The snapshot is being restored",
@ -261,8 +261,8 @@
"maxLocksPerTransactionExceededTitle": "PostgreSQL issue detected",
"maxLocksPerTransactionExceededDescription": "Baserow attempted to permanently delete the trashed items, but exceeded the available locks specified in `max_locks_per_transaction`.",
"disabledPasswordProviderMessage": "Please use another authentication provider.",
"lastAdminTitle": "Can't remove last group admin",
"lastAdminMessage": "A group has to have at least one admin."
"lastAdminTitle": "Can't remove last workspace admin",
"lastAdminMessage": "A workspace has to have at least one admin."
},
"importerType": {
"csv": "Import a CSV file",

View file

@ -11,8 +11,8 @@
<template #invitedBy>
<strong>{{ invitation.invited_by }}</strong>
</template>
<template #group>
<strong>{{ invitation.group }}</strong>
<template #workspace>
<strong>{{ invitation.workspace }}</strong>
</template>
</i18n>
</Alert>

View file

@ -11,8 +11,8 @@
<template #invitedBy>
<strong>{{ invitation.invited_by }}</strong>
</template>
<template #group>
<strong>{{ invitation.group }}</strong>
<template #workspace>
<strong>{{ invitation.workspace }}</strong>
</template>
</i18n>
</Alert>

View file

@ -75,7 +75,7 @@
</div>
<div class="dashboard__group-item-name">
{{ $t('dashboardGroup.createApplication') }}
{{ $t('dashboardWorkspace.createApplication') }}
</div>
</a>
<CreateApplicationContext

View file

@ -3,12 +3,12 @@
<div class="placeholder__icon">
<i class="fas fa-layer-group"></i>
</div>
<h1 class="placeholder__title">{{ $t('dashboard.noGroupTitle') }}</h1>
<h1 class="placeholder__title">{{ $t('dashboard.noWorkspaceTitle') }}</h1>
<p v-if="$hasPermission('create_workspace')" class="placeholder__content">
{{ $t('dashboard.noGroupText') }}
{{ $t('dashboard.noWorkspaceText') }}
</p>
<p v-else class="placeholder__content">
{{ $t('dashboard.noGroupTextWithoutCreatePermission') }}
{{ $t('dashboard.noWorkspaceTextWithoutCreatePermission') }}
</p>
<div class="placeholder__action">
<a
@ -17,7 +17,7 @@
@click="$emit('create-clicked')"
>
<i class="fas fa-plus"></i>
{{ $t('dashboard.createGroup') }}
{{ $t('dashboard.createWorkspace') }}
</a>
</div>
</div>

View file

@ -2,7 +2,7 @@
<div>
<ul class="dashboard__sidebar-group">
<li class="dashboard__sidebar-title">
{{ $t('dashboardSidebar.groups') }}
{{ $t('dashboardSidebar.workspaces') }}
</li>
<li v-for="group in groups" :key="group.id">
<a
@ -20,7 +20,7 @@
@click="$emit('create-group-clicked')"
>
<i class="fas fa-fw fa-plus"></i>
{{ $t('dashboard.createGroup') }}
{{ $t('dashboard.createWorkspace') }}
</a>
</li>
</ul>

View file

@ -1,6 +1,6 @@
<template>
<Modal>
<h2 class="box__title">{{ $t('createGroupModal.createNew') }}</h2>
<h2 class="box__title">{{ $t('createWorkspaceModal.createNew') }}</h2>
<Error :error="error"></Error>
<GroupForm
ref="groupForm"
@ -14,7 +14,7 @@
:class="{ 'button--loading': loading }"
:disabled="loading"
>
{{ $t('createGroupModal.add') }}
{{ $t('createWorkspaceModal.add') }}
</button>
</div>
</div>
@ -44,7 +44,7 @@ export default {
const excludeNames = this.$store.getters['group/getAll'].map(
(group) => group.name
)
const baseName = this.$t('createGroupModal.defaultName')
const baseName = this.$t('createWorkspaceModal.defaultName')
return getNextAvailableNameInSequence(baseName, excludeNames)
},
async submitted(values) {
@ -62,8 +62,8 @@ export default {
this.handleError(error, 'group')
this.handleError(error, 'group', {
PERMISSION_DENIED: new ResponseErrorMessage(
this.$t('createGroupModal.permissionDeniedTitle'),
this.$t('createGroupModal.permissionDeniedBody')
this.$t('createWorkspaceModal.permissionDeniedTitle'),
this.$t('createWorkspaceModal.permissionDeniedBody')
),
})
}

View file

@ -9,7 +9,7 @@
<li v-if="$hasPermission('workspace.update', group, group.id)">
<a @click="$emit('rename')">
<i class="context__menu-icon fas fa-fw fa-pen"></i>
{{ $t('groupContext.renameGroup') }}
{{ $t('workspaceContext.renameWorkspace') }}
</a>
</li>
<li v-if="$hasPermission('invitation.read', group, group.id)">
@ -25,19 +25,19 @@
"
>
<i class="context__menu-icon fas fa-fw fa-users"></i>
{{ $t('groupContext.members') }}
{{ $t('workspaceContext.members') }}
</a>
</li>
<li v-if="$hasPermission('workspace.read_trash', group, group.id)">
<a @click="showGroupTrashModal">
<i class="context__menu-icon fas fa-fw fa-recycle"></i>
{{ $t('groupContext.viewTrash') }}
{{ $t('workspaceContext.viewTrash') }}
</a>
</li>
<li>
<a @click="$refs.leaveGroupModal.show()">
<i class="context__menu-icon fas fa-fw fa-door-open"></i>
{{ $t('groupContext.leaveGroup') }}
{{ $t('workspaceContext.leaveWorkspace') }}
</a>
</li>
<li v-if="$hasPermission('workspace.delete', group, group.id)">
@ -46,7 +46,7 @@
@click="deleteGroup"
>
<i class="context__menu-icon fas fa-fw fa-trash"></i>
{{ $t('groupContext.deleteGroup') }}
{{ $t('workspaceContext.deleteWorkspace') }}
</a>
</li>
</ul>

View file

@ -3,7 +3,7 @@
<FormElement :error="fieldHasErrors('name')" class="control">
<label class="control__label">
<i class="fas fa-font"></i>
{{ $t('groupForm.nameLabel') }}
{{ $t('workspaceForm.nameLabel') }}
</label>
<div class="control__elements">
<input

View file

@ -3,12 +3,12 @@
simple
type="primary"
icon="exclamation"
:title="$t('groupInvitation.title')"
:title="$t('workspaceInvitation.title')"
>
{{
$t('groupInvitation.message', {
$t('workspaceInvitation.message', {
by: invitation.invited_by,
group: invitation.group,
workspace: invitation.workspace,
})
}}
<div v-if="invitation.message !== ''" class="quote">
@ -20,14 +20,14 @@
:class="{ 'button--loading': rejectLoading }"
:disabled="rejectLoading || acceptLoading"
@click="!rejectLoading && !acceptLoading && reject(invitation)"
>{{ $t('groupInvitation.reject') }}</a
>{{ $t('workspaceInvitation.reject') }}</a
>
<a
class="button button--success dashboard__alert-button"
:class="{ 'button--loading': acceptLoading }"
:disabled="rejectLoading || acceptLoading"
@click="!rejectLoading && !acceptLoading && accept(invitation)"
>{{ $t('groupInvitation.accept') }}</a
>{{ $t('workspaceInvitation.accept') }}</a
>
</Alert>
</template>

View file

@ -1,6 +1,6 @@
<template>
<form @submit.prevent="submit">
<h3>{{ $t('groupInviteForm.invitationFormTitle') }}</h3>
<h3>{{ $t('workspaceInviteForm.invitationFormTitle') }}</h3>
<div class="row">
<div class="col col-7">
<FormElement :error="fieldHasErrors('email')" class="control">
@ -14,7 +14,7 @@
@blur="$v.values.email.$touch()"
/>
<div v-if="fieldHasErrors('email')" class="error">
{{ $t('groupInviteForm.errorInvalidEmail') }}
{{ $t('workspaceInviteForm.errorInvalidEmail') }}
</div>
</div>
</FormElement>
@ -57,11 +57,13 @@
v-model="values.message"
type="text"
class="input"
:placeholder="$t('groupInviteForm.optionalMessagePlaceholder')"
:placeholder="
$t('workspaceInviteForm.optionalMessagePlaceholder')
"
/>
<div v-if="fieldHasErrors('message')" class="error">
{{
$t('groupInviteForm.errorTooLongMessage', {
$t('workspaceInviteForm.errorTooLongMessage', {
amount: messageMaxLength,
})
}}

View file

@ -72,10 +72,10 @@ export default {
this.handleError(error, 'group', {
ERROR_GROUP_USER_ALREADY_EXISTS: new ResponseErrorMessage(
this.$t(
'membersSettings.membersInviteModal.errors.userAlreadyInGroup.title'
'membersSettings.membersInviteModal.errors.userAlreadyInWorkspace.title'
),
this.$t(
'membersSettings.membersInviteModal.errors.userAlreadyInGroup.text'
'membersSettings.membersInviteModal.errors.userAlreadyInWorkspace.text'
)
),
})

View file

@ -6,7 +6,7 @@
v-model="query"
type="text"
class="select__search-input"
:placeholder="$t('groupsContext.search')"
:placeholder="$t('workspacesContext.search')"
/>
</div>
<div v-if="isLoading" class="context--loading">
@ -29,7 +29,7 @@
v-if="!isLoading && isLoaded && groups.length == 0"
class="context__description"
>
{{ $t('groupsContext.noResults') }}
{{ $t('workspacesContext.noResults') }}
</div>
<div class="select__footer">
<a
@ -38,7 +38,7 @@
@click="$refs.createGroupModal.show()"
>
<i class="fas fa-plus"></i>
{{ $t('groupsContext.createGroup') }}
{{ $t('workspacesContext.createWorkspace') }}
</a>
</div>
<CreateGroupModal ref="createGroupModal" @created="hide"></CreateGroupModal>

View file

@ -1,12 +1,12 @@
<template>
<Modal>
<h2 class="box__title">
{{ $t('leaveGroupModal.title', { group: group.name }) }}
{{ $t('leaveWorkspaceModal.title', { workspace: group.name }) }}
</h2>
<Error :error="error"></Error>
<div>
<p>
{{ $t('leaveGroupModal.message', { group: group.name }) }}
{{ $t('leaveWorkspaceModal.message', { workspace: group.name }) }}
</p>
<div class="actions">
<div class="align-right">
@ -16,7 +16,7 @@
:disabled="loading"
@click="leaveGroup()"
>
{{ $t('leaveGroupModal.leave') }}
{{ $t('leaveWorkspaceModal.leave') }}
</button>
</div>
</div>

View file

@ -1,15 +1,15 @@
<template>
<Modal>
<h2 class="box__title">
{{ $t('removeFromGroupModal.title') }}
{{ $t('removeFromWorkspaceModal.title') }}
</h2>
<Error :error="error"></Error>
<div>
<p>
{{
$t('removeFromGroupModal.confirmation', {
$t('removeFromWorkspaceModal.confirmation', {
name: member.name,
group_name: group.name,
workspaceName: group.name,
})
}}
</p>
@ -21,7 +21,7 @@
:disabled="loading"
@click.prevent="remove()"
>
{{ $t('removeFromGroupModal.remove') }}
{{ $t('removeFromWorkspaceModal.remove') }}
</a>
</div>
</div>

View file

@ -18,9 +18,9 @@
v-else-if="$fetchState.error"
type="error"
icon="exclamation"
:title="$t('deleteAccountSettings.groupLoadingError')"
:title="$t('deleteAccountSettings.workspaceLoadingError')"
>
{{ $t('deleteAccountSettings.groupLoadingErrorDescription') }}
{{ $t('deleteAccountSettings.workspaceLoadingErrorDescription') }}
</Alert>
<div v-else-if="orphanGroups.length" class="delete-section">
@ -28,10 +28,10 @@
<div class="delete-section__label-icon">
<i class="fas fa-exclamation"></i>
</div>
{{ $t('deleteAccountSettings.orphanGroups') }}
{{ $t('deleteAccountSettings.orphanWorkspaces') }}
</div>
<p class="delete-section__description">
{{ $t('deleteAccountSettings.groupNoticeDescription') }}
{{ $t('deleteAccountSettings.workspaceNoticeDescription') }}
</p>
<ul class="delete-section__list">
<li v-for="group in orphanGroups" :key="group.id">
@ -40,7 +40,7 @@
<small>
{{
$tc(
'deleteAccountSettings.orphanGroupMemberCount',
'deleteAccountSettings.orphanWorkspaceMemberCount',
groupMembers[group.id].length,
{
count: groupMembers[group.id].length,

View file

@ -13,7 +13,7 @@
{{
$t('membersSettings.invitesTable.title', {
invitesAmount,
groupName: group.name,
workspaceName: group.name,
})
}}
</template>

View file

@ -12,7 +12,7 @@
{{
$t('membersSettings.membersTable.title', {
userAmount: group.users.length || 0,
groupName: group.name,
workspaceName: group.name,
})
}}
</template>

View file

@ -272,7 +272,7 @@
</template>
<template v-else-if="!hasSelectedGroup && !isCollapsed">
<li v-if="groups.length === 0" class="tree_item margin-top-2">
<p>{{ $t('sidebar.errorNoGroup') }}</p>
<p>{{ $t('sidebar.errorNoWorkspace') }}</p>
</li>
<li
v-for="(group, index) in groups"
@ -299,7 +299,7 @@
@click="$refs.createGroupModal.show()"
>
<i class="fas fa-plus"></i>
{{ $t('sidebar.createGroup') }}
{{ $t('sidebar.createWorkspace') }}
</a>
</li>
<CreateGroupModal ref="createGroupModal"></CreateGroupModal>

View file

@ -21,7 +21,9 @@
class="trash-sidebar__group-link"
@click="emitIfNotAlreadySelectedTrashGroup(group)"
>
{{ group.name || $t('trashSidebar.unnamedGroup', { id: group.id }) }}
{{
group.name || $t('trashSidebar.unnamedWorkspace', { id: group.id })
}}
</a>
<ul class="trash-sidebar__applications">
<li

View file

@ -22,11 +22,11 @@
"installedTitle": "Template installed"
},
"sidebar": {
"createGroup": "Create group",
"createWorkspace": "Create workspace",
"inviteOthers": "Invite others",
"members": "Members",
"logoff": "Logoff",
"errorNoGroup": "You dont have any groups.",
"errorNoWorkspace": "You dont have any workspaces.",
"admin": "Admin",
"dashboard": "Dashboard",
"trash": "Trash",
@ -61,10 +61,9 @@
"deleteAccountSettings": {
"title": "Delete account",
"description": "You can schedule the deletion of your account by entering your current password and clicking the button. Your account will be permanently deleted after {days} days. In the meantime, if you log in again, your account deletion will be cancelled.",
"groupNotice": "Orphan groups will be deleted",
"groupNoticeDescription": "When your account is permanently deleted, all groups and associated data for which you are the last active user with Admin permissions will also be deleted. The groups shown below are the ones that will be deleted because you are the only admin. To prevent them being deleted you must first give another user admin before deleting your account.",
"orphanGroups": "Will also be permanently deleted after the grace time",
"orphanGroupMemberCount": "shared with nobody|shared with one user|shared with {count} users",
"workspaceNoticeDescription": "When your account is permanently deleted, all workspaces and associated data for which you are the last active user with Admin permissions will also be deleted. The workspaces shown below are the ones that will be deleted because you are the only admin. To prevent them being deleted you must first give another user admin before deleting your account.",
"orphanWorkspaces": "Will also be permanently deleted after the grace time",
"orphanWorkspaceMemberCount": "shared with nobody|shared with one user|shared with {count} users",
"password": "Password",
"passwordConfirm": "Repeat password",
"repeatPasswordMatchError": "This field must match the first password field.",
@ -75,8 +74,8 @@
"errorUserIsLastAdminMessage": "Could not delete your account because your are the last administrator of this Baserow instance.",
"accountDeletedSuccessTitle": "Account deletion scheduled",
"accountDeletedSuccessMessage": "Your account has been scheduled to be deleted.",
"groupLoadingError": "Groups checking has failed",
"groupLoadingErrorDescription": "Checking the groups to be deleted failed, please refresh the page."
"workspaceLoadingError": "Workspaces checking has failed",
"workspaceLoadingErrorDescription": "Checking the workspaces to be deleted failed, please refresh the page."
},
"error": {
"alreadyExistsTitle": "User already exists",
@ -99,57 +98,48 @@
"passwordRepeat": "Repeat password"
},
"invitationTitle": "Invitation",
"invitationMessage": "{invitedBy} has invited you to join {group}.",
"groupForm": {
"invitationMessage": "{invitedBy} has invited you to join {workspace}.",
"workspaceForm": {
"nameLabel": "Name"
},
"leaveGroupModal": {
"title": "Leave {group}",
"message": "Are you sure you want to leave the group {group}? You won't be able to access the related applications anymore and if you want to regain access, one of the admins must invite you again. If you leave the group, it will not be deleted. All the other members will still have access to it. It is not possible to leave a group if you're the last admin because that will leave it unmaintained.",
"leave": "Leave group"
"leaveWorkspaceModal": {
"title": "Leave {workspace}",
"message": "Are you sure you want to leave the workspace {workspace}? You won't be able to access the related applications anymore and if you want to regain access, one of the admins must invite you again. If you leave the workspace, it will not be deleted. All the other members will still have access to it. It is not possible to leave a workspace if you're the last admin because that will leave it unmaintained.",
"leave": "Leave workspace"
},
"dashboardGroup": {
"dashboardWorkspace": {
"createApplication": "Create new"
},
"groupInvitation": {
"workspaceInvitation": {
"title": "Invitation",
"message": "{by} has invited you to join {group}.",
"message": "{by} has invited you to join {workspace}.",
"reject": "Reject",
"accept": "Accept"
},
"groupMemberModal": {
"membersModalTitle": "{group} members",
"userDescription": "{user} - joined {since} ago",
"invitationDescription": "invited {since} ago",
"sendInvite": "Send invite",
"userAlreadyInGroupTitle": "User is already in the group.",
"userDescriptionPendingDeletion": "{user} - pending deletion",
"userAlreadyInGroupText": "It is not possible to send an invitation when the user is already a member of the group."
},
"groupInviteForm": {
"workspaceInviteForm": {
"invitationFormTitle": "Invite by email",
"optionalMessagePlaceholder": "Optional message",
"errorInvalidEmail": "Please enter a valid e-mail address.",
"errorTooLongMessage": "Messages are limited to {amount} characters."
},
"groupsContext": {
"search": "Search groups",
"workspacesContext": {
"search": "Search workspaces",
"noResults": "No results found",
"createGroup": "Create group"
"createWorkspace": "Create workspace"
},
"groupContext": {
"renameGroup": "Rename group",
"workspaceContext": {
"renameWorkspace": "Rename workspace",
"members": "Members",
"viewTrash": "View trash",
"leaveGroup": "Leave group",
"deleteGroup": "Delete group"
"leaveWorkspace": "Leave workspace",
"deleteWorkspace": "Delete workspace"
},
"createGroupModal": {
"createNew": "Create new group",
"defaultName": "Untitled Group",
"add": "Add group",
"createWorkspaceModal": {
"createNew": "Create new workspace",
"defaultName": "Untitled Workspace",
"add": "Add workspace",
"permissionDeniedTitle": "Permission denied",
"permissionDeniedBody": "You do not have the required permission to create a new group."
"permissionDeniedBody": "You do not have the required permission to create a new workspace."
},
"templateCategories": {
"search": "Search templates",
@ -160,7 +150,7 @@
},
"trashSidebar": {
"title": "Trash",
"unnamedGroup": "Unnamed group {id}"
"unnamedWorkspace": "Unnamed workspace {id}"
},
"trashContents": {
"message": "Restore deleted items from the past {duration}",
@ -186,9 +176,9 @@
"unnamed": "Unnamed {type} {id}"
},
"trashModal": {
"emptyTitle": "No groups found",
"emptyMessage": "You aren't a member of any group. Applications like databases belong to a group, so in order to create them you need to create a group.",
"emptyMessageWithoutCreatePermission": "You aren't a member of any group. Applications like databases belong to a group, so in order to create them you will need to be invited to a group by an administrator first."
"emptyTitle": "No workspaces found",
"emptyMessage": "You aren't a member of any workspace. Applications like databases belong to a workspace, so in order to create them you need to create a workspace.",
"emptyMessageWithoutCreatePermission": "You aren't a member of any workspace. Applications like databases belong to a workspace, so in order to create them you will need to be invited to a workspace by an administrator first."
},
"uploadViaURLUserFileUpload": {
"title": "Upload from a URL",
@ -277,10 +267,10 @@
"alertText": "If you find Baserow useful then starring or sharing us is greatly appreciated. By sharing Baserow you are helping us to improve the product and to make it more useful for you.",
"tweetContent": "Check out @baserow an open source no-code database tool and Airtable alternative!",
"redditTitle": "'Baserow - An open source no-code database",
"noGroupTitle": "No groups found",
"noGroupText": "You arent a member of any group. Applications like databases belong to a group, so in order to create them you need to create a group.",
"noGroupTextWithoutCreatePermission": "You arent a member of any group. Applications like databases belong to a group, so in order to create them you will need to be invited to a group by an administrator first.",
"createGroup": "Create group",
"noWorkspaceTitle": "No workspaces found",
"noWorkspaceText": "You arent a member of any workspace. Applications like databases belong to a workspace, so in order to create them you need to create a workspace.",
"noWorkspaceTextWithoutCreatePermission": "You arent a member of any workspace. Applications like databases belong to a workspace, so in order to create them you will need to be invited to a workspace by an administrator first.",
"createWorkspace": "Create workspace",
"becomeGithubSponsor": "Become a GitHub sponsor",
"starOnGitlab": "Star us on GitLab",
"shareOnTwitter": "Tweet about Baserow",
@ -289,7 +279,7 @@
"shareOnLinkedIn": "Share on LinkedIn"
},
"dashboardSidebar": {
"groups": "Groups",
"workspaces": "Workspaces",
"links": "Links",
"knowledgeBase": "Knowledge base",
"tutorials": "Tutorials",
@ -353,13 +343,13 @@
"settingAllowResetPasswordWarning": "Please note that you could lock yourself out of the system and that access can't be restored if you forget your password.",
"settingAllowNewAccountsName": "Allow creating new accounts",
"settingAllowNewAccountsDescription": "By default, any user visiting your Baserow domain can sign up for a new account.",
"settingAllowSignupsViaGroupInvitationsName": "Allow signups via group invitations",
"settingAllowSignupsViaGroupInvitationDescription": "Even if the creation of new accounts is disabled, this option permits directly invited users to still create an account.",
"settingAllowNonStaffCreateGroupOperation": "Allow everyone to create new groups",
"settingAllowNonStaffCreateGroupOperationDescription": "By default, everyone can create new groups. Disable this to only allow staff to create new groups.",
"settingAllowNonStaffCreateGroupOperationWarning": "New users will have a group automatically created for them where they are an Admin.",
"settingTrackGroupUsage": "Track group usage",
"settingTrackGroupUsageDescription": "Enables a nightly job that counts row and file usage per group, displayed on the premium group admin page.",
"settingAllowSignupsViaWorkspaceInvitationsName": "Allow signups via workspace invitations",
"settingAllowSignupsViaWorkspaceInvitationDescription": "Even if the creation of new accounts is disabled, this option permits directly invited users to still create an account.",
"settingAllowNonStaffCreateWorkspaceOperation": "Allow everyone to create new workspaces",
"settingAllowNonStaffCreateWorkspaceOperationDescription": "By default, everyone can create new workspaces. Disable this to only allow staff to create new workspaces.",
"settingAllowNonStaffCreateWorkspaceOperationWarning": "New users will have a workspace automatically created for them where they are an Admin.",
"settingTrackWorkspaceUsage": "Track workspace usage",
"settingTrackWorkspaceUsageDescription": "Enables a nightly job that counts row and file usage per workspace, displayed on the premium workspace admin page.",
"userDeletionGraceDelay": "User deletion",
"settingUserDeletionGraceDelay": "Grace delay",
"settingUserDeletionGraceDelayDescription": "This is the number of days without a login after which an account scheduled for deletion is permanently deleted.",
@ -456,23 +446,23 @@
"membersTabTitle": "Members",
"invitesTabTitle": "Invites",
"membersTable": {
"title": "{userAmount} Members in {groupName}",
"title": "{userAmount} Members in {workspaceName}",
"inviteMember": "Invite member",
"columns": {
"name": "Name",
"email": "Email",
"role": "Default role",
"highestRole": "Highest Role",
"highestRoleHelpText": "The highest role this user assigned to them directly or from a team, on anything in this group",
"highestRoleHelpText": "The highest role this user assigned to them directly or from a team, on anything in this workspace",
"teams": "Teams"
},
"actions": {
"copyEmail": "Copy email",
"remove": "Remove from group"
"remove": "Remove from workspace"
}
},
"invitesTable": {
"title": "{invitesAmount} Pending invites in {groupName}",
"title": "{invitesAmount} Pending invites in {workspaceName}",
"columns": {
"email": "Email",
"message": "Message",
@ -484,13 +474,13 @@
}
},
"membersInviteModal": {
"title": "Invite group members",
"title": "Invite workspace members",
"submit": "Send invite",
"helpIconText": "The selected role will be the users default role in this group.",
"helpIconText": "The selected role will be the users default role in this workspace.",
"errors": {
"userAlreadyInGroup": {
"title": "User is already in the group.",
"text": "It is not possible to send an invitation when the user is already a member of the group."
"userAlreadyInWorkspace": {
"title": "User is already in the workspace.",
"text": "It is not possible to send an invitation when the user is already a member of the workspace."
}
}
}
@ -504,9 +494,9 @@
"deselectAll": "Deselect all",
"selectAll": "Select all"
},
"removeFromGroupModal": {
"title": "Confirm removal from group",
"confirmation": "Are you sure you want to remove {name} from {group_name}? This action cannot be undone.",
"removeFromWorkspaceModal": {
"title": "Confirm removal from workspace",
"confirmation": "Are you sure you want to remove {name} from {workspaceName}? This action cannot be undone.",
"remove": "Remove"
},
"editRoleContext": {
@ -515,4 +505,4 @@
"highestPaidRoleField": {
"billable": "Billable"
}
}
}

View file

@ -51,11 +51,15 @@
<div v-if="!settings.allow_new_signups" class="admin-settings__item">
<div class="admin-settings__label">
<div class="admin-settings__name">
{{ $t('settings.settingAllowSignupsViaGroupInvitationsName') }}
{{
$t('settings.settingAllowSignupsViaWorkspaceInvitationsName')
}}
</div>
<div class="admin-settings__description">
{{
$t('settings.settingAllowSignupsViaGroupInvitationDescription')
$t(
'settings.settingAllowSignupsViaWorkspaceInvitationDescription'
)
}}
</div>
</div>
@ -94,12 +98,12 @@
<div class="admin-settings__item">
<div class="admin-settings__label">
<div class="admin-settings__name">
{{ $t('settings.settingAllowNonStaffCreateGroupOperation') }}
{{ $t('settings.settingAllowNonStaffCreateWorkspaceOperation') }}
</div>
<div class="admin-settings__description">
{{
$t(
'settings.settingAllowNonStaffCreateGroupOperationDescription'
'settings.settingAllowNonStaffCreateWorkspaceOperationDescription'
)
}}
</div>
@ -113,7 +117,9 @@
>
<div v-show="settings.allow_global_group_creation" class="warning">
{{
$t('settings.settingAllowNonStaffCreateGroupOperationWarning')
$t(
'settings.settingAllowNonStaffCreateWorkspaceOperationWarning'
)
}}
</div>
</div>
@ -155,10 +161,10 @@
<div class="admin-settings__item">
<div class="admin-settings__label">
<div class="admin-settings__name">
{{ $t('settings.settingTrackGroupUsage') }}
{{ $t('settings.settingTrackWorkspaceUsage') }}
</div>
<div class="admin-settings__description">
{{ $t('settings.settingTrackGroupUsageDescription') }}
{{ $t('settings.settingTrackWorkspaceUsageDescription') }}
</div>
</div>
<div class="admin-settings__control">

View file

@ -36,7 +36,7 @@
@click="$refs.createGroupModal.show()"
>
<i class="fas fa-plus"></i>
{{ $t('dashboard.createGroup') }}
{{ $t('dashboard.createWorkspace') }}
</a>
</div>
</template>

View file

@ -20,12 +20,12 @@ export class ClientErrorMap {
// Declare the default error messages.
this.errorMap = {
ERROR_USER_NOT_IN_GROUP: new ResponseErrorMessage(
app.i18n.t('clientHandler.userNotInGroupTitle'),
app.i18n.t('clientHandler.userNotInGroupDescription')
app.i18n.t('clientHandler.userNotInWorkspaceTitle'),
app.i18n.t('clientHandler.userNotInWorkspaceDescription')
),
ERROR_USER_INVALID_GROUP_PERMISSIONS: new ResponseErrorMessage(
app.i18n.t('clientHandler.invalidGroupPermissionsTitle'),
app.i18n.t('clientHandler.invalidGroupPermissionsDescription')
app.i18n.t('clientHandler.invalidWorkspacePermissionsTitle'),
app.i18n.t('clientHandler.invalidWorkspacePermissionsDescription')
),
// @TODO move these errors to the module.
ERROR_TABLE_DOES_NOT_EXIST: new ResponseErrorMessage(
@ -75,8 +75,8 @@ export class ClientErrorMap {
)
),
ERROR_GROUP_USER_IS_LAST_ADMIN: new ResponseErrorMessage(
app.i18n.t('clientHandler.groupUserIsLastAdminTitle'),
app.i18n.t('clientHandler.groupUserIsLastAdminDescription')
app.i18n.t('clientHandler.workspaceUserIsLastAdminTitle'),
app.i18n.t('clientHandler.workspaceUserIsLastAdminDescription')
),
ERROR_MAX_JOB_COUNT_EXCEEDED: new ResponseErrorMessage(
app.i18n.t('clientHandler.errorMaxJobCountExceededTitle'),

View file

@ -17,7 +17,9 @@
</div>
</FormElement>
<FormElement :error="fieldHasErrors('group')" class="control">
<label class="control__label">{{ $t('apiTokenForm.groupLabel') }}</label>
<label class="control__label">{{
$t('apiTokenForm.workspaceLabel')
}}</label>
<Dropdown
v-model="values.group"
class="col-4"

View file

@ -96,7 +96,7 @@
},
"apiTokenForm": {
"nameLabel": "Name",
"groupLabel": "Group"
"workspaceLabel": "Workspace"
},
"apiDocsSelectDatabase": {
"needOneDatabase": "You need to have at least one database to view the API documentation."
@ -695,7 +695,7 @@
"snapshotsModal": {
"title": "snapshots",
"description": "Snapshots are a full copy of your database of the moment when they were created. A duplication of that data will be created when restoring. Snapshots are automatically deleted after one year.",
"descriptionLimits": "You can have a maximum of {n} snapshots per group. | You can have a maximum of {n} snapshot per group. | You can have a maximum of {n} snapshots per group.",
"descriptionLimits": "You can have a maximum of {n} snapshots per workspace. | You can have a maximum of {n} snapshot per workspace. | You can have a maximum of {n} snapshots per workspace.",
"createLabel": "Create a new snapshot",
"create": "Create snapshot",
"snapshotRestoredErrorTitle": "Error occurred",
@ -758,4 +758,4 @@
"errorEmptyFileNameTitle": "Invalid file name",
"errorEmptyFileNameMessage": "You can't set an empty name for a file."
}
}
}

View file

@ -123,8 +123,10 @@ describe('test error handling', () => {
const message = error.handler.getMessage('name', {
matchesSomeOtherError: new ResponseErrorMessage('title', 'message'),
})
expect(message.title).toBe('clientHandler.userNotInGroupTitle')
expect(message.message).toBe('clientHandler.userNotInGroupDescription')
expect(message.title).toBe('clientHandler.userNotInWorkspaceTitle')
expect(message.message).toBe(
'clientHandler.userNotInWorkspaceDescription'
)
}
}
)
@ -146,8 +148,10 @@ describe('test error handling', () => {
const message = error.handler.getMessage('name', {
matchesSomeOtherError: new ResponseErrorMessage('title', 'message'),
})
expect(message.title).toBe('clientHandler.userNotInGroupTitle')
expect(message.message).toBe('clientHandler.userNotInGroupDescription')
expect(message.title).toBe('clientHandler.userNotInWorkspaceTitle')
expect(message.message).toBe(
'clientHandler.userNotInWorkspaceDescription'
)
}
}
)