reintegration of angular-recaptcha, now with language switch operative

parent 4d634e34
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
"dependencies": { "dependencies": {
"angular": "1.2.x", "angular": "1.2.x",
"angular-mocks": "1.3.x", "angular-mocks": "1.3.x",
"jquery": "~2.1.1", "jquery": "^3.1.1",
"bootstrap": "~3.1.1", "bootstrap": "~3.1.1",
"jquery-timeago": "1.4.x", "jquery-timeago": "1.4.x",
"angular-translate": "~2.6.0", "angular-translate": "~2.6.0",
...@@ -28,7 +28,8 @@ ...@@ -28,7 +28,8 @@
"angular-chart.js": "latest", "angular-chart.js": "latest",
"ng-lodash": "~0.3.0", "ng-lodash": "~0.3.0",
"bootstrap-filestyle": "~1.2.1", "bootstrap-filestyle": "~1.2.1",
"ngMask": "angular-mask#~3.1.1" "ngMask": "angular-mask#~3.1.1",
"angular-recaptcha": "^4.0.1"
}, },
"resolutions": { "resolutions": {
"angular": ">=1 <1.3.0", "angular": ">=1 <1.3.0",
......
...@@ -39,6 +39,12 @@ ...@@ -39,6 +39,12 @@
"cancel": "Cancel", "cancel": "Cancel",
"cannot_delete_method": "Method could not be deleted, maybe due to existing recorded sessions.", "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.", "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", "categories": "Categories",
"category_pictograms": "Category's pictograms", "category_pictograms": "Category's pictograms",
"captcha_requested": "Captcha must be validated", "captcha_requested": "Captcha must be validated",
......
...@@ -39,6 +39,12 @@ ...@@ -39,6 +39,12 @@
"cancel": "Cancelar", "cancel": "Cancelar",
"cannot_delete_method": "No se pudo eliminar el método, tal vez porque existen sesiones asociadas.", "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.", "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", "categories": "Categorías",
"category_pictograms": "Pictogramas de la categoría", "category_pictograms": "Pictogramas de la categoría",
"captcha_requested": "Debe validar el captcha", "captcha_requested": "Debe validar el captcha",
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
<link rel="icon" href="img/logo_pictogram.png" type='image/png'> <link rel="icon" href="img/logo_pictogram.png" type='image/png'>
<script src="js/libs.js"></script> <script src="js/libs.js"></script>
<script src="js/main.js"></script> <script src="js/main.js"></script>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head> </head>
<body ng-controller="MainCtrl"> <body ng-controller="MainCtrl">
<toast></toast> <toast></toast>
......
...@@ -17,7 +17,8 @@ var dashboardApp = angular.module('dashboardApp', [ ...@@ -17,7 +17,8 @@ var dashboardApp = angular.module('dashboardApp', [
'ngToast', 'ngToast',
'chart.js', 'chart.js',
'ngLodash', 'ngLodash',
'ngMask' 'ngMask',
'vcRecaptcha'
]); ]);
/* Main constants */ /* Main constants */
...@@ -27,17 +28,21 @@ dashboardApp.constant('CONSTANTS', { ...@@ -27,17 +28,21 @@ dashboardApp.constant('CONSTANTS', {
password_minlength: 8 password_minlength: 8
}); });
/* reCaptcha configuration */
/* //
dashboardApp.config(['vcRecaptchaServiceProvider', function(vcRecaptchaServiceProvider){ // Google reCaptcha configuration
vcRecaptchaServiceProvider.setSiteKey('6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8'); //
vcRecaptchaServiceProvider.setTheme('light'); dashboardApp.config(function(vcRecaptchaServiceProvider){
//vcRecaptchaServiceProvider.setStoken('--- YOUR GENERATED SECURE TOKEN ---') vcRecaptchaServiceProvider.setDefaults({
vcRecaptchaServiceProvider.setSize('normal'); key: '6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8',
//vcRecaptchaServiceProvider.setType('---- audio or image ----') theme: 'light',
vcRecaptchaServiceProvider.setLang('es-es'); //stoken: '--- YOUR GENERATED SECURE TOKEN ---',
}]); size: 'normal',
*/ type: 'image',
lang: 'es'
});
});
/* Toast (notification) configuration */ /* Toast (notification) configuration */
dashboardApp.config(['ngToastProvider', function (ngToast) { dashboardApp.config(['ngToastProvider', function (ngToast) {
......
...@@ -23,7 +23,7 @@ var dashboardControllers = angular.module('dashboardControllers', ['dashboardCon ...@@ -23,7 +23,7 @@ var dashboardControllers = angular.module('dashboardControllers', ['dashboardCon
// Main Controller // 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 // Always use objects if we want to modify this scope in the childs
...@@ -47,6 +47,7 @@ dashboardControllers.controller('MainCtrl', function MainCtrl($scope, $window, $ ...@@ -47,6 +47,7 @@ dashboardControllers.controller('MainCtrl', function MainCtrl($scope, $window, $
$translate.use(lang); $translate.use(lang);
//$translateProvider.preferredLanguage('es-es'); //$translateProvider.preferredLanguage('es-es');
//--------------------------------------------------------------- //---------------------------------------------------------------
......
...@@ -24,10 +24,8 @@ dashboardControllers.controller('LoginSettingPasswordCtrl', function LoginSettin ...@@ -24,10 +24,8 @@ dashboardControllers.controller('LoginSettingPasswordCtrl', function LoginSettin
changePasswordForm.$invalid = true; changePasswordForm.$invalid = true;
}; };
if ($stateParams.token) // if token exists, show_change_form is true
$scope.show_change_form = true; $scope.show_change_form = !!($stateParams.token);
else
$scope.show_change_form = false;
/* /*
* Handles user submission of request for password change * Handles user submission of request for password change
......
...@@ -9,9 +9,11 @@ function SignInCtrl($scope, ...@@ -9,9 +9,11 @@ function SignInCtrl($scope,
$http, $http,
$window, $window,
$translate, $translate,
$rootScope,
config, config,
CONSTANTS, CONSTANTS,
ngToast) ngToast,
vcRecaptchaService)
{ {
$scope.reset = function () { $scope.reset = function () {
...@@ -25,7 +27,8 @@ function SignInCtrl($scope, ...@@ -25,7 +27,8 @@ function SignInCtrl($scope,
email_confirm: '', email_confirm: '',
password: '', password: '',
password_confirm: '', password_confirm: '',
lang: 'es-es' lang: 'es',
role: 'therapist_office',
}; };
}; };
...@@ -55,8 +58,8 @@ function SignInCtrl($scope, ...@@ -55,8 +58,8 @@ function SignInCtrl($scope,
return; return;
} }
if (grecaptcha.getResponse().length == 0) { if (!$scope.formdata.role) {
ngToast.danger({ content: $translate.instant('captcha_requested') }); ngToast.danger({ content: $translate.instant('case_requested') });
return; return;
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<div class="form-group"> <div class="form-group">
<legend>Captcha</legend> <legend>Captcha</legend>
<div class="g-recaptcha" data-sitekey="6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8"></div> <div vc-recaptcha></div>
</div> </div>
<p class="text-center"> <p class="text-center">
...@@ -56,11 +56,8 @@ ...@@ -56,11 +56,8 @@
<p class="color_red text_sm text-center" ng-show="password != password_confirm" translate>password_match</p> <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"> <div class="form-group" ng-if="show_change_form">
<label>Captcha*</label> <label>Captcha</label>
<div re-captcha <div vc-recaptcha></div>
ng-model="captcha_chgpass"
size="compact"
lang="es"></div>
</div> </div>
<p class="text-center"> <p class="text-center">
......
...@@ -77,6 +77,55 @@ ...@@ -77,6 +77,55 @@
</div> </div>
</fieldset> </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"> <div class="form-group">
<input type="checkbox" ng-model="formdata.disclaimer_accepted"> <input type="checkbox" ng-model="formdata.disclaimer_accepted">
<span translate>disclaimer_accept</span> <span translate>disclaimer_accept</span>
...@@ -84,7 +133,7 @@ ...@@ -84,7 +133,7 @@
<div class="form-group"> <div class="form-group">
<legend>Captcha</legend> <legend>Captcha</legend>
<div class="g-recaptcha" data-sitekey="6LdGOBMUAAAAAJ6uYWb8d952TOR2knwbAem8TKJ8"></div> <div vc-recaptcha></div>
</div> </div>
<p class="text-center"> <p class="text-center">
......
...@@ -3,9 +3,12 @@ ...@@ -3,9 +3,12 @@
//---------------------- //----------------------
// Translate Controller // Translate Controller
//---------------------- //----------------------
dashboardControllers.controller('TranslateController', function($translate, $scope) { dashboardControllers.controller('TranslateController', function($translate, $scope, vcRecaptchaService) {
$scope.changeLanguage = function (langKey) { $scope.changeLanguage = function (langKey) {
$translate.use(langKey); $translate.use(langKey);
$scope.user.lang = 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) { module.exports = function (grunt) {
/* eslint-disable max-len */ /* eslint-disable max-len */
var jsLibs = [ var jsLibs = [
'assets/app/bower_components/jquery/dist/jquery.min.js',
'assets/app/bower_components/angular/angular.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.js',
'assets/app/bower_components/angular-bootstrap/ui-bootstrap-tpls.js', 'assets/app/bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
...@@ -19,6 +20,7 @@ module.exports = function (grunt) { ...@@ -19,6 +20,7 @@ module.exports = function (grunt) {
'assets/app/bower_components/angular-animate/angular-animate.js', 'assets/app/bower_components/angular-animate/angular-animate.js',
'assets/app/bower_components/angular-sanitize/angular-sanitize.js', 'assets/app/bower_components/angular-sanitize/angular-sanitize.js',
'assets/app/bower_components/ngtoast/dist/ngToast.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/chart.js/dist/Chart.min.js',
'assets/app/bower_components/angular-chart.js/dist/angular-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