Commit 35c7698b3dd2078e59700deecf8d2d726edcb36f

Authored by Adabriand Furtado
1 parent e3569528
Exists in master

Adicionado suporte ao Safari e novos campos no Enviar Sinal.

Showing 105 changed files with 414 additions and 251 deletions   Show diff stats
view/css/main.css
@@ -8,6 +8,10 @@ body nav.navbar:first-child { @@ -8,6 +8,10 @@ body nav.navbar:first-child {
8 display: none; 8 display: none;
9 } 9 }
10 10
  11 +.navbar-wl .navbar-nav {
  12 + padding-left: 60px;
  13 +}
  14 +
11 footer { 15 footer {
12 display: none; 16 display: none;
13 } 17 }
@@ -534,6 +538,10 @@ ul.rig.columns-4 li { @@ -534,6 +538,10 @@ ul.rig.columns-4 li {
534 width: 100%; 538 width: 100%;
535 } 539 }
536 540
  541 +#thanks-screen a {
  542 + text-decoration: underline;
  543 +}
  544 +
537 #completed-all-task-msg { 545 #completed-all-task-msg {
538 display: none; 546 display: none;
539 } 547 }
view/img/circular/md/plano-baixo-esquerda.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-baixo-tras.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-cima-direita.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-cima-frente.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-direita-baixo.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-direita-tras.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-esquerda-cima.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-esquerda-frente.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-frente-baixo.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-frente-direita.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-tras-cima.mp4 0 → 100644
No preview for this file type
view/img/circular/md/plano-tras-esquerda.mp4 0 → 100644
No preview for this file type
view/img/circular/md/raio-grande.mp4 0 → 100644
No preview for this file type
view/img/circular/md/raio-normal.mp4 0 → 100644
No preview for this file type
view/img/circular/md/raio-pequeno.mp4 0 → 100644
No preview for this file type
view/img/circular/md/sentido-anti-horario.mp4 0 → 100644
No preview for this file type
view/img/circular/md/sentido-horario.mp4 0 → 100644
No preview for this file type
view/img/circular/md/velocidade-lento.mp4 0 → 100644
No preview for this file type
view/img/circular/md/velocidade-normal.mp4 0 → 100644
No preview for this file type
view/img/circular/md/velocidade-rapido.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-baixo-esquerda.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-baixo-tras.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-cima-direita.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-cima-frente.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-direita-baixo.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-direita-tras.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-esquerda-cima.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-esquerda-frente.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-frente-baixo.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-frente-direita.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-tras-cima.mp4 0 → 100644
No preview for this file type
view/img/circular/me/plano-tras-esquerda.mp4 0 → 100644
No preview for this file type
view/img/circular/me/raio-grande.mp4 0 → 100644
No preview for this file type
view/img/circular/me/raio-normal.mp4 0 → 100644
No preview for this file type
view/img/circular/me/raio-pequeno.mp4 0 → 100644
No preview for this file type
view/img/circular/me/sentido-anti-horario.mp4 0 → 100644
No preview for this file type
view/img/circular/me/sentido-horario.mp4 0 → 100644
No preview for this file type
view/img/circular/me/velocidade-lento.mp4 0 → 100644
No preview for this file type
view/img/circular/me/velocidade-normal.mp4 0 → 100644
No preview for this file type
view/img/circular/me/velocidade-rapido.mp4 0 → 100644
No preview for this file type
view/img/exf/duration-fast.mp4 0 → 100644
No preview for this file type
view/img/exf/duration-normal.mp4 0 → 100644
No preview for this file type
view/img/exf/duration-slow.mp4 0 → 100644
No preview for this file type
view/img/exf/velocity-fast.mp4 0 → 100644
No preview for this file type
view/img/exf/velocity-normal.mp4 0 → 100644
No preview for this file type
view/img/exf/velocity-slow.mp4 0 → 100644
No preview for this file type
view/img/mov/CIRCULAR.mp4 0 → 100644
No preview for this file type
view/img/mov/PONTUAL.mp4 0 → 100644
No preview for this file type
view/img/mov/RETILINEO.mp4 0 → 100644
No preview for this file type
view/img/mov/SEMICIRCULAR.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-baixo-esquerda.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-baixo-tras.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-cima-direita.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-cima-frente.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-direita-baixo.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-direita-tras.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-esquerda-cima.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-esquerda-frente.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-frente-baixo.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-frente-direita.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-tras-cima.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/plano-tras-esquerda.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/raio-grande.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/raio-normal.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/raio-pequeno.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/sentido-anti-horario.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/sentido-horario.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/velocidade-lento.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/velocidade-normal.mp4 0 → 100644
No preview for this file type
view/img/semicircular/md/velocidade-rapido.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-baixo-esquerda.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-baixo-tras.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-cima-direita.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-cima-frente.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-direita-baixo.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-direita-tras.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-esquerda-cima.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-esquerda-frente.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-frente-baixo.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-frente-direita.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-tras-cima.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/plano-tras-esquerda.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/raio-grande.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/raio-normal.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/raio-pequeno.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/sentido-anti-horario.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/sentido-horario.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/velocidade-lento.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/velocidade-normal.mp4 0 → 100644
No preview for this file type
view/img/semicircular/me/velocidade-rapido.mp4 0 → 100644
No preview for this file type
view/js/helpers/video-helper.js
1 (function(videoHelper, $, undefined) { 1 (function(videoHelper, $, undefined) {
2 - 2 +
  3 + function _getSource(videoBaseUrl) {
  4 + return '<source src="' + videoBaseUrl + '.webm" type="video/webm">'
  5 + + '<source src="' + videoBaseUrl
  6 + + '.mp4" type="video/mp4">Sem suporte a vídeos';
  7 + }
  8 +
3 function _controlVideo(elId, toPlay) { 9 function _controlVideo(elId, toPlay) {
4 - var videoSrc = $(elId).attr("src");  
5 - if (typeof videoSrc == "undefined" ||  
6 - (typeof videoSrc != "undefined" && videoSrc === "")) 10 + if ($(elId).length === 0)
7 return; 11 return;
8 if (toPlay) { 12 if (toPlay) {
9 $(elId).get(0).play(); 13 $(elId).get(0).play();
@@ -11,13 +15,17 @@ @@ -11,13 +15,17 @@
11 $(elId).get(0).pause(); 15 $(elId).get(0).pause();
12 } 16 }
13 } 17 }
14 - 18 +
15 videoHelper.play = function(elId) { 19 videoHelper.play = function(elId) {
16 _controlVideo(elId, true); 20 _controlVideo(elId, true);
17 - }  
18 -  
19 - videoHelper.pause = function(elId) { 21 + };
  22 +
  23 + videoHelper.pause = function(elId) {
20 _controlVideo(elId, false); 24 _controlVideo(elId, false);
21 - } 25 + };
  26 +
  27 + videoHelper.getSource = function(videoBaseUrl) {
  28 + return _getSource(videoBaseUrl);
  29 + };
22 30
23 }(window.videoHelper = window.videoHelper || {}, jQuery)); 31 }(window.videoHelper = window.videoHelper || {}, jQuery));
view/js/render-sign.js
1 (function(renderSign, $, undefined) { 1 (function(renderSign, $, undefined) {
2 - 2 +
3 var api_url = ''; 3 var api_url = '';
4 - 4 +
5 function _submitParameterJSON(parsedParameterJSON, callback) { 5 function _submitParameterJSON(parsedParameterJSON, callback) {
6 console.log(parsedParameterJSON); 6 console.log(parsedParameterJSON);
7 $.ajax({ 7 $.ajax({
@@ -18,14 +18,15 @@ @@ -18,14 +18,15 @@
18 } 18 }
19 }); 19 });
20 } 20 }
21 - 21 +
22 function _showRenderedAvatar(parameterJSON) { 22 function _showRenderedAvatar(parameterJSON) {
23 var userId = parameterJSON['userId']; 23 var userId = parameterJSON['userId'];
24 var signName = parameterJSON['sinal']; 24 var signName = parameterJSON['sinal'];
25 - $("#render-avatar video").attr("src",  
26 - _getRenderedAvatarUrl(userId, signName)); 25 +
  26 + var avatarBaseUrl = _getRenderedAvatarBaseUrl(userId, signName);
  27 + $('#render-avatar video').html(videoHelper.getSource(avatarBaseUrl));
27 $("#render-avatar").fadeIn(300); 28 $("#render-avatar").fadeIn(300);
28 - } 29 + }
29 30
30 function _showRenderScreen(toShow) { 31 function _showRenderScreen(toShow) {
31 if (toShow) { 32 if (toShow) {
@@ -38,22 +39,22 @@ @@ -38,22 +39,22 @@
38 videoHelper.pause("#render-avatar video"); 39 videoHelper.pause("#render-avatar video");
39 } 40 }
40 } 41 }
41 -  
42 - function _getRenderedAvatarUrl(userId, signName) {  
43 - return api_url + '/public/' + userId + '/' + signName + ".webm"; 42 +
  43 + function _getRenderedAvatarBaseUrl(userId, signName) {
  44 + return api_url + '/public/' + userId + '/' + signName;
44 } 45 }
45 - 46 +
46 renderSign.showRenderedAvatar = function(parameterJSON) { 47 renderSign.showRenderedAvatar = function(parameterJSON) {
47 _showRenderedAvatar(parameterJSON); 48 _showRenderedAvatar(parameterJSON);
48 _showRenderScreen(true); 49 _showRenderScreen(true);
49 } 50 }
50 - 51 +
51 renderSign.showRenderScreen = function(toShow) { 52 renderSign.showRenderScreen = function(toShow) {
52 _showRenderScreen(toShow); 53 _showRenderScreen(toShow);
53 } 54 }
54 -  
55 - renderSign.getRenderedAvatarUrl = function(userId, signName) {  
56 - return _getRenderedAvatarUrl(userId, signName); 55 +
  56 + renderSign.getRenderedAvatarBaseUrl = function(userId, signName) {
  57 + return _getRenderedAvatarBaseUrl(userId, signName);
57 } 58 }
58 59
59 renderSign.submit = function(parsedParameterJSON) { 60 renderSign.submit = function(parsedParameterJSON) {
@@ -65,13 +66,14 @@ @@ -65,13 +66,14 @@
65 $("#finish-button").addClass("disabled"); 66 $("#finish-button").addClass("disabled");
66 $("#finish-button").show(); 67 $("#finish-button").show();
67 68
68 - _submitParameterJSON(parsedParameterJSON, function(parsedParameterJSON) {  
69 - $("#render-loading").fadeOut(300);  
70 - $("#finish-button").removeClass("disabled");  
71 - _showRenderedAvatar(parsedParameterJSON);  
72 - }); 69 + _submitParameterJSON(parsedParameterJSON,
  70 + function(parsedParameterJSON) {
  71 + $("#render-loading").fadeOut(300);
  72 + $("#finish-button").removeClass("disabled");
  73 + _showRenderedAvatar(parsedParameterJSON);
  74 + });
73 }; 75 };
74 - 76 +
75 renderSign.setup = function(apiUrl) { 77 renderSign.setup = function(apiUrl) {
76 api_url = apiUrl; 78 api_url = apiUrl;
77 $("#render-edit").off("click").on("click", function() { 79 $("#render-edit").off("click").on("click", function() {
view/js/submit-sign.js
1 (function(submitSign, $, undefined) { 1 (function(submitSign, $, undefined) {
2 2
3 var submitUrl = ''; 3 var submitUrl = '';
4 - 4 + var MIN_PHRASES_LENGTH = 3;
  5 + var MAX_PHRASES_LENGTH = 20;
  6 +
5 function _isEmpty(str) { 7 function _isEmpty(str) {
6 return (!str || 0 === str.length); 8 return (!str || 0 === str.length);
7 } 9 }
8 10
9 - function _validadeInputFields() { 11 + function _alertSignName() {
  12 + $('#upload-warning-msg').hide();
10 var signName = $('#input-sign-name').val(); 13 var signName = $('#input-sign-name').val();
  14 + if (_isEmpty(signName)) {
  15 + $('#upload-warning-msg').html('Por favor indique o nome do sinal.');
  16 + $('#upload-warning-msg').show();
  17 + }
  18 + }
  19 +
  20 + function _alertWordClass() {
  21 + $('#upload-warning-msg').hide();
  22 + var wordClass = $('#input-word-class').val();
  23 + if (_isEmpty(wordClass)) {
  24 + $('#upload-warning-msg').html(
  25 + 'Por favor selecione a classe gramatical do sinal.');
  26 + $('#upload-warning-msg').show();
  27 + }
  28 + }
  29 +
  30 + function _areValidPhrases(phrases) {
  31 + var cleanPhrases = phrases.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "");
  32 + var splitPhrasesLength = cleanPhrases.trim().split(/\s+/g).length;
  33 + return splitPhrasesLength >= MIN_PHRASES_LENGTH
  34 + && splitPhrasesLength <= MAX_PHRASES_LENGTH;
  35 + }
  36 +
  37 + function _alertPhrase() {
  38 + $('#upload-warning-msg').hide();
  39 + var phrases = $('#input-phrases').val();
  40 + if (!_areValidPhrases(phrases)) {
  41 + $('#upload-warning-msg').html(
  42 + 'As frases de exemplo devem possuir no minímo '
  43 + + MIN_PHRASES_LENGTH + ' e no máximo '
  44 + + MAX_PHRASES_LENGTH + ' palavras.');
  45 + $('#upload-warning-msg').show();
  46 + }
  47 + }
  48 +
  49 + function _alertState() {
  50 + $('#upload-warning-msg').hide();
11 var state = $('#input-state').val(); 51 var state = $('#input-state').val();
  52 + if (_isEmpty(state)) {
  53 + $('#upload-warning-msg').html('Por favor selecione seu estado.');
  54 + $('#upload-warning-msg').show();
  55 + }
  56 + }
  57 +
  58 + function _alertCity() {
  59 + $('#upload-warning-msg').hide();
12 var city = $('#input-city').val(); 60 var city = $('#input-city').val();
  61 + if (_isEmpty(city)) {
  62 + $('#upload-warning-msg').html(
  63 + 'Por favor indique o nome da sua cidade.');
  64 + $('#upload-warning-msg').show();
  65 + }
  66 + }
  67 +
  68 + function _alertSignUpload() {
  69 + $('#upload-warning-msg').hide();
13 var signUpload = $('#input-sign-upload').val(); 70 var signUpload = $('#input-sign-upload').val();
14 - return !_isEmpty(signName) && !_isEmpty(state) && !_isEmpty(city)  
15 - && !_isEmpty(signUpload); 71 + if (_isEmpty(signUpload)) {
  72 + $('#upload-warning-msg').html(
  73 + 'Por favor selecione o arquivo do vídeo do seu sinal.');
  74 + $('#upload-warning-msg').show();
  75 + }
  76 + }
  77 +
  78 + function _validadeAllFields() {
  79 + var signName = $('#input-sign-name').val();
  80 + var wordClass = $('#input-word-class').val();
  81 + var phrases = $('#input-phrases').val();
  82 + var state = $('#input-state').val();
  83 + var city = $('#input-city').val();
  84 + var signUpload = $('#input-sign-upload').val();
  85 + return !_isEmpty(signName) && !_isEmpty(wordClass)
  86 + && _areValidPhrases(phrases) && !_isEmpty(state)
  87 + && !_isEmpty(city) && !_isEmpty(signUpload);
16 } 88 }
17 89
18 function _updateSubmitButton() { 90 function _updateSubmitButton() {
19 - if (_validadeInputFields()) {  
20 - $('#submit-sign-container button').removeClass('disabled'); 91 + if (_validadeAllFields()) {
  92 + _enableSubmitButton();
21 } else { 93 } else {
22 - $('#submit-sign-container button').addClass('disabled'); 94 + _disableSubmitButton();
23 } 95 }
24 } 96 }
25 - 97 +
  98 + function _enableSubmitButton() {
  99 + $('#submit-sign-container button').removeClass('disabled');
  100 + $('#submit-sign-container button').off('click');
  101 + }
  102 +
  103 + function _disableSubmitButton() {
  104 + $('#submit-sign-container button').addClass('disabled');
  105 + $('#submit-sign-container button').on('click', function(event) {
  106 + event.preventDefault();
  107 + });
  108 + }
  109 +
26 function _resetFormFields() { 110 function _resetFormFields() {
27 $('#input-sign-name').val(''); 111 $('#input-sign-name').val('');
28 $('#input-state').val(''); 112 $('#input-state').val('');
29 $('#input-city').val(''); 113 $('#input-city').val('');
30 $('#input-sign-upload').val(''); 114 $('#input-sign-upload').val('');
31 $("#upload-progress .progress-bar").css("width", "0px"); 115 $("#upload-progress .progress-bar").css("width", "0px");
32 - $('#upload-progress-container').hide(); 116 + $('#upload-progress-container').hide();
33 $('#input-sign-upload').show(); 117 $('#input-sign-upload').show();
34 } 118 }
35 -  
36 - submitSign.show = function() {  
37 - $(".sub-main-container").hide();  
38 - $("#submit-sign-container").show();  
39 - $("#submit-sign-anchor").focus();  
40 - }  
41 119
42 - submitSign.setup = function(uploadSignHost) {  
43 - submitUrl = uploadSignHost; 120 + function _setupSubmitSignForm() {
  121 + _disableSubmitButton();
44 $('#submit-sign-container form').fileupload( 122 $('#submit-sign-container form').fileupload(
45 { 123 {
46 url : submitUrl, 124 url : submitUrl,
47 - add: function (e, data) {  
48 - $('#submit-sign-container button').off('click').on('click', function (event) {  
49 - event.preventDefault();  
50 -  
51 - $('#submit-sign-container button').addClass('disabled');  
52 - $('#input-sign-upload').hide();  
53 - $('#upload-progress-container').show();  
54 - data.submit();  
55 - });  
56 - }, 125 + add : function(e, data) {
  126 + $('#submit-sign-container button').off('click').on(
  127 + 'click',
  128 + function(event) {
  129 + event.preventDefault();
  130 +
  131 + $('#submit-sign-container button')
  132 + .addClass('disabled');
  133 + $('#input-sign-upload').hide();
  134 + $('#upload-progress-container').show();
  135 + data.submit();
  136 + });
  137 + },
57 done : function(e, data) { 138 done : function(e, data) {
58 $('#upload-success-msg').fadeIn(500); 139 $('#upload-success-msg').fadeIn(500);
59 setTimeout(function() { 140 setTimeout(function() {
@@ -64,27 +145,52 @@ @@ -64,27 +145,52 @@
64 progressall : function(e, data) { 145 progressall : function(e, data) {
65 var progress = parseInt(data.loaded / data.total * 100, 146 var progress = parseInt(data.loaded / data.total * 100,
66 10); 147 10);
67 - $("#upload-progress .progress-bar").attr('aria-valuenow', progress).  
68 - css("width", progress + "%"); 148 + $("#upload-progress .progress-bar").attr(
  149 + 'aria-valuenow', progress).css("width",
  150 + progress + "%");
69 }, 151 },
70 error : function(error) { 152 error : function(error) {
71 alert(error.responseText); 153 alert(error.responseText);
72 }, 154 },
73 - replaceFileInput: false 155 + replaceFileInput : false
74 }); 156 });
75 157
76 $('#input-sign-name').on('input', function() { 158 $('#input-sign-name').on('input', function() {
  159 + _alertSignName();
  160 + _updateSubmitButton();
  161 + });
  162 + $('#input-word-class').on('input', function() {
  163 + _alertWordClass();
  164 + _updateSubmitButton();
  165 + });
  166 + $('#input-phrases').on('input', function() {
  167 + _alertPhrase();
77 _updateSubmitButton(); 168 _updateSubmitButton();
78 }); 169 });
79 $('#input-state').on('input', function() { 170 $('#input-state').on('input', function() {
  171 + _alertState();
80 _updateSubmitButton(); 172 _updateSubmitButton();
81 }); 173 });
82 $('#input-city').on('input', function() { 174 $('#input-city').on('input', function() {
  175 + _alertCity();
83 _updateSubmitButton(); 176 _updateSubmitButton();
84 }); 177 });
85 $('#input-sign-upload').on('change', function() { 178 $('#input-sign-upload').on('change', function() {
  179 + _alertSignUpload();
86 _updateSubmitButton(); 180 _updateSubmitButton();
87 }); 181 });
  182 + }
  183 +
  184 + submitSign.show = function() {
  185 + $(".sub-main-container").hide();
  186 + $("#submit-sign-container").show();
  187 + $("#submit-sign-anchor").focus();
  188 + };
  189 +
  190 + submitSign.setup = function(uploadSignHost) {
  191 + submitUrl = uploadSignHost;
  192 + loadHtmlHelper.load('/submit-sign/submit-sign.html',
  193 + '#submit-sign-container', _setupSubmitSignForm);
88 }; 194 };
89 195
90 }(window.submitSign = window.submitSign || {}, jQuery)); 196 }(window.submitSign = window.submitSign || {}, jQuery));
view/js/teached-signs.js
@@ -6,20 +6,20 @@ @@ -6,20 +6,20 @@
6 var projectId = -1; 6 var projectId = -1;
7 7
8 function _updateTeachedSignsMessage() { 8 function _updateTeachedSignsMessage() {
9 - $(".teached-signs-msg").hide(); 9 + $('.teached-signs-msg').hide();
10 if (doneTasks == 0) { 10 if (doneTasks == 0) {
11 - $(".teached-signs-msg[type=none]").show(); 11 + $('.teached-signs-msg[type=none]').show();
12 } else if (doneTasks == 1) { 12 } else if (doneTasks == 1) {
13 - $(".teached-signs-msg[type=one]").show(); 13 + $('.teached-signs-msg[type=one]').show();
14 } else { 14 } else {
15 - $(".teached-signs-msg[type=more] span").text(doneTasks);  
16 - $(".teached-signs-msg[type=more]").show(); 15 + $('.teached-signs-msg[type=more] span').text(doneTasks);
  16 + $('.teached-signs-msg[type=more]').show();
17 } 17 }
18 } 18 }
19 19
20 function _createSigns(answers) { 20 function _createSigns(answers) {
21 _updateTeachedSignsMessage(); 21 _updateTeachedSignsMessage();
22 - $("#signs-list-container").html(""); 22 + $('#signs-list-container').html('');
23 for (i = 0; i < answers.length; i++) { 23 for (i = 0; i < answers.length; i++) {
24 _addSign(answers[i].info); 24 _addSign(answers[i].info);
25 } 25 }
@@ -28,25 +28,24 @@ @@ -28,25 +28,24 @@
28 function _addSign(answer) { 28 function _addSign(answer) {
29 var signName = answer.parameter_json.sinal; 29 var signName = answer.parameter_json.sinal;
30 var apiUserId = answer.parameter_json.userId; 30 var apiUserId = answer.parameter_json.userId;
31 - var videoUrl = renderSign.getRenderedAvatarUrl(apiUserId, signName);  
32 - $("#signs-list-container").append( 31 + var videoBaseUrl = renderSign.getRenderedAvatarBaseUrl(apiUserId,
  32 + signName);
  33 + $('#signs-list-container').append(
33 '<div class="col-btn col-xs-6 col-sm-3 col-md-2" sign-name="' 34 '<div class="col-btn col-xs-6 col-sm-3 col-md-2" sign-name="'
34 + signName 35 + signName
35 + '"><button class="btn btn-danger btn-block">' 36 + '"><button class="btn btn-danger btn-block">'
36 + signName + '</button></div>'); 37 + signName + '</button></div>');
37 - $("#signs-list-container .col-btn[sign-name=" + signName + "]")  
38 - .off("click")  
39 - .on(  
40 - "click",  
41 - function() {  
42 - $('#teached-sign-video-container')  
43 - .html(  
44 - "<video autoplay loop><source src='"  
45 - + videoUrl  
46 - + "' type='video/webm'>Sem suporte a vídeos</video>");  
47 - $('#teached-sign-name').html(signName);  
48 - $('#teached-sign-modal').modal('show');  
49 - }); 38 + $('#signs-list-container .col-btn[sign-name=' + signName + ']').off(
  39 + 'click').on(
  40 + 'click',
  41 + function() {
  42 + $('#teached-sign-video-container').html(
  43 + '<video autoplay loop>'
  44 + + videoHelper.getSource(videoBaseUrl)
  45 + + '</video>');
  46 + $('#teached-sign-name').html(signName);
  47 + $('#teached-sign-modal').modal('show');
  48 + });
50 } 49 }
51 50
52 function _updateTeachedSignsContainer() { 51 function _updateTeachedSignsContainer() {
@@ -56,13 +55,13 @@ @@ -56,13 +55,13 @@
56 } 55 }
57 56
58 teachedSigns.show = function() { 57 teachedSigns.show = function() {
59 - $(".sub-main-container").hide();  
60 - $("#teached-signs-container").show(); 58 + $('.sub-main-container').hide();
  59 + $('#teached-signs-container').show();
61 } 60 }
62 61
63 teachedSigns.setup = function() { 62 teachedSigns.setup = function() {
64 pybossaApiHelper.getProjectId().done(function(response) { 63 pybossaApiHelper.getProjectId().done(function(response) {
65 - if (typeof response == "undefined" || response.length < 1) { 64 + if (typeof response == 'undefined' || response.length < 1) {
66 return; 65 return;
67 } 66 }
68 projectId = response[0].id; 67 projectId = response[0].id;
view/js/wikilibras.js
@@ -33,10 +33,9 @@ @@ -33,10 +33,9 @@
33 function _loadTaskInfo(task) { 33 function _loadTaskInfo(task) {
34 currentTaskId = task.id; 34 currentTaskId = task.id;
35 var signName = task.info.sign_name; 35 var signName = task.info.sign_name;
36 - var refVidLink = videosUrl + signName + '_REF.webm'; 36 + var baseRefVidUrl = videosUrl + signName + '_REF';
37 $('.sign-label').text(signName); 37 $('.sign-label').text(signName);
38 - $('.ref-video').attr('src', refVidLink);  
39 - 38 + $('.ref-video').html(videoHelper.getSource(baseRefVidUrl));
40 _setupTmpParameterJSON(task.info.sign_name); 39 _setupTmpParameterJSON(task.info.sign_name);
41 } 40 }
42 41
view/templates/facial/duracao/passo-1.html
@@ -4,30 +4,33 @@ @@ -4,30 +4,33 @@
4 </div> 4 </div>
5 <div class="single-column-option-container"> 5 <div class="single-column-option-container">
6 <div class="single-column-option"> 6 <div class="single-column-option">
7 - <video src="{{ server }}/img/exf/duration-slow.webm" 7 + <video
8 preload="metadata" value="lento" 8 preload="metadata" value="lento"
9 class="video-panel-option selection-panel-option" autoplay loop> 9 class="video-panel-option selection-panel-option" autoplay loop>
10 - <source type="video/webm"> 10 + <source src="{{ server }}/img/exf/duration-slow.webm" type="video/webm">
  11 + <source src="{{ server }}/img/exf/duration-slow.mp4" type="video/mp4">
11 </div> 12 </div>
12 <img class="single-column-option" 13 <img class="single-column-option"
13 src="{{ server }}/img/long-duration-icon.png" /> Longa 14 src="{{ server }}/img/long-duration-icon.png" /> Longa
14 </div> 15 </div>
15 <div class="single-column-option-container"> 16 <div class="single-column-option-container">
16 <div class="single-column-option"> 17 <div class="single-column-option">
17 - <video src="{{ server }}/img/exf/duration-normal.webm" 18 + <video
18 preload="metadata" value="normal" 19 preload="metadata" value="normal"
19 class="video-panel-option selection-panel-option" autoplay loop> 20 class="video-panel-option selection-panel-option" autoplay loop>
20 - <source type="video/webm"> 21 + <source src="{{ server }}/img/exf/duration-normal.webm" type="video/webm">
  22 + <source src="{{ server }}/img/exf/duration-normal.mp4" type="video/mp4">
21 </div> 23 </div>
22 <img class="single-column-option" 24 <img class="single-column-option"
23 src="{{ server }}/img/normal-duration-icon.png" /> Normal 25 src="{{ server }}/img/normal-duration-icon.png" /> Normal
24 </div> 26 </div>
25 <div class="single-column-option-container"> 27 <div class="single-column-option-container">
26 <div class="single-column-option"> 28 <div class="single-column-option">
27 - <video src="{{ server }}/img/exf/duration-fast.webm" 29 + <video
28 preload="metadata" value="rapido" 30 preload="metadata" value="rapido"
29 class="video-panel-option selection-panel-option" autoplay loop> 31 class="video-panel-option selection-panel-option" autoplay loop>
30 - <source type="video/webm"> 32 + <source src="{{ server }}/img/exf/duration-fast.webm" type="video/webm">
  33 + <source src="{{ server }}/img/exf/duration-fast.mp4" type="video/mp4">
31 </div> 34 </div>
32 <img class="single-column-option" 35 <img class="single-column-option"
33 src="{{ server }}/img/short-duration-icon.png" /> Breve 36 src="{{ server }}/img/short-duration-icon.png" /> Breve
view/templates/facial/transicao/passo-1.html
@@ -5,30 +5,33 @@ @@ -5,30 +5,33 @@
5 </div> 5 </div>
6 <div class="single-column-option-container"> 6 <div class="single-column-option-container">
7 <div class="single-column-option"> 7 <div class="single-column-option">
8 - <video src="{{ server }}/img/exf/velocity-slow.webm" 8 + <video
9 preload="metadata" value="lento" 9 preload="metadata" value="lento"
10 class="video-panel-option selection-panel-option" autoplay loop> 10 class="video-panel-option selection-panel-option" autoplay loop>
11 - <source type="video/webm"> 11 + <source src="{{ server }}/img/exf/velocity-slow.webm" type="video/webm">
  12 + <source src="{{ server }}/img/exf/velocity-slow.mp4" type="video/mp4">
12 </div> 13 </div>
13 <img class="single-column-option" 14 <img class="single-column-option"
14 src="{{ server }}/img/slow-velocity-icon.png" /> Lento 15 src="{{ server }}/img/slow-velocity-icon.png" /> Lento
15 </div> 16 </div>
16 <div class="single-column-option-container"> 17 <div class="single-column-option-container">
17 <div class="single-column-option"> 18 <div class="single-column-option">
18 - <video src="{{ server }}/img/exf/velocity-normal.webm" 19 + <video
19 preload="metadata" value="normal" 20 preload="metadata" value="normal"
20 class="video-panel-option selection-panel-option" autoplay loop> 21 class="video-panel-option selection-panel-option" autoplay loop>
21 - <source type="video/webm"> 22 + <source src="{{ server }}/img/exf/velocity-normal.webm" type="video/webm">
  23 + <source src="{{ server }}/img/exf/velocity-normal.mp4" type="video/mp4">
22 </div> 24 </div>
23 <img class="single-column-option" 25 <img class="single-column-option"
24 src="{{ server }}/img/normal-velocity-icon.png" /> Normal 26 src="{{ server }}/img/normal-velocity-icon.png" /> Normal
25 </div> 27 </div>
26 <div class="single-column-option-container"> 28 <div class="single-column-option-container">
27 <div class="single-column-option"> 29 <div class="single-column-option">
28 - <video src="{{ server }}/img/exf/velocity-fast.webm" 30 + <video
29 preload="metadata" value="rapido" 31 preload="metadata" value="rapido"
30 class="video-panel-option selection-panel-option" autoplay loop> 32 class="video-panel-option selection-panel-option" autoplay loop>
31 - <source type="video/webm"> 33 + <source src="{{ server }}/img/exf/velocity-fast.webm" type="video/webm">
  34 + <source src="{{ server }}/img/exf/velocity-fast.mp4" type="video/mp4">
32 </div> 35 </div>
33 <img class="single-column-option" 36 <img class="single-column-option"
34 src="{{ server }}/img/fast-velocity-icon.png" /> Rápido 37 src="{{ server }}/img/fast-velocity-icon.png" /> Rápido
view/templates/hand/movimento/passo-1.html
@@ -5,36 +5,30 @@ @@ -5,36 +5,30 @@
5 </div> 5 </div>
6 <div class="selection-panel-inner-body"> 6 <div class="selection-panel-inner-body">
7 <ul class="rig columns-2"> 7 <ul class="rig columns-2">
8 - <li><video src="{{ server }}/img/mov/PONTUAL.webm" 8 + <li><video
9 preload="metadata" value="pontual" 9 preload="metadata" value="pontual"
10 class="video-panel-option selection-panel-option" autoplay loop> 10 class="video-panel-option selection-panel-option" autoplay loop>
11 - <source type="video/webm"> 11 + <source src="{{ server }}/img/mov/PONTUAL.webm" type="video/webm">
  12 + <source src="{{ server }}/img/mov/PONTUAL.mp4" type="video/mp4">
12 </video> Pontual</li> 13 </video> Pontual</li>
13 - <li><video src="{{ server }}/img/mov/RETILINEO.webm" 14 + <li><video
14 preload="metadata" value="retilineo" 15 preload="metadata" value="retilineo"
15 class="video-panel-option selection-panel-option" autoplay loop> 16 class="video-panel-option selection-panel-option" autoplay loop>
16 - <source type="video/webm"> 17 + <source src="{{ server }}/img/mov/RETILINEO.webm" type="video/webm">
  18 + <source src="{{ server }}/img/mov/RETILINEO.mp4" type="video/mp4">
17 </video> Retilíneo</li> 19 </video> Retilíneo</li>
18 - <li><video src="{{ server }}/img/mov/CIRCULAR.webm" 20 + <li><video
19 preload="metadata" value="circular" 21 preload="metadata" value="circular"
20 class="video-panel-option selection-panel-option" autoplay loop> 22 class="video-panel-option selection-panel-option" autoplay loop>
21 - <source type="video/webm"> 23 + <source src="{{ server }}/img/mov/CIRCULAR.webm" type="video/webm">
  24 + <source src="{{ server }}/img/mov/CIRCULAR.mp4" type="video/mp4">
22 </video> Circular</li> 25 </video> Circular</li>
23 - <li><video src="{{ server }}/img/mov/SEMICIRCULAR.webm" 26 + <li><video
24 preload="metadata" value="semicircular" 27 preload="metadata" value="semicircular"
25 class="video-panel-option selection-panel-option" autoplay loop> 28 class="video-panel-option selection-panel-option" autoplay loop>
26 - <source type="video/webm"> 29 + <source src="{{ server }}/img/mov/SEMICIRCULAR.webm" type="video/webm">
  30 + <source src="{{ server }}/img/mov/SEMICIRCULAR.mp4" type="video/mp4">
27 </video> Semi-Circular</li> 31 </video> Semi-Circular</li>
28 - <!--  
29 - <li><img class="video-panel-option selection-panel-option"  
30 - src="{{ server }}/img/exf/0000.png" value="semicircular"/>Semi-Circular</li>  
31 - <li><img class="video-panel-option selection-panel-option"  
32 - src="{{ server }}/img/exf/0000.png" value="helicoidal"/>Espiral</li>  
33 - <li><img class="video-panel-option selection-panel-option"  
34 - src="{{ server }}/img/exf/0000.png" value="senoidal"/>Curvas</li>  
35 - <li><img class="video-panel-option selection-panel-option"  
36 - src="{{ server }}/img/exf/0000.png" value="contato"/>Contato</li>  
37 - -->  
38 </ul> 32 </ul>
39 </div> 33 </div>
40 </div> 34 </div>
view/templates/hand/plano/passo-1.html
@@ -6,76 +6,76 @@ @@ -6,76 +6,76 @@
6 <div class="selection-panel-inner-body"> 6 <div class="selection-panel-inner-body">
7 <ul class="rig columns-2"> 7 <ul class="rig columns-2">
8 <li><video 8 <li><video
9 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-esquerda.webm"  
10 preload="metadata" value="baixo-esquerda" 9 preload="metadata" value="baixo-esquerda"
11 class="box-panel-option selection-panel-option" autoplay> 10 class="box-panel-option selection-panel-option" autoplay>
12 - <source type="video/webm"> 11 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-esquerda.webm" type="video/webm">
  12 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-esquerda.mp4" type="video/mp4">
13 </video>Baixo - Direita</li> 13 </video>Baixo - Direita</li>
14 <li><video 14 <li><video
15 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-direita.webm"  
16 preload="metadata" value="cima-direita" 15 preload="metadata" value="cima-direita"
17 class="box-panel-option selection-panel-option" autoplay> 16 class="box-panel-option selection-panel-option" autoplay>
18 - <source type="video/webm"> 17 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-direita.webm" type="video/webm">
  18 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-direita.mp4" type="video/mp4">
19 </video>Cima - Esquerda</li> 19 </video>Cima - Esquerda</li>
20 <li><video 20 <li><video
21 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-baixo.webm"  
22 preload="metadata" value="direita-baixo" 21 preload="metadata" value="direita-baixo"
23 class="box-panel-option selection-panel-option" autoplay> 22 class="box-panel-option selection-panel-option" autoplay>
24 - <source type="video/webm"> 23 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-baixo.webm" type="video/webm">
  24 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-baixo.mp4" type="video/mp4">
25 </video>Esquerda - Baixo</li> 25 </video>Esquerda - Baixo</li>
26 <li><video 26 <li><video
27 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-cima.webm"  
28 preload="metadata" value="esquerda-cima" 27 preload="metadata" value="esquerda-cima"
29 class="box-panel-option selection-panel-option" autoplay> 28 class="box-panel-option selection-panel-option" autoplay>
30 - <source type="video/webm"> 29 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-cima.webm" type="video/webm">
  30 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-cima.mp4" type="video/mp4">
31 </video>Direita - Cima</li> 31 </video>Direita - Cima</li>
32 <li><video 32 <li><video
33 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-tras.webm"  
34 preload="metadata" value="baixo-tras" 33 preload="metadata" value="baixo-tras"
35 class="box-panel-option selection-panel-option" autoplay> 34 class="box-panel-option selection-panel-option" autoplay>
36 - <source type="video/webm"> 35 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-tras.webm" type="video/webm">
  36 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-tras.mp4" type="video/mp4">
37 </video>Baixo - Trás</li> 37 </video>Baixo - Trás</li>
38 <li><video 38 <li><video
39 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-frente.webm"  
40 preload="metadata" value="cima-frente" 39 preload="metadata" value="cima-frente"
41 class="box-panel-option selection-panel-option" autoplay> 40 class="box-panel-option selection-panel-option" autoplay>
42 - <source type="video/webm"> 41 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-frente.webm" type="video/webm">
  42 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-frente.mp4" type="video/mp4">
43 </video>Cima - Frente</li> 43 </video>Cima - Frente</li>
44 <li><video 44 <li><video
45 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-baixo.webm"  
46 preload="metadata" value="frente-baixo" 45 preload="metadata" value="frente-baixo"
47 class="box-panel-option selection-panel-option" autoplay> 46 class="box-panel-option selection-panel-option" autoplay>
48 - <source type="video/webm"> 47 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-baixo.webm" type="video/webm">
  48 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-baixo.mp4" type="video/mp4">
49 </video>Frente - Baixo</li> 49 </video>Frente - Baixo</li>
50 <li><video 50 <li><video
51 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-cima.webm"  
52 preload="metadata" value="tras-cima" 51 preload="metadata" value="tras-cima"
53 class="box-panel-option selection-panel-option" autoplay> 52 class="box-panel-option selection-panel-option" autoplay>
54 - <source type="video/webm"> 53 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-cima.webm" type="video/webm">
  54 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-cima.mp4" type="video/mp4">
55 </video>Trás - Cima</li> 55 </video>Trás - Cima</li>
56 <li><video 56 <li><video
57 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-direita.webm"  
58 preload="metadata" value="frente-direita" 57 preload="metadata" value="frente-direita"
59 class="box-panel-option selection-panel-option" autoplay> 58 class="box-panel-option selection-panel-option" autoplay>
60 - <source type="video/webm"> 59 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-direita.webm" type="video/webm">
  60 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-direita.mp4" type="video/mp4">
61 </video>Frente - Esquerda</li> 61 </video>Frente - Esquerda</li>
62 <li><video 62 <li><video
63 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-esquerda.webm"  
64 preload="metadata" value="tras-esquerda" 63 preload="metadata" value="tras-esquerda"
65 class="box-panel-option selection-panel-option" autoplay> 64 class="box-panel-option selection-panel-option" autoplay>
66 - <source type="video/webm"> 65 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-esquerda.webm" type="video/webm">
  66 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-esquerda.mp4" type="video/mp4">
67 </video>Trás - Direita</li> 67 </video>Trás - Direita</li>
68 <li><video 68 <li><video
69 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-tras.webm"  
70 preload="metadata" value="direita-tras" 69 preload="metadata" value="direita-tras"
71 class="box-panel-option selection-panel-option" autoplay> 70 class="box-panel-option selection-panel-option" autoplay>
72 - <source type="video/webm"> 71 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-tras.webm" type="video/webm">
  72 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-tras.mp4" type="video/mp4">
73 </video>Esquerda - Trás</li> 73 </video>Esquerda - Trás</li>
74 <li><video 74 <li><video
75 - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-frente.webm"  
76 preload="metadata" value="esquerda-frente" 75 preload="metadata" value="esquerda-frente"
77 class="box-panel-option selection-panel-option" autoplay> 76 class="box-panel-option selection-panel-option" autoplay>
78 - <source type="video/webm"> 77 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-frente.webm" type="video/webm">
  78 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-frente.mp4" type="video/mp4">
79 </video>Direita - Frente</li> 79 </video>Direita - Frente</li>
80 </ul> 80 </ul>
81 </div> 81 </div>
view/templates/hand/raio/passo-1.html
@@ -5,20 +5,23 @@ @@ -5,20 +5,23 @@
5 </div> 5 </div>
6 <div class="selection-panel-inner-body"> 6 <div class="selection-panel-inner-body">
7 <ul class="rig columns-2"> 7 <ul class="rig columns-2">
8 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-pequeno.webm" 8 + <li><video
9 preload="metadata" value="pequeno" 9 preload="metadata" value="pequeno"
10 class="box-panel-option selection-panel-option" autoplay loop> 10 class="box-panel-option selection-panel-option" autoplay loop>
11 - <source type="video/webm"> 11 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-pequeno.webm" type="video/webm">
  12 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-pequeno.mp4" type="video/mp4">
12 </video>Pequeno</li> 13 </video>Pequeno</li>
13 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-normal.webm" 14 + <li><video
14 preload="metadata" value="normal" 15 preload="metadata" value="normal"
15 class="box-panel-option selection-panel-option" autoplay loop> 16 class="box-panel-option selection-panel-option" autoplay loop>
16 - <source type="video/webm"> 17 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-normal.webm" type="video/webm">
  18 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-normal.mp4" type="video/mp4">
17 </video>Médio</li> 19 </video>Médio</li>
18 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-grande.webm" 20 + <li><video
19 preload="metadata" value="grande" 21 preload="metadata" value="grande"
20 class="box-panel-option selection-panel-option" autoplay loop> 22 class="box-panel-option selection-panel-option" autoplay loop>
21 - <source type="video/webm"> 23 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-grande.webm" type="video/webm">
  24 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/raio-grande.mp4" type="video/mp4">
22 </video>Grande</li> 25 </video>Grande</li>
23 </ul> 26 </ul>
24 </div> 27 </div>
view/templates/hand/sentido_inverso/passo-1.html
@@ -5,15 +5,17 @@ @@ -5,15 +5,17 @@
5 </div> 5 </div>
6 <div class="selection-panel-inner-body"> 6 <div class="selection-panel-inner-body">
7 <ul class="rig columns-2"> 7 <ul class="rig columns-2">
8 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-horario.webm" 8 + <li><video
9 preload="metadata" value="true" 9 preload="metadata" value="true"
10 class="box-panel-option selection-panel-option" autoplay loop> 10 class="box-panel-option selection-panel-option" autoplay loop>
11 - <source type="video/webm"> 11 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-horario.webm" type="video/webm">
  12 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-horario.mp4" type="video/mp4">
12 </video>Horário</li> 13 </video>Horário</li>
13 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-anti-horario.webm" 14 + <li><video
14 preload="metadata" value="false" 15 preload="metadata" value="false"
15 class="box-panel-option selection-panel-option" autoplay loop> 16 class="box-panel-option selection-panel-option" autoplay loop>
16 - <source type="video/webm"> 17 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-anti-horario.webm" type="video/webm">
  18 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/sentido-anti-horario.mp4" type="video/mp4">
17 </video>Anti-horário</li> 19 </video>Anti-horário</li>
18 </ul> 20 </ul>
19 </div> 21 </div>
view/templates/hand/velocidade/passo-1.html
@@ -5,20 +5,23 @@ @@ -5,20 +5,23 @@
5 </div> 5 </div>
6 <div class="selection-panel-inner-body"> 6 <div class="selection-panel-inner-body">
7 <ul class="rig columns-2"> 7 <ul class="rig columns-2">
8 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-lento.webm" 8 + <li><video
9 preload="metadata" value="lento" 9 preload="metadata" value="lento"
10 class="box-panel-option selection-panel-option" autoplay loop> 10 class="box-panel-option selection-panel-option" autoplay loop>
11 - <source type="video/webm"> 11 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-lento.webm" type="video/webm">
  12 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-lento.mp4" type="video/mp4">
12 </video>Lento</li> 13 </video>Lento</li>
13 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-normal.webm" 14 + <li><video
14 preload="metadata" value="normal" 15 preload="metadata" value="normal"
15 class="box-panel-option selection-panel-option" autoplay loop> 16 class="box-panel-option selection-panel-option" autoplay loop>
16 - <source type="video/webm"> 17 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-normal.webm" type="video/webm">
  18 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-normal.mp4" type="video/mp4">
17 </video>Normal</li> 19 </video>Normal</li>
18 - <li><video src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-rapido.webm" 20 + <li><video
19 preload="metadata" value="rapido" 21 preload="metadata" value="rapido"
20 class="box-panel-option selection-panel-option" autoplay loop> 22 class="box-panel-option selection-panel-option" autoplay loop>
21 - <source type="video/webm"> 23 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-rapido.webm" type="video/webm">
  24 + <source src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/velocidade-rapido.mp4" type="video/mp4">
22 </video>Rápido</li> 25 </video>Rápido</li>
23 </ul> 26 </ul>
24 </div> 27 </div>
view/templates/index.html
1 <link rel="stylesheet" href="{{ server }}/css/main.css"> 1 <link rel="stylesheet" href="{{ server }}/css/main.css">
2 2
3 -<a href="{{ homepage_url }}" class="wl-logo"> <img  
4 - src="{{ server }}/img/logo.svg">  
5 -</a>  
6 <nav class="navbar navbar-default navbar-wl"> 3 <nav class="navbar navbar-default navbar-wl">
7 <div class="container"> 4 <div class="container">
  5 + <a href="{{ homepage_url }}" class="wl-logo"> <img
  6 + src="{{ server }}/img/logo.svg">
  7 + </a>
8 <!-- Brand and toggle get grouped for better mobile display --> 8 <!-- Brand and toggle get grouped for better mobile display -->
9 <div class="navbar-header"> 9 <div class="navbar-header">
10 <button type="button" class="navbar-toggle collapsed" 10 <button type="button" class="navbar-toggle collapsed"
@@ -16,12 +16,14 @@ @@ -16,12 +16,14 @@
16 </button> 16 </button>
17 </div> 17 </div>
18 <!-- Collect the nav links, forms, and other content for toggling --> 18 <!-- Collect the nav links, forms, and other content for toggling -->
19 - <div class="collapse navbar-collapse" id="navbar-collapse-1"> 19 + <div id="navbar-collapse-1" class="collapse navbar-collapse">
20 <ul class="nav navbar-nav navbar-right"> 20 <ul class="nav navbar-nav navbar-right">
  21 + <li><a href="/pybossa/project"
  22 + target="_blank">Início</a></li>
21 <li><a href="javascript:void(0);" 23 <li><a href="javascript:void(0);"
22 onclick="wikilibras.showTeachContainer()">Ensinar</a></li> 24 onclick="wikilibras.showTeachContainer()">Ensinar</a></li>
23 <li><a id="submit-sign-anchor" href="javascript:void(0);" 25 <li><a id="submit-sign-anchor" href="javascript:void(0);"
24 - onclick="submitSign.show()">Enviar sinal</a></li> 26 + onclick="submitSign.show()">Gravar e enviar vídeo</a></li>
25 <li><a href="javascript:void(0);" onclick="teachedSigns.show()">Sinais 27 <li><a href="javascript:void(0);" onclick="teachedSigns.show()">Sinais
26 ensinados</a></li> 28 ensinados</a></li>
27 <li><a href="javascript:void(0);" 29 <li><a href="javascript:void(0);"
@@ -40,10 +42,9 @@ @@ -40,10 +42,9 @@
40 <div id="initial-screen"> 42 <div id="initial-screen">
41 <div class="col-sm-6 col-centered"> 43 <div class="col-sm-6 col-centered">
42 <div class="col-sm-8 col-centered"> 44 <div class="col-sm-8 col-centered">
43 - <video src="" preload="metadata" 45 + <video preload="metadata"
44 class="ref-video video-body-main video-border" autoplay loop 46 class="ref-video video-body-main video-border" autoplay loop
45 controls> 47 controls>
46 - <source type="video/webm">  
47 </video> 48 </video>
48 </div> 49 </div>
49 <h6 class="text-center"> 50 <h6 class="text-center">
@@ -60,9 +61,8 @@ @@ -60,9 +61,8 @@
60 <h8>Vídeo de referência "<span class="sign-label"></span>"</h8> 61 <h8>Vídeo de referência "<span class="sign-label"></span>"</h8>
61 <div id="ref-video-panel" class="col-sm-12"> 62 <div id="ref-video-panel" class="col-sm-12">
62 <div id="ref-video-container" class="col-sm-10"> 63 <div id="ref-video-container" class="col-sm-10">
63 - <video src="" preload="metadata" 64 + <video preload="metadata"
64 class="ref-video video-body-main video-border" loop controls> 65 class="ref-video video-body-main video-border" loop controls>
65 - <source type="video/webm">  
66 </video> 66 </video>
67 </div> 67 </div>
68 <div id="minimize-icon-container" class="col-sm-2 icon_container" 68 <div id="minimize-icon-container" class="col-sm-2 icon_container"
@@ -160,9 +160,8 @@ @@ -160,9 +160,8 @@
160 <div id="render-ref" class="col-sm-6"> 160 <div id="render-ref" class="col-sm-6">
161 <h6>Vídeo de referência</h6> 161 <h6>Vídeo de referência</h6>
162 <div class="col-sm-12"> 162 <div class="col-sm-12">
163 - <video src="" preload="metadata" 163 + <video preload="metadata"
164 class="ref-video video-body-main video-border" loop controls> 164 class="ref-video video-body-main video-border" loop controls>
165 - <source type="video/webm">  
166 </video> 165 </video>
167 </div> 166 </div>
168 </div> 167 </div>
@@ -171,9 +170,8 @@ @@ -171,9 +170,8 @@
171 <h6> 170 <h6>
172 Sinal "<span class="sign-label"></span>" construído 171 Sinal "<span class="sign-label"></span>" construído
173 </h6> 172 </h6>
174 - <video src="" preload="metadata" 173 + <video preload="metadata"
175 class="video-body-main video-border" autoplay loop controls> 174 class="video-body-main video-border" autoplay loop controls>
176 - <source type="video/webm">  
177 </video> 175 </video>
178 <div id="render-edit" class="icon_container" name="big-edit"> 176 <div id="render-edit" class="icon_container" name="big-edit">
179 <img class="col-centered" 177 <img class="col-centered"
@@ -198,18 +196,18 @@ @@ -198,18 +196,18 @@
198 </div> 196 </div>
199 </div> 197 </div>
200 <div id="thanks-screen"> 198 <div id="thanks-screen">
201 - <div class="col-sm-7 col-centered"> 199 + <div class="col-sm-8 col-centered">
202 <div id="completed-task-msg"> 200 <div id="completed-task-msg">
203 <h3 class="text-center">Obrigado,</h3> 201 <h3 class="text-center">Obrigado,</h3>
204 <h6 class="text-center">você configurou o sinal com sucesso!</h6> 202 <h6 class="text-center">você configurou o sinal com sucesso!</h6>
205 </div> 203 </div>
206 <div id="completed-all-task-msg" class="text-center"> 204 <div id="completed-all-task-msg" class="text-center">
207 <h4> 205 <h4>
208 - Que pena, não há disponíveis sinais no momento! 206 + Que pena, não há sinais disponíveis no momento!
209 </h6> 207 </h6>
210 <h6> 208 <h6>
211 Ajude a expandir o dicionário <a href="javascript:void(0);" 209 Ajude a expandir o dicionário <a href="javascript:void(0);"
212 - onclick="submitSign.show()">enviando um novo sinal</a>, ou 210 + onclick="submitSign.show()">gravando e enviando um vídeo</a>, ou
213 </h6> 211 </h6>
214 <h6> 212 <h6>
215 experimente <a href="javascript:void(0);" 213 experimente <a href="javascript:void(0);"
@@ -224,83 +222,6 @@ @@ -224,83 +222,6 @@
224 </div> 222 </div>
225 </div> 223 </div>
226 <div id="submit-sign-container" class="sub-main-container"> 224 <div id="submit-sign-container" class="sub-main-container">
227 - <form class="form-horizontal" method="post"  
228 - enctype="multipart/form-data">  
229 - <div id="upload-success-msg" class="alert alert-success">  
230 - <strong>Envio concluído, muito obrigado! Em breve o seu  
231 - sinal estará no dicionário WikiLibras.</strong>  
232 - </div>  
233 - <fieldset>  
234 - <h2>Sentiu falta de algum sinal no dicionário? Grave e envie o  
235 - vídeo do seu sinal aqui!</h2>  
236 - <div class="submit-sign-form col-sm-8">  
237 - <div class="form-group">  
238 - <label class="control-label col-sm-3">Nome do sinal:</label>  
239 - <div class="col-sm-5">  
240 - <input id="input-sign-name" name="nome" class="form-control"  
241 - placeholder="Nome do sinal" type="text">  
242 - </div>  
243 - </div>  
244 - <div class="form-group">  
245 - <label class="control-label col-sm-3">Estado:</label>  
246 - <div class="col-sm-5">  
247 - <select id="input-state" name="estado" class="form-control">  
248 - <option value="">Selecione seu Estado</option>  
249 - <option value="Acre">Acre</option>  
250 - <option value="Alagoas">Alagoas</option>  
251 - <option value="Amapá">Amapá</option>  
252 - <option value="Amazonas">Amazonas</option>  
253 - <option value="Bahia">Bahia</option>  
254 - <option value="Ceará">Ceará</option>  
255 - <option value="Distrito Federal">Distrito Federal</option>  
256 - <option value="Espirito Santo">Espirito Santo</option>  
257 - <option value="Goiás">Goiás</option>  
258 - <option value="Maranhão">Maranhão</option>  
259 - <option value="Mato Grosso do Sul">Mato Grosso do Sul</option>  
260 - <option value="Mato Grosso">Mato Grosso</option>  
261 - <option value="Minas Gerais">Minas Gerais</option>  
262 - <option value="Pará">Pará</option>  
263 - <option value="Paraíba">Paraíba</option>  
264 - <option value="Paraná">Paraná</option>  
265 - <option value="Pernambuco">Pernambuco</option>  
266 - <option value="Piauí">Piauí</option>  
267 - <option value="Rio de Janeiro">Rio de Janeiro</option>  
268 - <option value="Rio Grande do Norte">Rio Grande do Norte</option>  
269 - <option value="Rio Grande do Sul">Rio Grande do Sul</option>  
270 - <option value="Rondônia">Rondônia</option>  
271 - <option value="Roraima">Roraima</option>  
272 - <option value="Santa Catarina">Santa Catarina</option>  
273 - <option value="São Paulo">São Paulo</option>  
274 - <option value="Sergipe">Sergipe</option>  
275 - <option value="Tocantins">Tocantins</option>  
276 - </select>  
277 - </div>  
278 - </div>  
279 - <div class="form-group">  
280 - <label class="control-label col-sm-3">Cidade:</label>  
281 - <div class="col-sm-5">  
282 - <input id="input-city" name="cidade" class="form-control"  
283 - placeholder="Nome da sua cidade" type="text">  
284 - </div>  
285 - </div>  
286 - <div class="form-group">  
287 - <label class="control-label col-sm-3">Arquivo do sinal:</label>  
288 - <div class="col-sm-5">  
289 - <input id="input-sign-upload" type="file" name="video" />  
290 - </div>  
291 - <div id="upload-progress-container" class="col-sm-5">  
292 - <div id="upload-progress" class="progress">  
293 - <div class="progress-bar" role="progressbar" aria-valuenow="0"  
294 - aria-valuemin="0" aria-valuemax="100" style="width: 0%"></div>  
295 - </div>  
296 - </div>  
297 - </div>  
298 - <div class="form-actions">  
299 - <label class="control-label col-sm-3"></label>  
300 - <button name="btn" class="btn btn-primary btn-lg disabled">Enviar</button>  
301 - </div>  
302 - </fieldset>  
303 - </form>  
304 </div> 225 </div>
305 <div id="teached-signs-container" class="sub-main-container"> 226 <div id="teached-signs-container" class="sub-main-container">
306 <h4 class="teached-signs-msg" type="none">Você ainda não ensinou 227 <h4 class="teached-signs-msg" type="none">Você ainda não ensinou
@@ -350,8 +271,10 @@ @@ -350,8 +271,10 @@
350 <script src="{{ server }}/js/selection-panel/articulation.js"></script> 271 <script src="{{ server }}/js/selection-panel/articulation.js"></script>
351 <script src="{{ server }}/js/selection-panel/configuration.js"></script> 272 <script src="{{ server }}/js/selection-panel/configuration.js"></script>
352 <script src="{{ server }}/js/selection-panel/orientation.js"></script> 273 <script src="{{ server }}/js/selection-panel/orientation.js"></script>
353 -<script src="{{ server }}/js/selection-panel/default-configuration-handler.js"></script>  
354 -<script src="{{ server }}/js/selection-panel/dynamic-selection-workflow.js"></script> 274 +<script
  275 + src="{{ server }}/js/selection-panel/default-configuration-handler.js"></script>
  276 +<script
  277 + src="{{ server }}/js/selection-panel/dynamic-selection-workflow.js"></script>
355 <script src="{{ server }}/js/selection-panel/selection-panel.js"></script> 278 <script src="{{ server }}/js/selection-panel/selection-panel.js"></script>
356 279
357 <!-- Helpers --> 280 <!-- Helpers -->
view/templates/submit-sign/submit-sign.html 0 → 100644
@@ -0,0 +1,110 @@ @@ -0,0 +1,110 @@
  1 +<div class="container">
  2 + <div class="row">
  3 + <div id="upload-warning-msg" class="alert alert-warning"
  4 + style="display: none;"></div>
  5 + <div id="upload-success-msg" class="alert alert-success">
  6 + <strong>Envio concluído, muito obrigado! Em breve o seu
  7 + sinal estará no dicionário WikiLibras.</strong>
  8 + </div>
  9 + </div>
  10 +</div>
  11 +<form class="form-horizontal" method="post"
  12 + enctype="multipart/form-data">
  13 + <fieldset>
  14 + <h2>Sentiu falta de algum sinal no dicionário? Grave e envie o
  15 + vídeo do seu sinal aqui!</h2>
  16 + <div class="submit-sign-form col-sm-8">
  17 + <div class="form-group">
  18 + <label class="control-label col-sm-3">Nome do sinal:</label>
  19 + <div class="col-sm-5">
  20 + <input id="input-sign-name" name="nome" class="form-control"
  21 + placeholder="Nome do sinal" type="text">
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label class="control-label col-sm-3">Classe gramatical:</label>
  26 + <div class="col-sm-5">
  27 + <select id="input-word-class" name="classe-gramatical"
  28 + class="form-control">
  29 + <option value="">Selecione a classe gramatical</option>
  30 + <option value="Verbo">Verbo</option>
  31 + <option value="Substantivo">Substantivo</option>
  32 + <option value="Adjetivo">Adjetivo</option>
  33 + <option value="Advérbio">Advérbio</option>
  34 + <option value="Pronome">Pronome</option>
  35 + <option value="Preposição">Preposição</option>
  36 + <option value="Conjunção">Conjunção</option>
  37 + <option value="Artigo">Artigo</option>
  38 + <option value="Numeral">Numeral</option>
  39 + <option value="Interjeição">Interjeição</option>
  40 + </select>
  41 + </div>
  42 + </div>
  43 + <div class="form-group">
  44 + <label class="control-label col-sm-3">Frases de exemplo:</label>
  45 + <div class="col-sm-5">
  46 + <textarea id="input-phrases" name="frases" class="form-control"
  47 + rows="2">
  48 + </textarea>
  49 + </div>
  50 + </div>
  51 + <div class="form-group">
  52 + <label class="control-label col-sm-3">Estado:</label>
  53 + <div class="col-sm-5">
  54 + <select id="input-state" name="estado" class="form-control">
  55 + <option value="">Selecione seu Estado</option>
  56 + <option value="Acre">Acre</option>
  57 + <option value="Alagoas">Alagoas</option>
  58 + <option value="Amapá">Amapá</option>
  59 + <option value="Amazonas">Amazonas</option>
  60 + <option value="Bahia">Bahia</option>
  61 + <option value="Ceará">Ceará</option>
  62 + <option value="Distrito Federal">Distrito Federal</option>
  63 + <option value="Espirito Santo">Espirito Santo</option>
  64 + <option value="Goiás">Goiás</option>
  65 + <option value="Maranhão">Maranhão</option>
  66 + <option value="Mato Grosso do Sul">Mato Grosso do Sul</option>
  67 + <option value="Mato Grosso">Mato Grosso</option>
  68 + <option value="Minas Gerais">Minas Gerais</option>
  69 + <option value="Pará">Pará</option>
  70 + <option value="Paraíba">Paraíba</option>
  71 + <option value="Paraná">Paraná</option>
  72 + <option value="Pernambuco">Pernambuco</option>
  73 + <option value="Piauí">Piauí</option>
  74 + <option value="Rio de Janeiro">Rio de Janeiro</option>
  75 + <option value="Rio Grande do Norte">Rio Grande do Norte</option>
  76 + <option value="Rio Grande do Sul">Rio Grande do Sul</option>
  77 + <option value="Rondônia">Rondônia</option>
  78 + <option value="Roraima">Roraima</option>
  79 + <option value="Santa Catarina">Santa Catarina</option>
  80 + <option value="São Paulo">São Paulo</option>
  81 + <option value="Sergipe">Sergipe</option>
  82 + <option value="Tocantins">Tocantins</option>
  83 + </select>
  84 + </div>
  85 + </div>
  86 + <div class="form-group">
  87 + <label class="control-label col-sm-3">Cidade:</label>
  88 + <div class="col-sm-5">
  89 + <input id="input-city" name="cidade" class="form-control"
  90 + placeholder="Nome da sua cidade" type="text">
  91 + </div>
  92 + </div>
  93 + <div class="form-group">
  94 + <label class="control-label col-sm-3">Arquivo do sinal:</label>
  95 + <div class="col-sm-5">
  96 + <input id="input-sign-upload" type="file" name="video" />
  97 + </div>
  98 + <div id="upload-progress-container" class="col-sm-5">
  99 + <div id="upload-progress" class="progress">
  100 + <div class="progress-bar" role="progressbar" aria-valuenow="0"
  101 + aria-valuemin="0" aria-valuemax="100" style="width: 0%"></div>
  102 + </div>
  103 + </div>
  104 + </div>
  105 + <div class="form-actions">
  106 + <label class="control-label col-sm-3"></label>
  107 + <button name="btn" class="btn btn-primary btn-lg disabled">Enviar</button>
  108 + </div>
  109 + </fieldset>
  110 +</form>