diff --git a/README.md b/README.md index 10c3174..248a135 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@ Akf-forum has got an API for AJAX (fetch), other clients etc. And, you can learn | mod role, permissions | ⚪ | | upload other photos, model for it | ⚪ | | categories page is need a update, thread count in category | ⚪ | -| preview for send messages in markdown format | ⚪ | +| preview for send messages in markdown format | 💚 | | DC auth will store code for taking tokens, and create secret model setting | ⚪ | -- max lengths for html :/ + ## Major Version History - V4: Caching - V3: New Theme diff --git a/public/css/create_thread.css b/public/css/create_thread.css index 06a13c8..9aaeb39 100644 --- a/public/css/create_thread.css +++ b/public/css/create_thread.css @@ -21,3 +21,9 @@ form { margin-bottom: 10px; border: 2px solid var(--borders); } + +.CodeMirror{ + + width: 422.5px; + +} \ No newline at end of file diff --git a/public/js/thread.js b/public/js/thread.js index 5f4b5b6..40d0623 100644 --- a/public/js/thread.js +++ b/public/js/thread.js @@ -1,5 +1,6 @@ import request from "./request.js"; +let editing; // THREAD: window.edit_thread = async function (id) { @@ -28,7 +29,7 @@ window.undelete_thread = async function (id) { // MESSAGES: window.send_edit = async function (id) { const message = document.getElementById(`message-${id}`); - const content = message.querySelector("#content").value; + const content = editing.value(); const res = await request(`/api/messages/${id}/`, "PATCH", { content }); if (res.error) return; @@ -36,12 +37,21 @@ window.send_edit = async function (id) { message.querySelector(".content").innerHTML = converter.makeHtml(res.content); } window.edit_message = async function (id) { - const content = document.getElementById(`message-${id}`).querySelector(".content"); + const message = document.getElementById(`message-${id}`) + + const content = message.querySelector(".content"); content.innerHTML = ` - + `; - + const cnt = message.querySelector("#content"); + editing = new SimpleMDE({ + element: cnt, + spellChecker: false, + height: "200px", + previewRender: t => converter.makeHtml(t) + }); + editing.value(content.rawText) } window.undelete_message = async function (id) { const response = await request(`/api/messages/${id}/undelete`); diff --git a/routes/categories.js b/routes/categories.js index ba3a3d7..8f86571 100644 --- a/routes/categories.js +++ b/routes/categories.js @@ -16,7 +16,7 @@ app.get("/:id", async (req, res) => { const query = { categoryID: category.id }; if (!req.user?.admin) query.deleted= false; - let threads = await ThreadModel.find(query).limit(10).skip(page * 10); + let threads = await ThreadModel.find(query).limit(10).skip(page * 10).sort({ time: -1 }); threads = await Promise.all(threads.map(thread => thread.get_author())); res.reply("threads", { threads, page, title: `Threads in ${category.name}`, desp: category.desp, pages: Math.ceil(await ThreadModel.count(query) / 10) }); diff --git a/routes/threads.js b/routes/threads.js index 6b74f4d..4f822d8 100644 --- a/routes/threads.js +++ b/routes/threads.js @@ -5,7 +5,7 @@ const { ThreadModel, MessageModel, CategoryModel } = require("../models") app.get("/", async (req, res) => { const page = Number(req.query.page) || 0; const query = req.user?.admin ? {} : { deleted: false }; - let threads = await ThreadModel.find(query).limit(10).skip(page * 10); + let threads = await ThreadModel.find(query).limit(10).skip(page * 10).sort({ time: -1 }); threads = await Promise.all(threads.map(thread => thread.get_author())); return res.reply("threads", { threads, page, title: "Threads", desp: threads.length + " threads are listed", pages: Math.ceil(await ThreadModel.count(query) / 10) }); diff --git a/views/create_thread.ejs b/views/create_thread.ejs index 81e4954..df88724 100644 --- a/views/create_thread.ejs +++ b/views/create_thread.ejs @@ -3,17 +3,17 @@ <%- include("extra/meta", {title: "Create thread!" }) %> - + - + + <%- include("extra/navbar") %> -

Title:

Content:

- +

Category:

- + + +
<% }%> diff --git a/views/user.ejs b/views/user.ejs index 4708f74..6cdb142 100644 --- a/views/user.ejs +++ b/views/user.ejs @@ -13,7 +13,7 @@
- <% if (!member.discordID && user?.id === member.id) { %> + <% if (!member.discordID && discord && user?.id === member.id) { %> Login with discord <% } %> <% if (user?.admin || user?.id === member.id) { %>