ソースを参照

SONAR-9545 Better wording when searching for a project in My Favorites scope

tags/6.6-RC1
Grégoire Aubert 6年前
コミット
aa39b79abe

+ 1
- 0
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx ファイルの表示

@@ -271,6 +271,7 @@ export default class AllProjects extends React.PureComponent<Props, State> {
isFiltered={this.isFiltered()}
organization={this.props.organization}
projects={this.state.projects}
query={this.state.query}
/>
)}
<ListFooter

+ 42
- 0
server/sonar-web/src/main/js/apps/projects/components/EmptyFavoriteSearch.tsx ファイルの表示

@@ -0,0 +1,42 @@
/*
* SonarQube
* Copyright (C) 2009-2017 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router';
import { translate } from '../../../helpers/l10n';
import { Query } from '../query';
import '../../../components/common/EmptySearch.css';

export default function EmptyFavoriteSearch({ query }: { query: Query }) {
return (
<div className="empty-search">
<h3>{translate('no_results_search.favorites')}</h3>
<p className="big-spacer-top">
<FormattedMessage
defaultMessage={translate('no_results_search.favorites.2')}
id="no_results_search.favorites.2"
values={{
url: <Link to={{ pathname: '/projects', query }}>{translate('all')}</Link>
}}
/>
</p>
</div>
);
}

+ 7
- 6
server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx ファイルの表示

@@ -21,8 +21,10 @@ import * as React from 'react';
import ProjectCard from './ProjectCard';
import NoFavoriteProjects from './NoFavoriteProjects';
import EmptyInstance from './EmptyInstance';
import EmptyFavoriteSearch from './EmptyFavoriteSearch';
import EmptySearch from '../../../components/common/EmptySearch';
import { Project } from '../types';
import { Query } from '../query';

interface Props {
cardType?: string;
@@ -30,17 +32,16 @@ interface Props {
isFiltered: boolean;
organization?: { key: string };
projects: Project[];
query: Query;
}

export default class ProjectsList extends React.PureComponent<Props> {
renderNoProjects() {
if (this.props.isFavorite && !this.props.isFiltered) {
return <NoFavoriteProjects />;
} else if (!this.props.isFiltered) {
return <EmptyInstance />;
} else {
return <EmptySearch />;
const { isFavorite, isFiltered, query } = this.props;
if (isFiltered) {
return isFavorite ? <EmptyFavoriteSearch query={query} /> : <EmptySearch />;
}
return isFavorite ? <NoFavoriteProjects /> : <EmptyInstance />;
}

render() {

+ 1
- 0
server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap ファイルの表示

@@ -91,6 +91,7 @@ exports[`renders 1`] = `
},
]
}
query={Object {}}
/>
<ListFooter
count={1}

+ 2
- 0
sonar-core/src/main/resources/org/sonar/l10n/core.properties ファイルの表示

@@ -208,7 +208,9 @@ no_data=No data
no_results=No results
no_results_for_x=No results for "{0}"
no_results_search=We couldn't find any results matching selected criteria.
no_results_search.favorites=We couldn't find any results matching selected criteria in your favorites.
no_results_search.2=Try to change filters to get some results.
no_results_search.favorites.2=Would you like to search among {url} projects?
page_extension_failed=Page extension failed.
set_as_default=Set as Default
unset_as_default=Unset as Default

読み込み中…
キャンセル
保存