diff --git a/server/router/fork/index.js b/server/router/fork/index.js index 3aaa420..09cbb6a 100644 --- a/server/router/fork/index.js +++ b/server/router/fork/index.js @@ -32,6 +32,7 @@ module.exports = function (options) { ] }).then(async (translationArtifactVersion) => { if (translationArtifactVersion) { + const existingTranslation = {} // fork check if forkable... const forkedTranslationArtifactVersion = await db.TranslationArtifactVersion.create({ creatorId: request.user.id, @@ -52,21 +53,18 @@ module.exports = function (options) { creatorId: request.user.id, chapterId: translationChapter.chapterId, translationChunks: translationChapter.translationChunks.map(translationChunk => { - const tc = { + if (translationChunk.translation) { + existingTranslation[translationChunk.chunkId] = { + creatorId: translationChunk.translation.creatorId, + text: translationChunk.translation.text, + } + } + return { creatorId: request.user.id, chunkId: translationChunk.chunkId, text: translationChunk.text, index: translationChunk.index, } - // if (translationChunk.translation) { - // tc.translation = { - // creatorId: translationChunk.translation.creatorId, - // text: translationChunk.translation.text, - // // TODO: Might want to create translations separately... - // translationArtifactVersionId: translationChunk.translation.translationArtifactVersionId, - // } - // } - return tc }) } }) @@ -91,6 +89,20 @@ module.exports = function (options) { ] }) if (forkedTranslationArtifactVersion) { + const t = [] + forkedTranslationArtifactVersion.translationChapters.forEach(translationChapter => { + translationChapter.translationChunks.forEach(translationChunk => { + if (existingTranslation[translationChunk.chunkId]) { + t.push({ + translationChunkId: translationChunk.id, + creatorId: existingTranslation[translationChunk.chunkId].creatorId, + text: existingTranslation[translationChunk.chunkId].text, + translationArtifactVersionId: forkedTranslationArtifactVersion.id + }) + } + }) + }); + await db.Translation.bulkCreate(t) return response.redirect(`/translate/${forkedTranslationArtifactVersion.id}`) } } else { diff --git a/server/views/translate-chunk.pug b/server/views/translate-chunk.pug index 2e6ac23..1cc184b 100644 --- a/server/views/translate-chunk.pug +++ b/server/views/translate-chunk.pug @@ -4,7 +4,7 @@ block content .container .center h1 Translate into - a(href=`/translate/${translationChunk.translationChapter.translationArtifactVersion.id}/chapter/${translationChunk.translationChapter.id}`) #{translationChunk.translationChapter.translationArtifactVersion.name} + a(href=`/translate/${translationChunk.translationChapter.translationArtifactVersion.id}`) #{translationChunk.translationChapter.translationArtifactVersion.name} //- TODO: Show previous... form.row(action=`/translate/${translationChunk.translationChapter.translationArtifactVersion.id}/chapter/${translationChunk.translationChapter.id}/t/${translationChunk.index}`, method="post") diff --git a/server/views/translation-artifact-version.pug b/server/views/translation-artifact-version.pug index e60ed83..f5eb48b 100644 --- a/server/views/translation-artifact-version.pug +++ b/server/views/translation-artifact-version.pug @@ -32,7 +32,7 @@ block content a(href=`/translate/${translationArtifactVersion.forkedFrom.id}`) fork //- TODO: Condition to show translate button - .row + //- .row .col.s12 a.btn.black(href=`/translate/${translationArtifactVersion.id}`) Translate //- TODO: Condition to show fork button @@ -60,4 +60,6 @@ block content h2 Chapters each translationChapter in translationArtifactVersion.translationChapters p.flow-text + small translate + br a(href=`/translate/${translationArtifactVersion.id}/chapter/${translationChapter.id}`)= translationChapter.chapter.name \ No newline at end of file