diff --git a/app/controllers/extranet/personal_data_controller.rb b/app/controllers/extranet/personal_data_controller.rb index 11c7942b9a8f76fcbfd9b758627cdc7b46e88e07..62e632303346671c0cde885aa83b6cf6c37e7efe 100644 --- a/app/controllers/extranet/personal_data_controller.rb +++ b/app/controllers/extranet/personal_data_controller.rb @@ -1,19 +1,19 @@ class Extranet::PersonalDataController < Extranet::ApplicationController before_action :load_person - def show - # Superadmins don't have a person - breadcrumb - end - def edit breadcrumb - add_breadcrumb t('extranet.personal_data.edit') + add_breadcrumb t('extranet.account.edit_personal_data') end def update - @person.update person_params - redirect_to personal_data_path, notice: t('extranet.personal_data.updated') + if @person.update person_params + redirect_to account_path, notice: t('extranet.personal_data.updated') + else + render :edit + breadcrumb + add_breadcrumb t('extranet.account.edit_personal_data') + end end private @@ -35,6 +35,6 @@ class Extranet::PersonalDataController < Extranet::ApplicationController def breadcrumb super - add_breadcrumb t('extranet.personal_data.title'), personal_data_path + add_breadcrumb t('extranet.account.my'), account_path end end diff --git a/app/views/extranet/account/show.html.erb b/app/views/extranet/account/show.html.erb index 94c129d7fd2c1cb295128e1f5e0f96f98db65cd9..b733d61aa7a3caf37d5fe368d9d06f62c68db474 100644 --- a/app/views/extranet/account/show.html.erb +++ b/app/views/extranet/account/show.html.erb @@ -7,6 +7,52 @@ <div class="biography"> <p><%= @person&.biography %></p> </div> + + <div class="row"> + <div class="col-lg-6"> + <h5><%= University::Person.human_attribute_name('contacts') %></h5> + + <% [:phone_mobile, :phone_personal, :phone_professional].each do |attribute_name| %> + <% next if @person.public_send(attribute_name).blank? %> + <p> + <strong><%= University::Person.human_attribute_name(attribute_name) %> :</strong> + <%= @person.public_send(attribute_name) %> + </p> + <% end %> + + <% if @person.full_street_address.present? %> + <p> + <strong><%= University::Person.human_attribute_name("address") %> :</strong> + <%= @person.full_street_address %> + </p> + <% end %> + </div> + <div class="col-lg-6"> + <h5><%= University::Person.human_attribute_name('socials') %></h5> + + <% if @person.url.present? %> + <p> + <strong><%= University::Person.human_attribute_name("url") %> :</strong> + <%= link_to @person.url, @person.url %> + </p> + <% end %> + + <% if @person.linkedin.present? %> + <p> + <strong><%= University::Person.human_attribute_name("linkedin") %> :</strong> + <%= link_to @person.linkedin, @person.linkedin %> + </p> + <% end %> + + <% if @person.twitter.present? %> + <p> + <strong><%= University::Person.human_attribute_name("twitter") %> :</strong> + <%= link_to @person.twitter, "https://twitter.com/#{@person.twitter}" %> + </p> + <% end %> + </div> + </div> + <div class="experiences"> <%= link_to University::Person::Experience.human_attribute_name('new'), new_experience_path, @@ -24,8 +70,8 @@ </div> <div class="col-md-3"> <div class="mb-4"> - <%= link_to t('extranet.account.edit'), edit_account_path, class: 'btn btn-primary' %> - <%= link_to t('extranet.account.logout'), destroy_user_session_path, method: :delete, class: 'btn text-danger' %> + <%= link_to t('extranet.account.edit'), edit_account_path, class: 'btn btn-primary mb-2' %> + <%= link_to t('extranet.account.edit_personal_data'), edit_personal_data_path, class: 'btn btn-primary' %> </div> <%= render 'extranet/persons/details', person: @person unless @person.nil? %> </div> diff --git a/app/views/extranet/application/_nav.html.erb b/app/views/extranet/application/_nav.html.erb index e84721e8793a71c857bf2a5f99128594af36591a..7496131f9fc3502ab05e34de6697a48d3a426a20 100644 --- a/app/views/extranet/application/_nav.html.erb +++ b/app/views/extranet/application/_nav.html.erb @@ -7,7 +7,21 @@ <%= t('extranet.menu') %> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="menu"> - <%= render_navigation context: :extranet %> + <ul class="navbar-nav"> + <li class="nav-item"><%= link_to University::Person::Alumnus.model_name.human(count: 2), university_persons_path, class: "nav-link" %></li> + <% if current_extranet.should_show_years? %> + <li class="nav-item"><%= link_to Education::AcademicYear.model_name.human(count: 2), education_academic_years_path, class: "nav-link" %></li> + <% end %> + <li class="nav-item"><%= link_to Education::Cohort.model_name.human(count: 2), education_cohorts_path, class: "nav-link" %></li> + <li class="nav-item"><%= link_to University::Organization.model_name.human(count: 2), university_organizations_path, class: "nav-link" %></li> + <li class="nav-item dropdown"> + <%= link_to current_user.to_s, "#", class: "nav-link dropdown-toggle", data: { "bs-toggle": "dropdown" }, aria: { expanded: false } %> + <ul class="dropdown-menu dropdown-menu-end"> + <li><%= link_to t('extranet.account.my'), account_path, class: "dropdown-item" %></li> + <li><%= link_to t('extranet.account.logout'), destroy_user_session_path, method: :delete, class: "dropdown-item" %></li> + </ul> + </li> + </ul> </div> </div> </nav> diff --git a/app/views/extranet/personal_data/show.html.erb b/app/views/extranet/personal_data/show.html.erb deleted file mode 100644 index 687b93f94eb579ba778dca3356e5ca12f336f77d..0000000000000000000000000000000000000000 --- a/app/views/extranet/personal_data/show.html.erb +++ /dev/null @@ -1,56 +0,0 @@ -<% content_for :title, @person %> - -<%= render 'extranet/persons/header', person: @person unless @person.nil? %> - -<div class="row"> - <div class="col-md-9"> - <div class="biography"> - <p><%= @person&.biography %></p> - - <h5><%= University::Person.human_attribute_name('contacts') %></h5> - - <% [:phone_mobile, :phone_personal, :phone_professional].each do |attribute_name| %> - <% next if @person.public_send(attribute_name).blank? %> - <p> - <strong><%= University::Person.human_attribute_name(attribute_name) %> :</strong> - <%= @person.public_send(attribute_name) %> - </p> - <% end %> - - <% if @person.full_street_address.present? %> - <p> - <strong><%= University::Person.human_attribute_name("address") %> :</strong> - <%= @person.full_street_address %> - </p> - <% end %> - - <h5><%= University::Person.human_attribute_name('socials') %></h5> - - <% if @person.url.present? %> - <p> - <strong><%= University::Person.human_attribute_name("url") %> :</strong> - <%= link_to @person.url, @person.url %> - </p> - <% end %> - - <% if @person.linkedin.present? %> - <p> - <strong><%= University::Person.human_attribute_name("linkedin") %> :</strong> - <%= link_to @person.linkedin, @person.linkedin %> - </p> - <% end %> - - <% if @person.twitter.present? %> - <p> - <strong><%= University::Person.human_attribute_name("twitter") %> :</strong> - <%= link_to @person.twitter, "https://twitter.com/#{@person.twitter}" %> - </p> - <% end %> - </div> - </div> - <div class="col-md-3"> - <div class="mb-4"> - <%= link_to t('extranet.personal_data.edit'), edit_personal_data_path, class: 'btn btn-primary' %> - </div> - </div> -</div> \ No newline at end of file diff --git a/config/extranet_navigation.rb b/config/extranet_navigation.rb deleted file mode 100644 index 507a13af41d47f3d6a8883445075413af5a3c811..0000000000000000000000000000000000000000 --- a/config/extranet_navigation.rb +++ /dev/null @@ -1,30 +0,0 @@ -SimpleNavigation::Configuration.run do |navigation| - navigation.renderer = ::SimpleNavigation::BootstrapRenderer - navigation.auto_highlight = true - navigation.highlight_on_subpath = true - navigation.selected_class = 'active' - navigation.items do |primary| - primary.item :person, - University::Person::Alumnus.model_name.human(count: 2), - university_persons_path - primary.item :years, - Education::AcademicYear.model_name.human(count: 2), - education_academic_years_path if current_extranet.should_show_years? - primary.item :cohorts, - Education::Cohort.model_name.human(count: 2), - education_cohorts_path - primary.item :organizations, - University::Organization.model_name.human(count: 2), - university_organizations_path - primary.item :account, - current_user.to_s, - nil do |secondary| - secondary.item :account, - t('extranet.account.my'), - account_path - secondary.item :personal_data, - t('extranet.personal_data.title'), - personal_data_path - end - end -end diff --git a/config/locales/extranet/en.yml b/config/locales/extranet/en.yml index f723b913924a2a14c9cf2771cfa51687cccf2385..2e24e05fcb9bc22c6f56e8344a5d6f33fe7a531c 100644 --- a/config/locales/extranet/en.yml +++ b/config/locales/extranet/en.yml @@ -3,6 +3,7 @@ en: account: my: My account edit: Edit + edit_personal_data: Edit my personal data updated: Updated logout: Log out errors: @@ -18,6 +19,5 @@ en: organization: experiences: Alumni in this organization (%{count}) personal_data: - edit: Edit title: My personal data updated: Your personal data has been updated! diff --git a/config/locales/extranet/fr.yml b/config/locales/extranet/fr.yml index 1f95f17b54ce9530400306f9fd256b4b05962706..8ea70d0aef54e1956611b8e6e5d2b8effe1f4932 100644 --- a/config/locales/extranet/fr.yml +++ b/config/locales/extranet/fr.yml @@ -3,6 +3,7 @@ fr: account: my: Mon compte edit: Modifier + edit_personal_data: Modifier mes données personnelles updated: Mise à jour effectuée logout: Déconnexion errors: diff --git a/config/routes/extranet.rb b/config/routes/extranet.rb index 4e8a53424d6204e60b6eec43502cdbf3621eaa6c..2b49444cb43c26e6d315edb6eeee77fe8b8b0104 100644 --- a/config/routes/extranet.rb +++ b/config/routes/extranet.rb @@ -13,7 +13,6 @@ patch 'account' => 'extranet/account#update' scope :account do resources :experiences, controller: 'extranet/experiences', except: [:index, :show] end -get 'personal_data' => 'extranet/personal_data#show', as: :personal_data get 'personal_data/edit' => 'extranet/personal_data#edit', as: :edit_personal_data -patch 'personal_data' => 'extranet/personal_data#update' +patch 'personal_data' => 'extranet/personal_data#update', as: :personal_data root to: 'extranet/home#index'