polish install tool IU
[teamcity/dotNetPackagesSupport.git] / nuget-server / src / jetbrains / buildServer / nuget / server / toolRegistry / tab / InstallToolController.java
index 7ef2424dc477292cdcc45f78b28c67c2c761fba7..d580eb7493e51012f625804b20f96bf376744bf1 100644 (file)
 \r
 package jetbrains.buildServer.nuget.server.toolRegistry.tab;\r
 \r
-import jetbrains.buildServer.controllers.AuthorizationInterceptor;\r
-import jetbrains.buildServer.controllers.BaseFormXmlController;\r
-import jetbrains.buildServer.controllers.BasePropertiesBean;\r
-import jetbrains.buildServer.controllers.RequestPermissionsChecker;\r
+import com.intellij.openapi.diagnostic.Logger;\r
+import jetbrains.buildServer.controllers.*;\r
+import jetbrains.buildServer.nuget.server.toolRegistry.NuGetTool;\r
 import jetbrains.buildServer.nuget.server.toolRegistry.NuGetToolManager;\r
 import jetbrains.buildServer.serverSide.auth.AccessDeniedException;\r
 import jetbrains.buildServer.serverSide.auth.AuthorityHolder;\r
+import jetbrains.buildServer.util.StringUtil;\r
 import jetbrains.buildServer.web.openapi.PluginDescriptor;\r
 import jetbrains.buildServer.web.openapi.WebControllerManager;\r
 import org.jdom.Element;\r
@@ -31,6 +31,8 @@ import org.springframework.web.servlet.ModelAndView;
 \r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
 import java.util.HashMap;\r
 \r
 /**\r
@@ -38,6 +40,8 @@ import java.util.HashMap;
  * Date: 11.08.11 12:12\r
  */\r
 public class InstallToolController extends BaseFormXmlController {\r
+  private static final Logger LOG = Logger.getInstance(InstallToolController.class.getName());\r
+\r
   private final String myPath;\r
   private final NuGetToolManager myToolsManager;\r
   private final PluginDescriptor myDescriptor;\r
@@ -67,9 +71,19 @@ public class InstallToolController extends BaseFormXmlController {
 \r
   @Override\r
   protected ModelAndView doGet(HttpServletRequest request, HttpServletResponse response) {\r
-    ModelAndView mv = new ModelAndView(myDescriptor.getPluginResourcesPath("tool/installTool-show.jsp"));\r
+    final Collection<NuGetTool> availableTools = new ArrayList<NuGetTool>();\r
 \r
-    mv.getModelMap().put("available", myToolsManager.getAvailableTools());\r
+    try {\r
+      availableTools.addAll(myToolsManager.getAvailableTools());\r
+    } catch (Exception e) {\r
+      ModelAndView mv = new ModelAndView(myDescriptor.getPluginResourcesPath("tool/installTool-error.jsp"));\r
+      mv.getModel().put("errorText", e.getMessage());\r
+      LOG.warn("Failed to fetch NuGet.Commandline package versions. " + e.getMessage(), e);\r
+      return mv;\r
+    }\r
+\r
+    ModelAndView mv = new ModelAndView(myDescriptor.getPluginResourcesPath("tool/installTool-show.jsp"));\r
+    mv.getModelMap().put("available", availableTools);\r
     mv.getModelMap().put("propertiesBean", new BasePropertiesBean(new HashMap<String, String>()));\r
 \r
     return mv;\r
@@ -77,6 +91,14 @@ public class InstallToolController extends BaseFormXmlController {
 \r
   @Override\r
   protected void doPost(HttpServletRequest request, HttpServletResponse response, Element xmlResponse) {\r
+    final String toolId = request.getParameter("prop:toolId");\r
+    if (StringUtil.isEmptyOrSpaces(toolId)) {\r
+      ActionErrors ae = new ActionErrors();\r
+      ae.addError("toolId", "Select NuGet.Commandline package version to install");\r
+      ae.serialize(xmlResponse);\r
+      return;\r
+    }\r
 \r
+    myToolsManager.installTool(toolId);\r
   }\r
 }\r