Commit dd55e8f9f6a9a8a7ed600ee0739959bd79d48d03

Authored by Fernando Brito
1 parent 88b5a9ba
Exists in master and in 2 other branches v2, wikilibras

User login page. Menu in partial. CSS tweaks

app/assets/stylesheets/application.css.scss
@@ -13,68 +13,34 @@ @@ -13,68 +13,34 @@
13 *= require 'bootstrap' 13 *= require 'bootstrap'
14 *= require 'bootstrap_overrides' 14 *= require 'bootstrap_overrides'
15 *= require 'v_libras/videos' 15 *= require 'v_libras/videos'
  16 + *= require 'components/ribbon'
  17 + *= require 'components/video_player'
16 *= require_self 18 *= require_self
17 */ 19 */
18 20
  21 +.login {
  22 + padding: 3% 4%;
  23 + text-align: center;
19 24
20 -.ribbon-wrapper-green {  
21 - margin: 10px auto;  
22 - width: 203px;  
23 - height: 144px;  
24 - overflow: hidden;  
25 - top: -3px;  
26 - right: -3px;  
27 -  
28 - padding-top: 3px;  
29 -} 25 + -moz-box-shadow: 0 0 5px 5px #888;
  26 + -webkit-box-shadow: 0 0 5px 5px #888;
  27 + box-shadow: 0 0 5px 5px #888;
30 28
31 -.ribbon-content img {  
32 - border-radius: 3px;  
33 - -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);  
34 - -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);  
35 - box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);  
36 -} 29 + h2 {
  30 + color :#000;
  31 + text-align: center;
  32 + margin-bottom: 20px;
37 33
38 -.ribbon-green {  
39 - font: bold 15px Sans-Serif;  
40 - color: #333;  
41 - text-align: center;  
42 - text-shadow: rgba(255,255,255,0.5) 0px 1px 0px;  
43 - -webkit-transform: rotate(45deg);  
44 - -moz-transform: rotate(45deg);  
45 - -ms-transform: rotate(45deg);  
46 - -o-transform: rotate(45deg);  
47 - position: relative;  
48 - padding: 5px 0;  
49 - left: 118px;  
50 - bottom: 124px;  
51 - width: 110px;  
52 - background-color: #BFDC7A;  
53 - background-image: -webkit-gradient(linear, left top, left bottom, from(#BFDC7A), to(#8EBF45));  
54 - background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45);  
55 - background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45);  
56 - background-image: -ms-linear-gradient(top, #BFDC7A, #8EBF45);  
57 - background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45);  
58 - color: #6a6340;  
59 - -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.3);  
60 - -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.3);  
61 - box-shadow: 0px 0px 3px rgba(0,0,0,0.3);  
62 -}  
63 -  
64 -.ribbon-green:before, .ribbon-green:after {  
65 - content: "";  
66 - border-top: 3px solid #6e8900;  
67 - border-left: 3px solid transparent;  
68 - border-right: 3px solid transparent;  
69 - position:absolute;  
70 - bottom: -3px;  
71 -} 34 + -moz-box-shadow: 0 0 5px 5px #CCC;
  35 + -webkit-box-shadow: 0 0 5px 5px #CCC;
  36 + box-shadow: 0 0 5px 5px #CCC;
  37 + }
