X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c424885353afb06ac835e6d44be2d838d193d49f..42c20b25e1325124b88e3b9b285544dc41122b56:/apps/workbench/app/views/users/profile.html.erb diff --git a/apps/workbench/app/views/users/profile.html.erb b/apps/workbench/app/views/users/profile.html.erb index 6af3662626..caa22bda11 100644 --- a/apps/workbench/app/views/users/profile.html.erb +++ b/apps/workbench/app/views/users/profile.html.erb @@ -1,9 +1,22 @@ -<% - profile_config = Rails.configuration.user_profile_form_fields - this_user = User.limit(1).where(uuid: current_user.uuid).first - user_prefs = User.limit(1).where(uuid: current_user.uuid).first.prefs - current_user_profile = user_prefs[:profile] if user_prefs +<%# Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: AGPL-3.0 %> + +<% + profile_config = [] + Rails.configuration.Workbench.UserProfileFormFields.each do |k, v| + r = v.dup + r["Key"] = k + profile_config << r + end + profile_config.sort_by! { |v| v["Position"] } + + current_user_profile = current_user.prefs[:profile] + show_save_button = false + + profile_message = Rails.configuration.Workbench.UserProfileFormMessage %> +
@@ -12,80 +25,94 @@
-
- <% profile_message = 'You can manage your profile using this page. Any feilds in red are required and missing. - Please fill in those fields before you can accesse Arvados Workbench.' - profile_config.andand.each do |entry| - if entry['message'] - profile_message = entry['message'] - break - end - end %> -

<%=profile_message%>


-
-
- <%= form_tag update_profile_path, {method: 'put', id: 'save_profile_form', name: 'save_profile_form', class: 'form-horizontal', remote: true} do %> + <% if !missing_required_profile? && params[:offer_return_to] %> +
+ <% if current_user.prefs[:getting_started_shown] %> +

Thank you for filling in your profile. <%= link_to 'Back to work!', params[:offer_return_to], class: 'btn btn-sm btn-primary' %>

+ <% else %> +

Thank you for filling in your profile. <%= link_to 'Get started', params[:offer_return_to], class: 'btn btn-sm btn-primary' %>

+ <% end %> +
+ <% else %> +
+

<%=raw(profile_message)%>

+
+ <% end %> + + <%= form_for current_user, html: {id: 'save_profile_form', name: 'save_profile_form', class: 'form-horizontal'} do %> + <%= hidden_field_tag :offer_return_to, params[:offer_return_to] %> + <%= hidden_field_tag :return_to, profile_user_path(current_user.uuid, offer_return_to: params[:offer_return_to]) %>
- -
+ +

<%=current_user.email%>

- -
+ +

<%=current_user.first_name%>

- -
+ +

<%=current_user.last_name%>

-
-

<%=this_user.andand.identity_url%>

+
+

<%=current_user.andand.identity_url%>

- <% profile_config.andand.each do |entry| %> - <% if entry['key'] %> + <% profile_config.kind_of?(Array) && profile_config.andand.each do |entry| %> + <% if entry[:Key] %> <% - label = entry['required'] ? '* ' : '' - label += entry['form_field_title'] - value = current_user_profile[entry['key'].to_sym] if current_user_profile + show_save_button = true + label = entry[:Required] ? '* ' : '' + label += entry[:FormFieldTitle] + value = current_user_profile[entry[:Key].to_sym] if current_user_profile %>
- - <% if entry['type'] == 'select' %> -
- + <% entry[:Options].each do |option, _| %> + <% option = option.to_s %> <% end %>
<% else %> -
- +
+
<% end %>
<% end %> <% end %> -
-
- + <%# If the user has other prefs, we need to preserve them %> + <% current_user.prefs.each do |key, value| %> + <% if key != :profile %> + + <% end %> + <% end %> + + <% if show_save_button %> +
+
+ +
-
+ <% end %> <% end %> -