Skip to content

Commit

Permalink
Merge branch 'release/v1.3.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
Anastasiya Bukhala committed Feb 7, 2019
2 parents 9a11431 + ed6f8fc commit b9ccb96
Show file tree
Hide file tree
Showing 19 changed files with 30 additions and 95 deletions.
10 changes: 5 additions & 5 deletions docs/Brukerveiledning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,15 @@ Arkivpakkevinduet

.. image:: img/PackageWindow.png

Før arkivpakke opprettes registreres aktuelle metadata. For å skape en gyldig arkivpakke må påkrevde felter (merket *) utfylles. Dersom det aktuelle arkivuttrekket i utgangspunktet var en arkivpakke (AIP/SIP) med allerede definerte metadata, vil Arkade forsøke å lese disse inn og forhåndsutfylle feltene i arkivpakkevinduet. Ved å klikke knappen "Last inn eksisterende metadata" kan det velges en fil med forhåndsdefinerte metadata, enten en METS-fil (f.eks. info.xml eller dias-mets.xml fra tidligere produsert pakke) eller metadata på JSON-format (f.eks. generert med Arkade CLI) for automatisk utfylling av feltene. Når pakken opprettes skrives den utfylte informasjonen til filen dias-mets.xml som legges ved i arkivpakken. Metadataene skrives også til filen info.xml som legges utenfor, på samme nivå som, arkivpakken.
Før arkivpakke opprettes registreres aktuelle metadata. For å skape en gyldig arkivpakke må påkrevde felter (merket *) utfylles. Dersom det aktuelle arkivuttrekket i utgangspunktet var en arkivpakke (AIP/SIP) med allerede definerte metadata, vil Arkade forsøke å lese disse inn og forhåndsutfylle feltene i arkivpakkevinduet. Ved å klikke knappen "Last inn eksisterende metadata" kan det velges en fil med forhåndsdefinerte metadata, enten en METS-fil (f.eks. {uuid}.xml, info.xml eller dias-mets.xml fra tidligere produsert pakke) eller metadata på JSON-format (f.eks. generert med Arkade CLI) for automatisk utfylling av feltene. Når pakken opprettes skrives den utfylte informasjonen til filen dias-mets.xml som legges ved i arkivpakken. Metadataene skrives også til filen {uuid}.xml som legges utenfor, på samme nivå som, arkivpakken.
I nedre del av vinduet velges ønsket pakketype, SIP eller AIP.

Når ønskede metadata er oppgitt, klikkes knappen "Opprett pakke". Dette åpner et dialogvindu for valg av pakkens plassering. Ved valgt plassering opprettes arkivpakken.

Arkivpakken vil opprettes som en tar-fil og filnavnet vil være UUID-en som er generert for den gjeldende arkivbehandlingen: *{uuid}.tar*. Pakken og tilhørende info.xml-fil plasseres i en katalog *Arkadepakke-{uuid}*. Når alt er ferdig generert, vises denne katalogen på den valgte plasseringen.
Arkivpakken vil opprettes som en tar-fil og filnavnet vil være UUID-en som er generert for den gjeldende arkivbehandlingen: *{uuid}.tar*. Pakken og tilhørende {uuid}.xml-fil plasseres i en katalog *Arkadepakke-{uuid}*. Når alt er ferdig generert, vises denne katalogen på den valgte plasseringen.

*TIPS: Så lenge arkivpakkevinduet ikke forlates, kan metadata endres og "Opprett pakke" klikkes på nytt. Velges samme pakkeplassering, overskrives foregående pakke og info.xml med oppdaterte metadata. Sørg bare for at filene som skal overskrives ikke er opptatt, f.eks. ved at de er åpnet i andre programmer.*
*TIPS: Så lenge arkivpakkevinduet ikke forlates, kan metadata endres og "Opprett pakke" klikkes på nytt. Velges samme pakkeplassering, overskrives foregående pakke og {uuid}.xml med oppdaterte metadata. Sørg bare for at filene som skal overskrives ikke er opptatt, f.eks. ved at de er åpnet i andre programmer.*

