Browse Source

SONAR-7122 Drop the ability to customize the web app context

tags/5.4-M12
Simon Brandhof 8 years ago
parent
commit
8f7a9ad479
90 changed files with 172 additions and 254 deletions
  1. 1
    1
      it/it-tests/pom.xml
  2. 0
    1
      it/it-tests/src/test/java/it/Category1Suite.java
  3. 0
    2
      it/it-tests/src/test/java/it/Category2Suite.java
  4. 0
    1
      it/it-tests/src/test/java/it/Category3Suite.java
  5. 0
    1
      it/it-tests/src/test/java/it/Category4Suite.java
  6. 10
    9
      it/it-tests/src/test/java/it/analysis/IssuesModeTest.java
  7. 4
    35
      it/it-tests/src/test/java/util/ItUtils.java
  8. 0
    4
      server/sonar-process-monitor/src/test/resources/org/sonar/process/ProcessTest/sonar.properties
  9. 0
    4
      server/sonar-process/src/test/resources/org/sonar/process/ProcessTest/sonar.properties
  10. 2
    12
      server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java
  11. 1
    5
      server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java
  12. 2
    30
      server/sonar-server/src/test/java/org/sonar/server/app/WebappTest.java
  13. 0
    14
      server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java
  14. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/platform/ServerLifecycleNotifierTest.java
  15. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/controllers/account_controller.rb
  16. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/controllers/application_controller.rb
  17. 14
    14
      server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb
  18. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/account/_change_password_form.html.erb
  19. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/account/_favorites.html.erb
  20. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/account/index.html.erb
  21. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/account/notifications.html.erb
  22. 5
    5
      server/sonar-web/src/main/webapp/WEB-INF/app/views/action_plans/index.html.erb
  23. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/api_documentation/index.html.erb
  24. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/background_tasks/index.html.erb
  25. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/code/index.html.erb
  26. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/coding_rules/index.html.erb
  27. 5
    5
      server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb
  28. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/component/index.html.erb
  29. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/component_issues/index.html.erb
  30. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/confirm/_confirm.html.erb
  31. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/custom_measures/index.html.erb
  32. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb
  33. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb
  34. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/index.html.erb
  35. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/no_dashboard.html.erb
  36. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_create_form.html.erb
  37. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_delete_form.html.erb
  38. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_edit_form.html.erb
  39. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb
  40. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/email_configuration/index.html.erb
  41. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/encryption_configuration/generate_secret_form.html.erb
  42. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/encryption_configuration/index.html.erb
  43. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/groups/index.html.erb
  44. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_bulk_change_form.html.erb
  45. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_copy_form.html.erb
  46. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_edit_form.html.erb
  47. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_save_as_form.html.erb
  48. 8
    8
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/manage.html.erb
  49. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/search.html.erb
  50. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_footer.html.erb
  51. 4
    4
      server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb
  52. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb
  53. 4
    4
      server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/nonav.html.erb
  54. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/maintenance/index.html.erb
  55. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/markdown/help.html.erb
  56. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_copy_form.html.erb
  57. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_edit_form.html.erb
  58. 3
    3
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_favourites.html.erb
  59. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_save_as_form.html.erb
  60. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_search_header.html.erb
  61. 6
    6
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/manage.html.erb
  62. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb
  63. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/metrics/index.html.erb
  64. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/overview/index.html.erb
  65. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb
  66. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb
  67. 2
    2
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/_delete_form.html.erb
  68. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/background_tasks.html.erb
  69. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/deletion.html.erb
  70. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/profile.html.erb
  71. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/qualitygate.html.erb
  72. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project/widgets/issues/_issues_list.html.erb
  73. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/project_roles/index.html.erb
  74. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/projects/index.html.erb
  75. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/quality_gates/index.html.erb
  76. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/roles/global.html.erb
  77. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb
  78. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/server_id_configuration/index.html.erb
  79. 20
    3
      server/sonar-web/src/main/webapp/WEB-INF/app/views/sessions/_form.html.erb
  80. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_properties.html.erb
  81. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/setup/index.html.erb
  82. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/system/index.html.erb
  83. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/updatecenter/index.html.erb
  84. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/users/_edit_form.html.erb
  85. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/users/index.html.erb
  86. 1
    1
      server/sonar-web/src/main/webapp/WEB-INF/app/views/view_projects/index.html.erb
  87. 3
    3
      server/sonar-web/src/main/webapp/WEB-INF/app/views/widget/index.html.erb
  88. 0
    4
      sonar-application/src/main/assembly/conf/sonar.properties
  89. 1
    1
      sonar-batch/src/main/java/org/sonar/batch/platform/DefaultServer.java
  90. 4
    0
      sonar-plugin-api/src/main/java/org/sonar/api/platform/Server.java

+ 1
- 1
it/it-tests/pom.xml View File

@@ -21,7 +21,7 @@
<dependency>
<groupId>org.sonarsource.orchestrator</groupId>
<artifactId>sonar-orchestrator</artifactId>
<version>3.7</version>
<version>3.9</version>
<scope>test</scope>
</dependency>
<dependency>

+ 0
- 1
it/it-tests/src/test/java/it/Category1Suite.java View File

