From a08751696de0ba7a78f475588ff03f14bd44a7c6 Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 19 Jan 2018 10:17:43 +0100 Subject: Refs #3542 @1h; Add Time navigation --- app/javascript/referential_overview/index.coffee | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 app/javascript/referential_overview/index.coffee (limited to 'app/javascript/referential_overview') diff --git a/app/javascript/referential_overview/index.coffee b/app/javascript/referential_overview/index.coffee new file mode 100644 index 000000000..8dd0e3561 --- /dev/null +++ b/app/javascript/referential_overview/index.coffee @@ -0,0 +1,69 @@ +class TimeTravel + constructor: (@overview)-> + @container = @overview.container.find('.time-travel') + @todayBt = @container.find(".today") + @prevBt = @container.find(".prev-page") + @nextBt = @container.find(".next-page") + @initButtons() + + initButtons: -> + @prevBt.click (e)=> + @overview.prevPage() + e.preventDefault() + false + + @nextBt.click (e)=> + @overview.nextPage() + e.preventDefault() + false + + @todayBt.click (e)=> + today = new Date() + month = today.getMonth() + 1 + month = "0#{month}" if month < 10 + day = today.getDate() + day = "0#{month}" if day < 10 + @overview.showDay "#{today.getFullYear()}-#{month}-#{day}" + e.preventDefault() + false + + scrolledTo: (progress)-> + console.log "scrolledTo: #{progress*100}%" + @prevBt.removeClass 'disabled' + @nextBt.removeClass 'disabled' + @prevBt.addClass 'disabled' if progress == 0 + @nextBt.addClass 'disabled' if progress == 1 + +class window.ReferentialOverview + constructor: (selector)-> + @container = $(selector) + @timeTravel = new TimeTravel(this) + @currentOffset = 0 + + showDay: (date)-> + day = @container.find(".day.#{date}") + offset = day.offset().left + parentOffset = @container.find(".right .inner").offset().left + @scrollTo parentOffset - offset + + currentOffset: -> + @container.find(".right .inner").offset().left + + prevPage: -> + @scrollTo @currentOffset + @container.find(".right").width() + + nextPage: -> + @scrollTo @currentOffset - @container.find(".right").width() + + minOffset: -> + @_minOffset ||= @container.find(".right").width() - @container.find(".right .line").width() + @_minOffset + + scrollTo: (offset)-> + @currentOffset = offset + @currentOffset = Math.max(@currentOffset, @minOffset()) + @currentOffset = Math.min(@currentOffset, 0) + @container.find(".right .inner").css "margin-left": "#{@currentOffset}px" + @timeTravel.scrolledTo 1 - (@minOffset() - @currentOffset) / @minOffset() + +export default ReferentialOverview -- cgit v1.2.3 From b85f33cbf055633fab4d320f1a926e319626a9f5 Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 19 Jan 2018 11:16:44 +0100 Subject: Refs #3542 @1h; Adds filters --- app/javascript/referential_overview/index.coffee | 1 - 1 file changed, 1 deletion(-) (limited to 'app/javascript/referential_overview') diff --git a/app/javascript/referential_overview/index.coffee b/app/javascript/referential_overview/index.coffee index 8dd0e3561..6128d7c98 100644 --- a/app/javascript/referential_overview/index.coffee +++ b/app/javascript/referential_overview/index.coffee @@ -28,7 +28,6 @@ class TimeTravel false scrolledTo: (progress)-> - console.log "scrolledTo: #{progress*100}%" @prevBt.removeClass 'disabled' @nextBt.removeClass 'disabled' @prevBt.addClass 'disabled' if progress == 0 -- cgit v1.2.3 From efda80f4bb90cc5bc8d090c260ba2ac54869e121 Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 19 Jan 2018 12:18:12 +0100 Subject: Refs #3542 @1h; Add sticky header --- app/javascript/referential_overview/index.coffee | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'app/javascript/referential_overview') diff --git a/app/javascript/referential_overview/index.coffee b/app/javascript/referential_overview/index.coffee index 6128d7c98..c9a266dea 100644 --- a/app/javascript/referential_overview/index.coffee +++ b/app/javascript/referential_overview/index.coffee @@ -38,6 +38,8 @@ class window.ReferentialOverview @container = $(selector) @timeTravel = new TimeTravel(this) @currentOffset = 0 + $(document).scroll (e)=> + @documentScroll(e) showDay: (date)-> day = @container.find(".day.#{date}") @@ -48,6 +50,11 @@ class window.ReferentialOverview currentOffset: -> @container.find(".right .inner").offset().left + top: -> + @_top ||= @container.find('.days').offset().top - 80 + bottom: -> + @_bottom ||= @top() + @container.height() - 50 + prevPage: -> @scrollTo @currentOffset + @container.find(".right").width() @@ -62,7 +69,21 @@ class window.ReferentialOverview @currentOffset = offset @currentOffset = Math.max(@currentOffset, @minOffset()) @currentOffset = Math.min(@currentOffset, 0) - @container.find(".right .inner").css "margin-left": "#{@currentOffset}px" + @container.find(".right .inner .lines").css "margin-left": "#{@currentOffset}px" + @container.find(".head .week:first-child").css "margin-left", "#{@currentOffset}px" @timeTravel.scrolledTo 1 - (@minOffset() - @currentOffset) / @minOffset() + + documentScroll: (e)-> + if @sticky + if e.pageY < @top() || e.pageY > @bottom() + @container.removeClass "sticky" + @sticky = false + else + if e.pageY > @top() && e.pageY < @bottom() + @sticky = true + @container.addClass "sticky" + + + export default ReferentialOverview -- cgit v1.2.3 From bb238237ee32f7bb96fd3add772d778a7e8c8503 Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 19 Jan 2018 16:42:19 +0100 Subject: Refs #3542 @2h; Various UI improvements (hopefully) --- app/javascript/referential_overview/index.coffee | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'app/javascript/referential_overview') diff --git a/app/javascript/referential_overview/index.coffee b/app/javascript/referential_overview/index.coffee index c9a266dea..31a689273 100644 --- a/app/javascript/referential_overview/index.coffee +++ b/app/javascript/referential_overview/index.coffee @@ -40,11 +40,12 @@ class window.ReferentialOverview @currentOffset = 0 $(document).scroll (e)=> @documentScroll(e) + @documentScroll pageY: $(document).scrollTop() showDay: (date)-> day = @container.find(".day.#{date}") offset = day.offset().left - parentOffset = @container.find(".right .inner").offset().left + parentOffset = @currentOffset @scrollTo parentOffset - offset currentOffset: -> @@ -72,7 +73,21 @@ class window.ReferentialOverview @container.find(".right .inner .lines").css "margin-left": "#{@currentOffset}px" @container.find(".head .week:first-child").css "margin-left", "#{@currentOffset}px" @timeTravel.scrolledTo 1 - (@minOffset() - @currentOffset) / @minOffset() - + setTimeout => + @movePeriodTitles() + , 600 + + movePeriodTitles: -> + @_right_offset ||= @container.find('.right').offset().left + @container.find(".shifted").removeClass("shifted").css "margin-left", 0 + @container.find(".right .line").each (i, l) => + $(l).find(".period").each (i, _p) => + p = $(_p) + offset = parseInt(p.css("left")) + @currentOffset + if offset < 0 && - offset < p.width() + offset = Math.min(-offset, p.width() - 100) + p.find(".title").addClass("shifted").css "margin-left", offset + "px" + return documentScroll: (e)-> if @sticky -- cgit v1.2.3 From f937bda75ef024a281cff199a65d5ba4f811c13f Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 19 Jan 2018 17:29:50 +0100 Subject: Refs #3542; Add a date lookup --- app/javascript/referential_overview/index.coffee | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'app/javascript/referential_overview') diff --git a/app/javascript/referential_overview/index.coffee b/app/javascript/referential_overview/index.coffee index 31a689273..0e6541421 100644 --- a/app/javascript/referential_overview/index.coffee +++ b/app/javascript/referential_overview/index.coffee @@ -4,6 +4,8 @@ class TimeTravel @todayBt = @container.find(".today") @prevBt = @container.find(".prev-page") @nextBt = @container.find(".next-page") + @searchDateBt = @container.find("a.search-date") + @searchDateInput = @container.find("input.date-search") @initButtons() initButtons: -> @@ -27,6 +29,11 @@ class TimeTravel e.preventDefault() false + @searchDateBt.click (e)=> + @overview.showDay @searchDateInput.val() if @searchDateInput.val().length > 0 + e.preventDefault() + false + scrolledTo: (progress)-> @prevBt.removeClass 'disabled' @nextBt.removeClass 'disabled' @@ -44,8 +51,10 @@ class window.ReferentialOverview showDay: (date)-> day = @container.find(".day.#{date}") + @container.find(".day.selected").removeClass('selected') + day.addClass "selected" offset = day.offset().left - parentOffset = @currentOffset + parentOffset = @currentOffset + @container.find(".right").offset().left @scrollTo parentOffset - offset currentOffset: -> -- cgit v1.2.3