NB! Knappen "Ny kjøring" avslutter gjeldene arkivbehandling.

Expand Down Expand Up @@ -205,9 +205,9 @@ I eksempelkommandoen vist under leses det inn et arkivuttrekk fra katalogen :cod
Resulterende data
.................

Kommandoen over produserer en arkivpakke (SIP) som en tar-fil, med tilhørende info.xml på METS-format, samlet i en katalog. Ved siden av katalogen plasseres en testrapport på HTML-format.
Kommandoen over produserer en arkivpakke (SIP) som en tar-fil, med tilhørende {uuid}.xml på METS-format, samlet i en katalog. Ved siden av katalogen plasseres en testrapport på HTML-format.

.. image:: img/cli/outputfiles.png
.. image:: img/cli/generatedoutput.png

*For hver prosessering genereres en unik UUID som bl.a. brukes i fil- og katalognavn for resultatene.*

Expand Down
Binary file added docs/img/cli/generatedoutput.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/img/cli/outputfiles.png
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>

<IsPackable>false</IsPackable>
<OutputType>Library</OutputType>
Expand Down
2 changes: 1 addition & 1 deletion src/Arkivverket.Arkade.CLI/Arkivverket.Arkade.CLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<PackageLicenseUrl>https://github.com/arkivverket/arkade5/blob/master/LICENSE</PackageLicenseUrl>
<PackageProjectUrl>http://arkade.arkivverket.no</PackageProjectUrl>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>

<IsPackable>false</IsPackable>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ public void ShouldSaveCreatedInfoXmlFileToDisk()
string workingDirectory = $"{AppDomain.CurrentDomain.BaseDirectory}\\TestData\\Metadata\\InfoXmlCreator";

var packageFileName = Path.Combine(workingDirectory, "package.tar");
var infoXmlFileName = Path.Combine(workingDirectory, "UUID.xml");

new InfoXmlCreator().CreateAndSaveFile(ArchiveMetadata, packageFileName);
new InfoXmlCreator().CreateAndSaveFile(ArchiveMetadata, packageFileName, infoXmlFileName);

string infoXmlFilePath = Path.Combine(workingDirectory, "info.xml");
string infoXmlFilePath = Path.Combine(workingDirectory, infoXmlFileName);

File.Exists(infoXmlFilePath).Should().BeTrue();

Expand Down
14 changes: 11 additions & 3 deletions src/Arkivverket.Arkade.Core/Base/Archive.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,25 @@ public Archive(ArchiveType archiveType, Uuid uuid, WorkingDirectory workingDirec

AddmlXmlUnit = SetupAddmlXmlUnit();

Details = new ArchiveDetails(this);
if (AddmlXmlUnit.File.Exists)
{
Details = new ArchiveDetails(this);

if (archiveType == ArchiveType.Noark5)
SetupArchiveXmlUnits();
if (archiveType == ArchiveType.Noark5)
SetupArchiveXmlUnits();
}
}

public string GetInformationPackageFileName()
{
return Uuid + ".tar";
}

public string GetInfoXmlFileName()
{
return Uuid + ".xml";
}

public ArchiveXmlFile GetArchiveXmlFile(string fileName)
{
return XmlUnits.FirstOrDefault(xmlUnit => xmlUnit.File.Name.Equals(fileName))?.File;
Expand Down
12 changes: 0 additions & 12 deletions src/Arkivverket.Arkade.Core/Base/ArchiveDirectory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,5 @@ private static ArchiveDirectory Read(DirectoryInfo archiveDirectory, ArchiveType

return new ArchiveDirectory(archiveDirectory, archiveType);
}

private static FileInfo GetInfoXmlFile(DirectoryInfo archiveDirectory)
{
if (archiveDirectory.Parent == null)
{
return null;
}

string infoXml = Path.Combine(archiveDirectory.Parent.FullName, ArkadeConstants.InfoXmlFileName);
FileInfo fileInfo = new FileInfo(infoXml);
return fileInfo.Exists ? fileInfo : null;
}
}
}
14 changes: 0 additions & 14 deletions src/Arkivverket.Arkade.Core/Base/ArchiveFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,5 @@ private static ArchiveFile Read(FileInfo archiveFile, ArchiveType archiveType)

