Browse Source

UI-452: Created feature to change the PIN of any SmartPBX user

4.3
Jean-Roch Maitre 12 years ago
parent
commit
23f2a6fc8d
7 changed files with 101 additions and 18 deletions
  1. +12
    -4
      i18n/en-US.json
  2. +10
    -2
      i18n/fr-FR.json
  3. +9
    -7
      submodules/users/users.css
  4. +38
    -2
      submodules/users/users.js
  5. +2
    -2
      views/users-changePassword.html
  6. +28
    -0
      views/users-changePin.html
  7. +2
    -1
      views/users-name.html

+ 12
- 4
i18n/en-US.json View File

@ -294,7 +294,6 @@
"addFromSpare": "Add from Spare Numbers",
"addFromSpareDevices": "Add from Spare Devices",
"buy": "Buy Numbers",
"changeUsername": "Change",
"confirmDeleteAdmin": "You're about to delete an ADMIN! Deleting an admin will delete his Kazoo user, as well as his voicemail boxes and numbers, it will also prevent him from managing this UI. Do you want to continue?",
"confirmDeleteUser": "Deleting a user will delete this user and his Voicemail Box, and unassign the devices and numbers that were assigned to this user. Do you want to continue?",
"dialogChangePassword": {
@ -304,6 +303,12 @@
"title": "Update Email and password",
"username": "User's Email address"
},
"dialogChangePin": {
"help": "You can use this popup to set a temporary PIN for a user that lost his PIN for example.",
"pin": "PIN",
"pinPlaceholder": "Min. 4 digits",
"title": "Update PIN"
},
"dialogCreationUser": {
"createUser": "Create User",
"errorOnCreation": "An error occured while trying to create this user:",
@ -317,14 +322,16 @@
"sendToDifferentEmail": "Send emails to an alternate address",
"title": "Create User",
"vmboxAlreadyExist": "VMBox Number is already taken, please choose a different Voicemail Box Number.",
"vmboxNumber": "VM Box Number"
"vmboxNumber": "VM Box #"
},
"editionForm": {
"changePIN": "Change PIN",
"changeUsername": "Change",
"firstName": "First Name",
"lastName": "Last Name",
"role": "Role",
"timezone": "Timezone",
"vmboxNumber": "VMBox Number",
"vmboxNumber": "VMBox #",
"timeout": "Ringing Timeout",
"timeoutSec": "Sec",
"timeoutEdit": "Edit in Find-Me-Follow-Me feature",
@ -371,7 +378,8 @@
"numbersUpdated": "You successfully updated the phone numbers of {{ name }}.",
"passwordReseted": "The password has been reset, an e-mail has been sent to {{ email }} with instructions on how to create a new password.",
"userDelete": "You successfully deleted {{ name }} from the Smart PBX!",
"userUpdated": "You successfully updated {{ name }} settings."
"userUpdated": "You successfully updated {{ name }} settings.",
"pinUpdated": "You successfully updated the PIN of {{ name }}."
},
"uploadPicture": "Upload a Picture",
"user": "User",


+ 10
- 2
i18n/fr-FR.json View File

@ -272,7 +272,6 @@
"addFromSpare": "Ajouter depuis les numéros disponibles",
"addFromSpareDevices": "Ajouter depuis les téléphones disponibles",
"buy": "Acheter numéros",
"changeUsername": "Changer",
"confirmDeleteUser": "Supprimer un utilisateur supprimera également les numéros, téléphones et répondeurs associés à cet utilisateur. Continuer quand même?",
"confirmDeleteAdmin": "Vous êtes sur le point de supprimer un ADMINISTRATEUR! Ceci supprimera son utilisateur Kazoo, numéros, téléphones et répondeurs associés, et lui enlevera aussi la permission de gérer cette interface. Continuer quand même?",
"dialogChangePassword": {
@ -282,6 +281,12 @@
"title": "Mettre à jour Email / Mot de passe",
"username": "Email de l'utilisateur"
},
"dialogChangePin": {
"help": "Vous pouvez mettre à jour le PIN de messagerie d'utilisateur grâce à cette popup. Cela peut vous permettre de réinitialiser son PIN afin qu'il le re-configurer ensuite en appelant lui-même sa messagerie.",
"pin": "PIN",
"pinPlaceholder": "PIN (Min. 4 numéros)",
"title": "Mettre à jour le PIN de Messagerie"
},
"dialogCreationUser": {
"createUser": "Créer utilisateur",
"errorOnCreation": "Une erreur est survenue lors de la création de l'utilisateur:",
@ -298,6 +303,8 @@
"vmboxNumber": "Numéro Répondeur"
},
"editionForm": {
"changePIN": "Changer PIN",
"changeUsername": "Changer",
"firstName": "Prénom",
"lastName": "Nom",
"role": "Rôle",
@ -349,7 +356,8 @@
"numbersUpdated": "Vous avez mis à jour les numéros de {{ name }} avec succès.",
"passwordReseted": "Le mot de passe a été réinitialisé, un email a été envoyé à {{email}} avec les instructions pour créer un nouveau mot de passe.",
"userDelete": "Vous avez supprimé {{ name }} avec succès!",
"userUpdated": "Vous avez mis à jour {{ name }} avec succès!"
"userUpdated": "Vous avez mis à jour {{ name }} avec succès!",
"pinUpdated": "Vous avez mis à jour le PIN de {{ name }} avec succès!"
},
"uploadPicture": "Uploader une image",
"user": "Utilisateur",


