diff --git a/core/pom.xml b/core/pom.xml index 632caa5e50b..595f557cd9b 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/csw-server/pom.xml b/csw-server/pom.xml index 3dca6081a2b..0b8ce47247c 100644 --- a/csw-server/pom.xml +++ b/csw-server/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/docs/changes3.0.5-0.txt b/docs/changes3.0.5-0.txt new file mode 100644 index 00000000000..89382dc864b --- /dev/null +++ b/docs/changes3.0.5-0.txt @@ -0,0 +1,91 @@ +================================================================================ +=== +=== GeoNetwork 3.0.5: List of changes +=== +================================================================================ +- Set all privileges option is un-labelled in batch privileges form #1686 +- Apply in 3.0.x the commit 822f813c495cfc2c326ffc4713298cf878ae126f: when you don't administer a group, privileges associated to …that group of the user you are editing should remain static. +- Use POST for user update and reset password services #1684 +- Adding missing translations +- Merge pull request #1124 from grootstebozewolf/NioPathAwareCatalogResolverFix +- Merge pull request #1669 from josegar74/improvements/anchor-href +- Merge pull request #1683 from oscarfonts/3.0.x +- Fenomen, Feature => Objecte Geogràfic +- Catalan & Spanish updates from Transifex +- More catalan & spanish translations +- Citation identifier 3.14 +- Extracte => Resum 3.13 +- Voice => Telephon +- Typo. 3.4 +- Translated s. 2.13 +- Tanslation correction. 2.6 +- Label for gmd:CI_OnLineFunctionCode (2.5) +- Revisión 2.3 +- Rename loc files +- Add Finnish translations to UI +- Xslt formatter: multilingual fields are not rendered properly #1675 +- Display links in gmx:Anchor (used for gmd:useLimitation) with hyperlinks in metadata views +- Search for " 2char code mapping in javascript +- #1550: fix a dup entry in ISO19139 German loc file +- #1549: fix ISO2 code for German +- #1545: Update Spring version to support Java 8 +- Merge pull request #1542 from oscarfonts/xml-translations-es-ca +- Spanish and Catalan translations for iso19139 XML files +- Merge branch 'oscarfonts-i18n-es-ca' into 3.0.x +- Merge branch 'i18n-es-ca' of https://github.com/oscarfonts/core-geonetwork into oscarfonts-i18n-es-ca +- Updating locales with Transifex +- Adding catalan to the transifex script +- Remove culr and wget from the list of "non-session crawlers" +- Memory bug fixed: Do not create httpSessions for crawlers/bots- +- Fixes for CSW harvesting #1267 #1429 #1355 +- Additional json translation files +- Spanish & Catalan UI translations +- CSW Update - partial updates are not working if xpath provided starts with the metadata root element #1529 +- Fixing missing service config security that made editing of users remove their groups per profile. +- Improved version of Xml.filterElementValues that allows to define the namespace for the attribute also +- Fixes #1504 +- Fixes #1505 +- Use proxy settings in region getmap service #1528 +- Update GeoServer submodule. +- Merge pull request #1512 from OpenBfS/jdbc_port_configurable-3.0.x +- Merge pull request #1194 from Delawen/shibboleth_improvements +- Merge branch '3.0.x' of github.com:geonetwork/core-geonetwork into 3.0.x +- Merge branch 'josegar74-fix/field-name-fix-mysql' into 3.0.x +- Merge branch 'fix/field-name-fix-mysql' of https://github.com/josegar74/core-geonetwork into josegar74-fix/field-name-fix-mysql +- Merge pull request #1457 from pmauduit/domain-parametrized-query +- #1519 Delete harvester history button doesn't refresh the history panel +- SDS: fix SDS tab conditional visibility. +- replaced static port 5432 in postgres.xml to support dynamic port configuration using jdbc.port from jdbc.properties +- SDS: align GER string files. +- Merge pull request #1499 from geosolutions-it/3.0.x_INSPIRE-SDS-squashed +- #1445: Implement INSPIRE Spatial Data Services (SDS) +- Metadata editor layout: Handle forceLabel attribute in field rendering +- Metadata editor: handle readonly attribute in field rendering +- #1498 Map viewer: config-viewer.xml is not loaded when using an external data directory +- Update version to 3.0.5-SNAPSHOT +- Rename field 'key' for HarvesterData table as 'key' is a reserved work, to avoid issues when creating the table by Hibernate is some databases like MySql +- domain - fixing SQLi +- Fixing shibboleth configuration for latest changes (new filterchain for authentication and some non-autowired objects) +- Added exception for path resolver. \ No newline at end of file diff --git a/domain/pom.xml b/domain/pom.xml index 649c7aa6564..f11f997adc5 100644 --- a/domain/pom.xml +++ b/domain/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/e2e-tests/pom.xml b/e2e-tests/pom.xml index 23b028f5d1f..694b7735414 100644 --- a/e2e-tests/pom.xml +++ b/e2e-tests/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/harvesters/pom.xml b/harvesters/pom.xml index b47a8b81d31..a55869d38a5 100644 --- a/harvesters/pom.xml +++ b/harvesters/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/healthmonitor/pom.xml b/healthmonitor/pom.xml index c4ebc5ff8a6..d50da06b6ed 100644 --- a/healthmonitor/pom.xml +++ b/healthmonitor/pom.xml @@ -21,7 +21,6 @@ ~ Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, ~ Rome - Italy. email: geonetwork@osgeo.org --> - diff --git a/schemas-test/pom.xml b/schemas-test/pom.xml index c9a3cba8b2a..5b507373cef 100644 --- a/schemas-test/pom.xml +++ b/schemas-test/pom.xml @@ -1,4 +1,5 @@ +<<<<<<< HEAD - diff --git a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Functions.groovy b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Functions.groovy index d161efffd7e..001291c24f4 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Functions.groovy +++ b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Functions.groovy @@ -49,6 +49,15 @@ public class Functions { def isoUrlText = { el -> el.'gmd:URL'.text() } + + def isoAnchorUrlLink = { el -> + el.'gmx:Anchor'['@xlink:href'].text() + } + + def isoAnchorUrlText = { el -> + el.'gmx:Anchor'.text() + } + def isoText = { el -> def uiCode2 = '#'+env.lang2.toUpperCase() def uiCode3 = '#'+env.lang3.toUpperCase() diff --git a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Handlers.groovy b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Handlers.groovy index f83072a754b..179234d708d 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Handlers.groovy +++ b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Handlers.groovy @@ -53,6 +53,7 @@ public class Handlers { handlers.add name: 'Text Elements', select: matchers.isTextEl, isoTextEl handlers.add name: 'Simple Text Elements', select: matchers.isSimpleTextEl, isoSimpleTextEl handlers.add name: 'URL Elements', select: matchers.isUrlEl, isoUrlEl + handlers.add name: 'Anchor URL Elements', select: matchers.isAnchorUrlEl, isoAnchorUrlEl handlers.add name: 'Simple Elements', select: matchers.isBasicType, isoBasicType handlers.add name: 'Boolean Elements', select: matchers.isBooleanEl, isoBooleanEl handlers.add name: 'CodeList Elements', select: matchers.isCodeListEl, isoCodeListEl @@ -106,6 +107,7 @@ public class Handlers { def isoTextEl = { isofunc.isoTextEl(it, isofunc.isoText(it))} def isoUrlEl = { isofunc.isoUrlEl(it, isofunc.isoUrlText(it), isofunc.isoUrlText(it))} + def isoAnchorUrlEl = { isofunc.isoUrlEl(it, isofunc.isoAnchorUrlLink(it), isofunc.isoAnchorUrlText(it))} def isoDatasetUriEl = { isofunc.isoUrlEl(it, isofunc.isoText(it), isofunc.isoText(it))} def isoCodeListEl = {isofunc.isoTextEl(it, f.codelistValueLabel(it))} def isoBasicType = {isofunc.isoTextEl(it, it.'*'.text())} diff --git a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Matchers.groovy b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Matchers.groovy index 0388fbc99a1..c83eda108fd 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Matchers.groovy +++ b/schemas/iso19139/src/main/plugin/iso19139/formatter/groovy/iso19139/Matchers.groovy @@ -29,6 +29,7 @@ public class Matchers { def env def isUrlEl = {!it.'gmd:URL'.text().isEmpty()} + def isAnchorUrlEl = {!it.'gmx:Anchor'['@xlink:href'].text().isEmpty()} def simpleElements = ['gco:Decimal', 'gco:Integer', 'gco:Scale', 'gco:Angle', 'gco:Measure', 'gco:Distance', 'gmd:MD_PixelOrientationCode', 'gts:TM_PeriodDuration'] @@ -60,7 +61,7 @@ public class Matchers { def isContainerEl = {el -> !isBasicType(el) && !isSimpleTextEl(el) && - !isTextEl(el) && !isUrlEl(el) && + !isTextEl(el) && !isUrlEl(el) && !isAnchorUrlEl(el) && !isCodeListEl(el) && !hasCodeListChild(el) && !isDateEl(el) && !hasDateChild(el) && !el.children().isEmpty() diff --git a/schemas/iso19139/src/main/plugin/iso19139/index-fields/default.xsl b/schemas/iso19139/src/main/plugin/iso19139/index-fields/default.xsl index b51f1526f42..db1414cd22f 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/index-fields/default.xsl +++ b/schemas/iso19139/src/main/plugin/iso19139/index-fields/default.xsl @@ -366,6 +366,21 @@ store="true" index="true"/> + + + + + + + + + + + + - diff --git a/services/src/main/java/org/fao/geonet/services/user/Update.java b/services/src/main/java/org/fao/geonet/services/user/Update.java index 8a1650c2d20..b934ebed40d 100644 --- a/services/src/main/java/org/fao/geonet/services/user/Update.java +++ b/services/src/main/java/org/fao/geonet/services/user/Update.java @@ -154,6 +154,25 @@ OkResponse run( checkAccessRights(operation, id, username, myProfile, myUserId, groups, userGroupRepository); + //If it is a useradmin updating, + //maybe we don't know all the groups the user is part of + if(!myProfile.equals(Profile.Administrator) && !Params.Operation.NEWUSER.equalsIgnoreCase(operation)) { + List myUserAdminGroups = userGroupRepository.findGroupIds(Specifications.where( + hasProfile(myProfile)).and(hasUserId(Integer.valueOf(myUserId)))); + + List usergroups = + userGroupRepository.findAll(Specifications.where( + hasUserId(Integer.parseInt(id)))); + + //keep unknown groups as is + for(UserGroup ug : usergroups) { + if(!myUserAdminGroups.contains(ug.getGroup().getId())) { + groups.add(new GroupElem(ug.getProfile().name(), + ug.getGroup().getId())); + } + } + } + User user = getUser(userRepository, operation, id, username); diff --git a/web-client/pom.xml b/web-client/pom.xml new file mode 100644 index 00000000000..41c8dba2de2 --- /dev/null +++ b/web-client/pom.xml @@ -0,0 +1,77 @@ + + + 4.0.0 + + + org.geonetwork-opensource + geonetwork + 3.0.6-SNAPSHOT + + + geonetwork-client + jar + GeoNetwork web client module + GUI components in order to easily build applications based on GeoNetwork server module. + + + + General Public License (GPL) + http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + repo + + + + + + + + + + + + src/main/resources + true + + **/web-client-wro-sources.xml + + + + src/main/resources + false + + **/web-client-wro-sources.xml + + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + + attach-sources + + jar + + + + + + + + + + ${project.build.directory}/${project.build.finalName} + false + + diff --git a/web-ui/src/main/resources/catalog/components/common/share/partials/panel.html b/web-ui/src/main/resources/catalog/components/common/share/partials/panel.html index ac8ffd9db42..9734abd99a0 100644 --- a/web-ui/src/main/resources/catalog/components/common/share/partials/panel.html +++ b/web-ui/src/main/resources/catalog/components/common/share/partials/panel.html @@ -43,6 +43,7 @@
whoCanAccess
+ setall diff --git a/web-ui/src/main/resources/catalog/components/utility/UtilityDirective.js b/web-ui/src/main/resources/catalog/components/utility/UtilityDirective.js index 13a4d2ed207..793782c3f63 100644 --- a/web-ui/src/main/resources/catalog/components/utility/UtilityDirective.js +++ b/web-ui/src/main/resources/catalog/components/utility/UtilityDirective.js @@ -1109,4 +1109,42 @@ } }; }]); + + }); + + /** + * @ngdoc directive + * @name gn_utility.directive:gnLynky + * + * @description + * If the text provided contains the following format: + * link|URL|Text, it's converted to an hyperlink, otherwise + * the text is displayed without any formatting. + * + */ + module.directive('gnLynky', ['$compile', + function($compile) { + return { + restrict: 'A', + scope: { + text: '@gnLynky' + }, + link: function(scope, element, attrs) { + if (scope.text.startsWith('link') && + scope.text.split('|').length == 3) { + scope.link = scope.text.split('|')[1]; + scope.value = scope.text.split('|')[2]; + + element.replaceWith($compile('')(scope)); + } else { + + element.replaceWith($compile('')(scope)); + } + } + + }; + } + ]); })(); diff --git a/web-ui/src/main/resources/catalog/locales/ca-core.json b/web-ui/src/main/resources/catalog/locales/ca-core.json index 0d1b3c95cfb..9689847e049 100644 --- a/web-ui/src/main/resources/catalog/locales/ca-core.json +++ b/web-ui/src/main/resources/catalog/locales/ca-core.json @@ -1,11 +1,14 @@ { "all": "tots", "allInPage": "tots en una pàgina", + "author": "Autor", "none": "cap", "BadParameterEx": "Paràmetre erroni", "Editor": "Editor", "Keywords": "Paraules Clau", "crs": "Sistema de referència de coordenades", + "custodian": "Custodi", + "distributor": "Distribuïdor", "search": "Cercar", "METADATA": "Metadada", "RegisteredUser": "Usuari Registrat", @@ -143,9 +146,14 @@ "topicCats": "Temes", "organisation": "Organització", "organization": "Organització", + "originator": "Origen", "owner": "Propietari", + "pointOfContact": "Punt de contacte", + "processor": "Processador", + "principalInvestigator": "Investigador principal", "privilegesUpdated": "Privilegis actualitzats.", "privilegesUpdatedError": "S'ha produït un error en actualitzar els privilegis.", + "publisher": "Publicador", "password": "Contrasenya", "passwordMinlength": "'La contrasenya ha de tenir almenys 6 caràcters!", "passwordNotMatching": "Les contrasenyes no coincideixen!", @@ -161,6 +169,7 @@ "requestedProfile": "Perfil demanat", "resetPassword": "Reiniciar contrasenya", "resetPasswordTitle": "Reiniciar la contrasenya de {{user}}", + "resourceProvider": "Proveïdor del recurs", "rus": "Rus", "save": "Desar", "scrollTop": "Tornar a dalt", diff --git a/web-ui/src/main/resources/catalog/locales/ca-search.json b/web-ui/src/main/resources/catalog/locales/ca-search.json index e81830d8e7b..ee307ba7990 100644 --- a/web-ui/src/main/resources/catalog/locales/ca-search.json +++ b/web-ui/src/main/resources/catalog/locales/ca-search.json @@ -77,6 +77,7 @@ "legalConstraints": "Restriccions legals", "scale": "Escala", "resolution": "Resolució", + "resolutions": "Resolucions", "credit": "Crèdits", "classification": "Classificació", "resourceStatus": "Estat", diff --git a/web-ui/src/main/resources/catalog/locales/en-core.json b/web-ui/src/main/resources/catalog/locales/en-core.json index e94d5ab4786..00b6777687b 100644 --- a/web-ui/src/main/resources/catalog/locales/en-core.json +++ b/web-ui/src/main/resources/catalog/locales/en-core.json @@ -1,11 +1,14 @@ { "all": "all", "allInPage": "all in page", + "author": "Author", "none": "none", "BadParameterEx": "Wrong parameter", "Editor": "Editor", "Keywords": "Keywords", "crs": "Coordinate reference system", + "custodian": "Custodian", + "distributor": "Distributor", "search": "Search", "METADATA": "Metadata", "RegisteredUser": "Registered user", @@ -143,9 +146,14 @@ "topicCats" : "Topics", "organisation": "Organisation", "organization": "Organization", + "originator": "Originator", "owner": "Owner", + "pointOfContact": "Point of Contact", + "processor": "Processor", + "principalInvestigator": "Principal Investigator", "privilegesUpdated": "Privileges updated.", "privilegesUpdatedError": "Error occurred while updating privileges.", + "publisher": "Publisher", "password": "Password", "passwordMinlength": "Password must contain at least 6 characters!", "passwordNotMatching": "The password does not match!", @@ -161,6 +169,7 @@ "requestedProfile": "Requested profile", "resetPassword": "Reset password", "resetPasswordTitle": "Reset {{user}} password.", + "resourceProvider": "Resource Provider", "rus": "Русский", "save": "Save", "scrollTop": "Scroll to top", @@ -223,6 +232,7 @@ "metadataStatusUpdatedErrors": "Error occurs while updating status", "changeCategoryError": "Error occurs while updating category", "statusLogMessage": "Status message", + "user": "User", "userDetails": "User details", "userPreferences": "User preferences", "username": "User name", diff --git a/web-ui/src/main/resources/catalog/locales/es-search.json b/web-ui/src/main/resources/catalog/locales/es-search.json index 5dac6d12280..467f5a5b99e 100644 --- a/web-ui/src/main/resources/catalog/locales/es-search.json +++ b/web-ui/src/main/resources/catalog/locales/es-search.json @@ -77,6 +77,7 @@ "legalConstraints": "Restricciones legales", "scale": "Escala", "resolution": "Resolución", + "resolutions": "Resoluciones", "credit": "Créditos", "classification": "Clasificación", "resourceStatus": "Estado", diff --git a/web-ui/src/main/resources/catalog/views/default/templates/recordView.html b/web-ui/src/main/resources/catalog/views/default/templates/recordView.html index 72dc9331194..f012f1dde16 100644 --- a/web-ui/src/main/resources/catalog/views/default/templates/recordView.html +++ b/web-ui/src/main/resources/catalog/views/default/templates/recordView.html @@ -596,4 +596,4 @@

- + \ No newline at end of file diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v306/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v306/migrate-default.sql new file mode 100644 index 00000000000..9abb96cb3f2 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v306/migrate-default.sql @@ -0,0 +1,2 @@ +UPDATE Settings SET value='3.0.6' WHERE name='system/platform/version'; +UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; diff --git a/web/src/main/webapp/WEB-INF/config-db/database_migration.xml b/web/src/main/webapp/WEB-INF/config-db/database_migration.xml index cf1aa8a0ebe..f6e5d10673f 100644 --- a/web/src/main/webapp/WEB-INF/config-db/database_migration.xml +++ b/web/src/main/webapp/WEB-INF/config-db/database_migration.xml @@ -138,6 +138,11 @@ WEB-INF/classes/setup/sql/migrate/v302/migrate- + + + WEB-INF/classes/setup/sql/migrate/v306/migrate- + + diff --git a/web/src/main/webapp/loc/cat/json/for_use_core-geonetwork_webwebapplocformatterjson_ca.json b/web/src/main/webapp/loc/cat/json/formatter.json similarity index 81% rename from web/src/main/webapp/loc/cat/json/for_use_core-geonetwork_webwebapplocformatterjson_ca.json rename to web/src/main/webapp/loc/cat/json/formatter.json index 97cfb04ad95..b0730e5451c 100644 --- a/web/src/main/webapp/loc/cat/json/for_use_core-geonetwork_webwebapplocformatterjson_ca.json +++ b/web/src/main/webapp/loc/cat/json/formatter.json @@ -1,11 +1,11 @@ { - "abstract": "Extracte", - "associated-link": "Associat", + "abstract": "Resum", + "associated-link": "Associats", "children-link": "Fills", - "complete": "Completar", + "complete": "Complet", "dataset-link": "Conjunt de dades", "datasets-link": "Conjunts de dades", - "fcat-link": "Catàleg de Features", + "fcat-link": "Catàleg d'entitats geogràfiques", "hassource-link": "Té Fonts", "hierarchy": "Jerarquia", "links": "Enllaços", diff --git a/web/src/main/webapp/loc/spa/json/for_use_core-geonetwork_webwebapplocformatterjson_es.json b/web/src/main/webapp/loc/spa/json/formatter.json similarity index 81% rename from web/src/main/webapp/loc/spa/json/for_use_core-geonetwork_webwebapplocformatterjson_es.json rename to web/src/main/webapp/loc/spa/json/formatter.json index 74cfff2c04d..cbcb3588175 100644 --- a/web/src/main/webapp/loc/spa/json/for_use_core-geonetwork_webwebapplocformatterjson_es.json +++ b/web/src/main/webapp/loc/spa/json/formatter.json @@ -1,15 +1,15 @@ { - "abstract": "Extracto", - "associated-link": "Asociado", + "abstract": "Resumen", + "associated-link": "Asociados", "children-link": "Hijos", - "complete": "Completar", + "complete": "Completo", "dataset-link": "Conjunto de Datos", "datasets-link": "Conjuntos de Datos", "fcat-link": "Catálogo de Features", "hassource-link": "Tiene Fuentes", "hierarchy": "Jerarquía", "links": "Enlaces", - "noUuidInLink": "Ningún uuid en el enlace", + "noUuidInLink": "Ningún UUID en el enlace", "overview": "Visión de Conjunto", "parent": "Padre", "parent-link": "Padre",