reintegration of angular-recaptcha, now with language switch operative

parent 4d634e34
......@@ -8,7 +8,7 @@
"dependencies": {
"angular": "1.2.x",
"angular-mocks": "1.3.x",
"jquery": "~2.1.1",
"jquery": "^3.1.1",
"bootstrap": "~3.1.1",
"jquery-timeago": "1.4.x",
"angular-translate": "~2.6.0",
......@@ -28,7 +28,8 @@
"angular-chart.js": "latest",
"ng-lodash": "~0.3.0",
"bootstrap-filestyle": "~1.2.1",
"ngMask": "angular-mask#~3.1.1"
"ngMask": "angular-mask#~3.1.1",
"angular-recaptcha": "^4.0.1"
},
"resolutions": {
"angular": ">=1 <1.3.0",
......
......@@ -39,6 +39,12 @@
"cancel": "Cancel",
"cannot_delete_method": "Method could not be deleted, maybe due to existing recorded sessions.",
"cannot_delete_instruction": "Instruction could not be deleted, maybe due to existing recorded sessions.",
"case_requested": "Please, specify your user case",
"case_therapist_office": "Therapist belonging to an office already in Pictogram",
"case_therapist_nooffice": "Therapist not belonging to an office already in Pictogram",
"case_title": "User case",
"case_tutor_office": "Father, mother or tutor belonging to an office already in Pictogram",
"case_tutor_nooffice": "Father, mother or tutor not belonging to an office already in Pictogram",
"categories": "Categories",
"category_pictograms": "Category's pictograms",
"captcha_requested": "Captcha must be validated",
......
......@@ -39,6 +39,12 @@
"cancel": "Cancelar",
"cannot_delete_method": "No se pudo eliminar el método, tal vez porque existen sesiones asociadas.",
"cannot_delete_instruction": "No se pudo eliminar la instrucción, tal vez porque existen sesiones asociadas.",
"case_requested": "Por favor, especifique el tipo de usuario.",
"case_therapist_office": "Soy terapeuta y mi centro o gabinete está registrado en Pictogram",
"case_therapist_nooffice": "Soy terapeuta y mi centro o gabinete NO está registrado en Pictogram",
"case_title": "Tipo de usuario",
"case_tutor_office": "Soy padre, madre o tutor/a y el niño/a está en un centro o gabinete registrado en Pictogram",
"case_tutor_nooffice": "Soy padre, madre o tutor/a y el niño/a NO está en un centro o gabinete registrado en Pictogram",
"categories": "Categorías",
"category_pictograms": "Pictogramas de la categoría",
"captcha_requested": "Debe validar el captcha",
......
......@@ -8,7 +8,6 @@
<link rel="icon" href="img/logo_pictogram.png" type='image/png'>
<script src="js/libs.js"></script>
<script src="js/main.js"></script>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body ng-controller="MainCtrl">
<toast></toast>
......
......@@ -17,7 +17,8 @@ var dashboardApp = angular.module('dashboardApp', [
'ngToast',
'chart.js',
'ngLodash',
'ngMask'
'ngMask',
'vcRecaptcha'
]);
/* Main constants */
......@@ -27,17 +28,21 @@ dashboardApp.constant('CONSTANTS', {
password_minlength: 8
});
/* reCaptcha configuration */
/*
dashboardApp.config(['vcRecaptchaServiceProvider', function(vcRecaptchaServiceProvider){
vcRecaptchaServiceProvider.setSiteKey('6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8');
vcRecaptchaServiceProvider.setTheme('light');
//vcRecaptchaServiceProvider.setStoken('--- YOUR GENERATED SECURE TOKEN ---')
vcRecaptchaServiceProvider.setSize('normal');
//vcRecaptchaServiceProvider.setType('---- audio or image ----')
vcRecaptchaServiceProvider.setLang('es-es');
}]);
*/
//
// Google reCaptcha configuration
//
dashboardApp.config(function(vcRecaptchaServiceProvider){
vcRecaptchaServiceProvider.setDefaults({
key: '6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8',
theme: 'light',
//stoken: '--- YOUR GENERATED SECURE TOKEN ---',
size: 'normal',
type: 'image',
lang: 'es'
});
});
/* Toast (notification) configuration */
dashboardApp.config(['ngToastProvider', function (ngToast) {
......
......@@ -23,7 +23,7 @@ var dashboardControllers = angular.module('dashboardControllers', ['dashboardCon
// Main Controller
//
//
dashboardControllers.controller('MainCtrl', function MainCtrl($scope, $window, $location, $translate, $rootScope) {
dashboardControllers.controller('MainCtrl', function MainCtrl($scope, $window, $location, $translate, $rootScope, $timeout) {
// Always use objects if we want to modify this scope in the childs
......@@ -47,6 +47,7 @@ dashboardControllers.controller('MainCtrl', function MainCtrl($scope, $window, $
$translate.use(lang);
//$translateProvider.preferredLanguage('es-es');
//---------------------------------------------------------------
......
......@@ -24,10 +24,8 @@ dashboardControllers.controller('LoginSettingPasswordCtrl', function LoginSettin
changePasswordForm.$invalid = true;
};
if ($stateParams.token)
$scope.show_change_form = true;
else
$scope.show_change_form = false;
// if token exists, show_change_form is true
$scope.show_change_form = !!($stateParams.token);
/*
* Handles user submission of request for password change
......
......@@ -9,9 +9,11 @@ function SignInCtrl($scope,
$http,
$window,
$translate,
$rootScope,
config,
CONSTANTS,
ngToast)
ngToast,
vcRecaptchaService)
{
$scope.reset = function () {
......@@ -25,7 +27,8 @@ function SignInCtrl($scope,
email_confirm: '',
password: '',
password_confirm: '',
lang: 'es-es'
lang: 'es',
role: 'therapist_office',
};
};
......@@ -55,8 +58,8 @@ function SignInCtrl($scope,
return;
}
if (grecaptcha.getResponse().length == 0) {
ngToast.danger({ content: $translate.instant('captcha_requested') });
if (!$scope.formdata.role) {
ngToast.danger({ content: $translate.instant('case_requested') });
return;
}
......
......@@ -28,7 +28,7 @@
<div class="form-group">
<legend>Captcha</legend>
<div class="g-recaptcha" data-sitekey="6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8"></div>
<div vc-recaptcha></div>
</div>
<p class="text-center">
......@@ -56,11 +56,8 @@
<p class="color_red text_sm text-center" ng-show="password != password_confirm" translate>password_match</p>
<div class="form-group" ng-if="show_change_form">
<label>Captcha*</label>
<div re-captcha
ng-model="captcha_chgpass"
size="compact"
lang="es"></div>
<label>Captcha</label>
<div vc-recaptcha></div>
</div>
<p class="text-center">
......
......@@ -77,6 +77,55 @@
</div>
</fieldset>
<fieldset>
<legend translate>case_title</legend>
<div class="form-group">
<div class="row">
<div class="col-md-1 text-right">
<input type="radio" ng-model="formdata.role" value="therapist_office">
</div>
<div class="col-md-11">
{{ 'case_therapist_office' | translate }}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-1 text-right">
<input type="radio" ng-model="formdata.role" value="therapist_nooffice">
</div>
<div class="col-md-11">
{{ 'case_therapist_nooffice' | translate }}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-1 text-right">
<input type="radio" ng-model="formdata.role" value="tutor_office">
</div>
<div class="col-md-11">
{{ 'case_tutor_office' | translate }}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-1">
<input type="radio" ng-model="formdata.role" value="tutor_nooffice">
</div>
<div class="col-md-11">
{{ 'case_tutor_nooffice' | translate }}
</div>
</div>
</div>
</fieldset>
<div class="form-group">
<input type="checkbox" ng-model="formdata.disclaimer_accepted">
<span translate>disclaimer_accept</span>
......@@ -84,7 +133,7 @@
<div class="form-group">
<legend>Captcha</legend>
<div class="g-recaptcha" data-sitekey="6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8"></div>
<div vc-recaptcha></div>
</div>
<p class="text-center">
......
......@@ -3,9 +3,12 @@
//----------------------
// Translate Controller
//----------------------
dashboardControllers.controller('TranslateController', function($translate, $scope) {
dashboardControllers.controller('TranslateController', function($translate, $scope, vcRecaptchaService) {
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
$scope.user.lang = langKey;
// Reload captcha according to language (only once instance per page, so id is always 0)
vcRecaptchaService.useLang(0, langKey.substr(0,2));
};
});
module.exports = function (grunt) {
/* eslint-disable max-len */
var jsLibs = [
'assets/app/bower_components/jquery/dist/jquery.min.js',
'assets/app/bower_components/angular/angular.js',
'assets/app/bower_components/angular-bootstrap/ui-bootstrap.js',
'assets/app/bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
......@@ -19,6 +20,7 @@ module.exports = function (grunt) {
'assets/app/bower_components/angular-animate/angular-animate.js',
'assets/app/bower_components/angular-sanitize/angular-sanitize.js',
'assets/app/bower_components/ngtoast/dist/ngToast.js',
'assets/app/bower_components/angular-recaptcha/release/angular-recaptcha.min.js',
'assets/app/bower_components/chart.js/dist/Chart.min.js',
'assets/app/bower_components/angular-chart.js/dist/angular-chart.min.js',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment