pageflow-embedded-video 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -4
- data/Gemfile +0 -6
- data/README.md +5 -4
- data/app/assets/javascript/pageflow/embedded_video/page_type.js +32 -24
- data/app/assets/stylesheets/pageflow/embedded_video.css.scss +7 -7
- data/app/views/pageflow/embedded_video/page.html.erb +5 -5
- data/lib/pageflow/embedded_video/version.rb +1 -1
- data/pageflow-embedded-video.gemspec +2 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ab2a126175d3b53e98841097cd3b40da61ef743
|
4
|
+
data.tar.gz: 3421f5e51c631fa53d22b83d7c6480ccf5262ced
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a1f9a124ccbf200f36a485a13731213c056d0859be57c13369611325bb1796b17c1052ab0edb86a8d2f3ac479173c1f10f63aed04a477a36104ac9589931e32
|
7
|
+
data.tar.gz: c7ff2e8a5b96b0b07e923319047e3fb48e6703801a321788c64429a0d55d06d6fd7204da1e7a0ef05a652f1208debb9768188627fefd0f60a6e895d1dc562998
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
### Version 0.
|
3
|
+
### Version 0.3.0
|
4
4
|
|
5
|
-
2016-
|
5
|
+
2016-09-09
|
6
6
|
|
7
|
-
[Compare changes](https://github.com/codevise/pageflow-embedded-video/compare/v0.2.0...v0.
|
7
|
+
[Compare changes](https://github.com/codevise/pageflow-embedded-video/compare/v0.2.0...v0.3.0)
|
8
8
|
|
9
|
-
-
|
9
|
+
- Allow youtube urls with timecode
|
10
|
+
([#14](https://github.com/codevise/pageflow-embedded-video/pull/14))
|
11
|
+
- Align close button with slim player control
|
12
|
+
([#13](https://github.com/codevise/pageflow-embedded-video/pull/13))
|
10
13
|
|
11
14
|
### Version 0.2.0
|
12
15
|
|
data/Gemfile
CHANGED
@@ -2,9 +2,3 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in embedded-video.gemspec
|
4
4
|
gemspec
|
5
|
-
|
6
|
-
gem 'activeadmin', :git => 'https://github.com/codevise/active_admin.git', :branch => 'rails4'
|
7
|
-
gem 'ransack'
|
8
|
-
gem 'inherited_resources', '1.4.1'
|
9
|
-
gem 'formtastic', '2.3.0.rc2'
|
10
|
-
|
data/README.md
CHANGED
@@ -17,13 +17,13 @@ Register the page type:
|
|
17
17
|
|
18
18
|
# config/initializers/pageflow.rb
|
19
19
|
Pageflow.configure do |config|
|
20
|
-
config.
|
20
|
+
config.page_types.register(Pageflow::EmbeddedVideo.page_type)
|
21
21
|
end
|
22
22
|
|
23
23
|
Include javascript/stylesheets:
|
24
24
|
|
25
25
|
# app/assets/javascripts/pageflow/application.js
|
26
|
-
//= require
|
26
|
+
//= require pageflow/embedded_video
|
27
27
|
|
28
28
|
# app/assets/javascripts/pageflow/editor.js
|
29
29
|
//= require pageflow/embedded_video/editor
|
@@ -39,14 +39,15 @@ Include javascript/stylesheets:
|
|
39
39
|
|
40
40
|
## Configuration
|
41
41
|
|
42
|
-
|
42
|
+
Optionally, configure Pageflow Embedded Video by creating an initializer in your app
|
43
43
|
`config/initializers/pageflow_embedded_video.rb`.
|
44
44
|
|
45
45
|
Example:
|
46
46
|
|
47
47
|
Pageflow::EmbeddedVideo.configure do |config|
|
48
48
|
# Remove items to disallow hosts
|
49
|
-
#
|
49
|
+
# The listed hosts are supported by default:
|
50
|
+
# config.supported_hosts = %w(https://www.youtube.com http://www.youtube.com https://vimeo.com http://vimeo.com)
|
50
51
|
end
|
51
52
|
|
52
53
|
## Troubleshooting
|
@@ -12,7 +12,7 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
12
12
|
pageElement.find('.close_button, .iframe_container').click(function(event) {
|
13
13
|
event.stopPropagation();
|
14
14
|
that._pauseVideo();
|
15
|
-
pageElement.find('.iframe_container').removeClass('show');
|
15
|
+
pageElement.find('.iframe_container, .close_button').removeClass('show');
|
16
16
|
pageflow.hideText.deactivate();
|
17
17
|
});
|
18
18
|
|
@@ -125,13 +125,7 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
125
125
|
}
|
126
126
|
|
127
127
|
if (this.active) {
|
128
|
-
|
129
|
-
newUrl = configuration.get('display_embedded_video_url');
|
130
|
-
|
131
|
-
if (this._urlOrigin(currentUrl) === this._urlOrigin(newUrl)) {
|
132
|
-
this._updatePlayerSrc(pageElement, configuration);
|
133
|
-
}
|
134
|
-
else {
|
128
|
+
if (configuration.hasChanged('display_embedded_video_url')) {
|
135
129
|
this._removePlayer(pageElement, function() {
|
136
130
|
that._createPlayer(pageElement, configuration.attributes);
|
137
131
|
});
|
@@ -202,7 +196,8 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
202
196
|
width: '100%',
|
203
197
|
videoId: that._getVideoId(url),
|
204
198
|
playerVars: {
|
205
|
-
rel: false
|
199
|
+
rel: false,
|
200
|
+
start: that._getVideoStartTime(url)
|
206
201
|
},
|
207
202
|
events: {
|
208
203
|
'onReady': function(event) {
|
@@ -244,15 +239,6 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
244
239
|
});
|
245
240
|
},
|
246
241
|
|
247
|
-
_updatePlayerSrc: function(pageElement, configuration) {
|
248
|
-
var that = this,
|
249
|
-
newUrl = configuration.get('display_embedded_video_url'),
|
250
|
-
p = pageElement.find('iframe'),
|
251
|
-
url = new URI(p.attr('src'));
|
252
|
-
|
253
|
-
p.attr('src', url.filename(that._getVideoId(newUrl)));
|
254
|
-
},
|
255
|
-
|
256
242
|
_setPlayerVolume: function(value) {
|
257
243
|
if (this.player) {
|
258
244
|
if (typeof this.player.setVolume === 'function') {
|
@@ -288,7 +274,7 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
288
274
|
_initPlaceholderImage: function(pageElement, configuration) {
|
289
275
|
var $div = $(document.createElement('div')),
|
290
276
|
pageHeader = pageElement.find('.page_header'),
|
291
|
-
|
277
|
+
containerAndCloseButton = pageElement.find('.iframe_container, .close_button'),
|
292
278
|
url = configuration.display_embedded_video_url;
|
293
279
|
|
294
280
|
$div.addClass('iframe_overlay ' + this._urlOrigin(url));
|
@@ -298,7 +284,7 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
298
284
|
|
299
285
|
$div.click(function(event) {
|
300
286
|
event.preventDefault();
|
301
|
-
|
287
|
+
containerAndCloseButton.addClass('show');
|
302
288
|
pageflow.hideText.activate();
|
303
289
|
});
|
304
290
|
},
|
@@ -321,10 +307,6 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
321
307
|
}
|
322
308
|
},
|
323
309
|
|
324
|
-
_getCurrentUrl: function(pageElement) {
|
325
|
-
return pageElement.find('iframe').attr('src');
|
326
|
-
},
|
327
|
-
|
328
310
|
_urlOrigin: function(url) {
|
329
311
|
var uri = new URI(url),
|
330
312
|
domain = uri.domain(true);
|
@@ -358,6 +340,32 @@ pageflow.pageType.register('embedded_video', _.extend({
|
|
358
340
|
return '';
|
359
341
|
},
|
360
342
|
|
343
|
+
_getVideoStartTime: function(url) {
|
344
|
+
var query = new URI(url).query();
|
345
|
+
var params = query.split('&');
|
346
|
+
var that = this;
|
347
|
+
|
348
|
+
return _.reduce(params, function(result, param) {
|
349
|
+
var parts = param.split('=');
|
350
|
+
|
351
|
+
if (parts[0] === 't') {
|
352
|
+
return that._timestampToSeconds(parts[1] || '');
|
353
|
+
}
|
354
|
+
|
355
|
+
return result;
|
356
|
+
}, 0);
|
357
|
+
},
|
358
|
+
|
359
|
+
_timestampToSeconds: function(timestamp) {
|
360
|
+
if (timestamp.match(/\d+m(\d+s)?/)) {
|
361
|
+
var parts = timestamp.split('m');
|
362
|
+
return parseInt(parts[0], 10) * 60 + parseInt(parts[1] || 0, 10);
|
363
|
+
}
|
364
|
+
else {
|
365
|
+
return 0;
|
366
|
+
}
|
367
|
+
},
|
368
|
+
|
361
369
|
_getRandom: function(string) {
|
362
370
|
string = string + new Date().getTime();
|
363
371
|
var hash = 0, i, chr, len;
|
@@ -139,11 +139,15 @@
|
|
139
139
|
}
|
140
140
|
}
|
141
141
|
|
142
|
-
.
|
143
|
-
|
144
|
-
|
142
|
+
.close_button {
|
143
|
+
display: none;
|
144
|
+
|
145
|
+
.has_mobile_platform &.show {
|
146
|
+
display: block;
|
145
147
|
}
|
148
|
+
}
|
146
149
|
|
150
|
+
.iframe_container {
|
147
151
|
.has_mobile_platform & {
|
148
152
|
pointer-events: none;
|
149
153
|
height: 0;
|
@@ -177,10 +181,6 @@
|
|
177
181
|
right: 0;
|
178
182
|
bottom: 0;
|
179
183
|
opacity: 1;
|
180
|
-
|
181
|
-
.close_button {
|
182
|
-
display: block;
|
183
|
-
}
|
184
184
|
}
|
185
185
|
|
186
186
|
.iframe_wrapper {
|
@@ -1,5 +1,10 @@
|
|
1
1
|
<div class="blackLayer"></div>
|
2
2
|
<div class="content_and_background embedded_video_page">
|
3
|
+
<div class="close_button" tabindex="4" title="<%= t('pageflow.public.embedded_video.leave_video') %>">
|
4
|
+
<div class="label">
|
5
|
+
<%= t('pageflow.public.close') %>
|
6
|
+
</div>
|
7
|
+
</div>
|
3
8
|
|
4
9
|
<div class="backgroundArea">
|
5
10
|
<%= background_image_div(configuration, 'background_image') %>
|
@@ -25,11 +30,6 @@
|
|
25
30
|
</div>
|
26
31
|
</div>
|
27
32
|
<div class="iframe_container">
|
28
|
-
<div class="close_button" tabindex="4" title="<%= t('pageflow.public.embedded_video.leave_video') %>">
|
29
|
-
<div class="label">
|
30
|
-
<%= t('pageflow.public.close') %>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
33
|
<div class="iframe_wrapper"></div>
|
34
34
|
<% if configuration['video_caption'].present? %>
|
35
35
|
<div class="video_caption"><%= configuration['video_caption'] %></div>
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'pageflow', '~> 0.
|
20
|
+
spec.add_runtime_dependency 'pageflow', '~> 0.11'
|
21
21
|
spec.add_runtime_dependency 'i18n-js'
|
22
22
|
spec.add_runtime_dependency 'pageflow-public-i18n', '~> 1.0'
|
23
23
|
|
@@ -26,5 +26,5 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "webmock"
|
27
27
|
|
28
28
|
# Semantic versioning rake tasks
|
29
|
-
spec.add_development_dependency 'semmy', '~> 0.
|
29
|
+
spec.add_development_dependency 'semmy', '~> 0.3'
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pageflow-embedded-video
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Schöttelndreyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pageflow
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.11'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: i18n-js
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
103
|
+
version: '0.3'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
110
|
+
version: '0.3'
|
111
111
|
description:
|
112
112
|
email:
|
113
113
|
- sschoettelndreyer@codevise.de
|
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
177
|
version: '0'
|
178
178
|
requirements: []
|
179
179
|
rubyforge_project:
|
180
|
-
rubygems_version: 2.
|
180
|
+
rubygems_version: 2.5.1
|
181
181
|
signing_key:
|
182
182
|
specification_version: 4
|
183
183
|
summary: Pagetype for embedded youtube/vimeo videos
|