72 38
73 -.ribbon-green:before {  
74 - left: 0;  
75 -}  
76 -.ribbon-green:after {  
77 - right: 0; 39 + h3 {
  40 + text-align:center;
  41 + color:#BBB;
  42 + text-shadow: 1px 1px #AAA;
  43 + }
78 } 44 }
79 45
80 @media (max-width: 980px) { 46 @media (max-width: 980px) {
app/assets/stylesheets/bootstrap.css.less
@@ -19,19 +19,15 @@ body { @@ -19,19 +19,15 @@ body {
19 @linkColorHover: darken(@linkColor, 15%); 19 @linkColorHover: darken(@linkColor, 15%);
20 20
21 footer { 21 footer {
  22 + margin-top: 20px;
22 background-color: #d6d6d6; 23 background-color: #d6d6d6;
23 text-align:center; 24 text-align:center;
24 - padding:2%; 25 + padding: 2%;
25 -moz-box-shadow: 10px 10px 5px #888; 26 -moz-box-shadow: 10px 10px 5px #888;
26 -webkit-box-shadow: 10px 10px 5px #888; 27 -webkit-box-shadow: 10px 10px 5px #888;
27 box-shadow: 10px 10px 5px #888; 28 box-shadow: 10px 10px 5px #888;
28 } 29 }
29 30
30 -#order_chart_user{  
31 - height:300px;  
32 - width:700px;  
33 - margin-left:150px;  
34 -}  
35 .center_box{ 31 .center_box{
36 margin-left:10%; 32 margin-left:10%;
37 width:100%; 33 width:100%;
@@ -54,32 +50,6 @@ footer { @@ -54,32 +50,6 @@ footer {
54 50
55 } 51 }
56 52
57 -.login{  
58 - min-width:250px;  
59 - padding:5%;  
60 - margin-left:35%;  
61 - margin-right:35%;  
62 - -moz-box-shadow: 0 0 5px 5px #888;  
63 - -webkit-box-shadow: 0 0 5px 5px#888;  
64 - box-shadow: 0 0 5px 5px #888;  
65 -}  
66 -  
67 -.login h2{  
68 - background-color:#FFF;  
69 - color:#000;  
70 - text-align:center;  
71 - margin-bottom:10px;  
72 - -moz-box-shadow: 0 0 5px 5px #CCC;  
73 - -webkit-box-shadow: 0 0 5px 5px#CCC;  
74 - box-shadow: 0 0 5px 5px #CCC;  
75 -}  
76 -  
77 -.login h3{  
78 - text-align:center;  
79 - color:#BBB;  
80 - text-shadow: 1px 1px #AAA;  
81 -}  
82 -  
83 .upload{ 53 .upload{
84 width: 100%; 54 width: 100%;
85 height: 480px; 55 height: 480px;
@@ -134,11 +104,11 @@ footer { @@ -134,11 +104,11 @@ footer {
134 margin-top:10px; 104 margin-top:10px;
135 } 105 }
136 106
137 -.radio{ 107 +.radio {
138 font-size:15px; 108 font-size:15px;
139 } 109 }
140 110
141 -label{ 111 +label {
142 font-size:18px; 112 font-size:18px;
143 } 113 }
144 114
@@ -155,58 +125,6 @@ label{ @@ -155,58 +125,6 @@ label{
155 box-shadow: 0 0 1px 1px #888; 125 box-shadow: 0 0 1px 1px #888;
156 } 126 }
157 127
158 -#player{  
159 - display:block;  
160 - width:600px;  
161 - height:300px;  
162 - float:right;  
163 -  
164 -  
165 - -moz-box-shadow: 0 0 5px 5px #888;  
166 - -webkit-box-shadow: 0 0 5px 5px#888;  
167 - box-shadow: 0 0 5px 5px #888;  
168 -}  
169 -  
170 -#player2{  
171 - display:block;  
172 - width:200px;  
173 - height:150px;  
174 -  
175 - -moz-box-shadow: 0 0 5px 5px #888;  
176 - -webkit-box-shadow: 0 0 5px 5px#888;  
177 - box-shadow: 0 0 5px 5px #888;  
178 -}  
179 -  
180 -#player3{  
181 - display:block;  
182 - width:200px;  
183 - height:150px;  
184 -  
185 - -moz-box-shadow: 0 0 5px 5px #888;  
186 - -webkit-box-shadow: 0 0 5px 5px#888;  
187 - box-shadow: 0 0 5px 5px #888;  
188 -}  
189 -  
190 -#player4{  
191 - display:block;  
192 - width:200px;  
193 - height:150px;  
194 -  
195 - -moz-box-shadow: 0 0 5px 5px #888;  
196 - -webkit-box-shadow: 0 0 5px 5px#888;  
197 - box-shadow: 0 0 5px 5px #888;  
198 -}  
199 -  
200 -#player5{  
201 - display:block;  
202 - width:500px;  
203 - height:380px;  
204 -  
205 - -moz-box-shadow: 0 0 5px 5px #888;  
206 - -webkit-box-shadow: 0 0 5px 5px#888;  
207 - box-shadow: 0 0 5px 5px #888;  
208 -}  
209 -  
210 input{ 128 input{
211 display: inline-block; 129 display: inline-block;
212 *display: inline; 130 *display: inline;
app/assets/stylesheets/bootstrap_overrides.css.scss
@@ -43,10 +43,4 @@ @@ -43,10 +43,4 @@
43 } 43 }
44 .breadcrumb .active a { 44 .breadcrumb .active a {
45 color: #333333; 45 color: #333333;
46 -}  
47 -  
48 -.login {  
49 - padding: 3% 5%;  
50 - margin: 10px 35% 30px;  
51 - text-align: center;  
52 } 46 }
53 \ No newline at end of file 47 \ No newline at end of file
app/assets/stylesheets/v_libras/videos.css.scss
@@ -9,8 +9,4 @@ @@ -9,8 +9,4 @@
9 9
10 .table-requests .label { 10 .table-requests .label {
11 text-transform: lowercase; 11 text-transform: lowercase;
12 -}  
13 -  
14 -.vlibras-video {  
15 - max-width: 500px;  
16 } 12 }
17 \ No newline at end of file 13 \ No newline at end of file
app/controllers/static_controller.rb
1 class StaticController < ApplicationController 1 class StaticController < ApplicationController
  2 + before_filter :authenticate_user!
  3 +
2 def home 4 def home
3 5
4 end 6 end
app/controllers/v_libras/videos_controller.rb
@@ -4,7 +4,7 @@ class VLibras::VideosController &lt; InheritedResources::Base @@ -4,7 +4,7 @@ class VLibras::VideosController &lt; 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 ] 7 + before_filter :mark_as_seen!, :only => [ :show ]
8 8
9 def index 9 def index
10 @videos = current_user.videos 10 @videos = current_user.videos
@@ -13,6 +13,7 @@ class VLibras::VideosController &lt; InheritedResources::Base @@ -13,6 +13,7 @@ class VLibras::VideosController &lt; InheritedResources::Base
13 13
14 protected 14 protected
15 def mark_as_seen! 15 def mark_as_seen!
  16 + @video = VLibras::Video.find(params[:id])
16 @video.mark_as_seen! 17 @video.mark_as_seen!
17 end 18 end
18 end 19 end
app/helpers/application_helper.rb
@@ -47,9 +47,18 @@ module ApplicationHelper @@ -47,9 +47,18 @@ 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 vlibras-video',  
51 - :controls => 'controls', :preload => 'auto', :width => '100%') do  
52 - content_tag(:source, '', :src => '/video.mp4', :type => 'video/mp4') 50 + html5_video_tag('/video.mp4', "#video_#{video.id}")
  51 + end
  52 +
  53 + def html5_video_tag(url, id, classes = nil, *args)
  54 + options = args.first || {}
  55 + options[:id] = id
  56 + options[:class] = "video-js vjs-default skin #{classes}"
  57 + options[:controls] = 'controls'
  58 + options[:preload] = 'auto'
  59 +
  60 + content_tag(:video, options) do
  61 + content_tag(:source, '', :src => url, :type => 'video/mp4')
