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

Too many changes.

To preserve performance only 100 of 105 files displayed.

view/css/main.css
... ... @@ -8,6 +8,10 @@ body nav.navbar:first-child {
8 8 display: none;
9 9 }
10 10  
  11 +.navbar-wl .navbar-nav {
  12 + padding-left: 60px;
  13 +}
  14 +
11 15 footer {
12 16 display: none;
13 17 }
... ... @@ -534,6 +538,10 @@ ul.rig.columns-4 li {
534 538 width: 100%;
535 539 }
536 540  
  541 +#thanks-screen a {
  542 + text-decoration: underline;
  543 +}
  544 +
537 545 #completed-all-task-msg {
538 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 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 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 11 return;
8 12 if (toPlay) {
9 13 $(elId).get(0).play();
... ... @@ -11,13 +15,17 @@
11 15 $(elId).get(0).pause();
12 16 }
13 17 }
14   -
  18 +
15 19 videoHelper.play = function(elId) {
16 20 _controlVideo(elId, true);
17   - }
18   -
19   - videoHelper.pause = function(elId) {
  21 + };
  22 +
  23 + videoHelper.pause = function(elId) {
20 24 _controlVideo(elId, false);
21   - }
  25 + };
  26 +
  27 + videoHelper.getSource = function(videoBaseUrl) {
  28 + return _getSource(videoBaseUrl);
  29 + };
22 30  
23 31 }(window.videoHelper = window.videoHelper || {}, jQuery));
... ...
view/js/render-sign.js
1 1 (function(renderSign, $, undefined) {
2   -
  2 +
3 3 var api_url = '';
4   -
  4 +
5 5 function _submitParameterJSON(parsedParameterJSON, callback) {
6 6 console.log(parsedParameterJSON);
7 7 $.ajax({
... ... @@ -18,14 +18,15 @@
18 18 }
19 19 });
20 20 }
21   -
  21 +
22 22 function _showRenderedAvatar(parameterJSON) {
23 23 var userId = parameterJSON['userId'];
24 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 28 $("#render-avatar").fadeIn(300);
28   - }
  29 + }
