Bläddra i källkod

HUE-6312 [useradmin] Display errors from form submission

Romain Rigaux 8 år sedan
förälder
incheckning
d86fb6f

+ 17 - 12
apps/useradmin/src/useradmin/templates/edit_user.mako

@@ -23,11 +23,14 @@ from useradmin.views import is_user_locked_out
 %>
 
 <%namespace name="layout" file="layout.mako" />
+
 %if not is_embeddable:
 ${ commonheader(_('Hue Users'), "useradmin", user, request) | n,unicode }
 %endif
+
 ${ layout.menubar(section='users') }
 
+
 <div id="editUserComponents" class="container-fluid">
   <div class="card card-small">
     % if username:
@@ -74,20 +77,20 @@ ${ layout.menubar(section='users') }
         ${layout.render_field(form["ensure_home_directory"])}
         </div>
         <div id="step2" class="stepDetails hide">
-        % if "first_name" in form.fields:
-                  ${layout.render_field(form["first_name"])}
-                  ${layout.render_field(form["last_name"])}
-                % endif
+          % if "first_name" in form.fields:
+            ${layout.render_field(form["first_name"])}
+            ${layout.render_field(form["last_name"])}
+          % endif
 
-                ${layout.render_field(form["email"])}
+          ${layout.render_field(form["email"])}
 
-                %if request.user.username == username:
-                  ${layout.render_field(form["language"])}
-                % endif
+          %if request.user.username == username:
+            ${layout.render_field(form["language"])}
+          % endif
 
-                % if user.is_superuser:
-                  ${layout.render_field(form["groups"])}
-                % endif
+          % if user.is_superuser:
+            ${layout.render_field(form["groups"])}
+          % endif
         </div>
       % if user.is_superuser:
         <div id="step3" class="stepDetails hide">
@@ -140,7 +143,9 @@ $(document).ready(function(){
   $editUserComponents.find('#editForm').ajaxForm({
     dataType:  'json',
     success: function(data) {
-      if (data && data.url){
+      if (data && data.status == -1) {
+        $.jHueNotify.info("${ _('Errors: ') }" + data.errors);
+      } else if (data && data.url) {
         huePubSub.publish('open.link', data.url);
         $.jHueNotify.info("${ _('User information updated correctly') }");
       }

+ 8 - 5
apps/useradmin/src/useradmin/views.py

@@ -386,11 +386,14 @@ def edit_user(request, username=None):
       'is_embeddable': is_embeddable
     })
   else:
-    return render('edit_user.mako', request, {
-      'form': form,
-      'username': username,
-      'is_embeddable': is_embeddable
-    })
+    if request.method == 'POST' and is_embeddable:
+      return JsonResponse({'status': -1, 'errors': [{'id': f.id_for_label, 'message': f.errors} for f in form if f.errors]})
+    else:
+      return render('edit_user.mako', request, {
+        'form': form,
+        'username': username,
+        'is_embeddable': is_embeddable
+      })
 
 
 def view_user(request, username):