diff --git a/README.md b/README.md index 7cbf0d9..7a6931f 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,9 @@ And, you can learn about API in `util/APIDOCS.md`. ## Roadmap ### TO-DO: - If thread deleted, not show its messages in API. -- If redirect => /register, return +- Thread.ejs fix with new theme +- Profile photos will store in database + ### Frontend ### User | To do | Is done? | Priority | @@ -56,7 +58,7 @@ And, you can learn about API in `util/APIDOCS.md`. | Send | π’ | HIGH | | Delete | π’ | HIGH | | Regex for scripts | π΄ | HIGH | -| Undelete | π΄ | MEDIUM | +| Undelete | π‘ | MEDIUM | | React | π’ | MEDIUM | | Edit | π΄ | MEDIUM | @@ -66,7 +68,7 @@ And, you can learn about API in `util/APIDOCS.md`. | Ratelimit | π’ | HIGH | | Create | π’ | HIGH | | Delete | π’ | HIGH | -| Undelete | π΄ | MEDIUM | +| Undelete | π’ | MEDIUM | | Edit | π΄ | MEDIUM | ### API @@ -83,21 +85,15 @@ And, you can learn about API in `util/APIDOCS.md`. ### Other | To do | Is done? | Priority | | ----- | -------- | -------- | -| Footer | π’ | LOW | +| Footer | π΄ | LOW | | auto-scroll | π’ | LOW | -| Multi-theme support | π‘ | LOW | -| Search | π‘ | MEDIUM | -| Better view, page support, support message limit correct | π΄ | MEDIUM | -| Sending message etc. will use fetch API | π’ | HIGH | +| Multi-theme support, black theme | π‘ | LOW | +| Search | π΄ | MEDIUM | +| Page support, support message limit correct | π΄ | MEDIUM | +| from form to AJAX | π’ | HIGH | -### New Theme -- [x] Login -- [x] Register -- [x] Main page -- [x] Error -- [x] Users -- [x] Threads -- [x] Create Thread -- [ ] Thread -- [ ] User -- [ ] Admin +## Major Version History +- V3: New Theme +- V2: Backend fix, mongoose is fixed. Really big fix. +- V1: Mongoose added. +- V0: Birth with quick.db \ No newline at end of file diff --git a/public/css/old_style.css b/public/css/thread.css similarity index 100% rename from public/css/old_style.css rename to public/css/thread.css diff --git a/public/js/thread.js b/public/js/thread.js index 20ae0ac..14bc41c 100644 --- a/public/js/thread.js +++ b/public/js/thread.js @@ -79,13 +79,20 @@ document.getElementById("send").addEventListener("submit", async e => { * Button Listener */ document.addEventListener("click", async e => { - let page = 1; // e.preventDefault(); if (e.target.id === "delete_thread") { const response = await request("/api/threads/" + e.target.value + "/delete"); if (response.deleted) { alert("Thread deleted"); - window.location.href = "/threads"; + location.reload(); + } + + } else if (e.target.id === "undelete_thread") { + const response = await request("/api/threads/" + e.target.value + "/undelete"); + if (!response.deleted) { + alert("Thread undeleted"); + location.reload(); + } } else if (e.target.id === "delete_message") { @@ -95,17 +102,7 @@ document.addEventListener("click", async e => { alert("Message deleted"); document.getElementById("message-delete-" + e.target.value).innerHTML = "<h3 style=\"display:inline;\">This message has been deleted</h3>"; } - } else if (e.target.id === "left_page") { - e.preventDefault(); - - }else if (e.target.id === "right_page") { - e.preventDefault(); - const response = await request(`/api/messages/${e.target.value}/delete`); - if (response.deleted) { - alert("Message deleted"); - document.getElementById("message-delete-" + e.target.value).innerHTML = "<h3 style=\"display:inline;\">This message has been deleted</h3>"; - } - }/*else if (e.target.id === "edit_thread") { + } /*else if (e.target.id === "edit_thread") { window.location.href = "/threads/<%= thread.id }/edit"; } */ diff --git a/views/create_thread.ejs b/views/create_thread.ejs index a5a056e..f53edb8 100644 --- a/views/create_thread.ejs +++ b/views/create_thread.ejs @@ -37,10 +37,9 @@ }); - if (response) { - alert("Thread opened"); + if (response) window.location.href = "/threads/" + response.id; - } + }); diff --git a/views/extra/footer.ejs b/views/extra/footer.ejs new file mode 100644 index 0000000..63da4ad --- /dev/null +++ b/views/extra/footer.ejs @@ -0,0 +1,3 @@ +<div class="footer"> + <a href="https://github.com/Akif9748/akf-forum"> This website is powered by AKF-Forum </a> +</div> \ No newline at end of file diff --git a/views/extra/old_footer.ejs b/views/extra/old_footer.ejs deleted file mode 100644 index c9e443a..0000000 --- a/views/extra/old_footer.ejs +++ /dev/null @@ -1,4 +0,0 @@ -<br><br><br><br><br> -<div class="footer"> - <p><a href="https://github.com/Akif9748/akf-forum"> This website is powered by AKF-Forum </a></p> -</div> \ No newline at end of file diff --git a/views/extra/old_header.ejs b/views/extra/old_header.ejs deleted file mode 100644 index c91e962..0000000 --- a/views/extra/old_header.ejs +++ /dev/null @@ -1,10 +0,0 @@ -<head> - <link rel="stylesheet" href="/css/old_style.css" /> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title><%= title || "Akf-forum" %> </title> - <meta name="description" content="Akf-forum!"> - <meta name="author" content="Akif9748"> - <link rel="icon" type="image/x-icon" href="/images/favicon.jpg"> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> -</head> \ No newline at end of file diff --git a/views/extra/old_navbar.ejs b/views/extra/old_navbar.ejs deleted file mode 100644 index cd27f3c..0000000 --- a/views/extra/old_navbar.ejs +++ /dev/null @@ -1,41 +0,0 @@ - -<% if (user?.admin){ %> - <div class="admin"> - <a class="admin" href="/admin"><p>You are admin, and you can go your page!</p></a> - </div> - <hr> - -<% } %> - -<a href="/"><img class="logo" src="/images/logo.jpg" alt="AKF-FORUM"></a> - -<div class="navbar" id="navbar"> - - <a href="/threads">THREADS</a> - <a href="/users">USERS</a> - <a href="/search">SEARCH</a> - <a href="/threads/create/">CREATE THREAD</a> - - <% if (user){ %> - <div style="float: right;" class="user" id="user"> - <a href=<%=user.getLink() %>> - <h1> - <%= user.name %><img class="circle" src=<%=user.avatar %> alt=<%= user.name %>> - </h1> - </a> - </div> - - <% } else { %> - <a style="float: right; background-color: #5F875F;" href="/register">REGISTER</a> - <a id="login" style="float: right; background-color:#5F87AF; " href="/login">LOGIN</a> - <script> -document.getElementById("login").href += "?redirect="+window.location.pathname; - </script> - - - <% } %> - - - -</div> -<hr> diff --git a/views/login.ejs b/views/login.ejs index ea0517c..79afa11 100644 --- a/views/login.ejs +++ b/views/login.ejs @@ -4,9 +4,10 @@ <html lang="en"> <%- include("extra/meta", {title: "Log in!" }) %> - <link rel="stylesheet" href="/css/login.css" /> <body style="text-align: center;"> + <link rel="stylesheet" href="/css/login.css" /> + <%- include("extra/navbar") %> <h1 class="title">Login</h1> diff --git a/views/register.ejs b/views/register.ejs index 3111a6c..81158f9 100644 --- a/views/register.ejs +++ b/views/register.ejs @@ -3,9 +3,10 @@ <%- include("extra/meta", {title: "Register!" }) %> -<link rel="stylesheet" href="/css/login.css" /> <body style="text-align: center;"> + <link rel="stylesheet" href="/css/login.css" /> + <%- include("extra/navbar") %> <h1 class="title">Register</h1> diff --git a/views/thread.ejs b/views/thread.ejs index 1aada9c..10da760 100644 --- a/views/thread.ejs +++ b/views/thread.ejs @@ -1,69 +1,93 @@ <!DOCTYPE html> <html lang="en"> -<%- include("extra/old_header", { title: thread.title }) %> - - <body> - - <%- include("extra/old_navbar", {user}) %> +<%- include("extra/meta", {title: "Thread list!" }) %> - <h1 style="font-size: 35px;"> - <%= thread.title %> - </h1> +<body style="text-align: center;"> + <%- include("extra/navbar") %> - <h2 style="display:inline;">By <a href=<%="/users/" + thread.author.id %>> <%= thread.author.name %></a> - <img class="circle" src=<%=thread.author.avatar %> alt=<%= thread.author.name %>> - </h2> - - <% if (user && !thread.deleted){ %> - - <button id="delete_thread" value="<%= thread.id %>" style="display:inline;" type="submit">DELETE</button> - <button id="edit_thread" style="display:inline;" type="submit">EDIT</button> - <% } else if (thread.deleted) { %> - <h3 style="display:inline;">This thread has been deleted</h3> - <% }; %> - - <hr> + <link rel="stylesheet" href="/css/thread.css" /> + - <div id="messages" value="<%= thread.id %>"> - <% if (!user){ %> - <h1>Guests cant view messages!</h1> - <% }%> - </div> + <h1 style="font-size: 35px;color: #4d18e6;" > + <%= thread.title %> + </h1> - <hr> + <h2 style="display:inline;">By <a href=<%="/users/" + thread.author.id %>> <%= thread.author.name %></a> + <img class="circle" src=<%=thread.author.avatar %> alt=<%= thread.author.name %>> + </h2> + + <% if (user && !thread.deleted){ %> + + <button id="delete_thread" value="<%= thread.id %>" style="display:inline;" type="submit">DELETE</button> + <button id="edit_thread" style="display:inline;" type="submit">EDIT</button> + <% } else if (thread.deleted) { %> + <h3 style="display:inline;">This thread has been deleted</h3> + <button id="undelete_thread" value="<%= thread.id %>" style="display:inline;" type="submit">UNDELETE</button> + + <% }; %> - <form id="send"> - <textarea rows="4" cols="133" name="content"></textarea> - <input name="threadID" type="hidden" value="<%= thread.id %>"></input> + <hr> - <br> - <% if (user){ %> - <button type="submit">Send!</button> - <%} else {%> - <button disabled>Login for send</button> - <% }%> - </form> + <div id="messages" value="<%= thread.id %>"> + <% if (!user){ %> + <h1>Guests cant view messages!</h1> + <% }%> - <% if (user){ %> - <script type="module" src="/js/thread.js"></script> + <!--EXAMPLE MESSAGE--> + <div class="message" id="message-3"> + + <h3 style="float:right;">26.08.2022 15:37:42</h3> + + <h2> + <img class="circle" src="https://cdn.discordapp.com/avatars/539506680140922890/abd74d10aac094fc8a5ad5c86f29fdb9.png?size=1024" alt="Akif9748"> + <a href="/users/0"> Akif9748</a>: + </h2> + + <p>Example message for development</p><br> + <div id="message-delete-3"> + <form style="display:inline;"> + <button id="delete_message" value="3" type="submit">DELETE</button> + </form> + </div> + <div style="float: right;"> + <h3 id="count3" style="display:inline;">0</h3> + <button style="display:inline;" id="like" value="3">+πΌ</button> + <button style="display:inline;" id="dislike" value="3">-π½</button> + </div> + </div> + <!--EXAMPLE MESSAGE END--> + + </div> + + <hr> + + + <form id="send"> + <textarea rows="4" cols="133" name="content"></textarea> + <input name="threadID" type="hidden" value="<%= thread.id %>"></input> + + <br> + <% if (user){ %> + <button type="submit">Send!</button> + <%} else {%> + <button disabled>Login for send</button> <% }%> - <script> - document.getElementById("message-<%= scroll %>").scrollIntoView(); - </script> - <!-- <div style="float: right;"> - <h3 id="page_count" style="display:inline;">1</h3> - <button id="left_page" style=" display:inline;float: right;" type="submit">PREV</button> - - <button id="right_page" style="display:inline;float: right;" type="submit">NEXT</button> - </div>--> - - <%- include("extra/old_footer") %> - </body> + </form> + + <% if (user){ %> + <script type="module" src="/js/thread.js"></script> + <% }%> + <script> + document.getElementById("message-<%= scroll %>").scrollIntoView(); + </script> + + <!-- BURAYA BΔ° Δ°LERΔ° BΔ°R GERΔ° SAYFA BUTONU GELMEZ MΔ° BE--> +</body> </html> \ No newline at end of file