quadro 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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