diff --git a/geoportal/src/com/esri/gpt/catalog/arcims/ImsMetadataAdminDao.java b/geoportal/src/com/esri/gpt/catalog/arcims/ImsMetadataAdminDao.java index 504585a7f..d82fbcdb6 100644 --- a/geoportal/src/com/esri/gpt/catalog/arcims/ImsMetadataAdminDao.java +++ b/geoportal/src/com/esri/gpt/catalog/arcims/ImsMetadataAdminDao.java @@ -1514,6 +1514,42 @@ public void deleteIndex(PublicationRecord record) } +/** + * Makes the selected records editable, changing the + * publication method in "editor" + * + * @param publisher the publisher executing this request + * @param uuids the set of uuids to update + */ +public int setEditable(Publisher publisher, + StringSet uuids) +throws SQLException, CatalogIndexException { + +// update the database publication method +PreparedStatement st = null; +int nRows = 0; +Connection con = returnConnection().getJdbcConnection(); +StringBuffer sbSql = new StringBuffer(); +try { + String sUuids = uuidsToInClause(uuids); + if (sUuids.length() > 0) { + // execute the update, don't update documents in 'draft' mode + sbSql = new StringBuffer(); + sbSql.append("UPDATE ").append(getResourceTableName()); + sbSql.append(" SET PUBMETHOD='editor'"); + sbSql.append(" WHERE DOCUUID IN (").append(sUuids).append(")"); + logExpression(sbSql.toString()); + LogUtil.getLogger().log(Level.INFO,sbSql.toString()+" "+sUuids); + st = con.prepareStatement(sbSql.toString()); + nRows = st.executeUpdate(); + } +} finally { +closeStatement(st); +} + +return nRows; +} + /** * Updates the synchronization status code for a collection of records. * @param status the synchronization status code diff --git a/geoportal/src/com/esri/gpt/catalog/management/MmdActionRequest.java b/geoportal/src/com/esri/gpt/catalog/management/MmdActionRequest.java index 7c58641d9..1bd3aeec1 100644 --- a/geoportal/src/com/esri/gpt/catalog/management/MmdActionRequest.java +++ b/geoportal/src/com/esri/gpt/catalog/management/MmdActionRequest.java @@ -119,6 +119,11 @@ public void execute() throws Exception { } else if (sAction.equalsIgnoreCase("setReviewed")) { nRows = adminDao.updateApprovalStatus(getPublisher(),uuids,MmdEnums.ApprovalStatus.reviewed); } + /** Action: "SetEditable" **/ + else if (sAction.equalsIgnoreCase("setEditable")) { + nRows = adminDao.setEditable(getPublisher(),uuids); + } + getActionResult().setNumberOfRecordsModified(nRows); this.hadUnalteredDraftDocuments = adminDao.hadUnalteredDraftDocuments(); diff --git a/geoportal/src/gpt/resources/gpt.properties b/geoportal/src/gpt/resources/gpt.properties index f9cc8162e..f6c4efef3 100644 --- a/geoportal/src/gpt/resources/gpt.properties +++ b/geoportal/src/gpt/resources/gpt.properties @@ -4286,6 +4286,7 @@ catalog.search.searchSite.geoDab = GEO DAB catalog.search.searchSite.geoDab.abstract = Search GEO DAB catalog.search.resource.details.togglesection = Open/Close section +<<<<<<< HEAD # v1.2.7 ====================================================================== # DCAT Metadata @@ -4331,4 +4332,7 @@ catalog.mdParam.schema.dcat.dataQuality = Data Quality catalog.harvest.manage.edit.protocol.robots.mode.caption = Respect 'robots.txt' if present: catalog.harvest.manage.edit.protocol.robots.mode.inherit = Inherit catalog.harvest.manage.edit.protocol.robots.mode.always = Always -catalog.harvest.manage.edit.protocol.robots.mode.never = Never \ No newline at end of file +catalog.harvest.manage.edit.protocol.robots.mode.never = Never + +// Action setEditable +catalog.publication.manageMetadata.action.setEditable= Set as Editable diff --git a/geoportal/www/catalog/publication/manageMetadataBody.jsp b/geoportal/www/catalog/publication/manageMetadataBody.jsp index 2a3bf8bf9..46c346c2e 100644 --- a/geoportal/www/catalog/publication/manageMetadataBody.jsp +++ b/geoportal/www/catalog/publication/manageMetadataBody.jsp @@ -649,6 +649,10 @@ function mmdClearAclSelection(){ + <%// SetEditable commands%> +