Merge branch 'develop' of https://github.com/frappe/lms into profile
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" href="/favicon.png" />
|
<link rel="icon" href="/favicon.png" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Frappe UI App</title>
|
<title>Frappe Learning</title>
|
||||||
<meta name="title" content="{{ meta.title }}" />
|
<meta name="title" content="{{ meta.title }}" />
|
||||||
<meta name="image" content="{{ meta.image }}" />
|
<meta name="image" content="{{ meta.image }}" />
|
||||||
<meta name="description" content="{{ meta.description }}" />
|
<meta name="description" content="{{ meta.description }}" />
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
Seo checks if a page has more than 300 words. So, here are some more words to make it more than 300 words.
|
Seo checks if a page has more than 300 words. So, here are some more words to make it more than 300 words.
|
||||||
Page descriptions are the HTML meta tags that provide a brief summary of a web page.
|
Page descriptions are the HTML meta tags that provide a brief summary of a web page.
|
||||||
Search engines use meta descriptions to help identify the page's topic - they don't use them to rank the page, but they do use them to determine whether or not to display the page in search results.
|
Search engines use meta descriptions to help identify the page's topic - they don't use them to rank the page, but they do use them to determine whether or not to display the page in search results.
|
||||||
Meta descriptions are important because they're often the first thing people see when they're deciding which search result to click on.
|
Meta descriptions are important because they're often the first thing people see when they're deciding which search result to click on.
|
||||||
They're also important because they can help improve your click-through rate (CTR) from search results.
|
They're also important because they can help improve your click-through rate (CTR) from search results.
|
||||||
A good meta description can entice people to click on your page instead of someone else's.
|
A good meta description can entice people to click on your page instead of someone else's.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -3,12 +3,21 @@
|
|||||||
{{ __('Components') }}
|
{{ __('Components') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
<div class="">
|
<Tooltip
|
||||||
<div class="text-xs text-gray-600 mb-1">
|
:text="
|
||||||
{{ __('Select an Editor') }}
|
__(
|
||||||
|
'Content such as quiz, video and image will be added in the editor you select.'
|
||||||
|
)
|
||||||
|
"
|
||||||
|
placement="bottom"
|
||||||
|
>
|
||||||
|
<div class="">
|
||||||
|
<div class="text-xs text-gray-600 mb-1">
|
||||||
|
{{ __('Select an Editor') }}
|
||||||
|
</div>
|
||||||
|
<Select v-model="currentEditor" :options="getEditorOptions()" />
|
||||||
</div>
|
</div>
|
||||||
<Select v-model="currentEditor" :options="getEditorOptions()" />
|
</Tooltip>
|
||||||
</div>
|
|
||||||
<div class="flex mt-4">
|
<div class="flex mt-4">
|
||||||
<Link
|
<Link
|
||||||
v-model="quiz"
|
v-model="quiz"
|
||||||
@@ -63,7 +72,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import { FileUploader, Button, Select } from 'frappe-ui'
|
import { FileUploader, Button, Select, Tooltip } from 'frappe-ui'
|
||||||
import { Plus, FileText } from 'lucide-vue-next'
|
import { Plus, FileText } from 'lucide-vue-next'
|
||||||
import { ref, watch } from 'vue'
|
import { ref, watch } from 'vue'
|
||||||
|
|
||||||
|
|||||||
@@ -245,6 +245,8 @@ const lesson = createResource({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const renderEditor = (holder, content) => {
|
const renderEditor = (holder, content) => {
|
||||||
|
// empty the holder
|
||||||
|
document.getElementById(holder).innerHTML = ''
|
||||||
return new EditorJS({
|
return new EditorJS({
|
||||||
holder: holder,
|
holder: holder,
|
||||||
tools: getEditorTools(),
|
tools: getEditorTools(),
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class LMSJobApplication(Document):
|
|||||||
outgoing_email_account = frappe.get_cached_value(
|
outgoing_email_account = frappe.get_cached_value(
|
||||||
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
||||||
)
|
)
|
||||||
if outgoing_email_account:
|
if outgoing_email_account or frappe.conf.get("mail_login"):
|
||||||
self.send_email_to_employer()
|
self.send_email_to_employer()
|
||||||
|
|
||||||
def validate_duplicate(self):
|
def validate_duplicate(self):
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class LMSAssignmentSubmission(Document):
|
|||||||
outgoing_email_account = frappe.get_cached_value(
|
outgoing_email_account = frappe.get_cached_value(
|
||||||
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
||||||
)
|
)
|
||||||
if outgoing_email_account:
|
if outgoing_email_account or frappe.conf.get("mail_login"):
|
||||||
self.send_mail()
|
self.send_mail()
|
||||||
|
|
||||||
def validate_duplicates(self):
|
def validate_duplicates(self):
|
||||||
|
|||||||
@@ -73,7 +73,9 @@ class LMSBatch(Document):
|
|||||||
outgoing_email_account = frappe.get_cached_value(
|
outgoing_email_account = frappe.get_cached_value(
|
||||||
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
||||||
)
|
)
|
||||||
if not student.confirmation_email_sent and outgoing_email_account:
|
if not student.confirmation_email_sent and (
|
||||||
|
outgoing_email_account or frappe.conf.get("mail_login")
|
||||||
|
):
|
||||||
self.send_mail(student)
|
self.send_mail(student)
|
||||||
student.confirmation_email_sent = 1
|
student.confirmation_email_sent = 1
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class LMSCertificate(Document):
|
|||||||
outgoing_email_account = frappe.get_cached_value(
|
outgoing_email_account = frappe.get_cached_value(
|
||||||
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
"Email Account", {"default_outgoing": 1, "enable_outgoing": 1}, "name"
|
||||||
)
|
)
|
||||||
if outgoing_email_account:
|
if outgoing_email_account or frappe.conf.get("mail_login"):
|
||||||
self.send_mail()
|
self.send_mail()
|
||||||
|
|
||||||
def send_mail(self):
|
def send_mail(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user