Skip to content
This repository was archived by the owner on Nov 17, 2018. It is now read-only.

Commit fdec03f

Browse files
committed
UI: enabled dragging the entire film.
1 parent 22306a4 commit fdec03f

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

app/assets/javascripts/oauth.js.coffee

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ this.createScrolledChart = (variable) ->
122122

123123
filmHandleLeftDraggable = false
124124
filmHandleRightDraggable = false
125+
filmDraggable = false
126+
filmPressedAt = false
125127

126128
elem =
127129
filmBackdrop: $("<div id='film-backdrop'></div>"),
@@ -136,20 +138,32 @@ this.createScrolledChart = (variable) ->
136138
elem.filmBackdrop.append(elem.film.append(elem.filmHandleLeft.append(elem.filmLabelContainerLeft.append(elem.filmLabelLeft)))
137139
.append(elem.filmHandleRight.append(elem.filmLabelContainerRight.append(elem.filmLabelRight))))
138140

139-
elem.filmHandleLeft.mousedown(() ->
141+
elem.filmHandleLeft.mousedown((event) ->
142+
event.preventDefault()
140143
filmHandleLeftDraggable = true
141144
elem.filmLabelLeft.css('visibility', 'visible')
145+
false
142146
)
143147

144-
elem.filmHandleRight.mousedown(() ->
148+
elem.filmHandleRight.mousedown((event) ->
149+
event.preventDefault()
145150
filmHandleRightDraggable = true
146151
elem.filmLabelRight.css('visibility', 'visible')
152+
false
153+
)
154+
155+
elem.film.mousedown((event) ->
156+
event.preventDefault()
157+
filmDraggable = true
158+
filmPressedAt = event.pageX - $(this).offset().left
147159
)
148160

149161
$(document).mouseup(() ->
150-
if filmHandleLeftDraggable or filmHandleRightDraggable
162+
if filmHandleLeftDraggable or filmHandleRightDraggable or filmDraggable
151163
filmHandleLeftDraggable = false
152164
filmHandleRightDraggable = false
165+
filmDraggable = false
166+
console.debug(filmDraggable)
153167
elem.filmLabelLeft.css('visibility', 'hidden')
154168
elem.filmLabelRight.css('visibility', 'hidden')
155169
redrawMainChart(dateOnScroll(elem.film.position().left),
@@ -159,6 +173,7 @@ this.createScrolledChart = (variable) ->
159173
onMouseMove = (event) ->
160174
minHandleDistance = 10
161175
newX = event.pageX - elem.film.offsetParent().offset().left
176+
console.debug(filmDraggable)
162177
if filmHandleLeftDraggable and newX < -minHandleDistance + elem.film.position().left + elem.film.outerWidth() - elem.filmHandleLeft.width() - elem.filmHandleRight.width()
163178
newX = Math.max(newX, 0)
164179
elem.film.css('width', elem.film.outerWidth() - newX + parseInt(elem.film.css('left')), 10)
@@ -168,6 +183,11 @@ this.createScrolledChart = (variable) ->
168183
newX = Math.min(newX, elem.film.offsetParent().width())
169184
elem.film.css('width', newX - elem.film.position().left)
170185
elem.filmLabelRight.html(scrollLabelDate(dateOnScroll(newX)))
186+
else if filmDraggable
187+
newX = newX - filmPressedAt
188+
newX = Math.min(Math.max(newX, 0),
189+
elem.film.offsetParent().width() - elem.film.width())
190+
elem.film.css('left', newX)
171191

172192
$(document).mousemove(onMouseMove)
173193

app/assets/stylesheets/oauth.css.scss

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,10 @@ div#film {
181181
background: rgba(0, 0, 0, 0.15);
182182
position: absolute;
183183
height: 100%;
184-
left: 0;
185-
width: 100%;
184+
left: 80%;
185+
width: 20%;
186186
border-radius: $standard-border-radius;
187+
cursor: ew-resize;
187188

188189
.film-handle.left {
189190
float: left;
@@ -198,10 +199,7 @@ div#film {
198199
height: 100%;
199200
background: #666;
200201
border-radius: $standard-border-radius;
201-
202-
&:hover {
203-
cursor: ew-resize;
204-
}
202+
cursor: col-resize;
205203

206204
.film-label-container {
207205
position: absolute;

0 commit comments

Comments
 (0)