From 71fec25c4056c1dcfe75769c2041b1d56a89a2e5 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 5 Sep 2017 11:00:00 +0200 Subject: SONAR-9784 rewrite projects management page --- .../main/js/apps/projectsManagement/ProjectRow.tsx | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 server/sonar-web/src/main/js/apps/projectsManagement/ProjectRow.tsx (limited to 'server/sonar-web/src/main/js/apps/projectsManagement/ProjectRow.tsx') diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/ProjectRow.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/ProjectRow.tsx new file mode 100644 index 00000000000..60f951dd32c --- /dev/null +++ b/server/sonar-web/src/main/js/apps/projectsManagement/ProjectRow.tsx @@ -0,0 +1,96 @@ +/* + * 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 * as React from 'react'; +import { Link } from 'react-router'; +import { Project, Visibility } from './utils'; +import PrivateBadge from '../../components/common/PrivateBadge'; +import Checkbox from '../../components/controls/Checkbox'; +import QualifierIcon from '../../components/shared/QualifierIcon'; +import { translate } from '../../helpers/l10n'; +import { getComponentPermissionsUrl } from '../../helpers/urls'; + +interface Props { + onApplyTemplateClick: (project: Project) => void; + onProjectCheck: (project: Project, checked: boolean) => void; + project: Project; + selected: boolean; +} + +export default class ProjectRow extends React.PureComponent { + handleProjectCheck = (checked: boolean) => { + this.props.onProjectCheck(this.props.project, checked); + }; + + handleApplyTemplateClick = (event: React.SyntheticEvent) => { + event.preventDefault(); + event.currentTarget.blur(); + this.props.onApplyTemplateClick(this.props.project); + }; + + render() { + const { project, selected } = this.props; + + return ( + + + + + + + + {project.name} + + + + + + {project.key} + + + + + {project.visibility === Visibility.Private && } + + + +
+ + +
+ + + ); + } +} -- cgit v1.2.3