Browse Source

SONAR-8300 display special message when use has no favorite projects

tags/6.2-RC1
Stas Vilchik 7 years ago
parent
commit
617497c27c

+ 2
- 2
server/sonar-web/src/main/js/apps/projects/components/AllProjects.js View File

import ProjectsListContainer from './ProjectsListContainer'; import ProjectsListContainer from './ProjectsListContainer';
import ProjectsListFooterContainer from './ProjectsListFooterContainer'; import ProjectsListFooterContainer from './ProjectsListFooterContainer';
import PageSidebar from './PageSidebar'; import PageSidebar from './PageSidebar';
import NoProjects from './NoProjects';
import { parseUrlQuery } from '../store/utils'; import { parseUrlQuery } from '../store/utils';
import '../styles.css';


export default class AllProjects extends React.Component { export default class AllProjects extends React.Component {
static propTypes = { static propTypes = {
return ( return (
<div className="page-with-sidebar projects-page"> <div className="page-with-sidebar projects-page">
<div className="page-main"> <div className="page-main">
<ProjectsListContainer/>
<ProjectsListContainer noProjectsComponent={<NoProjects/>}/>
<ProjectsListFooterContainer query={this.state.query}/> <ProjectsListFooterContainer query={this.state.query}/>
</div> </div>
<aside className="page-sidebar-fixed projects-sidebar"> <aside className="page-sidebar-fixed projects-sidebar">

+ 2
- 2
server/sonar-web/src/main/js/apps/projects/components/FavoriteProjects.js View File

*/ */
import React from 'react'; import React from 'react';
import ProjectsListContainer from './ProjectsListContainer'; import ProjectsListContainer from './ProjectsListContainer';
import '../styles.css';
import NoFavoriteProjects from './NoFavoriteProjects';


export default class FavoriteProjects extends React.Component { export default class FavoriteProjects extends React.Component {
static propTypes = { static propTypes = {
<div className="page-with-sidebar"> <div className="page-with-sidebar">
<div className="page-main"> <div className="page-main">
<div className="projects-list-container"> <div className="projects-list-container">
<ProjectsListContainer/>
<ProjectsListContainer noProjectsComponent={<NoFavoriteProjects/>}/>
</div> </div>
</div> </div>
<aside className="page-sidebar-fixed projects-sidebar"/> <aside className="page-sidebar-fixed projects-sidebar"/>

+ 36
- 0
server/sonar-web/src/main/js/apps/projects/components/NoFavoriteProjects.js View File

/*
* SonarQube
* Copyright (C) 2009-2016 SonarSource SA
* mailto:contact 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 React from 'react';
import { Link } from 'react-router';
import { translate } from '../../../helpers/l10n';

export default class NoFavoriteProjects extends React.Component {
render () {
return (
<div className="projects-empty-list">
<h3>{translate('projects.no_favorite_projects')}</h3>
<p className="big-spacer-top">{translate('projects.no_favorite_projects.engagement')}</p>
<p className="big-spacer-top">
<Link to="/projects" className="button">{translate('projects.explore_projects')}</Link>
</p>
</div>
);
}
}

+ 32
- 0
server/sonar-web/src/main/js/apps/projects/components/NoProjects.js View File

/*
* SonarQube
* Copyright (C) 2009-2016 SonarSource SA
* mailto:contact 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 React from 'react';
import { translate } from '../../../helpers/l10n';

export default class NoProjects extends React.Component {
render () {
return (
<div className="projects-empty-list">
<h3>{translate('projects.no_projects.1')}</h3>
<p className="big-spacer-top">{translate('projects.no_projects.2')}</p>
</div>
);
}
}

+ 2
- 5
server/sonar-web/src/main/js/apps/projects/components/ProjectsList.js View File

*/ */
import React from 'react'; import React from 'react';
import ProjectCardContainer from './ProjectCardContainer'; import ProjectCardContainer from './ProjectCardContainer';
import { translate } from '../../../helpers/l10n';


export default class ProjectsList extends React.Component { export default class ProjectsList extends React.Component {
static propTypes = { static propTypes = {
projects: React.PropTypes.arrayOf(React.PropTypes.string), projects: React.PropTypes.arrayOf(React.PropTypes.string),
noProjectsComponent: React.PropTypes.element.isRequired
}; };


render () { render () {
<ProjectCardContainer key={projectKey} projectKey={projectKey}/> <ProjectCardContainer key={projectKey} projectKey={projectKey}/>
)) ))
) : ( ) : (
<div className="projects-empty-list">
<h3>{translate('projects.no_projects.1')}</h3>
<p className="big-spacer-top">{translate('projects.no_projects.2')}</p>
</div>
this.props.noProjectsComponent
)} )}
</div> </div>
); );

+ 3
- 13
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

projects.no_projects.1=We couldn't find any projects matching selected criteria. projects.no_projects.1=We couldn't find any projects matching selected criteria.
projects.no_projects.2=Try to change filters to get some results. projects.no_projects.2=Try to change filters to get some results.
projects.clear_all_filters=Clear All Filters projects.clear_all_filters=Clear All Filters
projects.no_favorite_projects=You don't have any favorite projects yet.
projects.no_favorite_projects.engagement=Discover and mark as favorites projects you are interested in to have a quick access to them.
projects.explore_projects=Explore Projects




#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
component_measures.legend.size_x=Size: {0} component_measures.legend.size_x=Size: {0}
component_measures.x_of_y={0} of {1} component_measures.x_of_y={0} of {1}
component_measures.no_history=There is no historical data. component_measures.no_history=There is no historical data.

#------------------------------------------------------------------------------
#
# MY ACTIVITY
#
#------------------------------------------------------------------------------
my_activity.my_issues=My Issues
my_activity.last_week=Last Week
my_activity.all_time=All Time
my_activity.my_favorite_projects=My Favorite Projects
my_activity.no_favorite_projects=You don't have any favorite projects yet.
my_activity.no_favorite_projects.engagement=Discover and mark as favorites projects you are interested in to have a quick access to them.
my_activity.explore_projects=Explore Projects

Loading…
Cancel
Save