diff options
| author | Zog | 2018-01-19 12:18:12 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-02 14:31:43 +0100 | 
| commit | efda80f4bb90cc5bc8d090c260ba2ac54869e121 (patch) | |
| tree | 77ace28a76090301aaeb31e8b7b6f4edf627c9ae | |
| parent | b85f33cbf055633fab4d320f1a926e319626a9f5 (diff) | |
| download | chouette-core-efda80f4bb90cc5bc8d090c260ba2ac54869e121.tar.bz2 | |
Refs #3542 @1h; Add sticky header
| -rw-r--r-- | app/assets/stylesheets/components/_referential_overview.sass | 64 | ||||
| -rw-r--r-- | app/javascript/referential_overview/index.coffee | 23 | ||||
| -rw-r--r-- | app/views/referentials/_overview.html.slim | 3 | 
3 files changed, 80 insertions, 10 deletions
| diff --git a/app/assets/stylesheets/components/_referential_overview.sass b/app/assets/stylesheets/components/_referential_overview.sass index 2d903a2d7..77f60a8e7 100644 --- a/app/assets/stylesheets/components/_referential_overview.sass +++ b/app/assets/stylesheets/components/_referential_overview.sass @@ -1,4 +1,5 @@  .referential-overview +  $left-size: 100px    margin-top: 50px    .time-travel, .filters      background-color: $lightgrey @@ -42,7 +43,6 @@      border: 1px solid $grey      clear: both      display: flex -    $left-size: 100px      .head        height: $left-size      .line @@ -87,13 +87,17 @@          .number            border-radius: 100px            display: inline-block -          width: 20px +          min-width: 20px            height: 20px            text-align: center -          padding-top: 1px +          padding: 1px 4px            text-decoration: none            color: black            border: 1px solid $grey +          max-width: 100% +          white-space: nowrap +          text-overflow: ellipsis +          overflow: hidden          .name            display: inline-block            width: $left-size - 50px() @@ -121,14 +125,28 @@      .right        flex: 1 1        overflow: hidden -      .inner -        transition: margin 0.5s +      .inner .lines +        transition: margin-left 0.5s        .head          white-space: nowrap +        position: relative +        &:after, &:before +          opacity: 0 +          transition: opacity 0.5s +          content: "" +          position: absolute +          left: -1000px +          right: 100% +          top: 0px +          bottom: 0 +          background: $darkblue +          z-index: 11 +          border-top: 1px solid white          .week            display: inline-block            position: relative            height: 100% +          transition: margin 0.5s            .week-span              left: 5px              top: 10px @@ -155,6 +173,9 @@              width: 1px              content: "" +          &:last-child:after +            display: none +            .days              position: relative              top: 50% @@ -221,10 +242,41 @@            bottom: -100%            position: absolute            right: -1px -          z-index: 10 +          z-index: 3          &.empty            background: rgb(244, 67, 67)            background: repeating-linear-gradient(-45deg, #f5e1cf,#f5e1cf 10px,#e49393 10px,#e49393 20px)            &.accepted              background: #f19039              background: repeating-linear-gradient(-45deg, #f5e1cf,#f5e1cf 10px,#f19039 10px,#f19039 20px) + +  &.sticky +    .time-travel +      position: fixed +      bottom: 0 +      z-index: 15 +      right: 35px + +    .overview-table .right +      .lines +        margin-top: $left-size +      .head +        position: fixed +        top: 80px +        z-index: 10 +        background: white +        height: 50px +        right: 51px +        left: 51px + $left-size +        // overflow-x: hidden +        &:after, &:before +          opacity: 1 +        &:after +          left: 100% +          right: -1000px +        .week-span, .week-number +          display: none +        .days +          height: 100% +          top: 0 +          border-top: 1px solid white 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 diff --git a/app/views/referentials/_overview.html.slim b/app/views/referentials/_overview.html.slim index bccd35aae..e9a799764 100644 --- a/app/views/referentials/_overview.html.slim +++ b/app/views/referentials/_overview.html.slim @@ -33,9 +33,6 @@            .line              a.number style="background-color: #{line.color.present? ? "##{line.color}" : 'whitesmoke'}" title=line.name                = line.number -            - unless line.number == line.name -              a.name title=line.name -                = line.name              .company= line.company&.name              .mode= line.transport_mode      .right | 
