diff --git a/school/public/css/style.css b/school/public/css/style.css index 4828614a..84094b90 100644 --- a/school/public/css/style.css +++ b/school/public/css/style.css @@ -1454,3 +1454,10 @@ pre { border: none; margin: 0 6px; } + +.search-empty-state { + text-align: center; + position: relative; + top: 4rem; + margin-bottom: 5rem; +} diff --git a/school/templates/search_course/search_course.html b/school/templates/search_course/search_course.html index c4cc9402..73445f1b 100644 --- a/school/templates/search_course/search_course.html +++ b/school/templates/search_course/search_course.html @@ -1,3 +1,10 @@ +
+ diff --git a/school/templates/search_course/search_course.js b/school/templates/search_course/search_course.js index f136fbd5..b74d0d5f 100644 --- a/school/templates/search_course/search_course.js +++ b/school/templates/search_course/search_course.js @@ -7,8 +7,14 @@ frappe.ready(() => { const search_course = (e) => { let input = $(e.currentTarget).val(); + if (input == window.input) + return; + + window.input = input; + if (input.length < 3 || input.trim() == "") { $(".course-card").removeClass("hide"); + $(".search-empty-state").addClass("hide"); fix_heading_styles(); return; } @@ -26,6 +32,14 @@ const search_course = (e) => { const render_course_list = (courses) => { fix_heading_styles(); + $(".search-empty-state").addClass("hide"); + + if (!courses.length) { + $(".course-card").removeClass("hide"); + $(".search-empty-state").removeClass("hide"); + return; + } + $(".course-card").addClass("hide"); for (course in courses) { $("[data-course=" + courses[course].name + "]").removeClass("hide");