From 573969df00a4f3ae8f68e36fafc6403bf28b6ac7 Mon Sep 17 00:00:00 2001 From: Fernando Brito Date: Fri, 30 May 2014 10:32:45 -0300 Subject: [PATCH] Move menu to partial --- app/assets/stylesheets/components/ribbon.css.scss | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/assets/stylesheets/components/video_player.css.scss | 16 ++++++++++++++++ app/controllers/v_libras/requests_controller.rb | 4 ++-- app/helpers/application_helper.rb | 4 ++-- app/models/v_libras/video.rb | 10 ++++++++++ app/views/layouts/_menu.haml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/views/v_libras/videos/index.haml | 40 +++++++++++++++++++++------------------- app/views/v_libras/videos/show.haml | 2 +- lib/api_client/callback_processor.rb | 4 ++-- 9 files changed, 174 insertions(+), 26 deletions(-) create mode 100644 app/assets/stylesheets/components/ribbon.css.scss create mode 100644 app/assets/stylesheets/components/video_player.css.scss create mode 100644 app/views/layouts/_menu.haml diff --git a/app/assets/stylesheets/components/ribbon.css.scss b/app/assets/stylesheets/components/ribbon.css.scss new file mode 100644 index 0000000..df18a48 --- /dev/null +++ b/app/assets/stylesheets/components/ribbon.css.scss @@ -0,0 +1,62 @@ +.ribbon-wrapper-green { + margin: 10px auto; + width: 200px; + height: 165px; + overflow: hidden; + top: -3px; + right: -3px; + + padding-top: 3px; +} + +.ribbon-content img { + border-radius: 3px; + -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); + box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); + + width: 200px; + height: 160px; +} + +.ribbon-green { + font: bold 15px Sans-Serif; + color: #333; + text-align: center; + text-shadow: rgba(255,255,255,0.5) 0px 1px 0px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + position: relative; + padding: 5px 0; + left: 118px; + bottom: 150px; + width: 110px; + background-color: #BFDC7A; + background-image: -webkit-gradient(linear, left top, left bottom, from(#BFDC7A), to(#8EBF45)); + background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: -ms-linear-gradient(top, #BFDC7A, #8EBF45); + background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); + color: #6a6340; + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); + box-shadow: 0px 0px 3px rgba(0,0,0,0.3); +} + +.ribbon-green:before, .ribbon-green:after { + content: ""; + border-top: 3px solid #6e8900; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + position:absolute; + bottom: -3px; +} + +.ribbon-green:before { + left: 0; +} +.ribbon-green:after { + right: 0; +} \ No newline at end of file diff --git a/app/assets/stylesheets/components/video_player.css.scss b/app/assets/stylesheets/components/video_player.css.scss new file mode 100644 index 0000000..35c0d5e --- /dev/null +++ b/app/assets/stylesheets/components/video_player.css.scss @@ -0,0 +1,16 @@ +.video-instructions { + display: block; + width: 100%; + + -moz-box-shadow: 0 0 5px 5px #888; + -webkit-box-shadow: 0 0 5px 5px #888; + box-shadow: 0 0 5px 5px #888; +} + +.video-vlibras { + max-width: 50%; +} + +.video-js { + width: 100%; +} \ No newline at end of file diff --git a/app/controllers/v_libras/requests_controller.rb b/app/controllers/v_libras/requests_controller.rb index 1f31a8a..9f9b0dd 100644 --- a/app/controllers/v_libras/requests_controller.rb +++ b/app/controllers/v_libras/requests_controller.rb @@ -1,8 +1,8 @@ class VLibras::RequestsController < ApplicationController - protect_from_forgery with: :null_session, :only => [ :callback ] before_filter :check_vlibras_api_status, :only => [ :rapid, :create ] - before_filter :authenticate_user! + protect_from_forgery with: :null_session, :only => [ :callback ] + before_filter :authenticate_user!, :except => [ :callback ] def rapid @request = VLibras::Request.new diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 7258783..0295705 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -46,8 +46,8 @@ module ApplicationHelper :data => { 'toggle' => "tooltip" }, :title => request.response) end - def custom_video_tag(video) - html5_video_tag('/video.mp4', "#video_#{video.id}") + def custom_video_tag(video, classes = nil) + html5_video_tag(video.url_mp4, "video_#{video.id}", classes) end def html5_video_tag(url, id, classes = nil, *args) diff --git a/app/models/v_libras/video.rb b/app/models/v_libras/video.rb index ddf2ea7..3ec17bb 100644 --- a/app/models/v_libras/video.rb +++ b/app/models/v_libras/video.rb @@ -23,8 +23,18 @@ class VLibras::Video < ActiveRecord::Base self.update!(:seen => true) unless self.seen end + def thumb + self.url.gsub('flv', 'png') + end + + def url_mp4 + self.url.gsub('flv', 'mp4') + end + protected def default_values self.seen = false if self.seen.nil? + + return true end end diff --git a/app/views/layouts/_menu.haml b/app/views/layouts/_menu.haml new file mode 100644 index 0000000..43086c2 --- /dev/null +++ b/app/views/layouts/_menu.haml @@ -0,0 +1,58 @@ +.navbar.navbar-fixed-top + .navbar-inner + .container-fluid + %a.btn.btn-navbar{"data-target" => ".nav-collapse", "data-toggle" => "collapse"} + + = link_to "GTAaaS", home_path, :class => "brand" + + - if current_user.present? + .nav-collapse + %ul.nav + %li= link_to t('shared.main'), home_path + + %li.dropdown + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + = t('shared.vlibras') + - if current_user.videos.not_seen.any? + %span.label.label-success Novo vídeo! + %strong.caret + %ul.dropdown-menu + %li + = link_to v_libras_videos_path do + = t('wikivideos.my_videos') + - if current_user.videos.not_seen.any? + %span.label.label-success= current_user.videos.not_seen.size + %li= link_to t('videos.new'), '#' + %li.divider + %li= link_to t('shared.form_alternative'), rapid_v_libras_requests_path + + %li.dropdown.hidden + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + = t('shared.wikilibras') + %strong.caret + %ul.dropdown-menu + %li= link_to t('wikivideos.my_signals'), '#' + %li= link_to t('wikivideos.cadastro_sinal'), '#' + %li.divider + %li= link_to t('wikivideos.dicionario_de_dados'), '#' + + %li.hidden= link_to t('shared.slibras') + + %li= link_to t('shared.about'), "http://gtaaas.lavid.ufpb.br/projeto", :target => "blank" + + - if current_user.present? + %ul.nav.pull-right + %li.dropdown + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + = current_user.name + %strong.caret + %ul.dropdown-menu + %li= link_to t('shared.edit'), '' + %li.divider + %li= link_to t('shared.logout'), destroy_user_session_path, :method => 'delete' + + / + \ No newline at end of file diff --git a/app/views/v_libras/videos/index.haml b/app/views/v_libras/videos/index.haml index 6a869bd..eac2ee1 100644 --- a/app/views/v_libras/videos/index.haml +++ b/app/views/v_libras/videos/index.haml @@ -11,35 +11,37 @@ .span4 .ribbon-wrapper-green .ribbon-content - = link_to image_tag("avatar.png"), video + = link_to image_tag(video.thumb), video - unless video.seen .ribbon-green Novo %p - = link_to video_path(video), class: "btn btn-success" do + = link_to video.url_mp4, class: "btn btn-success" do = content_tag(:span, '', :class => 'icon-download icon-white') Baixar = link_to content_tag(:span, '', :class => 'icon-trash icon-white'), v_libras_video_path(video), method: :delete, class: "btn btn-danger", data: { confirm: t('shared.confirm_delete') } -.breadcrumb.requests - %h4= t('requests.list') - -.row-fluid - .span8.offset2 - %table.table.table-hover.table-striped.table-requests - %thead - %tr - %th Situação - %th Vídeo - %th Criado há - - - @requests.each do |request| - %tr - %td.span2= request_status_label(request) - %td.span5= request.video_filename - %td.span5= time_ago_in_words(request.created_at) + +- if @requests.any? + .breadcrumb.requests + %h4= t('requests.list') + + .row-fluid + .span8.offset2 + %table.table.table-hover.table-striped.table-requests + %thead + %tr + %th Situação + %th Vídeo + %th Criado há + + - @requests.each do |request| + %tr + %td.span2= request_status_label(request) + %td.span5= request.video_filename + %td.span5= time_ago_in_words(request.created_at) diff --git a/app/views/v_libras/videos/show.haml b/app/views/v_libras/videos/show.haml index 3997b1c..25e275b 100644 --- a/app/views/v_libras/videos/show.haml +++ b/app/views/v_libras/videos/show.haml @@ -2,4 +2,4 @@ %h3= "Vídeo #{@video.request.video_filename}" .row.text-center - = custom_video_tag(@video) \ No newline at end of file + = custom_video_tag(@video, 'video-vlibras') \ No newline at end of file diff --git a/lib/api_client/callback_processor.rb b/lib/api_client/callback_processor.rb index 5ba096c..9248df4 100644 --- a/lib/api_client/callback_processor.rb +++ b/lib/api_client/callback_processor.rb @@ -10,10 +10,10 @@ class ApiClient::CallbackProcessor Rails.logger.debug "[VLibras::Callback] OK: #{params}" request.update!(:status => 'success') - request.create_video(:url => params['response']) + request.create_video!(:url => params['response']) end Rails.logger.debug "[VLibras::Callback] Notifying websocket channel" - WebsocketRails[:requests_update].trigger(:update, {a: :b, c: :d}) + WebsocketRails[:requests_update].trigger(:update, {}) end end \ No newline at end of file -- libgit2 0.21.2