1.1 --- a/htdocs/styles.css Tue Oct 20 18:38:42 2015 +0200
1.2 +++ b/htdocs/styles.css Tue Oct 20 18:39:52 2015 +0200
1.3 @@ -228,7 +228,7 @@
1.4 input#hidebusy:checked ~ div.calendar tr.slot.busy,
1.5 input#showdays:not(:checked) ~ div.calendar .calendar.empty,
1.6
1.7 -/* Hiding/showing end datetimes and start/end times. */
1.8 +/* Hiding/showing start/end times. */
1.9
1.10 input#dttimes-enable,
1.11 input#dtend-enable,
1.12 @@ -254,6 +254,13 @@
1.13 display: none;
1.14 }
1.15
1.16 +/* Hiding/showing end datetimes and start/end times. */
1.17 +
1.18 +input#dtend-enable:not(:checked) ~ .object td.objectvalue.dtend .date.enabled,
1.19 +input#dtend-enable:checked ~ .object td.objectvalue.dtend .date.disabled {
1.20 + visibility: hidden;
1.21 +}
1.22 +
1.23 /* Show slot endpoints when hiding adjacent busy periods. */
1.24
1.25 input#hidebusy:checked ~ div.calendar th.timeslot span.endpoint {
1.26 @@ -288,6 +295,8 @@
1.27 label.newevent,
1.28 .dt.disabled label,
1.29 .dt.enabled label,
1.30 +.date.disabled label,
1.31 +.date.enabled label,
1.32 label.add,
1.33 label.remove,
1.34 label.removed,
1.35 @@ -321,6 +330,8 @@
1.36 label.later,
1.37 .dt.disabled label,
1.38 .dt.enabled label,
1.39 +.date.disabled label,
1.40 +.date.enabled label,
1.41 label.add,
1.42 label.remove,
1.43 label.removed,
1.44 @@ -332,11 +343,14 @@
1.45 }
1.46
1.47 .dt.disabled label,
1.48 -.dt.enabled label {
1.49 +.dt.enabled label,
1.50 +.date.disabled label,
1.51 +.date.enabled label {
1.52 display: inline-block;
1.53 }
1.54
1.55 -.dt.enabled label {
1.56 +.dt.enabled label,
1.57 +.date.enabled label {
1.58 margin-top: 0.25em;
1.59 }
1.60
2.1 --- a/imipweb/data.py Tue Oct 20 18:38:42 2015 +0200
2.2 +++ b/imipweb/data.py Tue Oct 20 18:39:52 2015 +0200
2.3 @@ -154,6 +154,14 @@
2.4 if not dtend:
2.5 return None
2.6
2.7 + # Handle same day times.
2.8 +
2.9 + elif self.times_enabled:
2.10 + formdate = FormDate(self.start.date, self.end.hour, self.end.minute, self.end.second, self.end.tzid)
2.11 + dtend = formdate.as_datetime(self.times_enabled)
2.12 + if not dtend:
2.13 + return None
2.14 +
2.15 # Otherwise, treat the end date as the start date. Datetimes are
2.16 # handled by making the event occupy the rest of the day.
2.17
3.1 --- a/imipweb/resource.py Tue Oct 20 18:38:42 2015 +0200
3.2 +++ b/imipweb/resource.py Tue Oct 20 18:39:52 2015 +0200
3.3 @@ -476,6 +476,8 @@
3.4
3.5 # Show dates for up to one week around the current date.
3.6
3.7 + page.span(class_="date enabled")
3.8 +
3.9 dt = default.as_datetime()
3.10 if not dt:
3.11 dt = date.today()
3.12 @@ -498,6 +500,8 @@
3.13 items.append((format_datetime(d), self.format_date(d, "full")))
3.14 self.menu("%s-date" % name, format_datetime(base), items, index=index)
3.15
3.16 + page.span.close()
3.17 +
3.18 # Show time details.
3.19
3.20 page.span(class_="time enabled")
3.21 @@ -589,6 +593,11 @@
3.22 input#dtend-enable-%(index)d:not(:checked) ~ .recurrence td.objectvalue.dtend .dt.enabled,
3.23 input#dtend-enable-%(index)d:checked ~ .recurrence td.objectvalue.dtend .dt.disabled {
3.24 display: none;
3.25 +}
3.26 +
3.27 +input#dtend-enable-%(index)d:not(:checked) ~ .recurrence td.objectvalue.dtend .date.enabled,
3.28 +input#dtend-enable-%(index)d:checked ~ .recurrence td.objectvalue.dtend .date.disabled {
3.29 + visibility: hidden;
3.30 }""" % {"index" : index})
3.31
3.32 page.style.close()
3.33 @@ -628,12 +637,11 @@
3.34 page.div.close()
3.35
3.36 else:
3.37 + self.date_controls("dtend", formdate)
3.38 page.div(class_="dt disabled")
3.39 page.label("Specify end date", for_="dtend-enable", class_="enable")
3.40 page.div.close()
3.41 page.div(class_="dt enabled")
3.42 - self.date_controls("dtend", formdate)
3.43 - page.br()
3.44 page.label("End on same day", for_="dtend-enable", class_="disable")
3.45 page.div.close()
3.46
3.47 @@ -680,16 +688,14 @@
3.48 self.control("recur-replaced", "hidden", period.replaced and str(index) or "")
3.49
3.50 else:
3.51 - page.div(class_="dt disabled")
3.52 - if not read_only:
3.53 - page.label("Specify end date", for_=_id("dtend-enable", index), class_="enable")
3.54 - page.div.close()
3.55 - page.div(class_="dt enabled")
3.56 self.date_controls(_name("dtend", "recur", index), period.get_form_end(), index=index, show_tzid=False, read_only=read_only)
3.57 if not read_only:
3.58 - page.br()
3.59 + page.div(class_="dt disabled")
3.60 + page.label("Specify end date", for_=_id("dtend-enable", index), class_="enable")
3.61 + page.div.close()
3.62 + page.div(class_="dt enabled")
3.63 page.label("End on same day", for_=_id("dtend-enable", index), class_="disable")
3.64 - page.div.close()
3.65 + page.div.close()
3.66
3.67 page.td.close()
3.68