return new ArchiveFile(archiveFile, archiveType);
}


private static FileInfo GetInfoXmlFile(FileInfo tarFile)
{
if (tarFile.Directory == null)
{
return null;
}

string infoXml = Path.Combine(tarFile.Directory.FullName, ArkadeConstants.InfoXmlFileName);
FileInfo fileInfo = new FileInfo(infoXml);
return fileInfo.Exists ? fileInfo : null;
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ private string CreatePackage(PackageType packageType, Archive archive, ArchiveMe

tarArchive.Close();

new InfoXmlCreator().CreateAndSaveFile(metadata, packageFilePath);
new InfoXmlCreator().CreateAndSaveFile(metadata, packageFilePath, archive.GetInfoXmlFileName());

HasRun = true;

Expand Down
3 changes: 2 additions & 1 deletion src/Arkivverket.Arkade.Core/Base/TestSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public DirectoryInfo GetReportDirectory()

public bool IsTestableArchive()
{
return AddmlDefinition != null || Archive.ArchiveType == ArchiveType.Noark5;
return AddmlDefinition != null ||
Archive.ArchiveType == ArchiveType.Noark5 && Archive.AddmlXmlUnit.File.Exists;
}
}
}
4 changes: 2 additions & 2 deletions src/Arkivverket.Arkade.Core/Metadata/InfoXmlCreator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class InfoXmlCreator : MetsCreator
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod().DeclaringType);