29 30  
30 31 function _showRenderScreen(toShow) {
31 32 if (toShow) {
... ... @@ -38,22 +39,22 @@
38 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 47 renderSign.showRenderedAvatar = function(parameterJSON) {
47 48 _showRenderedAvatar(parameterJSON);
48 49 _showRenderScreen(true);
49 50 }
50   -
  51 +
51 52 renderSign.showRenderScreen = function(toShow) {
52 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 60 renderSign.submit = function(parsedParameterJSON) {
... ... @@ -65,13 +66,14 @@
65 66 $("#finish-button").addClass("disabled");
66 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 77 renderSign.setup = function(apiUrl) {
76 78 api_url = apiUrl;
77 79 $("#render-edit").off("click").on("click", function() {
... ...
view/js/submit-sign.js
1 1 (function(submitSign, $, undefined) {
2 2  
3 3 var submitUrl = '';
4   -
  4 + var MIN_PHRASES_LENGTH = 3;
  5 + var MAX_PHRASES_LENGTH = 20;
  6 +
5 7 function _isEmpty(str) {
6 8 return (!str || 0 === str.length);
7 9 }
8 10  
9   - function _validadeInputFields() {
  11 + function _alertSignName() {
  12 + $('#upload-warning-msg').hide();
10 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 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 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 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 90 function _updateSubmitButton() {
19   - if (_validadeInputFields()) {
20   - $('#submit-sign-container button').removeClass('disabled');
  91 + if (_validadeAllFields()) {
  92 + _enableSubmitButton();
21 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 110 function _resetFormFields() {
27 111 $('#input-sign-name').val('');
28 112 $('#input-state').val('');
29 113 $('#input-city').val('');
30 114 $('#input-sign-upload').val('');
31 115 $("#upload-progress .progress-bar").css("width", "0px");
32   - $('#upload-progress-container').hide();
  116 + $('#upload-progress-container').hide();
33 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 122 $('#submit-sign-container form').fileupload(
45 123 {
46 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 138 done : function(e, data) {
58 139 $('#upload-success-msg').fadeIn(500);
59 140 setTimeout(function() {
... ... @@ -64,27 +145,52 @@
64 145 progressall : function(e, data) {
65 146 var progress = parseInt(data.loaded / data.total * 100,
66 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 152 error : function(error) {
71 153 alert(error.responseText);
72 154 },
73   - replaceFileInput: false
  155 + replaceFileInput : false
74 156 });
75 157  
76 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 168 _updateSubmitButton();
78 169 });
79 170 $('#input-state').on('input', function() {
  171 + _alertState();
80 172 _updateSubmitButton();
81 173 });
82 174 $('#input-city').on('input', function() {
  175 + _alertCity();
83 176 _updateSubmitButton();
84 177 });
85 178 $('#input-sign-upload').on('change', function() {
  179 + _alertSignUpload();
86 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 196 }(window.submitSign = window.submitSign || {}, jQuery));
... ...
view/js/teached-signs.js
... ... @@ -6,20 +6,20 @@
6 6 var projectId = -1;
7 7  
8 8 function _updateTeachedSignsMessage() {
9   - $(".teached-signs-msg").hide();
  9 + $('.teached-signs-msg').hide();
10 10 if (doneTasks == 0) {
11   - $(".teached-signs-msg[type=none]").show();
  11 + $('.teached-signs-msg[type=none]').show();
12 12 } else if (doneTasks == 1) {
13   - $(".teached-signs-msg[type=one]").show();
  13 + $('.teached-signs-msg[type=one]').show();
14 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 20 function _createSigns(answers) {
21 21 _updateTeachedSignsMessage();
22   - $("#signs-list-container").html("");
  22 + $('#signs-list-container').html('');
23 23 for (i = 0; i < answers.length; i++) {
24 24 _addSign(answers[i].info);
25 25 }
... ... @@ -28,25 +28,24 @@
28 28 function _addSign(answer) {
29 29 var signName = answer.parameter_json.sinal;
30 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 34 '<div class="col-btn col-xs-6 col-sm-3 col-md-2" sign-name="'
34 35 + signName
35 36 + '"><button class="btn btn-danger btn-block">'
36 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 51 function _updateTeachedSignsContainer() {
... ... @@ -56,13 +55,13 @@
56 55 }
57 56  
58 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 62 teachedSigns.setup = function() {
64 63 pybossaApiHelper.getProjectId().done(function(response) {
65   - if (typeof response == "undefined" || response.length < 1) {
  64 + if (typeof response == 'undefined' || response.length < 1) {
66 65 return;
67 66 }
68 67 projectId = response[0].id;
... ...
view/js/wikilibras.js
... ... @@ -33,10 +33,9 @@
33 33 function _loadTaskInfo(task) {
34 34 currentTaskId = task.id;
35 35 var signName = task.info.sign_name;
36   - var refVidLink = videosUrl + signName + '_REF.webm';
  36 + var baseRefVidUrl = videosUrl + signName + '_REF';
37 37 $('.sign-label').text(signName);
38   - $('.ref-video').attr('src', refVidLink);
39   -
  38 + $('.ref-video').html(videoHelper.getSource(baseRefVidUrl));
40 39 _setupTmpParameterJSON(task.info.sign_name);
41 40 }
42 41  
... ...
view/templates/facial/duracao/passo-1.html
... ... @@ -4,30 +4,33 @@
4 4 </div>
5 5 <div class="single-column-option-container">
6 6 <div class="single-column-option">
7   - <video src="{{ server }}/img/exf/duration-slow.webm"
  7 + <video
8 8 preload="metadata" value="lento"
9 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 12 </div>
12 13 <img class="single-column-option"
13 14 src="{{ server }}/img/long-duration-icon.png" /> Longa
14 15 </div>
15 16 <div class="single-column-option-container">
16 17 <div class="single-column-option">
17   - <video src="{{ server }}/img/exf/duration-normal.webm"
  18 + <video
18 19 preload="metadata" value="normal"
19 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 23 </div>
22 24 <img class="single-column-option"
23 25 src="{{ server }}/img/normal-duration-icon.png" /> Normal
24 26 </div>
25 27 <div class="single-column-option-container">
26 28 <div class="single-column-option">
27   - <video src="{{ server }}/img/exf/duration-fast.webm"
  29 + <video
28 30 preload="metadata" value="rapido"
29 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 34 </div>
32 35 <img class="single-column-option"
33 36 src="{{ server }}/img/short-duration-icon.png" /> Breve
... ...
view/templates/facial/transicao/passo-1.html
... ... @@ -5,30 +5,33 @@
5 5 </div>
6 6 <div class="single-column-option-container">
7 7 <div class="single-column-option">
8   - <video src="{{ server }}/img/exf/velocity-slow.webm"
  8 + <video
9 9 preload="metadata" value="lento"
10 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 13 </div>
13 14 <img class="single-column-option"
14 15 src="{{ server }}/img/slow-velocity-icon.png" /> Lento
15 16 </div>
16 17 <div class="single-column-option-container">
17 18 <div class="single-column-option">
18   - <video src="{{ server }}/img/exf/velocity-normal.webm"
  19 + <video
19 20 preload="metadata" value="normal"
20 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 24 </div>
23 25 <img class="single-column-option"
24 26 src="{{ server }}/img/normal-velocity-icon.png" /> Normal
25 27 </div>
26 28 <div class="single-column-option-container">
27 29 <div class="single-column-option">
28   - <video src="{{ server }}/img/exf/velocity-fast.webm"
  30 + <video
29 31 preload="metadata" value="rapido"
30 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 35 </div>
33 36 <img class="single-column-option"
34 37 src="{{ server }}/img/fast-velocity-icon.png" /> Rápido
... ...
view/templates/hand/movimento/passo-1.html
... ... @@ -5,36 +5,30 @@
5 5 </div>
6 6 <div class="selection-panel-inner-body">
7 7 <ul class="rig columns-2">
8   - <li><video src="{{ server }}/img/mov/PONTUAL.webm"
  8 + <li><video
9 9 preload="metadata" value="pontual"
10 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 13 </video> Pontual</li>
13   - <li><video src="{{ server }}/img/mov/RETILINEO.webm"
  14 + <li><video
14 15 preload="metadata" value="retilineo"
15 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 19 </video> Retilíneo</li>
18   - <li><video src="{{ server }}/img/mov/CIRCULAR.webm"
  20 + <li><video
19 21 preload="metadata" value="circular"
20 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 25 </video> Circular</li>
23   - <li><video src="{{ server }}/img/mov/SEMICIRCULAR.webm"
  26 + <li><video
24 27 preload="metadata" value="semicircular"
25 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 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 32 </ul>
39 33 </div>
40 34 </div>
... ...
view/templates/hand/plano/passo-1.html
... ... @@ -6,76 +6,76 @@
6 6 <div class="selection-panel-inner-body">
7 7 <ul class="rig columns-2">
8 8 <li><video
9   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-esquerda.webm"
10 9 preload="metadata" value="baixo-esquerda"
11 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 13 </video>Baixo - Direita</li>
14 14 <li><video
15   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-direita.webm"
16 15 preload="metadata" value="cima-direita"
17 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 19 </video>Cima - Esquerda</li>
20 20 <li><video
21   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-baixo.webm"
22 21 preload="metadata" value="direita-baixo"
23 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 25 </video>Esquerda - Baixo</li>
26 26 <li><video
27   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-cima.webm"
28 27 preload="metadata" value="esquerda-cima"
29 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 31 </video>Direita - Cima</li>
32 32 <li><video
33   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-baixo-tras.webm"
34 33 preload="metadata" value="baixo-tras"
35 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 37 </video>Baixo - Trás</li>
38 38 <li><video
39   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-cima-frente.webm"
40 39 preload="metadata" value="cima-frente"
41 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 43 </video>Cima - Frente</li>
44 44 <li><video
45   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-baixo.webm"
46 45 preload="metadata" value="frente-baixo"
47 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 49 </video>Frente - Baixo</li>
50 50 <li><video
51   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-cima.webm"
52 51 preload="metadata" value="tras-cima"
53 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 55 </video>Trás - Cima</li>
56 56 <li><video
57   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-frente-direita.webm"
58 57 preload="metadata" value="frente-direita"
59 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 61 </video>Frente - Esquerda</li>
62 62 <li><video
63   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-tras-esquerda.webm"
64 63 preload="metadata" value="tras-esquerda"
65 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 67 </video>Trás - Direita</li>
68 68 <li><video
69   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-direita-tras.webm"
70 69 preload="metadata" value="direita-tras"
71 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 73 </video>Esquerda - Trás</li>
74 74 <li><video
75   - src="{{ server }}/img/{{ movement-name }}/{{ hand-folder }}/plano-esquerda-frente.webm"
76 75 preload="metadata" value="esquerda-frente"
77 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 79 </video>Direita - Frente</li>
80 80 </ul>
81 81 </div>
... ...