Merge branch 'develop' of https://github.com/frappe/lms into categories-in-courses
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
"@editorjs/paragraph": "^2.11.3",
|
"@editorjs/paragraph": "^2.11.3",
|
||||||
"@editorjs/simple-image": "^1.6.0",
|
"@editorjs/simple-image": "^1.6.0",
|
||||||
"chart.js": "^4.4.1",
|
"chart.js": "^4.4.1",
|
||||||
|
"codemirror-editor-vue3": "^2.8.0",
|
||||||
"dayjs": "^1.11.6",
|
"dayjs": "^1.11.6",
|
||||||
"feather-icons": "^4.28.0",
|
"feather-icons": "^4.28.0",
|
||||||
"frappe-ui": "^0.1.69",
|
"frappe-ui": "^0.1.69",
|
||||||
|
|||||||
@@ -223,47 +223,16 @@ const tabsStructure = computed(() => {
|
|||||||
{
|
{
|
||||||
label: 'Signup',
|
label: 'Signup',
|
||||||
icon: 'LogIn',
|
icon: 'LogIn',
|
||||||
description:
|
|
||||||
'Customize the signup page to inform users about your terms and policies',
|
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
label: 'Show terms of use on signup',
|
label: 'Custom Content',
|
||||||
name: 'terms_of_use',
|
name: 'custom_signup_content',
|
||||||
type: 'checkbox',
|
type: 'Code',
|
||||||
|
mode: 'htmlmixed',
|
||||||
|
rows: 10,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Terms of Use Page',
|
label: 'Ask user category',
|
||||||
name: 'terms_page',
|
|
||||||
type: 'Link',
|
|
||||||
doctype: 'Web Page',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Show privacy policy on signup',
|
|
||||||
name: 'privacy_policy',
|
|
||||||
type: 'checkbox',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Privacy Policy Page',
|
|
||||||
name: 'privacy_policy_page',
|
|
||||||
type: 'Link',
|
|
||||||
doctype: 'Web Page',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'Column Break',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Show cookie policy on signup',
|
|
||||||
name: 'cookie_policy',
|
|
||||||
type: 'checkbox',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Cookie Policy Page',
|
|
||||||
name: 'cookie_policy_page',
|
|
||||||
type: 'Link',
|
|
||||||
doctype: 'Web Page',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Ask user category during signup',
|
|
||||||
name: 'user_category',
|
name: 'user_category',
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -8,9 +8,15 @@
|
|||||||
{{ __(description) }}
|
{{ __(description) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between my-5">
|
<div
|
||||||
|
class="my-5"
|
||||||
|
:class="{ 'flex justify-between w-full': columns.length > 1 }"
|
||||||
|
>
|
||||||
<div v-for="(column, index) in columns" :key="index">
|
<div v-for="(column, index) in columns" :key="index">
|
||||||
<div class="flex flex-col space-y-5 w-72">
|
<div
|
||||||
|
class="flex flex-col space-y-5"
|
||||||
|
:class="columns.length > 1 ? 'w-72' : 'w-full'"
|
||||||
|
>
|
||||||
<div v-for="field in column">
|
<div v-for="field in column">
|
||||||
<Link
|
<Link
|
||||||
v-if="field.type == 'Link'"
|
v-if="field.type == 'Link'"
|
||||||
@@ -18,12 +24,25 @@
|
|||||||
:doctype="field.doctype"
|
:doctype="field.doctype"
|
||||||
:label="field.label"
|
:label="field.label"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<Codemirror
|
||||||
|
v-else-if="field.type == 'Code'"
|
||||||
|
v-model:value="field.value"
|
||||||
|
:label="field.label"
|
||||||
|
:height="200"
|
||||||
|
:options="{
|
||||||
|
mode: field.mode,
|
||||||
|
theme: 'seti',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
|
||||||
<FormControl
|
<FormControl
|
||||||
v-else
|
v-else
|
||||||
:key="field.name"
|
:key="field.name"
|
||||||
v-model="field.value"
|
v-model="field.value"
|
||||||
:label="field.label"
|
:label="field.label"
|
||||||
:type="field.type"
|
:type="field.type"
|
||||||
|
:rows="field.rows"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -41,6 +60,9 @@
|
|||||||
import { FormControl, Button } from 'frappe-ui'
|
import { FormControl, Button } from 'frappe-ui'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
|
import Codemirror from 'codemirror-editor-vue3'
|
||||||
|
import 'codemirror/theme/seti.css'
|
||||||
|
import 'codemirror/mode/htmlmixed/htmlmixed.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
fields: {
|
fields: {
|
||||||
@@ -94,3 +116,13 @@ const update = () => {
|
|||||||
props.data.save.submit()
|
props.data.save.submit()
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.CodeMirror pre.CodeMirror-line,
|
||||||
|
.CodeMirror pre.CodeMirror-line-like {
|
||||||
|
font-family: revert;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
2183
frontend/yarn.lock
Normal file
2183
frontend/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Frappe LMS VERSION\n"
|
"Project-Id-Version: Frappe LMS VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-09-13 16:04+0000\n"
|
"POT-Creation-Date: 2024-09-20 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-09-13 16:04+0000\n"
|
"PO-Revision-Date: 2024-09-20 16:04+0000\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: jannat@frappe.io\n"
|
"Language-Team: jannat@frappe.io\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -212,7 +212,7 @@ msgstr ""
|
|||||||
msgid "Assessment Type"
|
msgid "Assessment Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:71
|
#: lms/doctype/lms_batch/lms_batch.py:66
|
||||||
msgid "Assessment {0} has already been added to this batch."
|
msgid "Assessment {0} has already been added to this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -387,7 +387,7 @@ msgstr ""
|
|||||||
msgid "Batch Updated"
|
msgid "Batch Updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:42
|
#: lms/doctype/lms_batch/lms_batch.py:37
|
||||||
msgid "Batch end date cannot be before the batch start date"
|
msgid "Batch end date cannot be before the batch start date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -948,11 +948,11 @@ msgstr ""
|
|||||||
msgid "Course Title"
|
msgid "Course Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:327
|
#: lms/doctype/lms_batch/lms_batch.py:324
|
||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:60
|
#: lms/doctype/lms_batch/lms_batch.py:55
|
||||||
msgid "Course {0} has already been added to this batch."
|
msgid "Course {0} has already been added to this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1248,7 +1248,7 @@ msgstr ""
|
|||||||
msgid "Enrolled successfully"
|
msgid "Enrolled successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:92
|
#: lms/doctype/lms_batch/lms_batch.py:89
|
||||||
msgid "Enrollment Confirmation for the Next Training Batch"
|
msgid "Enrollment Confirmation for the Next Training Batch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1297,7 +1297,7 @@ msgstr ""
|
|||||||
msgid "Evaluation Request"
|
msgid "Evaluation Request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:89
|
#: lms/doctype/lms_batch/lms_batch.py:73
|
||||||
msgid "Evaluation end date cannot be less than the batch end date."
|
msgid "Evaluation end date cannot be less than the batch end date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2788,7 +2788,7 @@ msgstr ""
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:238
|
#: lms/doctype/lms_batch/lms_batch.py:235
|
||||||
msgid "Please enable Zoom Settings to use this feature."
|
msgid "Please enable Zoom Settings to use this feature."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3165,19 +3165,19 @@ msgstr ""
|
|||||||
msgid "Route"
|
msgid "Route"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:167
|
#: lms/doctype/lms_batch/lms_batch.py:164
|
||||||
msgid "Row #{0} Date cannot be outside the batch duration."
|
msgid "Row #{0} Date cannot be outside the batch duration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:162
|
#: lms/doctype/lms_batch/lms_batch.py:159
|
||||||
msgid "Row #{0} End time cannot be outside the batch duration."
|
msgid "Row #{0} End time cannot be outside the batch duration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:144
|
#: lms/doctype/lms_batch/lms_batch.py:141
|
||||||
msgid "Row #{0} Start time cannot be greater than or equal to end time."
|
msgid "Row #{0} Start time cannot be greater than or equal to end time."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:153
|
#: lms/doctype/lms_batch/lms_batch.py:150
|
||||||
msgid "Row #{0} Start time cannot be outside the batch duration."
|
msgid "Row #{0} Start time cannot be outside the batch duration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3524,7 +3524,7 @@ msgstr ""
|
|||||||
msgid "Student Name"
|
msgid "Student Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:49
|
#: lms/doctype/lms_batch/lms_batch.py:44
|
||||||
msgid "Student {0} has already been added to this batch."
|
msgid "Student {0} has already been added to this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3697,7 +3697,7 @@ msgstr ""
|
|||||||
msgid "The course {0} is now available on {1}."
|
msgid "The course {0} is now available on {1}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:51
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:53
|
||||||
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
msgid "The evaluator of this course is unavailable from {0} to {1}. Please select a date after {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3705,7 +3705,7 @@ msgstr ""
|
|||||||
msgid "The quiz has a time limit. For each question you will be given {0} seconds."
|
msgid "The quiz has a time limit. For each question you will be given {0} seconds."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:69
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:71
|
||||||
msgid "The slot is already booked by another participant."
|
msgid "The slot is already booked by another participant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3713,7 +3713,7 @@ msgstr ""
|
|||||||
msgid "The status of your application has changed."
|
msgid "The status of your application has changed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_batch/lms_batch.py:135
|
#: lms/doctype/lms_batch/lms_batch.py:132
|
||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4106,7 +4106,7 @@ msgstr ""
|
|||||||
msgid "Write a review"
|
msgid "Write a review"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:93
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:95
|
||||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4139,11 +4139,11 @@ msgstr ""
|
|||||||
msgid "You can find their resume attached to this email."
|
msgid "You can find their resume attached to this email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:113
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:115
|
||||||
msgid "You cannot schedule evaluations after {0}."
|
msgid "You cannot schedule evaluations after {0}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:102
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:104
|
||||||
msgid "You cannot schedule evaluations for past slots."
|
msgid "You cannot schedule evaluations for past slots."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4208,7 +4208,7 @@ msgstr ""
|
|||||||
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
msgid "Your evaluation for the course {0} has been scheduled on {1} at {2} {3}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:123
|
#: lms/doctype/lms_certificate_request/lms_certificate_request.py:125
|
||||||
msgid "Your evaluation slot has been booked"
|
msgid "Your evaluation slot has been booked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user