From 3f326ddd29557450b5759375b0d7d106e341348b Mon Sep 17 00:00:00 2001 From: KikyTokamuro Date: Sat, 30 Jul 2022 15:18:34 +0300 Subject: [PATCH] Updated styles. Rewrited js on classes and imorts --- index.lisp | 2 +- preview.png | Bin 51068 -> 94319 bytes static/api.js | 92 ++++++++++++++++ static/app.js | 6 + static/script.js | 278 ----------------------------------------------- static/style.css | 71 +++++++----- static/ui.js | 261 ++++++++++++++++++++++++++++++++++++++++++++ todolist.asd | 2 +- 8 files changed, 402 insertions(+), 310 deletions(-) create mode 100644 static/api.js create mode 100644 static/app.js delete mode 100644 static/script.js create mode 100644 static/ui.js diff --git a/index.lisp b/index.lisp index df43755..8bb8b5e 100644 --- a/index.lisp +++ b/index.lisp @@ -47,4 +47,4 @@ (:div :class "separator") (:div :class "send-task-button" (:img :src "./static/images/send.svg")))) - (:script :src "./static/script.js"))))) + (:script :type "module" :src "./static/app.js"))))) diff --git a/preview.png b/preview.png index b7241d497d4280d0b7fbe5286a7d3e2065233330..872d9456b1a36ab8d7fd058c1ad26c52e18469ca 100644 GIT binary patch literal 94319 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

VgD)z5vtn8jORuz^uj0mG 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 literal 51068 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 diff --git a/static/api.js b/static/api.js new file mode 100644 index 0000000..5e4dfa6 --- /dev/null +++ b/static/api.js @@ -0,0 +1,92 @@ +/** + * API methods + */ +export class TodolistAPI { + constructor () {} + + /** + * Get list of all groups + * + * @returns jqXHR + */ + getGroupsList () { + return $.get('/api/group/list', {}, 'json'); + } + + /** + * Delete group by name + * + * @param {string} group + * @returns jqXHR + */ + deleteGroup (group) { + return $.get('/api/group/delete', { + group: group + }, 'json'); + } + + /** + * Get all todos + * + * @returns jqXHR + */ + getAllTodos () { + return $.get('/api/todos/all', {}, 'json'); + } + + /** + * Get todos by group name + * + * @param {string} group + * @returns jqXHR + */ + getTodosByGroup (group) { + return $.get('/api/todos', { + group: group + }, 'json'); + } + + /** + * Change todo status + * + * @param {string} group + * @param {number} id + * @param {string} status + * @returns jqXHR + */ + changeTodoStatus (group, id, status) { + return $.get('/api/todos/status/change', { + group: group, + todoid: id, + status: status + }, 'json'); + }; + + /** + * Create new todo in group + * + * @param {string} group + * @param {string} text + * @returns jqXHR + */ + createNewTodo (group, text) { + return $.get('/api/todos/add', { + group: group, + text: text, + }, 'json'); + }; + + /** + * Delete todo item + * + * @param {string} group + * @param {number} todoid + * @returns jqXHR + */ + deleteTodo (group, todoid) { + return $.get('/api/todos/delete', { + group: group, + todoid: todoid, + }, 'json'); + } +} \ No newline at end of file diff --git a/static/app.js b/static/app.js new file mode 100644 index 0000000..9fe98f6 --- /dev/null +++ b/static/app.js @@ -0,0 +1,6 @@ +import { TodolistAPI } from "./api.js"; +import { TodolistUI } from "./ui.js"; + +const api = new TodolistAPI(); +const ui = new TodolistUI(api); +ui.init(); \ No newline at end of file diff --git a/static/script.js b/static/script.js deleted file mode 100644 index 839fa39..0000000 --- a/static/script.js +++ /dev/null @@ -1,278 +0,0 @@ -'use strict'; - -// API -let TodolistAPI = (function() { - function todolistAPI() {} - - // Get list of all groups - todolistAPI.prototype.getGroupsList = function() { - return $.get('/api/group/list', {}, 'json'); - }; - - // Delete group by name - todolistAPI.prototype.deleteGroup = function(group) { - return $.get('/api/group/delete', { - group: group - }, 'json'); - }; - - // Get all todos - todolistAPI.prototype.getAllTodos = function() { - return $.get('/api/todos/all', {}, 'json'); - }; - - // Get todos by group name - todolistAPI.prototype.getTodosByGroup = function(group) { - return $.get('/api/todos', { - group: group - }, 'json'); - }; - - // Change todo status - todolistAPI.prototype.changeTodoStatus = function(group, id, status) { - return $.get('/api/todos/status/change', { - group: group, - todoid: id, - status: status - }, 'json'); - }; - - // Create new todo in group - todolistAPI.prototype.createNewTodo = function(group, text) { - return $.get('/api/todos/add', { - group: group, - text: text, - }, 'json'); - }; - - // Delete todo item - todolistAPI.prototype.deleteTodo = function(group, todoid) { - return $.get('/api/todos/delete', { - group: group, - todoid: todoid, - }, 'json'); - } - - return todolistAPI; -})(); - -// UI events -let TodolistUI = (function() { - let $this; - - function todolistUI() { - $this = this; - } - - // Generate html for todo element - todolistUI.prototype.generateTaskElement = function(group, id, status, date, text) { - return ` -

