diff --git a/ProductGeneration/ck.xml b/ProductGeneration/ck.xml index be484695..47ae85c6 100644 --- a/ProductGeneration/ck.xml +++ b/ProductGeneration/ck.xml @@ -104,6 +104,20 @@ visit + + removeMultiplesArticles + + createBuildEntries + removeMultiplesArticles + + + + filterArticlesByAuthor + + createBuildEntries + filterArticlesByAuthor + + rgms @@ -369,6 +383,13 @@ listPeriodico,grails-app/views/periodico/list.gsp + + Article + + preprocessFiles + grails-app/views/periodico/list.gsp + + Article diff --git a/ProductGeneration/featureModel.xml b/ProductGeneration/featureModel.xml index 95ffe747..6f95578f 100644 --- a/ProductGeneration/featureModel.xml +++ b/ProductGeneration/featureModel.xml @@ -16,7 +16,12 @@ - + + + + + + diff --git a/grails-app/controllers/rgms/publication/PeriodicoController.groovy b/grails-app/controllers/rgms/publication/PeriodicoController.groovy index 239c6568..ea87c811 100644 --- a/grails-app/controllers/rgms/publication/PeriodicoController.groovy +++ b/grails-app/controllers/rgms/publication/PeriodicoController.groovy @@ -191,5 +191,48 @@ class PeriodicoController { render(journalsFound as JSON) } //#end + + //#if($FilterArticlesByAuthor) + def filterByAuthor() { + params.max = Math.min(params.max ? params.int('max') : 10, 100) + def articles = Periodico.list(params) + def authorName = params.authorName + if(authorName!="") + articles = articles.findAll{it.authors.contains(authorName)} + render(view: "list", model: [periodicoInstanceList: articles, periodicoInstanceTotal: articles.size()]) + } + //#end + + //#if($RemoveMultiplesArticles) + def deleteMultiples() { + def instancesId = params?.check + if (instancesId) { + if (instancesId.toString().indexOf("]") > 0 ) { + deletingFromMultipleSelectedCheckboxes(instancesId) + } else { + deletingFromUniqueSelectedCheckbox(instancesId) + } + }else { + flash.message = message(code: 'default.not.selected.message') + } + redirect(action: "list") + } + + private def deletingFromMultipleSelectedCheckboxes(instancesId){ + for (String instanceid: instancesId) { + Periodico periodicoInstance = Periodico.get(Long.parseLong(instanceid)) + periodicoInstance.removeFromPublications() + periodicoInstance.discardMembers() + periodicoInstance.discard() + periodicoInstance?.delete(flush: true) + } + } + + private def deletingFromUniqueSelectedCheckbox(instancesId){ + def periodicoInstance = Periodico.get(Long.parseLong(instancesId)) + periodicoInstance.removeFromPublications() + periodicoInstance?.delete(flush: true) + } + //#end } //#end diff --git a/grails-app/domain/rgms/publication/Publication.groovy b/grails-app/domain/rgms/publication/Publication.groovy index fd5ba019..efef9136 100644 --- a/grails-app/domain/rgms/publication/Publication.groovy +++ b/grails-app/domain/rgms/publication/Publication.groovy @@ -19,7 +19,9 @@ abstract class Publication { researchLine nullable: true, blank: true authors nullable: true, blank: true } - + + static mapping = { members lazy:false } + //#if($Bibtex) abstract String generateBib() //#end diff --git a/grails-app/i18n/messages.properties b/grails-app/i18n/messages.properties index 05c696f1..651720d9 100644 --- a/grails-app/i18n/messages.properties +++ b/grails-app/i18n/messages.properties @@ -28,6 +28,7 @@ default.deleted.message={0} {1} deleted default.not.deleted.message={0} {1} could not be deleted default.not.found.message={0} not found with id {1} default.optimistic.locking.failure=Another user has updated this {0} while you were editing +default.not.selected.message=No item selected default.home.label=Home default.list.label={0} List @@ -43,6 +44,7 @@ default.button.update.label=Update default.button.delete.label=Delete default.button.list.label = List default.button.delete.confirm.message=Are you sure? +default.button.search.label=Search typeMismatch.java.net.URL=Property {0} must be a valid URL diff --git a/grails-app/i18n/messages_pt_BR.properties b/grails-app/i18n/messages_pt_BR.properties index 6d3cc59d..7ce16249 100644 --- a/grails-app/i18n/messages_pt_BR.properties +++ b/grails-app/i18n/messages_pt_BR.properties @@ -29,6 +29,7 @@ default.deleted.message={0} {1} removido default.not.deleted.message={0} {1} não pode ser removido default.not.found.message={0} não foi encontrado com id {1} default.optimistic.locking.failure=Outro usuário atualizou este [{0}] enquanto você tentou salvá-lo +default.not.selected.message=Nenhum item foi selecionado default.home.label=Principal default.list.label={0} Listagem @@ -42,8 +43,10 @@ default.button.create.label=Criar default.button.edit.label=Editar default.button.update.label=Alterar default.button.delete.label=Remover +default.button.delete.multiples.label=Remover Selecionados default.button.list.label=Listagem default.button.delete.confirm.message=Tem certeza? +default.button.search.label=Buscar typeMismatch.java.net.URL=O campo {0} deve ser uma URL válida. diff --git a/grails-app/views/periodico/list.gsp b/grails-app/views/periodico/list.gsp index c0f3585b..898af956 100644 --- a/grails-app/views/periodico/list.gsp +++ b/grails-app/views/periodico/list.gsp @@ -1,4 +1,3 @@ - <%@ page import="rgms.publication.Periodico" %> @@ -13,17 +12,29 @@ default="Skip to content…"/> - + - Import XML: + Import XML + + + + + ${message(code: 'default.author.label', default: 'Author')} + + + + + + + ${flash.message} @@ -31,7 +42,10 @@ - + + + + + + + + ${fieldValue(bean: periodicoInstance, field: "title")} @@ -74,7 +92,17 @@ + + + + + + + + +