Commit 88b5a9ba944e24484d259f97dc46e6750bef3627

Authored by Fernando Brito
1 parent f1c9b703
Exists in master and in 2 other branches v2, wikilibras

Add video#seen

app/admin/v_libras_video.rb
1 ActiveAdmin.register VLibras::Video do 1 ActiveAdmin.register VLibras::Video do
2 menu :priority => 15 2 menu :priority => 15
3 3
4 - permit_params :url, :request_id 4 + permit_params :url, :request_id, :seen
5 end 5 end
app/assets/javascripts/bootstrap.js.coffee
@@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
1 -jQuery ->  
2 - $("a[rel=popover]").popover()  
3 - $(".tooltip").tooltip()  
4 - $("a[rel=tooltip]").tooltip()  
5 \ No newline at end of file 0 \ No newline at end of file
app/assets/stylesheets/application.css.scss
@@ -75,4 +75,10 @@ @@ -75,4 +75,10 @@
75 } 75 }
76 .ribbon-green:after { 76 .ribbon-green:after {
77 right: 0; 77 right: 0;
  78 +}
  79 +
  80 +@media (max-width: 980px) {
  81 + .dropdown ul.dropdown-menu {
  82 + display: block;
  83 + }
78 } 84 }
79 \ No newline at end of file 85 \ No newline at end of file
app/assets/stylesheets/bootstrap.css.less
1 @import "twitter/bootstrap/bootstrap"; 1 @import "twitter/bootstrap/bootstrap";
  2 +
  3 +body {
  4 + padding-top: 60px;
  5 +}
  6 +
2 @import "twitter/bootstrap/responsive"; 7 @import "twitter/bootstrap/responsive";
3 @import "twitter/bootstrap/sprites"; 8 @import "twitter/bootstrap/sprites";
4 9
app/assets/stylesheets/v_libras/videos.css.scss
@@ -9,4 +9,8 @@ @@ -9,4 +9,8 @@
9 9
10 .table-requests .label { 10 .table-requests .label {
11 text-transform: lowercase; 11 text-transform: lowercase;
  12 +}
  13 +
  14 +.vlibras-video {
  15 + max-width: 500px;
12 } 16 }
13 \ No newline at end of file 17 \ No newline at end of file
app/controllers/v_libras/videos_controller.rb
@@ -4,8 +4,15 @@ class VLibras::VideosController < InheritedResources::Base @@ -4,8 +4,15 @@ class VLibras::VideosController < InheritedResources::Base
4 before_filter :check_vlibras_api_status, :only => [ :index, :show ] 4 before_filter :check_vlibras_api_status, :only => [ :index, :show ]
5 before_filter :authenticate_user! 5 before_filter :authenticate_user!
6 6
  7 + after_filter :mark_as_seen!, :only => [ :show ]
  8 +
7 def index 9 def index
8 @videos = current_user.videos 10 @videos = current_user.videos
9 @requests = current_user.requests.limit(6) 11 @requests = current_user.requests.limit(6)
10 end 12 end
  13 +
  14 +protected
  15 + def mark_as_seen!
  16 + @video.mark_as_seen!
  17 + end
11 end 18 end
app/helpers/application_helper.rb
@@ -47,7 +47,7 @@ module ApplicationHelper @@ -47,7 +47,7 @@ module ApplicationHelper
47 end 47 end
48 48
49 def custom_video_tag(video) 49 def custom_video_tag(video)
50 - content_tag(:video, :id => "video_#{video.id}", :class => 'video-js vjs-default skin', 50 + content_tag(:video, :id => "video_#{video.id}", :class => 'video-js vjs-default skin vlibras-video',
51 :controls => 'controls', :preload => 'auto', :width => '100%') do 51 :controls => 'controls', :preload => 'auto', :width => '100%') do
52 content_tag(:source, '', :src => '/video.mp4', :type => 'video/mp4') 52 content_tag(:source, '', :src => '/video.mp4', :type => 'video/mp4')
53 end 53 end
app/models/v_libras/video.rb
@@ -7,8 +7,24 @@ @@ -7,8 +7,24 @@
7 # url :string(255) 7 # url :string(255)
8 # created_at :datetime 8 # created_at :datetime
9 # updated_at :datetime 9 # updated_at :datetime
  10 +# seen :boolean
