+
{{ __('Company Details') }}
@@ -158,7 +158,7 @@ import { computed, onMounted, reactive, inject } from 'vue'
import { FileText, X } from 'lucide-vue-next'
import { sessionStore } from '@/stores/session'
import { useRouter } from 'vue-router'
-import { getFileSize, validateFile } from '@/utils'
+import { escapeHTML, getFileSize, validateFile } from '@/utils'
const user = inject('$user')
const router = useRouter()
@@ -248,6 +248,7 @@ onMounted(() => {
})
const saveJob = () => {
+ validateJobFields()
if (jobDetail.data) {
editJobDetails()
} else {
@@ -293,6 +294,14 @@ const editJobDetails = () => {
)
}
+const validateJobFields = () => {
+ Object.keys(job).forEach((key) => {
+ if (key != 'description' && typeof job[key] === 'string') {
+ job[key] = escapeHTML(job[key])
+ }
+ })
+}
+
const saveImage = (file) => {
job.image = file
}
diff --git a/frontend/src/pages/LessonForm.vue b/frontend/src/pages/LessonForm.vue
index 812ee164..b3a3f8a8 100644
--- a/frontend/src/pages/LessonForm.vue
+++ b/frontend/src/pages/LessonForm.vue
@@ -142,7 +142,6 @@ const renderEditor = (holder) => {
return new EditorJS({
holder: holder,
tools: getEditorTools(true),
- autofocus: true,
defaultBlock: 'markdown',
onChange: async (api, event) => {
enablePlyr()
diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue
index 2b2faf19..e0dc20da 100644
--- a/frontend/src/pages/Profile.vue
+++ b/frontend/src/pages/Profile.vue
@@ -124,19 +124,13 @@ const props = defineProps({
onMounted(() => {
if ($user.data) profile.reload()
-
setActiveTab()
})
const profile = createResource({
- url: 'frappe.client.get',
- makeParams(values) {
- return {
- doctype: 'User',
- filters: {
- username: props.username,
- },
- }
+ url: 'lms.lms.api.get_profile_details',
+ params: {
+ username: props.username,
},
})
@@ -194,17 +188,18 @@ const isSessionUser = () => {
return $user.data?.email === profile.data?.email
}
+const hasHigherAccess = () => {
+ return $user.data?.is_evaluator || $user.data?.is_moderator
+}
+
const getTabButtons = () => {
let buttons = [{ label: 'About' }, { label: 'Certificates' }]
if ($user.data?.is_moderator) buttons.push({ label: 'Roles' })
- if (
- isSessionUser() &&
- ($user.data?.is_evaluator || $user.data?.is_moderator)
- ) {
+
+ if (hasHigherAccess()) {
buttons.push({ label: 'Slots' })
buttons.push({ label: 'Schedule' })
}
-
return buttons
}
diff --git a/frontend/src/pages/ProfileEvaluationSchedule.vue b/frontend/src/pages/ProfileEvaluationSchedule.vue
index 02847f49..6efc257e 100644
--- a/frontend/src/pages/ProfileEvaluationSchedule.vue
+++ b/frontend/src/pages/ProfileEvaluationSchedule.vue
@@ -36,7 +36,7 @@