quadro 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTI2OTNmYjgxZmJkNzk0NjQ4YTllNmQxZDBiMzc3NDhkODUxM2RkOQ==
4
+ YzllZWY2MzZmZjhkOWQ2M2UzMjU2MmM2YzhkNGNmN2UwYTJjNmYzYw==
5
5
  data.tar.gz: !binary |-
6
- NDIxNGFhNjE3ZjkwMjIxMzcwZGYwYjlmMjA0YmY3YzBlYWQxYzM3OQ==
6
+ YmI2ZmU1ZDhhNjI1NDJlOTVhMmUwOGE5ZmY3M2E4OTNkMTFjOWRhZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDYxYjZmZjhhZjFlNmU2NDFiMzUxNDM3MDMwOTEwYjdjZjUyYzliZDA2YjNi
10
- YzlhNTBkMTc1MDJhZDI3ZTZmYmIyYTcwMWM0MTgyODllYmIzZTg0NDExMzJl
11
- ZmE4ZTc2ODg0ODhhODM0YThhNjMxY2MzMDk1ZjE4NGNkZjVmMzA=
9
+ NDlhMDdlYzBlZDg1Y2YxYmE0ZDQ2ZWIwZDk4YmY1YWJkN2I1ZTQ5YzdhNzA0
10
+ YTY4MTY5Mzk1NzdmNTg3MzI5MzZmZmViZWE4NzlkYzNiYzdlMzViZDg4NjE2
11
+ OWY0ODk3ZGM0M2EwYWNlMThlODVhNGEzYjgwYWE2MDgyYjRiNDY=
12
12
  data.tar.gz: !binary |-
13
- YTRjOWI4OGQxZTYzOGM3MGM4OGRmMzg2ZGNlODE1NjIzMTZhMDc4ODkxOGY3
14
- YWM0NmJlMDUyZWY2OGFmY2FlNmY4YzBmMzkwNzRjYjMwZGEyMjUzOTAwNTlh
15
- ZWQ2YTQyMjViYzBkMTJlNWUzMjA2ZDU3NjJlMjY4ZWViODM5NDk=
13
+ MjE1OGFiMTBlNmZhYjBlYmMyNmIwMTQzZDgxMTJmNjYzYjZhN2QyODc5MjZh
14
+ OGYzMmQ5NTYyODRhZjJmZTVjMDIyMzkxYWVkZThhZjdhNWIwYWQ5MmQxZWI4
15
+ Y2Y0MzI4YzEyNDc5YzEyMzRhNTUzMDE5NDZlZGQ4Y2YxM2FkMDc=
data/README.md CHANGED
@@ -27,6 +27,7 @@ With **Quadro** you have the following features:
27
27
  - Auto-generated robots.txt.
28
28
  - Customized HTML static status pages.
29
29
  - Basic Open Graph and Twitter Cards support.
30
+ - Youtube and Vimeo video and playlist embed support.
30
31
 
31
32
  ## Current stable version
32
33
 
@@ -94,6 +95,7 @@ In this release, the possible options are:
94
95
  - gallery
95
96
  - map
96
97
  - form
98
+ - video
97
99
 
98
100
  ### Map widget
99
101
 
@@ -131,6 +133,22 @@ Form widget uses `simple_form` as form builder. You can specify a form block to
131
133
 
132
134
  *Note: all form submits are saved to database. When logged in you can review each interaction below the form widget.*
133
135
 
136
+ ### Video widget
137
+
138
+ Video widget uses `video_info` gem as video info fetch client.
139
+
140
+ ```ruby
141
+ = widget_for :video, type: :video, src: "https://www.youtube.com/watch?v=YE7VzlLtp-4"
142
+ ```
143
+
144
+ You can also set a playlist:
145
+
146
+ ```ruby
147
+ = widget_for :video, type: :video, src: "https://www.youtube.com/watch?v=YE7VzlLtp-4&list=PLcsq2jjTfJ_pEUj2Cl4MlXnpgpSQMTO-f"
148
+ ```
149
+
150
+ *Note: works the same with vimeo's videos and playlists.*
151
+
134
152
  ## Working with page templates
135
153
 
