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 1 ActiveAdmin.register VLibras::Video do
2 2 menu :priority => 15
3 3  
4   - permit_params :url, :request_id
  4 + permit_params :url, :request_id, :seen
5 5 end
... ...
app/assets/javascripts/bootstrap.js.coffee
... ... @@ -1,4 +0,0 @@
1   -jQuery ->
2   - $("a[rel=popover]").popover()
3   - $(".tooltip").tooltip()
4   - $("a[rel=tooltip]").tooltip()
5 0 \ No newline at end of file
app/assets/stylesheets/application.css.scss
... ... @@ -75,4 +75,10 @@
75 75 }
76 76 .ribbon-green:after {
77 77 right: 0;
  78 +}
  79 +
  80 +@media (max-width: 980px) {
  81 + .dropdown ul.dropdown-menu {
  82 + display: block;
  83 + }
78 84 }
79 85 \ No newline at end of file
... ...
app/assets/stylesheets/bootstrap.css.less
1 1 @import "twitter/bootstrap/bootstrap";
  2 +
  3 +body {
  4 + padding-top: 60px;
  5 +}
  6 +
2 7 @import "twitter/bootstrap/responsive";
3 8 @import "twitter/bootstrap/sprites";
4 9  
... ...
app/assets/stylesheets/v_libras/videos.css.scss
... ... @@ -9,4 +9,8 @@
9 9  
10 10 .table-requests .label {
11 11 text-transform: lowercase;
  12 +}
  13 +
  14 +.vlibras-video {
  15 + max-width: 500px;
12 16 }
13 17 \ No newline at end of file
... ...
app/controllers/v_libras/videos_controller.rb
... ... @@ -4,8 +4,15 @@ class VLibras::VideosController < InheritedResources::Base
4 4 before_filter :check_vlibras_api_status, :only => [ :index, :show ]
5 5 before_filter :authenticate_user!
6 6  
  7 + after_filter :mark_as_seen!, :only => [ :show ]
  8 +
7 9 def index
8 10 @videos = current_user.videos
9 11 @requests = current_user.requests.limit(6)
10 12 end
  13 +
  14 +protected
  15 + def mark_as_seen!
  16 + @video.mark_as_seen!
  17 + end
11 18 end
... ...
app/helpers/application_helper.rb
... ... @@ -47,7 +47,7 @@ module ApplicationHelper
47 47 end
48 48  
49 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 51 :controls => 'controls', :preload => 'auto', :width => '100%') do
52 52 content_tag(:source, '', :src => '/video.mp4', :type => 'video/mp4')
53 53 end
... ...
app/models/v_libras/video.rb
... ... @@ -7,8 +7,24 @@
7 7 # url :string(255)
8 8 # created_at :datetime
9 9 # updated_at :datetime
  10 +# seen :boolean
10 11 #
11 12  
12 13 class VLibras::Video < ActiveRecord::Base
13 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 30 end
... ...
app/views/layouts/application.html.erb
... ... @@ -29,10 +29,23 @@
29 29 <li><%= link_to t('shared.main'), home_path %></li>
30 30  
31 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 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 49 <li><%= link_to t('videos.new'), '#' %></li>
37 50 <li class="divider"></li>
38 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 12 .ribbon-wrapper-green
13 13 .ribbon-content
14 14 = link_to image_tag("avatar.png"), video
15   - .ribbon-green Novo
  15 + - unless video.seen
  16 + .ribbon-green Novo
16 17  
17 18 %p
18 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 @@
  1 +class AddSeenToVLibrasVideos < ActiveRecord::Migration
  2 + def change
  3 + add_column :v_libras_videos, :seen, :boolean
  4 + end
  5 +end
... ...
db/schema.rb
... ... @@ -11,7 +11,7 @@
11 11 #
12 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 16 create_table "delayed_jobs", force: true do |t|
17 17 t.integer "priority", default: 0, null: false
... ... @@ -82,6 +82,7 @@ ActiveRecord::Schema.define(version: 20140523175644) do
82 82 t.string "url"
83 83 t.datetime "created_at"
84 84 t.datetime "updated_at"
  85 + t.boolean "seen"
85 86 end
86 87  
87 88 end
... ...