Commit 88b5a9ba944e24484d259f97dc46e6750bef3627
1 parent
f1c9b703
Exists in
master
and in
2 other branches
Add video#seen
Showing
12 changed files
with
64 additions
and
10 deletions
Show diff stats
app/admin/v_libras_video.rb
app/assets/javascripts/bootstrap.js.coffee
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
app/assets/stylesheets/v_libras/videos.css.scss
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
db/schema.rb
@@ -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 |