fix: issue with roles on profile page

This commit is contained in:
Jannat Patel
2025-07-03 19:26:07 +05:30
parent 954d0a0637
commit ed0e2e4bb5
5 changed files with 37 additions and 15 deletions

View File

@@ -80,7 +80,7 @@
v-model="activeTab"
/>
</div>
<router-view :profile="profile" />
<router-view :profile="profile" :key="profile.data?.name" />
</div>
</div>
<EditProfile

View File

@@ -45,7 +45,7 @@
</template>
<script setup>
import { FormControl, createResource, toast } from 'frappe-ui'
import { ref } from 'vue'
import { ref, watch } from 'vue'
import { convertToTitleCase } from '@/utils'
import { CircleAlert } from 'lucide-vue-next'
@@ -66,10 +66,9 @@ const roles = createResource({
url: 'lms.lms.utils.get_roles',
makeParams(values) {
return {
name: props.profile.data?.name,
name: values.member,
}
},
auto: true,
onSuccess(data) {
let roles = [
'moderator',
@@ -83,6 +82,16 @@ const roles = createResource({
},
})
watch(
() => props.profile,
(newValue) => {
roles.reload({
member: newValue.data?.name,
})
},
{ immediate: true }
)
const updateRole = createResource({
url: 'lms.lms.api.save_role',
makeParams(values) {
@@ -97,7 +106,10 @@ const updateRole = createResource({
const changeRole = (role) => {
updateRole.submit(
{
role: convertToTitleCase(role.split('_').join(' ')),
role:
role == 'lms_student'
? 'LMS Student'
: convertToTitleCase(role.split('_').join(' ')),
value: eval(role).value,
},
{