Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BC-8569 - Handover of Owner Role #3552

Open
wants to merge 29 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4518173
create i18n translations
muratmerdoglu-dp Feb 13, 2025
7fa9c3d
add radio element for Owner
muratmerdoglu-dp Feb 13, 2025
57960c8
add alert component in ChangeRole
muratmerdoglu-dp Feb 13, 2025
e5a9731
add handOverMode in ChangeRole dialog
muratmerdoglu-dp Feb 14, 2025
2720999
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 14, 2025
4164049
update api.ts
muratmerdoglu-dp Feb 14, 2025
72e1c8f
add changeRoomOwner method in composable
muratmerdoglu-dp Feb 17, 2025
2eee738
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 18, 2025
9b01f85
add i18n keys for the alert section
muratmerdoglu-dp Feb 18, 2025
9d201b3
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 18, 2025
43d79a8
add unit test cases for the Own option
muratmerdoglu-dp Feb 18, 2025
845051d
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 18, 2025
2dd2465
add unit test for changeRoomOwner method in composable
muratmerdoglu-dp Feb 18, 2025
ccd12a9
add unit test for onChangeOwner in page component
muratmerdoglu-dp Feb 18, 2025
dc3134a
chore: increase coverage
muratmerdoglu-dp Feb 19, 2025
4457bd4
add i18n keys for 'Übertragen'
muratmerdoglu-dp Feb 19, 2025
d53bf79
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 19, 2025
8f1cf82
add i18n key for dialog title
muratmerdoglu-dp Feb 19, 2025
f613c66
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 19, 2025
74488d6
chore: remove unknown type
muratmerdoglu-dp Feb 19, 2025
3bbef62
reset selection after ownership
muratmerdoglu-dp Feb 20, 2025
b1b9f94
fix i18n issues
muratmerdoglu-dp Feb 20, 2025
5ed204e
chore: correct a translation
muratmerdoglu-dp Feb 21, 2025
d4a410a
chore: fix translation
muratmerdoglu-dp Feb 21, 2025
b12d021
chore: change translation for changing role error
muratmerdoglu-dp Feb 21, 2025
51d2b60
use existing WarningAlert.vue component
muratmerdoglu-dp Feb 21, 2025
910f0fd
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 21, 2025
edc8ea7
Merge branch 'main' into bc-8569-handover-owner-role
muratmerdoglu-dp Feb 21, 2025
a4a260a
chore: fix some issues after review
muratmerdoglu-dp Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions src/locales/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1816,23 +1816,26 @@ export default {
"Hinzufügen von Teilnehmenden fehlgeschlagen.",
"pages.rooms.members.error.remove":
"Löschen von Teilnehmenden fehlgeschlagen.",
"pages.rooms.members.error.updateRole":
"Die Änderung der Raumberechtigung ist fehlgeschlagen.",
"pages.rooms.members.infoText":
"Füge Mitglieder zum Raum hinzu. Lehrkräfte anderer Schulen können hinzugefügt werden, wenn sie in ihrem Profil die Sichtbarkeit im zentralen Verzeichnis aktiviert haben ({0}).",
"pages.rooms.members.infoText.moreInformation": "weitere Informationen",
"pages.rooms.members.label": "Teilnehmende",
"pages.rooms.members.add": "Mitglieder hinzufügen",
"pages.rooms.members.actionMenu.ariaLabel": "Aktionsmenü für {memberName}",
"pages.rooms.members.actionMenu.ariaLabel":
"Aktionsmenü für {memberFullName}",
"pages.rooms.members.changePermission": "Raumberechtigungen ändern",
"pages.rooms.members.changePermission.ariaLabel":
"Berechtigung für {memberName} ändern",
"Berechtigung für {memberFullName} ändern",
"pages.rooms.members.manage": "Raum-Mitglieder",
"pages.rooms.members.remove.ariaLabel": "{memberName} aus Raum entfernen",
"pages.rooms.members.remove.ariaLabel": "{memberFullName} aus Raum entfernen",
"pages.rooms.members.resetSelection.ariaLabel":
"Ausgewählte Mitglieder aus der Liste zurücksetzen",
"pages.rooms.members.multipleRemove.ariaLabel":
"Mehrere Mitglieder aus dem Raum entfernen",
"pages.rooms.members.remove.confirmation":
"{memberName} wirklich aus dem Raum entfernen?",
"{memberFullName} wirklich aus dem Raum entfernen?",
"pages.rooms.members.multipleRemove.confirmation":
"Ausgewählte Mitglieder wirklich aus dem Raum entfernen?",
"pages.rooms.members.roomPermissions.admin": "Verwalten",
Expand All @@ -1843,15 +1846,30 @@ export default {
"pages.rooms.members.tableHeader.schoolRole": "Schulrolle",
"pages.rooms.members.tableHeader.actions": "Aktionen",
"pages.rooms.members.roleChange.subTitle":
"{memberName} erhält die folgenden Berechtigungen im Raum „{roomName}”:",
"{memberFullName} erhält die folgenden Berechtigungen im Raum „{roomName}”:",
"pages.rooms.members.roleChange.multipleUser.subTitle":
"Die ausgewählten Mitglieder erhalten die folgenden Berechtigungen im Raum „{roomName}”:",
"pages.rooms.members.roleChange.Roomviewer.subText":
"pages.rooms.members.roleChange.Roomviewer.label":
"Auf die Bereiche im Raum zugreifen und Inhalte ansehen",
"pages.rooms.members.roleChange.Roomeditor.subText":
"pages.rooms.members.roleChange.Roomeditor.label":
"Inhalte erstellen und bearbeiten",
"pages.rooms.members.roleChange.Roomadmin.subText":
"pages.rooms.members.roleChange.Roomadmin.label":
"Gleiche Berechtigungen wie „Bearbeiten”, zusätzlich andere Mitglieder hinzufügen, entfernen, deren Raumberechtigungen ändern sowie Raum bearbeiten",
"pages.rooms.members.roleChange.Roomowner.label":
"Gleiche Berechtigungen wie „Verwalten”, zusätzlich Raum löschen",
"pages.rooms.members.roleChange.Roomowner.label.subText":
"Achtung: Kann nur eine Person im Raum erhalten!",
"pages.rooms.members.roleChange.dialogTitle.handOver":
"Raumberechtigung „Besitzen” wirklich übertragen?",
"pages.rooms.members.roleChange.handOverBtn.text": "Übertragen",
"pages.rooms.members.handOverAlert.label":
"Diese Raumberechtigung wird an {memberFullName} übertragen.",
"pages.rooms.members.handOverAlert.label.subText":
"{currentUserFullName} verliert die Berechtigung „Besitzen” und erhält die Berechtigung „Verwalten”.",
"pages.rooms.members.handOverAlert.confirm.label":
"Bei Übertragung dieser Berechtigung an {memberFullName} verliert {currentUserFullName} das Recht, den Raum zu löschen.",
"pages.rooms.members.handOverAlert.confirm.label.subText":
"Diese Aktion kann nur von {memberFullName} rückgängig gemacht werden.",
"pages.rooms.title": "Räume",
"pages.taskCard.addElement": "Element hinzufügen",
"pages.taskCard.deleteElement.text":
Expand Down
38 changes: 28 additions & 10 deletions src/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1784,23 +1784,27 @@ export default {
"pages.rooms.members.error.load": "The participant list could not be loaded.",
"pages.rooms.members.error.add": "Adding participants failed.",
"pages.rooms.members.error.remove": "Deleting participants failed.",
"pages.rooms.members.error.updateRole":
"The change of the room permission has failed.",
"pages.rooms.members.infoText":
"Add members to the room. Teachers from other schools can be added if they have activated visibility in the central directory in their profile ({0}).",
"pages.rooms.members.infoText.moreInformation": "more information",
"pages.rooms.members.label": "Participants",
"pages.rooms.members.add": "Add members",
"pages.rooms.members.actionMenu.ariaLabel": "Action menu for {memberName}",
"pages.rooms.members.actionMenu.ariaLabel":
"Action menu for {memberFullName}",
"pages.rooms.members.changePermission": "Change permissions",
"pages.rooms.members.changePermission.ariaLabel":
"Change permissions for {memberName}",
"Change permissions for {memberFullName}",
"pages.rooms.members.manage": "Room members",
"pages.rooms.members.remove.ariaLabel": "Remove {memberName} from the room",
"pages.rooms.members.remove.ariaLabel":
"Remove {memberFullName} from the room",
"pages.rooms.members.resetSelection.ariaLabel":
"Reset selected members from the list",
"pages.rooms.members.multipleRemove.ariaLabel":
"Remove multiple members from the room",
"pages.rooms.members.remove.confirmation":
"Remove {memberName} from the room?",
"Remove {memberFullName} from the room?",
"pages.rooms.members.multipleRemove.confirmation":
"Remove selected members from the room?",
"pages.rooms.members.roomPermissions.admin": "Administer",
Expand All @@ -1811,15 +1815,29 @@ export default {
"pages.rooms.members.tableHeader.schoolRole": "School Role",
"pages.rooms.members.tableHeader.actions": "Actions",
"pages.rooms.members.roleChange.subTitle":
"{memberName} receives the following permissions in the room “{roomName}”:",
"{memberFullName} receives the following permissions in the room “{roomName}”:",
"pages.rooms.members.roleChange.multipleUser.subTitle":
"The selected members will receive the following room permissions in “{roomName}”:",
"pages.rooms.members.roleChange.Roomviewer.subText":
"Access the areas in the room and view content",
"pages.rooms.members.roleChange.Roomeditor.subText":
"Create and edit content",
"pages.rooms.members.roleChange.Roomadmin.subText":
"pages.rooms.members.roleChange.Roomviewer.label":
"Access the boards in the room and view content",
"pages.rooms.members.roleChange.Roomeditor.label": "Create and edit content",
"pages.rooms.members.roleChange.Roomadmin.label":
'Same permissions as "Edit", plus add and remove other members, change their room permissions and edit the room',
"pages.rooms.members.roleChange.Roomowner.label":
"Same permissions as “ Administer”, additionally delete room",
"pages.rooms.members.roleChange.Roomowner.label.subText":
"Attention: Only one person in the room can receive this permission!",
"pages.rooms.members.roleChange.dialogTitle.handOver":
"Room permission “Ownership” really transferred?",
"pages.rooms.members.roleChange.handOverBtn.text": "Transfer ownership",
"pages.rooms.members.handOverAlert.label":
"This room's permissions are being transferred to {memberFullName}.",
"pages.rooms.members.handOverAlert.label.subText":
"{currentUserFullName} loses the “Own” permissions and receives the “Administer” permission.",
"pages.rooms.members.handOverAlert.confirm.label":
"If this permission is transferred to {memberFullName}, {currentUserFullName} loses the right to delete the room.",
"pages.rooms.members.handOverAlert.confirm.label.subText":
"This action can only be undone by {memberFullName}.",
"pages.rooms.title": "Rooms",
"pages.taskCard.addElement": "Add element",
"pages.taskCard.deleteElement.text":
Expand Down
37 changes: 27 additions & 10 deletions src/locales/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1833,24 +1833,27 @@ export default {
"No se pudo cargar la lista de participantes.",
"pages.rooms.members.error.add": "Error al agregar participantes.",
"pages.rooms.members.error.remove": "Error al eliminar participantes.",
"pages.rooms.members.error.updateRole":
"El cambio de autorizaciones en la sala ha fallado.",
"pages.rooms.members.infoText":
"Añadir miembros a la sala. Se pueden añadir profesores de otros centros si tienen activada la visibilidad en el directorio central en su perfil ({0}).",
"pages.rooms.members.infoText.moreInformation": "más información",
"pages.rooms.members.label": "Participantes",
"pages.rooms.members.add": "Añadir miembros",
"pages.rooms.members.actionMenu.ariaLabel":
"Menú de acciones para {memberName}",
"Menú de acciones para {memberFullName}",
"pages.rooms.members.changePermission": "Cambiar permisos",
"pages.rooms.members.changePermission.ariaLabel":
"Cambiar el permiso para {memberName}",
"Cambiar el permiso para {memberFullName}",
"pages.rooms.members.manage": "Miembros de la sala",
"pages.rooms.members.remove.ariaLabel": "Eliminar {memberName} de la sala",
"pages.rooms.members.remove.ariaLabel":
"Eliminar {memberFullName} de la sala",
"pages.rooms.members.resetSelection.ariaLabel":
"Restablecer las miembros seleccionados de la lista",
"pages.rooms.members.multipleRemove.ariaLabel":
"Eliminar varios miembros de la sala",
"pages.rooms.members.remove.confirmation":
"¿Eliminar {memberName} de la sala?",
"¿Eliminar {memberFullName} de la sala?",
"pages.rooms.members.multipleRemove.confirmation":
"¿Eliminar miembros seleccionados de la sala?",
"pages.rooms.members.roles.editor": "Editor de salas",
Expand All @@ -1863,15 +1866,29 @@ export default {
"pages.rooms.members.tableHeader.schoolRole": "Rol en la escuela",
"pages.rooms.members.tableHeader.actions": "Acciones",
"pages.rooms.members.roleChange.subTitle":
"{memberName} recibe los siguientes permisos de sala en “{roomName}”:",
"{memberFullName} recibe los siguientes permisos de sala en “{roomName}”:",
"pages.rooms.members.roleChange.multipleUser.subTitle":
"Los miembros seleccionados recibirán los siguientes permisos de sala en “{roomName}”:",
"pages.rooms.members.roleChange.Roomviewer.subText":
"Accede a las áreas de la sala y visualiza el contenido",
"pages.rooms.members.roleChange.Roomeditor.subText":
"Crear y editar contenido",
"pages.rooms.members.roleChange.Roomadmin.subText":
"pages.rooms.members.roleChange.Roomviewer.label":
"Accede a los tableros de la sala y visualiza el contenido",
"pages.rooms.members.roleChange.Roomeditor.label": "Crear y editar contenido",
"pages.rooms.members.roleChange.Roomadmin.label":
'Los mismos permisos que "Editar", además de agregar y eliminar otros miembros, cambiar sus permisos de sala y editar la sala',
"pages.rooms.members.roleChange.Roomowner.label":
"Las mismas autorizaciones que «Administrar», además de eliminar la sala",
"pages.rooms.members.roleChange.dialogTitle.handOver":
"¿El permiso de habitación realmente se transfiere como “propiedad”?",
"pages.rooms.members.roleChange.Roomowner.label.subText":
"Atención: ¡Solo una persona en la sala puede recibir esto!",
"pages.rooms.members.roleChange.handOverBtn.text": "Transferir propiedad",
"pages.rooms.members.handOverAlert.label":
"Los permisos de esta sala se están transfiriendo a {memberFullName}.",
"pages.rooms.members.handOverAlert.label.subText":
"{currentUserFullName} pierde los permisos «Propietario» y recibe el permiso «Administrar».",
"pages.rooms.members.handOverAlert.confirm.label":
"Si este permiso se transfiere a {memberFullName}, {currentUserFullName} pierde el derecho a eliminar la sala.",
"pages.rooms.members.handOverAlert.confirm.label.subText":
"Esta acción sólo puede ser deshecha por {memberFullName}.",
"pages.rooms.title": "Salas",
"pages.taskCard.addElement": "Añadir artículo",
"pages.taskCard.deleteElement.text":
Expand Down
32 changes: 24 additions & 8 deletions src/locales/uk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1813,23 +1813,24 @@ export default {
"pages.rooms.members.error.load": "Не вдалося завантажити список учасників.",
"pages.rooms.members.error.add": "Не вдалося додати учасників.",
"pages.rooms.members.error.remove": "Не вдалося видалити учасників.",
"pages.rooms.members.error.updateRole": "Не вдалося змінити дозвіл кімнати.",
"pages.rooms.members.infoText":
"Додайте члени до кімнати. Вчителі з інших шкіл можуть бути додані, якщо вони активували видимість у центральному каталозі у своєму профілі ({0}).",
"pages.rooms.members.infoText.moreInformation": "більше інформації",
"pages.rooms.members.label": "Учасники",
"pages.rooms.members.add": "Додайте члени",
"pages.rooms.members.actionMenu.ariaLabel": "Меню дій для {memberName}",
"pages.rooms.members.actionMenu.ariaLabel": "Меню дій для {memberFullName}",
"pages.rooms.members.changePermission": "Змінити дозволи",
"pages.rooms.members.changePermission.ariaLabel":
"Змінити дозвіл для {memberName}",
"Змінити дозвіл для {memberFullName}",
"pages.rooms.members.manage": "Учасник кімнати",
"pages.rooms.members.remove.ariaLabel": "Видалити {memberName} з кімнати",
"pages.rooms.members.remove.ariaLabel": "Видалити {memberFullName} з кімнати",
"pages.rooms.members.resetSelection.ariaLabel":
"Скинути вибраних членів зі списку",
"pages.rooms.members.multipleRemove.ariaLabel":
"Видалити кількох членів із кімнати",
"pages.rooms.members.remove.confirmation":
"{memberName} буде видалено з цієї кімнати. Ви впевнені, що хочете видалити?",
"{memberFullName} буде видалено з цієї кімнати. Ви впевнені, що хочете видалити?",
"pages.rooms.members.multipleRemove.confirmation":
"Видалити вибраних членів із кімнати?",
"pages.rooms.members.roomPermissions.admin": "Керувати",
Expand All @@ -1840,15 +1841,30 @@ export default {
"pages.rooms.members.tableHeader.schoolRole": "Роль у школі",
"pages.rooms.members.tableHeader.actions": "Дії",
"pages.rooms.members.roleChange.subTitle":
"{memberName} надаються наступні повноваження в приміщенні “{roomName}”:",
"{memberFullName} надаються наступні повноваження в приміщенні “{roomName}”:",
"pages.rooms.members.roleChange.multipleUser.subTitle":
"Вибрані учасники отримають такі дозволи на кімнату в “{roomName}”:",
"pages.rooms.members.roleChange.Roomviewer.subText":
"pages.rooms.members.roleChange.Roomviewer.label":
"Доступ до зон кімнати та перегляд вмісту",
"pages.rooms.members.roleChange.Roomeditor.subText":
"pages.rooms.members.roleChange.Roomeditor.label":
"Створюйте та редагуйте контент",
"pages.rooms.members.roleChange.Roomadmin.subText":
"pages.rooms.members.roleChange.Roomadmin.label":
"Такі самі дозволи, як і «Редагувати», а також додавати та видаляти інших учасників, змінювати їхні дозволи для кімнати та редагувати кімнату",
"pages.rooms.members.roleChange.Roomowner.label":
"Ті самі повноваження, що й «Керування», плюс видалення кімнати",
"pages.rooms.members.roleChange.dialogTitle.handOver":
"Дозвіл на кімнату «Власність» дійсно передано?",
"pages.rooms.members.roleChange.Roomowner.label.subText":
"Увага: Тільки одна людина в кімнаті може отримати ці повноваження!",
"pages.rooms.members.roleChange.handOverBtn.text": "Передача власності",
"pages.rooms.members.handOverAlert.label":
"Дозволи цієї кімнати передаються {memberFullName}.",
"pages.rooms.members.handOverAlert.label.subText":
"{currentUserFullName} втрачає права «Власник» і отримує права «Адміністратор».",
"pages.rooms.members.handOverAlert.confirm.label":
"Якщо цей дозвіл буде передано {memberFullName}, {currentUserFullName} втратить право видаляти кімнату.",
"pages.rooms.members.handOverAlert.confirm.label.subText":
"Ця дія може бути скасована лише {memberFullName}.",
"pages.rooms.title": "Кімнати",
"pages.taskCard.addElement": "Додати елемент",
"pages.taskCard.deleteElement.text":
Expand Down
29 changes: 29 additions & 0 deletions src/modules/data/room/roomMembers/roomMembers.composable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,37 @@ export const useRoomMembers = (roomId: string) => {
}
};

const changeRoomOwner = async (userId: string) => {
try {
await roomApi.roomControllerChangeRoomOwner(roomId, { userId });
setRoomOwner(userId);
} catch {
showFailure(t("pages.rooms.members.error.updateRole"));
}
};

const setRoomOwner = async (userId: string) => {
const currentOwner = roomMembers.value.find(
(member) => member.roomRoleName === RoleName.Roomowner
);
const memberToBeOwner = roomMembers.value.find(
(member) => member.userId === userId
);
if (!currentOwner || !memberToBeOwner) return;

updateMemberRole(memberToBeOwner, RoleName.Roomowner);
updateMemberRole(currentOwner, RoleName.Roomadmin);
};

const updateMemberRole = (member: RoomMember, roleName: RoleName) => {
member.roomRoleName = roleName;
member.displayRoomRole = roomRole[roleName];
member.isSelectable = false;
};

return {
addMembers,
changeRoomOwner,
fetchMembers,
getPotentialMembers,
getSchools,
Expand Down
Loading
Loading