53 end 62 end
54 end 63 end
55 64
app/views/devise/sessions/new.html.haml
1 -%h2 Sign in  
2 -= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-vertical' }) do |f|  
3 - = f.input :email, :autofocus => true  
4 - = f.input :password  
5 - = f.input :remember_me, :as => :boolean if devise_mapping.rememberable?  
6 - = f.button :submit, "Sign in", :class => 'btn-primary'  
7 -= render "devise/shared/links" 1 +.row-fluid
  2 + .span5.offset1
  3 + = html5_video_tag('/video.mp4', 'login', 'video-instructions', :autoplay => 'autoplay')
  4 +
  5 + .span4.offset1.login
  6 + %h2 Entrar
  7 + = simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-vertical' }) do |f|
  8 + = f.input :email, :autofocus => true
  9 + = f.input :password, :label => "Senha", :required => false
  10 + = f.input :remember_me, :label => "Lembre-me da senha", :as => :boolean if devise_mapping.rememberable?
  11 + = f.button :submit, "Entrar", :class => 'btn-primary'
  12 + = render "devise/shared/links"
  13 +
  14 +
  15 += javascript_include_tag "plugins/flowplayer-3.2.8.min"
  16 += javascript_include_tag "site/user"
8 \ No newline at end of file 17 \ No newline at end of file
app/views/layouts/application.html.erb
@@ -12,83 +12,9 @@ @@ -12,83 +12,9 @@
12 document.createElement('video');document.createElement('audio');document.createElement('track'); 12 document.createElement('video');document.createElement('audio');document.createElement('track');
13 </script> 13 </script>
14 </head> 14 </head>
15 -<body>  
16 -<div class="navbar navbar-fixed-top">  
17 - <div class="navbar-inner">  
18 - <div class="container">  
19 - <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">  
20 - <span class="icon-bar"></span>  
21 - <span class="icon-bar"></span>  
22 - <span class="icon-bar"></span>  
23 - </a>  
24 - <%= link_to "GTAaaS", home_path, :class => "brand" %>  
25 -  
26 - <%- if current_user.present? %>  
27 - <div class="nav-collapse">  
28 - <ul class="nav">  
29 - <li><%= link_to t('shared.main'), home_path %></li>  
30 -  
31 - <li class="dropdown">  
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>  
39 -  
40 - <ul class="dropdown-menu">  
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>  
49 - <li><%= link_to t('videos.new'), '#' %></li>  
50 - <li class="divider"></li>  
51 - <li><%= link_to t('shared.form_alternative'), rapid_v_libras_requests_path %></li>  
52 - </ul>  
53 - </li>  
54 -  
55 - <li class="dropdown hidden">  
56 - <a class="dropdown-toggle" href="#" data-toggle="dropdown"><%= t('shared.wikilibras') %><strong class="caret"></strong></a>  
57 15
58 - <ul class="dropdown-menu">  
59 - <li><%= link_to t('wikivideos.my_signals'), '#' %></li>  
60 - <li><%= link_to t('wikivideos.cadastro_sinal'), '#' %></li>  
61 - <li class="divider"></li>  
62 - <li><%= link_to t('wikivideos.dicionario_de_dados'), '#' %></li>  
63 - </ul>  
64 - </li>  
65 - <li class="hidden"><%= link_to t('shared.slibras') %></li>  
66 - <li><%= link_to t('shared.about'), "http://gtaaas.lavid.ufpb.br/projeto", :target => "blank" %></li>  
67 - </ul>  
68 -  
69 -  
70 - <ul class="nav pull-right">  
71 - <li class="dropdown">  
72 - <%= link_to t('shared.logout'), destroy_user_session_path, :method => 'delete' %>  
73 - <!-- <a class="dropdown-toggle" href="#" data-toggle="dropdown"><%#= current_user.email %><strong class="caret"></strong></a>  
74 -  
75 - <ul class="dropdown-menu">  
76 - <li><%#= link_to t('shared.edit'), edit_user_registration_path %></li>  
77 - <li class="divider"></li>  
78 - <li><%#= link_to t('shared.logout'), destroy_user_session_path, :method => 'delete' %></li>  
79 - </ul> -->  
80 - </li>  
81 - </ul>  
82 - <% end %>  
83 -  
84 - <ul class="nav secondary-nav">  
85 - <!-- <li><%= link_to image_tag('pt.png'), url_for( :locale => 'pt' ), :title => "Português" %></li>  
86 - <li><%= link_to image_tag('en.png'), url_for( :locale => 'en' ), :title => 'English' %></li> -->  
87 - </ul>  
88 - </div><!--/.nav-collapse -->  
89 - </div>  
90 - </div>  
91 -</div> 16 +<body>
  17 +<%= render 'layouts/menu' %>
