diff options
Diffstat (limited to 'modules-available/adduser')
-rw-r--r-- | modules-available/adduser/lang/de/messages.json | 3 | ||||
-rw-r--r-- | modules-available/adduser/lang/de/permissions.json | 6 | ||||
-rw-r--r-- | modules-available/adduser/lang/de/template-tags.json | 8 | ||||
-rw-r--r-- | modules-available/adduser/lang/en/messages.json | 3 | ||||
-rw-r--r-- | modules-available/adduser/lang/en/permissions.json | 6 | ||||
-rw-r--r-- | modules-available/adduser/lang/en/template-tags.json | 8 | ||||
-rw-r--r-- | modules-available/adduser/page.inc.php | 4 | ||||
-rw-r--r-- | modules-available/adduser/style.css | 4 | ||||
-rw-r--r-- | modules-available/adduser/templates/page-adduser.html | 36 | ||||
-rw-r--r-- | modules-available/adduser/templates/page-userlist.html | 24 |
10 files changed, 89 insertions, 13 deletions
diff --git a/modules-available/adduser/lang/de/messages.json b/modules-available/adduser/lang/de/messages.json index 0ab4571f..a744ae5f 100644 --- a/modules-available/adduser/lang/de/messages.json +++ b/modules-available/adduser/lang/de/messages.json @@ -1,8 +1,11 @@ { "adduser-success": "Benutzer erfolgreich hinzugef\u00fcgt", + "cannot-delete-1-self": "Sie k\u00f6nnen nicht den Benutzer mit der ID 1 oder sich selbst l\u00f6schen", "db-error": "Datenbankfehler: {{0}}", "password-changed": "Passwort ge\u00e4ndert", "password-mismatch": "Passwort und Passwortbest\u00e4tigung stimmen nicht \u00fcberein", + "roles-updated": "Rollen aktualisiert", + "user-deleted": "Benutzer {{0}} (ID={1}}) gel\u00f6scht", "user-edited": "Benutzerdaten wurden ge\u00e4ndert", "user-not-found": "Benutzer mit ID {{0}} nicht gefunden" }
\ No newline at end of file diff --git a/modules-available/adduser/lang/de/permissions.json b/modules-available/adduser/lang/de/permissions.json new file mode 100644 index 00000000..636b73ff --- /dev/null +++ b/modules-available/adduser/lang/de/permissions.json @@ -0,0 +1,6 @@ +{ + "list.view": "Nutzerliste anzeigen", + "user.add": "Neuen Nutzer hinzuf\u00fcgen", + "user.edit": "Nutzer bearbeiten", + "user.remove": "Nutzer l\u00f6schen" +}
\ No newline at end of file diff --git a/modules-available/adduser/lang/de/template-tags.json b/modules-available/adduser/lang/de/template-tags.json index 0b6b2530..e13c3876 100644 --- a/modules-available/adduser/lang/de/template-tags.json +++ b/modules-available/adduser/lang/de/template-tags.json @@ -1,16 +1,24 @@ { "lang_addUser": "Nutzer hinzuf\u00fcgen", + "lang_assignRoles": "Rollen zuweisen", "lang_changeLoginHint": "Sie k\u00f6nnen den Namen, den der Nutzer beim Login angeben muss, \u00e4ndern. Dies ist nur bei lokalen Nutzern m\u00f6glich, die nicht \u00fcber LDAP\/AD authentifiziert werden.", "lang_changeOwnPasswordHint": "Ihr eigenes Passwort k\u00f6nnen Sie \u00fcber den Button \"Passwort \u00e4ndern\" im Men\u00fc \u00e4ndern.", "lang_changePassword": "Neues Passwort", + "lang_confirmDelete": "L\u00f6schen best\u00e4tigen", "lang_confirmation": "Wiederholen", "lang_createUser": "Benutzer anlegen", "lang_editUser": "Benutzer bearbeiten", "lang_email": "E-Mail", "lang_fullName": "Vollst\u00e4ndiger Name", + "lang_fullnameMissing": "Kein Name angegeben", "lang_login": "Login", + "lang_loginTooShort": "Login zu kurz", "lang_name": "Name", + "lang_passwordTooShort": "Passwort zu kurz", + "lang_passwordsDontMatch": "Passworte stimmen nicht \u00fcberein", "lang_phone": "Telefon", + "lang_role": "Rolle", + "lang_userDeleteConfirm": "M\u00f6chten Sie diesen Benutzer wirklich l\u00f6schen?", "lang_userManagement": "Benutzerverwaltung", "lang_userlist": "Benutzerliste" }
\ No newline at end of file diff --git a/modules-available/adduser/lang/en/messages.json b/modules-available/adduser/lang/en/messages.json index 69af3227..67bca6f9 100644 --- a/modules-available/adduser/lang/en/messages.json +++ b/modules-available/adduser/lang/en/messages.json @@ -1,8 +1,11 @@ { "adduser-success": "User successfully added", + "cannot-delete-1-self": "Cannot delete user with ID 1 or yourself", "db-error": "Database error: {{0}}", "password-changed": "Password changed", "password-mismatch": "Password and password confirmation do not match", + "roles-updated": "Roles have been updated", + "user-deleted": "Deleted user {{0}} (ID={{1}})", "user-edited": "User data has been updated", "user-not-found": "User with ID {{0}} not found" }
\ No newline at end of file diff --git a/modules-available/adduser/lang/en/permissions.json b/modules-available/adduser/lang/en/permissions.json new file mode 100644 index 00000000..d12d100e --- /dev/null +++ b/modules-available/adduser/lang/en/permissions.json @@ -0,0 +1,6 @@ +{ + "list.view": "Show userlist", + "user.add": "Add new user", + "user.edit": "Edit user", + "user.remove": "Remove user" +}
\ No newline at end of file diff --git a/modules-available/adduser/lang/en/template-tags.json b/modules-available/adduser/lang/en/template-tags.json index 2c9b8b53..de57b385 100644 --- a/modules-available/adduser/lang/en/template-tags.json +++ b/modules-available/adduser/lang/en/template-tags.json @@ -1,16 +1,24 @@ { "lang_addUser": "Add user", + "lang_assignRoles": "Assign roles", "lang_changeLoginHint": "You can change the login identifier used for logging in. This is only enabled for local acounts that are not linked to LDAP\/AD servers.", "lang_changeOwnPasswordHint": "You can change your own password by clicking the \"change password\" button in the menu.", "lang_changePassword": "Change password", + "lang_confirmDelete": "Confirm delete", "lang_confirmation": "Confirm Password", "lang_createUser": "Create User", "lang_editUser": "Edit user", "lang_email": "Email", "lang_fullName": "Full Name", + "lang_fullnameMissing": "Full name missing", "lang_login": "Login", + "lang_loginTooShort": "Login too short", "lang_name": "Name", + "lang_passwordTooShort": "Password too short", + "lang_passwordsDontMatch": "Passwords don't match", "lang_phone": "Phone", + "lang_role": "Role", + "lang_userDeleteConfirm": "Do you want to delete this user?", "lang_userManagement": "User management", "lang_userlist": "User list" }
\ No newline at end of file diff --git a/modules-available/adduser/page.inc.php b/modules-available/adduser/page.inc.php index 60785d6c..c43a04e6 100644 --- a/modules-available/adduser/page.inc.php +++ b/modules-available/adduser/page.inc.php @@ -129,7 +129,7 @@ class Page_AddUser extends Page return; } //\\ - $user = Database::queryFirst('SELECT userid, login, fullname, phone, email + $user = Database::queryFirst('SELECT userid, login FROM user WHERE userid = :userid', compact('userid')); if ($user === false) { Message::addError('user-not-found', $userid); @@ -140,7 +140,7 @@ class Page_AddUser extends Page return; } Database::exec('DELETE FROM user WHERE userid = :userid', compact('userid')); - Message::addSuccess('user-deleted', $userid); + Message::addSuccess('user-deleted', $user['login'], $userid); } private function saveRoles($userid) diff --git a/modules-available/adduser/style.css b/modules-available/adduser/style.css index e459352b..15f04b80 100644 --- a/modules-available/adduser/style.css +++ b/modules-available/adduser/style.css @@ -13,3 +13,7 @@ -moz-box-sizing: border-box; box-sizing: border-box; } + +#add-msg { + height: 1em; +}
\ No newline at end of file diff --git a/modules-available/adduser/templates/page-adduser.html b/modules-available/adduser/templates/page-adduser.html index bd16dbbf..18d79a3b 100644 --- a/modules-available/adduser/templates/page-adduser.html +++ b/modules-available/adduser/templates/page-adduser.html @@ -3,18 +3,18 @@ <h2>{{lang_createUser}}</h2> <div class="row"> <div class="col-md-4"><label for="login">{{lang_login}} *</label></div> - <div class="col-md-4"><input id="label" type="text" name="login" value="{{login}}" class="form-control" placeholder="{{lang_username}}" autofocus></div> + <div class="col-md-4"><input id="login" type="text" name="login" value="{{login}}" class="form-control event-box" placeholder="{{lang_username}}" autofocus></div> </div> <br> <div class="row"> <div class="col-md-4"><label for="pass1">{{lang_password}} *</label></div> - <div class="col-md-4"><input id="pass1" type="password" name="pass1" class="form-control" placeholder="{{lang_password}}"></div> - <div class="col-md-4"><input type="password" name="pass2" class="form-control" placeholder="{{lang_confirmation}}"></div> + <div class="col-md-4"><input id="pass1" type="password" name="pass1" class="form-control event-box" placeholder="{{lang_password}}"></div> + <div class="col-md-4"><input id="pass2" type="password" name="pass2" class="form-control event-box" placeholder="{{lang_confirmation}}"></div> </div> <br> <div class="row"> <div class="col-md-4"><label for="fullname">{{lang_fullName}} *</label></div> - <div class="col-md-4"><input id="fullname" type="text" name="fullname" value="{{fullname}}" class="form-control" placeholder="{{lang_fullName}}"></div> + <div class="col-md-4"><input id="fullname" type="text" name="fullname" value="{{fullname}}" class="form-control event-box" placeholder="{{lang_fullName}}"></div> </div> <br> <div class="row"> @@ -30,8 +30,34 @@ <div class="row"> <div class="col-md-4"></div> <div class="col-md-8"> - <button class="btn btn-lg btn-primary btn-block" type="submit">{{lang_createUser}}</button> + <button id="add-btn" class="btn btn-lg btn-primary btn-block" type="submit" disabled>{{lang_createUser}}</button> + <div id="add-msg" class="text-danger slx-bold"></div> </div> </div> <input type="hidden" name="action" value="adduser"> <input type="hidden" name="token" value="{{token}}"> +<script><!-- +document.addEventListener('DOMContentLoaded', function() { + var $login = $('#login'); + var $pass1 = $('#pass1'); + var $pass2 = $('#pass2'); + var $fullname = $('#fullname'); + var $msg = $('#add-msg'); + var $btn = $('#add-btn'); + var ev = function() { + var msg = ''; + if ($login.val().length < 2) { + msg = '{{lang_loginTooShort}}'; + } else if ($pass1.val() !== $pass2.val()) { + msg = '{{lang_passwordsDontMatch}}'; + } else if ($pass1.val().length < 2) { + msg = '{{lang_passwordTooShort}}'; + } else if ($fullname.val().length < 1) { + msg = '{{lang_fullnameMissing}}'; + } + $msg.text(msg); + $btn.prop('disabled', !!msg); + }; + $('.event-box').change(ev).keyup(ev); +}); +//--></script>
\ No newline at end of file diff --git a/modules-available/adduser/templates/page-userlist.html b/modules-available/adduser/templates/page-userlist.html index 5b14f7e5..8d9c6de0 100644 --- a/modules-available/adduser/templates/page-userlist.html +++ b/modules-available/adduser/templates/page-userlist.html @@ -18,7 +18,7 @@ <tbody> {{#list}} <tr> - <td>{{login}}</td> + <td id="user-{{userid}}">{{login}}</td> <td>{{fullname}}</td> <td>{{phone}}</td> <td>{{email}}</td> @@ -27,8 +27,8 @@ <span class="glyphicon glyphicon-edit"></span> </button> {{^hide_delete}} - <button type="button" {{perms.user.remove.disabled}} class="btn btn-danger btn-xs" - data-target="#delete-modal" data-toggle="modal" onclick="$('#delete-userid').val({{userid}})"> + <button type="button" {{perms.user.remove.disabled}} class="btn btn-danger btn-xs del-user-btn" + data-target="#delete-modal" data-toggle="modal" data-user="{{userid}}"> <span class="glyphicon glyphicon-trash"></span> </button> {{/hide_delete}} @@ -44,6 +44,19 @@ </a> </div> </form> +<script> + document.addEventListener('DOMContentLoaded', function() { + $('.del-user-btn').click(function (e) { + var uid = $(this).data('user'); + if (!uid) { + alert('ERROR'); + return false; + } + $('#delete-userid').val(uid); + $('#delete-user-field').text($('#user-' + uid).text()); + }); + }); +</script> <!-- Modals --> <div class ="modal fade" id="delete-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> @@ -52,11 +65,10 @@ <form method="post"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="myModalLabel">{{lang_confirmDelete}}</h4> + <h4 class="modal-title" id="myModalLabel">{{lang_confirmDelete}}: <span id="delete-user-field"></span></h4> </div> <div class="modal-body"> - <p>{{lang_roleDeleteConfirm}}</p> - {{lang_numAssignedUsers}}: <span id="delete-role-users"></span> + <p>{{lang_userDeleteConfirm}}</p> </div> <div class="modal-footer"> <input type="hidden" name="action" value="deleteuser"> |