136
154
  Every page has a template associated to it, it sets the layout that will be displayed on the browser. There is a default list of available templates by default.
@@ -97,3 +97,6 @@ a.thumbnail
97
97
  -moz-background-size: cover
98
98
  background-size: cover
99
99
  -o-background-size: cover
100
+
101
+ .embed-responsive
102
+ margin: 18px 0px
@@ -1,6 +1,6 @@
1
1
  module Quadro
2
2
  class ApplicationController < ActionController::Base
3
- helper_method :widget, :asset, :interaction, :root, :parent, :page, :subpages, :geoip, :user, :users
3
+ helper_method :widget, :asset, :interaction, :root, :parent, :page, :subpages, :geoip, :video, :user, :users
4
4
 
5
5
  def after_sign_in_path_for(_resource)
6
6
  quadro.root_path
@@ -119,6 +119,10 @@ module Quadro
119
119
  @notifier ||= SitemapNotifier::Notifier
120
120
  end
121
121
 
122
+ def video
123
+ @video ||= VideoInfo
124
+ end
125
+
122
126
  def user
123
127
  @user ||= current_user
124
128
  end
@@ -0,0 +1,7 @@
1
+ module Quadro
2
+ module VideoHelper
3
+ def video_info(url)
4
+ video.get(url)
5
+ end
6
+ end
7
+ end
@@ -17,6 +17,8 @@ module Quadro
17
17
  page.widgets.select{ |w| w.name == name.to_s && w.type == Quadro::Widget::Map.to_s }.first || page.widgets.create(name: name, type: Quadro::Widget::Map.to_s).becomes(Quadro::Widget::Map)
18
18
  when :form
19
19
  page.widgets.select{ |w| w.name == name.to_s && w.type == Quadro::Widget::Form.to_s }.first || page.widgets.create(name: name, type: Quadro::Widget::Form.to_s).becomes(Quadro::Widget::Form)
20
+ when :video
21
+ page.widgets.select{ |w| w.name == name.to_s && w.type == Quadro::Widget::Video.to_s }.first || page.widgets.create(name: name, type: Quadro::Widget::Video.to_s).becomes(Quadro::Widget::Video)
20
22
  else
21
23
  page.widgets.select{ |w| w.name == name.to_s && w.type == Quadro::Widget::Html.to_s }.first || page.widgets.create(name: name, type: Quadro::Widget::Html.to_s)
22
24
  end
@@ -0,0 +1,13 @@
1
+ module Quadro
2
+ class Widget::Video < Widget
3
+ # attributes
4
+ store :settings, accessors: [:width, :height]
5
+
6
+ # methods
7
+ class << self
8
+ def short_name
9
+ 'video'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -18,5 +18,6 @@
18
18
 
19
19
  = widget_for :form, type: :form
20
20
 
21
- .row
22
- = render subpages
21
+ = widget_for :video, type: :video
22
+
23
+ = render subpages
@@ -0,0 +1,2 @@
1
+ .embed-responsive.embed-responsive-16by9
2
+ %iframe.embed-responsive-item(src="https://www.youtube.com/embed/841VcS9IxDc" frameborder="0" allowfullscreen="")
@@ -0,0 +1,4 @@
1
+ - if options[:src].blank?
2
+ = render("quadro/widgets/video/empty")
3
+ - else
4
+ = render "quadro/widgets/video/widget", widget: widget, options: options, content: content
@@ -0,0 +1,6 @@
1
+ =# render("quadro/widgets/video/toolbar", widget: widget)
2
+
3
+ - if options[:src].blank?
4
+ = render("quadro/widgets/video/empty")
5
+ - else
6
+ = render "quadro/widgets/video/widget", widget: widget, options: options, content: content
@@ -0,0 +1,7 @@
1
+ .well.well-sm.clearfix
2
+ .pull-left
3
+ .btn.btn-link.btn-xs
4
+ .text-muted.text-uppercase Video
5
+ .pull-right
6
+ %button.btn.btn-link.btn-xs
7
+ %i.fa.fa-cog.text-muted
@@ -0,0 +1,6 @@
1
+ - info = video_info(options[:src])
2
+
3
+ - if info.available?
4
+ .embed-responsive.embed-responsive-16by9
5
+ = info.embed_code(iframe_attributes: { class: "embed-responsive-item" }).html_safe
6
+ - else
@@ -18,5 +18,6 @@
18
18
 
