Skip to content

Commit ae4aadb

Browse files
authored
Merge pull request #702 from pateljannat/timetable-mobile-view
feat: day view for timetable on mobile
2 parents 0e2fabf + e5dc2ba commit ae4aadb

File tree

4 files changed

+58
-20
lines changed

4 files changed

+58
-20
lines changed

lms/lms/doctype/lms_settings/lms_settings.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"portal_course_creation",
1717
"section_break_szgq",
1818
"send_calendar_invite_for_evaluations",
19+
"show_day_view",
1920
"allow_student_progress",
2021
"column_break_2",
2122
"show_dashboard",
@@ -341,12 +342,18 @@
341342
{
342343
"fieldname": "column_break_uwsp",
343344
"fieldtype": "Column Break"
345+
},
346+
{
347+
"default": "0",
348+
"fieldname": "show_day_view",
349+
"fieldtype": "Check",
350+
"label": "Show Day View in Timetable"
344351
}
345352
],
346353
"index_web_pages_for_search": 1,
347354
"issingle": 1,
348355
"links": [],
349-
"modified": "2023-11-07 11:23:14.257687",
356+
"modified": "2023-12-12 10:32:13.638368",
350357
"modified_by": "Administrator",
351358
"module": "LMS",
352359
"name": "LMS Settings",

lms/public/css/style.css

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2443,13 +2443,23 @@ select {
24432443
}
24442444

24452445
.calendar-legends {
2446-
display: flex;
2447-
align-items: center;
2448-
justify-content: space-between;
2449-
width: 50%;
2446+
display: grid;
2447+
grid-template-columns: repeat(4, 1fr);
2448+
width: 75%;
24502449
margin: 0 auto 1rem;
24512450
}
24522451

2452+
@media (max-width: 767px) {
2453+
.calendar-legends {
2454+
grid-template-columns: repeat(2, 1fr);
2455+
width: 100%;
2456+
}
2457+
2458+
.legend-item {
2459+
margin-bottom: 0.5rem;
2460+
}
2461+
}
2462+
24532463
.batch-details {
24542464
width: 50%;
24552465
margin: 2rem 0;

lms/www/batches/batch.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,7 @@
641641
const allow_future = {{ batch_info.allow_future }};
642642
const is_student = "{{ is_student or '' }}";
643643
const evaluation_end_date = "{{ batch_info.evaluation_end_date if batch_info.evaluation_end_date else '' }}"
644+
const show_day_view = {{ settings.show_day_view }};
644645
</script>
645646

646647
<link rel="stylesheet" href="https://uicdn.toast.com/calendar/latest/toastui-calendar.min.css" />

lms/www/batches/batch.js

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ const get_calendar_options = (element, calendar_id) => {
672672
const end_time = element.data("end");
673673

674674
return {
675-
defaultView: "week",
675+
defaultView: $(window).width() < 768 || show_day_view ? "day" : "week",
676676
usageStatistics: false,
677677
week: {
678678
narrowWeekend: true,
@@ -805,22 +805,42 @@ const scroll_to_date = (calendar, events) => {
805805
};
806806

807807
const set_calendar_range = (calendar, events) => {
808-
let week_start = moment(calendar.getDateRangeStart().d.d);
809-
let week_end = moment(calendar.getDateRangeEnd().d.d);
808+
let day_view = $(window).width() < 768 || show_day_view ? true : false;
809+
if (day_view) {
810+
let calendar_date = moment(calendar.getDate().d.d).format(
811+
"DD MMMM YYYY"
812+
);
813+
$(".calendar-range").text(`${calendar_date}`);
810814

811-
$(".calendar-range").text(
812-
`${moment(week_start).format("DD MMMM YYYY")} - ${moment(
813-
week_end
814-
).format("DD MMMM YYYY")}`
815-
);
816-
817-
if (week_start.diff(moment(events[0].date), "days") <= 0)
818-
$("#prev-week").hide();
819-
else $("#prev-week").show();
815+
if (moment(events[0].date).isSameOrBefore(moment(calendar)))
816+
$("#prev-week").hide();
817+
else $("#prev-week").show();
820818

821-
if (week_end.diff(moment(events.slice(-1)[0].date), "days") > 0)
822-
$("#next-week").hide();
823-
else $("#next-week").show();
819+
if (
820+
moment(calendar_date).isSameOrAfter(
821+
moment(events.slice(-1)[0].date)
822+
)
823+
)
824+
$("#next-week").hide();
825+
else $("#next-week").show();
826+
} else {
827+
let week_start = moment(calendar.getDateRangeStart().d.d);
828+
let week_end = moment(calendar.getDateRangeEnd().d.d);
829+
830+
$(".calendar-range").text(
831+
`${moment(week_start).format("DD MMMM YYYY")} - ${moment(
832+
week_end
833+
).format("DD MMMM YYYY")}`
834+
);
835+
836+
if (week_start.diff(moment(events[0].date), "days") <= 0)
837+
$("#prev-week").hide();
838+
else $("#prev-week").show();
839+
840+
if (week_end.diff(moment(events.slice(-1)[0].date), "days") > 0)
841+
$("#next-week").hide();
842+
else $("#next-week").show();
843+
}
824844
};
825845

826846
const get_background_color = (doctype) => {

0 commit comments

Comments
 (0)