diff --git a/zanata-war/src/main/java/org/zanata/action/ProjectIterationFilesAction.java b/zanata-war/src/main/java/org/zanata/action/ProjectIterationFilesAction.java index a08ffdd18e..9d50f5fe05 100644 --- a/zanata-war/src/main/java/org/zanata/action/ProjectIterationFilesAction.java +++ b/zanata-war/src/main/java/org/zanata/action/ProjectIterationFilesAction.java @@ -198,6 +198,14 @@ public TranslationStatistics getTransUnitForDocument(HDocument doc) } } + @Restrict("#{projectIterationFilesAction.documentRemovalAllowed}") + public void deleteDocument( HDocument doc ) + { + doc = documentDAO.getById( doc.getId() ); // refresh the instance + doc.setObsolete(true); + documentDAO.makePersistent(doc); + } + @Restrict("#{projectIterationFilesAction.fileUploadAllowed}") public String uploadTranslationFile() { @@ -410,6 +418,12 @@ public boolean isDocumentUploadAllowed() return isIterationActive() && identity != null && identity.hasPermission("import-template", projectIteration); } + public boolean isDocumentRemovalAllowed() + { + // currently same permissions as uploading a document + return this.isDocumentUploadAllowed(); + } + public List getIterationDocuments() { return iterationDocuments; diff --git a/zanata-war/src/main/resources/messages.properties b/zanata-war/src/main/resources/messages.properties index ac147fafcb..d2bcf5386a 100644 --- a/zanata-war/src/main/resources/messages.properties +++ b/zanata-war/src/main/resources/messages.properties @@ -319,8 +319,10 @@ jsf.iteration.CopyTrans.Help.ignore=This condition will not be taken into accoun jsf.iteration.CopyTrans.Help.approve=Translation will be reused and marked as Approved if it has not been rejected or marked as fuzzy already. jsf.iteration.CopyTrans.NoDocuments=There are no documents in this project version. jsf.iteration.CopyTrans.Started=Translation copy started. +jsf.iteration.files.ConfirmDocDeletion=Are you sure you want to remove this Source Document? jsf.iteration.files.ConfirmDownloadAllFiles=Your download will be prepared and may take a few minutes to complete. Is this ok? jsf.iteration.files.ContentType=Content Type +jsf.iteration.files.DocumentDeleted=Document succesfully deleted. jsf.iteration.files.DocumentPath=Document Path jsf.iteration.files.dotpo=.po jsf.iteration.files.dotpot=.pot diff --git a/zanata-war/src/main/webapp/WEB-INF/pages.xml b/zanata-war/src/main/webapp/WEB-INF/pages.xml index c36e0c989f..8ce97610c0 100644 --- a/zanata-war/src/main/webapp/WEB-INF/pages.xml +++ b/zanata-war/src/main/webapp/WEB-INF/pages.xml @@ -1,6 +1,6 @@ @@ -631,6 +631,14 @@ + + + + #{messages['jsf.iteration.files.DocumentDeleted']} + + + + diff --git a/zanata-war/src/main/webapp/iteration/source_files.xhtml b/zanata-war/src/main/webapp/iteration/source_files.xhtml index f020ebaa21..4a9b39f902 100644 --- a/zanata-war/src/main/webapp/iteration/source_files.xhtml +++ b/zanata-war/src/main/webapp/iteration/source_files.xhtml @@ -103,6 +103,15 @@ + + + #{messages['jsf.Actions']} + + + +