Merge branch 'master' of https://git.alfresco.com/records-management/records-management into feature/RM-7006_UpdateToACS611

This commit is contained in:
Rodica Sutu
2019-10-17 09:30:54 +03:00
34 changed files with 427 additions and 70 deletions

View File

@@ -92,7 +92,7 @@ public class AddToHoldsTests extends BaseRMRestTest
"permissions to perform this operation.";
private static final String INVALID_TYPE_ERROR_MESSAGE = "Items added to a hold must be either a record, a " +
"record folder or active content.";
private static final String LOCKED_FILE_ERROR_MESSAGE = "Locked nodes can't be added to hold";
private static final String LOCKED_FILE_ERROR_MESSAGE = "Locked content can't be added to a hold.";
private SiteModel testSite;
private String holdNodeRef;
private FileModel documentHeld, contentToAddToHold, contentAddToHoldNoPermission;

View File

@@ -143,7 +143,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
STEP("Check the request failed.");
restClient.assertStatusCodeIs(FORBIDDEN);
restClient.assertLastError().containsSummary("Frozen nodes can not be updated.");
restClient.assertLastError().containsSummary("Frozen content can't be updated.");
}
/*
@@ -160,7 +160,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
STEP("Check the request failed.");
restClient.assertStatusCodeIs(FORBIDDEN);
restClient.assertLastError().containsSummary("Frozen nodes can not be updated.");
restClient.assertLastError().containsSummary("Frozen content can't be updated.");
}
/*
@@ -176,7 +176,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
STEP("Check the request failed.");
restClient.assertStatusCodeIs(FORBIDDEN);
restClient.assertLastError().containsSummary("Frozen nodes can not be deleted.");
restClient.assertLastError().containsSummary("Frozen content can't be deleted.");
}
/**
@@ -186,7 +186,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
*/
@Test
@AlfrescoTest(jira = "RM-6924")
public void copyFrozenFile() throws Exception
public void copyFrozenFile()
{
STEP("Copy frozen file");
String postBody = JsonBodyGenerator.keyValueJson("targetParentId",folderModel.getNodeRef());
@@ -211,7 +211,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
STEP("Check the request failed.");
assertStatusCode(FORBIDDEN);
getRestAPIFactory().getRmRestWrapper().assertLastError().containsSummary("Frozen nodes can not be moved.");
getRestAPIFactory().getRmRestWrapper().assertLastError().containsSummary("Frozen content can't be moved.");
}
/**
@@ -219,12 +219,10 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
* When I update the record folder and make the records as vital
* Then I am successful and the records not held are marked as vital
* And the frozen nodes have the vital record search properties updated
*
* @throws Exception
*/
@Test
@AlfrescoTest (jira = "RM-6929")
public void updateRecordFolderVitalProperties() throws Exception
public void updateRecordFolderVitalProperties()
{
STEP("Update the vital record properties for the record folder");
// Create the record folder properties to update
@@ -322,7 +320,7 @@ public class PreventActionsOnFrozenContentTests extends BaseRMRestTest
}
@AfterClass (alwaysRun = true)
public void cleanUpPreventActionsOnFrozenContent() throws Exception
public void cleanUpPreventActionsOnFrozenContent()
{
holdsAPI.deleteHold(getAdminUser().getUsername(), getAdminUser().getPassword(), HOLD_ONE);
dataSite.usingAdmin().deleteSite(testSite);

View File

@@ -92,7 +92,7 @@
<td>${reportDate}</td>
</tr>
</table>
<#if node.childAssociations["rma:frozenRecords"]??>
<#if node.childAssociations["rma:frozenContent"]??>
<div style="font-size: 14px; margin: 12px 0px 24px 0px; padding-top: 10px; border-top: 1px solid #aaaaaa;">
<table cellpadding="2" cellspacing="3" border="0">
<tr>
@@ -104,7 +104,7 @@
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<#list node.childAssociations["rma:frozenRecords"] as child>
<#list node.childAssociations["rma:frozenContent"] as child>
<tr>
<td valign="top">
<img src="${url}/${child.icon32}" alt="" width="32" height="32" border="0" style="padding-right: 10px;" />

View File

@@ -18,7 +18,7 @@ rm.action.ghosted-prop-update=Impossibile aggiornare le propriet\u00e0 di un rec
rm.action.valid-date-disp-asof=Inserire una data valida come data di inizio dell'azione di conservazione.
rm.action.disp-asof-lifecycle-applied=Impossibile modificare la data di inizio di conservazione per un record o cartella di record per cui \u00e8 stato impostato un ciclo di vita.
rm.action.hold-edit-reason-none=Impossibile modificare il motivo della sospensione poich\u00e9 la sospensione \u00e8 stata creata senza un motivo. Provare a ricreare la sospensione.
rm.action.hold-edit-type=Impossibile modificare la sospensione per {1} poich\u00e9 non \u00e8 una sospensione.
rm.action.hold-edit-type=Impossibile modificare il motivo della sospensione per {1} poich\u00e9 non \u00e8 una sospensione.
rm.action.specify-avlid-date=Inserire una data valida come data di inizio dell'esame.
rm.action.review-details-only=\u00c8 possibile modificare solo i dettagli dell'esame dei record fondamentali.
rm.action.freeze-no-reason=Impossibile sospendere un record senza un motivo. Aggiungere un motivo alla sospensione.

View File

@@ -17,12 +17,12 @@ rm.action.no-declare-mand-prop=Voc\u00ea deve definir todas as propriedades obri
rm.action.ghosted-prop-update=N\u00e3o \u00e9 poss\u00edvel atualizar as propriedades de um documento arquiv\u00edstico destru\u00eddo anteriormente.
rm.action.valid-date-disp-asof=Insira uma data v\u00e1lida para a data de in\u00edcio da a\u00e7\u00e3o de reten\u00e7\u00e3o.
rm.action.disp-asof-lifecycle-applied=N\u00e3o \u00e9 poss\u00edvel editar a data de in\u00edcio da reten\u00e7\u00e3o de um documento arquiv\u00edstico ou uma pasta de documento arquiv\u00edstico que tenha um ciclo de vida aplicado.
rm.action.hold-edit-reason-none=N\u00e3o \u00e9 poss\u00edvel editar o motivo para manter, pois a espera foi criada sem um motivo. Tente recriar a espera.
rm.action.hold-edit-type=N\u00e3o \u00e9 poss\u00edvel editar o motivo para manter de {1}, pois isso n\u00e3o \u00e9 uma espera.
rm.action.hold-edit-reason-none=N\u00e3o \u00e9 poss\u00edvel editar o motivo da espera pois a espera foi criada sem um motivo. Tente recriar a espera.
rm.action.hold-edit-type=N\u00e3o \u00e9 poss\u00edvel editar o motivo da espera de {1}, pois isso n\u00e3o \u00e9 uma espera.
rm.action.specify-avlid-date=Insira uma data v\u00e1lida para a data de in\u00edcio da revis\u00e3o.
rm.action.review-details-only=Voc\u00ea somente pode editar os detalhes de revis\u00e3o de documentos arquiv\u00edsticos vitais.
rm.action.freeze-no-reason=N\u00e3o \u00e9 poss\u00edvel manter um documento arquiv\u00edstico sem um motivo. Adicione um motivo para manter.
rm.action.freeze-only-records-folders=Voc\u00ea pode manter somente documentos arquiv\u00edsticos ou pastas de documentos arquiv\u00edsticos.
rm.action.freeze-no-reason=N\u00e3o \u00e9 poss\u00edvel colocar em espera um documento arquiv\u00edstico sem um motivo. Adicione um motivo \u00e0 espera.
rm.action.freeze-only-records-folders=Voc\u00ea pode colocar em espera somente documentos arquiv\u00edsticos ou pastas de documentos arquiv\u00edsticos.
rm.action.no-open-record-folder=N\u00e3o \u00e9 poss\u00edvel reabrir {0}, pois isso n\u00e3o \u00e9 uma pasta de documento arquiv\u00edstico.
rm.action.not-hold-type=N\u00e3o \u00e9 poss\u00edvel realizar a a\u00e7\u00e3o em {1}, pois isso n\u00e3o \u00e9 uma espera.
rm.action.no-read-mime-message=N\u00e3o foi poss\u00edvel ler a mensagem de tipo de arquivo, pois {0}.

View File

@@ -105,7 +105,7 @@ reject.description=Respinge un record e sposta il file nella sua posizione origi
reject.reason.display-label=Respingi motivo
# Request Information
requestInfo.title=Richiedi informazioni
requestInfo.description=Avvia un flusso di lavoro per richiedere pi\u00f9 informazioni per un record
requestInfo.description=Avvia un workflow per richiedere pi\u00f9 informazioni per un record
# Execute script
executeScript.title=Esegui script
executeScript.description=Esegui uno script

View File

@@ -118,8 +118,8 @@ setPropertyValue.title=Definir valor da propriedade
setPropertyValue.description=Define um valor de propriedade
# Edit Hold Reason
editHoldReason.title=Editar motivo para manter
editHoldReason.description=Edita o motivo para manter
editHoldReason.title=Editar motivo para espera
editHoldReason.description=Edita o motivo para a espera
# Relinquish Hold
relinquishHold.title=Desistir da espera
relinquishHold.description=Desiste da espera

View File

@@ -59,7 +59,7 @@ capability.FileTransferReport.title=Relat\u00f3rio de transfer\u00eancia de arqu
capability.EndRetention.title=Encerrar reten\u00e7\u00e3o
# Hold Controls
capability.group.holdControls.title=Controles de espera
capability.group.holdControls.title=Controles da espera
capability.ExtendRetentionPeriodOrFreeze.title=Estender per\u00edodo de reten\u00e7\u00e3o ou congelar
capability.Unfreeze.title=Descongelar
capability.ViewUpdateReasonsForFreeze.title=Visualizar motivos de atualiza\u00e7\u00e3o para congelar

View File

@@ -1,9 +1,9 @@
rm.hold.not-hold=The node {0} is not a hold.
rm.hold.add-to-hold-invalid-type={0} is neither a record nor a record folder nor active content. Only records, record \
rm.hold.not-hold={0} is not a hold.
rm.hold.add-to-hold-invalid-type={0} isn't a record, a record folder or active content. Only records, record \
folders or active content can be added to a hold.
rm.hold.add-to-hold-archived-node=Archived nodes can't be added to hold.
rm.hold.add-to-hold-locked-node=Locked nodes can't be added to hold.
rm.hold.delete-frozen-node=Frozen nodes can not be deleted.
rm.hold.delete-node-frozen-children=Can not delete node, because it contains a frozen child node.
rm.hold.move-frozen-node=Frozen nodes can not be moved.
rm.hold.update-frozen-node=Frozen nodes can not be updated.
rm.hold.add-to-hold-archived-node=Archived content can't be added to a hold.
rm.hold.add-to-hold-locked-node=Locked content can't be added to a hold.
rm.hold.delete-frozen-node=Frozen content can't be deleted.
rm.hold.delete-node-frozen-children=Can't delete folder because it contains frozen content.
rm.hold.move-frozen-node=Frozen content can't be moved.
rm.hold.update-frozen-node=Frozen content can't be updated.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} ist kein Sperrbereich.
rm.hold.add-to-hold-invalid-type={0} ist kein Record, Record-Ordner oder aktiver Inhalt. Nur Records, Record-Ordner und aktive Inhalte k\u00f6nnen zu einer Sperre hinzugef\u00fcgt werden.
rm.hold.add-to-hold-archived-node=Archivierte Inhalte k\u00f6nnen nicht zu einer Sperre hinzugef\u00fcgt werden.
rm.hold.add-to-hold-locked-node=Gesperrte Inhalte k\u00f6nnen nicht zu einer Sperre hinzugef\u00fcgt werden.
rm.hold.delete-frozen-node=Fixierte Inhalte k\u00f6nnen nicht gel\u00f6scht werden.
rm.hold.delete-node-frozen-children=Der Ordner kann nicht gel\u00f6scht werden, weil er fixierte Inhalte enth\u00e4lt.
rm.hold.move-frozen-node=Fixierte Inhalte k\u00f6nnen nicht verschoben werden.
rm.hold.update-frozen-node=Fixierte Inhalte k\u00f6nnen nicht aktualisiert werden.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} no es un bloqueo.
rm.hold.add-to-hold-invalid-type={0} no es un documento de archivo, una carpeta de documentos de archivo ni un contenido activo. Solo los documentos de archivo, las carpetas de documentos de archivo y los contenidos activos pueden a\u00f1adirse a un bloqueo.
rm.hold.add-to-hold-archived-node=El contenido archivado no puede a\u00f1adirse a un bloqueo.
rm.hold.add-to-hold-locked-node=El contenido bloqueado no puede a\u00f1adirse a un bloqueo.
rm.hold.delete-frozen-node=El contenido congelado no puede eliminarse.
rm.hold.delete-node-frozen-children=La carpeta no puede eliminarse porque contiene contenido congelado.
rm.hold.move-frozen-node=El contenido congelado no puede moverse.
rm.hold.update-frozen-node=El contenido congelado no puede actualizarse.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} n''est pas une suspension.
rm.hold.add-to-hold-invalid-type={0} n''est pas un document d''archives, un dossier d''archives ou un contenu actif. Seuls les documents d''archives, dossiers d''archives ou contenus actifs peuvent \u00eatre ajout\u00e9s \u00e0 une suspension.
rm.hold.add-to-hold-archived-node=Impossible d'ajouter du contenu archiv\u00e9 \u00e0 une suspension.
rm.hold.add-to-hold-locked-node=Impossible d'ajouter du contenu verrouill\u00e9 \u00e0 une suspension.
rm.hold.delete-frozen-node=Impossible de supprimer du contenu gel\u00e9.
rm.hold.delete-node-frozen-children=Impossible de supprimer le dossier car il contient du contenu gel\u00e9.
rm.hold.move-frozen-node=Impossible de d\u00e9placer du contenu gel\u00e9.
rm.hold.update-frozen-node=Impossible de mettre \u00e0 jour du contenu gel\u00e9.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} non \u00e8 una sospensione.
rm.hold.add-to-hold-invalid-type={0} non \u00e8 un record, una cartella di record o un contenuto attivo. Solo i record, le cartelle di record o i contenuti attivi possono essere aggiunti ad una sospensione.
rm.hold.add-to-hold-archived-node=I contenuti archiviati non possono essere aggiunti ad una sospensione.
rm.hold.add-to-hold-locked-node=I contenuti bloccati non possono essere aggiunti ad una sospensione.
rm.hold.delete-frozen-node=I contenuti congelati non possono essere eliminati.
rm.hold.delete-node-frozen-children=Impossibile eliminare la cartella poich\u00e9 contiene contenuti congelati.
rm.hold.move-frozen-node=I contenuti congelati non possono essere spostati.
rm.hold.update-frozen-node=I contenuti congelati non possono essere aggiornati.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} \u306f\u30db\u30fc\u30eb\u30c9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
rm.hold.add-to-hold-invalid-type={0} \u306f\u30ec\u30b3\u30fc\u30c9\u3001\u30ec\u30b3\u30fc\u30c9\u30d5\u30a9\u30eb\u30c0\u3001\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u3044\u305a\u308c\u3067\u3082\u3042\u308a\u307e\u305b\u3093\u3002\u30db\u30fc\u30eb\u30c9\u306b\u8ffd\u52a0\u3067\u304d\u308b\u306e\u306f\u30ec\u30b3\u30fc\u30c9\u3001\u30ec\u30b3\u30fc\u30c9\u30d5\u30a9\u30eb\u30c0\u3001\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u307f\u3067\u3059\u3002
rm.hold.add-to-hold-archived-node=\u30a2\u30fc\u30ab\u30a4\u30d6\u6e08\u307f\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u30db\u30fc\u30eb\u30c9\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
rm.hold.add-to-hold-locked-node=\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u30db\u30fc\u30eb\u30c9\u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
rm.hold.delete-frozen-node=\u51cd\u7d50\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002
rm.hold.delete-node-frozen-children=\u30d5\u30a9\u30eb\u30c0\u306b\u51cd\u7d50\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002
rm.hold.move-frozen-node=\u51cd\u7d50\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u79fb\u52d5\u3067\u304d\u307e\u305b\u3093\u3002
rm.hold.update-frozen-node=\u51cd\u7d50\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3002

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} er ikke en hold.
rm.hold.add-to-hold-invalid-type={0} er ikke en oppf\u00f8ring, en oppf\u00f8ringsmappe eller aktivt innhold. Kun oppf\u00f8ringer, oppf\u00f8ringsmapper eller aktivt innhold kan legges til i en hold.
rm.hold.add-to-hold-archived-node=Arkivert innhold kan ikke legges til en hold.
rm.hold.add-to-hold-locked-node=L\u00e5st innhold kan ikke legges til en hold.
rm.hold.delete-frozen-node=Frosset innhold kan ikke slettes.
rm.hold.delete-node-frozen-children=Kan ikke slette mappen fordi den inneholder frosset innhold.
rm.hold.move-frozen-node=Frosset innhold kan ikke flyttes.
rm.hold.update-frozen-node=Frosset innhold kan ikke oppdateres.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} is geen wachtstand.
rm.hold.add-to-hold-invalid-type={0} is geen record, recordmap of actieve content. Alleen records, recordmappen of actieve content kunnen worden toegevoegd aan een wachtstand.
rm.hold.add-to-hold-archived-node=Gearchiveerde content kan niet worden toegevoegd aan een wachtstand.
rm.hold.add-to-hold-locked-node=Vergrendelde content kan niet worden toegevoegd aan een wachtstand.
rm.hold.delete-frozen-node=Geblokkeerde content kan niet worden verwijderd.
rm.hold.delete-node-frozen-children=De map kan niet worden verwijderd omdat deze geblokkeerde content bevat.
rm.hold.move-frozen-node=Geblokkeerde content kan niet worden verplaatst.
rm.hold.update-frozen-node=Geblokkeerde content kan niet worden bijgewerkt.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} n\u00e3o \u00e9 uma espera.
rm.hold.add-to-hold-invalid-type={0} n\u00e3o \u00e9 um documento arquiv\u00edstico, uma pasta de documento arquiv\u00edstico ou conte\u00fado ativo. Somente documentos arquiv\u00edsticos, pastas de documentos arquiv\u00edsticos ou conte\u00fados ativos podem ser adicionados a uma espera.
rm.hold.add-to-hold-archived-node=Conte\u00fado arquivado n\u00e3o pode ser adicionado a uma espera.
rm.hold.add-to-hold-locked-node=Conte\u00fado bloqueado n\u00e3o pode ser adicionado a uma espera.
rm.hold.delete-frozen-node=Conte\u00fado congelado n\u00e3o pode ser exclu\u00eddo.
rm.hold.delete-node-frozen-children=N\u00e3o \u00e9 poss\u00edvel excluir a pasta pois ela cont\u00e9m conte\u00fado congelado.
rm.hold.move-frozen-node=Conte\u00fado congelado n\u00e3o pode ser movido.
rm.hold.update-frozen-node=Conte\u00fado congelado n\u00e3o pode ser atualizado.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439.
rm.hold.add-to-hold-invalid-type={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c\u044e, \u043f\u0430\u043f\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c. \u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0438, \u043f\u0430\u043f\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443.
rm.hold.add-to-hold-archived-node=\u0410\u0440\u0445\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443.
rm.hold.add-to-hold-locked-node=\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443.
rm.hold.delete-frozen-node=\u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043e.
rm.hold.delete-node-frozen-children=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0430\u043f\u043a\u0443, \u0442. \u043a. \u0432 \u043d\u0435\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.
rm.hold.move-frozen-node=\u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043e.
rm.hold.update-frozen-node=\u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e.

View File

@@ -0,0 +1,8 @@
rm.hold.not-hold={0} \u4e0d\u662f\u4fdd\u5b58\u3002
rm.hold.add-to-hold-invalid-type={0} \u4e0d\u662f\u8bb0\u5f55\u3001\u8bb0\u5f55\u6587\u4ef6\u5939\u6216\u6d3b\u52a8\u5185\u5bb9\u3002\u53ea\u6709\u8bb0\u5f55\u3001\u8bb0\u5f55\u6587\u4ef6\u5939\u6216\u6d3b\u52a8\u5185\u5bb9\u53ef\u4ee5\u6dfb\u52a0\u5230\u4fdd\u5b58\u4e2d\u3002
rm.hold.add-to-hold-archived-node=\u5df2\u5b58\u6863\u5185\u5bb9\u65e0\u6cd5\u6dfb\u52a0\u5230\u4fdd\u5b58\u4e2d\u3002
rm.hold.add-to-hold-locked-node=\u9501\u5b9a\u5185\u5bb9\u65e0\u6cd5\u6dfb\u52a0\u5230\u4fdd\u5b58\u4e2d\u3002
rm.hold.delete-frozen-node=\u65e0\u6cd5\u5220\u9664\u5df2\u5173\u95ed\u5185\u5bb9\u3002
rm.hold.delete-node-frozen-children=\u65e0\u6cd5\u5220\u9664\u6587\u4ef6\u5939\uff0c\u56e0\u4e3a\u5176\u5305\u542b\u5df2\u5173\u95ed\u5185\u5bb9\u3002
rm.hold.move-frozen-node=\u65e0\u6cd5\u79fb\u52a8\u5df2\u5173\u95ed\u5185\u5bb9\u3002
rm.hold.update-frozen-node=\u65e0\u6cd5\u66f4\u65b0\u5df2\u5173\u95ed\u5185\u5bb9\u3002

View File

@@ -21,5 +21,5 @@ rm.service.final-version=Finale
rm.service.final-version-description=Versione del record archiviata finale
rm.service.enable-autoversion-on-record-creation=Versione automatica sulla creazione del record
rm.service.add-children-to-closed-record-folder=Impossibile aggiungere nuovi elementi a una cartella di record chiusa.
rm.service.add-children-to-frozen-record-folder=Impossibile aggiungere nuovi elementi a una cartella record bloccata
rm.service.add-children-to-frozen-record-folder=Impossibile aggiungere nuovi elementi a una cartella di record congelata.
rm.service.update-record-content=Impossibile aggiornare la propriet\u00e0 del contenuto di un record.

View File

@@ -163,7 +163,7 @@ rma_recordsmanagement.property.rma_dateFiled.decription=Data di archiviazione
rma_recordsmanagement.property.rma_origionalName=Nome originale
rma_recordsmanagement.aspect.rma_recordMetaData.title=Metadati del record
rma_recordsmanagement.aspect.rma_recordMetaData.description=Aspetto indicatore per metadati di record
rma_recordsmanagement.aspect.rma_recordMetaData.description=Aspetto indicatore per metadati del record
rma_recordsmanagement.aspect.rma_commonRecordDetails.title=Dettagli record comuni
rma_recordsmanagement.aspect.rma_commonRecordDetails.description=Metadati comuni a tutti i tipi di record

View File

@@ -104,10 +104,10 @@ rma_recordsmanagement.property.rma_eventExecutionCompletedBy.decription=Evento c
rma_recordsmanagement.property.rma_eventExecutionCompletedAt.title=Evento conclu\u00eddo em
rma_recordsmanagement.property.rma_eventExecutionCompletedAt.decription=Evento conclu\u00eddo em
rma_recordsmanagement.type.rma_hold.title=Manter
rma_recordsmanagement.type.rma_hold.decription=Manter
rma_recordsmanagement.property.rma_holdReason.title=Motivo para manter
rma_recordsmanagement.property.rma_holdReason.decription=Motivo para manter
rma_recordsmanagement.type.rma_hold.title=Espera
rma_recordsmanagement.type.rma_hold.decription=Espera
rma_recordsmanagement.property.rma_holdReason.title=Motivo para espera
rma_recordsmanagement.property.rma_holdReason.decription=Motivo para espera
rma_recordsmanagement.association.rma_frozenRecords.title=Documentos arquiv\u00edsticos mantidos
rma_recordsmanagement.association.rma_frozenRecords.decription=Documentos arquiv\u00edsticos mantidos
@@ -235,8 +235,8 @@ rma_recordsmanagement.property.rma_recordSearchDispositionAuthority.title=Autori
rma_recordsmanagement.property.rma_recordSearchDispositionAuthority.description=Autoridade de reten\u00e7\u00e3o
rma_recordsmanagement.property.rma_recordSearchDispositionInstructions.title=Instru\u00e7\u00f5es de reten\u00e7\u00e3o
rma_recordsmanagement.property.rma_recordSearchDispositionInstructions.description=Instru\u00e7\u00f5es de reten\u00e7\u00e3o
rma_recordsmanagement.property.rma_recordSearchHoldReason.title=Motivo para manter
rma_recordsmanagement.property.rma_recordSearchHoldReason.description=Motivo para manter
rma_recordsmanagement.property.rma_recordSearchHoldReason.title=Motivo para espera
rma_recordsmanagement.property.rma_recordSearchHoldReason.description=Motivo para espera
rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriod.title=Per\u00edodo de revis\u00e3o do documento arquiv\u00edstico vital
rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriod.description=Per\u00edodo de revis\u00e3o do documento arquiv\u00edstico vital
rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriodExpression.title=Express\u00e3o do per\u00edodo de revis\u00e3o

View File

@@ -1,4 +1,4 @@
rm.hold.name=Manter
rm.hold.name=Espera
## Default roles
rm.role.extendedReaders=Leitores no local

View File

@@ -19,9 +19,9 @@ file.report.record.folder=Pasta de documento arquiv\u00edstico
file.report.unique.folder.identifier=ID exclusivo da pasta
file.report.unique.record.identifier=ID exclusivo do documento arquiv\u00edstico
file.report.hold.report=Relat\u00f3rio de espera
file.report.hold.name=Nome da espera
file.report.hold.description=Descri\u00e7\u00e3o da espera
file.report.hold.reason=Motivo para manter
file.report.hold.name=Nome de espera
file.report.hold.description=Descri\u00e7\u00e3o de espera
file.report.hold.reason=Motivo para espera
file.report.hold.held=Mantido
file.report.createdby=Criado por
file.report.createdon=Criado em

View File

@@ -542,6 +542,7 @@
<associations>
<!-- @deprecated as of 3.2 -->
<child-association name="rma:frozenRecords">
<title>Frozen Records</title>
<source>
@@ -549,12 +550,25 @@
<many>true</many>
</source>
<target>
<class>cm:cmobject</class>
<class>rma:filePlanComponent</class>
<mandatory>false</mandatory>
<many>true</many>
</target>
</child-association>
<child-association name="rma:frozenContent">
<title>Frozen Records</title>
<source>
<mandatory>false</mandatory>
<many>true</many>
</source>
<target>
<class>cm:cmobject</class>
<mandatory>false</mandatory>
<many>true</many>
</target>
</child-association>
</associations>
</type>

View File

@@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- RM v3.2 Patches -->
<bean id="rm.holdChildAssocPatch"
parent="rm.parentModulePatch"
class="org.alfresco.module.org_alfresco_module_rm.patch.v32.RMv32HoldChildAssocPatch">
<property name="description" value="Change hold child assoc from frozenRecords frozenContent to support holding active content."/>
<property name="fixesToSchema" value="2700"/>
<property name="targetSchema" value="3200"/>
<property name="qnameDAO" ref="qnameDAO" />
<property name="filePlanService" ref="filePlanService" />
<property name="holdService" ref="holdService" />
<property name="nodeService" ref="nodeService" />
</bean>
</beans>

View File

@@ -1,3 +1,3 @@
# RM Schema number
version.rm.schema=2501
version.rm.schema=3200

View File

@@ -4,8 +4,8 @@ activitiReviewPooled.workflow.email.subject=Informazioni fornite per il record
activitiReviewPooled.workflow.email.body1=L'utente
activitiReviewPooled.workflow.email.body2=ha fornito le informazioni richieste per il record.
rmwf_workflowmodel.type.rmwf_workflowTask.title=Attivit\u00e0 del flusso di lavoro
rmwf_workflowmodel.type.rmwf_workflowTask.decription=Attivit\u00e0 del flusso di lavoro
rmwf_workflowmodel.type.rmwf_workflowTask.title=Attivit\u00e0 del workflow
rmwf_workflowmodel.type.rmwf_workflowTask.decription=Attivit\u00e0 del workflow
rmwf_workflowmodel.property.rmwf_requestedInformation.title=Informazioni richieste
rmwf_workflowmodel.property.rmwf_requestedInformation.decription=Informazioni richieste
rmwf_workflowmodel.property.rmwf_message.title=Messaggio

View File

@@ -346,7 +346,7 @@ public class HoldServiceImpl extends ServiceBaseImpl
*/
private Set<NodeRef> getParentHolds(NodeRef nodeRef)
{
List<ChildAssociationRef> holdsAssocs = nodeService.getParentAssocs(nodeRef, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
List<ChildAssociationRef> holdsAssocs = nodeService.getParentAssocs(nodeRef, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
Set<NodeRef> holds = new HashSet<>(holdsAssocs.size());
for (ChildAssociationRef holdAssoc : holdsAssocs)
{
@@ -392,7 +392,7 @@ public class HoldServiceImpl extends ServiceBaseImpl
throw new AlfrescoRuntimeException("Can't get the node's held, because passed node reference isn't a hold. (hold=" + hold.toString() + ")");
}
List<ChildAssociationRef> childAssocs = nodeService.getChildAssocs(hold, ASSOC_FROZEN_RECORDS, RegexQNamePattern.MATCH_ALL);
List<ChildAssociationRef> childAssocs = nodeService.getChildAssocs(hold, ASSOC_FROZEN_CONTENT, RegexQNamePattern.MATCH_ALL);
if (childAssocs != null && !childAssocs.isEmpty())
{
for (ChildAssociationRef childAssociationRef : childAssocs)
@@ -593,7 +593,7 @@ public class HoldServiceImpl extends ServiceBaseImpl
// Link the record to the hold
//set in transaction cache in order not to trigger update policy when adding the association
transactionalResourceHelper.getSet("frozen").add(nodeRef);
nodeService.addChild(hold, nodeRef, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
nodeService.addChild(hold, nodeRef, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
// audit item being added to the hold
recordsManagementAuditService.auditEvent(nodeRef, AUDIT_ADD_TO_HOLD);

View File

@@ -200,7 +200,10 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel
// Hold type
QName TYPE_HOLD = QName.createQName(RM_URI, "hold");
QName PROP_HOLD_REASON = QName.createQName(RM_URI, "holdReason");
//since 3.2
@Deprecated
QName ASSOC_FROZEN_RECORDS = QName.createQName(RM_URI, "frozenRecords");
QName ASSOC_FROZEN_CONTENT = QName.createQName(RM_URI, "frozenContent");
// Record meta data aspect
QName ASPECT_RECORD_META_DATA = QName.createQName(RM_URI, "recordMetaData");

View File

@@ -0,0 +1,123 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.module.org_alfresco_module_rm.patch.v32;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_CONTENT;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_RECORDS;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
import org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch;
import org.alfresco.repo.domain.qname.QNameDAO;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
/**
* Patch to replace any use of the hold child association rma:frozenRecords with rma:frozenContent
*
* See: https://issues.alfresco.com/jira/browse/RM-6992
*
*
* @author Ross Gale
* @since 3.2
*/
public class RMv32HoldChildAssocPatch extends AbstractModulePatch
{
/**
* Data abstraction layer for QName and Namespace entities.
*/
private QNameDAO qnameDAO;
/**
* File plan service interface
*/
private FilePlanService filePlanService;
/**
* Hold service interface.
*/
private HoldService holdService;
/**
* Interface for public and internal node and store operations.
*/
private NodeService nodeService;
/**
* Setter for qnamedao
* @param qnameDAO Data abstraction layer for QName and Namespace entities.
*/
public void setQnameDAO(QNameDAO qnameDAO)
{
this.qnameDAO = qnameDAO;
}
/**
* Setter for fileplanservice
* @param filePlanService File plan service interface
*/
public void setFilePlanService(FilePlanService filePlanService)
{
this.filePlanService = filePlanService;
}
/**
* Setter for hold service
* @param holdService Hold service interface.
*/
public void setHoldService(HoldService holdService)
{
this.holdService = holdService;
}
/**
* Setter for node service
* @param nodeService Interface for public and internal node and store operations.
*/
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
}
@Override
public void applyInternal()
{
qnameDAO.updateQName(ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_CONTENT);
for (NodeRef filePlan : filePlanService.getFilePlans())
{
for (NodeRef hold : holdService.getHolds(filePlan))
{
for (ChildAssociationRef ref : nodeService.getChildAssocs(hold, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_RECORDS))
{
holdService.removeFromHold(hold, ref.getChildRef());
holdService.addToHold(hold, ref.getChildRef());
}
}
}
}
}

View File

@@ -34,6 +34,7 @@ import org.alfresco.rest.framework.core.exceptions.PermissionDeniedException;
import org.alfresco.service.cmr.model.FileNotFoundException;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
import org.springframework.extensions.surf.util.I18NUtil;
import org.springframework.extensions.webscripts.GUID;
/**
@@ -77,7 +78,7 @@ public class UpdateHeldActiveContentTest extends BaseRMTestCase
}
catch (PermissionDeniedException pde)
{
assertTrue(pde.getMessage().contains("Frozen nodes can not be deleted."));
assertTrue(pde.getMessage().contains(I18NUtil.getMessage("rm.hold.delete-frozen-node")));
}
}
});
@@ -135,7 +136,7 @@ public class UpdateHeldActiveContentTest extends BaseRMTestCase
}
catch (PermissionDeniedException pde)
{
assertTrue(pde.getMessage().contains("Frozen nodes can not be moved."));
assertTrue(pde.getMessage().contains(I18NUtil.getMessage("rm.hold.move-frozen-node")));
}
}
});
@@ -169,7 +170,7 @@ public class UpdateHeldActiveContentTest extends BaseRMTestCase
}
catch (PermissionDeniedException pde)
{
assertTrue(pde.getMessage().contains("Frozen nodes can not be updated."));
assertTrue(pde.getMessage().contains(I18NUtil.getMessage("rm.hold.update-frozen-node")));
}
}
});
@@ -204,7 +205,7 @@ public class UpdateHeldActiveContentTest extends BaseRMTestCase
}
catch (PermissionDeniedException pde)
{
assertTrue(pde.getMessage().contains("Frozen nodes can not be updated."));
assertTrue(pde.getMessage().contains(I18NUtil.getMessage("rm.hold.update-frozen-node")));
}
}
});

View File

@@ -134,14 +134,14 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
{
// setup record folder in multiple holds
List<ChildAssociationRef> holds = new ArrayList<>(4);
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold, ASSOC_FROZEN_RECORDS, recordFolder, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold2, ASSOC_FROZEN_RECORDS, recordFolder, true, 2));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold, ASSOC_FROZEN_RECORDS, activeContent, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold2, ASSOC_FROZEN_RECORDS, activeContent, true, 2));
doReturn(holds).when(mockedNodeService).getParentAssocs(recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold, ASSOC_FROZEN_CONTENT, recordFolder, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold2, ASSOC_FROZEN_CONTENT, recordFolder, true, 2));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold, ASSOC_FROZEN_CONTENT, activeContent, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold2, ASSOC_FROZEN_CONTENT, activeContent, true, 2));
doReturn(holds).when(mockedNodeService).getParentAssocs(recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
//setup active content in multiple holds
doReturn(holds).when(mockedNodeService).getParentAssocs(activeContent, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
doReturn(holds).when(mockedNodeService).getParentAssocs(activeContent, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
doReturn(Collections.singleton(filePlan)).when(mockedFilePlanService).getFilePlans();
@@ -202,9 +202,9 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
{
// setup record folder in hold
List<ChildAssociationRef> holds = new ArrayList<>(2);
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold, ASSOC_FROZEN_RECORDS, recordFolder, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_RECORDS, hold, ASSOC_FROZEN_RECORDS, activeContent, true, 1));
doReturn(holds).when(mockedNodeService).getChildAssocs(hold, ASSOC_FROZEN_RECORDS, RegexQNamePattern.MATCH_ALL);
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold, ASSOC_FROZEN_CONTENT, recordFolder, true, 1));
holds.add(new ChildAssociationRef(ASSOC_FROZEN_CONTENT, hold, ASSOC_FROZEN_CONTENT, activeContent, true, 1));
doReturn(holds).when(mockedNodeService).getChildAssocs(hold, ASSOC_FROZEN_CONTENT, RegexQNamePattern.MATCH_ALL);
List<NodeRef> list = holdService.getHeld(hold);
assertEquals(2, list.size());
@@ -332,19 +332,19 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
{
holdService.addToHold(hold, recordFolder);
verify(mockedNodeService).addChild(hold, recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService).addChild(hold, recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService).addAspect(eq(recordFolder), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedNodeService).addAspect(eq(record), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService).auditEvent(eq(recordFolder), anyString());
holdService.addToHold(hold, record);
verify(mockedNodeService).addChild(hold, record, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService).addChild(hold, record, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService).addAspect(eq(recordFolder), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedNodeService, times(2)).addAspect(eq(record), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService).auditEvent(eq(record), anyString());
holdService.addToHold(hold, activeContent);
verify(mockedNodeService).addChild(hold, activeContent, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService).addChild(hold, activeContent, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService).addAspect(eq(activeContent), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService).auditEvent(eq(activeContent), anyString());
}
@@ -357,14 +357,14 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
holdService.addToHold(hold, recordFolder);
verify(mockedNodeService, never()).addChild(hold, recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService, never()).addChild(hold, recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, never()).addAspect(eq(recordFolder), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedNodeService, never()).addAspect(eq(record), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService, never()).auditEvent(eq(recordFolder), anyString());
holdService.addToHold(hold, activeContent);
verify(mockedNodeService, never()).addChild(hold, activeContent, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService, never()).addChild(hold, activeContent, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, never()).addAspect(eq(activeContent), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService, never()).auditEvent(eq(activeContent), anyString());
}
@@ -379,13 +379,13 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
holdService.addToHold(hold, recordFolder);
verify(mockedNodeService).addChild(hold, recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService).addChild(hold, recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, never()).addAspect(eq(recordFolder), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedNodeService, never()).addAspect(eq(record), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService).auditEvent(eq(recordFolder), anyString());
holdService.addToHold(hold, activeContent);
verify(mockedNodeService).addChild(hold, activeContent, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService).addChild(hold, activeContent, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, never()).addAspect(eq(activeContent), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService).auditEvent(eq(activeContent), anyString());
}
@@ -447,8 +447,8 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
holdService.addToHolds(holds, recordFolder);
// verify the interactions
verify(mockedNodeService, times(1)).addChild(hold, recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService, times(1)).addChild(hold2, recordFolder, ASSOC_FROZEN_RECORDS, ASSOC_FROZEN_RECORDS);
verify(mockedNodeService, times(1)).addChild(hold, recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, times(1)).addChild(hold2, recordFolder, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_CONTENT);
verify(mockedNodeService, times(1)).addAspect(eq(recordFolder), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedNodeService, times(1)).addAspect(eq(record), eq(ASPECT_FROZEN), any(Map.class));
verify(mockedRecordsManagementAuditService, times(2)).auditEvent(eq(recordFolder), anyString());

View File

@@ -0,0 +1,116 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.module.org_alfresco_module_rm.patch.v32;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_CONTENT;
import static org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel.ASSOC_FROZEN_RECORDS;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldService;
import org.alfresco.repo.domain.qname.QNameDAO;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
/**
* RM V3.2 Hold child assoc patch unit test
*
* @author Ross Gale
* @since 3.2
*/
public class RMv32HoldChildAssocPatchUnitTest
{
@Mock
private QNameDAO qNameDAO;
@Mock
private NodeService nodeService;
@Mock
private FilePlanService filePlanService;
@Mock
private HoldService holdService;
@InjectMocks
private RMv32HoldChildAssocPatch patch;
private NodeRef filePlanRef, holdRef, heldItemRef;
private Set<NodeRef> fileplans;
private List<NodeRef> holds;
@Mock
private ChildAssociationRef childAssociationRef;
private List<ChildAssociationRef> childAssocs;
@Before
public void setUp()
{
MockitoAnnotations.initMocks(this);
filePlanRef = new NodeRef("workspace://SpacesStore/filePlan");
holdRef = new NodeRef("workspace://SpacesStore/hold");
heldItemRef = new NodeRef("workspace://SpacesStore/heldItem");
fileplans = new HashSet<>();
fileplans.add(filePlanRef);
holds = new ArrayList<>();
holds.add(holdRef);
childAssocs = new ArrayList<>();
childAssocs.add(childAssociationRef);
}
/**
* Test held items are removed from a hold and re-add to make sure the association is correct
*/
@Test
public void testAHoldIsRemovedAndReplacedDuringUpgrade()
{
when(filePlanService.getFilePlans()).thenReturn(fileplans);
when(holdService.getHolds(filePlanRef)).thenReturn(holds);
when(nodeService.getChildAssocs(holdRef, ASSOC_FROZEN_CONTENT, ASSOC_FROZEN_RECORDS)).thenReturn(childAssocs);
when(childAssociationRef.getChildRef()).thenReturn(heldItemRef);
patch.applyInternal();
verify(holdService, times(1)).removeFromHold(holdRef, heldItemRef);
verify(holdService, times(1)).addToHold(holdRef, heldItemRef);
}
}