@@ -118,7 +118,6 @@ public class Category1Suite {

@ClassRule
public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
.setContext("/")
.setServerProperty("sonar.notifications.delay", "1")
.addPlugin(pluginArtifact("property-sets-plugin"))
.addPlugin(pluginArtifact("sonar-subcategories-plugin"))

+ 0
- 2
it/it-tests/src/test/java/it/Category2Suite.java View File

@@ -105,8 +105,6 @@ public class Category2Suite {

@ClassRule
public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
.setContext("/")

.addPlugin(xooPlugin())

// issue

+ 0
- 1
it/it-tests/src/test/java/it/Category3Suite.java View File

@@ -54,7 +54,6 @@ public class Category3Suite {
public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
.addPlugin(xooPlugin())
.setOrchestratorProperty("javaVersion", "LATEST_RELEASE").addPlugin("java")
.setContext("/")

// Used by SettingsEncryptionTest
.addPlugin(pluginArtifact("settings-encryption-plugin"))

+ 0
- 1
it/it-tests/src/test/java/it/Category4Suite.java View File

@@ -70,7 +70,6 @@ public class Category4Suite {

@ClassRule
public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
.setContext("/")
.addPlugin(xooPlugin())
.build();
}

+ 10
- 9
it/it-tests/src/test/java/it/analysis/IssuesModeTest.java View File

@@ -24,7 +24,8 @@ import com.sonar.orchestrator.Orchestrator;
import com.sonar.orchestrator.build.BuildFailureException;
import com.sonar.orchestrator.build.BuildResult;
import com.sonar.orchestrator.build.SonarRunner;
import com.sonar.orchestrator.build.SonarRunnerInstaller;
import com.sonar.orchestrator.build.SonarScanner;
import com.sonar.orchestrator.build.SonarScannerInstaller;
import com.sonar.orchestrator.config.FileSystem;
import com.sonar.orchestrator.locator.FileLocation;
import com.sonar.orchestrator.version.Version;
@@ -405,7 +406,7 @@ public class IssuesModeTest {
private void runConcurrentIssues() throws Exception {
// Install sonar-runner in advance to avoid concurrent unzip issues
FileSystem fileSystem = orchestrator.getConfiguration().fileSystem();
new SonarRunnerInstaller(fileSystem).install(Version.create(SonarRunner.DEFAULT_RUNNER_VERSION), fileSystem.workspace());
new SonarScannerInstaller(fileSystem).install(Version.create(SonarScanner.DEFAULT_RUNNER_VERSION), fileSystem.workspace());
final int nThreads = 3;
ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
List<Callable<BuildResult>> tasks = new ArrayList<>();
@@ -414,7 +415,7 @@ public class IssuesModeTest {
tasks.add(new Callable<BuildResult>() {

public BuildResult call() throws Exception {
SonarRunner runner = configureRunnerIssues("shared/xoo-sample", homeDir, "sonar.it.enableWaitingSensor", "true");
SonarScanner runner = configureRunnerIssues("shared/xoo-sample", homeDir, "sonar.it.enableWaitingSensor", "true");
return orchestrator.executeBuild(runner);
}
});
@@ -447,18 +448,18 @@ public class IssuesModeTest {
return orchestrator.getServer().getWsClient().find(ResourceQuery.createForMetrics(key, "lines"));
}

private SonarRunner configureRunnerIssues(String projectDir, @Nullable File homeDir, String... props) throws IOException {
SonarRunner runner = SonarRunner.create(ItUtils.projectDir(projectDir),
private SonarScanner configureRunnerIssues(String projectDir, @Nullable File homeDir, String... props) throws IOException {
SonarScanner scanner = SonarScanner.create(ItUtils.projectDir(projectDir),
"sonar.working.directory", temp.newFolder().getAbsolutePath(),
"sonar.analysis.mode", "issues",
"sonar.report.export.path", "sonar-report.json");
if (homeDir != null) {
runner.setProperty("sonar.userHome", homeDir.getAbsolutePath());
scanner.setProperty("sonar.userHome", homeDir.getAbsolutePath());
} else {
runner.setProperty("sonar.userHome", temp.newFolder().getAbsolutePath());
scanner.setProperty("sonar.userHome", temp.newFolder().getAbsolutePath());
}
runner.setProperties(props);
return runner;
scanner.setProperties(props);
return scanner;
}

private SonarRunner configureRunner(String projectDir, String... props) throws IOException {

+ 4
- 35
it/it-tests/src/test/java/util/ItUtils.java View File

@@ -17,14 +17,8 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package util;/*
* Copyright (C) 2009-2014 SonarSource SA
* All rights reserved
* mailto:contact AT sonarsource DOT com
*/
package util;

import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.sonar.orchestrator.Orchestrator;
@@ -67,29 +61,8 @@ public class ItUtils {
private ItUtils() {
}

private static final Supplier<File> HOME_DIR = Suppliers.memoize(new Supplier<File>() {
@Override
public File get() {
File testResources = FileUtils.toFile(ItUtils.class.getResource("/ItUtils.txt"));
return testResources // ${home}/it/it-tests/src/test/resources
.getParentFile() // ${home}/it/it-tests/src/test
.getParentFile() // ${home}/it/it-tests/src
.getParentFile() // ${home}/it/it-tests
.getParentFile() // ${home}/it
.getParentFile(); // ${home}
}
});

public static FileLocation xooPlugin() {
File target = new File(HOME_DIR.get(), "plugins/sonar-xoo-plugin/target");
if (target.exists()) {
for (File jar : FileUtils.listFiles(target, new String[] {"jar"}, false)) {
if (jar.getName().startsWith("sonar-xoo-plugin-") && !jar.getName().contains("-sources")) {
return FileLocation.of(jar);
}
}
}
throw new IllegalStateException("XOO plugin is not built");
return FileLocation.byWildcardMavenFilename(new File("../../plugins/sonar-xoo-plugin/target"), "sonar-xoo-plugin-*.jar");
}

public static List<Issue> getAllServerIssues(Orchestrator orchestrator) {
@@ -118,7 +91,7 @@ public class ItUtils {
* @param relativePath path related to the directory it/it-projects, for example "qualitygate/xoo-sample"
*/
public static File projectDir(String relativePath) {
File dir = new File(HOME_DIR.get(), "it/it-projects/" + relativePath);
File dir = new File("../it-projects/" + relativePath);
if (!dir.exists() || !dir.isDirectory()) {
throw new IllegalStateException("Directory does not exist: " + dir.getAbsolutePath());
}
@@ -132,11 +105,7 @@ public class ItUtils {
* It assumes that version is 1.0-SNAPSHOT
*/
public static FileLocation pluginArtifact(String dirName) {
File file = new File(HOME_DIR.get(), "it/it-plugins/" + dirName + "/target/" + dirName + "-1.0-SNAPSHOT.jar");
if (!file.exists()) {
throw new IllegalStateException(String.format("Plugin [%s]for integration tests is not built. File not found:%s", dirName, file));
}
return FileLocation.of(file);
return FileLocation.byWildcardMavenFilename(new File("../it-plugins/" + dirName + "/target"), dirName + "-*.jar");
}

/**

+ 0
- 4
server/sonar-process-monitor/src/test/resources/org/sonar/process/ProcessTest/sonar.properties View File

@@ -80,10 +80,6 @@ sonar.jdbc.timeBetweenEvictionRunsMillis=30000
# By default, ports will be used on all IP addresses associated with the server.
#sonar.web.host=0.0.0.0

# Web context. When set, it must start with forward slash (for example /sonarqube).
# The default value is root context (empty value).
#sonar.web.context=

# TCP port for incoming HTTP connections. Disabled when value is -1.
#sonar.web.port=9000


+ 0
- 4
server/sonar-process/src/test/resources/org/sonar/process/ProcessTest/sonar.properties View File

@@ -80,10 +80,6 @@ sonar.jdbc.timeBetweenEvictionRunsMillis=30000
# By default, ports will be used on all IP addresses associated with the server.
#sonar.web.host=0.0.0.0

# Web context. When set, it must start with forward slash (for example /sonarqube).
# The default value is root context (empty value).
#sonar.web.context=

# TCP port for incoming HTTP connections. Disabled when value is -1.
#sonar.web.port=9000


+ 2
- 12
server/sonar-server/src/main/java/org/sonar/server/app/Webapp.java View File

@@ -37,14 +37,14 @@ class Webapp {

private static final String JRUBY_MAX_RUNTIMES = "jruby.max.runtimes";
private static final String RAILS_ENV = "rails.env";
private static final String PROPERTY_CONTEXT = "sonar.web.context";
private static final String ROOT_CONTEXT_PATH = "";

private Webapp() {
}

static StandardContext configure(Tomcat tomcat, Props props) {
try {
StandardContext context = (StandardContext) tomcat.addWebapp(getContextPath(props), webappPath(props));
StandardContext context = (StandardContext) tomcat.addWebapp(ROOT_CONTEXT_PATH, webappPath(props));
context.setClearReferencesHttpClientKeepAliveThread(false);
context.setClearReferencesStatic(false);
context.setClearReferencesStopThreads(false);
@@ -72,16 +72,6 @@ class Webapp {
}
}

static String getContextPath(Props props) {
String context = props.value(PROPERTY_CONTEXT, "");
if ("/".equals(context)) {
context = "";
} else if (!"".equals(context) && !context.startsWith("/")) {
throw new IllegalStateException(String.format("Value of '%s' must start with a forward slash: '%s'", PROPERTY_CONTEXT, context));
}
return context;
}

static void configureRails(Props props, Context context) {
// sonar.dev is kept for backward-compatibility
if (props.valueAsBoolean("sonar.dev", false)) {

+ 1
- 5
server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java View File

@@ -55,7 +55,6 @@ public final class ServerImpl extends Server implements Startable {
private String id;
private String version;
private String implementationBuild;
private String contextPath;
private File sonarHome;
private File deployDir;

@@ -78,9 +77,6 @@ public final class ServerImpl extends Server implements Startable {

version = readVersion(versionPath);
implementationBuild = read(buildProperties).getProperty("Implementation-Build");
contextPath = StringUtils.defaultIfBlank(settings.getString("sonar.web.context"), "")
// Remove trailing slashes
.replaceFirst("(\\/+)$", "");

sonarHome = new File(settings.getString(ProcessProperties.PATH_HOME));
if (!sonarHome.isDirectory()) {
@@ -138,7 +134,7 @@ public final class ServerImpl extends Server implements Startable {

@Override
public String getContextPath() {
return contextPath;
return "";
}

@Override

+ 2
- 30
server/sonar-server/src/test/java/org/sonar/server/app/WebappTest.java View File

@@ -19,6 +19,8 @@
*/
package org.sonar.server.app;

import java.io.File;
import java.util.Properties;
import org.apache.catalina.Context;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
@@ -27,9 +29,6 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.sonar.process.Props;

import java.io.File;
import java.util.Properties;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.anyString;
@@ -94,31 +93,4 @@ public class WebappTest {
verify(context).addParameter("jruby.max.runtimes", "1");
verify(context).addParameter("rails.env", "production");
}

@Test
public void context_path_must_start_with_slash() {
Properties p = new Properties();
p.setProperty("sonar.web.context", "foo");

try {
Webapp.getContextPath(new Props(p));
fail();
} catch (IllegalStateException e) {
assertThat(e.getMessage()).isEqualTo("Value of 'sonar.web.context' must start with a forward slash: 'foo'");
}
}

@Test
public void root_context_path_must_be_blank() {
Properties p = new Properties();
p.setProperty("sonar.web.context", "/");

assertThat(Webapp.getContextPath(new Props(p))).isEqualTo("");
}

@Test
public void default_context_path_is_root() {
String context = Webapp.getContextPath(new Props(new Properties()));
assertThat(context).isEqualTo("");
}
}

+ 0
- 14
server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java View File

@@ -124,20 +124,6 @@ public class ServerImplTest {
assertThat(server.getContextPath()).isEqualTo("");
}

@Test
public void get_context_path_from_settings() {
settings.setProperty("sonar.web.context", "/my_path");
server.start();
assertThat(server.getContextPath()).isEqualTo("/my_path");
}

@Test
public void sanitize_context_path_from_settings() {
settings.setProperty("sonar.web.context", "/my_path///");
server.start();
assertThat(server.getContextPath()).isEqualTo("/my_path");
}

@Test
public void is_dev() throws Exception {
settings.setProperty("sonar.web.dev", true);

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/platform/ServerLifecycleNotifierTest.java View File

@@ -115,7 +115,7 @@ class FakeServer extends Server {

@Override
public String getContextPath() {
return null;
return "";
}

@Override

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/controllers/account_controller.rb View File

@@ -80,7 +80,7 @@ class AccountController < ApplicationController
end
end

redirect_to "#{ApplicationController.root_context}/account/notifications"
redirect_to "/account/notifications"
end

private

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/controllers/application_controller.rb View File

@@ -43,7 +43,7 @@ class ApplicationController < ActionController::Base
rescue_from Errors::AccessDenied, :with => :render_access_denied # See lib/authenticated_system.rb#access_denied()

def self.root_context
ActionController::Base.relative_url_root || ''
''
end

def java_facade

+ 14
- 14
server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb View File

@@ -167,9 +167,9 @@ module ApplicationHelper
# url_for_static(:plugin => 'myplugin', :path => 'image.png')
def url_for_static(options={})
if options[:plugin]
"#{ApplicationController.root_context}/static/#{options[:plugin]}/#{options[:path]}"
"/static/#{options[:plugin]}/#{options[:path]}"
else
"#{ApplicationController.root_context}/#{options[:path]}"
"/#{options[:path]}"
end
end

@@ -329,10 +329,10 @@ module ApplicationHelper
period_index=nil if period_index && period_index<=0
if resource.display_dashboard?
if options[:dashboard]
root = "#{ApplicationController.root_context}/dashboard/index?"
root = "/dashboard/index?"
else
# stay on the same page (for example components)
root = "#{ApplicationController.root_context}/#{u params[:controller]}/#{u params[:action]}?"
root = "/#{u params[:controller]}/#{u params[:action]}?"
end
path = ''
query = request.query_parameters
@@ -345,7 +345,7 @@ module ApplicationHelper
end
"<a class='#{options[:class]}' title='#{options[:title]}' href='#{root + path}'>#{name || resource.name}</a>"
else
url = "#{ApplicationController.root_context}/dashboard/index?id=#{u resource.key}"
url = "/dashboard/index?id=#{u resource.key}"
url += "&period=#{u period_index}" if period_index
url += "&metric=#{u options[:metric]}" if options[:metric]
"<a class='#{options[:class]}' title='#{options[:title]}' " +
@@ -413,7 +413,7 @@ module ApplicationHelper
end

def chart(parameters, options={})
image_tag("#{ApplicationController.root_context}/chart?#{parameters}", options)
image_tag("/chart?#{parameters}", options)
end

def link_to_favourite(resource, deprecated_options=nil)
@@ -645,7 +645,7 @@ module ApplicationHelper
# see limitation in /api/resources/search
options[:min_length]=2

ws_url="#{ApplicationController::root_context}/api/resources/search?f=s2&"
ws_url="/api/resources/search?f=s2&"
if options[:qualifiers]
ws_url+="q=#{options[:qualifiers].join(',')}"
elsif options[:resource_type_property]
@@ -679,7 +679,7 @@ module ApplicationHelper
# see limitation in /api/resources/search
options[:min_length]=2

ws_url="#{ApplicationController::root_context}/api/resources/search?f=s2&"
ws_url="/api/resources/search?f=s2&"
if options[:qualifiers]
ws_url+="q=#{options[:qualifiers].join(',')}"
elsif options[:resource_type_property]
@@ -711,7 +711,7 @@ module ApplicationHelper
# * <tt>:select2_options</tt> - hash of select2 options
#
def user_select_tag(name, options={})
ws_url="#{ApplicationController::root_context}/api/users/search"
ws_url="/api/users/search"
options[:min_length]=2
options[:select2_ajax_options]={
'data' => 'function (term, page) { return { q: term, p: page } }',
@@ -851,7 +851,7 @@ module ApplicationHelper
message_params = options[:confirm_msg_params]
width = options[:confirm_width]||500

url = "#{ApplicationController.root_context}/confirm?url=#{u post_url}"
url = "/confirm?url=#{u post_url}"
url += "&tk=#{u title_key}" if title_key
if message_key
url += "&mk=#{u message_key}&"
@@ -877,7 +877,7 @@ module ApplicationHelper
html += " colspan='#{options[:colspan]}'" if options[:colspan]
html += '>'
if options[:include_loading_icon] && options[:id]
html += "<img src='#{ApplicationController.root_context}/images/loading-small.gif' style='display: none' id='#{options[:id]}_loading'>"
html += "<img src='/images/loading-small.gif' style='display: none' id='#{options[:id]}_loading'>"
end
html += '<div'
html += " id='#{options[:id]}_pages'" if options[:id]
@@ -944,7 +944,7 @@ module ApplicationHelper
html += " colspan='#{options[:colspan]}'" if options[:colspan]
html += '>'
if options[:include_loading_icon] && options[:id]
html += "<img src='#{ApplicationController.root_context}/images/loading-small.gif' style='display: none' id='#{options[:id]}_loading'>"
html += "<img src='/images/loading-small.gif' style='display: none' id='#{options[:id]}_loading'>"
end
html += '<div'
html += " id='#{options[:id]}_pages'" if options[:id]
@@ -992,7 +992,7 @@ module ApplicationHelper
end

def url_for_issues(params)
url = ApplicationController.root_context + '/issues/search#'
url = '/issues/search#'
params.each_with_index do |(key, value), index|
if key == 'filter'
key = 'id'
@@ -1009,7 +1009,7 @@ module ApplicationHelper
if component.blank?
url_for_issues(params)
else
url = ApplicationController.root_context + '/component_issues/index?id=' + url_encode(component.key) + '#'
url = '/component_issues/index?id=' + url_encode(component.key) + '#'
params.each_with_index do |(key, value), index|
if key != 'componentUuids'
url += key.to_s + '=' + value.to_s

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/account/_change_password_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="pass_form_tag" name="pass_form_tag" method="post" action="<%= ApplicationController.root_context -%>/account/change_password">
<form id="pass_form_tag" name="pass_form_tag" method="post" action="/account/change_password">
<div class="modal-head">
<h2><%= message('my_profile.password.title') -%></h2>
</div>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/account/_favorites.html.erb View File

@@ -7,7 +7,7 @@
<td class="thin"><%= link_to_favourite f -%></td>
<td>
<%
url = ApplicationController.root_context + '/dashboard?id=' + url_encode(f.key)
url = '/dashboard?id=' + url_encode(f.key)
%>
<a href="<%= url -%>" class="link-with-icon">
<%= qualifier_icon f %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/account/index.html.erb View File

@@ -93,5 +93,5 @@
]
};
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/account.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/account.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/account/notifications.html.erb View File

@@ -48,7 +48,7 @@
</section>
<% end %>

<form id="notif_form" method="post" action="<%= ApplicationController.root_context -%>/account/update_notifications">
<form id="notif_form" method="post" action="/account/update_notifications">
<% unless @global_dispatchers.empty? -%>
<section class="big-spacer-bottom">
<%= render "account/global_notifications" -%>
@@ -71,5 +71,5 @@
</div>

<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/account.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/account.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 5
- 5
server/sonar-web/src/main/webapp/WEB-INF/app/views/action_plans/index.html.erb View File

@@ -4,7 +4,7 @@
<% if is_admin?(@resource.id) %>
<div class="page-actions">
<a id="create-link-action_plans"
href="<%=ApplicationController.root_context-%>/action_plans/create_form/<%= h(@resource.id) -%>"
href="/action_plans/create_form/<%= h(@resource.id) -%>"
class="open-modal button"><%= message('action_plans.add_new_action_plan') -%></a>
</div>
<% end %>
@@ -35,7 +35,7 @@
%>
<tr class="<%= cycle('even', 'odd', :name => 'open_plans') -%>">
<td class="thin nowrap text-center">
<img src="<%= ApplicationController.root_context -%>/images/status/<%= plan.status() -%>.png" title="<%= message("action_plans.status.#{plan.status}") -%>"/></td>
<img src="/images/status/<%= plan.status() -%>.png" title="<%= message("action_plans.status.#{plan.status}") -%>"/></td>
<td class="thin nowrap"><%= h(plan.name()) -%></td>
<td class="thin nowrap <%= 'over-due' if plan.overDue() -%>" align="right"><%= format_date(plan.deadLine()) -%></td>
<% if plan.totalIssues()==0 %>
@@ -61,7 +61,7 @@
<%= link_to message('close'),
{:action => 'change_status', :id => @resource.id, :plan_key => plan.key()}, {:method => 'POST', :class => 'link-action'}.merge(close_confirmation_message) -%>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/action_plans/delete/#{h(@resource.id)}?plan_key=#{h(plan.key)}",
<%= link_to_action message('delete'), "/action_plans/delete/#{h(@resource.id)}?plan_key=#{h(plan.key)}",
:class => 'link-action link-red',
:id => "delete_#{h(plan.key)}",
:confirm_button => message('delete'),
@@ -98,7 +98,7 @@
@closed_action_plans.each do |plan|
%>
<tr class="<%= cycle('even', 'odd', :name => 'closed_plans') -%>">
<td class="thin nowrap text-center"><img src="<%= ApplicationController.root_context -%>/images/status/<%= plan.status() -%>.png" title="<%= message("action_plans.status.#{plan.status}") -%>"/>
<td class="thin nowrap text-center"><img src="/images/status/<%= plan.status() -%>.png" title="<%= message("action_plans.status.#{plan.status}") -%>"/>
</td>
<td class="thin nowrap"><%= h(plan.name) -%></td>
<td class="thin nowrap <%= 'over-due' if plan.overDue() -%>" align="right"><%= format_date(plan.deadLine()) -%></td>
@@ -118,7 +118,7 @@
<%= link_to message('action_plans.reopen'),
{:action => 'change_status', :id => @resource.id, :plan_key => plan.key}, {:method => 'POST', :class => 'link-action'} -%>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/action_plans/delete/#{h(@resource.id)}?plan_key=#{h(plan.key)}",
<%= link_to_action message('delete'), "/action_plans/delete/#{h(@resource.id)}?plan_key=#{h(plan.key)}",
:class => 'link-action link-red',
:id => "delete_#{h(plan.key)}",
:confirm_button => message('delete'),

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/api_documentation/index.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.urlRoot = window.baseUrl + '/api_documentation';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/api-documentation.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/api-documentation.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/background_tasks/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/background-tasks.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/background-tasks.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/code/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/code.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/code.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/coding_rules/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/coding-rules.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/coding-rules.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 5
- 5
server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb View File

@@ -69,7 +69,7 @@
<header class="page-header">
<h1 class="page-title"><%= h message('comparison.page') -%></h1>
</header>
<form method="GET" id="compare-form" action="<%= ApplicationController.root_context -%>/comparison/index">
<form method="GET" id="compare-form" action="/comparison/index">
<input type="hidden" name="sids" id="sids" value="<%= @snapshots.map { |s| s.id.to_s }.join(',') -%>">
<input type="hidden" name="metrics" id="metrics" value="<%= @metrics.map { |m| m.key }.join(',') -%>">

@@ -112,7 +112,7 @@
$j('#version_loading').show();
$j.ajax({
type:'GET',
url:'<%= ApplicationController.root_context -%>/comparison/versions?resource='
url:'/comparison/versions?resource='
+ id + '&sids='
+ $j('#sids').val(),
success:function (data) {
@@ -169,7 +169,7 @@
<% if index > 0 %>
<a class="icon-move-left" href="#" onclick="moveLeft(<%= index -%>)" id="left-<%= index -%>"></a>
<% else %>
<img src="<%= ApplicationController.root_context -%>/images/transparent_16.gif"/>
<img src="/images/transparent_16.gif"/>
<% end %>
</td>
<td style="text-align: center; min-width: 100px">
@@ -181,7 +181,7 @@
<% if index < last_index %>
<a class="icon-move-right" href="#" onclick="moveRight(<%= index -%>)" id="right-<%= index -%>"></a>
<% else %>
<img src="<%= ApplicationController.root_context -%>/images/transparent_16.gif"/>
<img src="/images/transparent_16.gif"/>
<% end %>
</td>
</tr>
@@ -199,7 +199,7 @@
%>
<th style="text-align: center; vertical-align: top; line-height: 1.5;">
<span class="no-transform">
<a href="<%= ApplicationController.root_context -%>/dashboard/index/<%= s.resource.key -%>"><%= h s.resource.name(true) -%></a>
<a href="/dashboard/index/<%= s.resource.key -%>"><%= h s.resource.name(true) -%></a>
<br/>
<span class="note"><b><%= event ? event.name : message('comparison.version.latest') -%></b></span>
<br/>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/component/index.html.erb View File

@@ -9,7 +9,7 @@
};
})();
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/source-viewer.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/source-viewer.js?v=<%= sonar_version -%>"></script>
<% end %>



+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/component_issues/index.html.erb View File

@@ -9,5 +9,5 @@
};
})();
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/component-issues.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/component-issues.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/confirm/_confirm.html.erb View File

@@ -11,7 +11,7 @@
</div>
<div class="modal-body">
<div class="info">
<img src="<%= ApplicationController.root_context -%>/images/information.png" style="vertical-align: text-bottom"/>
<img src="/images/information.png" style="vertical-align: text-bottom"/>
<%= h message(message_key, :params => message_params) -%>
</div>
</div>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/custom_measures/index.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.projectId = '<%= @resource.uuid -%>';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/custom-measures.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/custom-measures.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb View File

@@ -1,4 +1,4 @@
<form id="configure-widget-<%= widget.id -%>" method="post" action="<%= ApplicationController.root_context -%>/dashboard/save_widget?wid=<%= widget.id -%>">
<form id="configure-widget-<%= widget.id -%>" method="post" action="/dashboard/save_widget?wid=<%= widget.id -%>">
<div id="error<%= widget.id -%>" class="error" style="display: none"></div>
<table class="table width100">
<tbody>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/configure.html.erb View File

@@ -1,6 +1,6 @@
<% content_for :script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<% end %>

<div class="page" id="dashboard">

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/index.html.erb View File

@@ -1,6 +1,6 @@
<% content_for :script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<% end %>



+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/no_dashboard.html.erb View File

@@ -14,7 +14,7 @@
};
})();
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/source-viewer.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/source-viewer.js?v=<%= sonar_version -%>"></script>
<% end %>



+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_create_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="create-dashboard-form" method="post" action="<%= ApplicationController.root_context -%>/dashboards/create">
<form id="create-dashboard-form" method="post" action="/dashboards/create">
<% if @global %>
<input type="hidden" name="global" value="true" />
<% else %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_delete_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="delete-dashboard-form" method="post" action="<%= ApplicationController.root_context -%>/dashboards/delete">
<form id="delete-dashboard-form" method="post" action="/dashboards/delete">
<input type="hidden" name="id" value="<%= @dashboard.id -%>">
<% if @dashboard.global %>
<input type="hidden" name="global" value="true" />

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_edit_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="edit-dashboard-form" method="post" action="<%= ApplicationController.root_context -%>/dashboards/update">
<form id="edit-dashboard-form" method="post" action="/dashboards/update">
<input type="hidden" name="id" value="<%= @dashboard.id -%>">
<% if @dashboard.global %>
<input type="hidden" name="global" value="true" />

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb View File

@@ -2,7 +2,7 @@
<% if params[:period] && @snapshot.project_snapshot.periods? %>
<div id="snapshot_title" class="spacer-bottom">
<h4>
<form method="GET" action="<%= ApplicationController.root_context -%>/drilldown/measures" style="display: inline">
<form method="GET" action="/drilldown/measures" style="display: inline">
<input type="hidden" name="id" value="<%= h @snapshot.project.key -%>"/>
<input type="hidden" name="metric" value="<%= h params[:metric] -%>"/>
<% if params[:highlight] %>
@@ -141,5 +141,5 @@
<script>
window.sonarqube.el = '#source-viewer';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/drilldown.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/drilldown.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/email_configuration/index.html.erb View File

@@ -1,4 +1,4 @@
<form method="post" action="<%= ApplicationController.root_context -%>/email_configuration/save" class="marginbottom10">
<form method="post" action="/email_configuration/save" class="marginbottom10">
<table class="marginbottom10">
<tbody>
<tr class="property">
@@ -62,7 +62,7 @@
</table>
</form>

<form method="post" action="<%= ApplicationController.root_context -%>/email_configuration/send_test_email">
<form method="post" action="/email_configuration/send_test_email">
<table class="data marginbottom10">
<thead>
<tr>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/encryption_configuration/generate_secret_form.html.erb View File

@@ -17,7 +17,7 @@
type="button"
value="Generate secret key"
onclick="$j.ajax({
url:'<%=ApplicationController.root_context-%>/encryption_configuration/generate_secret',
url:'/encryption_configuration/generate_secret',
type:'post',
success:function(response){$j('#secret_content').html(response);},
error:function(response){$j('#secret_error').html(response.responseText); $j('#secret_error').show();}

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/encryption_configuration/index.html.erb View File

@@ -13,7 +13,7 @@
<form class="spacer-bottom"
onsubmit=
"$j.ajax({
url:'<%=ApplicationController.root_context-%>/encryption_configuration/encrypt',
url:'/encryption_configuration/encrypt',
type:'post',
success:function(response)
{
@@ -31,7 +31,7 @@
});
return false;"
method="post"
action="<%=ApplicationController.root_context-%>/encryption_configuration/encrypt" >
action="/encryption_configuration/encrypt" >
<input type="text" name="text" id="clear_text"/>
<input type="submit" value="Encrypt" id="submit_encrypt"/>
</form>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/groups/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/groups.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/groups.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_bulk_change_form.html.erb View File

@@ -25,7 +25,7 @@
all_issues_are_assigned_to_current_user &&= issue.assignee() == current_user.login
end
%>
<form id="bulk-change-form" method="post" action="<%= ApplicationController.root_context -%>/issues/bulk_change">
<form id="bulk-change-form" method="post" action="/issues/bulk_change">
<input type="hidden" name="issues" value="<%= @issues.map { |issue| issue.key() }.join(',') -%>">
<input type="hidden" name="actions[]" id="bulk-change-transition-action">
<fieldset>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_copy_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="copy-filter-form" method="post" action="<%= ApplicationController.root_context -%>/issues/copy">
<form id="copy-filter-form" method="post" action="/issues/copy">
<input type="hidden" name="id" value="<%= @filter.id -%>">
<fieldset>
<div class="modal-head">

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_edit_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="edit-filter-form" method="post" action="<%= ApplicationController.root_context -%>/issues/edit">
<form id="edit-filter-form" method="post" action="/issues/edit">
<input type="hidden" name="id" value="<%= @filter.id -%>">
<fieldset>
<div class="modal-head">

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/_filter_save_as_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="save-as-filter-form" method="post" action="<%= ApplicationController.root_context -%>/issues/save_as">
<form id="save-as-filter-form" method="post" action="/issues/save_as">
<input type="hidden" name="data" value="<%= u(@filter_query_serialized) -%>">
<fieldset>
<div class="modal-head">

+ 8
- 8
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/manage.html.erb View File

@@ -59,7 +59,7 @@
<%= issue_filter_star(filter, @favourite_filter_ids.include?(filter.id)) -%>
</td>
<td>
<a href="<%= ApplicationController.root_context -%>/issues/search#id=<%= h filter.id -%>"><%= h filter.name -%></a>
<a href="/issues/search#id=<%= h filter.id -%>"><%= h filter.name -%></a>
<% if filter.description %>
<div class="note"><%= h filter.description -%></div>
<% end %>
@@ -72,13 +72,13 @@
<% end %>
</td>
<td class="thin nowrap text-right">
<a id="copy-<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/issues/copy_form/<%= filter.id -%>"
<a id="copy-<%= filter.name.parameterize -%>" href="/issues/copy_form/<%= filter.id -%>"
class="link-action open-modal"><%= message('copy') -%></a>
&nbsp;
<a id="edit_<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/issues/edit_form/<%= filter.id -%>"
<a id="edit_<%= filter.name.parameterize -%>" href="/issues/edit_form/<%= filter.id -%>"
class="link-action open-modal"><%= message('edit') -%></a>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/issues/delete/#{filter.id}",
<%= link_to_action message('delete'), "/issues/delete/#{filter.id}",
:class => 'link-action link-red',
:id => "delete_#{filter.name.parameterize}",
:confirm_button => message('delete'),
@@ -116,7 +116,7 @@
<%= issue_filter_star(filter, @favourite_filter_ids.include?(filter.id)) -%>
</td>
<td>
<a href="<%= ApplicationController.root_context -%>/issues/search#id=<%= h filter.id -%>|<%= h filter.data -%>"><%= h filter.name -%></a>
<a href="/issues/search#id=<%= h filter.id -%>|<%= h filter.data -%>"><%= h filter.name -%></a>
<% if filter.description %>
<div class="note"><%= h filter.description -%></div>
<% end %>
@@ -125,12 +125,12 @@
<%= filter.userLogin ? h(Api.users.findByLogin(filter.userLogin).name) : '[SonarQube]' -%>
</td>
<td class="thin nowrap text-right">
<a id="copy-<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/issues/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
<a id="copy-<%= filter.name.parameterize -%>" href="/issues/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
<% if has_role?(:admin) %>
&nbsp;
<a id="edit_shared_<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/issues/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
<a id="edit_shared_<%= filter.name.parameterize -%>" href="/issues/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/issues/delete/#{filter.id}",
<%= link_to_action message('delete'), "/issues/delete/#{filter.id}",
:class => 'link-action link-red',
:id => "delete_system_#{filter.name.parameterize}",
:confirm_button => message('delete'),

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/issues/search.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/issues.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/issues.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_footer.html.erb View File

@@ -16,7 +16,7 @@
</script>
<% end %>

<script src="<%= ApplicationController.root_context -%>/js/bundles/main.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/main.js?v=<%= sonar_version -%>"></script>
<%= yield :extra_script -%>

</body>

+ 4
- 4
server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb View File

@@ -18,7 +18,7 @@
%>
<title><%= title -%></title>

<link href="<%= ApplicationController.root_context -%>/css/sonar.css?v=<%= sonar_version -%>" rel="stylesheet" media="all">
<link href="/css/sonar.css?v=<%= sonar_version -%>" rel="stylesheet" media="all">
<%= yield :style -%>

<script>
@@ -36,10 +36,10 @@
updateCenterActive: <%= configuration('sonar.updatecenter.activate', true) %>
};
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/vendor.js?v=<%= sonar_version -%>"></script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/sonar.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/vendor.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/sonar.js?v=<%= sonar_version -%>"></script>
<script>
window.baseUrl = '<%= ApplicationController.root_context -%>';
window.baseUrl = '';
</script>
<%= yield :script -%>
</head>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb View File

@@ -56,7 +56,7 @@
<a href="http://www.sonarqube.org/documentation" target="sonar_doc">Documentation</a> -
<a href="http://www.sonarqube.org/support" target="support">Get Support</a> -
<a href="http://redirect.sonarsource.com/doc/plugin-library.html" target="plugins">Plugins</a> -
<a href="<%= ApplicationController.root_context -%>/api_documentation">Web Service API</a>
<a href="/api_documentation">Web Service API</a>
</div>
<!--[if lte IE 8 ]><p class="spacer-top alert alert-danger">IE 8 is not supported. Some widgets may not be properly displayed. Please switch to a <a target="_blank" href="http://redirect.sonarsource.com/doc/requirements.html">supported version or another supported browser</a>.</p><!--<![endif]-->
</div>

+ 4
- 4
server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/nonav.html.erb View File

@@ -2,8 +2,8 @@

<nav class="navbar navbar-global page-container" id="global-navigation">
<div class="navbar-header">
<a class="navbar-brand" href="<%= ApplicationController.root_context -%>/">
<img src="<%= ApplicationController.root_context -%>/images/logo.svg" height="30"
<a class="navbar-brand" href="/">
<img src="/images/logo.svg" height="30"
alt="<%= h message('layout.sonar.slogan') -%>"
title="<%= h message('layout.sonar.slogan') -%>">
</a>
@@ -24,7 +24,7 @@
<a href="http://www.sonarqube.org/documentation" target="sonar_doc">Documentation</a> -
<a href="http://www.sonarqube.org/support" target="support">Get Support</a> -
<a href="http://redirect.sonarsource.com/doc/plugin-library.html" target="plugins">Plugins</a> -
<a href="<%= ApplicationController.root_context -%>/api_documentation">Web Service API</a>
<a href="/api_documentation">Web Service API</a>
</div>
<%= render 'branding/footer' -%>
</div>
@@ -36,7 +36,7 @@
})(window.jQuery);
</script>

<script src="<%= ApplicationController.root_context -%>/js/bundles/main.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/main.js?v=<%= sonar_version -%>"></script>
<%= yield :extra_script -%>

</body></html>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/maintenance/index.html.erb View File

@@ -2,6 +2,6 @@
<script>
window.sonarqube.setup = false;
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/maintenance.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/maintenance.js?v=<%= sonar_version -%>"></script>
<% end %>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/markdown/help.html.erb View File

@@ -4,5 +4,5 @@
<script>
window.sonarqube.el = '#markdown-full-help';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/markdown.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/markdown.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_copy_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="copy-filter-form" method="post" action="<%= ApplicationController.root_context -%>/measures/copy">
<form id="copy-filter-form" method="post" action="/measures/copy">
<input type="hidden" name="id" value="<%= @filter.id -%>">
<fieldset>
<div class="modal-head">
@@ -17,4 +17,4 @@
$j("#copy-filter-form").modalForm({success: function (data) {
window.location = baseUrl + '/measures/filter/' + data;
}});
</script>
</script>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_edit_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="edit-filter-form" method="post" action="<%= ApplicationController.root_context -%>/measures/edit">
<form id="edit-filter-form" method="post" action="/measures/edit">
<input type="hidden" name="id" value="<%= @filter.id -%>">
<fieldset>
<div class="modal-head">
@@ -17,4 +17,4 @@
$j("#edit-filter-form").modalForm({success: function (data) {
window.location = baseUrl + '/measures/filter/' + data;
}});
</script>
</script>

+ 3
- 3
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_favourites.html.erb View File

@@ -3,10 +3,10 @@
<li class="sidebar-title"><%= message('measure_filter.favourite_filters') -%></li>
<% current_user.favourited_measure_filters.each do |filter| %>
<li <%= "class='active'" if @filter && filter.id==@filter.id -%>>
<a href="<%= ApplicationController.root_context -%>/measures/filter/<%= filter.id -%>"><%= h filter.name -%></a>
<a href="/measures/filter/<%= filter.id -%>"><%= h filter.name -%></a>
</li>
<% end %>
<li><a href="<%= ApplicationController.root_context -%>/measures/manage" class="link-action"><%= message('manage') %></a></li>
<li><a href="/measures/manage" class="link-action"><%= message('manage') %></a></li>
<li class="spacer"></li>
<% end %>
</div>
</div>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_save_as_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="save-as-filter-form" method="post" action="<%= ApplicationController.root_context -%>/measures/save_as">
<form id="save-as-filter-form" method="post" action="/measures/save_as">
<input type="hidden" name="id" value="<%= @filter.id -%>">
<input type="hidden" name="data" value="<%= u(@filter.data) -%>">
<fieldset>
@@ -18,4 +18,4 @@
$j("#save-as-filter-form").modalForm({success:function (data) {
window.location = baseUrl + '/measures/filter/' + data;
}});
</script>
</script>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_search_header.html.erb View File

@@ -24,7 +24,7 @@

<div class="page-actions">
<div class="button-group">
<button onclick="window.location='<%= ApplicationController.root_context -%>/measures/search?qualifiers[]=TRK';"><%= message 'measure_filter.new_search' -%></button>
<button onclick="window.location='/measures/search?qualifiers[]=TRK';"><%= message 'measure_filter.new_search' -%></button>

<% unless edit_mode %>
<% if logged_in? %>

+ 6
- 6
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/manage.html.erb View File

@@ -60,11 +60,11 @@
<% end %>
</td>
<td class="text-thin nowrap text-right">
<a id="copy-<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/measures/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
<a id="copy-<%= filter.name.parameterize -%>" href="/measures/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
&nbsp;
<a id="edit_<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/measures/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
<a id="edit_<%= filter.name.parameterize -%>" href="/measures/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/measures/delete/#{filter.id}",
<%= link_to_action message('delete'), "/measures/delete/#{filter.id}",
:class => 'link-action link-red',
:id => "delete_#{filter.name.parameterize}",
:confirm_button => message('delete'),
@@ -111,12 +111,12 @@
<%= filter.user ? h(filter.user.name) : '[SonarQube]' -%>
</td>
<td class="thin nowrap text-right">
<a id="copy-<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/measures/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
<a id="copy-<%= filter.name.parameterize -%>" href="/measures/copy_form/<%= filter.id -%>" class="link-action open-modal"><%= message('copy') -%></a>
<% if has_role?(:admin) %>
&nbsp;
<a id="edit_system_<%= filter.name.parameterize -%>" href="<%= ApplicationController.root_context -%>/measures/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
<a id="edit_system_<%= filter.name.parameterize -%>" href="/measures/edit_form/<%= filter.id -%>" class="link-action open-modal"><%= message('edit') -%></a>
&nbsp;
<%= link_to_action message('delete'), "#{ApplicationController.root_context}/measures/delete/#{filter.id}",
<%= link_to_action message('delete'), "/measures/delete/#{filter.id}",
:class => 'link-action link-red',
:id => "delete_system_#{filter.name.parameterize}",
:confirm_button => message('delete'),

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/search.html.erb View File

@@ -16,7 +16,7 @@


<script id="filter-bar-template" type="text/x-handlebars-template">
<form method="get" action="<%= ApplicationController.root_context -%>/measures/search">
<form method="get" action="/measures/search">
<% if @filter.id %>
<input type="hidden" name="id" value="<%= h @filter.id -%>">
<% end %>
@@ -93,5 +93,5 @@
];
</script>

<script src="<%= ApplicationController.root_context -%>/js/bundles/measures.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/measures.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/metrics/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/metrics.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/metrics.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/overview/index.html.erb View File

@@ -130,5 +130,5 @@
};
})();
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/overview.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/overview.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/permission-templates.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/permission-templates.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.urlRoot = baseUrl + '/profiles';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/quality-profiles.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/quality-profiles.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 2
- 2
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/_delete_form.html.erb View File

