diff --git a/app/assets/javascripts/controllers/admin/settings.js.erb b/app/assets/javascripts/controllers/admin/settings.js.erb index 2c11d0d31..71624758a 100644 --- a/app/assets/javascripts/controllers/admin/settings.js.erb +++ b/app/assets/javascripts/controllers/admin/settings.js.erb @@ -12,8 +12,8 @@ */ 'use strict'; -Application.Controllers.controller('SettingsController', ['$scope', '$uibModal', 'Setting', 'growl', 'settingsPromise', 'privacyDraftsPromise', 'cgvFile', 'cguFile', 'logoFile', 'logoBlackFile', 'faviconFile', 'profileImageFile', 'CSRF', '_t', - function ($scope, $uibModal, Setting, growl, settingsPromise, privacyDraftsPromise, cgvFile, cguFile, logoFile, logoBlackFile, faviconFile, profileImageFile, CSRF, _t) { +Application.Controllers.controller('SettingsController', ['$scope', '$filter', '$uibModal', 'Setting', 'growl', 'settingsPromise', 'privacyDraftsPromise', 'cgvFile', 'cguFile', 'logoFile', 'logoBlackFile', 'faviconFile', 'profileImageFile', 'CSRF', '_t', + function ($scope, $filter, $uibModal, Setting, growl, settingsPromise, privacyDraftsPromise, cgvFile, cguFile, logoFile, logoBlackFile, faviconFile, profileImageFile, CSRF, _t) { /* PUBLIC SCOPE */ // timepickers steps configuration @@ -191,11 +191,16 @@ Application.Controllers.controller('SettingsController', ['$scope', '$uibModal', // reset history $scope.privacyDraftsHistory = []; data.setting.history.forEach(function (draft) { - $scope.privacyDraftsHistory.push({ id: draft.id, name: _t('settings.privacy.draft_from_USER_DATE', { USER: draft.user, DATE: draft.created_at }), content: draft.value }); + $scope.privacyDraftsHistory.push({ id: draft.id, name: _t('settings.privacy.draft_from_USER_DATE', { USER: draft.user.name, DATE: draft.created_at }), content: draft.value }); }); if (type === 'privacy_draft') { - // FIXME - $scope.privacyPolicy.version = data.setting.history[data.setting.history.length - 1].id; + const orderedHistory = $filter('orderBy')(data.setting.history, 'created_at'); + const last = orderedHistory[orderedHistory.length - 1]; + if (last) { + $scope.privacyPolicy.version = last.id; + } + } else { + $scope.privacyPolicy.version = null; } }) }); diff --git a/app/assets/stylesheets/app.components.scss b/app/assets/stylesheets/app.components.scss index f04f147b6..d58a57afb 100644 --- a/app/assets/stylesheets/app.components.scss +++ b/app/assets/stylesheets/app.components.scss @@ -420,6 +420,10 @@ } + .last-update { + text-align: right; + margin-bottom: 2em; + } } diff --git a/app/assets/templates/shared/privacy.html.erb b/app/assets/templates/shared/privacy.html.erb index 6e83c0f2c..b38c22f86 100644 --- a/app/assets/templates/shared/privacy.html.erb +++ b/app/assets/templates/shared/privacy.html.erb @@ -9,6 +9,10 @@
+
+ {{ 'privacy.last_update' }} + {{ privacyBody.last_update | amDateFormat:'LL' }} +
diff --git a/app/models/setting.rb b/app/models/setting.rb index 266c8bb1a..3339d0168 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -53,6 +53,11 @@ class Setting < ActiveRecord::Base last_value&.value end + def last_update + last_value = history_values.order(HistoryValue.arel_table['created_at'].desc).first + last_value&.created_at + end + def value=(val) admin = User.admins.first save && history_values.create(user: admin, value: val) diff --git a/app/views/api/settings/_setting.json.jbuilder b/app/views/api/settings/_setting.json.jbuilder index f98501c28..fb0ab9146 100644 --- a/app/views/api/settings/_setting.json.jbuilder +++ b/app/views/api/settings/_setting.json.jbuilder @@ -1 +1 @@ -json.extract! setting, :name, :value +json.extract! setting, :name, :value, :last_update diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index a189fcd97..257814983 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -123,6 +123,7 @@ en: privacy: title: "Privacy policy" dpo: "Data protection officer" + last_update: "Last update," home: # home page diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index c11cf5bef..b59f42f38 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -122,6 +122,7 @@ es: privacy: title: "Política de privacidad" dpo: "Oficial de protección de datos" + last_update: "Última actualización," home: # home page diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 3e3b7c757..888f9b86a 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -123,6 +123,7 @@ fr: privacy: title: "Politique de confidentialité" dpo: "Délégué à la protection des données" + last_update: "Dernière mise à jour," home: # page d'accueil diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index aa37be9e2..936c986e9 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -123,6 +123,7 @@ pt: privacy: title: "Política de privacidade" dpo: "Oficial de proteção de dados" + last_update: "Última atualização," home: # home page