Commit 573969df00a4f3ae8f68e36fafc6403bf28b6ac7
1 parent
dd55e8f9
Exists in
master
and in
2 other branches
Move menu to partial
Showing
9 changed files
with
174 additions
and
26 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,62 @@ |
| 1 | +.ribbon-wrapper-green { | |
| 2 | + margin: 10px auto; | |
| 3 | + width: 200px; | |
| 4 | + height: 165px; | |
| 5 | + overflow: hidden; | |
| 6 | + top: -3px; | |
| 7 | + right: -3px; | |
| 8 | + | |
| 9 | + padding-top: 3px; | |
| 10 | +} | |
| 11 | + | |
| 12 | +.ribbon-content img { | |
| 13 | + border-radius: 3px; | |
| 14 | + -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); | |
| 15 | + -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); | |
| 16 | + box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); | |
| 17 | + | |
| 18 | + width: 200px; | |
| 19 | + height: 160px; | |
| 20 | +} | |
| 21 | + | |
| 22 | +.ribbon-green { | |
| 23 | + font: bold 15px Sans-Serif; | |
| 24 | + color: #333; | |
| 25 | + text-align: center; | |
| 26 | + text-shadow: rgba(255,255,255,0.5) 0px 1px 0px; | |
| 27 | + -webkit-transform: rotate(45deg); | |
| 28 | + -moz-transform: rotate(45deg); | |
| 29 | + -ms-transform: rotate(45deg); | |
| 30 | + -o-transform: rotate(45deg); | |
| 31 | + position: relative; | |
| 32 | + padding: 5px 0; | |
| 33 | + left: 118px; | |
| 34 | + bottom: 150px; | |
| 35 | + width: 110px; | |
| 36 | + background-color: #BFDC7A; | |
| 37 | + background-image: -webkit-gradient(linear, left top, left bottom, from(#BFDC7A), to(#8EBF45)); | |
| 38 | + background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); | |
| 39 | + background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); | |
| 40 | + background-image: -ms-linear-gradient(top, #BFDC7A, #8EBF45); | |
| 41 | + background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); | |
| 42 | + color: #6a6340; | |
| 43 | + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); | |
| 44 | + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); | |
| 45 | + box-shadow: 0px 0px 3px rgba(0,0,0,0.3); | |
| 46 | +} | |
| 47 | + | |
| 48 | +.ribbon-green:before, .ribbon-green:after { | |
| 49 | + content: ""; | |
| 50 | + border-top: 3px solid #6e8900; | |
| 51 | + border-left: 3px solid transparent; | |
| 52 | + border-right: 3px solid transparent; | |
| 53 | + position:absolute; | |
| 54 | + bottom: -3px; | |
| 55 | +} | |
| 56 | + | |
| 57 | +.ribbon-green:before { | |
| 58 | + left: 0; | |
| 59 | +} | |
| 60 | +.ribbon-green:after { | |
| 61 | + right: 0; | |
| 62 | +} | |
| 0 | 63 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +.video-instructions { | |
| 2 | + display: block; | |
| 3 | + width: 100%; | |
| 4 | + | |
| 5 | + -moz-box-shadow: 0 0 5px 5px #888; | |
| 6 | + -webkit-box-shadow: 0 0 5px 5px #888; | |
| 7 | + box-shadow: 0 0 5px 5px #888; | |
| 8 | +} | |
| 9 | + | |
| 10 | +.video-vlibras { | |
| 11 | + max-width: 50%; | |
| 12 | +} | |
| 13 | + | |
| 14 | +.video-js { | |
| 15 | + width: 100%; | |
| 16 | +} | |
| 0 | 17 | \ No newline at end of file | ... | ... |
app/controllers/v_libras/requests_controller.rb
| 1 | 1 | class VLibras::RequestsController < ApplicationController |
| 2 | - protect_from_forgery with: :null_session, :only => [ :callback ] | |
| 3 | 2 | before_filter :check_vlibras_api_status, :only => [ :rapid, :create ] |
| 4 | 3 | |
| 5 | - before_filter :authenticate_user! | |
| 4 | + protect_from_forgery with: :null_session, :only => [ :callback ] | |
| 5 | + before_filter :authenticate_user!, :except => [ :callback ] | |
| 6 | 6 | |
| 7 | 7 | def rapid |
| 8 | 8 | @request = VLibras::Request.new | ... | ... |
app/helpers/application_helper.rb
| ... | ... | @@ -46,8 +46,8 @@ module ApplicationHelper |
| 46 | 46 | :data => { 'toggle' => "tooltip" }, :title => request.response) |
| 47 | 47 | end |
| 48 | 48 | |
| 49 | - def custom_video_tag(video) | |
| 50 | - html5_video_tag('/video.mp4', "#video_#{video.id}") | |
| 49 | + def custom_video_tag(video, classes = nil) | |
| 50 | + html5_video_tag(video.url_mp4, "video_#{video.id}", classes) | |
| 51 | 51 | end |
| 52 | 52 | |
| 53 | 53 | def html5_video_tag(url, id, classes = nil, *args) | ... | ... |
app/models/v_libras/video.rb
| ... | ... | @@ -23,8 +23,18 @@ class VLibras::Video < ActiveRecord::Base |
| 23 | 23 | self.update!(:seen => true) unless self.seen |
| 24 | 24 | end |
| 25 | 25 | |
| 26 | + def thumb | |
| 27 | + self.url.gsub('flv', 'png') | |
| 28 | + end | |
| 29 | + | |
| 30 | + def url_mp4 | |
| 31 | + self.url.gsub('flv', 'mp4') | |
| 32 | + end | |
| 33 | + | |
| 26 | 34 | protected |
| 27 | 35 | def default_values |
| 28 | 36 | self.seen = false if self.seen.nil? |
| 37 | + | |
| 38 | + return true | |
| 29 | 39 | end |
| 30 | 40 | end | ... | ... |
| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | +.navbar.navbar-fixed-top | |
| 2 | + .navbar-inner | |
| 3 | + .container-fluid | |
| 4 | + %a.btn.btn-navbar{"data-target" => ".nav-collapse", "data-toggle" => "collapse"} | |
| 5 | + | |
| 6 | + = link_to "GTAaaS", home_path, :class => "brand" | |
| 7 | + | |
| 8 | + - if current_user.present? | |
| 9 | + .nav-collapse | |
| 10 | + %ul.nav | |
| 11 | + %li= link_to t('shared.main'), home_path | |
| 12 | + | |
| 13 | + %li.dropdown | |
| 14 | + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} | |
| 15 | + = t('shared.vlibras') | |
| 16 | + - if current_user.videos.not_seen.any? | |
| 17 | + %span.label.label-success Novo vídeo! | |
| 18 | + %strong.caret | |
| 19 | + %ul.dropdown-menu | |
| 20 | + %li | |
| 21 | + = link_to v_libras_videos_path do | |
| 22 | + = t('wikivideos.my_videos') | |
| 23 | + - if current_user.videos.not_seen.any? | |
| 24 | + %span.label.label-success= current_user.videos.not_seen.size | |
| 25 | + %li= link_to t('videos.new'), '#' | |
| 26 | + %li.divider | |
| 27 | + %li= link_to t('shared.form_alternative'), rapid_v_libras_requests_path | |
| 28 | + | |
| 29 | + %li.dropdown.hidden | |
| 30 | + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} | |
| 31 | + = t('shared.wikilibras') | |
| 32 | + %strong.caret | |
| 33 | + %ul.dropdown-menu | |
| 34 | + %li= link_to t('wikivideos.my_signals'), '#' | |
| 35 | + %li= link_to t('wikivideos.cadastro_sinal'), '#' | |
| 36 | + %li.divider | |
| 37 | + %li= link_to t('wikivideos.dicionario_de_dados'), '#' | |
| 38 | + | |
| 39 | + %li.hidden= link_to t('shared.slibras') | |
| 40 | + | |
| 41 | + %li= link_to t('shared.about'), "http://gtaaas.lavid.ufpb.br/projeto", :target => "blank" | |
| 42 | + | |
| 43 | + - if current_user.present? | |
| 44 | + %ul.nav.pull-right | |
| 45 | + %li.dropdown | |
| 46 | + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} | |
| 47 | + = current_user.name | |
| 48 | + %strong.caret | |
| 49 | + %ul.dropdown-menu | |
| 50 | + %li= link_to t('shared.edit'), '' | |
| 51 | + %li.divider | |
| 52 | + %li= link_to t('shared.logout'), destroy_user_session_path, :method => 'delete' | |
| 53 | + | |
| 54 | + / | |
| 55 | + <ul class="nav secondary-nav"> | |
| 56 | + <li><haml_loud> link_to image_tag('pt.png'), url_for( :locale => 'pt' ), :title => "Português" </haml_loud></li> | |
| 57 | + <li><haml_loud> link_to image_tag('en.png'), url_for( :locale => 'en' ), :title => 'English' </haml_loud></li> | |
| 58 | + </ul> | |
| 0 | 59 | \ No newline at end of file | ... | ... |
app/views/v_libras/videos/index.haml
| ... | ... | @@ -11,35 +11,37 @@ |
| 11 | 11 | .span4 |
| 12 | 12 | .ribbon-wrapper-green |
| 13 | 13 | .ribbon-content |
| 14 | - = link_to image_tag("avatar.png"), video | |
| 14 | + = link_to image_tag(video.thumb), video | |
| 15 | 15 | - unless video.seen |
| 16 | 16 | .ribbon-green Novo |
| 17 | 17 | |
| 18 | 18 | %p |
| 19 | - = link_to video_path(video), class: "btn btn-success" do | |
| 19 | + = link_to video.url_mp4, class: "btn btn-success" do | |
| 20 | 20 | = content_tag(:span, '', :class => 'icon-download icon-white') |
| 21 | 21 | Baixar |
| 22 | 22 | |
| 23 | 23 | = link_to content_tag(:span, '', :class => 'icon-trash icon-white'), v_libras_video_path(video), method: :delete, |
| 24 | 24 | class: "btn btn-danger", data: { confirm: t('shared.confirm_delete') } |
| 25 | 25 | |
| 26 | -.breadcrumb.requests | |
| 27 | - %h4= t('requests.list') | |
| 28 | - | |
| 29 | -.row-fluid | |
| 30 | - .span8.offset2 | |
| 31 | - %table.table.table-hover.table-striped.table-requests | |
| 32 | - %thead | |
| 33 | - %tr | |
| 34 | - %th Situação | |
| 35 | - %th Vídeo | |
| 36 | - %th Criado há | |
| 37 | - | |
| 38 | - - @requests.each do |request| | |
| 39 | - %tr | |
| 40 | - %td.span2= request_status_label(request) | |
| 41 | - %td.span5= request.video_filename | |
| 42 | - %td.span5= time_ago_in_words(request.created_at) | |
| 26 | + | |
| 27 | +- if @requests.any? | |
| 28 | + .breadcrumb.requests | |
| 29 | + %h4= t('requests.list') | |
| 30 | + | |
| 31 | + .row-fluid | |
| 32 | + .span8.offset2 | |
| 33 | + %table.table.table-hover.table-striped.table-requests | |
| 34 | + %thead | |
| 35 | + %tr | |
| 36 | + %th Situação | |
| 37 | + %th Vídeo | |
| 38 | + %th Criado há | |
| 39 | + | |
| 40 | + - @requests.each do |request| | |
| 41 | + %tr | |
| 42 | + %td.span2= request_status_label(request) | |
| 43 | + %td.span5= request.video_filename | |
| 44 | + %td.span5= time_ago_in_words(request.created_at) | |
| 43 | 45 | |
| 44 | 46 | |
| 45 | 47 | ... | ... |
app/views/v_libras/videos/show.haml
lib/api_client/callback_processor.rb
| ... | ... | @@ -10,10 +10,10 @@ class ApiClient::CallbackProcessor |
| 10 | 10 | Rails.logger.debug "[VLibras::Callback] OK: #{params}" |
| 11 | 11 | |
| 12 | 12 | request.update!(:status => 'success') |
| 13 | - request.create_video(:url => params['response']) | |
| 13 | + request.create_video!(:url => params['response']) | |
| 14 | 14 | end |
| 15 | 15 | |
| 16 | 16 | Rails.logger.debug "[VLibras::Callback] Notifying websocket channel" |
| 17 | - WebsocketRails[:requests_update].trigger(:update, {a: :b, c: :d}) | |
| 17 | + WebsocketRails[:requests_update].trigger(:update, {}) | |
| 18 | 18 | end |
| 19 | 19 | end |
| 20 | 20 | \ No newline at end of file | ... | ... |