10 # 11 #
11 12
12 class VLibras::Video < ActiveRecord::Base 13 class VLibras::Video < ActiveRecord::Base
13 belongs_to :request, :class => VLibras::Request, :dependent => :delete 14 belongs_to :request, :class => VLibras::Request, :dependent => :delete
  15 +
  16 + validates :request_id, :url, :presence => true
  17 +
  18 + before_validation :default_values
  19 +
  20 + scope :not_seen, -> { where(:seen => false) }
  21 +
  22 + def mark_as_seen!
  23 + self.update!(:seen => true) unless self.seen
  24 + end
  25 +
  26 +protected
  27 + def default_values
  28 + self.seen = false if self.seen.nil?
  29 + end
14 end 30 end
app/views/layouts/application.html.erb
@@ -29,10 +29,23 @@ @@ -29,10 +29,23 @@
29 <li><%= link_to t('shared.main'), home_path %></li> 29 <li><%= link_to t('shared.main'), home_path %></li>
30 30
31 <li class="dropdown"> 31 <li class="dropdown">
32 - <a class="dropdown-toggle" href="#" data-toggle="dropdown"><%= t('shared.vlibras') %><strong class="caret"></strong></a> 32 + <a class="dropdown-toggle" href="#" data-toggle="dropdown">
  33 + <%= t('shared.vlibras') %>
  34 +
  35 + <% if current_user.videos.not_seen.any? %>
  36 + <span class="label label-success">Novo vídeo!</span> <strong class="caret"></strong>
  37 + <% end %>
  38 + </a>
33 39
34 <ul class="dropdown-menu"> 40 <ul class="dropdown-menu">
35 - <li><%= link_to t('wikivideos.my_videos'), v_libras_videos_path %></li> 41 + <li>
  42 + <%= link_to v_libras_videos_path do %>
  43 + <%= t('wikivideos.my_videos') %>
  44 + <% if current_user.videos.not_seen.any? %>
  45 + <span class="label label-success"><%= current_user.videos.not_seen.size %> </span> <strong class="caret"></strong>
  46 + <% end %>
  47 + <% end %>
  48 + </li>
36 <li><%= link_to t('videos.new'), '#' %></li> 49 <li><%= link_to t('videos.new'), '#' %></li>
37 <li class="divider"></li> 50 <li class="divider"></li>
38 <li><%= link_to t('shared.form_alternative'), rapid_v_libras_requests_path %></li> 51 <li><%= link_to t('shared.form_alternative'), rapid_v_libras_requests_path %></li>
app/views/v_libras/videos/index.haml
@@ -12,7 +12,8 @@ @@ -12,7 +12,8 @@
12 .ribbon-wrapper-green 12 .ribbon-wrapper-green
13 .ribbon-content 13 .ribbon-content
14 = link_to image_tag("avatar.png"), video 14 = link_to image_tag("avatar.png"), video
15 - .ribbon-green Novo 15 + - unless video.seen
  16 + .ribbon-green Novo
16 17
17 %p 18 %p
18 = link_to video_path(video), class: "btn btn-success" do 19 = link_to video_path(video), class: "btn btn-success" do
db/migrate/20140529122416_add_seen_to_v_libras_videos.rb 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +class AddSeenToVLibrasVideos < ActiveRecord::Migration
  2 + def change
  3 + add_column :v_libras_videos, :seen, :boolean
  4 + end
  5 +end
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 # 11 #
12 # It's strongly recommended that you check this file into your version control system. 12 # It's strongly recommended that you check this file into your version control system.
13 13
14 -ActiveRecord::Schema.define(version: 20140523175644) do 14 +ActiveRecord::Schema.define(version: 20140529122416) do
15 15
16 create_table "delayed_jobs", force: true do |t| 16 create_table "delayed_jobs", force: true do |t|
17 t.integer "priority", default: 0, null: false 17 t.integer "priority", default: 0, null: false
@@ -82,6 +82,7 @@ ActiveRecord::Schema.define(version: 20140523175644) do @@ -82,6 +82,7 @@ ActiveRecord::Schema.define(version: 20140523175644) do
82 t.string "url" 82 t.string "url"
83 t.datetime "created_at" 83 t.datetime "created_at"
84 t.datetime "updated_at" 84 t.datetime "updated_at"
  85 + t.boolean "seen"
85 end 86 end
86 87
87 end 88 end