-
-
${date}
#${group}${id}
-
${text}
-
-
- -
-
- `; - }; - - // Set white background for all groups - todolistUI.prototype.unselectAllGroup = function() { - $(".todolist-groups-wrapper >").each(function() { - $(this).css("background", "#fff") - }); - }; - - // Get and draw todos for group - todolistUI.prototype.drawTodos = function(group) { - // Clear columns - $(".todolist-todo-column-body").html(""); - $(".todolist-doing-column-body").html(""); - $(".todolist-done-column-body").html(""); - - if (group == "all") { - api.getAllTodos().done((data) => { - for (let [group, todos] of Object.entries(data)) { - if (todos.length > 0) { - for (let todo of todos.reverse()) { - $(`.todolist-${todo.STATUS}-column-body`).append($this.generateTaskElement( - group.toLowerCase(), todo.ID, todo.STATUS, todo.DATE, todo.TEXT - )); - } - } - } - }) - } else { - api.getTodosByGroup(group).done((data) => { - for (let todo of data.reverse()) { - $(`.todolist-${todo.STATUS}-column-body`).append($this.generateTaskElement( - group, todo.ID, todo.STATUS, todo.DATE, todo.TEXT - )); - } - }); - } - }; - - // Select group - todolistUI.prototype.selectGroup = function(group) { - $this.unselectAllGroup(); - $(`#group-${group}`).css("background", "rgba(0, 0, 0, 0.1)"); - $this.drawTodos(group); - }; - - // Select group event handler - todolistUI.prototype.selectGroupClick = function(event) { - let groupElement = $(event.target).closest(".todolist-group-button"); - let group = $(groupElement).attr("id").replace("group-", ""); - $this.selectGroup(group); - }; - - // Delete group event handler - todolistUI.prototype.deleteGroup = function() { - let groupElement = $(event.target).closest(".todolist-group-button"); - let group = $(groupElement).attr("id").replace("group-", ""); - - api.deleteGroup(group).done((data) => { - if (data.error == undefined) { - $(`#group-${group}`).remove(); - $("#group-all span").click(); - } else { - alert(data.error); - } - }); - }; - - // Delele todo event handler - todolistUI.prototype.deleteTodo = function(event) { - let todoElement = $(event.target).closest(".task-element"); - let group = $(todoElement).attr("group"); - let id = $(todoElement).attr("todo-id"); - - api.deleteTodo(group, id).done((data) => { - if (data.error == undefined) { - $(`.task-element[todo-id="${data.ID}"][group="${data.GROUP}"]`).remove(); - } else { - alert(data.error); - } - }); - }; - - // Create new todo - todolistUI.prototype.createTodo = function(event) { - let taskText = $("#task-input").val(); - let taskGroup = $("#task-group").val().replaceAll(" ", "_"); - - if (taskText == "" || taskGroup == "") { - alert("The task or its group cannot be empty"); - return; - } - - api.createNewTodo(taskGroup, taskText).done((data) => { - if (data.error == undefined) { - $(".todolist-todo-column-body").prepend($this.generateTaskElement( - data.GROUP, data.ID, data.STATUS, data.DATE, data.TEXT - )); - - if ($(`#group-${taskGroup}`).length == 0) { - // Append new group - $(".todolist-groups-wrapper").append(` -
- ${taskGroup.replaceAll("_", " ")} -
- -
-
- `); - - $(`#group-${taskGroup} span`).click(ui.selectGroupClick); - $(`#group-${taskGroup} .group-element-delete`).click(ui.deleteGroup); - $(`#group-${taskGroup} span`).click(); - } - - $(`.task-element[todo-id="${data.ID}"][group="${taskGroup}"] .task-element-delete`).click(ui.deleteTodo); - $("#task-input").val(""); - $("#task-input").removeAttr("style"); - $("#task-group").val(""); - } else { - alert(data.error); - } - }); - }; - - // Search event handler - todolistUI.prototype.searchTodo = function() { - let filter = $("#search-input").val().toLowerCase(), - todos = $(".task-element"); - - for (let i = 0; i < todos.length; i++) { - let element = todos[i]; - let text = $(element).text().toLowerCase(); - $(element).css("display", text.includes(filter) ? "flex" : "none"); - } - }; - - // Dragable event handler - todolistUI.prototype.dragable = function(event, ui) { - let element = $(event.originalEvent.target).closest(".task-element"); - let newStatus = $(event.target) - .attr("class") - .match(/todolist-(.*)-column-body/i)[1]; - - api.changeTodoStatus( - element.attr("group"), - element.attr("todo-id"), - newStatus - ).done((data) => { - if (data.error == undefined) { - // Change status on element - $(element).attr("status", newStatus); - } else { - alert(data.error); - } - }); - }; - - return todolistUI; -})(); - -let api = new TodolistAPI(); -let ui = new TodolistUI(); - -let main = () => { - api.getGroupsList().done((data) => { - for (let i of data) { - // Draw all groups button - $(".todolist-groups-wrapper") - .append(` -
- ${i.NAME.replaceAll("_", " ")} -
- -
-
- `); - } - - ui.selectGroup("all"); - - // Enable dragabling - $(".column").sortable({ - connectWith: ".column", - update: ui.dragable, - revert: true, - handle: ".task-element-text-info" - }); - - // Setup event handlers - $(".todolist-group-button span").click(ui.selectGroupClick); - $(".group-element-delete").click(ui.deleteGroup); - $(".todolist-body").on("click", ".task-element .task-element-delete", ui.deleteTodo); - $(".send-task-button").click(ui.createTodo); - $("#search-input").keyup(ui.searchTodo); - }); -}; - -$(document).ready(main); diff --git a/static/style.css b/static/style.css index dec7706..ac1b1ed 100644 --- a/static/style.css +++ b/static/style.css @@ -33,7 +33,7 @@ body { display: flex; flex-direction: column; width: 100%; - background: #f0fff0; + background: #f4f4f4; padding: 5px 20px 10px 20px; } @@ -74,15 +74,11 @@ body { .todolist-input-wrapper { display: flex; flex-direction: row; - border-radius: 3px; - background: #fff; align-items: center; - padding: 5px 15px; margin-top: 10px; - height: auto; - border: 1px solid rgba(34, 60, 80, 0.18); } + .todolist-search-wrapper { display: flex; flex-direction: row; @@ -111,18 +107,20 @@ body { } #task-input { - width: 100%; - min-height: 20px; - max-height: 60px; - border: none; - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - color: rgba(0, 0, 0, 1); - font-family: "Ubuntu Mono"; - font-size: 14px; - font-style: normal; - font-variant: normal; - text-align: center; - resize: none; + width: 100%; + color: rgba(0, 0, 0, 1); + font-family: "Ubuntu Mono"; + font-size: 14px; + font-style: normal; + font-variant: normal; + text-align: center; + resize: none; + border-radius: 3px; + background: #fff; + align-items: center; + padding: 5px 15px; + height: auto; + border: 1px solid rgba(34, 60, 80, 0.18); } #search-input::placeholder, @@ -176,6 +174,7 @@ body { display: flex; width: 100%; max-height: calc(100vh - 217px); + height: calc(100vh - 217px); overflow-y: scroll; flex-direction: column; @@ -209,16 +208,17 @@ body { } #task-group { - height: 21px; - width: 200px; - border: none; - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - color: rgba(0, 0, 0, 1); - font-family: "Ubuntu Mono"; - font-size: 14px; - font-style: normal; - font-variant: normal; - text-align: center; + height: 23px; + width: 200px; + color: rgba(0, 0, 0, 1); + font-family: "Ubuntu Mono"; + font-size: 14px; + font-style: normal; + font-variant: normal; + text-align: center; + border-radius: 3px; + background: #fff; + border: 1px solid rgba(34, 60, 80, 0.18); } #task-group:focus { @@ -226,7 +226,14 @@ body { } .send-task-button { - cursor: pointer; + cursor: pointer; + border: 1px solid rgba(34, 60, 80, 0.18); + border-radius: 3px; + background: #fff; + display: flex; + align-items: center; + justify-content: center; + padding: 3.5px; } .task-element { @@ -270,6 +277,10 @@ body { } .task-element-delete { - cursor: pointer; margin-left: 10px; + height: 100%; } + +.task-element-delete img { + cursor: pointer; +} \ No newline at end of file diff --git a/static/ui.js b/static/ui.js new file mode 100644 index 0000000..5853c18 --- /dev/null +++ b/static/ui.js @@ -0,0 +1,261 @@ +/** + * UI events + */ +export class TodolistUI { + constructor (api) { + this.api = api; + + // Enable dragabling + $(".column").sortable({ + connectWith: ".column", + update: (event) => this.dragable(event), + revert: true, + handle: ".task-element-text-info" + }); + }; + + /** + * Init UI + */ + init () { + this.api.getGroupsList().done((data) => { + data.forEach(i => { + // Draw all groups button + $(".todolist-groups-wrapper") + .append(` +
+ ${i.NAME.replaceAll("_", " ")} +
+ +
+
+ `); + }); + + this.selectGroup("all"); + + // Setup event handlers + $(".todolist-group-button span") + .click((event) => this.selectGroupClick(event)); + $(".group-element-delete") + .click((event) => this.deleteGroup(event)); + $(".todolist-body") + .on("click", ".task-element .task-element-delete img", + (event) => this.deleteTodo(event)); + $(".send-task-button") + .click((event) => this.createTodo(event)); + $("#search-input") + .keyup((event) => this.searchTodo(event)); + }); + }; + + /** + * Generate html for todo element + * + * @param {string} group + * @param {int} id + * @param {string} status + * @param {string} date + * @param {string} text + * @returns string + */ + generateTaskElement (group, id, status, date, text) { + return ` +
+
+
${date}
#${group}${id}
+
${text}
+
+
+ +
+
+ `; + }; + + /** + * Set white background for all groups + */ + unselectAllGroup () { + $(".todolist-groups-wrapper >").each(function() { + $(this).css("background", "#fff") + }); + }; + + /** + * Get and draw todos for group + * + * @param {string} group + */ + drawTodos (group) { + // Clear columns + $(".todolist-todo-column-body").html(""); + $(".todolist-doing-column-body").html(""); + $(".todolist-done-column-body").html(""); + + if (group == "all") { + this.api.getAllTodos().done((data) => { + for (let [group, todos] of Object.entries(data)) { + todos.reverse().forEach((todo) => { + $(`.todolist-${todo.STATUS}-column-body`) + .append(this.generateTaskElement( + group.toLowerCase(), todo.ID, todo.STATUS, todo.DATE, todo.TEXT + )); + }); + } + }) + } else { + this.api.getTodosByGroup(group).done((data) => { + data.reverse().forEach((todo) => { + $(`.todolist-${todo.STATUS}-column-body`) + .append(this.generateTaskElement( + group, todo.ID, todo.STATUS, todo.DATE, todo.TEXT + )); + }); + }); + } + }; + + /** + * Select group + * + * @param {string} group + */ + selectGroup (group) { + this.unselectAllGroup(); + $(`#group-${group}`).css("background", "rgba(0, 0, 0, 0.1)"); + this.drawTodos(group); + }; + + /** + * Select group event handler + * + * @param {Event} event + */ + selectGroupClick (event) { + const groupElement = $(event.target).closest(".todolist-group-button"); + const group = $(groupElement).attr("id").replace("group-", ""); + this.selectGroup(group); + }; + + /** + * Delete group event handler + * + * @param {Event} event + */ + deleteGroup (event) { + const groupElement = $(event.target).closest(".todolist-group-button"); + const group = $(groupElement).attr("id").replace("group-", ""); + + this.api.deleteGroup(group).done((data) => { + if (data.error == undefined) { + $(`#group-${group}`).remove(); + $("#group-all span").click(); + } else { + alert(data.error); + } + }); + }; + + /** + * Delele todo event handler + * + * @param {Event} event + */ + deleteTodo (event) { + const todoElement = $(event.target).closest(".task-element"); + const group = $(todoElement).attr("group"); + const id = $(todoElement).attr("todo-id"); + + this.api.deleteTodo(group, id).done((data) => { + if (data.error == undefined) { + $(`.task-element[todo-id="${data.ID}"][group="${data.GROUP}"]`).remove(); + } else { + alert(data.error); + } + }); + }; + + /** + * Create new todo + * + * @param {Event} event + */ + createTodo (event) { + const taskText = $("#task-input").val(); + const taskGroup = $("#task-group").val().replaceAll(" ", "_"); + + if (taskText == "" || taskGroup == "") { + alert("The task or its group cannot be empty"); + return; + } + + this.api.createNewTodo(taskGroup, taskText).done((data) => { + if (data.error == undefined) { + $(".todolist-todo-column-body") + .prepend(this.generateTaskElement( + data.GROUP, data.ID, data.STATUS, data.DATE, data.TEXT + )); + + if ($(`#group-${taskGroup}`).length == 0) { + // Append new group + $(".todolist-groups-wrapper").append(` +
+ ${taskGroup.replaceAll("_", " ")} +
+ +
+
+ `); + + $(`#group-${taskGroup} span`) + .click((event) => this.selectGroupClick(event)); + $(`#group-${taskGroup} .group-element-delete`) + .click((event) => this.deleteGroup(event)); + $(`#group-${taskGroup} span`).click(); + } + + $(`.task-element[todo-id="${data.ID}"][group="${taskGroup}"] .task-element-delete img`) + .click((event) => this.deleteTodo(event)); + $("#task-input").val(""); + $("#task-group").val(""); + } else { + alert(data.error); + } + }); + }; + + /** + * Search event handler + */ + searchTodo () { + const filter = $("#search-input").val().toLowerCase(); + + $(".task-element").each((i, element) => { + const text = $(element).text().toLowerCase(); + $(element).css("display", text.includes(filter) ? "flex" : "none"); + }); + }; + + // Dragable event handler + dragable (event) { + const element = $(event.originalEvent.target) + .closest(".task-element"); + const newStatus = $(event.target) + .attr("class") + .match(/todolist-(.*)-column-body/i)[1]; + + this.api.changeTodoStatus( + element.attr("group"), + element.attr("todo-id"), + newStatus + ).done((data) => { + if (data.error == undefined) { + // Change status on element + $(element).attr("status", newStatus); + } else { + alert(data.error); + } + }); + }; +} \ No newline at end of file diff --git a/todolist.asd b/todolist.asd index 6817fb2..ff379dd 100644 --- a/todolist.asd +++ b/todolist.asd @@ -4,7 +4,7 @@ :description "Todolist with web UI" :author "Daniil Archangelsky " :license "MIT" - :version "1.0.0" + :version "1.1.0" :serial t :depends-on (#:hunchentoot #:spinneret #:jonathan #:mito) :components ((:file "package")