added client side validation for email, username and password inputs
This commit is contained in:
parent
82d60c5a42
commit
34b2cba461
@ -121,6 +121,12 @@ exports.signup = function(req, res) {
|
||||
|
||||
// Add missing user fields
|
||||
user.provider = 'local';
|
||||
|
||||
if(req.body.password.length < 4){
|
||||
return res.status(400).send({
|
||||
message: 'Password must be at least 4 characters long'
|
||||
});
|
||||
}
|
||||
|
||||
// Then save the temporary user
|
||||
nev.createTempUser(user, function (err, existingPersistentUser, newTempUser) {
|
||||
@ -161,6 +167,13 @@ exports.signup = function(req, res) {
|
||||
* Signin after passport authentication
|
||||
*/
|
||||
exports.signin = function(req, res, next) {
|
||||
console.log(req.body);
|
||||
if(req.body.password.length < 4){
|
||||
return res.status(400).send({
|
||||
message: 'Password must be at least 4 characters long'
|
||||
});
|
||||
}
|
||||
|
||||
passport.authenticate('local', function(err, user, info) {
|
||||
if (err || !user) {
|
||||
res.status(400).send(info);
|
||||
@ -188,7 +201,9 @@ exports.signin = function(req, res, next) {
|
||||
* Signout
|
||||
*/
|
||||
exports.signout = function(req, res) {
|
||||
res.destroyCookie('langCookie');
|
||||
if(req.cookies.hasOwnProperty('userLang')){
|
||||
res.destroyCookie('userLang');
|
||||
}
|
||||
req.logout();
|
||||
return res.status(200).send('You have successfully logged out.');
|
||||
};
|
||||
|
||||
@ -11,7 +11,8 @@ var _ = require('lodash'),
|
||||
config = require('../../../config/config'),
|
||||
nodemailer = require('nodemailer'),
|
||||
async = require('async'),
|
||||
crypto = require('crypto');
|
||||
crypto = require('crypto'),
|
||||
pug = require('pug');
|
||||
|
||||
var smtpTransport = nodemailer.createTransport(config.mailer.options);
|
||||
|
||||
@ -32,7 +33,7 @@ exports.forgot = function(req, res) {
|
||||
if (req.body.username) {
|
||||
User.findOne({
|
||||
$or: [
|
||||
{'username': req.body.username},
|
||||
{'username': req.body.username.toLowerCase()},
|
||||
{'email': req.body.username}
|
||||
]
|
||||
}, '-salt -password', function(err, user) {
|
||||
@ -45,7 +46,7 @@ exports.forgot = function(req, res) {
|
||||
var tempUserModel = mongoose.model(config.tempUserCollection);
|
||||
tempUserModel.findOne({
|
||||
$or: [
|
||||
{'username': req.body.username},
|
||||
{'username': req.body.username.toLowerCase()},
|
||||
{'email': req.body.username}
|
||||
]
|
||||
}).lean().exec(function(err, user) {
|
||||
@ -80,13 +81,12 @@ exports.forgot = function(req, res) {
|
||||
}
|
||||
},
|
||||
function(token, user, done) {
|
||||
res.render('templates/reset-password-email', {
|
||||
name: user.displayName || 'TellForm User',
|
||||
appName: config.app.title,
|
||||
url: 'http://' + req.headers.host + '/auth/reset/' + token
|
||||
}, function(err, emailHTML) {
|
||||
done(err, emailHTML, user);
|
||||
});
|
||||
const fn = pug.compileFile(__dirname + "/../../views/templates/reset-password-email.server.view.pug");
|
||||
res.locals['url'] = 'http://' + req.headers.host + '/auth/reset/' + token;
|
||||
|
||||
console.log(res.locals);
|
||||
var renderedHtml = fn(res.locals);
|
||||
done(null, renderedHtml, user);
|
||||
},
|
||||
// If valid email, send reset email using service
|
||||
function(emailHTML, user, done) {
|
||||
@ -153,10 +153,21 @@ exports.validateResetToken = function(req, res) {
|
||||
* Reset password POST from email token
|
||||
*/
|
||||
exports.reset = function(req, res, next) {
|
||||
if(req.body.newPassword.length < 4){
|
||||
return res.status(400).send({
|
||||
message: 'Password must be at least 4 characters long'
|
||||
});
|
||||
}
|
||||
|
||||
if(req.body.newPassword !== req.body.verifyPassword){
|
||||
return res.status(400).send({
|
||||
message: 'Passwords do not match'
|
||||
});
|
||||
}
|
||||
|
||||
// Init Variables
|
||||
var passwordDetails = req.body;
|
||||
async.waterfall([
|
||||
|
||||
function(done) {
|
||||
User.findOne({
|
||||
resetPasswordToken: req.params.token,
|
||||
@ -165,32 +176,25 @@ exports.reset = function(req, res, next) {
|
||||
}
|
||||
}, function(err, user) {
|
||||
if (!err && user) {
|
||||
if (passwordDetails.newPassword === passwordDetails.verifyPassword) {
|
||||
user.password = passwordDetails.newPassword;
|
||||
user.resetPasswordToken = null;
|
||||
user.resetPasswordExpires = null;
|
||||
user.password = passwordDetails.newPassword;
|
||||
user.resetPasswordToken = null;
|
||||
user.resetPasswordExpires = null;
|
||||
|
||||
user.save(function(err) {
|
||||
if (err) {
|
||||
done(err, null);
|
||||
}
|
||||
done(null, user);
|
||||
});
|
||||
} else {
|
||||
done('Passwords do not match', null);
|
||||
}
|
||||
user.save(function(err, savedUser) {
|
||||
if (err) {
|
||||
done(err, null);
|
||||
}
|
||||
done(null, savedUser);
|
||||
});
|
||||
} else {
|
||||
done('Password reset token is invalid or has expired.', null);
|
||||
}
|
||||
});
|
||||
},
|
||||
function(user, done) {
|
||||
res.render('templates/reset-password-confirm-email', {
|
||||
name: user.displayName,
|
||||
appName: config.app.title
|
||||
}, function(err, emailHTML) {
|
||||
done(err, emailHTML, user);
|
||||
});
|
||||
const fn = pug.compileFile(__dirname + "/../../views/templates/reset-password-confirm-email.server.view.pug");
|
||||
var renderedHtml = fn(res.locals);
|
||||
done(null, renderedHtml, user);
|
||||
},
|
||||
// If valid email, send reset email using service
|
||||
function(emailHTML, user, done) {
|
||||
|
||||
@ -69,6 +69,7 @@ var UserSchema = new Schema({
|
||||
email: {
|
||||
type: String,
|
||||
trim: true,
|
||||
lowercase: true,
|
||||
unique: 'Account already exists with this email',
|
||||
match: [/.+\@.+\..+/, 'Please fill a valid email address'],
|
||||
required: [true, 'Email is required']
|
||||
@ -77,7 +78,7 @@ var UserSchema = new Schema({
|
||||
type: String,
|
||||
unique: true,
|
||||
lowercase: true,
|
||||
match: [/^[a-zA-Z0-9\.\-\_]+$/, 'Username can only contain alphanumeric characters and \'_\', \'-\' and \'.\''],
|
||||
match: [/^[a-zA-Z0-9\-]+$/, 'Username can only contain alphanumeric characters and \'-\''],
|
||||
required: [true, 'Username is required']
|
||||
},
|
||||
passwordHash: {
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
<p>Hello there!</p>
|
||||
<p>This is a courtesy message to confirm that your password was just changed.</p>
|
||||
<p>Thanks so much for using our services! If you have any questions, or suggestions, please feel free to email us here at <a href="mailto:team@tellform.com">team@tellform.com</a>.</p>
|
||||
<p> - The {{appName}} team</p>
|
||||
<p> - The #{appName} team</p>
|
||||
</td>
|
||||
<td width="36"></td>
|
||||
</tr>
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
body(style='padding: 0; width: 100% !important; -webkit-text-size-adjust: 100%; margin: 0; -ms-text-size-adjust: 100%', marginheight='0', marginwidth='0')
|
||||
center
|
||||
table(cellpadding='8', cellspacing='0', style='*width: 540px; padding: 0; width: 100% !important; background: #ffffff; margin: 0; background-color: #ffffff', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(valign='top')
|
||||
table(cellpadding='0', cellspacing='0', style='border-radius: 6px; -webkit-border-radius: 6px; border: 1px #c0c0c0 solid; -moz-border-radius: 6px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='6')
|
||||
tr
|
||||
td
|
||||
table(cellpadding='0', cellspacing='0', style='line-height: 25px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='30')
|
||||
tr
|
||||
td(width='36')
|
||||
td(width='454', align='left', style="color: #444444; border-collapse: collapse; font-size: 11pt; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; max-width: 454px", valign='top')
|
||||
p=__('EMAIL_GREETING')
|
||||
p=__('RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1')
|
||||
p=__("VERIFICATION_EMAIL_PARAGRAPH_2")
|
||||
a(href='mailto:team@tellform.com') team@tellform.com
|
||||
p=__('EMAIL_SIGNATURE')
|
||||
td(width='36')
|
||||
tr
|
||||
td(colspan='3', height='36')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(height='10')
|
||||
tr
|
||||
td(style='padding: 0; border-collapse: collapse')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr(style="color: #c0c0c0; font-size: 11px; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; -webkit-text-size-adjust: none")
|
||||
td(width='400', align='left')
|
||||
td(width='128', align='right') © TellForm 2017
|
||||
44
app/views/templates/reset-password-email.server.view.pug
Normal file
44
app/views/templates/reset-password-email.server.view.pug
Normal file
@ -0,0 +1,44 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
body(style='padding: 0; width: 100% !important; -webkit-text-size-adjust: 100%; margin: 0; -ms-text-size-adjust: 100%', marginheight='0', marginwidth='0')
|
||||
center
|
||||
table(cellpadding='8', cellspacing='0', style='*width: 540px; padding: 0; width: 100% !important; background: #ffffff; margin: 0; background-color: #ffffff', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(valign='top')
|
||||
table(cellpadding='0', cellspacing='0', style='border-radius: 6px; -webkit-border-radius: 6px; border: 1px #c0c0c0 solid; -moz-border-radius: 6px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='6')
|
||||
tr
|
||||
td
|
||||
table(cellpadding='0', cellspacing='0', style='line-height: 25px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='30')
|
||||
tr
|
||||
td(width='36')
|
||||
td(width='454', align='left', style="color: #444444; border-collapse: collapse; font-size: 11pt; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; max-width: 454px", valign='top')
|
||||
p=__('EMAIL_GREETING')
|
||||
p=__('RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1')
|
||||
p
|
||||
a(href=url)=__('RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT')
|
||||
p=__('RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2')
|
||||
p=__('VERIFICATION_EMAIL_PARAGRAPH_2')
|
||||
a(href='mailto:team@tellform.com') team@tellform.com
|
||||
p=__('EMAIL_SIGNATURE')
|
||||
td(width='36')
|
||||
tr
|
||||
td(colspan='3', height='36')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(height='10')
|
||||
tr
|
||||
td(style='padding: 0; border-collapse: collapse')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr(style="color: #c0c0c0; font-size: 11px; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; -webkit-text-size-adjust: none")
|
||||
td(width='400', align='left')
|
||||
td(width='128', align='right') © TellForm 2017
|
||||
@ -28,7 +28,7 @@ html
|
||||
p=__('EMAIL_GREETING')
|
||||
p=__('VERIFICATION_EMAIL_PARAGRAPH_1')
|
||||
p
|
||||
a(href='https://${URL}')=__('VERIFICATION_EMAIL_LINK_TEXT')
|
||||
a(href='http://${URL}')=__('VERIFICATION_EMAIL_LINK_TEXT')
|
||||
p=__('VERIFICATION_EMAIL_PARAGRAPH_2')
|
||||
a(href='mailto:team@tellform.com')
|
||||
| team@tellform.com
|
||||
|
||||
@ -13,5 +13,9 @@
|
||||
"WELCOME_EMAIL_PARAGRAPH_1": "Wir möchten Sie als unser neustes Mitglied begrüßen!",
|
||||
"WELCOME_EMAIL_PARAGRAPH_2": "Wir wünschen Ihnen viel Spaß mit TellForm! Wenn Sie Probleme haben, senden Sie uns bitte eine E-Mail an",
|
||||
"WELCOME_EMAIL_SUBJECT": "Willkommen bei %s!",
|
||||
"WELCOME_EMAIL_TEXT": "Ihr Konto wurde erfolgreich verifiziert."
|
||||
"WELCOME_EMAIL_TEXT": "Ihr Konto wurde erfolgreich verifiziert.",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Dies ist eine Höflichkeitsnachricht, um zu bestätigen, dass Ihr Passwort gerade geändert wurde.",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Hier ist ein spezieller Link, mit dem Sie Ihr Passwort zurücksetzen können: Bitte beachten Sie, dass es innerhalb einer Stunde zu Ihrem Schutz abläuft:",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Passwort zurücksetzen",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Falls Sie dies nicht gewünscht haben, ignorieren Sie bitte diese E-Mail und Ihr Passwort bleibt unverändert."
|
||||
}
|
||||
@ -13,5 +13,10 @@
|
||||
"WELCOME_EMAIL_PARAGRAPH_1": "We would like to welcome you as our newest member!",
|
||||
"WELCOME_EMAIL_PARAGRAPH_2": "We hope you enjoy using TellForm! If you have any trouble please feel free to email us here at",
|
||||
"WELCOME_EMAIL_SUBJECT": "Welcome to %s!",
|
||||
"WELCOME_EMAIL_TEXT": "Your account has been successfully verified."
|
||||
"WELCOME_EMAIL_TEXT": "Your account has been successfully verified.",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "This is a courtesy message to confirm that your password was just changed.",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Here is a special link that will allow you to reset your password. Please note it will expire in one hour for your protection:",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Reset Your Password",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "If you did not request this, please ignore this email and your password will remain unchanged.",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1": "RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1"
|
||||
}
|
||||
@ -13,5 +13,9 @@
|
||||
"WELCOME_EMAIL_PARAGRAPH_1": "¡Nos gustaría darle la bienvenida como nuestro miembro más nuevo!",
|
||||
"WELCOME_EMAIL_PARAGRAPH_2": "Esperamos que disfrute utilizando TellForm. Si tiene algún problema, no dude en enviarnos un correo electrónico aquí",
|
||||
"WELCOME_EMAIL_SUBJECT": "¡Bienvenido a %s!",
|
||||
"WELCOME_EMAIL_TEXT": "Su cuenta ha sido verificada con éxito"
|
||||
"WELCOME_EMAIL_TEXT": "Su cuenta ha sido verificada con éxito",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Este es un mensaje de cortesía para confirmar que su contraseña acaba de cambiarse",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Aquí hay un enlace especial que le permitirá restablecer su contraseña. Tenga en cuenta que caducará en una hora para su protección:",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Restablecer su contraseña",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Si no lo solicitó, ignore este correo electrónico y su contraseña no cambiará".
|
||||
}
|
||||
@ -13,5 +13,9 @@
|
||||
"WELCOME_EMAIL_PARAGRAPH_1": "Nous aimerions vous accueillir en tant que nouveau membre!",
|
||||
"WELCOME_EMAIL_PARAGRAPH_2": "Nous espérons que vous apprécierez l'utilisation de TellForm! Si vous avez des problèmes, n'hésitez pas à nous envoyer un e-mail ici",
|
||||
"WELCOME_EMAIL_SUBJECT": "Bienvenue dans %s!",
|
||||
"WELCOME_EMAIL_TEXT": "Votre compte a été vérifié avec succès."
|
||||
"WELCOME_EMAIL_TEXT": "Votre compte a été vérifié avec succès.",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Ceci est un message de courtoisie pour confirmer que votre mot de passe a été modifié.",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Voici un lien spécial qui vous permettra de réinitialiser votre mot de passe Veuillez noter qu'il expirera dans une heure pour votre protection:",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Réinitialiser votre mot de passe",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Si vous ne l'avez pas demandé, veuillez ignorer cet e-mail et votre mot de passe restera inchangé."
|
||||
}
|
||||
@ -13,5 +13,9 @@
|
||||
"WELCOME_EMAIL_PARAGRAPH_1": "Vorremmo darVi il benvenuto come il nostro nuovo membro!",
|
||||
"WELCOME_EMAIL_PARAGRAPH_2": "Speriamo che ti piace usare TellForm! Se hai problemi, non esitate a contattarci via",
|
||||
"WELCOME_EMAIL_SUBJECT": "Benvenuto a %s!",
|
||||
"WELCOME_EMAIL_TEXT": "Il tuo account è stato verificato correttamente."
|
||||
"WELCOME_EMAIL_TEXT": "Il tuo account è stato verificato correttamente.",
|
||||
"RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Si tratta di un messaggio di cortesia per confermare che la password è stata appena modificata".
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Ecco un collegamento speciale che ti permetterà di reimpostare la tua password. Si prega di notare che scadrà in un'ora per la protezione:",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Ripristina la tua password",
|
||||
"RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Se non l'hai richiesta, ignora questa email e la tua password rimane invariata."
|
||||
}
|
||||
@ -14,9 +14,11 @@ module.exports = function () {
|
||||
passwordField: 'password'
|
||||
},
|
||||
function (username, password, done) {
|
||||
console.log('\n\n\n\n\nusername: '+username);
|
||||
console.log('password: '+password)
|
||||
User.findOne({
|
||||
$or: [
|
||||
{'username': username},
|
||||
{'username': username.toLowerCase()},
|
||||
{'email': username}
|
||||
]
|
||||
}, function (err, user) {
|
||||
|
||||
1692
public/dist/application.js
vendored
1692
public/dist/application.js
vendored
File diff suppressed because one or more lines are too long
9
public/dist/application.min.js
vendored
9
public/dist/application.min.js
vendored
File diff suppressed because one or more lines are too long
152
public/dist/form-application.js
vendored
152
public/dist/form-application.js
vendored
File diff suppressed because one or more lines are too long
4
public/dist/form-application.min.js
vendored
4
public/dist/form-application.min.js
vendored
File diff suppressed because one or more lines are too long
@ -2,7 +2,7 @@
|
||||
|
||||
angular.module('core').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('de', {
|
||||
$translateProvider.translations('it', {
|
||||
MENU: 'MENÜ',
|
||||
SIGNUP_TAB: 'Vi Phrasal',
|
||||
SIGNIN_TAB: 'Accedi',
|
||||
|
||||
@ -8,12 +8,12 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
ADVANCED_SETTINGS: 'Advanced Settings',
|
||||
FORM_NAME: 'Form Name',
|
||||
FORM_STATUS: 'Form Status',
|
||||
PUBLIC: 'Public',
|
||||
PRIVATE: 'Private',
|
||||
PUBLIC_1: 'Public',
|
||||
PRIVATE_1: 'Private',
|
||||
GA_TRACKING_CODE: 'Google Analytics Tracking Code',
|
||||
DISPLAY_FOOTER: 'Display Form Footer?',
|
||||
SAVE_CHANGES: 'Save Changes',
|
||||
CANCEL: 'Cancel',
|
||||
CANCEL_1: 'Cancel',
|
||||
DISPLAY_START_PAGE: 'Display Start Page?',
|
||||
DISPLAY_END_PAGE: 'Display Custom End Page?',
|
||||
|
||||
@ -22,15 +22,15 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
CREATE_FORM: 'Create form',
|
||||
CREATED_ON: 'Created on',
|
||||
MY_FORMS: 'My forms',
|
||||
NAME: 'Name',
|
||||
NAME_1: 'Name',
|
||||
LANGUAGE: 'Language',
|
||||
FORM_PAUSED: 'Form paused',
|
||||
|
||||
//Edit Field Modal
|
||||
EDIT_FIELD: 'Edit this Field',
|
||||
SAVE_FIELD: 'Save',
|
||||
ON: 'ON',
|
||||
OFF: 'OFF',
|
||||
ON_1: 'ON',
|
||||
OFF_1: 'OFF',
|
||||
REQUIRED_FIELD: 'Required',
|
||||
LOGIC_JUMP: 'Logic Jump',
|
||||
SHOW_BUTTONS: 'Additional Buttons',
|
||||
@ -45,21 +45,21 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
I_UNDERSTAND: 'I understand the consequences, delete this form.',
|
||||
DELETE_FORM_SM: 'Delete',
|
||||
DELETE_FORM_MD: 'Delete Form',
|
||||
DELETE: 'Delete',
|
||||
FORM: 'Form',
|
||||
VIEW: 'View',
|
||||
LIVE: 'Live',
|
||||
PREVIEW: 'Preview',
|
||||
COPY: 'Copy',
|
||||
DELETE_1: 'Delete',
|
||||
FORM_1: 'Form',
|
||||
VIEW_1: 'View',
|
||||
LIVE_1: 'Live',
|
||||
PREVIEW_1: 'Preview',
|
||||
COPY_1: 'Copy',
|
||||
COPY_AND_PASTE: 'Copy and Paste this to add your TellForm to your website',
|
||||
CHANGE_WIDTH_AND_HEIGHT: 'Change the width and height values to suit you best',
|
||||
POWERED_BY: 'Powered by',
|
||||
TELLFORM_URL: 'Your TellForm is permanently at this URL',
|
||||
|
||||
//Edit Form View
|
||||
DISABLED: 'Disabled',
|
||||
YES: 'YES',
|
||||
NO: 'NO',
|
||||
DISABLED_1: 'Disabled',
|
||||
YES_1: 'YES',
|
||||
NO_1: 'NO',
|
||||
ADD_LOGIC_JUMP: 'Add Logic Jump',
|
||||
ADD_FIELD_LG: 'Click to Add New Field',
|
||||
ADD_FIELD_MD: 'Add New Field',
|
||||
@ -71,7 +71,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
INTRO_TITLE: 'Title',
|
||||
INTRO_PARAGRAPH: 'Paragraph',
|
||||
INTRO_BTN: 'Start Button',
|
||||
TITLE: 'Title',
|
||||
TITLE_1: 'Title',
|
||||
PARAGRAPH: 'Paragraph',
|
||||
BTN_TEXT: 'Go Back Button',
|
||||
BUTTONS: 'Buttons',
|
||||
@ -81,7 +81,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
PREVIEW_FIELD: 'Preview Question',
|
||||
QUESTION_TITLE: 'Title',
|
||||
QUESTION_DESCRIPTION: 'Description',
|
||||
OPTIONS: 'Options',
|
||||
OPTIONS_1: 'Options',
|
||||
ADD_OPTION: 'Add Option',
|
||||
NUM_OF_STEPS: 'Number of Steps',
|
||||
CLICK_FIELDS_FOOTER: 'Click on fields to add them here',
|
||||
@ -93,7 +93,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
IS_GREATER_OR_EQUAL_THAN: 'is greater or equal than',
|
||||
IS_SMALLER_THAN: 'is_smaller_than',
|
||||
IS_SMALLER_OR_EQUAL_THAN: 'is smaller or equal than',
|
||||
CONTAINS: 'contains',
|
||||
CONTAINS_1: 'contains',
|
||||
DOES_NOT_CONTAINS: 'does not contain',
|
||||
ENDS_WITH: 'ends with',
|
||||
DOES_NOT_END_WITH: 'does not end with',
|
||||
@ -103,14 +103,14 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
|
||||
//Edit Submissions View
|
||||
TOTAL_VIEWS: 'total unique visits',
|
||||
RESPONSES: 'responses',
|
||||
RESPONSES_1: 'responses',
|
||||
COMPLETION_RATE: 'completion rate',
|
||||
AVERAGE_TIME_TO_COMPLETE: 'avg. completion time',
|
||||
|
||||
DESKTOP_AND_LAPTOP: 'Desktops',
|
||||
TABLETS: 'Tablets',
|
||||
PHONES: 'Phones',
|
||||
OTHER: 'Other',
|
||||
TABLETS_1: 'Tablets',
|
||||
PHONES_1: 'Phones',
|
||||
OTHER_1: 'Other',
|
||||
UNIQUE_VISITS: 'Unique Visits',
|
||||
|
||||
FIELD_TITLE: 'Field Title',
|
||||
@ -123,11 +123,10 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
EXPORT_TO_JSON: 'Export to JSON',
|
||||
PERCENTAGE_COMPLETE: 'Percentage Complete',
|
||||
TIME_ELAPSED: 'Time Elapsed',
|
||||
DEVICE: 'Device',
|
||||
LOCATION: 'Location',
|
||||
DEVICE_1: 'Device',
|
||||
LOCATION_1: 'Location',
|
||||
IP_ADDRESS: 'IP Address',
|
||||
DATE_SUBMITTED: 'Date Submitted',
|
||||
GENERATED_PDF: 'Generated PDF',
|
||||
|
||||
//Design View
|
||||
BACKGROUND_COLOR: 'Background Color',
|
||||
@ -150,42 +149,42 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
||||
|
||||
//Field Types
|
||||
SHORT_TEXT: 'Short Text',
|
||||
EMAIL: 'Email',
|
||||
EMAIL_1: 'Email',
|
||||
MULTIPLE_CHOICE: 'Multiple Choice',
|
||||
DROPDOWN: 'Dropdown',
|
||||
DATE: 'Date',
|
||||
DROPDOWN_1: 'Dropdown',
|
||||
DATE_1: 'Date',
|
||||
PARAGRAPH_T: 'Paragraph',
|
||||
YES_NO: 'Yes/No',
|
||||
LEGAL: 'Legal',
|
||||
RATING: 'Rating',
|
||||
NUMBERS: 'Numbers',
|
||||
SIGNATURE: 'Signature',
|
||||
LEGAL_1: 'Legal',
|
||||
RATING_1: 'Rating',
|
||||
NUMBERS_1: 'Numbers',
|
||||
SIGNATURE_1: 'Signature',
|
||||
FILE_UPLOAD: 'File upload',
|
||||
OPTION_SCALE: 'Option Scale',
|
||||
PAYMENT: 'Payment',
|
||||
STATEMENT: 'Statement',
|
||||
LINK: 'Link',
|
||||
PAYMENT_1: 'Payment',
|
||||
STATEMENT_1: 'Statement',
|
||||
LINK_1: 'Link',
|
||||
|
||||
//Form Preview
|
||||
FORM_SUCCESS: 'Form entry successfully submitted!',
|
||||
REVIEW: 'Review',
|
||||
REVIEW_1: 'Review',
|
||||
BACK_TO_FORM: 'Go back to Form',
|
||||
EDIT_FORM: 'Edit this TellForm',
|
||||
ADVANCEMENT: '{{done}} out of {{total}} answered',
|
||||
ADVANCEMENT_1: '{{done}} out of {{total}} answered',
|
||||
CONTINUE_FORM: 'Continue to Form',
|
||||
REQUIRED: 'required',
|
||||
REQUIRED_1: 'required',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} answer(s) need completing',
|
||||
OPTIONAL: 'optional',
|
||||
OPTIONAL_1: 'optional',
|
||||
ERROR_EMAIL_INVALID: 'Please enter a valid email address',
|
||||
ERROR_NOT_A_NUMBER: 'Please enter valid numbers only',
|
||||
ERROR_URL_INVALID: 'Please a valid url',
|
||||
OK: 'OK',
|
||||
ENTER: 'press ENTER',
|
||||
NEWLINE: 'press SHIFT+ENTER to create a newline',
|
||||
CONTINUE: 'Continue',
|
||||
OK_1: 'OK',
|
||||
ENTER_1: 'press ENTER',
|
||||
NEWLINE_1: 'press SHIFT+ENTER to create a newline',
|
||||
CONTINUE_1: 'Continue',
|
||||
LEGAL_ACCEPT: 'I accept',
|
||||
LEGAL_NO_ACCEPT: 'I don’t accept',
|
||||
SUBMIT: 'Submit',
|
||||
SUBMIT_1: 'Submit',
|
||||
UPLOAD_FILE: 'Upload your File'
|
||||
});
|
||||
}]);
|
||||
|
||||
@ -2,34 +2,188 @@
|
||||
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('fr', {
|
||||
FORM_SUCCESS: 'Votre formulaire a été enregistré!',
|
||||
REVIEW: 'Incomplet',
|
||||
BACK_TO_FORM: 'Retourner au formulaire',
|
||||
EDIT_FORM: 'Éditer le Tellform',
|
||||
CREATE_FORM: 'Créer un TellForm',
|
||||
ADVANCEMENT: '{{done}} complétés sur {{total}}',
|
||||
CONTINUE_FORM: 'Aller au formulaire',
|
||||
REQUIRED: 'obligatoire',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} réponse(s) doive(nt) être complétée(s)',
|
||||
OPTIONAL: 'facultatif',
|
||||
ERROR_EMAIL_INVALID: 'Merci de rentrer une adresse mail valide',
|
||||
ERROR_NOT_A_NUMBER: 'Merce de ne rentrer que des nombres',
|
||||
ERROR_URL_INVALID: 'Merci de rentrer une url valide',
|
||||
OK: 'OK',
|
||||
ENTER: 'presser ENTRÉE',
|
||||
YES: 'Oui',
|
||||
NO: 'Non',
|
||||
NEWLINE: 'presser SHIFT+ENTER pour créer une nouvelle ligne',
|
||||
CONTINUE: 'Continuer',
|
||||
LEGAL_ACCEPT: 'J’accepte',
|
||||
LEGAL_NO_ACCEPT: 'Je n’accepte pas',
|
||||
DELETE: 'Supprimer',
|
||||
CANCEL: 'Réinitialiser',
|
||||
SUBMIT: 'Enregistrer',
|
||||
UPLOAD_FILE: 'Envoyer un fichier',
|
||||
Y: 'O',
|
||||
N: 'N',
|
||||
});
|
||||
$translateProvider.translations('fr', {
|
||||
// Configurer la vue de l'onglet Formulaire
|
||||
ADVANCED_SETTINGS: 'Paramètres avancés',
|
||||
FORM_NAME: "Nom du formulaire",
|
||||
FORM_STATUS: 'Statut du formulaire',
|
||||
PUBLIC_1: 'Public',
|
||||
PRIVATE_1: "Privé",
|
||||
GA_TRACKING_CODE: "Code de suivi Google Analytics",
|
||||
DISPLAY_FOOTER: "Afficher le pied de formulaire?",
|
||||
SAVE_CHANGES: 'Enregistrer les modifications',
|
||||
CANCEL_1: 'Annuler',
|
||||
DISPLAY_START_PAGE: "Afficher la page de démarrage?",
|
||||
DISPLAY_END_PAGE: "Afficher la page de fin personnalisée?",
|
||||
|
||||
// Afficher les formulaires
|
||||
CREATE_A_NEW_FORM: "Créer un nouveau formulaire",
|
||||
CREATE_FORM: "Créer un formulaire",
|
||||
CREATED_ON: 'Créé le',
|
||||
MY_FORMS: 'Mes formes',
|
||||
NAME_1: "Nom",
|
||||
LANGUE: 'Langue',
|
||||
FORM_PAUSED: 'Formulaire en pause',
|
||||
|
||||
// Modifier le modal de champ
|
||||
EDIT_FIELD: "Modifier ce champ",
|
||||
SAVE_FIELD: 'Enregistrer',
|
||||
ON_1: 'ON',
|
||||
OFF_1: "OFF",
|
||||
REQUIRED_FIELD: "Obligatoire",
|
||||
LOGIC_JUMP: 'Saut logique',
|
||||
SHOW_BUTTONS: 'Boutons supplémentaires',
|
||||
SAVE_START_PAGE: "Enregistrer",
|
||||
|
||||
// Affichage du formulaire d'administration
|
||||
ARE_YOU_SURE: 'Es-tu ABSOLUMENT sûr?',
|
||||
READ_WARNING: "De mauvaises choses inattendues se produiront si vous ne lisez pas ceci!",
|
||||
DELETE_WARNING1: 'Cette action NE PEUT PAS être annulée. Cela supprimera définitivement le "',
|
||||
DELETE_WARNING2: '" forme et supprime toutes les soumissions de formulaire associées. ',
|
||||
DELETE_CONFIRM: "Veuillez taper le nom du formulaire pour confirmer.",
|
||||
I_UNDERSTAND: 'Je comprends les conséquences, efface ce formulaire.',
|
||||
DELETE_FORM_SM: 'Supprimer',
|
||||
DELETE_FORM_MD: "Supprimer le formulaire",
|
||||
DELETE_1: "Supprimer",
|
||||
FORM_1: 'Formulaire',
|
||||
VIEW_1: "Afficher",
|
||||
LIVE_1: "Live",
|
||||
PREVIEW_1: 'Aperçu',
|
||||
COPY_1: "Copier",
|
||||
COPY_AND_PASTE: "Copiez et collez ceci pour ajouter votre TellForm à votre site Web",
|
||||
CHANGE_WIDTH_AND_HEIGHT: "Changez les valeurs de largeur et de hauteur pour mieux vous convenir",
|
||||
POWERED_BY: "Alimenté par",
|
||||
TELLFORM_URL: "Votre TellForm est en permanence sur cette URL",
|
||||
|
||||
// Modifier la vue de formulaire
|
||||
DISABLED_1: "Désactivé",
|
||||
OUI_1: 'OUI',
|
||||
NO_1: 'NON',
|
||||
ADD_LOGIC_JUMP: 'Ajouter un saut de logique',
|
||||
ADD_FIELD_LG: "Cliquez pour ajouter un nouveau champ",
|
||||
ADD_FIELD_MD: "Ajouter un nouveau champ",
|
||||
ADD_FIELD_SM: "Ajouter un champ",
|
||||
EDIT_START_PAGE: "Modifier la page de démarrage",
|
||||
EDIT_END_PAGE: "Modifier la page de fin",
|
||||
WELCOME_SCREEN: 'Page de démarrage',
|
||||
END_SCREEN: 'Fin de page',
|
||||
INTRO_TITLE: "Titre",
|
||||
INTRO_PARAGRAPH: 'Paragraphe',
|
||||
INTRO_BTN: 'Bouton de démarrage',
|
||||
TITLE_1: "Titre",
|
||||
PARAGRAPHE: 'Paragraphe',
|
||||
BTN_TEXT: "Bouton Retour",
|
||||
BOUTONS: 'Boutons',
|
||||
BUTTON_TEXT: "Texte",
|
||||
BUTTON_LINK: "Lien",
|
||||
ADD_BUTTON: 'Ajouter un bouton',
|
||||
PREVIEW_FIELD: 'Question d\'aperçu',
|
||||
QUESTION_TITLE: "Titre",
|
||||
QUESTION_DESCRIPTION: 'Description',
|
||||
OPTIONS_1: 'Options',
|
||||
ADD_OPTION: 'Ajouter une option',
|
||||
NUM_OF_STEPS: "Nombre d'étapes",
|
||||
CLICK_FIELDS_FOOTER: 'Cliquez sur les champs pour les ajouter ici',
|
||||
SHAPE: 'Forme',
|
||||
IF_THIS_FIELD: "Si ce champ",
|
||||
IS_EQUAL_TO: 'est égal à',
|
||||
IS_NOT_EQUAL_TO: 'n\'est pas égal à',
|
||||
IS_GREATER_THAN: 'est supérieur à',
|
||||
IS_GREATER_OR_EQUAL_THAN: 'est supérieur ou égal à',
|
||||
IS_SMALLER_THAN: 'is_smaller_than',
|
||||
IS_SMALLER_OR_EQUAL_THAN: 'est plus petit ou égal à',
|
||||
CONTAINS_1: 'contient',
|
||||
DOES_NOT_CONTAINS: 'ne contient pas',
|
||||
ENDS_WITH: "se termine par",
|
||||
DOES_NOT_END_WITH: "ne finit pas avec",
|
||||
STARTS_WITH: 'commence par',
|
||||
DOES_NOT_START_WITH: "ne commence pas par",
|
||||
THEN_JUMP_TO: 'alors saute à',
|
||||
|
||||
// Modifier la vue des soumissions
|
||||
TOTAL_VIEWS: 'total des visites uniques',
|
||||
RESPONSES_1: "réponses",
|
||||
COMPLETION_RATE: "taux d'achèvement",
|
||||
AVERAGE_TIME_TO_COMPLETE: 'moy. le temps d\'achèvement',
|
||||
|
||||
DESKTOP_AND_LAPTOP: 'Desktops',
|
||||
TABLETS_1: 'Tablettes',
|
||||
PHONES_1: 'Téléphones',
|
||||
OTHER_1: 'Autre',
|
||||
UNIQUE_VISITS: 'Visites uniques',
|
||||
|
||||
FIELD_TITLE: 'Titre du champ',
|
||||
FIELD_VIEWS: 'Field Views',
|
||||
FIELD_DROPOFF: "Achèvement du champ",
|
||||
FIELD_RESPONSES: 'Réponses sur le terrain',
|
||||
DELETE_SELECTED: 'Supprimer la sélection',
|
||||
EXPORT_TO_EXCEL: 'Exporter vers Excel',
|
||||
EXPORT_TO_CSV: 'Export to CSV',
|
||||
EXPORT_TO_JSON: "Exporter vers JSON",
|
||||
PERCENTAGE_COMPLETE: 'Pourcentage terminé',
|
||||
TIME_ELAPSED: 'Temps écoulé',
|
||||
DEVICE_1: "Device",
|
||||
LOCATION_1: "Emplacement",
|
||||
IP_ADDRESS: 'Adresse IP',
|
||||
DATE_SUBMITTED: 'Date de soumission',
|
||||
|
||||
// Vue de conception
|
||||
BACKGROUND_COLOR: "Couleur d'arrière-plan",
|
||||
DESIGN_HEADER: "Changez l'apparence de votre formulaire",
|
||||
QUESTION_TEXT_COLOR: "Couleur du texte de la question",
|
||||
ANSWER_TEXT_COLOR: "Couleur du texte de la réponse",
|
||||
BTN_BACKGROUND_COLOR: "Couleur d'arrière-plan du bouton",
|
||||
BTN_TEXT_COLOR: "Couleur du texte du bouton",
|
||||
|
||||
// Vue de partage
|
||||
EMBED_YOUR_FORM: "Intégrez votre formulaire",
|
||||
SHARE_YOUR_FORM: "Partager votre formulaire",
|
||||
|
||||
// Onglets d'administration
|
||||
CREATE_TAB: "Créer",
|
||||
DESIGN_TAB: 'Design',
|
||||
CONFIGURE_TAB: 'Configurer',
|
||||
ANALYZE_TAB: "Analyser",
|
||||
SHARE_TAB: "Partager",
|
||||
|
||||
// Types de champs
|
||||
SHORT_TEXT: "Texte court",
|
||||
EMAIL_1: "E-mail",
|
||||
MULTIPLE_CHOICE: 'Choix multiple',
|
||||
DROPDOWN_1: 'Dropdown',
|
||||
DATE_1: 'Date',
|
||||
PARAGRAPH_T: "Paragraphe",
|
||||
OUI_NON: 'Oui / Non',
|
||||
LEGAL_1: 'Légal',
|
||||
RATING_1: "Évaluation",
|
||||
NUMBERS_1: "Chiffres",
|
||||
SIGNATURE_1: 'Signature',
|
||||
FILE_UPLOAD: 'Téléchargement de fichier',
|
||||
OPTION_SCALE: 'Option Scale',
|
||||
PAYMENT_1: 'Paiement',
|
||||
STATEMENT_1: 'Déclaration',
|
||||
LINK_1: "Lien",
|
||||
|
||||
// Aperçu du formulaire
|
||||
FORM_SUCCESS: 'Entrée de formulaire soumise avec succès!',
|
||||
REVIEW_1: 'Review',
|
||||
BACK_TO_FORM: "Revenir au formulaire",
|
||||
EDIT_FORM: "Modifier ce TellForm",
|
||||
ADVANCEMENT_1: '{{done}} sur {{total}} a répondu',
|
||||
CONTINUE_FORM: "Continuer à se former",
|
||||
REQUIRED_1: 'requis',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} réponse (s) doivent être complétées',
|
||||
OPTIONAL_1: 'optionnel',
|
||||
ERROR_EMAIL_INVALID: "Veuillez entrer une adresse email valide",
|
||||
ERROR_NOT_A_NUMBER: "Veuillez entrer uniquement des numéros valides",
|
||||
ERROR_URL_INVALID: "S'il vous plaît une adresse valide",
|
||||
OK_1: 'OK',
|
||||
ENTER_1: 'appuyez sur ENTRER',
|
||||
NEWLINE_1: 'appuyez sur MAJ + ENTRÉE pour créer une nouvelle ligne',
|
||||
CONTINUE_1: "Continuer",
|
||||
LEGAL_ACCEPT: 'J\'accepte',
|
||||
LEGAL_NO_ACCEPT: "Je n'accepte pas",
|
||||
SUBMIT_1: "Soumettre",
|
||||
UPLOAD_FILE: "Télécharger votre fichier"
|
||||
});
|
||||
}]);
|
||||
|
||||
@ -2,34 +2,189 @@
|
||||
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('de', {
|
||||
FORM_SUCCESS: 'Ihre Angaben wurden gespeichert.',
|
||||
REVIEW: 'Unvollständig',
|
||||
BACK_TO_FORM: 'Zurück zum Formular',
|
||||
EDIT_FORM: '',
|
||||
CREATE_FORM: '',
|
||||
ADVANCEMENT: '{{done}} von {{total}} beantwortet',
|
||||
CONTINUE_FORM: 'Zum Formular',
|
||||
REQUIRED: 'verpflichtend',
|
||||
COMPLETING_NEEDED: 'Es fehlen/fehtl noch {{answers_not_completed}} Antwort(en)',
|
||||
OPTIONAL: 'fakultativ',
|
||||
ERROR_EMAIL_INVALID: 'Bitte gültige Mailadresse eingeben',
|
||||
ERROR_NOT_A_NUMBER: 'Bitte nur Zahlen eingeben',
|
||||
ERROR_URL_INVALID: 'Bitte eine gültige URL eingeben',
|
||||
OK: 'Okay',
|
||||
ENTER: 'Eingabetaste drücken',
|
||||
YES: 'Ja',
|
||||
NO: 'Nein',
|
||||
NEWLINE: 'Für eine neue Zeile SHIFT+ENTER drücken',
|
||||
CONTINUE: 'Weiter',
|
||||
LEGAL_ACCEPT: 'I accept',
|
||||
LEGAL_NO_ACCEPT: 'I don’t accept',
|
||||
DELETE: 'Entfernen',
|
||||
CANCEL: 'Canceln',
|
||||
SUBMIT: 'Speichern',
|
||||
UPLOAD_FILE: 'Datei versenden',
|
||||
Y: 'J',
|
||||
N: 'N',
|
||||
});
|
||||
$translateProvider.translations('de', {
|
||||
// Konfigurieren der Formularregisterkarte
|
||||
ADVANCED_SETTINGS: 'Erweiterte Einstellungen',
|
||||
FORM_NAME: 'Formularname',
|
||||
FORM_STATUS: 'Formularstatus',
|
||||
PUBLIC_1: 'Öffentlich',
|
||||
PRIVATE_1: 'Privat',
|
||||
GA_TRACKING_CODE: 'Google Analytics Tracking-Code',
|
||||
DISPLAY_FOOTER: 'Formularfußzeile anzeigen?',
|
||||
SAVE_CHANGES: 'Änderungen speichern',
|
||||
CANCEL_1: 'Abbrechen',
|
||||
DISPLAY_START_PAGE: 'Startseite anzeigen?',
|
||||
DISPLAY_END_PAGE: 'Benutzerdefinierte Endseite anzeigen?',
|
||||
|
||||
// Listenformularansicht
|
||||
CREATE_A_NEW_FORM: 'Erstelle ein neues Formular',
|
||||
CREATE_FORM: 'Formular erstellen',
|
||||
CREATED_ON: 'Erstellt am',
|
||||
MY_FORMS: 'Meine Formulare',
|
||||
NAME_1: 'Name',
|
||||
SPRACHE: 'Sprache',
|
||||
FORM_PAUSED: 'Formular pausiert',
|
||||
|
||||
// Feld Modal bearbeiten
|
||||
EDIT_FIELD: 'Dieses Feld bearbeiten',
|
||||
SAVE_FIELD: 'Speichern',
|
||||
ON_1: 'ON',
|
||||
AUS_1: 'AUS',
|
||||
REQUIRED_FIELD: 'Erforderlich',
|
||||
LOGIC_JUMP: 'Logischer Sprung',
|
||||
SHOW_BUTTONS: 'Zusätzliche Schaltflächen',
|
||||
SAVE_START_PAGE: 'Speichern',
|
||||
|
||||
// Admin-Formularansicht
|
||||
ARE_YOU_SURE: "Bist du ABSOLUT sicher?",
|
||||
READ_WARNING: 'Unerwartete schlimme Dinge werden passieren, wenn Sie das nicht lesen!',
|
||||
DELETE_WARNING1: 'Diese Aktion kann NICHT rückgängig gemacht werden. Dies wird dauerhaft die "',
|
||||
DELETE_WARNING2: '"Formular und entferne alle verknüpften Formulareinreichungen.',
|
||||
DELETE_CONFIRM: 'Bitte geben Sie den Namen des zu bestätigenden Formulars ein.',
|
||||
I_UNDERSTAND: "Ich verstehe die Konsequenzen, lösche dieses Formular.",
|
||||
DELETE_FORM_SM: 'Löschen',
|
||||
DELETE_FORM_MD: 'Formular löschen',
|
||||
DELETE_1: 'Löschen',
|
||||
FORM_1: 'Formular',
|
||||
VIEW_1: 'Ansicht',
|
||||
LIVE_1: 'Live',
|
||||
PREVIEW_1: 'Vorschau',
|
||||
COPY_1: 'Kopieren',
|
||||
COPY_AND_PASTE: 'Kopieren und einfügen, um Ihre TellForm auf Ihrer Website hinzuzufügen',
|
||||
CHANGE_WIDTH_AND_HEIGHT: 'Ändern Sie die Werte für Breite und Höhe, um Ihnen am besten zu entsprechen',
|
||||
POWERED_BY: 'Powered by',
|
||||
TELLFORM_URL: "Ihr TellForm ist dauerhaft unter dieser URL",
|
||||
|
||||
// Formularansicht bearbeiten
|
||||
DISABLED_1: 'Deaktiviert',
|
||||
JA_1: 'JA',
|
||||
NO_1: 'NEIN',
|
||||
ADD_LOGIC_JUMP: 'Logic Jump hinzufügen',
|
||||
ADD_FIELD_LG: 'Klicken Sie auf Neues Feld hinzufügen',
|
||||
ADD_FIELD_MD: 'Neues Feld hinzufügen',
|
||||
ADD_FIELD_SM: 'Feld hinzufügen',
|
||||
EDIT_START_PAGE: 'Startseite bearbeiten',
|
||||
EDIT_END_PAGE: 'Endseite bearbeiten',
|
||||
WELCOME_SCREEN: 'Startseite',
|
||||
END_SCREEN: 'Ende Seite',
|
||||
INTRO_TITLE: 'Titel',
|
||||
INTRO_PARAGRAPH: "Absatz",
|
||||
INTRO_BTN: 'Start Button',
|
||||
TITLE_1: "Titel",
|
||||
PARAGRAPH: "Absatz",
|
||||
BTN_TEXT: 'Zurück Button',
|
||||
TASTEN: 'Knöpfe',
|
||||
BUTTON_TEXT: 'Text',
|
||||
BUTTON_LINK: 'Link',
|
||||
ADD_BUTTON: 'Schaltfläche hinzufügen',
|
||||
PREVIEW_FIELD: 'Vorschaufrage',
|
||||
QUESTION_TITLE: 'Titel',
|
||||
QUESTION_DESCRIPTION: 'Beschreibung',
|
||||
OPTIONS_1: 'Optionen',
|
||||
ADD_OPTION: 'Option hinzufügen',
|
||||
NUM_OF_STEPS: 'Anzahl der Schritte',
|
||||
CLICK_FIELDS_FOOTER: 'Klicken Sie auf Felder, um sie hier hinzuzufügen',
|
||||
FORM: 'Form',
|
||||
IF_THIS_FIELD: 'Wenn dieses Feld',
|
||||
IS_EQUAL_TO: 'ist gleich',
|
||||
IS_NOT_EQUAL_TO: 'ist nicht gleich',
|
||||
IS_GREATER_THAN: 'ist größer als',
|
||||
IS_GREATER_OR_EQUAL_THAN: 'ist größer oder gleich',
|
||||
IS_SMALLER_THAN: 'is_smaller_than',
|
||||
IS_SMALLER_OR_EQUAL_THAN: 'ist kleiner oder gleich',
|
||||
CONTAINS_1: 'enthält',
|
||||
DOES_NOT_CONTAINS: 'enthält nicht',
|
||||
ENDS_WITH: 'endet mit',
|
||||
DOES_NOT_END_WITH: 'endet nicht mit',
|
||||
STARTS_WITH: 'beginnt mit',
|
||||
DOES_NOT_START_WITH: 'beginnt nicht mit',
|
||||
THEN_JUMP_TO: 'Springe dann zu',
|
||||
|
||||
// Bearbeiten der Einreichungsansicht
|
||||
TOTAL_VIEWS: 'Gesamtzahl eindeutiger Besuche',
|
||||
RESPONSES_1: 'Antworten',
|
||||
COMPLETION_RATE: 'Abschlussrate',
|
||||
AVERAGE_TIME_TO_COMPLETE: 'avg. Fertigstellungszeit',
|
||||
|
||||
DESKTOP_AND_LAPTOP: 'Desktops',
|
||||
TABLETS_1: "Tabletten",
|
||||
PHONES_1: 'Telefone',
|
||||
OTHER_1: 'Andere',
|
||||
UNIQUE_VISITS: 'Eindeutige Besuche',
|
||||
|
||||
FIELD_TITLE: 'Feldtitel',
|
||||
FIELD_VIEWS: 'Feld Ansichten',
|
||||
FIELD_DROPOFF: 'Feldabschluss',
|
||||
FIELD_RESPONSES: 'Feldantworten',
|
||||
DELETE_SELECTED: 'Ausgewählte löschen',
|
||||
EXPORT_TO_EXCEL: 'Export nach Excel',
|
||||
EXPORT_TO_CSV: 'In CSV exportieren',
|
||||
EXPORT_TO_JSON: 'Export nach JSON',
|
||||
PERCENTAGE_COMPLETE: 'Prozent abgeschlossen',
|
||||
TIME_ELAPSED: 'Zeit verstrichen',
|
||||
DEVICE_1: 'Gerät',
|
||||
LOCATION_1: 'Ort',
|
||||
IP_ADDRESS: 'IP-Adresse',
|
||||
DATE_SUBMITTED: 'Eingereichtes Datum',
|
||||
|
||||
// Entwurfsansicht
|
||||
BACKGROUND_COLOR: 'Hintergrundfarbe',
|
||||
DESIGN_HEADER: 'Ändern Sie, wie Ihr Formular aussieht',
|
||||
QUESTION_TEXT_COLOR: 'Fragetextfarbe',
|
||||
ANSWER_TEXT_COLOR: 'Textfarbe beantworten',
|
||||
BTN_BACKGROUND_COLOR: 'Schaltfläche Hintergrundfarbe',
|
||||
BTN_TEXT_COLOR: 'Schaltfläche Textfarbe',
|
||||
|
||||
// Freigabeansicht
|
||||
EMBED_YOUR_FORM: 'Einbetten Ihres Formulars',
|
||||
SHARE_YOUR_FORM: 'Teilen Sie Ihr Formular',
|
||||
|
||||
// Admin-Registerkarten
|
||||
CREATE_TAB: 'Erstellen',
|
||||
DESIGN_TAB: 'Design',
|
||||
CONFIGURE_TAB: 'Konfigurieren',
|
||||
ANALYZE_TAB: 'Analysieren',
|
||||
SHARE_TAB: 'Freigeben',
|
||||
|
||||
// Feldtypen
|
||||
SHORT_TEXT: 'Kurztext',
|
||||
EMAIL_1: 'Email',
|
||||
MULTIPLE_CHOICE: 'Multiple Choice',
|
||||
DROPDOWN_1: 'Dropdown',
|
||||
DATE_1: 'Datum',
|
||||
PARAGRAPH_T: "Absatz",
|
||||
YES_NO: 'Ja / Nein',
|
||||
LEGAL_1: "Legal",
|
||||
RATING_1: 'Rating',
|
||||
NUMBERS_1: 'Zahlen',
|
||||
SIGNATURE_1: "Unterschrift",
|
||||
FILE_UPLOAD: 'Datei-Upload',
|
||||
OPTION_SCALE: 'Option Scale',
|
||||
ZAHLUNG_1: "Zahlung",
|
||||
STATEMENT_1: 'Anweisung',
|
||||
LINK_1: 'Link',
|
||||
|
||||
// Formularvorschau
|
||||
FORM_SUCCESS: 'Formulareintrag erfolgreich gesendet!',
|
||||
REVIEW_1: 'Review',
|
||||
BACK_TO_FORM: 'Gehe zurück zu Formular',
|
||||
EDIT_FORM: 'Bearbeiten Sie diese TellForm',
|
||||
ADVANCEMENT_1: '{{done}} von {{total}} wurde beantwortet',
|
||||
CONTINUE_FORM: 'Weiter zum Formular',
|
||||
REQUIRED_1: 'erforderlich',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} Antwort (en) müssen ausgefüllt werden',
|
||||
OPTIONAL_1: 'optional',
|
||||
ERROR_EMAIL_INVALID: 'Geben Sie eine gültige E-Mail-Adresse ein',
|
||||
ERROR_NOT_A_NUMBER: 'Bitte nur gültige Nummern eingeben',
|
||||
ERROR_URL_INVALID: 'Bitte eine gültige URL',
|
||||
OK_1: 'OK',
|
||||
ENTER_1: 'ENTER drücken',
|
||||
NEWLINE_1: 'Drücken Sie UMSCHALT + EINGABETASTE, um eine neue Zeile zu erstellen',
|
||||
CONTINUE_1: 'Weiter',
|
||||
LEGAL_ACCEPT: "Ich akzeptiere",
|
||||
LEGAL_NO_ACCEPT: "Ich akzeptiere nicht",
|
||||
SUBMIT_1: 'Senden',
|
||||
UPLOAD_FILE: 'Hochladen Ihrer Datei'
|
||||
});
|
||||
|
||||
}]);
|
||||
|
||||
@ -2,34 +2,189 @@
|
||||
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('it', {
|
||||
FORM_SUCCESS: 'Il formulario è stato inviato con successo!',
|
||||
REVIEW: 'Incompleto',
|
||||
BACK_TO_FORM: 'Ritorna al formulario',
|
||||
EDIT_FORM: '',
|
||||
CREATE_FORM: '',
|
||||
ADVANCEMENT: '{{done}} su {{total}} completate',
|
||||
CONTINUE_FORM: 'Vai al formulario',
|
||||
REQUIRED: 'obbligatorio',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} risposta/e deve/ono essere completata/e',
|
||||
OPTIONAL: 'opzionale',
|
||||
ERROR_EMAIL_INVALID: 'Si prega di inserire un indirizzo email valido',
|
||||
ERROR_NOT_A_NUMBER: 'Si prega di inserire solo numeri',
|
||||
ERROR_URL_INVALID: 'Grazie per inserire un URL valido',
|
||||
OK: 'OK',
|
||||
ENTER: 'premere INVIO',
|
||||
YES: 'Sì',
|
||||
NO: 'No',
|
||||
NEWLINE: 'premere SHIFT+INVIO per creare una nuova linea',
|
||||
CONTINUE: 'Continua',
|
||||
LEGAL_ACCEPT: 'I accept',
|
||||
LEGAL_NO_ACCEPT: 'I don’t accept',
|
||||
DELETE: 'Cancella',
|
||||
CANCEL: 'Reset',
|
||||
SUBMIT: 'Registra',
|
||||
UPLOAD_FILE: 'Invia un file',
|
||||
Y: 'S',
|
||||
N: 'N',
|
||||
});
|
||||
$translateProvider.translations('it', {
|
||||
// Configura la visualizzazione scheda modulo
|
||||
ADVANCED_SETTINGS: 'Impostazioni avanzate',
|
||||
FORM_NAME: 'Nome modulo',
|
||||
FORM_STATUS: 'Stato modulo',
|
||||
PUBLIC_1: 'pubblico',
|
||||
PRIVATE_1: 'Privato',
|
||||
GA_TRACKING_CODE: 'Codice di monitoraggio di Google Analytics',
|
||||
DISPLAY_FOOTER: 'Visualizza piè di pagina?',
|
||||
SAVE_CHANGES: 'Salva modifiche',
|
||||
CANCEL_1: 'Annulla',
|
||||
DISPLAY_START_PAGE: 'Visualizza pagina iniziale?',
|
||||
DISPLAY_END_PAGE: 'Mostra pagina finale personalizzata?',
|
||||
|
||||
// Visualizzazione dei moduli di elenco
|
||||
CREATE_A_NEW_FORM: 'Crea un nuovo modulo',
|
||||
CREATE_FORM: 'Crea modulo',
|
||||
CREATED_ON: 'Creato su',
|
||||
MY_FORMS: 'Le mie forme',
|
||||
NAME_1: 'Nome',
|
||||
LINGUA: 'Lingua',
|
||||
FORM_PAUSED: 'Forme in pausa',
|
||||
|
||||
// Modifica campo modale
|
||||
EDIT_FIELD: 'Modifica questo campo',
|
||||
SAVE_FIELD: 'Salva',
|
||||
ON_1: 'ON',
|
||||
OFF_1: 'OFF',
|
||||
REQUIRED_FIELD: 'Obbligatorio',
|
||||
LOGIC_JUMP: 'Jump Logic',
|
||||
SHOW_BUTTONS: 'Pulsanti aggiuntivi',
|
||||
SAVE_START_PAGE: 'Salva',
|
||||
|
||||
// Visualizzazione modulo di amministrazione
|
||||
ARE_YOU_SURE: 'Sei ASSOLUTAMENTE sicuro?',
|
||||
READ_WARNING: 'Le cose cattive impreviste avverranno se non lo leggi!',
|
||||
DELETE_WARNING1: 'Questa azione NON può essere annullata. Ciò eliminerà in modo permanente il "',
|
||||
DELETE_WARNING2: '" forma e rimuovi tutti i moduli di modulo associati. ',
|
||||
DELETE_CONFIRM: 'Inserisci il nome del modulo per confermare',
|
||||
I_UNDERSTAND: "Capisco le conseguenze, elimina questa forma",
|
||||
DELETE_FORM_SM: 'Elimina',
|
||||
DELETE_FORM_MD: 'Elimina modulo',
|
||||
DELETE_1: 'Elimina',
|
||||
FORM_1: 'Forma',
|
||||
VIEW_1: 'Visualizza',
|
||||
LIVE_1: 'Live',
|
||||
PREVIEW_1: 'Anteprima',
|
||||
COPY_1: 'Copia',
|
||||
COPY_AND_PASTE: 'Copia e incolla questo per aggiungere il tuo TellForm al tuo sito web',
|
||||
CHANGE_WIDTH_AND_HEIGHT: 'Modifica i valori di larghezza e di altezza per adattarti al meglio',
|
||||
POWERED_BY: 'Powered by',
|
||||
TELLFORM_URL: 'Il tuo TellForm è permanente in questo URL',
|
||||
|
||||
// Modifica vista modulo
|
||||
DISABLED_1: 'disabilitato',
|
||||
YES_1: 'SI',
|
||||
NO_1: 'NO',
|
||||
ADD_LOGIC_JUMP: 'Aggiungi logico salto',
|
||||
ADD_FIELD_LG: 'Clicca per aggiungere nuovo campo',
|
||||
ADD_FIELD_MD: 'Aggiungi nuovo campo',
|
||||
ADD_FIELD_SM: 'Aggiungi campo',
|
||||
EDIT_START_PAGE: 'Modifica pagina iniziale',
|
||||
EDIT_END_PAGE: 'Modifica pagina finale',
|
||||
WELCOME_SCREEN: 'Pagina iniziale',
|
||||
END_SCREEN: 'Fine pagina',
|
||||
INTRO_TITLE: 'Titolo',
|
||||
INTRO_PARAGRAPH: 'Paragrafo',
|
||||
INTRO_BTN: 'Pulsante Start',
|
||||
TITLE_1: 'Titolo',
|
||||
PARAGRAFO: 'Paragrafo',
|
||||
BTN_TEXT: 'Tornare indietro',
|
||||
TASTI: 'Pulsanti',
|
||||
BUTTON_TEXT: 'Testo',
|
||||
BUTTON_LINK: 'Link',
|
||||
ADD_BUTTON: 'Aggiungi pulsante',
|
||||
PREVIEW_FIELD: 'Anteprima domanda',
|
||||
QUESTION_TITLE: 'Titolo',
|
||||
QUESTION_DESCRIPTION: 'Descrizione',
|
||||
OPTIONS_1: 'Opzioni',
|
||||
ADD_OPTION: 'Aggiungi opzione',
|
||||
NUM_OF_STEPS: 'Numero di passi',
|
||||
CLICK_FIELDS_FOOTER: 'Clicca sui campi per aggiungerli qui',
|
||||
FORMA: 'Forma',
|
||||
IF_THIS_FIELD: 'Se questo campo',
|
||||
IS_EQUAL_TO: 'è uguale a',
|
||||
IS_NOT_EQUAL_TO: 'non è uguale a',
|
||||
IS_GREATER_THAN: 'è maggiore di',
|
||||
IS_GREATER_OR_EQUAL_THAN: 'è maggiore o uguale a',
|
||||
IS_SMALLER_THAN: 'is_smaller_than',
|
||||
IS_SMALLER_OR_EQUAL_THAN: 'è più piccolo o uguale a quello',
|
||||
CONTAINS_1: 'contiene',
|
||||
DOES_NOT_CONTAINS: 'non contiene',
|
||||
ENDS_WITH: 'finisce con',
|
||||
DOES_NOT_END_WITH: 'non finisce con',
|
||||
STARTS_WITH: 'inizia con',
|
||||
DOES_NOT_START_WITH: 'non inizia con',
|
||||
THEN_JUMP_TO: 'poi salta a',
|
||||
|
||||
// Modifica visualizzazione presentazioni
|
||||
TOTAL_VIEWS: 'visite totali totali',
|
||||
RESPONSES_1: 'risposte',
|
||||
COMPLETION_RATE: 'tasso di completamento',
|
||||
AVERAGE_TIME_TO_COMPLETE: 'avg. tempo di completamento',
|
||||
|
||||
DESKTOP_AND_LAPTOP: 'Desktop',
|
||||
TABLETS_1: 'compresse',
|
||||
PHONES_1: 'Telefoni',
|
||||
OTHER_1: 'Altro',
|
||||
UNIQUE_VISITS: 'Visite Uniche',
|
||||
|
||||
FIELD_TITLE: 'Titolo del campo',
|
||||
FIELD_VIEWS: 'Viste sul campo',
|
||||
FIELD_DROPOFF: 'Completamento del campo',
|
||||
FIELD_RESPONSES: 'Risposte sul campo',
|
||||
DELETE_SELECTED: 'Elimina selezionata',
|
||||
EXPORT_TO_EXCEL: 'Esporta in Excel',
|
||||
EXPORT_TO_CSV: 'Esporta in CSV',
|
||||
EXPORT_TO_JSON: 'Esporta in JSON',
|
||||
PERCENTAGE_COMPLETE: 'Percentuale completa',
|
||||
TIME_ELAPSED: 'Tempo trascorso',
|
||||
DEVICE_1: 'Dispositivo',
|
||||
LOCATION_1: 'Posizione',
|
||||
IP_ADDRESS: 'Indirizzo IP',
|
||||
DATE_SUBMITTED: 'Data trasmessa',
|
||||
|
||||
// Vista di progettazione
|
||||
BACKGROUND_COLOR: 'Colore di sfondo',
|
||||
DESIGN_HEADER: 'Modifica il tuo aspetto forma',
|
||||
QUESTION_TEXT_COLOR: 'Colore del testo di domanda',
|
||||
ANSWER_TEXT_COLOR: 'Answer Text Color',
|
||||
BTN_BACKGROUND_COLOR: 'Colore di sfondo del pulsante',
|
||||
BTN_TEXT_COLOR: 'Colore del testo pulsante',
|
||||
|
||||
// Vista condivisione
|
||||
EMBED_YOUR_FORM: 'Inserisci il tuo modulo',
|
||||
SHARE_YOUR_FORM: 'Condividi il tuo modulo',
|
||||
|
||||
// Schede amministratore
|
||||
CREATE_TAB: 'Crea',
|
||||
DESIGN_TAB: 'Design',
|
||||
CONFIGURE_TAB: 'Configura',
|
||||
ANALYZE_TAB: 'Analizza',
|
||||
SHARE_TAB: 'Condividi',
|
||||
|
||||
// Tipi di campo
|
||||
SHORT_TEXT: 'Testo corto',
|
||||
EMAIL_1: 'E-mail',
|
||||
MULTIPLE_CHOICE: 'Scelta multipla',
|
||||
DROPDOWN_1: 'Dropdown',
|
||||
DATE_1: 'Data',
|
||||
PARAGRAPH_T: 'Paragrafo',
|
||||
YES_NO: 'Sì / no',
|
||||
LEGAL_1: 'Legale',
|
||||
RATING_1: 'Valutazione',
|
||||
NUMBERS_1: 'Numeri',
|
||||
SIGNATURE_1: 'Firma',
|
||||
FILE_UPLOAD: 'Caricamento file',
|
||||
OPTION_SCALE: 'Scala opzione',
|
||||
PAGAMENTO_1: 'Pagamento',
|
||||
STATEMENT_1: 'Dichiarazione',
|
||||
LINK_1: 'Link',
|
||||
|
||||
// Anteprima del modulo
|
||||
FORM_SUCCESS: 'Inserimento modulo con successo presentato!',
|
||||
REVIEW_1: 'Recensione',
|
||||
BACK_TO_FORM: 'Torna alla scheda',
|
||||
EDIT_FORM: 'Modifica questo TellForm',
|
||||
ADVANCEMENT_1: '{{done}} su {{total}} ha risposto',
|
||||
CONTINUE_FORM: "Continua a formare",
|
||||
REQUIRED_1: 'richiesta',
|
||||
COMPLETING_NEEDED: '{{answers_not_completed}} answer (s) need completing',
|
||||
OPTIONAL_1: 'facoltativo',
|
||||
ERROR_EMAIL_INVALID: 'Inserisci un indirizzo e-mail valido',
|
||||
ERROR_NOT_A_NUMBER: 'Inserisci solo numeri validi',
|
||||
ERROR_URL_INVALID: 'Per favore un url valido',
|
||||
OK_1: 'OK',
|
||||
ENTER_1: 'premere INVIO',
|
||||
NEWLINE_1: 'premere SHIFT + INVIO per creare una nuova riga',
|
||||
CONTINUE_1: 'Continua',
|
||||
LEGAL_ACCEPT: 'accetto',
|
||||
LEGAL_NO_ACCEPT: 'Non accetto',
|
||||
SUBMIT_1: 'Invia',
|
||||
UPLOAD_FILE: 'Carica il tuo file'
|
||||
});
|
||||
|
||||
}]);
|
||||
|
||||
@ -55,9 +55,9 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
SUBMIT_BTN: 'Submit',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Ask for new password reset',
|
||||
PASSWORD_RESET_INVALID: 'Password reset is invalid',
|
||||
PASSWORD_RESET_SUCCESS: 'Passport successfully reset',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Passport successfully changed',
|
||||
PASSWORD_RESET_INVALID: 'Password reset link is invalid',
|
||||
PASSWORD_RESET_SUCCESS: 'Password successfully reset',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Password successfully changed',
|
||||
RESET_PASSWORD: 'Reset your password',
|
||||
CHANGE_PASSWORD: 'Change your password',
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
SUBMIT_BTN: 'Enregistrer',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Demander un nouveau mot de pass ',
|
||||
PASSWORD_RESET_INVALID: 'Le nouveau mot de passe est invalid',
|
||||
PASSWORD_RESET_INVALID: 'Ce lien de réinitialisation de mot de passe a déjà expiré',
|
||||
PASSWORD_RESET_SUCCESS: 'Mot de passe réinitialisé avec succès',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Mot de passe enregistré avec succès',
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
SUBMIT_BTN: 'Senden',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Neues Passwort zurücksetzen',
|
||||
PASSWORD_RESET_INVALID: 'Passwort-Reset ist ungültig',
|
||||
PASSWORD_RESET_INVALID: 'Dieser Link zum Zurücksetzen des Passworts ist bereits abgelaufen',
|
||||
PASSWORD_RESET_SUCCESS: 'Passport erfolgreich zurückgesetzt',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Pass wurde erfolgreich geändert',
|
||||
RESET_PASSWORD: 'Passwort zurücksetzen',
|
||||
|
||||
@ -55,7 +55,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
SUBMIT_BTN: 'Invia',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Richiedi nuova password reimpostata',
|
||||
PASSWORD_RESET_INVALID: 'Il reset della password non è valido',
|
||||
PASSWORD_RESET_INVALID: 'Questo collegamento per la reimpostazione della password è già scaduto',
|
||||
PASSWORD_RESET_SUCCESS: 'Passaporto resettato con successo',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Passaporto modificato con successo',
|
||||
RESET_PASSWORD: 'Ripristina la tua password',
|
||||
|
||||
@ -55,7 +55,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
SUBMIT_BTN: 'Enviar',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Pedir reseteo de contraseña',
|
||||
PASSWORD_RESET_INVALID: 'El reseteo de la contraseña es inválido',
|
||||
PASSWORD_RESET_INVALID: 'Este enlace de restablecimiento de contraseña ya ha caducado',
|
||||
PASSWORD_RESET_SUCCESS: 'Contraseña exitosamente reseteada',
|
||||
PASSWORD_CHANGE_SUCCESS: 'Contraseña exitosamente cambiada',
|
||||
RESET_PASSWORD: 'Resetear contraseña',
|
||||
|
||||
@ -7,8 +7,10 @@ angular.module('users').controller('AuthenticationController', ['$scope', '$loca
|
||||
$scope = $rootScope;
|
||||
$scope.credentials = {};
|
||||
$scope.error = '';
|
||||
$scope.forms = [];
|
||||
|
||||
$scope.signin = function() {
|
||||
console.log($scope.forms.signinForm);
|
||||
User.login($scope.credentials).then(
|
||||
function(response) {
|
||||
Auth.login(response);
|
||||
|
||||
@ -11,10 +11,12 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
|
||||
User.askForPasswordReset($scope.credentials).then(
|
||||
function(response){
|
||||
$scope.success = response.message;
|
||||
$scope.error = null;
|
||||
$scope.credentials = null;
|
||||
},
|
||||
function(error){
|
||||
$scope.error = error;
|
||||
$scope.success = null;
|
||||
$scope.credentials = null;
|
||||
}
|
||||
);
|
||||
@ -25,8 +27,10 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
|
||||
$scope.success = $scope.error = null;
|
||||
User.resetPassword($scope.passwordDetails, $stateParams.token).then(
|
||||
function(response){
|
||||
console.log(response.message);
|
||||
// If successful show success message and clear form
|
||||
$scope.success = response.message;
|
||||
$scope.error = null;
|
||||
$scope.passwordDetails = null;
|
||||
|
||||
// And redirect to the index page
|
||||
@ -34,6 +38,7 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
|
||||
},
|
||||
function(error){
|
||||
$scope.error = error.message || error;
|
||||
$scope.success = null;
|
||||
$scope.passwordDetails = null;
|
||||
}
|
||||
);
|
||||
|
||||
@ -33,8 +33,10 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
|
||||
}).success(function(response) {
|
||||
// If successful show success message and clear form
|
||||
$scope.success = true;
|
||||
$scope.error = null;
|
||||
$scope.user = response;
|
||||
}).error(function(response) {
|
||||
$scope.success = null;
|
||||
$scope.error = response.message;
|
||||
});
|
||||
};
|
||||
@ -47,8 +49,10 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
|
||||
|
||||
user.$update(function(response) {
|
||||
$scope.success = true;
|
||||
$scope.error = null;
|
||||
$scope.user = response;
|
||||
}, function(response) {
|
||||
$scope.success = null;
|
||||
$scope.error = response.data.message;
|
||||
});
|
||||
} else {
|
||||
@ -63,8 +67,10 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
|
||||
$http.post('/users/password', $scope.passwordDetails).success(function(response) {
|
||||
// If successful show success message and clear form
|
||||
$scope.success = true;
|
||||
$scope.error = null;
|
||||
$scope.passwordDetails = null;
|
||||
}).error(function(response) {
|
||||
$scope.success = null;
|
||||
$scope.error = response.message;
|
||||
});
|
||||
};
|
||||
|
||||
@ -13,11 +13,13 @@ angular.module('users').controller('VerifyController', ['$scope', '$state', '$ro
|
||||
User.resendVerifyEmail($scope.credentials.email).then(
|
||||
function(response){
|
||||
$scope.success = response.message;
|
||||
$scope.error = null;
|
||||
$scope.credentials = null;
|
||||
$scope.isResetSent = true;
|
||||
},
|
||||
function(error){
|
||||
$scope.error = error;
|
||||
$scope.success = null;
|
||||
$scope.credentials.email = null;
|
||||
$scope.isResetSent = false;
|
||||
}
|
||||
@ -31,11 +33,13 @@ angular.module('users').controller('VerifyController', ['$scope', '$state', '$ro
|
||||
User.validateVerifyToken($stateParams.token).then(
|
||||
function(response){
|
||||
$scope.success = response.message;
|
||||
$scope.error = null;
|
||||
$scope.isResetSent = true;
|
||||
$scope.credentials.email = null;
|
||||
},
|
||||
function(error){
|
||||
$scope.isResetSent = false;
|
||||
$scope.success = null;
|
||||
$scope.error = error;
|
||||
$scope.credentials.email = null;
|
||||
}
|
||||
|
||||
@ -1,4 +1,15 @@
|
||||
<section class="text-center auth">
|
||||
<h3 class="col-md-12">{{ 'ACCESS_DENIED_TEXT' | translate }}</h3>
|
||||
<a href="/#!/sigin" class="col-md-12">{{ 'SIGNIN_BTN' | translate }}</a>
|
||||
<section class="row auth" data-ng-controller="PasswordController">
|
||||
<div class="row valign">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<h3 class="col-md-12 text-center">{{ 'ACCESS_DENIED_TEXT' | translate }}</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<a class="btn btn-signup btn-rounded btn-block" href="/#!/signin" >
|
||||
{{ 'ASK_FOR_NEW_PASSWORD' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -6,18 +6,18 @@
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<form class="signin form-horizontal" autocomplete="off">
|
||||
<form name="forms.signinForm" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
{{ 'ERROR' | translate }}: <strong data-ng-bind="error"></strong>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>-->
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}" ng-minlength="4">
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}" required pattern=".{4,}" title="Username/Email must be at least 4 characters">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>-->
|
||||
<input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4">
|
||||
<input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" pattern=".{4,}" required title="Passwords must be at least 4 characters">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button class="btn btn-signup btn-rounded btn-block" ng-click="signin()">{{ 'SIGNIN_BTN' | translate }}</button>
|
||||
|
||||
@ -12,15 +12,15 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>-->
|
||||
<input type="text" id="username" name="username" class="form-control" ng-pattern="languageRegExp" ng-minlength="4" ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}" ng-minlength="4">
|
||||
<input type="text" id="username" name="username" class="form-control" ng-pattern="languageRegExp" ng-minlength="4" ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}" required pattern=".{4,}" title="Username/Email must be at least 4 characters">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="email">{{ 'EMAIL_LABEL' | translate }}</label>-->
|
||||
<input type="email" id="email" name="email" class="form-control" ng-model="credentials.email" placeholder="{{ 'EMAIL_LABEL' | translate }}">
|
||||
<input type="email" id="email" name="email" class="form-control" ng-model="credentials.email" placeholder="{{ 'EMAIL_LABEL' | translate }}" required pattern=".{4,}" title="Email must be at least 4 characters">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>-->
|
||||
<input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4">
|
||||
<input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" pattern=".{4,}" required title="Passwords must be at least 4 characters">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'SIGNUP_BTN' | translate }}</button>
|
||||
|
||||
@ -16,9 +16,14 @@
|
||||
<div class="form-group">
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<div class="text-center form-group" ng-if="!success">
|
||||
<button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'PASSWORD_RESTORE_HEADER' | translate }}</button>
|
||||
</div>
|
||||
<div class="col-md-12 text-center" ng-if="success">
|
||||
<a class="btn btn-signup btn-rounded btn-block" href="/#!/signin" >
|
||||
{{ 'CONTINUE_TO_LOGIN' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -1,4 +1,17 @@
|
||||
<section class="row text-center">
|
||||
<h3 class="col-md-12">{{ 'PASSWORD_RESET_INVALID' | translate }}</h3>
|
||||
<a href="/#!/password/forgot" class="col-md-12">{{ 'ASK_FOR_NEW_PASSWORD' | translate }}</a>
|
||||
<section class="row auth" data-ng-controller="PasswordController">
|
||||
<div class="row valign">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<h3 class="col-md-12 text-center">
|
||||
{{ 'PASSWORD_RESET_INVALID' | translate }}
|
||||
</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<a class="btn btn-signup btn-rounded btn-block" href="/#!/password/forgot" >
|
||||
{{ 'ASK_FOR_NEW_PASSWORD' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -1,4 +1,16 @@
|
||||
<section class="row text-center">
|
||||
<h3 class="col-md-12">{{ 'PASSWORD_RESET_SUCCESS' | translate }}</h3>
|
||||
<a href="/#!/" class="col-md-12">{{ 'CONTINUE_TO_LOGIN' | translate }}</a>
|
||||
<section class="row auth" data-ng-controller="PasswordController">
|
||||
<div class="row valign">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
|
||||
<h3 class="col-md-12 text-center">{{ 'PASSWORD_RESET_SUCCESS' | translate }}</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<a class="btn btn-signup btn-rounded btn-block" href="/#!/signin" >
|
||||
{{ 'CONTINUE_TO_LOGIN' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -3,19 +3,19 @@
|
||||
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
|
||||
<form data-ng-submit="resetUserPassword()" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
<div ng-if="error" class="text-center text-danger">
|
||||
<strong>{{error}}</strong>
|
||||
</div>
|
||||
<div data-ng-show="success" class="text-center text-success">
|
||||
<div ng-if="success" class="text-center text-success">
|
||||
<strong>{{success}}</strong>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newPassword">{{ 'NEW_PASSWORD_LABEL' | translate }}</label>
|
||||
<input type="password" id="newPassword" name="newPassword" class="form-control" data-ng-model="passwordDetails.newPassword" placeholder="{{ 'NEW_PASSWORD_LABEL' | translate }}">
|
||||
<input type="password" id="newPassword" name="newPassword" class="form-control" data-ng-model="passwordDetails.newPassword" placeholder="{{ 'NEW_PASSWORD_LABEL' | translate }}" required pattern=".{4,}" title="Username/Email must be at least 4 characters">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="verifyPassword">{{ 'VERIFY_PASSWORD_LABEL' | translate }}</label>
|
||||
<input type="password" id="verifyPassword" name="verifyPassword" class="form-control" data-ng-model="passwordDetails.verifyPassword" placeholder="{{ 'VERIFY_PASSWORD_LABEL' | translate }}">
|
||||
<input type="password" id="verifyPassword" name="verifyPassword" class="form-control" data-ng-model="passwordDetails.verifyPassword" placeholder="{{ 'VERIFY_PASSWORD_LABEL' | translate }}" required pattern=".{4,}" title="Username/Email must be at least 4 characters">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-large btn-primary">{{ 'UPDATE_PASSWORD_LABEL' | translate }}</button>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user