changeset 30:c14e96398b62

presented symbol server url in UI
author Evgeniy.Koshkin
date Fri, 09 Aug 2013 16:06:34 +0400
parents 6ac3c2491e1a
children 48b3a2443fd6
files common/src/jetbrains/buildServer/symbols/SymbolsConstants.java server/resources/editSymbolsBuildFeatureParams.jsp server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java server/src/jetbrains/buildServer/symbols/IndexSymbolsBuildFeature.java
diffstat 4 files changed, 48 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/common/src/jetbrains/buildServer/symbols/SymbolsConstants.java	Thu Aug 08 19:08:42 2013 +0400
+++ b/common/src/jetbrains/buildServer/symbols/SymbolsConstants.java	Fri Aug 09 16:06:34 2013 +0400
@@ -6,4 +6,5 @@
 public class SymbolsConstants {
   public static final String BUILD_FEATURE_TYPE = "symbol-indexer";
   public static final String SERVER_URL_PARAMETER_NAME = "symbols.server-url";
+  public static final String APP_SYMBOLS = "app/symbols/";
 }
--- a/server/resources/editSymbolsBuildFeatureParams.jsp	Thu Aug 08 19:08:42 2013 +0400
+++ b/server/resources/editSymbolsBuildFeatureParams.jsp	Fri Aug 09 16:06:34 2013 +0400
@@ -1,2 +1,34 @@
 <%@ include file="/include-internal.jsp"%>
-<em>Symbols and sources indexing will be performed for all symbol files (.pdb) appeared among build artifacts.</em>
\ No newline at end of file
+
+<jsp:useBean id="isGuestEnabled" scope="request" type="java.lang.Boolean"/>
+<jsp:useBean id="publicFeedUrl" scope="request" type="java.lang.String" />
+<jsp:useBean id="actualServerUrl" scope="request" type="java.lang.String" />
+
+<table class="runnerFormTable">
+  <tr>
+    <td colspan="2">
+      <em>Symbols and sources indexing will be performed for all symbol files (.pdb) appeared among build artifacts.</em>
+    </td>
+  </tr>
+  <tr>
+    <th>Symbol Server URL:</th>
+    <td>
+      <c:choose>
+        <c:when test="${not isGuestEnabled}">
+          <div>Not available.</div>
+            <span class="smallNote">
+              Guest user is disabled.
+            </span>
+            <span class="smallNote">
+              You need to enable guest user login in TeamCity <a href="<c:url value="/admin/admin.html?item=auth"/>">Authentication Settings</a> for Symbol Server to work.
+            </span>
+        </c:when>
+        <c:otherwise>
+          <c:set var="url"><c:url value="${actualServerUrl}${publicFeedUrl}"/></c:set>
+          <div><a href="${url}">${url}</a></div>
+          <span class="smallNote">Use this URL in Visual Studio and WinDbg settings.</span>
+        </c:otherwise>
+      </c:choose>
+    </td>
+  </tr>
+</table>
\ No newline at end of file
--- a/server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java	Thu Aug 08 19:08:42 2013 +0400
+++ b/server/src/jetbrains/buildServer/symbols/DownloadSymbolsController.java	Fri Aug 09 16:06:34 2013 +0400
@@ -27,7 +27,7 @@
  */
 public class DownloadSymbolsController extends BaseController {
 
-  public static final String APP_SYMBOLS = "/app/symbols/";
+  private static final String APP_SYMBOLS = "/" + SymbolsConstants.APP_SYMBOLS;
 
   private static final String COMPRESSED_FILE_EXTENSION = "pd_";
   private static final String FILE_POINTER_FILE_EXTENSION = "ptr";
--- a/server/src/jetbrains/buildServer/symbols/IndexSymbolsBuildFeature.java	Thu Aug 08 19:08:42 2013 +0400
+++ b/server/src/jetbrains/buildServer/symbols/IndexSymbolsBuildFeature.java	Fri Aug 09 16:06:34 2013 +0400
@@ -2,8 +2,10 @@
 
 import jetbrains.buildServer.controllers.BaseController;
 import jetbrains.buildServer.serverSide.BuildFeature;
+import jetbrains.buildServer.serverSide.impl.ServerSettings;
 import jetbrains.buildServer.web.openapi.PluginDescriptor;
 import jetbrains.buildServer.web.openapi.WebControllerManager;
+import jetbrains.buildServer.web.util.WebUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.springframework.web.servlet.ModelAndView;
@@ -18,14 +20,18 @@
 
   private String myEditParametersUrl;
 
-  public IndexSymbolsBuildFeature(PluginDescriptor pluginDescriptor, WebControllerManager web) {
+  public IndexSymbolsBuildFeature(final PluginDescriptor pluginDescriptor, final WebControllerManager web, final ServerSettings serverSettings) {
     final String jsp = pluginDescriptor.getPluginResourcesPath("editSymbolsBuildFeatureParams.jsp");
     final String html = pluginDescriptor.getPluginResourcesPath("symbolIndexerSettings.html");
 
     web.registerController(html, new BaseController() {
       @Override
       protected ModelAndView doHandle(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
-        return new ModelAndView(jsp);
+        final ModelAndView modelAndView = new ModelAndView(jsp);
+        modelAndView.getModel().put("isGuestEnabled", serverSettings.isGuestLoginAllowed());
+        modelAndView.getModel().put("actualServerUrl",  WebUtil.getRootUrl(request));
+        modelAndView.getModel().put("publicFeedUrl", WebUtil.GUEST_AUTH_PREFIX + SymbolsConstants.APP_SYMBOLS);
+        return modelAndView;
       }
     });
 
@@ -44,14 +50,14 @@
     return "Symbol Files Indexer";
   }
 
+  @Override
+  public boolean isMultipleFeaturesPerBuildTypeAllowed() {
+    return false;
+  }
+
   @Nullable
   @Override
   public String getEditParametersUrl() {
     return myEditParametersUrl;
   }
-
-  @Override
-  public boolean isMultipleFeaturesPerBuildTypeAllowed() {
-    return false;
-  }
 }