diff --git a/frontend/src/pages/ProfileRoles.vue b/frontend/src/pages/ProfileRoles.vue
index 6ecf394a..85430388 100644
--- a/frontend/src/pages/ProfileRoles.vue
+++ b/frontend/src/pages/ProfileRoles.vue
@@ -20,7 +20,7 @@
__('Can browse courses, enroll in batches, and view content.')
"
v-model="lms_student"
- @change="changeRole('lms_student')"
+ @update:modelValue="saveRole('lms_student')"
/>
@@ -101,38 +101,18 @@ watch(
{ immediate: true }
)
-const updateRole = createResource({
- url: 'lms.lms.api.save_role',
- makeParams(values) {
- return {
- user: props.profile.data?.name,
- role: values.role,
- value: values.value,
- }
- },
-})
-
-// todo: use save_role for all roles to ensure consistent behavior and error handling
-const changeRole = (role) => {
+const saveRole = async (role) => {
const roleName =
role == 'lms_student'
? 'LMS Student'
: convertToTitleCase(role.split('_').join(' '))
const value = eval(role).value
- updateRole.submit(
- {
- role: roleName,
- value: value,
- },
- {
- async onSuccess() {
- if (role === 'batch_evaluator') {
- await syncEvaluatorRecord(value)
- }
- toast.success(__('Role updated successfully'))
- },
- }
- )
+ await call('lms.lms.api.save_role', {
+ user: props.profile.data?.name,
+ role: roleName,
+ value: value,
+ })
+ toast.success(__('Role updated successfully'))
}