From 7d97003b35a9eba128a3ff281ec37e9907e4358a Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Mon, 28 Feb 2022 08:04:45 +0100
Subject: [PATCH] loca wip

---
 app/views/admin/application/_nav.html.erb     | 15 ++++--
 .../organization_chart/_edit.html.erb         | 52 ++++++++++++-------
 config/admin_navigation.rb                    |  2 +-
 config/locales/communication/en.yml           | 13 +++++
 config/locales/communication/fr.yml           | 13 +++++
 5 files changed, 73 insertions(+), 22 deletions(-)

diff --git a/app/views/admin/application/_nav.html.erb b/app/views/admin/application/_nav.html.erb
index 471a87ba4..53f822a2f 100644
--- a/app/views/admin/application/_nav.html.erb
+++ b/app/views/admin/application/_nav.html.erb
@@ -7,9 +7,18 @@
 
     <footer class="small my-5">
       <hr>
-      <%= link_to t('terms_of_service'), t('terms_of_service_url'), target: '_blank', rel: 'noreferrer', class: 'sidebar-link' %>
-      <%= link_to t('privacy_policy'), t('privacy_policy_url'), target: '_blank', rel: 'noreferrer', class: 'sidebar-link' %>
-      <%= link_to t('cookies_policy'), t('cookies_policy_url'), target: '_blank', rel: 'noreferrer', class: 'sidebar-link' %>
+      <%
+      [
+        :terms_of_service,
+        :privacy_policy,
+        :cookies_policy
+      ].each do |term| %>
+        <%= link_to t("#{term}"),
+                    t("#{term}_url"),
+                    target: '_blank',
+                    rel: 'noreferrer',
+                    class: 'sidebar-link' %>
+      <% end %>
       <%= link_to t('cookies_consent_choice'), '', class: 'sidebar-link js-gdpr__cookie_consent__display_again' %>
     </footer>
   </div>
diff --git a/app/views/admin/communication/blocks/templates/organization_chart/_edit.html.erb b/app/views/admin/communication/blocks/templates/organization_chart/_edit.html.erb
index 3d0b35626..9a078be39 100644
--- a/app/views/admin/communication/blocks/templates/organization_chart/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/organization_chart/_edit.html.erb
@@ -1,29 +1,45 @@
 <a  class="<%= button_classes('mb-4') %>"
     v-on:click="data.elements.push({id: '', role: ''})">
-    Add person
+    <%= t '.add_person' %>
 </a>
 
-<draggable :list="data.elements" class="list-group">
-  <div v-for="person in data.elements" class="list-group-item">
-    <div class="row">
-      <div class="col-md-1">
-        <a class="btn ps-0">
+<draggable :list="data.elements" class="list-group" handle=".dragHandle">
+  <div v-for="(person, index) in data.elements" class="list-group-item">
+    <div class="d-flex">
+      <div>
+        <a class="btn ps-0 dragHandle" title="<%= t '.drag_title' %>">
           <i class="fa fa-bars handle"></i>
         </a>
       </div>
-      <div class="col-md-5">
-        <select class="form-select select" v-model="person.id">
-          <% current_university.people.ordered.each_with_index do |person, index| %>
-          <option value="<%= person.id %>"><%= person.last_name %>, <%= person.first_name %></option>
-          <% end %>
-        </select>
+      <div class="flex-fill">
+        <div class="row">
+          <div class="col-md-6">
+            <label  class="form-label visually-hidden"
+                    :for="'person-' + index + '-name'"><%= t '.person_label' %></label>
+            <select :id="'person-' + index + '-name'"
+                    class="form-select select"
+                    v-model="person.id">
+              <option value="" disabled><%= t '.person_placeholder' %></option>
+              <% current_university.people.ordered.each_with_index do |person, index| %>
+              <option value="<%= person.id %>"><%= person.last_name %>, <%= person.first_name %></option>
+              <% end %>
+            </select>
+          </div>
+          <div class="col-md-6">
+            <label  class="form-label visually-hidden"
+                    :for="'person-' + index + '-role'"><%= t '.role_label' %></label>
+            <input  :id="'person-' + index + '-role'"
+                    class="form-control"
+                    type="text"
+                    v-model="person.role"
+                    placeholder="<%= t '.role_placeholder' %>">
+          </div>
+        </div>
       </div>
-      <div class="col-md-5">
-        <input class="form-control" type="text" v-model="person.role" placeholder="Type role here">
-      </div>
-      <div class="col-md-1 text-end">
-        <a  class="btn btn-sm btn-danger mt-1"
-            v-on:click="data.elements.splice(data.elements.indexOf(person), 1)">
+      <div>
+        <a  class="btn btn-sm btn-danger ms-3"
+            v-on:click="data.elements.splice(data.elements.indexOf(person), 1)"
+            title="<%= t '.delete_title' %>">
             <i class="fas fa-times"></i>
         </a>
       </div>
diff --git a/config/admin_navigation.rb b/config/admin_navigation.rb
index 7ba64197b..b4d9e9996 100644
--- a/config/admin_navigation.rb
+++ b/config/admin_navigation.rb
@@ -4,7 +4,7 @@ SimpleNavigation::Configuration.run do |navigation|
   navigation.highlight_on_subpath = true
   navigation.selected_class = 'active'
   navigation.items do |primary|
-    primary.item :dashboard, t('dashboard'), admin_root_path, { icon: 'tachometer-alt', highlights_on: /admin$/ }
+    primary.item :dashboard, t('admin.dashboard'), admin_root_path, { icon: 'tachometer-alt', highlights_on: /admin$/ }
 
     if can?(:read, User) || can?(:read, University::Person)
       primary.item :university, University.model_name.human, nil, { kind: :header }
diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml
index 086ba6cf7..a86927cdb 100644
--- a/config/locales/communication/en.yml
+++ b/config/locales/communication/en.yml
@@ -105,6 +105,19 @@ en:
         text: Text
         title: Title
         website: Website
+  admin:
+    communication:
+      blocks:
+        templates:
+          organization_chart:
+            edit:
+              add_person: Add person
+              person_label: Person
+              person_placeholder: Select the person
+              role_label: Role
+              role_placeholder: Enter person's role
+              drag_title: Drag and drop to organize persons
+              delete_title: Remove person
   communication:
     authors:
       one: Author
diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml
index e8671cbb3..2717f3840 100644
--- a/config/locales/communication/fr.yml
+++ b/config/locales/communication/fr.yml
@@ -105,6 +105,19 @@ fr:
         text: Texte
         title: Titre
         website: Site Web
+  admin:
+    communication:
+      blocks:
+        templates:
+          organization_chart:
+            edit:
+              add_person: Ajouter une personne
+              person_label: Personne
+              person_placeholder: Choisir le personne
+              role_label: Rôle
+              role_placeholder: Indiquer le rôle de la personne
+              drag_title: Glisser-déposer pour organiser les personnes
+              delete_title: Enlever la personne
   communication:
     authors:
       one: Auteur·rice
-- 
GitLab