92 18
93 <div class="container-fluid"> 19 <div class="container-fluid">
94 <% if content_for?(:menu) %> 20 <% if content_for?(:menu) %>
@@ -107,7 +33,9 @@ @@ -107,7 +33,9 @@
107 <%= yield %> 33 <%= yield %>
108 34
109 <footer> 35 <footer>
110 - <p>GTAaaS - <%= t('shared.project') %> <a href="http://gtaaas.lavid.ufpb.br" target="_blank">LAVID</a> | &copy; <%= Time.now.year %>. <%= t('shared.copyright') %>.</p> 36 + <p>GTAaaS - <%= t('shared.project') %>
  37 + <a href="http://gtaaas.lavid.ufpb.br" target="_blank">LAVID</a> |
  38 + &copy; <%= Time.now.year %>. <%= t('shared.copyright') %>.</p>
111 </footer> 39 </footer>
112 </div> 40 </div>
113 41
app/views/v_libras/videos/index.haml
@@ -27,18 +27,19 @@ @@ -27,18 +27,19 @@
27 %h4= t('requests.list') 27 %h4= t('requests.list')
28 28
29 .row-fluid 29 .row-fluid
30 - %table.table.table-hover.table-striped.table-requests.span8.offset2  
31 - %thead  
32 - %tr  
33 - %th Situação  
34 - %th Vídeo  
35 - %th Criado há  
36 -  
37 - - @requests.each do |request|  
38 - %tr  
39 - %td.span2= request_status_label(request)  
40 - %td.span5= request.video_filename  
41 - %td.span5= time_ago_in_words(request.created_at) 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)
42 43
43 44
44 45
config/routes.rb
1 Rails.application.routes.draw do 1 Rails.application.routes.draw do
2 - devise_for :users, ActiveAdmin::Devise.config 2 + devise_for :users
3 3
4 constraints CanAccessDelayedJobWeb do 4 constraints CanAccessDelayedJobWeb do
5 namespace :admin do 5 namespace :admin do