Replace entry with artifact and add entity

This commit is contained in:
2022-01-05 03:04:43 +02:00
parent e22f85a1aa
commit 7be5200094
28 changed files with 560 additions and 523 deletions

View File

@@ -22,29 +22,29 @@ module.exports = function (options) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.ProjectEntryVersions,
association: db.Project.ProjectArtifactVersions,
include: [
{
association: db.ProjectEntryVersion.EntryVersion,
association: db.ProjectArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
]
},
{
association: db.Project.ProjectTranslationEntryVersions,
association: db.Project.ProjectTranslationArtifactVersions,
include: [
{
association: db.ProjectTranslationEntryVersion.TranslationEntryVersion,
association: db.ProjectTranslationArtifactVersion.TranslationArtifactVersion,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
@@ -81,7 +81,8 @@ module.exports = function (options) {
.post(function(request, response, next) {
db.Project.create({
name: request.body.name,
description: request.body.description
description: request.body.description,
entityId: request.user.individualEntityUser.entityUser.entityId
}).then(project => {
if (project) {
response.redirect(`/projects/${project.id}`)
@@ -93,31 +94,31 @@ module.exports = function (options) {
})
})
router.route('/:id/add-entry')
router.route('/:id/add-artifact')
.get(function(request, response, next) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.ProjectEntryVersions
association: db.Project.ProjectArtifactVersions
},
{
association: db.Project.ProjectTranslationEntryVersions
association: db.Project.ProjectTranslationArtifactVersions
}
]
}).then(async (project) => {
if (project) {
const entries = await db.Entry.findAll({
const entries = await db.Artifact.findAll({
// Narrow it down to entries this user has admin ownership off...,
include: [
{
association: db.Entry.EntryVersions,
association: db.Artifact.ArtifactVersions,
limit: 1,
required: true
// TODO: Order by version...
}
]
})
response.display("project-add-entry", {
response.display("project-add-artifact", {
user: request.user,
pageTitle: "Projects - Mantra",
project: project,
@@ -134,29 +135,29 @@ module.exports = function (options) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.ProjectEntryVersions,
association: db.Project.ProjectArtifactVersions,
include: [
{
association: db.ProjectEntryVersion.EntryVersion,
association: db.ProjectArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
]
},
{
association: db.Project.ProjectTranslationEntryVersions,
association: db.Project.ProjectTranslationArtifactVersions,
include: [
{
association: db.ProjectTranslationEntryVersion.TranslationEntryVersion,
association: db.ProjectTranslationArtifactVersion.TranslationArtifactVersion,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
@@ -168,19 +169,19 @@ module.exports = function (options) {
}).then(async (project) => {
if (project) {
// TODO: Fi
const entryVersion = await db.EntryVersion.findByPk(request.body.entryVersionId, {
const artifactVersion = await db.ArtifactVersion.findByPk(request.body.artifactVersionId, {
// Narrow it down to entries this user has admin ownership off...,
})
if (entryVersion) {
const projectEntryVersion = db.ProjectEntryVersion.create({
if (artifactVersion) {
const projectArtifactVersion = db.ProjectArtifactVersion.create({
projectId: project.id,
entryVersionId: entryVersion.id
artifactVersionId: artifactVersion.id
})
response.redirect(`/projects/${project.id}`)
} else {
response.redirect(`/projects/${project.id}/add-entry`)
response.redirect(`/projects/${project.id}/add-artifact`)
}
@@ -197,24 +198,24 @@ module.exports = function (options) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.ProjectEntryVersions
association: db.Project.ProjectArtifactVersions
},
{
association: db.Project.ProjectTranslationEntryVersions
association: db.Project.ProjectTranslationArtifactVersions
}
]
}).then(async (project) => {
if (project) {
const translationEntryVersions = await db.TranslationEntryVersion.findAll({
const translationArtifactVersions = await db.TranslationArtifactVersion.findAll({
// Narrow it down to entries this user has admin ownership off...,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
required: true,
// TODO: Order by version...
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
@@ -224,7 +225,7 @@ module.exports = function (options) {
user: request.user,
pageTitle: "Projects - Mantra",
project: project,
translationEntryVersions: translationEntryVersions
translationArtifactVersions: translationArtifactVersions
})
} else {
next()
@@ -237,30 +238,30 @@ module.exports = function (options) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.ProjectEntryVersions
association: db.Project.ProjectArtifactVersions
},
{
association: db.Project.ProjectTranslationEntryVersions
association: db.Project.ProjectTranslationArtifactVersions
}
]
}).then(async (project) => {
if (project) {
// TODO: Fi
const translationEntryVersion = await db.TranslationEntryVersion.findByPk(request.body.translationEntryVersionId, {
const translationArtifactVersion = await db.TranslationArtifactVersion.findByPk(request.body.translationArtifactVersionId, {
// Narrow it down to entries this user has admin ownership off...,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
required: true
// TODO: Order by version...
}
]
})
if (translationEntryVersion) {
const projectTranslationEntryVersion = db.ProjectTranslationEntryVersion.create({
if (translationArtifactVersion) {
const projectTranslationArtifactVersion = db.ProjectTranslationArtifactVersion.create({
projectId: project.id,
translationEntryVersionId: translationEntryVersion.id
translationArtifactVersionId: translationArtifactVersion.id
})
response.redirect(`/projects/${project.id}`)
@@ -285,29 +286,29 @@ module.exports = function (options) {
required: true
},
{
association: db.Project.ProjectEntryVersions,
association: db.Project.ProjectArtifactVersions,
include: [
{
association: db.ProjectEntryVersion.EntryVersion,
association: db.ProjectArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
]
},
{
association: db.Project.ProjectTranslationEntryVersions,
association: db.Project.ProjectTranslationArtifactVersions,
include: [
{
association: db.ProjectTranslationEntryVersion.TranslationEntryVersion,
association: db.ProjectTranslationArtifactVersion.TranslationArtifactVersion,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry
association: db.ArtifactVersion.Artifact
}
]
}
@@ -362,29 +363,29 @@ module.exports = function (options) {
}).then(async (project) => {
if (project) {
db.TranslationEntryVersion.findAll({
db.TranslationArtifactVersion.findAll({
include: [
// TODO: require translationEntryVersions in ProjectEntryVersion
// TODO: require translationArtifactVersions in ProjectArtifactVersion
{
association: db.TranslationEntryVersion.ProjectTranslationEntryVersions,
association: db.TranslationArtifactVersion.ProjectTranslationArtifactVersions,
where: {
projectId: request.params.id
},
required: true
},
{
association: db.TranslationEntryVersion.EntryVersion,
association: db.TranslationArtifactVersion.ArtifactVersion,
include: [
{
association: db.EntryVersion.Entry,
association: db.ArtifactVersion.Artifact,
include: [
{
association: db.Entry.Dialect
association: db.Artifact.Dialect
}
]
},
{
association: db.EntryVersion.Chapters,
association: db.ArtifactVersion.Chapters,
include: [
{
association: db.Chapter.Chunks,
@@ -399,22 +400,22 @@ module.exports = function (options) {
]
},
{
association: db.TranslationEntryVersion.Dialect
association: db.TranslationArtifactVersion.Dialect
}
]
}).then(translationEntryVersions => {
}).then(translationArtifactVersions => {
const workbook = new XL.Workbook();
const cellWidth = 45
const cellHeight = 25
translationEntryVersions.forEach((translationEntryVersion, index) => {
const worksheet_name = `${index+1}-${translationEntryVersion.dialect.countryId}-${translationEntryVersion.dialect.languageId} - ${translationEntryVersion.entryVersion.entry.name}`.substring(0, 30);
translationArtifactVersions.forEach((translationArtifactVersion, index) => {
const worksheet_name = `${index+1}-${translationArtifactVersion.dialect.countryId}-${translationArtifactVersion.dialect.languageId} - ${translationArtifactVersion.artifactVersion.artifact.name}`.substring(0, 30);
// Don't have [ ] * ? : / \
const worksheet = workbook.addWorksheet(worksheet_name.replace(/[`*?:'\[\]\\\/]/gi, ""))
worksheet.cell(2,2,2,3,true)
.string(translationEntryVersion.entryVersion.entry.name)
.string(translationArtifactVersion.artifactVersion.artifact.name)
.style({
font: {
bold: true,
@@ -426,7 +427,7 @@ module.exports = function (options) {
})
worksheet.cell(4,2)
.string(translationEntryVersion.entryVersion.entry.dialect.name)
.string(translationArtifactVersion.artifactVersion.artifact.dialect.name)
.style({
font: {
bold: true,
@@ -438,7 +439,7 @@ module.exports = function (options) {
})
worksheet.cell(4,3)
.string(translationEntryVersion.dialect.name)
.string(translationArtifactVersion.dialect.name)
.style({
font: {
bold: true,
@@ -448,15 +449,15 @@ module.exports = function (options) {
wrapText: true
}
})
// Meta data for the translation and entry
// Meta data for the translation and artifact
worksheet.cell(4,4)
.string(translationEntryVersion.entryVersion.id)
.string(translationArtifactVersion.artifactVersion.id)
worksheet.cell(4,5)
.string(translationEntryVersion.id)
.string(translationArtifactVersion.id)
var cellIndex = 6
for (const i in translationEntryVersion.entryVersion.chapters) {
const chapter = translationEntryVersion.entryVersion.chapters[i]
for (const i in translationArtifactVersion.artifactVersion.chapters) {
const chapter = translationArtifactVersion.artifactVersion.chapters[i]
const chunks = chapter.chunks.sort((a,b) => a.index - b.index)
for (const j in chunks) {
const chunk = chunks[j]