This is an automated email from the git hooks/post-receive script. New commit to branch feature/44_several_email_address in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 90f30944d050b55e87026d49a8c396521b19a263 Author: Kevin Morin <morin@codelutin.com> Date: Mon Oct 16 11:18:59 2017 +0200 gestion de l'avatar par l'admin --- pollen-ui-riot-js/src/main/web/i18n/en.json | 2 + pollen-ui-riot-js/src/main/web/i18n/fr.json | 2 + pollen-ui-riot-js/src/main/web/js/UserService.js | 10 ++++- .../src/main/web/tag/admin/UserEditModal.tag.html | 44 +++++++++++++++++++++- 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/pollen-ui-riot-js/src/main/web/i18n/en.json b/pollen-ui-riot-js/src/main/web/i18n/en.json index e7e10a0c..d3ac0d51 100644 --- a/pollen-ui-riot-js/src/main/web/i18n/en.json +++ b/pollen-ui-riot-js/src/main/web/i18n/en.json @@ -406,6 +406,8 @@ "user_premiumOf": "Unlimited end from", "user_cancel": "Cancel", "user_save": "Save", + "user_deleteAvatar": "Delete", + "user_deleteAvatarMessage": "Delete user's avatar?", "userProfile_title": "My profile", "userProfile_deleteAccount": "Delete your account", "userProfile_deleteUserMessage": "Delete your account? All the polls you created will be deleted; your votes and comments will be anonymized.", diff --git a/pollen-ui-riot-js/src/main/web/i18n/fr.json b/pollen-ui-riot-js/src/main/web/i18n/fr.json index e0483962..4a809ab9 100644 --- a/pollen-ui-riot-js/src/main/web/i18n/fr.json +++ b/pollen-ui-riot-js/src/main/web/i18n/fr.json @@ -406,6 +406,8 @@ "user_premiumOf": "Fin de l'illimité depuis le", "user_cancel": "Annuler", "user_save": "Enregistrer", + "user_deleteAvatar": "Supprimer", + "user_deleteAvatarMessage": "Supprimer l'avatar de l'utilisateur ?", "userProfile_title": "Mon profil", "userProfile_deleteAccount": "Supprimer votre compte", "userProfile_deleteUserMessage": "Supprimer votre compte ? Tous les sondages que vous avez créés seront supprimés ; vos votes et commentaires seront anonymisés.", diff --git a/pollen-ui-riot-js/src/main/web/js/UserService.js b/pollen-ui-riot-js/src/main/web/js/UserService.js index 317a9df9..45103037 100644 --- a/pollen-ui-riot-js/src/main/web/js/UserService.js +++ b/pollen-ui-riot-js/src/main/web/js/UserService.js @@ -130,8 +130,14 @@ class UserService extends FetchService { return this.form(url, {avatar: avatar}, true); } - deleteAvatar() { - return this.doDelete(this._getUserUrlPrefix() + "/avatar"); + deleteAvatar(userId) { + let url; + if (userId) { + url = this._getUsersUrlPrefix(userId); + } else { + url = this._getUserUrlPrefix(); + } + return this.doDelete(url + "/avatar"); } } diff --git a/pollen-ui-riot-js/src/main/web/tag/admin/UserEditModal.tag.html b/pollen-ui-riot-js/src/main/web/tag/admin/UserEditModal.tag.html index 768e1b66..f86fbe0a 100644 --- a/pollen-ui-riot-js/src/main/web/tag/admin/UserEditModal.tag.html +++ b/pollen-ui-riot-js/src/main/web/tag/admin/UserEditModal.tag.html @@ -28,7 +28,15 @@ require("../components/UserEmailAddressList.tag.html"); type="success" onsubmit={save}> <div class="modal-content"> - <div class="column"> + <div class="column avatar"> + <div class="user-avatar"> + <Avatar avatar="{parent.opts.user.avatar}" name={parent.opts.user && parent.opts.user.name || ""} rounded="true"/> + </div> + <button if="{parent.opts.user.avatar}" + onclick="{parent.deleteAvatar}" + class="c-button c-button--error"><i class="fa fa-trash"></i> {parent.__.deleteAvatar}</button> + </div> + <div class="column user-info"> <div class="o-form-element"> <label class="c-label" for="name">{parent.__.name}</label> <input type="text" @@ -74,7 +82,7 @@ require("../components/UserEmailAddressList.tag.html"); </label> </div> </div> - <UserEmailAddressList class="column" user="{parent.opts.user}" admin="{true}"/> + <UserEmailAddressList class="column email-addresses" user="{parent.opts.user}" admin="{true}"/> </div> </Modal> @@ -113,6 +121,18 @@ require("../components/UserEmailAddressList.tag.html"); }); }; + this.deleteAvatar = e => { + this.confirm(this.__.deleteAvatarMessage).then((confirm) => { + if (!confirm) { + return Promise.reject(); + } + return userService.deleteAvatar(this.opts.user.id); + }).then(result => { + this.opts.user.avatar = null; + this.update(); + }); + }; + </script> <style> .modal-content { @@ -122,11 +142,31 @@ require("../components/UserEmailAddressList.tag.html"); .modal-content .column { padding: 10px; + margin: 0 10px; + } + + .column.avatar { + min-width: 100px; + } + + .column.user-info { + min-width: 250px; + } + + .column.email-addresses { + min-width: 350px; } date-picker { display: inherit; } + + .user-avatar { + width: 100px; + height: 100px; + font-size: 3em; + margin: 20px 20px 0 0; + } </style> </UserEditModal> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.