@@ -1,5 +1,5 @@
<% resource_qualifier = message('qualifier.' + @project.qualifier) %>
<form id="delete-project-form" method="post" action="<%= ApplicationController.root_context -%>/project/delete">
<form id="delete-project-form" method="post" action="/project/delete">
<fieldset>
<div class="modal-head">
<h2><%= message('project_deletion.page', :params => resource_qualifier) -%></h2>
@@ -18,7 +18,7 @@
$j("#delete-project-form").modalForm({
success: function () {
$j.ajax({
url: "<%= ApplicationController.root_context-%>/project/delete/<%= h(@project.id) -%>",
url: "/project/delete/<%= h(@project.id) -%>",
success: function (request) {
window.location = '<%= url_for(:action => 'pending_deletion',:id => @project.id)-%>';
},

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/background_tasks.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.componentId = '<%= @project.uuid -%>';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/background-tasks.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/background-tasks.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/deletion.html.erb View File

@@ -12,7 +12,7 @@
<div class="yui-g widget" id="widget_delete_project">
<div class="alert alert-warning spacer-bottom"><%= message('project_deletion.operation_cannot_be_undone') -%></div>
<a id="delete_resource" class="open-modal button button-red"
href="<%= ApplicationController.root_context -%>/project/delete_form/<%= h(@project.id) -%>"><%= delete_resource_message -%></a>
href="/project/delete_form/<%= h(@project.id) -%>"><%= delete_resource_message -%></a>
</div>
<% end %>
</div>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/profile.html.erb View File

@@ -19,7 +19,7 @@
<tr class="<%= cycle 'even', 'odd' -%>">
<td class="thin" nowrap><%= h language.getName() -%></td>
<td>
<form id="form-<%= language.getKey().parameterize -%>" method="POST" action="<%= ApplicationController.root_context -%>/project/set_profile">
<form id="form-<%= language.getKey().parameterize -%>" method="POST" action="/project/set_profile">
<input type="hidden" name="id" value="<%= @project_id -%>"/>
<input type="hidden" name="language" value="<%= language.getKey() -%>"/>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/qualitygate.html.erb View File

@@ -4,7 +4,7 @@
<p class="page-description"><%= message('project_quality_gate.page.description') -%></p>
</header>

<form id="select-quality-gate" method="POST" action="<%= ApplicationController.root_context -%>/project/set_qualitygate">
<form id="select-quality-gate" method="POST" action="/project/set_qualitygate">
<input type="hidden" name="id" value="<%= @project_id -%>"/>
<input type="hidden" name="previous_qgate_id" value="<%= @selected_qgate -%>"/>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/widgets/issues/_issues_list.html.erb View File

@@ -56,7 +56,7 @@
<%= h truncate(issue.message, :length => 100) -%></a>
<% if last_comment && last_comment.userLogin() %>
<div class="comment-excerpt">
<img src="<%= ApplicationController.root_context -%>/images/reviews/comment.png"/>
<img src="/images/reviews/comment.png"/>
<% commentAuthor = users_by_login[last_comment.userLogin()] %>
&nbsp;<b><%= h( commentAuthor.nil? ? last_comment.userLogin() : commentAuthor.name() ) -%> :</b>
<%= Internal.text.markdownToHtml(last_comment.markdownText) -%>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/project_roles/index.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.componentId = '<%= @project.uuid -%>';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/project-permissions.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/project-permissions.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/projects/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/projects.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/projects.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/quality_gates/index.html.erb View File

@@ -2,5 +2,5 @@
<script>
window.sonarqube.urlRoot = baseUrl + '/quality_gates';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/quality-gates.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/quality-gates.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/roles/global.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/global-permissions.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/global-permissions.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/project-permissions.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/project-permissions.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/server_id_configuration/index.html.erb View File

@@ -1,4 +1,4 @@
<form method="post" action="<%= ApplicationController.root_context -%>/server_id_configuration/generate">
<form method="post" action="/server_id_configuration/generate">
<table class="marginbottom10">
<thead>
<tr>

+ 20
- 3
server/sonar-web/src/main/webapp/WEB-INF/app/views/sessions/_form.html.erb View File

@@ -49,9 +49,26 @@
<label for="remember_me"><%= message('sessions.remember_me') -%></label>
</p>

<div class="text-right overflow-hidden">
<button name="commit"><%= message('sessions.log_in') -%></button>
<a class="spacer-left" href="<%= home_path -%>"><%= message('cancel') -%></a>
<div>
<div class="pull-left">
<% auth_providers = Api::Utils.java_facade.getIdentityProviders().to_a %>
<ul class="list-inline">
<% auth_providers.each do |provider| %>
<li>
<a class="oauth-link"
href="/sessions/init/<%= provider.getKey().to_s %>"
title="Login with <%= provider.getName().to_s -%>">
<img alt="<%= provider.getName().to_s -%>" width="24" height="24"
src="<%= provider.getIconPath().to_s -%>">
</a>
</li>
<% end %>
</ul>
</div>
<div class="text-right overflow-hidden">
<button name="commit"><%= message('sessions.log_in') -%></button>
<a class="spacer-left" href="<%= home_path -%>"><%= message('cancel') -%></a>
</div>
</div>
</form>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_properties.html.erb View File

@@ -85,7 +85,7 @@
<div class="marginbottom10" style="padding-left: 5px;">
<%= hidden_field_tag('page_version', (params[:page_version] || 0).to_i + 1) -%>
<%= submit_tag(message('settings.save_category', :params => [subcategory_name(@category, @subcategory)]), :id => 'submit_settings') -%>
<img src="<%= ApplicationController.root_context -%>/images/loading.gif" id="loading_settings" style="display:none;">
<img src="/images/loading.gif" id="loading_settings" style="display:none;">
</div>
<% end %>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/setup/index.html.erb View File

@@ -2,6 +2,6 @@
<script>
window.sonarqube.setup = true;
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/maintenance.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/maintenance.js?v=<%= sonar_version -%>"></script>
<% end %>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/system/index.html.erb View File

@@ -1,4 +1,4 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/system.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/system.js?v=<%= sonar_version -%>"></script>
<% end %>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/updatecenter/index.html.erb View File

@@ -2,6 +2,6 @@
<script>
window.sonarqube.urlRoot = baseUrl + '/updatecenter';
</script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/update-center.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/update-center.js?v=<%= sonar_version -%>"></script>
<% end %>


+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/users/_edit_form.html.erb View File

@@ -1,4 +1,4 @@
<form id="user_edit_form" method="post" action="<%= ApplicationController.root_context -%>/users/update">
<form id="user_edit_form" method="post" action="/users/update">
<fieldset>
<div class="modal-head">
<h2>Edit user: <%= h @user.login() -%></h2>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/users/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/users.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/users.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 1
- 1
server/sonar-web/src/main/webapp/WEB-INF/app/views/view_projects/index.html.erb View File

@@ -1,3 +1,3 @@
<% content_for :extra_script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/code.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/code.js?v=<%= sonar_version -%>"></script>
<% end %>

+ 3
- 3
server/sonar-web/src/main/webapp/WEB-INF/app/views/widget/index.html.erb View File

@@ -1,6 +1,6 @@
<% content_for :script do %>
<script src="<%= ApplicationController.root_context -%>/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="<%= ApplicationController.root_context -%>/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/dashboard.js?v=<%= sonar_version -%>"></script>
<script src="/js/bundles/widgets.js?v=<%= sonar_version -%>"></script>
<% end %>

<div id="block_1" class="block" style="width: <%= @widget_width -%>">
@@ -41,4 +41,4 @@

<div style="clear: both;"></div>
</div>
</div>
</div>

+ 0
- 4
sonar-application/src/main/assembly/conf/sonar.properties View File

@@ -100,10 +100,6 @@
# By default, ports will be used on all IP addresses associated with the server.
#sonar.web.host=0.0.0.0

# Web context. When set, it must start with forward slash (for example /sonarqube).
# The default value is root context (empty value).
#sonar.web.context=

# TCP port for incoming HTTP connections. Disabled when value is -1.
#sonar.web.port=9000


+ 1
- 1
sonar-batch/src/main/java/org/sonar/batch/platform/DefaultServer.java View File

@@ -80,7 +80,7 @@ public class DefaultServer extends Server {

@Override
public String getContextPath() {
return null;
return "";
}

@Override

+ 4
- 0
sonar-plugin-api/src/main/java/org/sonar/api/platform/Server.java View File

@@ -43,6 +43,10 @@ public abstract class Server {
@CheckForNull
public abstract File getDeployDir();

/**
* @deprecated in 5.4. Web context path can not be configured. It's always {@code ""}. See https://jira.sonarsource.com/browse/SONAR-7122
*/
@Deprecated
public abstract String getContextPath();

/**

Loading…
Cancel
Save