diff --git a/view/assets/css/main.css b/view/assets/css/main.css
index 5eaf02c..477a84a 100644
--- a/view/assets/css/main.css
+++ b/view/assets/css/main.css
@@ -307,6 +307,7 @@ ul.rig li {
ul.rig.columns-2 li {
width: 45%;
+ font-size: 17px;
}
ul.rig.columns-3 li {
@@ -467,6 +468,3 @@ ul.rig.columns-4 li {
#completed-all-task-msg {
display: none;
}
-
-
-
diff --git a/view/assets/js/articulation.js b/view/assets/js/articulation.js
index 57caaa7..589397c 100644
--- a/view/assets/js/articulation.js
+++ b/view/assets/js/articulation.js
@@ -6,9 +6,14 @@
function _updateASelector(container, ballSelector, step) {
var pointSelector = parseInt(step) == 2 ? "A" : "B";
$(container + ' .ball-selector.active').each(function() {
- $(this).removeClass('active'), $(this).find('.point-selector').remove();
- }), ballSelector.addClass('active'), ballSelector.append('
');
+ $(this).removeClass('active');
+ $(this).find('.point-selector').remove();
+ });
+ ballSelector.addClass('active');
+ ballSelector.append('');
+ $(container + ' .selection-panel-option[select=true]').attr('select', false);
+ $(ballSelector).attr('select', true);
}
function _getSelectedY(hand, subConfig, step) {
diff --git a/view/assets/js/configuration.js b/view/assets/js/configuration.js
index 350c25b..b342ab4 100644
--- a/view/assets/js/configuration.js
+++ b/view/assets/js/configuration.js
@@ -21,6 +21,9 @@
var finger_group = $(stepOneBaseId + ' .selection-panel-option[select=true]').attr('value');
finger_group = typeof finger_group == 'undefined' ? '0' : finger_group;
+
+ // clean next step
+ dynworkflow.cleanStep(hand, subConfig, nextStep);
$(stepTwoBaseId + ' .finger-group').hide();
$(stepTwoBaseId + ' .finger-group[group=' + finger_group + ']').show();
}
diff --git a/view/assets/js/defaultConfigurationHandler.js b/view/assets/js/defaultConfigurationHandler.js
index 04b4e05..ee6a21c 100644
--- a/view/assets/js/defaultConfigurationHandler.js
+++ b/view/assets/js/defaultConfigurationHandler.js
@@ -9,5 +9,19 @@
dynworkflow.userSelectedAnOption();
});
};
+
+ function _startVideoLoop(hand, subConfig, step, timeBetweenLoops) {
+ setTimeout(function(){
+ $('.selection-panel-body[mainConfig=' + hand + '][subConfig=' +
+ subConfig + '][step=' + step + '] video').each(function(){
+ $(this).get(0).play();
+ });
+ _startVideoLoop(hand, subConfig, step, timeBetweenLoops);
+ }, timeBetweenLoops);
+ }
+
+ defaultConfigurationHandler.startVideoLoop = function(hand, subConfig, step, timeBetweenLoops) {
+ _startVideoLoop(hand, subConfig, step, timeBetweenLoops);
+ }
}(window.defaultConfigurationHandler = window.defaultConfigurationHandler || {}, jQuery));
diff --git a/view/assets/js/dynamic-loading-engine.js b/view/assets/js/dynamic-loading-engine.js
index 8120b8e..7cdd402 100644
--- a/view/assets/js/dynamic-loading-engine.js
+++ b/view/assets/js/dynamic-loading-engine.js
@@ -34,6 +34,14 @@
}
}
+ var replaceMovementNameTag = function(data, mainConfig) {
+ var selectedMovement = movement.getPreviousSelectedMovement(mainConfig);
+ if (typeof selectedMovement != "undefined") {
+ return data.replace(/{{ movement-name }}/g, selectedMovement);
+ }
+ return data
+ }
+
if (matchSubConfig) { // case defined
// There is no specific(right or left hand dependent) assets for: articulacao, duracao, expressao, movimento, transicao
// Specific configurations: configuracao, orientacao
@@ -59,6 +67,7 @@
}
}
goodData = replaceHandFolderTag(goodData, currentMainConfig);
+ goodData = replaceMovementNameTag(goodData, currentMainConfig);
goodData = goodData.replace(/{{ hand }}/g, currentMainConfig);
return goodData.replace(/{{ server }}/g, url);
};
@@ -66,7 +75,6 @@
dynengine.render = function(serverUrl, templatePath, target, prepend, callback) {
var url = serverUrl + templatePath;
$.get(url, function(data) {
- // TODO replace or append boolean
console.log('got: ' + url);
var processedHtml = _preprocessHtml(data, serverUrl);
diff --git a/view/assets/js/dynamic-selection-workflow.js b/view/assets/js/dynamic-selection-workflow.js
index 8f413ad..742d41e 100644
--- a/view/assets/js/dynamic-selection-workflow.js
+++ b/view/assets/js/dynamic-selection-workflow.js
@@ -103,6 +103,8 @@
function _selectSubConfig(subConfig) {
if (subConfig == 'movimento') {
_updateAndGetMovementConfig();
+ } else if (currentSubConfigName == 'movimento') {
+ _updateAndGetFirstMovementSubConfig();
}
currentSubConfigName = subConfig;
currentSubconfig = currentSubconfigParent[currentSubConfigName];
@@ -133,14 +135,30 @@
}
}
}
+
+ function _checkIfFinished(mainConfig, currentSubConfigName) {
+ var numberOfSteps = currentSubconfig.length;
+ var completedSteps = $('.selection-panel-body[mainConfig=' + mainConfig +
+ '][subConfig=' + currentSubConfigName + '] .selection-panel-option[select=true]').length;
+ return completedSteps != 0 && completedSteps == numberOfSteps;
+ }
// A callback function to be called when the user selects a option on a panel
function _userSelectedAnOption() {
- if (currentStep == currentSubconfig.length - 1) {
+ if (_checkIfFinished(mainConfig, currentSubConfigName)) {
_setupCheckIcon(mainConfig, currentSubConfigName);
}
_showNextSubConfig();
}
+
+ function _cleanStep(mainConfig, subConfig, step) {
+ var baseId = '.selection-panel-body[mainConfig=' + mainConfig + '][subConfig=' +
+ subConfig + '][step=' + step + ']';
+ $(baseId + ' .selection-panel-option').removeAttr('select');
+ var icon_id = '.subconfiguration-panel[mainConfig=' + mainConfig +
+ '] .icon_container[json_name=' + subConfig + ']';
+ $(icon_id).removeAttr('complete');
+ }
// Timeline functions
function _selectTimelineIcon(mainConfig, subConfig) {
@@ -251,6 +269,20 @@
}
};
+ function _cleanPreviousLoadedPanel() {
+ $('.selection-panel-body[mainConfig=' + mainConfig + ']').each(function() {
+ var subConfigName = $(this).attr("subConfig");
+ if (subConfigName.indexOf("articulacao") != -1 ||
+ subConfigName.indexOf("configuracao") != -1 ||
+ subConfigName.indexOf("orientacao") != -1 ||
+ subConfigName.indexOf("movimento") != -1) {
+ return;
+ }
+ $('.selection-panel-body[mainConfig=' + mainConfig + '][subConfig=' +
+ subConfigName + ']').remove();
+ });
+ }
+
dynworkflow.selectMovement = function(movement) {
var subconfigJSON = currentSubconfig[movement];
currentSubConfigName = _getFirstKey(subconfigJSON);
@@ -258,6 +290,7 @@
currentSubconfig = subconfigJSON[currentSubConfigName];
currentStep = 0;
+ _cleanPreviousLoadedPanel();
_showCurrentSubconfig();
_setupTimeline(true);
};
@@ -269,7 +302,11 @@
dynworkflow.userSelectedAnOption = function() {
_userSelectedAnOption();
};
-
+
+ dynworkflow.cleanStep = function(mainConfig, subConfig, step) {
+ _cleanStep(mainConfig, subConfig, step);
+ };
+
dynworkflow.getFacialParameters = function() {
return _getAttributes(jsonWF['facial']);
};
diff --git a/view/assets/js/tmpJSONParser.js b/view/assets/js/tmpJSONParser.js
index 7efde07..70312c3 100644
--- a/view/assets/js/tmpJSONParser.js
+++ b/view/assets/js/tmpJSONParser.js
@@ -24,9 +24,9 @@
}
function _parseParameterValue(value) {
- if (typeof value == "string" && value.toLowerCase() == 'true') {
+ if (typeof value == 'string' && value.toLowerCase() == 'true') {
return true;
- } else if (typeof value == "string" && value.toLowerCase() == 'false') {
+ } else if (typeof value == 'string' && value.toLowerCase() == 'false') {
return false;
} else {
return !isNaN(value) ? parseInt(value) : value;
@@ -102,7 +102,20 @@
function _circularMovementParser(tmpJSON, movementName, hand) {
var parsedHand = _parseHand(hand);
_defaultMovementParser(tmpJSON, movementName, hand);
- movement_parameter_json[parsedHand][movementName]['lado_oposto'] = false;
+ var movPlane = movement_parameter_json[parsedHand][movementName]['plano'];
+ if (movPlane.indexOf('direita') != -1 || movPlane.indexOf('tras') != -1) {
+ movPlane = movPlane.replace('direita', 'esquerda');
+ movPlane = movPlane.replace('tras', 'frente');
+ movement_parameter_json[parsedHand][movementName]['plano'] = movPlane;
+ movement_parameter_json[parsedHand][movementName]['lado_oposto'] = true;
+ } else {
+ movement_parameter_json[parsedHand][movementName]['lado_oposto'] = false;
+ }
+
+ if (movPlane == 'frente-cima' || movPlane == 'tras-cima') {
+ movement_parameter_json[parsedHand][movementName]['sentido_inverso'] =
+ !movement_parameter_json[parsedHand][movementName]['sentido_inverso'];
+ }
}
function _parseTempMovementParameterJSON(tmpJSON, hand) {
@@ -115,7 +128,8 @@
if (movementName == 'retilineo') {
_retilinearMovementParser(tmpJSON, movementName, hand);
- } else if (movementName == 'circular') {
+ } else if (movementName == 'circular' ||
+ movementName == 'semicircular') {
_circularMovementParser(tmpJSON, movementName, hand);
} else {
_defaultMovementParser(tmpJSON, movementName, hand);
diff --git a/view/assets/js/wikilibras.js b/view/assets/js/wikilibras.js
index e3cb2a4..8e28dfb 100644
--- a/view/assets/js/wikilibras.js
+++ b/view/assets/js/wikilibras.js
@@ -256,14 +256,12 @@
function _updateTempParameterJSON(mainConfig, subConfig, step, value) {
var subConfigJSON = tmpParameterJSON[mainConfig][subConfig];
-
if (typeof subConfigJSON == 'undefined') {
tmpParameterJSON[mainConfig][subConfig] = [];
subConfigJSON = tmpParameterJSON[mainConfig][subConfig];
}
-
+
subConfigJSON[parseInt(step) - 1] = value;
- //console.log(tmpParameterJSON);
}
function _selectAnOption(parentId, el) {
diff --git a/view/conf/selection-workflow-json b/view/conf/selection-workflow-json
index 9e860dd..4754d70 100644
--- a/view/conf/selection-workflow-json
+++ b/view/conf/selection-workflow-json
@@ -11,6 +11,11 @@
"configuracao" : ["passo-1", "passo-2"],
"orientacao" : ["passo-1"]
},
+ "retilineo" : {
+ "articulacao-retilineo": ["passo-1", "passo-2", "passo-3", "passo-4"],
+ "configuracao-retilineo": ["passo-1", "passo-2", "passo-3", "passo-4"],
+ "orientacao-retilineo": ["passo-1", "passo-2"]
+ },
"circular" : {
"articulacao" : ["passo-1", "passo-2"],
"configuracao" : ["passo-1", "passo-2"],
@@ -20,10 +25,14 @@
"velocidade" : ["passo-1"],
"sentido_inverso" : ["passo-1"]
},
- "retilineo" : {
- "articulacao-retilineo": ["passo-1", "passo-2", "passo-3", "passo-4"],
- "configuracao-retilineo": ["passo-1", "passo-2", "passo-3", "passo-4"],
- "orientacao-retilineo": ["passo-1", "passo-2"]
+ "semicircular" : {
+ "articulacao" : ["passo-1", "passo-2"],
+ "configuracao" : ["passo-1", "passo-2"],
+ "orientacao" : ["passo-1"],
+ "plano": ["passo-1"],
+ "raio" : ["passo-1"],
+ "velocidade" : ["passo-1"],
+ "sentido_inverso" : ["passo-1"]
}
}
}
diff --git a/view/hand/movimento/passo-1.html b/view/hand/movimento/passo-1.html
index c3107ff..ecad309 100644
--- a/view/hand/movimento/passo-1.html
+++ b/view/hand/movimento/passo-1.html
@@ -20,6 +20,11 @@
class="box-panel-option selection-panel-option" autoplay loop>
Circular
+ Semi-Circular