refs #6279
[arvados.git] / apps / workbench / app / views / users / profile.html.erb
index 906ca48b75afea72546c3b04c3deff18f2803601..4fefa821caafb88be0a7647112514f98fa7c55f8 100644 (file)
@@ -3,26 +3,7 @@
     current_user_profile = current_user.prefs[:profile]
     show_save_button = false
 
-    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.'
-              
-    missing_required_profile = false
-    profile_config.kind_of?(Array) && profile_config.andand.each do |entry|
-      if entry['message']
-        profile_message = entry['message']
-      else    # key
-        if !current_user_profile ||
-           !current_user_profile[entry['key'].to_sym] ||
-           current_user_profile[entry['key'].to_sym].empty?
-          missing_required_profile = true
-        end
-      end
-    end
-
-    profile_url = '/users/'+current_user.uuid+'/profile'
-    target = request.url.partition('?target=')[-1]
-    target = request.url if target.empty?
-    return_to_url = (request.url.ends_with? profile_url) ? profile_url : profile_url+'?target='+target
+    profile_message = Rails.configuration.user_profile_form_message
 %>
 
 <div>
           </h4>
         </div>
         <div class="panel-body">
-          <% if !missing_required_profile && params.andand.keys.include?('target') %>
-            <div class="rounded" style="border-width: 1px; border-style: dotted; border-color: lightgray;">
-              <p style="margin: 8px;">Thank you for filling in your profile. If you are done updating your profile, 
-                 you can now access Arvados Workbench by clicking on this button.
-                  <form action="<%=target%>">
-                    <input style="margin-left: 8px;" class="btn btn-primary" type="submit" value="Take me to my page">
-                  </form>
-              </p>
+          <% if !missing_required_profile? && params[:offer_return_to] %>
+            <div class="alert alert-success">
+              <% if current_user.prefs[:getting_started_shown] %>
+                <p>Thank you for filling in your profile. <%= link_to 'Back to work!', params[:offer_return_to], class: 'btn btn-sm btn-primary' %></p>
+              <% else %>
+                <p>Thank you for filling in your profile. <%= link_to 'Get started', params[:offer_return_to], class: 'btn btn-sm btn-primary' %></p>
+              <% end %>
             </div>
           <% else %>
-            <div class="rounded" style="border-width: 1px; border-style: dotted; border-color: lightgray;">
-              <p style="margin: 8px;"> <%=profile_message%> </p>
+            <div class="alert alert-info">
+              <p><%=raw(profile_message)%></p>
             </div>
           <% end %>
 
-          <div class="rounded" style="border-width: 1px; border-style: dotted; border-color: lightgray;">
-            <%= form_tag "/users/#{current_user.uuid}", {method: 'patch', id: 'save_profile_form', name: 'save_profile_form', class: 'form-horizontal'} do %>
-              <%= hidden_field_tag :return_to, return_to_url %>
+            <%= 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]) %>
               <div class="form-group">
-                  <label for="email" class="col-sm-3 control-label"> Email </label>
-                  <div class="col-sm-9">
+                  <label for="email" class="col-sm-3 control-label"> E-mail </label>
+                  <div class="col-sm-8">
                     <p class="form-control-static" id="email" name="email"><%=current_user.email%></p>
                   </div>
               </div>
               <div class="form-group">
-                  <label for="first_name" class="col-sm-3 control-label"> First name </label>
-                  <div class="col-sm-9">
+                  <label for="first_name" class="col-sm-3 control-label"> First Name </label>
+                  <div class="col-sm-8">
                     <p class="form-control-static" id="first_name" name="first_name"><%=current_user.first_name%></p>
                   </div>
               </div>
               <div class="form-group">
-                  <label for="last_name" class="col-sm-3 control-label"> Last name </label>
-                  <div class="col-sm-9">
+                  <label for="last_name" class="col-sm-3 control-label"> Last Name </label>
+                  <div class="col-sm-8">
                     <p class="form-control-static" id="last_name" name="last_name"><%=current_user.last_name%></p>
                   </div>
               </div>
               <div class="form-group">
                   <label for="identity_url" class="col-sm-3 control-label"> Identity URL </label>
-                  <div class="col-sm-9">
+                  <div class="col-sm-8">
                     <p class="form-control-static" id="identity_url" name="identity_url"><%=current_user.andand.identity_url%></p>
                   </div>
               </div>
                 <% end %>
               <% end %>
 
+              <%# If the user has other prefs, we need to preserve them %>
+              <% current_user.prefs.each do |key, value| %>
+                <% if key != :profile %>
+                  <input type="hidden" name="user[prefs][:<%=key%>]" value="<%=value.to_json%>">
+                <% end %>
+              <% end %>
+
               <% if show_save_button %>
                 <div class="form-group">
-                  <div class="col-sm-offset-3 col-sm-9">
+                  <div class="col-sm-offset-3 col-sm-8">
                     <button type="submit" class="btn btn-primary">Save profile</button>
                   </div>
                 </div>
               <% end %>
             <% end %>
-          </div>
         </div>
     </div>
 </div>