feat: search bar on course list
This commit is contained in:
14
school/templates/course_list.html
Normal file
14
school/templates/course_list.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="{{ classes }}">
|
||||
{% if courses | length %}
|
||||
<div class="course-home-headings">
|
||||
{{ title }}
|
||||
</div>
|
||||
<div class="cards-parent">
|
||||
{% for course in courses %}
|
||||
{{ widgets.CourseCard(course=course, read_only=False) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
3
school/templates/search_course/search_course.html
Normal file
3
school/templates/search_course/search_course.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<input class="search-course w-25 float-right" placeholder="{{ _("Try 'Manufacturing' or 'Accounting'") }}">
|
||||
|
||||
<script> {% include "school/templates/search_course/search_course.js" %} </script>
|
||||
33
school/templates/search_course/search_course.js
Normal file
33
school/templates/search_course/search_course.js
Normal file
@@ -0,0 +1,33 @@
|
||||
frappe.ready(() => {
|
||||
$(".search-course").keyup((e) => {
|
||||
search_course(e);
|
||||
});
|
||||
});
|
||||
|
||||
const search_course = (e) => {
|
||||
let input = $(e.currentTarget).val();
|
||||
console.log(input)
|
||||
if (input.length < 3 || input.trim() == "") {
|
||||
$(".course-card").removeClass("hide");
|
||||
return
|
||||
}
|
||||
|
||||
frappe.call({
|
||||
method: "school.lms.doctype.lms_course.lms_course.search_course",
|
||||
args: {
|
||||
"text": input
|
||||
},
|
||||
callback: (data) => {
|
||||
render_course_list(data.message);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const render_course_list = (courses) => {
|
||||
$(".course-card").addClass("hide");
|
||||
for (course in courses) {
|
||||
console.log(courses[course])
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user