19
19
  = widget_for :form, type: :form
20
20
 
21
- .row
22
- = render subpages
21
+ = widget_for :video, type: :video
22
+
23
+ = render subpages
@@ -31,7 +31,8 @@ module Quadro
31
31
  Quadro::Widget::Slider.to_s,
32
32
  Quadro::Widget::Gallery.to_s,
33
33
  Quadro::Widget::Map.to_s,
34
- Quadro::Widget::Form.to_s
34
+ Quadro::Widget::Form.to_s,
35
+ Quadro::Widget::Video.to_s
35
36
  ]
36
37
 
37
38
  Quadro.available_assets = [
@@ -24,6 +24,7 @@ require "summernote/rails"
24
24
  require "jquery-slick-rails"
25
25
  require "momentjs-rails"
26
26
  require "gravatar_image_tag"
27
+ require "video_info"
27
28
  require "turnout"
28
29
  require "useragent"
29
30
  require "maxminddb"
@@ -1,3 +1,3 @@
1
1
  module Quadro
2
- VERSION = "0.5.5"
2
+ VERSION = "0.5.6"
3
3
  end
@@ -18,5 +18,6 @@
18
18
 
19
19
  = widget_for :form, type: :form
20
20
 
21
- .row
22
- = render subpages
21
+ = widget_for :video, type: :video
22
+
23
+ = render subpages
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quadro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hugo Gilmar Erazo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-19 00:00:00.000000000 Z
11
+ date: 2016-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -388,6 +388,20 @@ dependencies:
388
388
  - - ~>
389
389
  - !ruby/object:Gem::Version
390
390
  version: 2.11.1
391
+ - !ruby/object:Gem::Dependency
392
+ name: video_info
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ~>
396
+ - !ruby/object:Gem::Version
397
+ version: 2.4.0
398
+ type: :runtime
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ~>
403
+ - !ruby/object:Gem::Version
404
+ version: 2.4.0
391
405
  - !ruby/object:Gem::Dependency
392
406
  name: rails-i18n
393
407
  requirement: !ruby/object:Gem::Requirement
@@ -567,6 +581,7 @@ files:
567
581
  - app/helpers/quadro/application_helper.rb
568
582
  - app/helpers/quadro/asset_helper.rb
569
583
  - app/helpers/quadro/navigation_helper.rb
584
+ - app/helpers/quadro/video_helper.rb
570
585
  - app/helpers/quadro/widget_helper.rb
571
586
  - app/models/quadro/asset.rb
572
587
  - app/models/quadro/asset/cover.rb
@@ -581,6 +596,7 @@ files:
581
596
  - app/models/quadro/widget/html.rb
582
597
  - app/models/quadro/widget/map.rb
583
598
  - app/models/quadro/widget/slider.rb
599
+ - app/models/quadro/widget/video.rb
584
600
  - app/views/layouts/quadro/application.html.haml
585
601
  - app/views/layouts/quadro/devise.html.haml
586
602
  - app/views/quadro/assets/create.js.erb
@@ -656,6 +672,12 @@ files:
656
672
  - app/views/quadro/widgets/slider/_uploader.html.haml
657
673
  - app/views/quadro/widgets/slider/_widget.html.haml
658
674
  - app/views/quadro/widgets/update.js.erb
675
+ - app/views/quadro/widgets/video/_empty.html.haml
676
+ - app/views/quadro/widgets/video/_form.html.haml
677
+ - app/views/quadro/widgets/video/_signed_off.html.haml
678
+ - app/views/quadro/widgets/video/_signed_on.html.haml
679
+ - app/views/quadro/widgets/video/_toolbar.html.haml
680
+ - app/views/quadro/widgets/video/_widget.html.haml
659
681
  - app/views/users/mailer/reset_password_instructions.html.haml
660
682
  - app/views/users/mailer/unlock_instructions.html.haml
661
683
  - app/views/users/passwords/edit.html.haml