From f33b54f60f0172c92c6103561356898502af51c4 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 31 Jul 2018 16:32:16 +0200 Subject: [PATCH 01/51] intial import of repositroy list ui --- scm-ui/package.json | 2 + scm-ui/public/locales/en/repos.json | 6 + scm-ui/src/components/DateFromNow.js | 32 ++ .../navigation/PrimaryNavigation.js | 4 +- scm-ui/src/containers/App.css | 14 +- scm-ui/src/containers/App.js | 1 + scm-ui/src/containers/App.scss | 19 +- scm-ui/src/containers/Login.js | 2 +- scm-ui/src/containers/Main.js | 19 +- scm-ui/src/createReduxStore.js | 2 + scm-ui/src/i18n.js | 2 + .../src/repos/components/RepositoryEntry.js | 121 ++++++++ .../repos/components/RepositoryEntryLink.js | 34 +++ .../repos/components/RepositoryGroupEntry.js | 64 ++++ scm-ui/src/repos/components/RepositoryList.js | 28 ++ .../src/repos/components/groupByNamespace.js | 39 +++ .../repos/components/groupByNamespace.test.js | 74 +++++ scm-ui/src/repos/containers/Overview.js | 62 ++++ scm-ui/src/repos/modules/repos.js | 104 +++++++ scm-ui/src/repos/modules/repos.test.js | 285 ++++++++++++++++++ scm-ui/src/repos/types/Repositories.js | 25 ++ scm-ui/yarn.lock | 8 + 22 files changed, 929 insertions(+), 18 deletions(-) create mode 100644 scm-ui/public/locales/en/repos.json create mode 100644 scm-ui/src/components/DateFromNow.js create mode 100644 scm-ui/src/repos/components/RepositoryEntry.js create mode 100644 scm-ui/src/repos/components/RepositoryEntryLink.js create mode 100644 scm-ui/src/repos/components/RepositoryGroupEntry.js create mode 100644 scm-ui/src/repos/components/RepositoryList.js create mode 100644 scm-ui/src/repos/components/groupByNamespace.js create mode 100644 scm-ui/src/repos/components/groupByNamespace.test.js create mode 100644 scm-ui/src/repos/containers/Overview.js create mode 100644 scm-ui/src/repos/modules/repos.js create mode 100644 scm-ui/src/repos/modules/repos.test.js create mode 100644 scm-ui/src/repos/types/Repositories.js diff --git a/scm-ui/package.json b/scm-ui/package.json index bd182cd972..6ce2e8880e 100644 --- a/scm-ui/package.json +++ b/scm-ui/package.json @@ -6,10 +6,12 @@ "dependencies": { "bulma": "^0.7.1", "classnames": "^2.2.5", + "font-awesome": "^4.7.0", "history": "^4.7.2", "i18next": "^11.4.0", "i18next-browser-languagedetector": "^2.2.2", "i18next-fetch-backend": "^0.1.0", + "moment": "^2.22.2", "react": "^16.4.1", "react-dom": "^16.4.1", "react-i18next": "^7.9.0", diff --git a/scm-ui/public/locales/en/repos.json b/scm-ui/public/locales/en/repos.json new file mode 100644 index 0000000000..5117f64928 --- /dev/null +++ b/scm-ui/public/locales/en/repos.json @@ -0,0 +1,6 @@ +{ + "overview": { + "title": "Repositories", + "subtitle": "Overview of available repositories" + } +} diff --git a/scm-ui/src/components/DateFromNow.js b/scm-ui/src/components/DateFromNow.js new file mode 100644 index 0000000000..b47de49a3d --- /dev/null +++ b/scm-ui/src/components/DateFromNow.js @@ -0,0 +1,32 @@ +//@flow +import React from "react"; +import moment from "moment"; +import { translate } from "react-i18next"; + +type Props = { + date?: string, + + // context props + i18n: any +}; + +class DateFromNow extends React.Component { + static format(locale: string, date?: string) { + let fromNow = ""; + if (date) { + fromNow = moment(date) + .locale(locale) + .fromNow(); + } + return fromNow; + } + + render() { + const { i18n, date } = this.props; + + const fromNow = DateFromNow.format(i18n.language, date); + return {fromNow}; + } +} + +export default translate()(DateFromNow); diff --git a/scm-ui/src/components/navigation/PrimaryNavigation.js b/scm-ui/src/components/navigation/PrimaryNavigation.js index 4fff895d90..606f5814ca 100644 --- a/scm-ui/src/components/navigation/PrimaryNavigation.js +++ b/scm-ui/src/components/navigation/PrimaryNavigation.js @@ -14,8 +14,8 @@ class PrimaryNavigation extends React.Component {