diff --git a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/ExtendedGermplasm.java b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/ExtendedGermplasm.java index ca05f14c537c5d99efbd7e5e9120a17f2cca18b2..254e0c333d87a67d87be9286a7dac189411321a4 100644 --- a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/ExtendedGermplasm.java +++ b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/ExtendedGermplasm.java @@ -20,6 +20,9 @@ public interface ExtendedGermplasm extends BrapiGermplasm, GnpISInternal { @JsonView(JSONView.GnpISFields.class) List<String> getTaxonCommonNames(); + @JsonView(JSONView.GnpISFields.class) + String getTaxonComment(); + @JsonView(JSONView.GnpISFields.class) String getGeneticNature(); diff --git a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/GermplasmVO.java b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/GermplasmVO.java index 2621dd58fbc6085afc7378a61a3441079444f097..10c8779f8b44f5991f645cbb79da8d36d8750a8d 100644 --- a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/GermplasmVO.java +++ b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/GermplasmVO.java @@ -55,6 +55,7 @@ public class GermplasmVO private List<String> taxonSynonyms; private List<String> taxonCommonNames; + private String taxonComment; private String geneticNature; private String comment; private PhotoVO photo; @@ -354,6 +355,15 @@ public class GermplasmVO this.taxonCommonNames = taxonCommonNames; } + @Override + public String getTaxonComment() { + return taxonComment; + } + + public void setTaxonComment(String taxonComment) { + this.taxonComment = taxonComment; + } + @Override public String getGeneticNature() { return geneticNature; diff --git a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/Photo.java b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/Photo.java index 957c76cff52949204d61ecf29770bcd2e829961e..4f5c6327b9929c7e48da8fa9bfab7e6b1de3d8a7 100644 --- a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/Photo.java +++ b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/Photo.java @@ -8,10 +8,10 @@ import fr.inra.urgi.gpds.domain.JSONView; */ public interface Photo { @JsonView(JSONView.GnpISFields.class) - String getFileName(); + String getFile(); @JsonView(JSONView.GnpISFields.class) - String getThumbnailFileName(); + String getThumbnailFile(); @JsonView(JSONView.GnpISFields.class) String getPhotoName(); diff --git a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/PhotoVO.java b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/PhotoVO.java index 2ee3cea1a703e3e703da3dfb5ee1dcccaea5572d..748db321ec9d8f291070677db2d8ac7ab8e56cfd 100644 --- a/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/PhotoVO.java +++ b/backend/src/main/java/fr/inra/urgi/gpds/domain/data/germplasm/PhotoVO.java @@ -6,28 +6,28 @@ public class PhotoVO implements Serializable, Photo { private static final long serialVersionUID = -4993890419772211643L; - private String fileName; - private String thumbnailFileName; + private String file; + private String thumbnailFile; private String photoName; private String description; private String copyright; @Override - public String getFileName() { - return fileName; + public String getFile() { + return file; } - public void setFileName(String fileName) { - this.fileName = fileName; + public void setFile(String file) { + this.file = file; } @Override - public String getThumbnailFileName() { - return thumbnailFileName; + public String getThumbnailFile() { + return thumbnailFile; } - public void setThumbnailFileName(String thumbnailFileName) { - this.thumbnailFileName = thumbnailFileName; + public void setThumbnailFile(String thumbnailFile) { + this.thumbnailFile = thumbnailFile; } @Override diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 362fd3605dad3122e12b3c7a254afdf3b5fa9efe..50513b5580d696ec3a7e99e670549ab90fd9b0b2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -103,7 +103,7 @@ "dependencies": { "source-map": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true } @@ -353,7 +353,7 @@ }, "load-json-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { @@ -400,7 +400,7 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, @@ -859,13 +859,13 @@ }, "@types/node": { "version": "8.9.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "resolved": "http://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", "dev": true }, "@types/q": { "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "resolved": "http://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", "dev": true }, @@ -1268,7 +1268,6 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, - "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -1391,7 +1390,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -1497,7 +1496,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -1849,7 +1848,7 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { @@ -1886,7 +1885,7 @@ }, "browserify-rsa": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { @@ -1940,7 +1939,7 @@ }, "buffer": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { @@ -2015,7 +2014,7 @@ }, "cacache": { "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { @@ -2066,7 +2065,7 @@ }, "camelcase-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "optional": true, @@ -2324,7 +2323,7 @@ }, "colors": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, @@ -2469,8 +2468,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -2594,7 +2592,7 @@ }, "create-hash": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { @@ -2607,7 +2605,7 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { @@ -2835,7 +2833,7 @@ "dependencies": { "globby": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "resolved": "http://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { @@ -2848,7 +2846,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -2866,8 +2864,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true + "dev": true }, "depd": { "version": "1.1.2", @@ -2926,7 +2923,7 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { @@ -2971,7 +2968,7 @@ }, "doctrine": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", "dev": true, "requires": { @@ -3117,7 +3114,7 @@ }, "engine.io-client": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "dev": true, "requires": { @@ -3207,7 +3204,7 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { @@ -3624,7 +3621,7 @@ }, "finalhandler": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, "requires": { @@ -3769,7 +3766,7 @@ }, "fs-access": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { @@ -3834,8 +3831,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3856,14 +3852,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3878,20 +3872,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -4008,8 +3999,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -4021,7 +4011,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4036,7 +4025,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4044,14 +4032,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4070,7 +4056,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -4151,8 +4136,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4164,7 +4148,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4250,8 +4233,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -4287,7 +4269,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4307,7 +4288,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4351,14 +4331,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -4367,7 +4345,6 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -4380,7 +4357,6 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -4418,12 +4394,11 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "optional": true + "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, @@ -4599,8 +4574,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true + "dev": true }, "has-value": { "version": "1.0.0", @@ -4703,7 +4677,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -4753,7 +4727,7 @@ }, "http-proxy-middleware": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", "dev": true, "requires": { @@ -5320,8 +5294,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true, - "optional": true + "dev": true }, "is-windows": { "version": "1.0.2", @@ -5438,7 +5411,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, @@ -5635,7 +5608,7 @@ }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, @@ -5728,13 +5701,13 @@ "dependencies": { "core-js": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", "dev": true }, "es6-promise": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", "dev": true }, @@ -5746,7 +5719,7 @@ }, "readable-stream": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { @@ -5961,10 +5934,9 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -5975,10 +5947,9 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "optional": true + "dev": true } } }, @@ -6253,8 +6224,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "optional": true + "dev": true }, "map-visit": { "version": "1.0.0", @@ -6278,7 +6248,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -6305,7 +6275,7 @@ }, "meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "optional": true, @@ -6517,7 +6487,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -6685,7 +6655,7 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true @@ -6777,7 +6747,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "optional": true, @@ -6902,7 +6872,6 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -7078,13 +7047,13 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "optional": true, @@ -7094,7 +7063,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, @@ -7387,7 +7356,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, @@ -7647,7 +7616,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -7675,7 +7644,7 @@ }, "globby": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "resolved": "http://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { @@ -7689,7 +7658,7 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, @@ -7898,7 +7867,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -7909,7 +7878,6 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, - "optional": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -7921,7 +7889,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -7930,10 +7897,9 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "optional": true + "dev": true } } }, @@ -7942,7 +7908,6 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, - "optional": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -7953,7 +7918,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, - "optional": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -7964,7 +7928,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, - "optional": true, "requires": { "pinkie-promise": "^2.0.0" } @@ -7973,7 +7936,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { @@ -8058,7 +8021,7 @@ }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, @@ -8073,7 +8036,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -8269,7 +8232,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { @@ -8320,7 +8283,7 @@ }, "sax": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz", "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", "dev": true }, @@ -8348,7 +8311,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "optional": true, @@ -8525,7 +8488,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { @@ -8775,7 +8738,7 @@ }, "socket.io-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "resolved": "http://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "dev": true, "requires": { @@ -9227,7 +9190,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -9239,14 +9202,13 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, - "optional": true, "requires": { "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, @@ -9300,7 +9262,7 @@ }, "source-map": { "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { @@ -9343,7 +9305,7 @@ }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "optional": true, @@ -9535,7 +9497,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -10175,7 +10137,7 @@ }, "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { @@ -10596,7 +10558,6 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -10618,7 +10579,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -10661,7 +10622,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true } @@ -10669,7 +10630,7 @@ }, "xmlbuilder": { "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", "dev": true }, diff --git a/frontend/src/app/brapi.service.spec.ts b/frontend/src/app/brapi.service.spec.ts index a83f8ef65fad2c060aa12c80739ee6b109e59f07..8dd3d1c7fd9b98039fb8db76f9831370384e3f3f 100644 --- a/frontend/src/app/brapi.service.spec.ts +++ b/frontend/src/app/brapi.service.spec.ts @@ -291,6 +291,7 @@ describe('BrapiService', () => { genusSpeciesSubtaxa: null, taxonSynonyms: ['pomme', 'api'], taxonCommonNames: ['pomme', 'api'], + taxonComment: null, geneticNature: null, comment: null, photo: null, diff --git a/frontend/src/app/germplasm-card/germplasm-card.component.html b/frontend/src/app/germplasm-card/germplasm-card.component.html index 7e3129e8ff3e41d6d0e74c53fb638fda16df5253..45d8adb7825386544951ae4cbd2997dfa7120d7d 100644 --- a/frontend/src/app/germplasm-card/germplasm-card.component.html +++ b/frontend/src/app/germplasm-card/germplasm-card.component.html @@ -3,7 +3,7 @@ <ng-container *ngIf="germplasmGnpis"> <h3 class="mb-4"> <img *ngIf="germplasmGnpis.holdingGenbank && germplasmGnpis.holdingGenbank.instituteName" - [src]="IMAGES_BRC_URL" + [src]="germplasmGnpis.holdingGenbank.logo" align="right"/> Germplasm: {{ germplasmGnpis.germplasmName }} </h3> @@ -14,153 +14,168 @@ <div class="row align-items-center"> <!--Templates for gerplasm card--> - <ng-template #holdingInstituteTemplate> + <ng-template #taxonTemplate> <gpds-card-row - label="" - [test]="germplasmGnpis.holdingInstitute && germplasmGnpis.holdingInstitute.logo"> + label="Genus" + [test]="germplasmGnpis.genus"> <ng-template> - <img - [src]="IMAGES_INSTITUTION_URL + germplasmGnpis.holdingInstitute.logo"/> + <i>{{ germplasmGnpis.genus }}</i> </ng-template> </gpds-card-row> <gpds-card-row - label="Code" - [value]="germplasmGnpis.holdingInstitute.instituteCode"> - </gpds-card-row> - - <gpds-card-row - label="Acronym" - [value]="germplasmGnpis.holdingInstitute.acronym"> - </gpds-card-row> - - <gpds-card-row - label="Organisation" - [value]="germplasmGnpis.holdingInstitute.organisation"> - </gpds-card-row> - - <gpds-card-row - label="Type" - [value]="germplasmGnpis.holdingInstitute.instituteType"> - </gpds-card-row> - - <gpds-card-row - label="Address" - [value]="germplasmGnpis.holdingInstitute.address"> + label="Species" + [test]="germplasmGnpis.species"> + <ng-template> + <i>{{ germplasmGnpis.species }}</i> + {{ germplasmGnpis.speciesAuthority ? '(' + germplasmGnpis.speciesAuthority + ')' : '' }} + </ng-template> </gpds-card-row> <gpds-card-row - label="Website" - [test]="germplasmGnpis.holdingInstitute.webSite"> + label="Subtaxa" + [test]="germplasmGnpis.subtaxa"> <ng-template> - <a [href]="germplasmGnpis.breeder.institute.webSite" target="_blank"> - {{ germplasmGnpis.holdingInstitute.webSite }} - </a> + <i>{{ germplasmGnpis.subtaxa }}</i> + {{ germplasmGnpis.subtaxaAuthority ? '(' + germplasmGnpis.subtaxaAuthority + ')' : '' }} </ng-template> </gpds-card-row> - </ng-template> - - - <ng-template #BreederInstituteTemplate> - <gpds-card-row - label="" - [test]="germplasmGnpis.breeder && germplasmGnpis.breeder.institute && germplasmGnpis.breeder.institute.logo"> + label="Authority" + [test]="germplasmTaxonAuthor"> <ng-template> - <img - [src]="IMAGES_INSTITUTION_URL + germplasmGnpis.breeder.institute.logo"/> + {{ germplasmTaxonAuthor }} </ng-template> </gpds-card-row> <gpds-card-row - label="Code" - [value]="germplasmGnpis.breeder.institute.instituteCode"> - </gpds-card-row> + label="Taxon ID" + [test]="taxonIdsWithURL && taxonIdsWithURL.length > 0"> + <ng-template> + <ng-container *ngFor="let taxonRef of taxonIdsWithURL"> - <gpds-card-row - label="Acronym" - [value]="germplasmGnpis.breeder.institute.acronym"> - </gpds-card-row> + <gpds-card-row + [label]="taxonRef.sourceName" + [test]="taxonRef.url"> + <ng-template> + <a [href]="taxonRef.url" target="_blank"> + {{ taxonRef.taxonId }} + </a> + </ng-template> + </gpds-card-row> - <gpds-card-row - label="Organisation" - [value]="germplasmGnpis.breeder.institute.organisation"> + <gpds-card-row + [label]="taxonRef.sourceName" + [test]="!taxonRef.url"> + <ng-template> + {{ taxonRef.taxonId }} + </ng-template> + </gpds-card-row> + + </ng-container> + </ng-template> </gpds-card-row> <gpds-card-row - label="Type" - [value]="germplasmGnpis.breeder.institute.instituteType"> + label="Comment" + [test]="germplasmGnpis.taxonComment"> + <ng-template> + {{ germplasmGnpis.taxonComment }} + </ng-template> </gpds-card-row> <gpds-card-row - label="Address" - [value]="germplasmGnpis.breeder.institute.address"> + label="Taxon common names" + [test]="germplasmGnpis.taxonCommonNames && germplasmGnpis.taxonCommonNames.length > 0"> + <ng-template> + <div class="content-overflow"> + {{ germplasmGnpis.taxonCommonNames.join(', ') }} + </div> + </ng-template> </gpds-card-row> <gpds-card-row - label="Website" - [test]="germplasmGnpis.breeder.institute.webSite"> + label="Taxon synonyms" + [test]="germplasmGnpis.taxonSynonyms && germplasmGnpis.taxonSynonyms.length > 0"> <ng-template> - <a [href]="germplasmGnpis.breeder.institute.webSite" target="_blank"> - {{ germplasmGnpis.breeder.institute.webSite }} - </a> + <div class="content-overflow"> + <i>{{ germplasmGnpis.taxonSynonyms.join(', ') }}</i> + </div> </ng-template> </gpds-card-row> - </ng-template> - <ng-template #CollectorInstituteTemplate> - + <ng-template #instituteTemplate let-logo="logo" let-code="instituteCode" let-acronym="acronym" let-organisation="organisation" let-type="instituteType" let-webSite="webSite" let-address="address"> <gpds-card-row label="" - [test]="germplasmGnpis.collector && germplasmGnpis.collector.institute && germplasmGnpis.collector.institute.logo"> + [test]="logo"> <ng-template> <img - [src]="IMAGES_INSTITUTION_URL + germplasmGnpis.collector.institute.logo"/> + [src]="logo"/> </ng-template> </gpds-card-row> <gpds-card-row label="Code" - [value]="germplasmGnpis.collector.institute.instituteCode"> + [value]="code"> </gpds-card-row> <gpds-card-row label="Acronym" - [value]="germplasmGnpis.collector.institute.acronym"> + [value]="acronym"> </gpds-card-row> <gpds-card-row label="Organisation" - [value]="germplasmGnpis.collector.institute.organisation"> + [value]="organisation"> + </gpds-card-row> + + <gpds-card-row + label="Type" + [value]="type"> </gpds-card-row> <gpds-card-row label="Address" - [value]="germplasmGnpis.collector.institute.address"> + [value]="address"> </gpds-card-row> <gpds-card-row label="Website" - [test]="germplasmGnpis.collector.institute.webSite"> + [test]="webSite"> <ng-template> - <a [href]="germplasmGnpis.collector.institute.webSite" target="_blank"> - {{ germplasmGnpis.collector.institute.webSite }} + <a [href]="webSite" target="_blank"> + {{ webSite }} </a> </ng-template> </gpds-card-row> + </ng-template> + + <ng-template #holdingInstituteTemplate> + <ng-container *ngTemplateOutlet="instituteTemplate;context:germplasmGnpis.holdingInstitute"> + </ng-container> + </ng-template> + <ng-template #collectorInstituteTemplate> + <ng-container *ngTemplateOutlet="instituteTemplate;context:germplasmGnpis.collector.institute"> + </ng-container> </ng-template> + <ng-template #breederInstituteTemplate> + <ng-container *ngTemplateOutlet="instituteTemplate;context:germplasmGnpis.breeder.institute"> + </ng-container> + </ng-template> <!--Section for the image representing the germplasm and the details about this image--> - <div class="col-auto field" *ngIf="germplasmGnpis.photo && germplasmGnpis.photo.thumbnailFileName"> - <a class="btn popovers" data-boundary="window" placement="right" [ngbPopover]="imageTemplate" + <div class="col-auto field" *ngIf="germplasmGnpis.photo && germplasmGnpis.photo.thumbnailFile"> + <a class="btn popovers" data-boundary="window" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="imageTemplate" [popoverTitle]="germplasmGnpis.photo.photoName" container="body"> <img - [src]="IMAGES_ACCESSION_URL + germplasmGnpis.holdingGenbank.instituteCode + '/' + germplasmGnpis.photo.thumbnailFileName" + [src]="germplasmGnpis.photo.thumbnailFile" class="img-fluid"> <figcaption class="figure-caption"> Click to see more details @@ -170,7 +185,7 @@ <ng-template #imageTemplate> <div class="card ngb-popover-window "> <img class="card-img-top" - [src]="IMAGES_ACCESSION_URL + germplasmGnpis.holdingGenbank.instituteCode + '/' + germplasmGnpis.photo.fileName" + [src]="germplasmGnpis.photo.file" alt="" width="250px"> <div class="card-body"> @@ -241,7 +256,6 @@ </ng-template> </gpds-card-row> - <gpds-card-row label="Accession synonyms" [test]="germplasmGnpis.synonyms && germplasmGnpis.synonyms.length > 0"> @@ -254,30 +268,16 @@ <gpds-card-row label="Taxon" - [test]="germplasmGnpis.genus || germplasmGnpis.species || germplasmGnpis.subtaxa"> - <ng-template> - <i>{{ germplasmGnpis.genus }} {{ germplasmGnpis.species }} {{ germplasmGnpis.subtaxa }}</i> - {{ germplasmGnpis.speciesAuthority ? '(' + germplasmGnpis.speciesAuthority + ')' : '' }} - </ng-template> - </gpds-card-row> - - <gpds-card-row - label="Taxon common names" - [test]="germplasmGnpis.taxonCommonNames && germplasmGnpis.taxonCommonNames.length > 0"> - <ng-template> - <div class="content-overflow"> - {{ germplasmGnpis.taxonCommonNames.join(', ') }} - </div> - </ng-template> - </gpds-card-row> - - <gpds-card-row - label="Taxon synonyms" - [test]="germplasmGnpis.taxonSynonyms && germplasmGnpis.taxonSynonyms.length > 0"> + [test]="germplasmTaxon"> <ng-template> - <div class="content-overflow"> - <i>{{ germplasmGnpis.taxonSynonyms.join(', ') }}</i> - </div> + <a class="popover-underline" data-boundary="window" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="taxonTemplate" + [popoverTitle]="germplasmTaxon" + container="body"> + <i>{{ germplasmTaxon }}</i> + {{ germplasmTaxonAuthor ? '(' + germplasmTaxonAuthor + ')' : '' }} + </a> </ng-template> </gpds-card-row> @@ -306,6 +306,16 @@ [value]="germplasmGnpis.comment"> </gpds-card-row> + <gpds-card-row + label="Origin site" + [test]="germplasmGnpis.originSite && germplasmGnpis.originSite.siteName"> + <ng-template> + <a [routerLink]="['/sites/', germplasmGnpis.originSite.siteId]"> + {{ germplasmGnpis.originSite.siteName }} + </a> + </ng-template> + </gpds-card-row> + </div> </ng-template> </gpds-card-section> @@ -321,14 +331,15 @@ <gpds-card-row label="Institution"> <ng-template> - <a class="popover-underline" data-boundary="window" placement="top" + <a class="popover-underline" data-boundary="window" placement="auto" + [autoClose]="'outside'" [ngbPopover]="holdingInstituteTemplate" [popoverTitle]="germplasmGnpis.holdingInstitute.instituteName" container="body"> {{ germplasmGnpis.holdingInstitute.instituteName }}</a> </ng-template> </gpds-card-row> - + <gpds-card-row label="Stock center name" [test]="germplasmGnpis.holdingGenbank.instituteName && germplasmGnpis.holdingGenbank.webSite"> @@ -356,23 +367,13 @@ </ng-template> </gpds-card-section> - + <!--Section for the information about the collector of the germplasm--> <gpds-card-section header="Collecting" - [test]="checkOriginCollecting()"> + [test]="checkCollecting()"> <ng-template> <div class="card-body card-section-body"> - <gpds-card-row - label="Origin site" - [test]="germplasmGnpis.originSite && germplasmGnpis.originSite.siteName"> - <ng-template> - <a [routerLink]="['/sites/', germplasmGnpis.originSite.siteId]"> - {{ germplasmGnpis.originSite.siteName }} - </a> - </ng-template> - </gpds-card-row> - <gpds-card-row label="Collecting site" [test]="germplasmGnpis.collectingSite && germplasmGnpis.collectingSite.siteName"> @@ -419,8 +420,9 @@ label="Institution" [test]="germplasmGnpis.collector.institute && germplasmGnpis.collector.institute.instituteName"> <ng-template> - <a class="popovers" placement="top" - [ngbPopover]="CollectorInstituteTemplate" + <a class="popover-underline" data-boundary="window" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="collectorInstituteTemplate" [popoverTitle]="germplasmGnpis.collector.institute.instituteName"> {{ germplasmGnpis.collector.institute.instituteName }} </a> @@ -434,10 +436,12 @@ {{ germplasmGnpis.collector.accessionNumber }} </ng-template> </gpds-card-row> + </div> </ng-template> </gpds-card-section> + <!--Section for the information about the breeder of the germplasm--> <gpds-card-section header="Breeder" [test]="checkBreeder()"> @@ -448,8 +452,9 @@ label="Institute" [test]="germplasmGnpis.breeder.institute && germplasmGnpis.breeder.institute.instituteName"> <ng-template> - <a class="popovers" placement="top" - [ngbPopover]="BreederInstituteTemplate" + <a class="popover-underline" data-boundary="window" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="breederInstituteTemplate" [popoverTitle]="germplasmGnpis.breeder.institute.instituteName"> {{ germplasmGnpis.breeder.institute.instituteName }} </a> @@ -475,14 +480,17 @@ label="Catalog deregistration year" [value]="germplasmGnpis.breeder.deregistrationYear"> </gpds-card-row> + </div> </ng-template> </gpds-card-section> + <!--Section for the information about the donor of the germplasm--> <gpds-card-section header="Donor" [test]="germplasmGnpis.donors && germplasmGnpis.donors.length > 0"> <ng-template> + <gpds-card-table [headers]="[ 'Institute name', @@ -494,56 +502,15 @@ [rows]="germplasmGnpis.donors"> <ng-template let-row> <tr> - <ng-template #InstituteTemplate> - - <gpds-card-row - label="" - [test]="row.donorInstitute && row.donorInstitute.logo"> - <ng-template> - <img - [src]="IMAGES_INSTITUTION_URL + row.donorInstitute.logo"/> - </ng-template> - </gpds-card-row> - - <gpds-card-row - label="Code" - [value]="row.donorInstitute.instituteCode"> - </gpds-card-row> - - <gpds-card-row - label="Acronym" - [value]="row.donorInstitute.acronym"> - </gpds-card-row> - - <gpds-card-row - label="Organisation" - [value]="row.donorInstitute.organisation"> - </gpds-card-row> - - <gpds-card-row - label="Type" - [value]="row.donorInstitute.instituteType"> - </gpds-card-row> - - <gpds-card-row - label="Address" - [value]="row.donorInstitute.address"> - </gpds-card-row> - - <gpds-card-row - label="Website" - [test]="row.donorInstitute.webSite"> - <ng-template> - <a [href]=" row.donorInstitute.webSite " target="_blank"> - {{ row.donorInstitute.webSite }} - </a> - </ng-template> - </gpds-card-row> + <ng-template #donorInstituteTemplate> + <ng-container *ngTemplateOutlet="instituteTemplate;context:row.donorInstitute"> + </ng-container> </ng-template> <td> - <a class="popovers" placement="top" - [ngbPopover]="InstituteTemplate" + <a class="popovers" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="donorInstituteTemplate" [popoverTitle]="row.donorInstitute.instituteName"> {{ row.donorInstitute.instituteName }} </a> @@ -552,13 +519,14 @@ <td>{{ row.donationDate }}</td> <td>{{ row.donorAccessionNumber }}</td> <td>{{ row.donorGermplasmPUI }}</td> - </tr> + </tr> </ng-template> - </gpds-card-table> + </ng-template> </gpds-card-section> + <!--Section for the information about the distributor of the germplasm--> <gpds-card-section header="Distributor" [test]="germplasmGnpis.distributors && germplasmGnpis.distributors.length>0"> @@ -570,61 +538,19 @@ 'Institute', 'Accession number', 'Distribution status' - ]" [rows]="germplasmGnpis.distributors"> <ng-template let-row> <tr> - <ng-template #InstituteTemplate> - - <gpds-card-row - label="" - [test]="row.institute && row.institute.logo"> - <ng-template> - <img - [src]="IMAGES_INSTITUTION_URL + row.institute.logo"/> - </ng-template> - </gpds-card-row> - - <gpds-card-row - label="Code" - [value]="row.institute.instituteCode"> - </gpds-card-row> - - <gpds-card-row - label="Acronym" - [value]="row.institute.acronym"> - </gpds-card-row> - - <gpds-card-row - label="Organisation" - [value]="row.institute.organisation"> - </gpds-card-row> - - <gpds-card-row - label="Type" - [value]="row.institute.instituteType"> - </gpds-card-row> - - <gpds-card-row - label="Address" - [value]="row.institute.address"> - </gpds-card-row> - - <gpds-card-row - label="Website" - [test]="row.institute.webSite"> - <ng-template> - <a [href]="row.institute.webSite" target="_blank"> - {{ row.institute.webSite }} - </a> - </ng-template> - </gpds-card-row> + <ng-template #distributorInstituteTemplate> + <ng-container *ngTemplateOutlet="instituteTemplate;context:row.institute"> + </ng-container> </ng-template> <td> - <a class="popovers" placement="top" - [ngbPopover]="InstituteTemplate" + <a class="popovers" placement="auto" + [autoClose]="'outside'" + [ngbPopover]="instituteTemplate" [popoverTitle]="row.institute.instituteName"> {{ row.institute.instituteName }} </a> @@ -633,12 +559,12 @@ <td>{{ row.distributionStatus }}</td> </tr> </ng-template> - </gpds-card-table> </ng-template> </gpds-card-section> + <!--Section for the information about the primary descriptors of the germplasm--> <gpds-card-section header="Evaluation Data" [test]="germplasmAttributes && germplasmAttributes.length > 0"> @@ -656,6 +582,7 @@ </ng-template> </gpds-card-section> + <!--Section for the information about the genealoggy of the germplasm--> <gpds-card-section header="Genealogy" [test]="checkPedigree() || checkProgeny()"> @@ -717,7 +644,7 @@ </gpds-card-row> <gpds-card-row - label="Sibling accessions" + label="Sibling accession" [test]="germplasmPedigree && (germplasmPedigree.siblings && germplasmPedigree.siblings.length > 0)"> <ng-template> @@ -725,7 +652,7 @@ <ng-container *ngFor="let sibling of germplasmPedigree.siblings"> <a [routerLink]="['/germplasm']" [queryParams]="{id:sibling.germplasmDbId }"> {{ sibling.defaultDisplayName }} - </a>, + </a> </ng-container> </div> @@ -733,7 +660,7 @@ </gpds-card-row> <gpds-card-row - label="Descendant :" + label="Descendant" [test]="checkProgeny()"> </gpds-card-row> @@ -748,7 +675,7 @@ <ng-container *ngFor="let sibling of child.sibblings"> <a [routerLink]="['/germplasm']" [queryParams]="{id:sibling.pui}"> {{ sibling.name }} - </a>, + </a> </ng-container> </ng-template> @@ -760,12 +687,12 @@ </ng-template> </gpds-card-section> + <!--Section for the information about the population, collection and panel of the germplasm--> <gpds-card-section header="Population" [test]="germplasmGnpis.population && germplasmGnpis.population.length > 0"> <ng-template> - <div class="card-body card-section-body card-section-body"> - + <div class="card-body card-section-body card-section-body"> <ng-container *ngFor="let population of germplasmGnpis.population"> <gpds-card-row @@ -782,6 +709,7 @@ </a> </ng-template> </gpds-card-row> + <gpds-card-row [label]="population.type ? population.name + ' (' + population.type + ')' : population.name" [test]="population.germplasmRef && population.germplasmRef.pui && population.germplasmRef.pui == germplasmGnpis.germplasmDbId"> @@ -793,6 +721,7 @@ </a> </ng-template> </gpds-card-row> + <gpds-card-row [label]="population.type ? population.name + ' (' + population.type + ')' : population.name" [test]="population.germplasmRef && !population.germplasmRef.pui"> @@ -803,8 +732,8 @@ </a> </ng-template> </gpds-card-row> - </ng-container> + </ng-container> </div> </ng-template> </gpds-card-section> @@ -814,8 +743,8 @@ [test]="germplasmGnpis.collection && germplasmGnpis.collection.length > 0"> <ng-template> <div class="card-body card-section-body"> - <ng-container *ngFor="let collection of germplasmGnpis.collection"> + <gpds-card-row [label]="collection.type ? collection.name + ' (' + collection.type + ')' : collection.name"> <ng-template> @@ -825,20 +754,19 @@ </a> </ng-template> </gpds-card-row> - </ng-container> + </ng-container> </div> </ng-template> </gpds-card-section> - <gpds-card-section header="Panel" [test]="germplasmGnpis.panel && germplasmGnpis.panel.length > 0"> <ng-template> <div class="card-body card-section-body"> - <ng-container *ngFor="let panel of germplasmGnpis.panel"> + <gpds-card-row [label]="panel.type ? panel.name + ' (' + panel.type + ')' : panel.name"> <ng-template> @@ -848,13 +776,13 @@ </a> </ng-template> </gpds-card-row> - </ng-container> + </ng-container> </div> </ng-template> </gpds-card-section> - <!--XRefs part --> + <!-- XRefs part --> <gpds-xrefs [xrefId]="germplasmGnpis.germplasmPUI"></gpds-xrefs> </ng-container> diff --git a/frontend/src/app/germplasm-card/germplasm-card.component.spec.ts b/frontend/src/app/germplasm-card/germplasm-card.component.spec.ts index 5b06816851414af4a438f298ac119d78a2b51931..2ca7f83f5335b6bb3bf54e581ace18b1caf405ba 100644 --- a/frontend/src/app/germplasm-card/germplasm-card.component.spec.ts +++ b/frontend/src/app/germplasm-card/germplasm-card.component.spec.ts @@ -177,6 +177,7 @@ describe('GermplasmCardComponent', () => { genusSpeciesSubtaxa: null, taxonSynonyms: ['pomme', 'api'], taxonCommonNames: ['pomme', 'api'], + taxonComment: null, geneticNature: null, comment: null, photo: null, diff --git a/frontend/src/app/germplasm-card/germplasm-card.component.ts b/frontend/src/app/germplasm-card/germplasm-card.component.ts index fa665b58aea9b42828f310cafb6dfa2972da71cd..b1aaf9f658b29aae12832fdd3e0f33c57ceca47d 100644 --- a/frontend/src/app/germplasm-card/germplasm-card.component.ts +++ b/frontend/src/app/germplasm-card/germplasm-card.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { BrapiService } from '../brapi.service'; import { GnpisService } from '../gnpis.service'; -import { BrapiAttributeData, BrapiGermplasmPedigree, BrapiLocation } from '../models/brapi.model'; +import { BrapiAttributeData, BrapiGermplasmPedigree, BrapiLocation, BrapiTaxonIds } from '../models/brapi.model'; import { Children, Germplasm, Site } from '../models/gnpis.model'; import { DataDiscoverySource } from '../models/data-discovery.model'; @@ -29,6 +29,12 @@ export class GermplasmCardComponent implements OnInit { }); } + NCBI_URL = 'https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id='; + THEPLANTLIST_URL = 'http://www.theplantlist.org/tpl1.1/record/'; + TAXREF_URL = 'https://inpn.mnhn.fr/espece/cd_nom/'; + CATALOGUEOFLIFE_URL = 'http://www.catalogueoflife.org/col/details/species/id/'; + taxonIdsWithURL: BrapiTaxonIds[] = []; + germplasmGnpis: Germplasm; germplasmPedigree: BrapiGermplasmPedigree; germplasmProgeny: Children[]; @@ -36,20 +42,14 @@ export class GermplasmCardComponent implements OnInit { germplasmLocations: BrapiLocation[] = []; germplasmId: string; germplasmPuid: string; + germplasmTaxon: string; + germplasmTaxonAuthor: string; germplasmSource: DataDiscoverySource; - // TODO extract those url in a configuration file. - IMAGES_ACCESSION_URL = 'https://urgi.versailles.inra.fr/files/siregal/images/accession/'; - IMAGES_INSTITUTION_URL = 'https://urgi.versailles.inra.fr/files/siregal/images//institution/'; - IMAGES_BRC_URL = 'https://urgi.versailles.inra.fr/files/siregal/images/grc/inra_brc_en.png'; - - loaded: Promise<any>; loading = true; - ngOnInit() { - this.germplasmId = this.route.snapshot.queryParams.id; this.germplasmPuid = this.route.snapshot.queryParams.pui; @@ -101,6 +101,7 @@ export class GermplasmCardComponent implements OnInit { // Get germplasm source const sourceURI = germplasmGnpis['schema:includedInDataCatalog']; this.getGermplasmSource(sourceURI); + this.getTaxon(germplasmGnpis); this.reformatData(germplasmGnpis); }); return germplasm$; @@ -124,6 +125,24 @@ export class GermplasmCardComponent implements OnInit { } } + getTaxon(germplasmGnpis) { + if (germplasmGnpis.genusSpeciesSubtaxa) { + this.germplasmTaxon = germplasmGnpis.genusSpeciesSubtaxa; + this.germplasmTaxonAuthor = germplasmGnpis.subtaxaAuthority; + } else if (germplasmGnpis.genusSpecies) { + this.germplasmTaxon = germplasmGnpis.genusSpecies; + this.germplasmTaxonAuthor = germplasmGnpis.speciesAuthority; + } else if (germplasmGnpis.subtaxa) { + this.germplasmTaxon = germplasmGnpis.genus + ' ' + germplasmGnpis.species + ' ' + germplasmGnpis.subtaxa; + this.germplasmTaxonAuthor = germplasmGnpis.subtaxaAuthority; + } else if (germplasmGnpis.species) { + this.germplasmTaxon = germplasmGnpis.genus + ' ' + germplasmGnpis.species; + this.germplasmTaxonAuthor = germplasmGnpis.speciesAuthority; + } else { + this.germplasmTaxon = germplasmGnpis.genus; + this.germplasmTaxonAuthor = ''; + } + } reformatData(germplasmGnpis) { if (germplasmGnpis.children) { @@ -133,10 +152,13 @@ export class GermplasmCardComponent implements OnInit { this.germplasmGnpis.donors.sort(this.compareDonorInstitutes); } if (germplasmGnpis.collection) { - this.germplasmGnpis.collection.sort(this.compareCollectionPanel); + this.germplasmGnpis.collection.sort(this.compareCollectionPopulationPanel); + } + if (germplasmGnpis.population) { + this.germplasmGnpis.population.sort(this.compareCollectionPopulationPanel); } if (this.germplasmGnpis.panel) { - this.germplasmGnpis.panel.sort(this.compareCollectionPanel); + this.germplasmGnpis.panel.sort(this.compareCollectionPopulationPanel); } if (this.germplasmGnpis.collectingSite) { this.siteToBrapiLocation(this.germplasmGnpis.collectingSite); @@ -149,9 +171,11 @@ export class GermplasmCardComponent implements OnInit { this.siteToBrapiLocation(site); } } + if (this.germplasmGnpis.taxonIds && this.germplasmGnpis.taxonIds.length > 0) { + this.addRefURL(this.germplasmGnpis.taxonIds); + } } - siteToBrapiLocation(site: Site) { if (site && site.siteId && site.latitude && site.longitude) { this.germplasmLocations.push({ @@ -164,6 +188,23 @@ export class GermplasmCardComponent implements OnInit { } } + addRefURL(taxonIds: BrapiTaxonIds[]) { + for (const taxonId of taxonIds) { + if (taxonId.sourceName === 'NCBI') { + taxonId.url = this.NCBI_URL + taxonId.taxonId; + } else if (taxonId.sourceName === 'ThePlantList') { + taxonId.url = this.THEPLANTLIST_URL + taxonId.taxonId; + } else if (taxonId.sourceName === 'TAXREF') { + taxonId.url = this.TAXREF_URL + taxonId.taxonId; + } else if (taxonId.sourceName === 'CatalogueOfLife') { + taxonId.url = this.CATALOGUEOFLIFE_URL + taxonId.taxonId; + } else { + taxonId.url = null; + } + this.taxonIdsWithURL.push(taxonId); + } + } + // TODO: use a generic function to get path in object (or null if non-existent) checkProgeny() { return (this.germplasmProgeny @@ -189,7 +230,6 @@ export class GermplasmCardComponent implements OnInit { ); } - checkCollectorInstituteObject() { return ( this.germplasmGnpis.collector @@ -209,10 +249,8 @@ export class GermplasmCardComponent implements OnInit { ); } - checkOriginCollecting() { - - return (this.germplasmGnpis.originSite && this.germplasmGnpis.originSite.siteName) - || (this.germplasmGnpis.collectingSite && this.germplasmGnpis.collectingSite.siteName) + checkCollecting() { + return (this.germplasmGnpis.collectingSite && this.germplasmGnpis.collectingSite.siteName) || (this.checkCollectorInstituteObject() || this.checkCollectorInstituteFields()); } @@ -236,7 +274,7 @@ export class GermplasmCardComponent implements OnInit { return 0; } - compareCollectionPanel(a, b) { + compareCollectionPopulationPanel(a, b) { if (a.name < b.name) { return -1; } diff --git a/frontend/src/app/gnpis.service.spec.ts b/frontend/src/app/gnpis.service.spec.ts index 04deb8ddc41c26ba9a63cdf36b4240ca99b0f7e4..458d559da7e1e111bce13a675b1ef7c7e516eb76 100644 --- a/frontend/src/app/gnpis.service.spec.ts +++ b/frontend/src/app/gnpis.service.spec.ts @@ -98,6 +98,7 @@ describe('GnpisService', () => { genusSpeciesSubtaxa: null, taxonSynonyms: ['pomme', 'api'], taxonCommonNames: ['pomme', 'api'], + taxonComment: null, geneticNature: null, comment: null, photo: null, diff --git a/frontend/src/app/models/brapi.model.ts b/frontend/src/app/models/brapi.model.ts index fa9963801a1053877cf35102541478c6b81081c4..3469d2a6fe587e3fc4e0fdb3fb0b3ec8ae7ea380 100644 --- a/frontend/src/app/models/brapi.model.ts +++ b/frontend/src/app/models/brapi.model.ts @@ -139,6 +139,7 @@ export interface BrapiGermplasm extends BrapiHasDocumentationURL { export interface BrapiTaxonIds { sourceName: string; taxonId: string; + url: string; } export interface BrapiDonor { diff --git a/frontend/src/app/models/gnpis.model.ts b/frontend/src/app/models/gnpis.model.ts index 061c0d2a4b6429c78cbbad30589b13f67ac8c2cd..edee6ddf7211609bc3009ecf1f15df4f404590da 100644 --- a/frontend/src/app/models/gnpis.model.ts +++ b/frontend/src/app/models/gnpis.model.ts @@ -5,6 +5,7 @@ export interface Germplasm extends BrapiGermplasm { genusSpeciesSubtaxa: string; taxonSynonyms: string[]; taxonCommonNames: string[]; + taxonComment: string; geneticNature: string; comment: string; photo: Photo; @@ -57,9 +58,9 @@ export interface GermplasmInstitute extends Institute { export interface Photo { copyright: string; description: string; - fileName: string; + file: string; photoName: string; - thumbnailFileName: string; + thumbnailFile: string; } diff --git a/frontend/src/app/study-card/study-card.component.html b/frontend/src/app/study-card/study-card.component.html index 358fd637efc795793496c6a048e7f1d572167550..4f02436ca99e4ecc359ab9e939c145134f9dc613 100644 --- a/frontend/src/app/study-card/study-card.component.html +++ b/frontend/src/app/study-card/study-card.component.html @@ -248,7 +248,6 @@ </ng-template> </gpds-card-section> - <!--XRefs part --> <gpds-xrefs [xrefId]="study.studyDbId"></gpds-xrefs> </ng-container> diff --git a/frontend/src/tslint.json b/frontend/src/tslint.json index 7e545ab7d80894dd3456be1fee601237e43b7bff..87a3bff4867cfc072c8a420d4b28b74563592090 100644 --- a/frontend/src/tslint.json +++ b/frontend/src/tslint.json @@ -15,7 +15,7 @@ ], "template-cyclomatic-complexity": [ true, - 10 + 11 ] } } diff --git a/frontend/tslint.json b/frontend/tslint.json index 91316b889f8228b33194822ac20020a6d2f2a674..f6e323348ffc55fb409b8f94a9e38a2042788e03 100644 --- a/frontend/tslint.json +++ b/frontend/tslint.json @@ -159,7 +159,7 @@ "template-conditional-complexity": true, "template-cyclomatic-complexity": [ true, - 10 + 11 ], "templates-no-negated-async": true, "use-host-property-decorator": true,