Add mods list and mod page
This commit is contained in:
parent
a9d2bb4ab9
commit
004de36144
@ -11,10 +11,12 @@ router.get("/", function(req, res) {
|
|||||||
include: [ db.User ]
|
include: [ db.User ]
|
||||||
}).then(function(mods) {
|
}).then(function(mods) {
|
||||||
res.render("index", {
|
res.render("index", {
|
||||||
title: "Minetest Mod Database",
|
title: "Welcome",
|
||||||
mods: mods.map(db.convertRowToMod)
|
mods: mods.map(db.convertRowToMod)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
router.use(require("./mods"))
|
||||||
|
|
||||||
module.exports = router
|
module.exports = router
|
||||||
|
65
webapp/controllers/mods.js
Normal file
65
webapp/controllers/mods.js
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
// Index controller - puts all the controllers together
|
||||||
|
"use strict"
|
||||||
|
|
||||||
|
const express = require("express")
|
||||||
|
const router = express.Router()
|
||||||
|
|
||||||
|
router.get("/mods", function(req, res) {
|
||||||
|
var db = req.app.get("db")
|
||||||
|
db.Mod.findAll({
|
||||||
|
limit: 10,
|
||||||
|
include: [ db.User ]
|
||||||
|
}).then(function(mods) {
|
||||||
|
var mod_c = mods.map(db.convertRowToMod)
|
||||||
|
switch (req.accepts("html", "json")) {
|
||||||
|
case "html":
|
||||||
|
res.render("index", {
|
||||||
|
title: "Mod Search",
|
||||||
|
mods: mod_c
|
||||||
|
})
|
||||||
|
break;
|
||||||
|
case "json":
|
||||||
|
res.send(mod_c.map((mod) => { return mod.toPlainDictionary() }))
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
res.status(406).send("Not acceptable")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
router.get("/mod/:author/:modname", function(req, res) {
|
||||||
|
var db = req.app.get("db")
|
||||||
|
db.Mod.findOne({
|
||||||
|
limit: 10,
|
||||||
|
where: {
|
||||||
|
basename: req.params.modname
|
||||||
|
},
|
||||||
|
include: [{
|
||||||
|
model: db.User,
|
||||||
|
where: { username: req.params.author }
|
||||||
|
}]
|
||||||
|
}).then(function(mod) {
|
||||||
|
if (mod) {
|
||||||
|
var mod_c = db.convertRowToMod(mod)
|
||||||
|
switch (req.accepts("html", "json")) {
|
||||||
|
case "html":
|
||||||
|
res.render("mod", {
|
||||||
|
title: mod.title,
|
||||||
|
mod: mod_c
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case "json":
|
||||||
|
res.send(mod_c.toPlainDictionary())
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
res.status(406).send("Not acceptable")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res.status(404).send("Not found")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = router
|
17
webapp/views/mod.liquid
Normal file
17
webapp/views/mod.liquid
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
|
||||||
|
<h2>{{ mod.title }}</h2>
|
||||||
|
|
||||||
|
<a href="/mod/{{ mod.author }}/{{ mod.basename }}/">{{ mod.title }}</a>
|
||||||
|
by
|
||||||
|
{{ mod.author }}
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{{ mod.description | truncate: 100, '…' }}
|
||||||
|
</p>
|
||||||
|
<a href="{{ mod.download.url }}">Download</a> |
|
||||||
|
<a href="{{ mod.forum_url }}">Forum Topic</a> |
|
||||||
|
<a href="/mods/?a={{ mod.author }}">{{ mod.author }}'s mods</a>
|
||||||
|
|
||||||
|
{% include "footer" %}
|
Loading…
x
Reference in New Issue
Block a user