Skip to content

Commit f131a87

Browse files
committed
youtubelink: check start <= end & pulled into own function
1 parent 73f7ff2 commit f131a87

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

coffee/src/shells/videolink.shell.coffee

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,12 @@ class VideoLinkShell.RemixView extends LinkShell.RemixView
291291
_setTimeInputMax: =>
292292
@timeRangeView.setMax @model.timeTotal()
293293

294+
_setClipRange: =>
295+
@timeRangeView.values {
296+
start: @model.timeStart()
297+
end: @model.timeEnd()
298+
}
299+
294300

295301
onChangeTimes: (changed) =>
296302
changes = {}

coffee/src/shells/youtube.shell.coffee

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,10 @@ class YouTubeShell.RemixView extends VideoLinkShell.RemixView
107107
super
108108
@metaData().sync success: @onMetaDataSync
109109

110-
111-
onMetaDataSync: (data) =>
112-
@model._fetchedDefaults ?= {}
113-
@model._fetchedDefaults = title: data.data.title
114-
@model.timeTotal data.data.duration
115-
116-
@model._updateAttributesWithDefaults()
117-
start = acorn.util.fetchParameters this.model.link(), ["t", "start"]
118-
# take the first possible valid parameter
119-
110+
# Default start/end can only be set once player metadata
111+
# is avaiilable and initialized. Otherwise, default values
112+
# will override the start/end times.
113+
initializeDefaultClip: =>
120114
start = @model.timeStart()
121115
unless _.isNumber start
122116
start = acorn.util.fetchParameters this.model.link(), ["t", "start"]
@@ -131,12 +125,20 @@ class YouTubeShell.RemixView extends VideoLinkShell.RemixView
131125
unless _.isNumber end
132126
end = @model.timeTotal()
133127

128+
end = if end >= start then end else @model.timeTotal()
129+
# Clip range must be set before progress bar is initialized
134130
@model.timeStart(start)
135131
@model.timeEnd(end)
136-
137-
@_setTimeInputMin()
138-
@_setTimeInputMax()
132+
@_setClipRange()
133+
134+
onMetaDataSync: (data) =>
135+
@model._fetchedDefaults ?= {}
136+
@model._fetchedDefaults = title: data.data.title
137+
@model._updateAttributesWithDefaults()
138+
@model.timeTotal data.data.duration
139139

140+
@initializeDefaultClip()
141+
@_setTimeInputMax()
140142

141143
metaData: =>
142144
if @model.metaDataUrl() and not @_metaData

0 commit comments

Comments
 (0)