Add some basics with translate functionality
This commit is contained in:
@@ -22,6 +22,7 @@ module.exports = function (options) {
|
|||||||
var pledgesRouter = require('./pledges/')(options);
|
var pledgesRouter = require('./pledges/')(options);
|
||||||
var campaignsRouter = require('./campaigns/')(options);
|
var campaignsRouter = require('./campaigns/')(options);
|
||||||
var apiRouter = require('./api/')(options);
|
var apiRouter = require('./api/')(options);
|
||||||
|
var translateRouter = require('./translate/')(options);
|
||||||
|
|
||||||
|
|
||||||
router.use('/library', libraryRouter);
|
router.use('/library', libraryRouter);
|
||||||
@@ -29,6 +30,7 @@ module.exports = function (options) {
|
|||||||
router.use('/campaigns', campaignsRouter);
|
router.use('/campaigns', campaignsRouter);
|
||||||
router.use('/account', accountRouter);
|
router.use('/account', accountRouter);
|
||||||
router.use('/api', apiRouter);
|
router.use('/api', apiRouter);
|
||||||
|
router.use('/translate', translateRouter);
|
||||||
|
|
||||||
return router;
|
return router;
|
||||||
};
|
};
|
||||||
77
server/router/translate/index.js
Normal file
77
server/router/translate/index.js
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
const express = require('express')
|
||||||
|
|
||||||
|
module.exports = function (options) {
|
||||||
|
const db = options.db;
|
||||||
|
var router = express.Router();
|
||||||
|
|
||||||
|
router.route('/:id')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.TranslationEntry.findByPk(request.params.id, {
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.TranslationEntry.Entry,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Entry.Chapters,
|
||||||
|
required: true,
|
||||||
|
limit: 1,
|
||||||
|
// TODO: Order by chapter index
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(translationEntry => {
|
||||||
|
if (translationEntry) {
|
||||||
|
response.redirect(`/translate/${translationEntry.id}/chapter/${translationEntry.entry.chapters[0].id}`)
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:id/chapter/:chapterId')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Chapter.findByPk(request.params.chapterId, {
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Chapter.Chunks,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Chunk.Translation
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
association: db.Chapter.Entry,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Entry.TranslationEntries,
|
||||||
|
required: true,
|
||||||
|
where: {
|
||||||
|
id: request.params.id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
association: db.Entry.Dialect
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(chapter => {
|
||||||
|
if (chapter) {
|
||||||
|
response.display("translate-chapter", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `Translate Chapter ${chapter.name}`,
|
||||||
|
chapter: chapter
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return router;
|
||||||
|
};
|
||||||
36
server/views/translate-chapter.pug
Normal file
36
server/views/translate-chapter.pug
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1= chapter.entry.translationEntries[0].name
|
||||||
|
h2= chapter.entry.name
|
||||||
|
|
||||||
|
//- TODO: List chunks in the chapter
|
||||||
|
.row
|
||||||
|
.col.s12
|
||||||
|
table
|
||||||
|
thead
|
||||||
|
tr
|
||||||
|
th #{chapter.entry.dialect.name}
|
||||||
|
th #{chapter.entry.translationEntries[0].name}
|
||||||
|
th
|
||||||
|
|
||||||
|
tbody
|
||||||
|
each chunk in chapter.chunks
|
||||||
|
tr
|
||||||
|
td= chunk.text
|
||||||
|
td
|
||||||
|
if chunk.ossified
|
||||||
|
span= chunk.text
|
||||||
|
else if chunk.translation
|
||||||
|
span= chunk.translation.text
|
||||||
|
else
|
||||||
|
span= chunk.text.replaceAll(/./g, " ")
|
||||||
|
td
|
||||||
|
if chunk.ossified
|
||||||
|
span nothing
|
||||||
|
else if chunk.translation
|
||||||
|
a.btn.blue review
|
||||||
|
else
|
||||||
|
a.btn.black translate
|
||||||
@@ -5,3 +5,5 @@ block content
|
|||||||
.center
|
.center
|
||||||
h1= translationEntry.name
|
h1= translationEntry.name
|
||||||
h2= translationEntry.entry.name
|
h2= translationEntry.entry.name
|
||||||
|
|
||||||
|
a.btn.black(href=`/translate/${translationEntry.id}`) Translate
|
||||||
Reference in New Issue
Block a user