Commit 7f56684e6d4cd4a9498cbcc1f5371066e94654af
1 parent
4c381ac2
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
removed video.js and other improvements
Showing
13 changed files
with
175 additions
and
130 deletions
Show diff stats
plugins/video/lib/video_plugin/video.rb
| ... | ... | @@ -7,7 +7,7 @@ class VideoPlugin::Video < Article |
| 7 | 7 | settings_items :video_url, :type => :string, :default => 'http://' |
| 8 | 8 | settings_items :video_width, :type => :integer, :default => 499 |
| 9 | 9 | settings_items :video_height, :type => :integer, :default => 353 |
| 10 | - #youtube, vimeo, file | |
| 10 | + #Video Providers are: youtube, vimeo, file | |
| 11 | 11 | settings_items :video_provider, :type => :string |
| 12 | 12 | settings_items :video_format, :type => :string |
| 13 | 13 | settings_items :video_id, :type => :string |
| ... | ... | @@ -18,7 +18,7 @@ class VideoPlugin::Video < Article |
| 18 | 18 | |
| 19 | 19 | attr_accessible :video_url |
| 20 | 20 | |
| 21 | - before_save :detect_video | |
| 21 | + before_save :fill_video_properties | |
| 22 | 22 | |
| 23 | 23 | def self.type_name |
| 24 | 24 | _('Video') |
| ... | ... | @@ -35,6 +35,14 @@ class VideoPlugin::Video < Article |
| 35 | 35 | def self.description |
| 36 | 36 | _('Display embedded videos.') |
| 37 | 37 | end |
| 38 | + | |
| 39 | + def is_youtube? | |
| 40 | + VideoPlugin::Video.is_youtube?(self.video_url) | |
| 41 | + end | |
| 42 | + | |
| 43 | + def is_vimeo? | |
| 44 | + VideoPlugin::Video.is_vimeo?(self.video_url) | |
| 45 | + end | |
| 38 | 46 | |
| 39 | 47 | include ActionView::Helpers::TagHelper |
| 40 | 48 | def to_html(options={}) |
| ... | ... | @@ -64,49 +72,97 @@ class VideoPlugin::Video < Article |
| 64 | 72 | '<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>' |
| 65 | 73 | end |
| 66 | 74 | |
| 75 | + def self.is_youtube?(video_url) | |
| 76 | + video_url.match(/.*(youtube.com.*v=[#{YOUTUBE_ID_FORMAT}]+|youtu.be\/[#{YOUTUBE_ID_FORMAT}]+).*/) ? true : false | |
| 77 | + end | |
| 78 | + | |
| 79 | + def self.is_vimeo?(video_url) | |
| 80 | + video_url.match(/^(http[s]?:\/\/)?(www.)?(vimeo.com|player.vimeo.com\/video)\/([A-z]|\/)*[[:digit:]]+/) ? true : false | |
| 81 | + end | |
| 82 | + | |
| 83 | + def self.is_video_file?(video_url) | |
| 84 | + video_url.match(/\.(mp4|ogg|ogv|webm)/) ? true : false | |
| 85 | + end | |
| 86 | + | |
| 87 | + def self.format_embed_video_url_for_youtube(video_url) | |
| 88 | + "//www.youtube-nocookie.com/embed/#{extract_youtube_id(video_url)}?rel=0&wmode=transparent" if is_youtube?(video_url) | |
| 89 | + end | |
| 90 | + | |
| 91 | + def self.format_embed_video_url_for_vimeo(video_url) | |
| 92 | + "//player.vimeo.com/video/#{extract_vimeo_id(video_url)}" if is_vimeo?(video_url) | |
| 93 | + end | |
| 94 | + | |
| 95 | + def format_embed_video_url_for_youtube | |
| 96 | + VideoPlugin::Video.format_embed_video_url_for_youtube(self.video_url) | |
| 97 | + end | |
| 98 | + | |
| 99 | + def format_embed_video_url_for_vimeo | |
| 100 | + VideoPlugin::Video.format_embed_video_url_for_vimeo(self.video_url) | |
| 101 | + end | |
| 102 | + | |
| 103 | + def self.extract_youtube_id(video_url) | |
| 104 | + return nil unless self.is_youtube?(video_url) | |
| 105 | + youtube_match = video_url.match("v=([#{YOUTUBE_ID_FORMAT}]*)") | |
| 106 | + youtube_match ||= video_url.match("youtu.be\/([#{YOUTUBE_ID_FORMAT}]*)") | |
| 107 | + youtube_match[1] unless youtube_match.nil? | |
| 108 | + end | |
| 109 | + | |
| 110 | + def self.extract_vimeo_id(video_url) | |
| 111 | + return nil unless self.is_vimeo?(video_url) | |
| 112 | + vimeo_match = video_url.match('([[:digit:]]*)$') | |
| 113 | + vimeo_match[1] unless vimeo_match.nil? | |
| 114 | + end | |
| 115 | + | |
| 67 | 116 | private |
| 68 | 117 | |
| 69 | 118 | YOUTUBE_ID_FORMAT = '\w-' |
| 70 | 119 | |
| 71 | - def detect_video | |
| 120 | + def fill_video_properties | |
| 72 | 121 | if is_youtube? |
| 73 | - self.video_provider = 'youtube' | |
| 74 | - self.video_id = extract_youtube_id | |
| 75 | - url = "http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D#{self.video_id}&format=json" | |
| 76 | - resp = Net::HTTP.get_response(URI.parse(url)) | |
| 77 | - buffer = resp.body | |
| 78 | - vid = JSON.parse(buffer) | |
| 79 | - self.video_thumbnail_url = vid['thumbnail_url'] | |
| 80 | - self.video_width = vid['width'] | |
| 81 | - self.video_height = vid['height'] | |
| 82 | - self.video_thumbnail_width = vid['thumbnail_width'] | |
| 83 | - self.video_thumbnail_height = vid['thumbnail_height'] | |
| 84 | - url = "http://gdata.youtube.com/feeds/api/videos/#{self.video_id}?alt=json"; | |
| 85 | - resp = Net::HTTP.get_response(URI.parse(url)) | |
| 86 | - buffer = resp.body | |
| 87 | - vid = JSON.parse(buffer) | |
| 88 | - self.video_duration = vid['entry']['media$group']['media$content'][0]['duration'] | |
| 122 | + fill_youtube_video_properties | |
| 89 | 123 | elsif is_vimeo? |
| 90 | - self.video_provider = 'vimeo' | |
| 91 | - self.video_id = extract_vimeo_id | |
| 92 | - url = "http://vimeo.com/api/v2/video/#{self.video_id}.json" | |
| 93 | - resp = Net::HTTP.get_response(URI.parse(url)) | |
| 94 | - buffer = resp.body | |
| 95 | - vid = JSON.parse(buffer) | |
| 96 | - vid = vid[0] | |
| 97 | - #raise vid.to_yaml | |
| 98 | - self.video_thumbnail_url = vid['thumbnail_large'] | |
| 99 | - self.video_width = vid['width'] | |
| 100 | - self.video_height = vid['height'] | |
| 101 | - self.video_thumbnail_width = 640 | |
| 102 | - self.video_thumbnail_height = 360 | |
| 124 | + fill_vimeo_video_properties | |
| 103 | 125 | elsif true |
| 104 | - self.video_format = detect_format | |
| 126 | + self.video_format = detect_file_format | |
| 105 | 127 | self.video_provider = 'file' |
| 106 | 128 | end |
| 107 | 129 | end |
| 108 | 130 | |
| 109 | - def detect_format | |
| 131 | + def fill_youtube_video_properties | |
| 132 | + self.video_provider = 'youtube' | |
| 133 | + self.video_id = extract_youtube_id | |
| 134 | + url = "http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D#{self.video_id}&format=json" | |
| 135 | + resp = Net::HTTP.get_response(URI.parse(url)) | |
| 136 | + buffer = resp.body | |
| 137 | + vid = JSON.parse(buffer) | |
| 138 | + self.video_thumbnail_url = vid['thumbnail_url'] | |
| 139 | + self.video_width = vid['width'] | |
| 140 | + self.video_height = vid['height'] | |
| 141 | + self.video_thumbnail_width = vid['thumbnail_width'] | |
| 142 | + self.video_thumbnail_height = vid['thumbnail_height'] | |
| 143 | + url = "http://gdata.youtube.com/feeds/api/videos/#{self.video_id}?alt=json"; | |
| 144 | + resp = Net::HTTP.get_response(URI.parse(url)) | |
| 145 | + buffer = resp.body | |
| 146 | + vid = JSON.parse(buffer) | |
| 147 | + self.video_duration = vid['entry']['media$group']['media$content'][0]['duration'] | |
| 148 | + end | |
| 149 | + | |
| 150 | + def fill_vimeo_video_properties | |
| 151 | + self.video_provider = 'vimeo' | |
| 152 | + self.video_id = extract_vimeo_id | |
| 153 | + url = "http://vimeo.com/api/v2/video/#{self.video_id}.json" | |
| 154 | + resp = Net::HTTP.get_response(URI.parse(url)) | |
| 155 | + buffer = resp.body | |
| 156 | + vid = JSON.parse(buffer) | |
| 157 | + vid = vid[0] | |
| 158 | + self.video_thumbnail_url = vid['thumbnail_large'] | |
| 159 | + self.video_width = vid['width'] | |
| 160 | + self.video_height = vid['height'] | |
| 161 | + self.video_thumbnail_width = 640 | |
| 162 | + self.video_thumbnail_height = 360 | |
| 163 | + end | |
| 164 | + | |
| 165 | + def detect_file_format | |
| 110 | 166 | video_type = 'video/unknown' |
| 111 | 167 | if /.mp4/i =~ self.video_url or /.mov/i =~ self.video_url |
| 112 | 168 | video_type='video/mp4' |
| ... | ... | @@ -118,28 +174,12 @@ class VideoPlugin::Video < Article |
| 118 | 174 | video_type |
| 119 | 175 | end |
| 120 | 176 | |
| 121 | - def is_youtube? | |
| 122 | - video_url.match(/.*(youtube.com.*v=[#{YOUTUBE_ID_FORMAT}]+|youtu.be\/[#{YOUTUBE_ID_FORMAT}]+).*/) ? true : false | |
| 123 | - end | |
| 124 | - | |
| 125 | - def is_vimeo? | |
| 126 | - video_url.match(/^(http[s]?:\/\/)?(www.)?(vimeo.com|player.vimeo.com\/video)\/([A-z]|\/)*[[:digit:]]+/) ? true : false | |
| 127 | - end | |
| 128 | - | |
| 129 | - def is_video_file? | |
| 130 | - video_url.match(/\.(mp4|ogg|ogv|webm)/) ? true : false | |
| 131 | - end | |
| 132 | - | |
| 133 | 177 | def extract_youtube_id |
| 134 | - return nil unless is_youtube? | |
| 135 | - youtube_match = video_url.match("v=([#{YOUTUBE_ID_FORMAT}]*)") | |
| 136 | - youtube_match ||= video_url.match("youtu.be\/([#{YOUTUBE_ID_FORMAT}]*)") | |
| 137 | - youtube_match[1] unless youtube_match.nil? | |
| 178 | + VideoPlugin::Video.extract_youtube_id(self.video_url) | |
| 138 | 179 | end |
| 139 | 180 | |
| 140 | 181 | def extract_vimeo_id |
| 141 | - return nil unless is_vimeo? | |
| 142 | - vimeo_match = video_url.match('([[:digit:]]*)$') | |
| 143 | - vimeo_match[1] unless vimeo_match.nil? | |
| 182 | + VideoPlugin::Video.extract_vimeo_id(self.video_url) | |
| 144 | 183 | end |
| 184 | + | |
| 145 | 185 | end | ... | ... |
plugins/video/lib/video_plugin/video_block.rb
| ... | ... | @@ -9,11 +9,11 @@ class VideoPlugin::VideoBlock < Block |
| 9 | 9 | YOUTUBE_ID_FORMAT = '\w-' |
| 10 | 10 | |
| 11 | 11 | def is_youtube? |
| 12 | - url.match(/.*(youtube.com.*v=[#{YOUTUBE_ID_FORMAT}]+|youtu.be\/[#{YOUTUBE_ID_FORMAT}]+).*/) ? true : false | |
| 12 | + VideoPlugin::Video.is_youtube?(url) | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | def is_vimeo? |
| 16 | - url.match(/^(http[s]?:\/\/)?(www.)?(vimeo.com|player.vimeo.com\/video)\/[[:digit:]]+/) ? true : false | |
| 16 | + VideoPlugin::Video.is_vimeo?(url) | |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | 19 | def is_video_file? |
| ... | ... | @@ -21,11 +21,11 @@ class VideoPlugin::VideoBlock < Block |
| 21 | 21 | end |
| 22 | 22 | |
| 23 | 23 | def format_embed_video_url_for_youtube |
| 24 | - "//www.youtube-nocookie.com/embed/#{extract_youtube_id}?rel=0&wmode=transparent" if is_youtube? | |
| 24 | + VideoPlugin::Video.format_embed_video_url_for_youtube(url) | |
| 25 | 25 | end |
| 26 | 26 | |
| 27 | 27 | def format_embed_video_url_for_vimeo |
| 28 | - "//player.vimeo.com/video/#{extract_vimeo_id}" if is_vimeo? | |
| 28 | + VideoPlugin::Video.format_embed_video_url_for_vimeo(url) | |
| 29 | 29 | end |
| 30 | 30 | |
| 31 | 31 | def self.description |
| ... | ... | @@ -47,16 +47,11 @@ class VideoPlugin::VideoBlock < Block |
| 47 | 47 | private |
| 48 | 48 | |
| 49 | 49 | def extract_youtube_id |
| 50 | - return nil unless is_youtube? | |
| 51 | - youtube_match = url.match("v=([#{YOUTUBE_ID_FORMAT}]*)") | |
| 52 | - youtube_match ||= url.match("youtu.be\/([#{YOUTUBE_ID_FORMAT}]*)") | |
| 53 | - youtube_match[1] unless youtube_match.nil? | |
| 50 | + VideoPlugin::Video.extract_youtube_id(url) | |
| 54 | 51 | end |
| 55 | 52 | |
| 56 | 53 | def extract_vimeo_id |
| 57 | - return nil unless is_vimeo? | |
| 58 | - vimeo_match = url.match('([[:digit:]]*)$') | |
| 59 | - vimeo_match[1] unless vimeo_match.nil? | |
| 54 | + VideoPlugin::Video.extract_vimeo_id(url) | |
| 60 | 55 | end |
| 61 | 56 | |
| 62 | 57 | end | ... | ... |
plugins/video/public/css/video-js-4.5.1.css
| ... | ... | @@ -1,5 +0,0 @@ |
| 1 | -/*! | |
| 2 | -Video.js Default Styles (http://videojs.com) | |
| 3 | -Version 4.5.1 | |
| 4 | -Create your own skin at http://designer.videojs.com | |
| 5 | -*/.vjs-default-skin{color:#ccc}@font-face{font-family:VideoJS;src:url(../f/2/vjs.eot);src:url(../f/2/vjs.eot?#iefix) format('embedded-opentype'),url(../f/2/vjs.woff) format('woff'),url(../f/2/vjs.ttf) format('truetype');font-weight:400;font-style:normal}.vjs-default-skin .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,.9)}.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.vjs-default-skin .vjs-slider-handle{position:absolute;left:0;top:0}.vjs-default-skin .vjs-slider-handle:before{content:"\e009";font-family:VideoJS;font-size:1em;line-height:1;text-align:center;text-shadow:0 0 1em #fff;position:absolute;top:0;left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.vjs-default-skin .vjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#07141e;background-color:rgba(7,20,30,.7)}.vjs-default-skin.vjs-has-started .vjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{display:none}@media \0screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-default-skin .vjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.vjs-default-skin .vjs-control:before{font-family:VideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{text-shadow:0 0 1em #fff}.vjs-default-skin .vjs-control:focus{}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer}.vjs-default-skin .vjs-play-control:before{content:"\e001"}.vjs-default-skin.vjs-playing .vjs-play-control:before{content:"\e002"}.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{cursor:pointer;float:right}.vjs-default-skin .vjs-mute-control:before,.vjs-default-skin .vjs-volume-menu-button:before{content:"\e006"}.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before{content:"\e003"}.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before{content:"\e004"}.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before{content:"\e005"}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content{height:2.9em}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.5em;background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{width:.5em;height:.5em}.vjs-default-skin .vjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{width:6em;left:-4em}.vjs-default-skin .vjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin:hover .vjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.vjs-default-skin .vjs-progress-holder{height:100%}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.vjs-default-skin .vjs-play-progress{background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.vjs-default-skin .vjs-seek-handle{width:1.5em;height:100%}.vjs-default-skin .vjs-seek-handle:before{padding-top:.1em}.vjs-default-skin .vjs-time-controls{font-size:1em;line-height:3em}.vjs-default-skin .vjs-current-time{float:left}.vjs-default-skin .vjs-duration{float:left}.vjs-default-skin .vjs-remaining-time{display:none;float:left}.vjs-time-divider{float:left;line-height:3em}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.vjs-default-skin .vjs-fullscreen-control:before{content:"\e000"}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before{content:"\e00b"}.vjs-default-skin .vjs-big-play-button{left:.5em;top:.5em;font-size:3em;display:block;z-index:2;position:absolute;width:4em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#07141e;background-color:rgba(7,20,30,.7);border:.1em solid #3b4249;-webkit-border-radius:.8em;-moz-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 0 1em rgba(255,255,255,.25);-moz-box-shadow:0 0 1em rgba(255,255,255,.25);box-shadow:0 0 1em rgba(255,255,255,.25);-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{left:50%;margin-left:-2.1em;top:50%;margin-top:-1.4000000000000001em}.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{display:none}.vjs-default-skin.vjs-has-started .vjs-big-play-button{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#505050;background-color:rgba(50,50,50,.75);-webkit-box-shadow:0 0 3em #fff;-moz-box-shadow:0 0 3em #fff;box-shadow:0 0 3em #fff;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-default-skin .vjs-big-play-button:before{content:"\e001";font-family:VideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-default-skin .vjs-loading-spinner:before{content:"\e01e";font-family:VideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.vjs-default-skin .vjs-menu-button{float:right;cursor:pointer}.vjs-default-skin .vjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.vjs-default-skin .vjs-menu-button:hover .vjs-menu{display:block}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{background-color:#000}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{outline:0;color:#111;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-default-skin .vjs-subtitles-button:before{content:"\e00c"}.vjs-default-skin .vjs-captions-button:before{content:"\e008"}.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:400;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;height:100%;margin:0;padding:0;position:relative;width:100%}.vjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{display:none;font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-default-skin .vjs-hidden{display:none}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible} | |
| 6 | 0 | \ No newline at end of file |
plugins/video/public/css/video-js-4.8.5.css
| ... | ... | @@ -1,5 +0,0 @@ |
| 1 | -/*! | |
| 2 | -Video.js Default Styles (http://videojs.com) | |
| 3 | -Version 4.8.5 | |
| 4 | -Create your own skin at http://designer.videojs.com | |
| 5 | -*/.vjs-default-skin{color:#ccc}@font-face{font-family:VideoJS;src:url(../f/3/vjs.eot);src:url(../f/3/vjs.eot?#iefix) format('embedded-opentype'),url(../f/3/vjs.woff) format('woff'),url(../f/3/vjs.ttf) format('truetype'),url(../f/3/vjs.svg#icomoon) format('svg');font-weight:400;font-style:normal}.vjs-default-skin .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,.9)}.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.vjs-default-skin .vjs-slider-handle{position:absolute;left:0;top:0}.vjs-default-skin .vjs-slider-handle:before{content:"\e009";font-family:VideoJS;font-size:1em;line-height:1;text-align:center;text-shadow:0 0 1em #fff;position:absolute;top:0;left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.vjs-default-skin .vjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#07141e;background-color:rgba(7,20,30,.7)}.vjs-default-skin.vjs-has-started .vjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{display:none}.vjs-default-skin.vjs-error .vjs-control-bar{display:none}@media \0screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-default-skin .vjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.vjs-default-skin .vjs-control:before{font-family:VideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{text-shadow:0 0 1em #fff}.vjs-default-skin .vjs-control:focus{}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer}.vjs-default-skin .vjs-play-control:before{content:"\e001"}.vjs-default-skin.vjs-playing .vjs-play-control:before{content:"\e002"}.vjs-default-skin .vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content{width:4em;left:-2em;list-style:none}.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{cursor:pointer;float:right}.vjs-default-skin .vjs-mute-control:before,.vjs-default-skin .vjs-volume-menu-button:before{content:"\e006"}.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before{content:"\e003"}.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before{content:"\e004"}.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before{content:"\e005"}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content{height:2.9em}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{width:.5em;height:.5em;left:4.5em}.vjs-default-skin .vjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{width:6em;left:-4em}.vjs-default-skin .vjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin:hover .vjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.vjs-default-skin .vjs-progress-holder{height:100%}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0;left:0;top:0}.vjs-default-skin .vjs-play-progress{background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-load-progress{background:#646464;background:rgba(255,255,255,.2)}.vjs-default-skin .vjs-load-progress div{background:#787878;background:rgba(255,255,255,.1)}.vjs-default-skin .vjs-seek-handle{width:1.5em;height:100%}.vjs-default-skin .vjs-seek-handle:before{padding-top:.1em}.vjs-default-skin.vjs-live .vjs-time-controls,.vjs-default-skin.vjs-live .vjs-time-divider,.vjs-default-skin.vjs-live .vjs-progress-control{display:none}.vjs-default-skin.vjs-live .vjs-live-display{display:block}.vjs-default-skin .vjs-live-display{display:none;font-size:1em;line-height:3em}.vjs-default-skin .vjs-time-controls{font-size:1em;line-height:3em}.vjs-default-skin .vjs-current-time{float:left}.vjs-default-skin .vjs-duration{float:left}.vjs-default-skin .vjs-remaining-time{display:none;float:left}.vjs-time-divider{float:left;line-height:3em}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.vjs-default-skin .vjs-fullscreen-control:before{content:"\e000"}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before{content:"\e00b"}.vjs-default-skin .vjs-big-play-button{left:.5em;top:.5em;font-size:3em;display:block;z-index:2;position:absolute;width:4em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#07141e;background-color:rgba(7,20,30,.7);border:.1em solid #3b4249;-webkit-border-radius:.8em;-moz-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 0 1em rgba(255,255,255,.25);-moz-box-shadow:0 0 1em rgba(255,255,255,.25);box-shadow:0 0 1em rgba(255,255,255,.25);-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{left:50%;margin-left:-2.1em;top:50%;margin-top:-1.4000000000000001em}.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{display:none}.vjs-default-skin.vjs-has-started .vjs-big-play-button{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#505050;background-color:rgba(50,50,50,.75);-webkit-box-shadow:0 0 3em #fff;-moz-box-shadow:0 0 3em #fff;box-shadow:0 0 3em #fff;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-default-skin .vjs-big-play-button:before{content:"\e001";font-family:VideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.vjs-error .vjs-big-play-button{display:none}.vjs-error-display{display:none}.vjs-error .vjs-error-display{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.vjs-error .vjs-error-display:before{content:'X';font-family:Arial;font-size:4em;color:#666;line-height:1;text-shadow:.05em .05em .1em #000;text-align:center;vertical-align:middle;position:absolute;left:0;top:50%;margin-top:-.5em;width:100%}.vjs-error-display div{position:absolute;bottom:1em;right:0;left:0;font-size:1.4em;text-align:center;padding:3px;background:#000;background:rgba(0,0,0,.5)}.vjs-error-display a,.vjs-error-display a:visited{color:#F4A460}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75}.vjs-waiting .vjs-loading-spinner,.vjs-seeking .vjs-loading-spinner{display:block;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-error .vjs-loading-spinner{display:none;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}.vjs-default-skin .vjs-loading-spinner:before{content:"\e01e";font-family:VideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.vjs-default-skin .vjs-menu-button{float:right;cursor:pointer}.vjs-default-skin .vjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.vjs-default-skin .vjs-menu-button:hover .vjs-menu{display:block}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{background-color:#000}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{outline:0;color:#111;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-default-skin .vjs-subtitles-button:before{content:"\e00c"}.vjs-default-skin .vjs-captions-button:before{content:"\e008"}.vjs-default-skin .vjs-chapters-button:before{content:"\e00c"}.vjs-default-skin .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content{width:24em;left:-12em}.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:400;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0}.vjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{display:none;font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-default-skin .vjs-hidden{display:none}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#ccc;background-color:#333;font-size:18px;font-family:Arial,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#F4A460} | |
| 6 | 0 | \ No newline at end of file |
plugins/video/public/f/2/vjs.eot
No preview for this file type
plugins/video/public/f/2/vjs.svg
| ... | ... | @@ -1,28 +0,0 @@ |
| 1 | -<?xml version="1.0" standalone="no"?> | |
| 2 | -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | |
| 3 | -<svg xmlns="http://www.w3.org/2000/svg"> | |
| 4 | -<metadata>Generated by IcoMoon</metadata> | |
| 5 | -<defs> | |
| 6 | -<font id="icomoon" horiz-adv-x="1024"> | |
| 7 | -<font-face units-per-em="1024" ascent="960" descent="-64" /> | |
| 8 | -<missing-glyph horiz-adv-x="1024" /> | |
| 9 | -<glyph unicode=" " d="" horiz-adv-x="512" /> | |
| 10 | -<glyph unicode="" d="M1024 960v-416l-160 160-192-192-96 96 192 192-160 160zM448 288l-192-192 160-160h-416v416l160-160 192 192z" /> | |
| 11 | -<glyph unicode="" d="M192 832l640-384-640-384z" /> | |
| 12 | -<glyph unicode="" d="M128 832h320v-768h-320zM576 832h320v-768h-320z" /> | |
| 13 | -<glyph unicode="" d="M401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" /> | |
| 14 | -<glyph unicode="" d="M549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" /> | |
| 15 | -<glyph unicode="" d="M719.53 128.47c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.592 126.53-190.076 126.53-305.468 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060zM549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" /> | |
| 16 | -<glyph unicode="" d="M890.040 37.96c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.746-18.744 49.136 0 67.882 87.638 87.642 135.904 204.16 135.904 328.1 0 123.938-48.266 240.458-135.904 328.098-18.744 18.746-18.744 49.138 0 67.882 18.744 18.744 49.138 18.744 67.882 0 105.77-105.772 164.022-246.4 164.022-395.98 0-149.582-58.252-290.208-164.022-395.98-9.372-9.374-21.656-14.060-33.94-14.060zM719.53 128.47c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.592 126.53-190.076 126.53-305.468 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060zM549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" horiz-adv-x="1088" /> | |
| 17 | -<glyph unicode="" d="M512 960l-320-512 320-512 320 512z" /> | |
| 18 | -<glyph unicode="" d="M0 960h1374.316v-1030.414h-1374.316v1030.414zM1245.462 449.276c-1.706 180.052-8.542 258.568-51.2 314.036-7.68 11.946-22.186 18.772-34.132 27.296-41.814 30.73-238.944 41.814-467.636 41.814-228.702 0-435.21-11.084-476.17-41.814-12.8-8.524-27.316-15.35-35.84-27.296-41.822-55.468-47.786-133.984-50.346-314.036 2.56-180.062 8.524-258.57 50.346-314.036 8.524-12.8 23.040-18.774 35.84-27.306 40.96-31.574 247.468-41.814 476.17-43.52 228.692 1.706 425.822 11.946 467.636 43.52 11.946 8.532 26.452 14.506 34.132 27.306 42.658 55.466 49.494 133.974 51.2 314.036zM662.358 495.904c-11.58 140.898-86.51 223.906-220.556 223.906-122.458 0-218.722-110.432-218.722-287.88 0-178.212 87.73-289.396 232.734-289.396 115.766 0 196.798 85.298 209.588 226.95h-138.302c-5.48-52.548-27.414-92.914-73.72-92.914-73.108 0-86.51 72.354-86.51 149.27 0 105.868 30.46 159.932 81.032 159.932 45.082 0 73.718-32.75 77.976-89.868h136.48zM1140.026 495.904c-11.57 140.898-86.51 223.906-220.546 223.906-122.466 0-218.722-110.432-218.722-287.88 0-178.212 87.73-289.396 232.734-289.396 115.758 0 196.788 85.298 209.58 226.95h-138.304c-5.47-52.548-27.404-92.914-73.71-92.914-73.116 0-86.518 72.354-86.518 149.27 0 105.868 30.468 159.932 81.030 159.932 45.084 0 73.728-32.75 77.986-89.868h136.47z" horiz-adv-x="1374" /> | |
| 19 | -<glyph unicode="" d="M128 832h768v-768h-768z" /> | |
| 20 | -<glyph unicode="" d="M384 832c0-70.692 57.308-128 128-128s128 57.308 128 128c0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM655.53 719.53c0-70.692 57.308-128 128-128s128 57.308 128 128c0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM832 448c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM719.53 176.47c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM448.002 64c0 0 0 0 0 0 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 0 0 0 0 0 0 0 0 0 0 0 0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64s0 0 0 0zM176.472 176.47c0 0 0 0 0 0 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 0 0 0 0 0 0 0 0 0 0 0 0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64s0 0 0 0zM144.472 719.53c0 0 0 0 0 0 0-53.019 42.981-96 96-96 53.019 0 96 42.981 96 96 0 0 0 0 0 0 0 0 0 0 0 0 0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96s0 0 0 0zM56 448c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.765-32.235 72-72 72-39.765 0-72-32.235-72-72z" /> | |
| 21 | -<glyph unicode="" d="M448 384v-416l-160 160-192-192-96 96 192 192-160 160zM1024 864l-192-192 160-160h-416v416l160-160 192 192z" /> | |
| 22 | -<glyph unicode="" d="M512 896c282.77 0 512-186.25 512-416 0-229.752-229.23-416-512-416-27.156 0-53.81 1.734-79.824 5.044-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416z" /> | |
| 23 | -<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 704c141.384 0 256-114.616 256-256s-114.616-256-256-256-256 114.616-256 256 114.616 256 256 256zM817.47 142.53c-81.594-81.594-190.080-126.53-305.47-126.53-115.392 0-223.876 44.936-305.47 126.53-81.594 81.594-126.53 190.078-126.53 305.47 0 115.39 44.936 223.876 126.53 305.47l67.882-67.882c0 0 0 0 0 0-131.006-131.006-131.006-344.17 0-475.176 63.462-63.462 147.838-98.412 237.588-98.412 89.748 0 174.124 34.95 237.588 98.412 131.006 131.006 131.006 344.168 0 475.176l67.882 67.882c81.594-81.594 126.53-190.080 126.53-305.47 0-115.392-44.936-223.876-126.53-305.47z" /> | |
| 24 | -<glyph unicode="" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" /> | |
| 25 | -<glyph unicode="" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" /> | |
| 26 | -<glyph unicode="" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96 53.020 0 96 42.98 96 96 0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96-53.020 0-96-42.98-96-96 0-282.77 229.23-512 512-512z" /> | |
| 27 | -<glyph unicode="" d="M1024 351.906v192.188l-146.774 24.462c-5.958 18.132-13.222 35.668-21.694 52.5l86.454 121.034-135.896 135.898-120.826-86.304c-16.91 8.554-34.538 15.888-52.768 21.902l-24.402 146.414h-192.188l-24.402-146.416c-18.23-6.014-35.858-13.348-52.766-21.902l-120.828 86.304-135.898-135.898 86.454-121.036c-8.47-16.83-15.734-34.366-21.692-52.498l-146.774-24.46v-192.188l147.118-24.52c5.96-17.968 13.21-35.348 21.642-52.030l-86.748-121.448 135.898-135.896 121.654 86.894c16.602-8.35 33.89-15.528 51.764-21.434l24.578-147.472h192.188l24.578 147.474c17.874 5.906 35.162 13.084 51.766 21.432l121.652-86.892 135.896 135.896-86.744 121.446c8.432 16.682 15.678 34.062 21.64 52.032l147.118 24.518zM512 320c-70.692 0-128 57.306-128 128 0 70.692 57.308 128 128 128 70.694 0 128-57.308 128-128 0-70.694-57.306-128-128-128z" /> | |
| 28 | -</font></defs></svg> | |
| 29 | 0 | \ No newline at end of file |
plugins/video/public/f/2/vjs.ttf
No preview for this file type
plugins/video/public/f/2/vjs.woff
No preview for this file type
plugins/video/public/style.css
| ... | ... | @@ -0,0 +1,62 @@ |
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | |
| 2 | +class VideoTest < ActiveSupport::TestCase | |
| 3 | + | |
| 4 | + include AuthenticatedTestHelper | |
| 5 | + fixtures :users, :environments | |
| 6 | + | |
| 7 | + def setup | |
| 8 | + @video = VideoPlugin::Video.new | |
| 9 | + end | |
| 10 | + | |
| 11 | + should "define its type_name as video" do | |
| 12 | + assert_equal VideoPlugin::Video.type_name, _('Video') | |
| 13 | + end | |
| 14 | + | |
| 15 | + should "display version" do | |
| 16 | + assert @video.can_display_versions? | |
| 17 | + end | |
| 18 | + | |
| 19 | + should "define its short_description" do | |
| 20 | + assert_equal VideoPlugin::Video.short_description, _('Embedded Video') | |
| 21 | + end | |
| 22 | + | |
| 23 | + should "define its description" do | |
| 24 | + assert_equal VideoPlugin::Video.description, _('Display embedded videos.') | |
| 25 | + end | |
| 26 | + | |
| 27 | + should "define a fitted_width" do | |
| 28 | + assert_equal @video.fitted_width, 499 | |
| 29 | + end | |
| 30 | + | |
| 31 | + should "eval a fitted_height" do | |
| 32 | + @video.video_height = 1000 | |
| 33 | + @video.video_width = 2000 | |
| 34 | + fitted_height = ((@video.fitted_width * @video.video_height) / @video.video_width).to_i | |
| 35 | + assert_equal fitted_height, @video.fitted_height | |
| 36 | + end | |
| 37 | + | |
| 38 | + should "define a thumbnail_fitted_width" do | |
| 39 | + assert_equal @video.thumbnail_fitted_width, 80 | |
| 40 | + end | |
| 41 | + | |
| 42 | + should "eval a thumbnail_fitted_height" do | |
| 43 | + @video.video_thumbnail_height = 60 | |
| 44 | + @video.video_thumbnail_width = 30 | |
| 45 | + thumbnail_fitted_height = ((@video.thumbnail_fitted_width * @video.video_thumbnail_height) / @video.video_thumbnail_width).to_i | |
| 46 | + assert_equal thumbnail_fitted_height, @video.thumbnail_fitted_height | |
| 47 | + end | |
| 48 | + | |
| 49 | + should "show a no_browser_support_message" do | |
| 50 | + assert_equal @video.no_browser_support_message, '<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>' | |
| 51 | + end | |
| 52 | + | |
| 53 | + | |
| 54 | + ### Tests for YouTube | |
| 55 | + | |
| 56 | + should "is_youtube return true when the url contains http://youtube.com" do | |
| 57 | + @video.url = "http://youtube.com/?v=XXXXX" | |
| 58 | + assert @video.is_youtube? | |
| 59 | + end | |
| 60 | + | |
| 61 | + | |
| 62 | +end | ... | ... |
plugins/video/views/box_organizer/_html5_video_block.html.erb
plugins/video/views/box_organizer/_iframe_video_block.html.erb
| 1 | -<iframe width='<%="#{width}px"%>' height='<%="#{height}px"%>' src='<%= "#{url}" %>' frameborder="0" allowfullscreen></iframe> | |
| 1 | +<iframe class="video-block-center" width='<%="#{width}px"%>' height='<%="#{height}px"%>' src='<%= "#{url}" %>' frameborder="0" allowfullscreen></iframe> | |
| 2 | 2 | \ No newline at end of file | ... | ... |
plugins/video/views/content_viewer/video_plugin/_video.html.erb
| 1 | -<div align="center"> | |
| 1 | +<div> | |
| 2 | 2 | <%if @page.video_provider=='youtube' %> |
| 3 | - <link type="text/css" rel="stylesheet" href="/plugins/video/css/video-js-4.5.1.css" /> | |
| 4 | - <video id="embedded_video<%= rand %>" src="" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" | |
| 5 | - width="<%= @page.fitted_width %>" height="<%= @page.fitted_height %>" | |
| 6 | - data-setup='<%=CGI::escapeHTML("{ \"techOrder\": [\"youtube\"], \"src\": \"#{@page.video_url}\" }") %>'> | |
| 7 | - <%= @page.no_browser_support_message %> | |
| 8 | - </video> | |
| 9 | - <script src="/plugins/video/javascripts/videojs/video-4.5.1.js"></script> | |
| 10 | - <script src="/plugins/video/javascripts/videojs/vjs.youtube.js"></script> | |
| 11 | - <% elsif @page.video_provider=='vimeo' %> | |
| 12 | - <link type="text/css" rel="stylesheet" href="/plugins/video/css/video-js-4.5.1.css" /> | |
| 13 | - <video id="embedded_video<%= rand %>" src="" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" | |
| 14 | - width="<%= @page.fitted_width %>" height="<%= @page.fitted_height %>" | |
| 15 | - data-setup='<%=CGI::escapeHTML("{ \"techOrder\": [\"vimeo\"], \"src\": \"#{@page.video_url}\", \"loop\": true, \"autoplay\": false }") %>'> | |
| 16 | - <%= @page.no_browser_support_message %> | |
| 17 | - </video> | |
| 18 | - <script src="/plugins/video/javascripts/videojs/video-4.5.1.js"></script> | |
| 19 | - <script src="/plugins/video/javascripts/videojs/vjs.vimeo.js"></script> | |
| 3 | + <iframe class="video-block-center" width='<%="#{@page.fitted_width}px"%>' height='<%="#{@page.fitted_height}px"%>' src='<%= "#{@page.format_embed_video_url_for_youtube}" %>' frameborder="0" allowfullscreen></iframe> | |
| 4 | +<% elsif @page.video_provider=='vimeo' %> | |
| 5 | + <iframe class="video-block-center" width='<%="#{@page.fitted_width}px"%>' height='<%="#{@page.fitted_height}px"%>' src='<%= "#{@page.format_embed_video_url_for_vimeo}" %>' frameborder="0" allowfullscreen></iframe> | |
| 20 | 6 | <% elsif @page.video_provider=='file' %> |
| 21 | - <link href="/plugins/video/css/video-js-4.8.5.css" rel="stylesheet"> | |
| 22 | - <script src="/plugins/video/javascripts/videojs/video-4.8.5.js"></script> | |
| 23 | - <video id="embedded_video<%= rand %>" class="video-js vjs-default-skin vjs-big-play-centered" | |
| 24 | - height="353" width="499" | |
| 25 | - controls preload="auto" | |
| 26 | - data-setup='<%=CGI::escapeHTML("{ \"example_option\":true}") %>'> | |
| 27 | - <source src="<%= @page.video_url %>" type='<%= @page.video_format %>' /> | |
| 28 | - <%= @page.no_browser_support_message %> | |
| 7 | + <video class="video-block-center" controls preload="auto" height="353" width="499" type='<%= @page.video_format %>'> | |
| 8 | + <source src=<%= "#{@page.video_url}" %>> | |
| 29 | 9 | </video> |
| 30 | 10 | <% end %> |
| 31 | 11 | <br style="clear:both" /> | ... | ... |