aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap
diff options
context:
space:
mode:
authorMoritz Strohm <strohm@data-quest.de>2024-03-21 15:09:47 +0000
committerPeter Thienel <thienel@data-quest.de>2024-03-21 15:09:47 +0000
commiteed21fa552f33483dc110f730507283f2a4a03e2 (patch)
tree56a19b2d58739035387207463fe4363f92d7dd58 /resources/assets/javascripts/bootstrap
parentf3709add2d989b76727c5b78ad6c2c8694617464 (diff)
calendar date form: move end date or time when moving the begin date or time, fixes #3862
Closes #3862 Merge request studip/studip!2726
Diffstat (limited to 'resources/assets/javascripts/bootstrap')
-rw-r--r--resources/assets/javascripts/bootstrap/calendar.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/resources/assets/javascripts/bootstrap/calendar.js b/resources/assets/javascripts/bootstrap/calendar.js
new file mode 100644
index 0000000..8248426
--- /dev/null
+++ b/resources/assets/javascripts/bootstrap/calendar.js
@@ -0,0 +1,31 @@
+STUDIP.ready(function() {
+ jQuery(document).on('change', 'form.new-calendar-date-form input[name=begin]', function(event) {
+ let begin_value = jQuery(event.target).val();
+ let begin = STUDIP.Calendar.parseDateFromString(begin_value);
+ if (!begin) {
+ return;
+ }
+ let end_value = jQuery('form.new-calendar-date-form input[name=end]').val();
+ let end = STUDIP.Calendar.parseDateFromString(end_value);
+ if (end) {
+ //Check if the date and time in end_value is past the date in begin_value.
+ //If so, set the date or the time or both to a value after begin_value.
+ if (end.getTime() <= begin.getTime()) {
+ //Get the distance of the time (hours and minutes only) between begin and end:
+ let diff = Math.abs(end.getHours() - begin.getHours()) * 3600
+ + Math.abs(end.getMinutes() - begin.getMinutes()) * 60;
+ end = begin;
+ end.setTime(end.getTime() + diff * 1000);
+ }
+ } else {
+ //Clone begin and add one hour to end:
+ end = begin;
+ end.setTime(end.getTime() + 3600000);
+ }
+
+ //Display the new end:
+ let end_string = STUDIP.DateTime.pad(end.getDate()) + '.' + STUDIP.DateTime.pad(end.getMonth() + 1) + '.' + end.getFullYear()
+ + ' ' + STUDIP.DateTime.pad(end.getHours()) + ':' + STUDIP.DateTime.pad(end.getMinutes());
+ jQuery('form.new-calendar-date-form input[name=end]').val(end_string);
+ });
+});