+ 9
- 7
submodules/users/users.css View File

@ -284,7 +284,9 @@
}
#users_container .detail-user .row-fields #vmbox_number {
margin-left: 7px;
margin-bottom: 5px;
margin-left: 10px;
width: 42px;
}
#users_container .detail-user .row-fields .ringing-timeout {
@ -344,7 +346,7 @@
}
#users_container .detail-user #change_username {
margin-left: 5px;
margin-left: 10px;
}
/* Grid add remove */
@ -714,20 +716,20 @@
}
/* Change Password Popup */
.change-password-popup {
.smart-edit-popup {
width: 430px;
}
.change-password-popup .form-horizontal .control-group .control-label {
.smart-edit-popup .form-horizontal .control-group .control-label {
width: 140px;
}
.change-password-popup .form-horizontal .control-group .controls {
.smart-edit-popup .form-horizontal .control-group .controls {
margin-left: 160px;
}
.change-password-popup .change-password-content,
.change-password-popup .actions {
.smart-edit-popup .content,
.smart-edit-popup .actions {
padding: 15px 25px;
border-top: 1px solid #CCCCCC;
}


+ 38
- 2
submodules/users/users.js View File

@ -852,12 +852,48 @@ define(function(require){
});
});
template.on('click', '#change_pin', function() {
var pinTemplate = $(monster.template(self, 'users-changePin')),
form = pinTemplate.find('#form_new_pin');
//monster.ui.validate(form);
monster.ui.validate(form, {
rules: {
'pin': {
number: true,
minlength:4,
min: 0
}
}
});
pinTemplate.find('.save-new-pin').on('click', function() {
var formData = form2object('form_new_pin'),
vmboxData = $.extend(true, currentUser.extra.vmbox, formData);
if(monster.ui.valid(form)) {
self.usersUpdateVMBox(vmboxData, function(data) {
popup.dialog('close').remove();
toastr.success(monster.template(self, '!' + toastrMessages.pinUpdated, { name: currentUser.first_name + ' ' + currentUser.last_name }));
});
}
});
pinTemplate.find('.cancel-link').on('click', function() {
popup.dialog('close').remove();
});
var popup = monster.ui.dialog(pinTemplate, {
title: self.i18n.active().users.dialogChangePin.title
});
});
template.on('click', '#change_username', function() {
var passwordTemplate = $(monster.template(self, 'users-changePassword', currentUser)),
form = passwordTemplate.find('#form_new_username');
monster.ui.validate(form);
passwordTemplate.find('.save-new-username').on('click', function() {
var formData = form2object('form_new_username'),
userToSave = $.extend(true, {}, currentUser, formData);


+ 2
- 2
views/users-changePassword.html View File

@ -1,5 +1,5 @@
<div class="change-password-popup">
<div class="change-password-content">
<div class="change-password-popup smart-edit-popup">
<div class="content">
<form id="form_new_username" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="inputEmail">{{ i18n.users.dialogChangePassword.username }}</label>


+ 28
- 0
views/users-changePin.html View File

@ -0,0 +1,28 @@
<div class="change-pin-popup smart-edit-popup">
<div class="content">
<form id="form_new_pin" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="inputPin">{{ i18n.users.dialogChangePin.pin }}</label>
<div class="controls">
<input required name="pin" type="text" id="inputPin" placeholder="{{ i18n.users.dialogChangePin.pinPlaceholder }}" value="">
</div>
</div>
</form>
<div class="help-box gray-box">
<div class="wrapper-icon">
&nbsp;<i class="icon-info-sign2"></i>&nbsp;
</div>
<div class="text-wrapper">
<p>{{ i18n.users.dialogChangePin.help }}</p>
</div>
</div>
</div>
<div class="actions clearfix">
<div class="pull-right">
<a class="cancel-link monster-link blue" href="javascript:void(0);">{{ i18n.cancel }}</a>
<button type="button" class="btn btn-success save-new-pin">{{ i18n.saveChanges }}</button>
</div>
</div>
</div>

+ 2
- 1
views/users-name.html View File

@ -10,7 +10,7 @@
<div class="row-fields">
<div class="icon-wrapper"><i class="icon-key"></i></div>
<span id="username">{{username}}</span>
<a href="javascript:void(0);" id="change_username" class="monster-link blue">{{i18n.users.changeUsername}}</a>
<a href="javascript:void(0);" id="change_username" class="monster-link blue">{{i18n.users.editionForm.changeUsername}}</a>
</div>
<div class="row-fields vmbox">
@ -19,6 +19,7 @@
{{ i18n.users.editionForm.vmboxNumber }}
</label>
<input id="vmbox_number" class="input-small" required type="text" name="extra.vmboxNumber" value="{{extra.vmbox.mailbox}}"></input>
<a href="javascript:void(0);" id="change_pin" class="monster-link blue">{{i18n.users.editionForm.changePIN}}</a>
</div>
<div class="email-border{{#if extra.differentEmail }} open{{/if}}">


Loading…
Cancel
Save