aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStas Vilchik <stas.vilchik@sonarsource.com>2017-06-19 05:48:01 -0700
committerStas Vilchik <stas.vilchik@sonarsource.com>2017-06-20 04:10:53 -0700
commit472945cdd2331f0b1bf7eddeee1c744f588b4e2d (patch)
treea89b9d474b998fffd6c598163b26814f88f4a4c6
parentac756ae021e7a9fadc7a2cbbcd80ce4278022edd (diff)
downloadsonarqube-472945cdd2331f0b1bf7eddeee1c744f588b4e2d.tar.gz
sonarqube-472945cdd2331f0b1bf7eddeee1c744f588b4e2d.zip
apply more feedback on onboarding tutorial (#2179)
-rw-r--r--server/sonar-web/src/main/js/app/components/help/LinksHelp.js45
-rw-r--r--server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js34
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/global/GlobalNav.js9
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/App.js2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js27
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js1
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js11
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/OnboardingModal.js6
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/Onboarding-test.js11
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js8
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js6
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js2
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap20
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap16
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap14
-rw-r--r--sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java2
-rw-r--r--sonar-core/src/main/resources/org/sonar/l10n/core.properties5
17 files changed, 153 insertions, 66 deletions
diff --git a/server/sonar-web/src/main/js/app/components/help/LinksHelp.js b/server/sonar-web/src/main/js/app/components/help/LinksHelp.js
index e76ef2c6bb6..b84c28222d5 100644
--- a/server/sonar-web/src/main/js/app/components/help/LinksHelp.js
+++ b/server/sonar-web/src/main/js/app/components/help/LinksHelp.js
@@ -29,22 +29,35 @@ export default function LinksHelp({ onClose }: Props) {
<div>
<h2 className="spacer-top spacer-bottom">{translate('help.section.links')}</h2>
- <a href="http://www.sonarqube.org">{translate('footer.community')}</a>{' - '}
- <a href="https://redirect.sonarsource.com/doc/home.html">
- {translate('footer.documentation')}
- </a>
- {' - '}
- <a href="https://redirect.sonarsource.com/doc/community.html">
- {translate('footer.support')}
- </a>
- {' - '}
- <a href="https://redirect.sonarsource.com/doc/plugin-library.html">
- {translate('footer.plugins')}
- </a>
- {' - '}
- <Link to="/web_api" onClick={onClose}>{translate('footer.web_api')}</Link>
- {' - '}
- <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link>
+ <p className="spacer-bottom">
+ <a href="http://www.sonarqube.org">{translate('footer.community')}</a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://redirect.sonarsource.com/doc/home.html">
+ {translate('footer.documentation')}
+ </a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://redirect.sonarsource.com/doc/community.html">
+ {translate('footer.support')}
+ </a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://redirect.sonarsource.com/doc/plugin-library.html">
+ {translate('footer.plugins')}
+ </a>
+ </p>
+
+ <p className="spacer-bottom">
+ <Link to="/web_api" onClick={onClose}>{translate('footer.web_api')}</Link>
+ </p>
+
+ <p>
+ <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link>
+ </p>
</div>
);
}
diff --git a/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js b/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js
index 6efdac91b50..9fdf2751253 100644
--- a/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js
+++ b/server/sonar-web/src/main/js/app/components/help/LinksHelpSonarCloud.js
@@ -29,17 +29,29 @@ export default function LinksHelpSonarCloud({ onClose }: Props) {
<div>
<h2 className="spacer-top spacer-bottom">{translate('help.section.links')}</h2>
- <a href="https://about.sonarcloud.io/news/">{translate('footer.news')}</a>
- {' - '}
- <a href="https://about.sonarcloud.io/terms.pdf">{translate('footer.terms')}</a>
- {' - '}
- <a href="https://twitter.com/sonarqube">{translate('footer.twitter')}</a>
- {' - '}
- <a href="https://about.sonarcloud.io/get-started/">{translate('footer.get_started')}</a>
- {' - '}
- <a href="https://about.sonarcloud.io/contact/">{translate('footer.help')}</a>
- {' - '}
- <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link>
+ <p className="spacer-bottom">
+ <a href="https://about.sonarcloud.io/news/">{translate('footer.news')}</a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://about.sonarcloud.io/terms.pdf">{translate('footer.terms')}</a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://twitter.com/sonarqube">{translate('footer.twitter')}</a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://about.sonarcloud.io/get-started/">{translate('footer.get_started')}</a>
+ </p>
+
+ <p className="spacer-bottom">
+ <a href="https://about.sonarcloud.io/contact/">{translate('footer.help')}</a>
+ </p>
+
+ <p>
+ <Link to="/about" onClick={onClose}>{translate('footer.about')}</Link>
+ </p>
</div>
);
}
diff --git a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNav.js b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNav.js
index cb2d2eca428..5f6de29a8f7 100644
--- a/server/sonar-web/src/main/js/app/components/nav/global/GlobalNav.js
+++ b/server/sonar-web/src/main/js/app/components/nav/global/GlobalNav.js
@@ -87,9 +87,7 @@ class GlobalNav extends React.PureComponent {
openOnboardingTutorial = () => this.setState({ helpOpen: false, onboardingTutorialOpen: true });
- finishOnboardingTutorial = () => this.setState({ onboardingTutorialOpen: false });
-
- skipOnboardingTutorial = () => {
+ closeOnboardingTutorial = () => {
this.setState({ onboardingTutorialOpen: false, onboardingTutorialTooltip: true });
this.interval = setInterval(() => {
this.setState({ onboardingTutorialTooltip: false });
@@ -131,10 +129,7 @@ class GlobalNav extends React.PureComponent {
/>}
{this.state.onboardingTutorialOpen &&
- <OnboardingModal
- onFinish={this.finishOnboardingTutorial}
- onSkip={this.skipOnboardingTutorial}
- />}
+ <OnboardingModal onFinish={this.closeOnboardingTutorial} />}
</nav>
);
}
diff --git a/server/sonar-web/src/main/js/apps/overview/components/App.js b/server/sonar-web/src/main/js/apps/overview/components/App.js
index 8a4adde9571..5e314f44351 100644
--- a/server/sonar-web/src/main/js/apps/overview/components/App.js
+++ b/server/sonar-web/src/main/js/apps/overview/components/App.js
@@ -60,7 +60,7 @@ class App extends React.PureComponent {
}
if (!component.analysisDate) {
- return <EmptyOverview {...this.props} />;
+ return <EmptyOverview component={component} />;
}
return <OverviewApp {...this.props} leakPeriodIndex="1" />;
diff --git a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js
index 8bba1c5c7a5..ba9689b3b5e 100644
--- a/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js
+++ b/server/sonar-web/src/main/js/apps/overview/components/EmptyOverview.js
@@ -17,21 +17,40 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+// @flow
import React from 'react';
+import { Link } from 'react-router';
import { translate } from '../../../helpers/l10n';
-const EmptyOverview = ({ component }) => {
+type Props = {
+ component: { key: string }
+};
+
+export default function EmptyOverview({ component }: Props) {
+ const rawMessage = translate('provisioning.no_analysis.delete');
+ const head = rawMessage.substr(0, rawMessage.indexOf('{0}'));
+ const tail = rawMessage.substr(rawMessage.indexOf('{0}') + 3);
+
return (
<div className="page page-limited">
<div className="alert alert-warning">
{translate('provisioning.no_analysis')}
</div>
+
+ <div className="big-spacer-top">
+ {head}
+ <Link
+ className="text-danger"
+ to={{ pathname: '/project/deletion', query: { id: component.key } }}>
+ {translate('provisioning.no_analysis.delete_it')}
+ </Link>
+ {tail}
+ </div>
+
<div className="big-spacer-top">
<h4>{translate('key')}</h4>
<code>{component.key}</code>
</div>
</div>
);
-};
-
-export default EmptyOverview;
+}
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js
index 78733e66992..497f104b304 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/AnalysisStep.js
@@ -69,6 +69,7 @@ export default class AnalysisStep extends React.PureComponent {
<LanguageStep
onDone={this.handleLanguageSelect}
onReset={this.handleLanguageReset}
+ organization={this.props.organization}
sonarCloud={this.props.sonarCloud}
/>
</div>
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js
index 2f79f7add07..45df83f7dcd 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js
@@ -33,7 +33,6 @@ import './styles.css';
type Props = {|
currentUser: { login: string, isLoggedIn: boolean },
onFinish: () => void,
- onSkip: () => void,
organizationsEnabled: boolean,
sonarCloud: boolean
|};
@@ -76,16 +75,12 @@ export default class Onboarding extends React.PureComponent {
this.mounted = false;
}
- finishOnboarding = (skipped: boolean = false) => {
+ finishOnboarding = () => {
this.setState({ skipping: true });
skipOnboarding().then(
() => {
if (this.mounted) {
- if (skipped) {
- this.props.onSkip();
- } else {
- this.props.onFinish();
- }
+ this.props.onFinish();
if (this.state.projectKey) {
this.context.router.push(getProjectUrl(this.state.projectKey));
@@ -119,7 +114,7 @@ export default class Onboarding extends React.PureComponent {
handleSkipClick = (event: Event) => {
event.preventDefault();
- this.finishOnboarding(true);
+ this.finishOnboarding();
};
handleFinish = (projectKey?: string) => this.setState({ finished: true, projectKey });
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OnboardingModal.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OnboardingModal.js
index 3ec32829d17..7ae51334755 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OnboardingModal.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OnboardingModal.js
@@ -23,8 +23,7 @@ import Modal from 'react-modal';
import { translate } from '../../../helpers/l10n';
type Props = {|
- onFinish: () => void,
- onSkip: () => void
+ onFinish: () => void
|};
type State = {
@@ -63,8 +62,7 @@ export default class OnboardingModal extends React.PureComponent {
contentLabel={translate('tutorials.onboarding')}
className="modal modal-large"
overlayClassName="modal-overlay">
- {OnboardingContainer != null &&
- <OnboardingContainer onFinish={this.props.onFinish} onSkip={this.props.onSkip} />}
+ {OnboardingContainer != null && <OnboardingContainer onFinish={this.props.onFinish} />}
</Modal>
);
}
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/Onboarding-test.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/Onboarding-test.js
index f336d73a79b..ae21ca80fc9 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/Onboarding-test.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/Onboarding-test.js
@@ -34,7 +34,6 @@ it('guides for on-premise', () => {
<Onboarding
currentUser={currentUser}
onFinish={jest.fn()}
- onSkip={jest.fn()}
organizationsEnabled={false}
sonarCloud={false}
/>
@@ -52,7 +51,6 @@ it('guides for sonarcloud', () => {
<Onboarding
currentUser={currentUser}
onFinish={jest.fn()}
- onSkip={jest.fn()}
organizationsEnabled={true}
sonarCloud={true}
/>
@@ -70,19 +68,18 @@ it('guides for sonarcloud', () => {
expect(wrapper).toMatchSnapshot();
});
-it('skips', () => {
- const onSkip = jest.fn();
+it('finishes', () => {
+ const onFinish = jest.fn();
const wrapper = mount(
<Onboarding
currentUser={currentUser}
- onFinish={jest.fn()}
- onSkip={onSkip}
+ onFinish={onFinish}
organizationsEnabled={false}
sonarCloud={false}
/>
);
click(wrapper.find('.js-skip'));
return doAsync(() => {
- expect(onSkip).toBeCalled();
+ expect(onFinish).toBeCalled();
});
});
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js
index 3f89a2bb241..f7a710b9472 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaGradle.js
@@ -29,7 +29,7 @@ type Props = {|
|};
export default function JavaGradle(props: Props) {
- const config = 'plugins {\n id "org.sonarqube" version "2.2"\n}';
+ const config = 'plugins {\n id "org.sonarqube" version "2.5"\n}';
const command = [
'./gradlew sonarqube',
@@ -54,6 +54,12 @@ export default function JavaGradle(props: Props) {
className="big-spacer-top markdown"
dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.gradle.docs') }}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={{
+ __html: translate('onboarding.analysis.browse_url_after_analysis')
+ }}
+ />
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js
index 6317b1bac2e..1166463012a 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/JavaMaven.js
@@ -45,6 +45,12 @@ export default function JavaMaven(props: Props) {
className="big-spacer-top markdown"
dangerouslySetInnerHTML={{ __html: translate('onboarding.analysis.java.maven.docs') }}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={{
+ __html: translate('onboarding.analysis.browse_url_after_analysis')
+ }}
+ />
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js
index 00fba90474a..fe18afad6e3 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/Msvc.js
@@ -41,7 +41,7 @@ export default function Msvc(props: Props) {
`/d:"sonar.login=${props.token}"`
];
- const command2 = 'build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild';
+ const command2 = ['build-wrapper-win-x86-64.exe', '--out-dir bw-output MsBuild.exe /t:Rebuild'];
const command3 = ['SonarQube.Scanner.MSBuild.exe end', `/d:"sonar.login=${props.token}"`];
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
index df6bf9db47f..559864e0d90 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
@@ -17,7 +17,7 @@ exports[`renders correctly 1`] = `
/>
<Command
command="plugins {
- id \\"org.sonarqube\\" version \\"2.2\\"
+ id \\"org.sonarqube\\" version \\"2.5\\"
}"
/>
<p
@@ -43,6 +43,14 @@ exports[`renders correctly 1`] = `
}
}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "onboarding.analysis.browse_url_after_analysis",
+ }
+ }
+ />
</div>
`;
@@ -63,7 +71,7 @@ exports[`renders correctly 2`] = `
/>
<Command
command="plugins {
- id \\"org.sonarqube\\" version \\"2.2\\"
+ id \\"org.sonarqube\\" version \\"2.5\\"
}"
/>
<p
@@ -89,5 +97,13 @@ exports[`renders correctly 2`] = `
}
}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "onboarding.analysis.browse_url_after_analysis",
+ }
+ }
+ />
</div>
`;
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap
index 3cd4796988b..60d6f6c8dfb 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaMaven-test.js.snap
@@ -30,6 +30,14 @@ exports[`renders correctly 1`] = `
}
}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "onboarding.analysis.browse_url_after_analysis",
+ }
+ }
+ />
</div>
`;
@@ -63,5 +71,13 @@ exports[`renders correctly 2`] = `
}
}
/>
+ <p
+ className="big-spacer-top markdown"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "onboarding.analysis.browse_url_after_analysis",
+ }
+ }
+ />
</div>
`;
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap
index c2f54b40496..564d75fb708 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Msvc-test.js.snap
@@ -33,7 +33,12 @@ exports[`renders correctly 1`] = `
}
/>
<Command
- command="build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild"
+ command={
+ Array [
+ "build-wrapper-win-x86-64.exe",
+ "--out-dir bw-output MsBuild.exe /t:Rebuild",
+ ]
+ }
/>
<Command
command={
@@ -87,7 +92,12 @@ exports[`renders correctly 2`] = `
}
/>
<Command
- command="build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild"
+ command={
+ Array [
+ "build-wrapper-win-x86-64.exe",
+ "--out-dir bw-output MsBuild.exe /t:Rebuild",
+ ]
+ }
/>
<Command
command={
diff --git a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java
index 9a184cc3f54..27dc0081917 100644
--- a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java
+++ b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java
@@ -125,7 +125,7 @@ public class CorePropertyDefinitions {
PropertyDefinition.builder(ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS)
.name("Show an onboarding tutorial to new users")
.type(BOOLEAN)
- .description("Show an onboarding tutorial to news, that explains how to analyze a first project, after logging in for the fist time.")
+ .description("Show an onboarding tutorial to new users, that explains how to analyze a first project, after logging in for the fist time.")
.category(CoreProperties.CATEGORY_GENERAL)
.defaultValue(String.valueOf(false))
.build(),
diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
index 6eb28fde7ae..f2f47860d44 100644
--- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties
+++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties
@@ -1952,6 +1952,8 @@ provisioning.no_results=There is currently no provisioned project.
provisioning.missing.key=Key is missing
provisioning.missing.name=Name is missing
provisioning.no_analysis=No analysis has been performed since creation. The only available section is the configuration.
+provisioning.no_analysis.delete=Either you should retry to analyze the project, or simply {0}.
+provisioning.no_analysis.delete_it=delete it
#------------------------------------------------------------------------------
@@ -2961,7 +2963,7 @@ onboarding.header.sonarcloud=Welcome to SonarCloud!
onboarding.header.description=Let's analyze a new project.
onboarding.token.header=Generate a token
-onboarding.token.text=We'll use it as a replacement of the user login. This will increase the security of your installation by not letting your analysis user's password going through your network.
+onboarding.token.text=The token is used to identify you when an analysis is performed. If it has been compromised, you can revoke it at any point of time in your user account.
onboarding.token.generate=Generate
onboarding.token.placeholder=Enter a name for your token
@@ -2976,6 +2978,7 @@ onboarding.organization.key_requirement=2 to 32 characters. All chars must be lo
onboarding.project_key_requirement=Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit. 400 characters max.
onboarding.analysis.header=Run analysis on your project
+onboarding.analysis.browse_url_after_analysis=Once the analysis is completed, you will be able to browse your project at the URL displayed at the end of the logs.
onboarding.language=What is your project's main language?
onboarding.language.java=Java