public void CreateAndSaveFile(ArchiveMetadata metadata, string packageFileName)
public void CreateAndSaveFile(ArchiveMetadata metadata, string packageFileName, string infoXmlFileName)
{
var packageFile = new FileInfo(packageFileName);

Expand All @@ -22,7 +22,7 @@ public void CreateAndSaveFile(ArchiveMetadata metadata, string packageFileName)
mets infoXml = Create(metadata);

var targetFileObject = new FileInfo(
Path.Combine(packageFile.DirectoryName, ArkadeConstants.InfoXmlFileName)
Path.Combine(packageFile.DirectoryName, infoXmlFileName)
);

XmlSerializerNamespaces namespaces = SetupNamespaces();
Expand Down
2 changes: 1 addition & 1 deletion src/Arkivverket.Arkade.Core/Report/HtmlReportGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ private void SummaryOfErrors(TestSession testSession)

foreach (TestRun testRun in testSession.TestSuite.TestRuns)
{
if (TestTypeIsControl(testRun) && !testRun.IsSuccess())
if (!testRun.IsSuccess())
{
_stream.WriteLine(@" <tr>");
_stream.WriteLine(@" <td>");
Expand Down
1 change: 0 additions & 1 deletion src/Arkivverket.Arkade.Core/Util/ArkadeConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public class ArkadeConstants
public const string ArkivstrukturXmlFileName = "arkivstruktur.xml";
public const string ArkivstrukturXsdFileName = "arkivstruktur.xsd";
public const string MetadatakatalogXsdFileName = "metadatakatalog.xsd";
public const string InfoXmlFileName = "info.xml";
public const string ArkadeXmlLogFileName = "arkade-log.xml";
public const string EadXmlFileName = "ead.xml";
public const string EacCpfXmlFileName = "eac-cpf.xml";
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/Arkivverket.Arkade.GUI/Resources/SettingsGUI.resx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@
<value>Arkades prosesseringsområde</value>
</data>
<data name="ArkadeProcessingAreaLocation_Info" xml:space="preserve">
<value>Arkades prosesseringsområde er en katalog "Arkade" der midlertidige filer blir plassert under prosessering av arkivutrekk og der hvor system- og feillogger lagres. Du må velge en egnet plassering for denne katalogen.</value>
<value>Arkades prosesseringsområde er en katalog "arkade-tmp" der midlertidige filer blir plassert under prosessering av arkivutrekk og der hvor system- og feillogger lagres. Du må velge en egnet plassering for denne katalogen.</value>
</data>
<data name="ArkadeProcessingAreaLocation_Warning" xml:space="preserve">
<value>NB! Prosesseringsområdet vil potensielt inneholde sensitive data og store datamengder.</value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,6 @@ private void RunLoadExternalMetadata()
{
Title = MetaDataGUI.SelectMetadataFile,
InitialDirectory = suggestedMetadataFileDirectory,
DefaultFileName = ArkadeConstants.InfoXmlFileName,
};

string metadataFileName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,9 @@ public class LoadArchiveExtractionViewModel : BindableBase, INavigationAware
private readonly IRegionManager _regionManager;
private string _archiveFileName;
private string _archiveFileNameGuiRepresentation;
private string _metadataFileName;
private ArchiveType _archiveType;
private bool _isArchiveTypeSelected;

// TODO: MetadataFileName is replaced by GUI selection of archiveType ... leaving code in case needed for METS based input meta file
public string MetadataFileName
{
get { return _metadataFileName; }
set
{
SetProperty(ref _metadataFileName, value);
NavigateCommand.RaiseCanExecuteChanged();
}
}

public string ArchiveFileName
{
get { return _archiveFileName; }
Expand Down Expand Up @@ -67,15 +55,13 @@ public ArchiveType ArchiveType


public DelegateCommand NavigateCommand { get; set; }
public DelegateCommand OpenMetadataFileCommand { get; set; }
public DelegateCommand OpenArchiveFileCommand { get; set; }
public DelegateCommand OpenArchiveFolderCommand { get; set; }
public DelegateCommand<string> SetArchiveTypeCommand { get; set; } // Would be better to user ArchiveType enum as arg, but could not get to work with Prism

public LoadArchiveExtractionViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
OpenMetadataFileCommand = new DelegateCommand(OpenMetadataFileDialog);
OpenArchiveFileCommand = new DelegateCommand(OpenArchiveFileDialog);
OpenArchiveFolderCommand = new DelegateCommand(OpenArchiveFolderDialog);
SetArchiveTypeCommand = new DelegateCommand<string>(SetArchiveTypeUserInput);
Expand Down Expand Up @@ -112,37 +98,17 @@ private bool CanRunTests()
return !string.IsNullOrEmpty(_archiveFileName) && _isArchiveTypeSelected;
}

private void OpenMetadataFileDialog()
{
_log.Information("User action: Open metadata file dialog");

MetadataFileName = OpenFileDialog();
}


private void OpenArchiveFileDialog()
{
_log.Information("User action: Open archive file dialog");

ArchiveFileName = OpenFileDialog();

if (ArchiveFileName == null)
{
MetadataFileName = null;
return;
}

_log.Information("User action: Choose archive file {ArchiveFileName}", ArchiveFileName);

string infoXmlFileName = Path.Combine(new FileInfo(ArchiveFileName).Directory?.FullName, ArkadeConstants.InfoXmlFileName);
if (File.Exists(infoXmlFileName))
{
MetadataFileName = infoXmlFileName;
}
else
{
MetadataFileName = null;
}
PresentChosenArchiveInGui(ArchiveFileName, false);
}

Expand All @@ -153,23 +119,10 @@ private void OpenArchiveFolderDialog()
ArchiveFileName = OpenFolderDialog();

if (ArchiveFileName == null)
{
MetadataFileName = null;
return;
}

_log.Information("User action: Choose archive folder {ArchiveFileName}", ArchiveFileName);

string infoXmlFileName = Path.Combine(new DirectoryInfo(ArchiveFileName).Parent?.FullName, ArkadeConstants.InfoXmlFileName);
if (File.Exists(infoXmlFileName))
{
MetadataFileName = infoXmlFileName;
}
else
{
MetadataFileName = null;
}

PresentChosenArchiveInGui(ArchiveFileName, true);
}

Expand Down

0 comments on commit b9ccb96

Please sign in to comment.