]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4758 Use modal windows in Users pages
authorstephenbroyer <stephen.broyer@sonarsource.com>
Wed, 16 Oct 2013 09:53:41 +0000 (11:53 +0200)
committerstephenbroyer <stephen.broyer@sonarsource.com>
Fri, 18 Oct 2013 07:57:35 +0000 (09:57 +0200)
(delete user)

sonar-server/src/main/webapp/WEB-INF/app/controllers/users_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/users/_delete_form.html.erb [new file with mode: 0644]
sonar-server/src/main/webapp/WEB-INF/app/views/users/index.html.erb

index 1d42a422405aa7e6a25f5bbb7fa32972031dbdc1..b4a0f071e05d2baa8898cc2c7d45aa871a88a941 100644 (file)
@@ -163,21 +163,33 @@ class UsersController < ApplicationController
     end
   end
 
+  def delete_form
+    user = User.find(params[:id])
+    if user
+      @user=user
+      render :partial => 'users/delete_form'
+    else
+      redirect_to(:action => 'index', :id => nil)
+    end
+  end
+
   def destroy
     begin
       user = User.find(params[:id])
+      @user =user
       Api.users.deactivate(user.login)
       flash[:notice] = 'User is deleted.'
+      render :text => 'ok', :status => 200
     rescue NativeException => exception
+      @errors = []
       if exception.cause.java_kind_of? Java::OrgSonarServerExceptions::HttpException
         error = exception.cause
-        flash[:error] = (error.getMessage ? error.getMessage : Api::Utils.message(error.l10nKey, :params => error.l10nParams.to_a))
-      else
-        flash[:error] = 'Error when deleting this user.'
-      end
+        @errors = (error.getMessage ? error.getMessage : Api::Utils.message(error.l10nKey, :params => error.l10nParams.to_a))
+       else
+        @errors << 'Error when deleting this user.'
+       end
+      render :partial => 'users/delete_form',:status => 400
     end
-
-    redirect_to(:action => 'index', :id => nil)
   end
 
   def select_group
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/users/_delete_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/users/_delete_form.html.erb
new file mode 100644 (file)
index 0000000..aafa4a3
--- /dev/null
@@ -0,0 +1,29 @@
+<form action="<%= ApplicationController.root_context -%>/users/destroy/<%= @user.id -%>" method="POST" id="user_form">
+  <fieldset>
+      <div class="modal-head">
+          <h2>Delete user &nbsp;<%= @user.login %></h2>
+      </div>
+      <div class="modal-body">
+          <% if @errors
+               @errors.each do |error|
+          %>
+              <p class="error"><%= h error -%></p>
+            <% end
+               end
+            %>
+          <div class="modal-field">
+              <input type="hidden" name="id" value="<%= @user.id -%>"/>
+          </div>
+          <div class="modal-field">
+              Warning : are you sure to delete this user?
+          </div>
+      </div>
+      <div class="modal-foot">
+          <%= submit_tag 'Delete' %>
+          <%= link_to 'Cancel', { :controller => 'users', :action => 'index'}, { :class => 'action' } %><br/>
+      </div>
+  </fieldset>
+</form>
+<script>
+  $j("#user_form").modalForm();
+</script>
\ No newline at end of file
index dd6cee25cf09fbf986c138e3c24b39d335865b14..ff2a1450ca778e53e1ceb6657877910418377080 100644 (file)
@@ -36,8 +36,7 @@
                 &nbsp;
                <%= link_to "Change password", { :id => user.id, :action => 'change_password_form'}, {:id => "change-password-#{u user.login}", :class => 'open-modal link-action'} %>
                 &nbsp;
-                <%= link_to "Delete", {:action => 'destroy', :id => user.id}, {:confirm => "Warning : are you sure to delete this user?", :method => 'delete',
-                                                                               :id => "delete-#{u user.login}", :class => 'link-action link-red'} %>
+                <a id="delete-<%= user.name -%>" class="open-modal  link-action link-red" href="<%=ApplicationController.root_context-%>/users/delete_form/<%= user.id -%>">Delete</a>
               </td>
             </tr>
           <% end %>