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%>
+