View entity objects
This commit is contained in:
308
server/router/entities/index.js
Normal file
308
server/router/entities/index.js
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const campaigns = require('../campaigns');
|
||||||
|
|
||||||
|
module.exports = function (options) {
|
||||||
|
const db = options.db;
|
||||||
|
var router = express.Router();
|
||||||
|
|
||||||
|
router.route('/')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Entity.findAll({
|
||||||
|
include: [
|
||||||
|
],
|
||||||
|
limit: 10
|
||||||
|
}).then(entities => {
|
||||||
|
response.display("entities", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: "Entities - Mantra",
|
||||||
|
entities: entities
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Entity.findOne({
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
},
|
||||||
|
// TODO: add counts here...
|
||||||
|
}).then(entity => {
|
||||||
|
response.display("entity", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: "Entity - Mantra",
|
||||||
|
entity: entity
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/artifacts')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Artifact.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Artifact.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(artifacts => {
|
||||||
|
response.display("entity-artifacts", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} artifacts - Mantra`,
|
||||||
|
artifacts: artifacts,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/projects')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Project.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Project.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(projects => {
|
||||||
|
response.display("entity-projects", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} projects - Mantra`,
|
||||||
|
projects: projects,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/pledges')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Project.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Project.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(pledges => {
|
||||||
|
response.display("entity-pledges", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} pledges - Mantra`,
|
||||||
|
pledges: pledges,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/campaigns')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.Campaign.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Campaign.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(campaigns => {
|
||||||
|
response.display("entity-campaigns", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} campaigns - Mantra`,
|
||||||
|
campaigns: campaigns,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/translations')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.TranslationArtifactVersion.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.TranslationArtifactVersion.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
association: db.TranslationArtifactVersion.ArtifactVersion,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.ArtifactVersion.Artifact,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).then(translationArtifactVersions => {
|
||||||
|
response.display("entity-translation-artifact-versions", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} translations - Mantra`,
|
||||||
|
translationArtifactVersions: translationArtifactVersions,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/translation-campaigns')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.TranslationArtifactVersionCampaign.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.TranslationArtifactVersionCampaign.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}).then(translationArtifactVersionCampaigns => {
|
||||||
|
response.display("entity-translation-artifact-version-campaigns", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} translation campaigns - Mantra`,
|
||||||
|
translationArtifactVersionCampaigns: translationArtifactVersionCampaigns,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.route('/:name/translation-pledges')
|
||||||
|
.get(function(request, response, next) {
|
||||||
|
db.TranslationArtifactVersionPledge.findAll({
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.TranslationArtifactVersionPledge.Owner,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.Owner.OwnerEntities,
|
||||||
|
required: true,
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
association: db.OwnerEntity.Entity,
|
||||||
|
require: true,
|
||||||
|
where: {
|
||||||
|
name: request.params.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}).then(translationArtifactVersionPledges => {
|
||||||
|
response.display("entity-translation-artifact-version-pledges", {
|
||||||
|
user: request.user,
|
||||||
|
pageTitle: `${request.params.name} translation pledges - Mantra`,
|
||||||
|
translationArtifactVersionPledges: translationArtifactVersionPledges,
|
||||||
|
entityName: request.params.name
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
next(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// router.route('/create')
|
||||||
|
// .post(function(request, response, next) {
|
||||||
|
// console.log(request.body)
|
||||||
|
// next()
|
||||||
|
// })
|
||||||
|
|
||||||
|
return router;
|
||||||
|
};
|
||||||
@@ -18,24 +18,26 @@ module.exports = function (options) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var accountRouter = require('./account/')(options);
|
var accountRouter = require('./account/')(options);
|
||||||
|
var apiRouter = require('./api/')(options);
|
||||||
|
var campaignsRouter = require('./campaigns/')(options);
|
||||||
|
var entitiesRouter = require('./entities/')(options);
|
||||||
|
var forkRouter = require('./fork')(options);
|
||||||
var libraryRouter = require('./library')(options);
|
var libraryRouter = require('./library')(options);
|
||||||
var pledgesRouter = require('./pledges/')(options);
|
var pledgesRouter = require('./pledges/')(options);
|
||||||
var campaignsRouter = require('./campaigns/')(options);
|
var projectsRouter = require('./projects')(options);
|
||||||
var apiRouter = require('./api/')(options);
|
|
||||||
var translateRouter = require('./translate/')(options);
|
var translateRouter = require('./translate/')(options);
|
||||||
var versionsRouter = require('./versions')(options);
|
var versionsRouter = require('./versions')(options);
|
||||||
var forkRouter = require('./fork')(options);
|
|
||||||
var projectsRouter = require('./projects')(options);
|
|
||||||
|
|
||||||
router.use('/library', libraryRouter);
|
|
||||||
router.use('/pledges', pledgesRouter);
|
|
||||||
router.use('/campaigns', campaignsRouter);
|
|
||||||
router.use('/account', accountRouter);
|
router.use('/account', accountRouter);
|
||||||
router.use('/api', apiRouter);
|
router.use('/api', apiRouter);
|
||||||
|
router.use('/campaigns', campaignsRouter);
|
||||||
|
router.use('/entities', entitiesRouter);
|
||||||
|
router.use('/fork', forkRouter);
|
||||||
|
router.use('/library', libraryRouter);
|
||||||
|
router.use('/pledges', pledgesRouter);
|
||||||
|
router.use('/projects', projectsRouter);
|
||||||
router.use('/translate', translateRouter);
|
router.use('/translate', translateRouter);
|
||||||
router.use('/v', versionsRouter);
|
router.use('/v', versionsRouter);
|
||||||
router.use('/fork', forkRouter);
|
|
||||||
router.use('/projects', projectsRouter);
|
|
||||||
|
|
||||||
return router;
|
return router;
|
||||||
};
|
};
|
||||||
11
server/views/entities.pug
Normal file
11
server/views/entities.pug
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Entities
|
||||||
|
|
||||||
|
each entity in entities
|
||||||
|
p.flow-text
|
||||||
|
i.material-icons= entity.type == 'individual' ? 'person' : 'group'
|
||||||
|
a(href=`/entities/${entity.name}`)= ` ${entity.name}`
|
||||||
13
server/views/entity-artifacts.pug
Normal file
13
server/views/entity-artifacts.pug
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Artifacts
|
||||||
|
|
||||||
|
if artifacts.length == 0
|
||||||
|
p.flow-text No artifacts owned by #{entityName}
|
||||||
|
else
|
||||||
|
each artifact in artifacts
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/library/${artifact.id}`)= artifact.name
|
||||||
13
server/views/entity-campaigns.pug
Normal file
13
server/views/entity-campaigns.pug
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Campaigns
|
||||||
|
|
||||||
|
if campaigns.length == 0
|
||||||
|
p.flow-text No campaigns owned by #{entityName}
|
||||||
|
else
|
||||||
|
each campaign in campaigns
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/campaigns/${campaign.id}`)= campaign.name
|
||||||
13
server/views/entity-projects.pug
Normal file
13
server/views/entity-projects.pug
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Projects
|
||||||
|
|
||||||
|
if projects.length == 0
|
||||||
|
p.flow-text No projects owned by #{entityName}
|
||||||
|
else
|
||||||
|
each project in projects
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/projects/${project.id}`)= project.name
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Translation Campaigns owned by #{entityName}
|
||||||
|
|
||||||
|
if translationArtifactVersionCampaigns.length == 0
|
||||||
|
p.flow-text No translation campaigns owned by #{entityName}
|
||||||
|
else
|
||||||
|
each translationArtifactVersionCampaign in translationArtifactVersionCampaigns
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/translate/${translationArtifactVersionCampaign.translationArtifactVersionId}`) #{translationArtifactVersionCampaign.name}
|
||||||
13
server/views/entity-translation-artifact-version-pledges.pug
Normal file
13
server/views/entity-translation-artifact-version-pledges.pug
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Translation Pledges owned by #{entityName}
|
||||||
|
|
||||||
|
if translationArtifactVersionPledges.length == 0
|
||||||
|
p.flow-text No translation pledges owned by #{entityName}
|
||||||
|
else
|
||||||
|
each translationArtifactVersionPledge in translationArtifactVersionPledges
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/pledges/${translationArtifactVersionPledge.id}`) #{translationArtifactVersionPledge.name}
|
||||||
13
server/views/entity-translation-artifact-versions.pug
Normal file
13
server/views/entity-translation-artifact-versions.pug
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1 Translations owned by #{entityName}
|
||||||
|
|
||||||
|
if translationArtifactVersions.length == 0
|
||||||
|
p.flow-text No translations owned by #{entityName}
|
||||||
|
else
|
||||||
|
each translationArtifactVersion in translationArtifactVersions
|
||||||
|
p.flow-text
|
||||||
|
a(href=`/translate/${translationArtifactVersion.id}`) #{translationArtifactVersion.name} - #{translationArtifactVersion.artifactVersion.artifact.name} - #{translationArtifactVersion.artifactVersion.tag}
|
||||||
25
server/views/entity.pug
Normal file
25
server/views/entity.pug
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
extend templates/layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
.container
|
||||||
|
.center
|
||||||
|
h1= entity.name
|
||||||
|
|
||||||
|
.row
|
||||||
|
.col.s12
|
||||||
|
a(href=`/entities/${entity.name}/artifacts`)
|
||||||
|
.chip artifacts
|
||||||
|
a(href=`/entities/${entity.name}/projects`)
|
||||||
|
.chip projects
|
||||||
|
a(href=`/entities/${entity.name}/pledges`)
|
||||||
|
.chip pledges
|
||||||
|
a(href=`/entities/${entity.name}/campaigns`)
|
||||||
|
.chip campaigns
|
||||||
|
a(href=`/entities/${entity.name}/translations`)
|
||||||
|
.chip translations
|
||||||
|
.row
|
||||||
|
.col.s12
|
||||||
|
a(href=`/entities/${entity.name}/translation-campaigns`)
|
||||||
|
.chip translations campaign
|
||||||
|
a(href=`/entities/${entity.name}/translation-pledges`)
|
||||||
|
.chip translations pledges
|
||||||
@@ -35,6 +35,10 @@ html(lang="en" dir="ltr")
|
|||||||
span.email mantra@exonumia.africa
|
span.email mantra@exonumia.africa
|
||||||
|
|
||||||
if user
|
if user
|
||||||
|
li
|
||||||
|
a(href="/entities")
|
||||||
|
i.material-icons.black-text person
|
||||||
|
span entities
|
||||||
li
|
li
|
||||||
a(href="/library")
|
a(href="/library")
|
||||||
i.material-icons.black-text person
|
i.material-icons.black-text person
|
||||||
|
|||||||
Reference in New Issue
Block a user