From 8e9aaea2920f857e027facb2c63123af75e6448c Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 13:59:25 +0100 Subject: [PATCH 01/10] update jetty to version 9.4.22.v20191022 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a7e6daba5b..7c11a2754f 100644 --- a/pom.xml +++ b/pom.xml @@ -834,8 +834,8 @@ 1.5.1 - 9.4.14.v20181114 - 9.4.14.v20181114 + 9.4.22.v20191022 + 9.4.22.v20191022 1.2.0 From 6fe2765edb1a44defdeee95f00e23776501d2eb0 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 14:13:14 +0100 Subject: [PATCH 02/10] update jackson to version 2.10.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7c11a2754f..a6c9d65ebd 100644 --- a/pom.xml +++ b/pom.xml @@ -826,7 +826,7 @@ 3.6.2.Final 1.19.4 2.11.1 - 2.9.8 + 2.10.0 4.0 2.3.0 From 7252d10b95f5be6aaf961f405296e14b79427399 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 14:14:30 +0100 Subject: [PATCH 03/10] update apache shiro to version 1.4.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a6c9d65ebd..8e4a10b790 100644 --- a/pom.xml +++ b/pom.xml @@ -839,7 +839,7 @@ 1.2.0 - 1.4.0 + 1.4.1 v5.4.0.201906121030-r-scm2 From 3a4c4b0986ec731c4d3aa6aef70bc2e6a938c7da Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 14:17:15 +0100 Subject: [PATCH 04/10] update commons-codec to version 1.13 --- pom.xml | 8 ++++++++ scm-webapp/pom.xml | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8e4a10b790..910287abf0 100644 --- a/pom.xml +++ b/pom.xml @@ -398,6 +398,14 @@ 1.1.1 + + + + commons-codec + commons-codec + 1.13 + + diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index 73431b780e..ccc642e36d 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -235,7 +235,6 @@ commons-codec commons-codec - 1.9 From e878f86b4633e362bcd51f2cade7fabb2e9b1dde Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 14:18:00 +0100 Subject: [PATCH 05/10] update apache tika to version 1.22 --- scm-webapp/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index ccc642e36d..571c3b5370 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -272,7 +272,7 @@ org.apache.tika tika-core - 1.20 + 1.22 From f5fb4fb11a154a2ae998f91c0389efcf722f781c Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 14:52:46 +0100 Subject: [PATCH 06/10] fix sonarqube warning about js array sort --- scm-ui/ui-webapp/src/containers/PluginLoader.tsx | 9 +++++---- .../ui-webapp/src/repos/sources/components/FileTree.tsx | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/scm-ui/ui-webapp/src/containers/PluginLoader.tsx b/scm-ui/ui-webapp/src/containers/PluginLoader.tsx index e24dd7e0f2..dd7d7b5152 100644 --- a/scm-ui/ui-webapp/src/containers/PluginLoader.tsx +++ b/scm-ui/ui-webapp/src/containers/PluginLoader.tsx @@ -1,4 +1,4 @@ -import * as React from "react"; +import React, { ReactNode } from "react"; import { apiClient, Loading } from "@scm-manager/ui-components"; import { getUiPluginsLink } from "../modules/indexResource"; import { connect } from "react-redux"; @@ -6,7 +6,7 @@ import loadBundle from "./loadBundle"; type Props = { loaded: boolean; - children: React.Node; + children: ReactNode; link: string; callback: () => void; }; @@ -55,7 +55,7 @@ class PluginLoader extends React.Component { }); const promises = []; - const sortedPlugins = plugins.sort(comparePluginsByName); + const sortedPlugins = [...plugins].sort(comparePluginsByName); for (const plugin of sortedPlugins) { promises.push(this.loadPlugin(plugin)); } @@ -96,7 +96,8 @@ const comparePluginsByName = (a: Plugin, b: Plugin) => { } return 0; }; -const mapStateToProps = state => { + +const mapStateToProps = (state: any) => { const link = getUiPluginsLink(state); return { link diff --git a/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx b/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx index 575544e1f5..150e4d1eb6 100644 --- a/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx +++ b/scm-ui/ui-webapp/src/repos/sources/components/FileTree.tsx @@ -87,7 +87,8 @@ class FileTree extends React.Component { }; if (tree._embedded && tree._embedded.children) { - files.push(...tree._embedded.children.sort(compareFiles)); + const children = [...tree._embedded.children].sort(compareFiles); + files.push(...children); } if (files && files.length > 0) { From 8b632fdb37c106061a51927a509e113998269f56 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 15:26:43 +0100 Subject: [PATCH 07/10] fix wrong localization of dates for locales with regions such as de_DE --- scm-ui/ui-components/src/DateFromNow.tsx | 15 ++++++++++----- scm-ui/ui-webapp/src/i18n.ts | 2 -- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/scm-ui/ui-components/src/DateFromNow.tsx b/scm-ui/ui-components/src/DateFromNow.tsx index a81cd625ba..5ed175ee92 100644 --- a/scm-ui/ui-components/src/DateFromNow.tsx +++ b/scm-ui/ui-components/src/DateFromNow.tsx @@ -12,6 +12,7 @@ type DateInput = Date | string; const supportedLocales: LocaleMap = { enUS, + en: enUS, de, es }; @@ -43,11 +44,15 @@ const DateElement = styled.time` class DateFromNow extends React.Component { getLocale = (): Locale => { const { i18n } = this.props; - const locale = supportedLocales[i18n.language]; - if (!locale) { - return enUS; + + for (const lng of i18n.languages) { + const locale = supportedLocales[lng]; + if (locale) { + return locale; + } } - return locale; + + return enUS; }; createOptions = () => { @@ -64,7 +69,7 @@ class DateFromNow extends React.Component { toDate = (value: DateInput): Date => { if (value instanceof Date) { - return value as Date; + return value; } return parseISO(value); }; diff --git a/scm-ui/ui-webapp/src/i18n.ts b/scm-ui/ui-webapp/src/i18n.ts index f7dc75d910..14898b402d 100644 --- a/scm-ui/ui-webapp/src/i18n.ts +++ b/scm-ui/ui-webapp/src/i18n.ts @@ -7,8 +7,6 @@ import { urls } from "@scm-manager/ui-components"; const loadPath = urls.withContextPath("/locales/{{lng}}/{{ns}}.json"); -// TODO load locales for moment - i18n .use(Backend) .use(LanguageDetector) From 55efed92f9f47298ca3b1f6de3019c146c51accc Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 15:29:49 +0100 Subject: [PATCH 08/10] fix DateFromNow i18n without provided locales --- scm-ui/ui-components/src/DateFromNow.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scm-ui/ui-components/src/DateFromNow.tsx b/scm-ui/ui-components/src/DateFromNow.tsx index 5ed175ee92..1803b43461 100644 --- a/scm-ui/ui-components/src/DateFromNow.tsx +++ b/scm-ui/ui-components/src/DateFromNow.tsx @@ -45,13 +45,18 @@ class DateFromNow extends React.Component { getLocale = (): Locale => { const { i18n } = this.props; - for (const lng of i18n.languages) { + for (const lng of i18n.languages || []) { const locale = supportedLocales[lng]; if (locale) { return locale; } } + const locale = supportedLocales[i18n.language]; + if (locale) { + return locale; + } + return enUS; }; From c9defc7595e955545c6787aec245aab78def1b81 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 30 Oct 2019 15:46:03 +0100 Subject: [PATCH 09/10] added missing tests for language select of DateFromNow --- scm-ui/ui-components/src/DateFromNow.test.ts | 25 ++++++++++++++++ scm-ui/ui-components/src/DateFromNow.tsx | 31 +++++++++++--------- 2 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 scm-ui/ui-components/src/DateFromNow.test.ts diff --git a/scm-ui/ui-components/src/DateFromNow.test.ts b/scm-ui/ui-components/src/DateFromNow.test.ts new file mode 100644 index 0000000000..b791b5019d --- /dev/null +++ b/scm-ui/ui-components/src/DateFromNow.test.ts @@ -0,0 +1,25 @@ +import { chooseLocale, supportedLocales } from "./DateFromNow"; + +describe("test choose locale", () => { + + it("should choose de", () => { + const locale = chooseLocale("de_DE", ["de", "en"]); + expect(locale).toBe(supportedLocales.de); + }); + + it("should choose de, even without language array", () => { + const locale = chooseLocale("de", []); + expect(locale).toBe(supportedLocales.de); + }); + + it("should choose es", () => { + const locale = chooseLocale("de", ["af", "be", "es"]); + expect(locale).toBe(supportedLocales.es); + }); + + it("should fallback en", () => { + const locale = chooseLocale("af", ["af", "be"]); + expect(locale).toBe(supportedLocales.en); + }); + +}); diff --git a/scm-ui/ui-components/src/DateFromNow.tsx b/scm-ui/ui-components/src/DateFromNow.tsx index 1803b43461..4f2a70c7ee 100644 --- a/scm-ui/ui-components/src/DateFromNow.tsx +++ b/scm-ui/ui-components/src/DateFromNow.tsx @@ -10,7 +10,7 @@ type LocaleMap = { type DateInput = Date | string; -const supportedLocales: LocaleMap = { +export const supportedLocales: LocaleMap = { enUS, en: enUS, de, @@ -41,23 +41,26 @@ const DateElement = styled.time` cursor: help; `; -class DateFromNow extends React.Component { - getLocale = (): Locale => { - const { i18n } = this.props; - - for (const lng of i18n.languages || []) { - const locale = supportedLocales[lng]; - if (locale) { - return locale; - } - } - - const locale = supportedLocales[i18n.language]; +export const chooseLocale = (language: string, languages?: string[]) => { + for (const lng of languages || []) { + const locale = supportedLocales[lng]; if (locale) { return locale; } + } - return enUS; + const locale = supportedLocales[language]; + if (locale) { + return locale; + } + + return enUS; +}; + +class DateFromNow extends React.Component { + getLocale = (): Locale => { + const { i18n } = this.props; + return chooseLocale(i18n.language, i18n.languages); }; createOptions = () => { From b9fd0b301119b271869cd4392329195c5ea0b25c Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Fri, 1 Nov 2019 09:13:35 +0000 Subject: [PATCH 10/10] Close branch feature/fix_sonar_and_lifecycle