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
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 | 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
db/migrate/20140529122416_add_seen_to_v_libras_videos.rb
0 → 100644
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 | ... | ... |