Skip to content

Commit

Permalink
Fix detection of checkbox change in utilisateur profil edit
Browse files Browse the repository at this point in the history
  • Loading branch information
touilleMan committed Oct 21, 2022
1 parent 8a9c1a8 commit cd49c79
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
6 changes: 2 additions & 4 deletions app/scripts/views/utilisateur/show_utilisateur.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@ <h3>{{utilisateur.pseudo}}</h3>
<div class="checkbox">
<div class="col-sm-1"></div>
<label>
<input type="checkbox" ng-model="utilisateur.professionnel" ng-value="true"
ng-checked="utilisateur.professionnel" ng-disabled="readOnly">
<input type="checkbox" ng-model="utilisateur.professionnel" ng-disabled="readOnly">
Je participe à titre professionnel
</label>
</div>
Expand All @@ -98,8 +97,7 @@ <h3>{{utilisateur.pseudo}}</h3>

<div class="checkbox" ng-if="isAdmin">
<label>
<input type="checkbox" ng-model="utilisateur.donnees_publiques" ng-value="true"
ng-checked="utilisateur.donnees_publiques" ng-disabled="readOnly">
<input type="checkbox" ng-model="utilisateur.donnees_publiques" ng-disabled="readOnly">
Observations publiées sous license publique
</label>
</div>
Expand Down
13 changes: 9 additions & 4 deletions app/scripts/views/utilisateur/utilisateur_ctrl.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ angular.module('utilisateurViews', ['ngRoute', 'xin_listResource', 'xin_tools',
$scope.displayCharte = -> $('#charteModal').modal()
userResource = undefined
origin_role = undefined
origin_professionnel = undefined
origin_donnees_publiques = undefined
userBackend = undefined
if $routeParams.userId == 'moi'
userBackend = Backend.one('moi')
Expand All @@ -66,6 +68,8 @@ angular.module('utilisateurViews', ['ngRoute', 'xin_listResource', 'xin_tools',
userResource = utilisateur
$scope.utilisateur = utilisateur.plain()
origin_role = $scope.utilisateur.role
origin_professionnel = $scope.utilisateur.professionnel
origin_donnees_publiques = $scope.utilisateur.donnees_publiques
session.getUserPromise().then (user) ->
$scope.isSelf = user._id == utilisateur._id
$scope.isAdmin = user.role == 'Administrateur'
Expand Down Expand Up @@ -97,12 +101,13 @@ angular.module('utilisateurViews', ['ngRoute', 'xin_listResource', 'xin_tools',
for key, value of $scope.userForm
if key.charAt(0) != '$' and value.$dirty
payload[key] = $scope.utilisateur[key]
# Special handling for radio buttons
for field in ['professionnel', 'donnees_publiques']
payload[field] = $scope.utilisateur[field]
# Special handling for select
# Special handling for select & checkbox
if $scope.utilisateur.role != origin_role
payload.role = $scope.utilisateur.role
if $scope.utilisateur.professionnel != origin_professionnel
payload.professionnel = $scope.utilisateur.professionnel
if $scope.utilisateur.donnees_publiques != origin_donnees_publiques
payload.donnees_publiques = $scope.utilisateur.donnees_publiques
userBackend.patch(payload).then(
-> $route.reload()
(error) -> $scope.saveError = true
Expand Down

0 comments on commit cd49c79

Please sign in to comment.