Commit 35b2787a authored by ransome1's avatar ransome1
Browse files

Fixed recurrence bug, enhanced dark mode, added new support message

parent 02819161
{
"name": "sleek",
"productName": "sleek",
"version": "1.1.8",
"version": "1.1.9",
"description": "todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS)",
"synopsis": "todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS)",
"category": "ProjectManagement",
......@@ -19,7 +19,7 @@
"main": "src/main.js",
"buildResources": "src",
"build": {
"buildVersion": "1",
"buildVersion": "16",
"files": [
"!flatpak-node${/*}",
"!snap${/*}",
......
name: sleek
base: core18
version: "1.1.8"
version: "1.1.9"
summary: todo.txt manager for Linux, free and open-source (FOSS)
description: |
sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. Stripped down to only the most necessary features, and with a clean and simple interface, sleek aims to help you focus on getting things done.
......
......@@ -9,14 +9,14 @@
background-color: #212224 !important;
}
body a {
color: #3273dc;
color: #3273dc !important;
}
body a:hover,
body a:focus-visible {
color: #f0f0f0;
color: #f0f0f0 !important;
}
body strong {
color: #f0f0f0;
color: white !important;
}
body input,
body select {
......@@ -29,7 +29,7 @@ body input[type=search],
body textarea {
background: #2d2d2d !important;
border: none;
color: white;
color: white !important;
}
body input:focus,
body select:focus {
......@@ -44,6 +44,11 @@ body .inputWrapper.is-focused .todoTableSearchQuestionmark i {
color: #f0f0f0 !important;
}
body input::placeholder {
color: #f0f0f0 !important;
}
body input[type=text]::placeholder,
body input[type=search]::placeholder,
body textarea::placeholder {
color: #5a5a5a !important;
}
body input[type=checkbox]:focus,
......@@ -62,7 +67,7 @@ body input[type=checkbox]:active {
background-color: transparent !important;
}
body ::after {
border-color: #f0f0f0 !important;
border-color: #3273dc !important;
}
body button:focus-visible {
color: #f0f0f0 !important;
......@@ -79,13 +84,6 @@ body input[type=checkbox]:active {
body table tr th {
color: white !important;
}
body table.files tr td:last-child a,
body table.files tr td:last-child a:hover {
color: #f0f0f0 !important;
}
body table.files tr td:last-child a:focus-visible {
color: #212224 !important;
}
body table.files button {
color: #f0f0f0 !important;
background: #3273dc !important;
......@@ -171,6 +169,9 @@ body a.projects:focus-visible {
body #drawerContainer .zoom #zoomStatus {
color: white !important;
}
body #drawerContainer .todoFilterHint {
color: #CCCDCF;
}
body #todoTableSearchContainer {
background-color: #212224;
}
......@@ -196,12 +197,6 @@ body #todoTableSearchContainer #todoTableSearchAddTodo:focus-visible {
body #resultStats .tag {
color: #CCCDCF !important;
}
body #resultStats .tag strong {
color: white !important;
}
body #todoTable i {
color: #f0f0f0;
}
body #todoTable i.fa-sort-down {
color: #5a5a5a !important;
}
......@@ -239,38 +234,35 @@ body #todoTable .todo.due button {
body #todoTable .todo .cell.archive a:focus-visible {
color: #CCCDCF !important;
}
body #todoTable .todo div.cell.text {
body #todoTable .todo .cell.text {
color: #f0f0f0 !important;
}
body #todoTable .todo div.cell.text:focus-visible {
body #todoTable .todo .cell.text:focus-visible {
background: #2d2d2d !important;
}
body #todoTable .todo .cell.itemDueDate {
color: white;
}
body #todoTable .todo .cell.itemDueDate i {
color: inherit;
body #todoTable .todo .cell.hint.itemDueDate i {
color: inherit !important;
}
body #todoTable .todo .cell.itemDueDate.today,
body #todoTable .todo .cell.itemDueDate.past {
color: #ff3860;
body #todoTable .todo .cell.hint.itemDueDate.today,
body #todoTable .todo .cell.hint.itemDueDate.past {
color: #ff3860 !important;
}
body #todoTable .todo .cell.itemDueDate.today i,
body #todoTable .todo .cell.itemDueDate.past i {
body #todoTable .todo .cell.hint.itemDueDate.today i,
body #todoTable .todo .cell.hint.itemDueDate.past i {
color: inherit !important;
}
body #todoTable .todo .cell.itemDueDate.tomorrow {
body #todoTable .todo .cell.hint.itemDueDate.tomorrow {
color: #fa745e;
}
body #todoTable .todo .cell.itemDueDate.tomorrow i {
body #todoTable .todo .cell.hint.itemDueDate.tomorrow i {
color: inherit !important;
}
body #todoTable .todo .cell.hint i:not(.fa-sort-down) {
color: #CCCDCF !important;
}
body #todoTable .todo:focus {
background: #3a3a3a !important;
}
body #modalForm i {
color: #CCCDCF !important;
}
body #modalForm .field input,
body #modalForm .field select {
color: white !important;
......@@ -427,9 +419,6 @@ body .modal.content button,
body .modal.content select {
background: #2d2d2d !important;
}
body .modal.content .select:not(.is-multiple):not(.is-loading)::after {
border-color: white !important;
}
body .modal.content .delete,
body .modal.content .modal-close,
body .modal.content .tag.is-info {
......@@ -484,9 +473,6 @@ body .modal.content table td {
body .message.fixed {
background: transparent !important;
}
body .message.fixed i {
color: white !important;
}
body .message.fixed .message-body {
color: #CCCDCF;
background: #3B3B3B !important;
......@@ -700,7 +686,6 @@ input[type=range]:focus {
padding: 0.1em;
-webkit-appearance: none;
border-radius: 0.65em;
background: #CCCDCF !important;
}
input[type=range]::-webkit-slider-thumb {
......@@ -891,6 +876,16 @@ code, pre {
margin-right: 0.2em;
color: #3273dc;
}
#messages .message.review table tr td {
text-align: center;
}
#messages .message.review table tr td a {
display: block;
}
#messages .message.review table tr td a i {
font-size: 2em;
color: #3273dc !important;
}
#messages button {
margin-top: 0.5em;
}
......@@ -1600,6 +1595,9 @@ a.priority.C:focus-visible span.tag {
#drawerContainer .drawer section .todoFilterHint {
cursor: help;
}
#drawerContainer .drawer table tr td {
white-space: nowrap;
}
#drawerContainer .drawer table tr td:nth-child(odd) {
width: auto;
vertical-align: middle;
......
This diff is collapsed.
......@@ -312,8 +312,8 @@
</div>
<footer class="card-footer">
<button id="btnSave" type="submit" class="card-footer-item" tabindex="0"></button>
<button id="btnItemStatus" class="card-footer-item is-hidden" tabindex="0"></button>
<button id="btnCancel" class="card-footer-item" role="cancel" tabindex="0"></button>
<a href="#" id="btnItemStatus" class="card-footer-item is-hidden" tabindex="0"></a>
<a href="#" id="btnCancel" class="card-footer-item" role="cancel" tabindex="0"></a>
</footer>
</div>
</div>
......@@ -850,18 +850,19 @@
<p><button id="btnMessageLogging" tabindex="-1"><i class="fas fa-cog"></i>&nbsp;<span id="messageLoggingButton"></span></button></p>
</div>
</article>
<article class="message fixed" data="share">
<article class="message fixed review" data="support">
<div class="message-header">
<p><span id="messageShareTitle"></span></p>
<button class="delete close" role="cancel" data-message="share" tabindex="-1"></button>
<p>sleek <i class="fas fa-heart"></i> you</p>
<button class="delete" role="cancel" data-message="support"></button>
</div>
<div class="message-body">
<p><span id="messageShareBody"></span></p>
<p class="brands">
<a tabindex="-1" href="https://twitter.com/intent/tweet?text=Check%20out%20sleek,%20a%20todo%20app%20based%20on%20todo.txt,%20free%20and%20open-source.%20Available%20for%20Linux,%20Windows%20and%20MacOS.%20https://github.com/ransome1/sleek" target="_blank"><i class="fab fa-twitter"></i></a>
<a tabindex="-1" href="https://www.facebook.com/sharer/sharer.php?u=https://github.com/ransome1/sleek" target="_blank"><i class="fab fa-facebook-square"></i></a>
<a tabindex="-1" href="https://www.linkedin.com/shareArticle?mini=true&url=https://github.com/ransome1/sleek" target="_blank"><i class="fab fa-linkedin"></i></a>
</p>
<p>Please submit bug reports on <i class="fab fa-github"></i>&nbsp;<a href="https://github.com/ransome1/sleek/issues\" target="_blank">Github</a> and support this little project by writing a review on:
<table>
<tr>
<td><a href="https://apps.apple.com/us/app/sleek-todo-manager/id1614704209" target="_blank"><i class="fa-brands fa-apple"></i><br>Mac App Store</a></td>
<td><a href="https://www.microsoft.com/store/apps/9NWM2WXF60KR" target="_blank"><i class="fa-brands fa-windows"></i><br>Microsoft Store</a></td>
</tr>
</table>
</div>
</article>
</section>
......
......@@ -6,7 +6,7 @@ import { userData, setUserData } from "../render.js";
// ########################################################################################################################
export const getHandleElement = document.getElementById("handle");
const getResizeableElement = () => { return document.getElementById("drawerContainer"); };
const minPaneSize = 400;
const minPaneSize = 450;
const maxPaneSize = document.body.clientWidth * .75
const setPaneWidth = (width) => {
getResizeableElement().style.setProperty("--resizeable-width", `${width}px`);
......
......@@ -26,21 +26,15 @@ datePickerInput.placeholder = translations.formSelectDueDate;
btnItemStatus.onclick = async function() {
try {
// pass data item to function, not the actual value
const todo = await generateTodoTxtObject(modalForm.getAttribute("data-item")).then(response => {
return response;
}).catch(error => {
handleError(error);
});
setTodoComplete(todo).then(response => {
setTodoComplete(modalForm.getAttribute("data-item")).then(response => {
console.log(response);
}).catch(error => {
handleError(error);
});
// clear and close form
resetForm().then(function(result) {
console.log(result);
// close and clean up the modal
resetForm().then(function(response) {
console.log(response);
}).catch(function(error) {
handleError(error);
});
......@@ -48,8 +42,6 @@ btnItemStatus.onclick = async function() {
// trigger matomo event
if(userData.matomoEvents) _paq.push(["trackEvent", "Form", "Click on Done/In progress"]);
return false;
} catch(error) {
error.functionName = "btnItemStatus.onclick";
handleError(error);
......@@ -90,14 +82,10 @@ modalForm.onsubmit = async function(event) {
// in case there hasn't been a passed data item, we just push the input value as a new item into the array
// replace new lines with spaces (https://stackoverflow.com/a/34936253)
const inputValue = modalFormInput.value.replaceAll(/[\r\n]+/g, String.fromCharCode(16));
const inputValue = await modalFormInput.value.replaceAll(/[\r\n]+/g, String.fromCharCode(16));
// create todo object from input value
let todo = await generateTodoTxtObject(inputValue).then(response => {
return response;
}).catch(error => {
handleError(error);
});
let todo = await generateTodoTxtObject(inputValue);
// we add the current date to the start date attribute of the todo.txt object
if(userData.appendStartDate) todo.date = new Date();
......
......@@ -12,14 +12,10 @@ const messageGenericMessage = document.getElementById("messageGenericMessage");
const messageLoggingBody = document.getElementById("messageLoggingBody");
const messageLoggingButton = document.getElementById("messageLoggingButton");
const messageLoggingTitle = document.getElementById("messageLoggingTitle");
const messageShareBody = document.getElementById("messageShareBody");
const messageShareTitle = document.getElementById("messageShareTitle");
messageLoggingBody.innerHTML = translations.messageLoggingBody;
messageLoggingButton.innerHTML = translations.settings;
messageLoggingTitle.innerHTML = translations.errorEventLogging;
messageShareBody.innerHTML = translations.messageShareBody;
messageShareTitle.innerHTML = translations.messageShareTitle;
btnMessageLogging.onclick = function () {
showModal("modalSettings").then(function(response) {
......
......@@ -9,6 +9,7 @@ import { convertDate, isToday, isTomorrow, isPast } from "./date.mjs";
import { createModalJail } from "./jail.mjs";
import { focusRow } from "./keyboard.mjs";
import { showRecurrences, setInput } from "./recurrencePicker.mjs";
import { generateRecurrence } from "./recurrences.mjs";
import { getActiveFile, getDoneFile, handleError, pasteItemToClipboard, generateGenericNotification, generateTodoNotification } from "./helper.mjs";
import { getConfirmation } from "./prompt.mjs";
import { show } from "./form.mjs";
......@@ -47,7 +48,7 @@ todoContextUseAsTemplate.innerHTML = translations.useAsTemplate;
tableContainerCategoriesTemplate.setAttribute("class", "cell categories");
todoTableBodyCellCheckboxTemplate.setAttribute("class", "cell checkbox");
todoTableBodyCellDueDateTemplate.setAttribute("class", "cell hint itemDueDate");
todoTableBodyCellTDateTemplate.setAttribute("class", "cell");
todoTableBodyCellTDateTemplate.setAttribute("class", "cell hint");
todoTableBodyCellRecurrenceTemplate.setAttribute("class", "cell hint");
todoTableBodyCellTextTemplate.setAttribute("class", "cell text");
todoTableBodyCellTextTemplate.setAttribute("href", "#");
......
......@@ -9,14 +9,14 @@
background-color: $almost-black!important;
}
a {
color: $has-text-link;
color: $has-text-link!important;
}
a:hover,
a:focus-visible {
color: $almost-white;
color: $almost-white!important;
}
strong {
color: $almost-white;
color: white!important;
}
input,
select {
......@@ -24,12 +24,13 @@
background: transparent!important;
color: white!important;
}
input[type="text"],
input[type="search"],
textarea {
background: $darker-grey!important;
border: none;
color: white;
color: white!important;
}
input:focus,
select:focus {
......@@ -44,6 +45,11 @@
}
}
input::placeholder {
color: $almost-white!important;
}
input[type="text"]::placeholder,
input[type="search"]::placeholder,
textarea::placeholder {
color: $dark-grey!important;
}
input[type="checkbox"]:focus,
......@@ -58,15 +64,15 @@
background: $almost-white!important;
}
button {
color: $almost-white!important;
background-color: transparent!important;
color: $almost-white!important;
background-color: transparent!important;
}
::after {
border-color: $almost-white!important;
border-color: $has-text-link!important;
}
button:focus-visible {
color: $almost-white!important;
background: $darker-grey!important;
color: $almost-white!important;
background: $darker-grey!important;
}
table {
width: 100%;
......@@ -80,17 +86,7 @@
color: white!important;
}
table.files {
tr {
td:last-child {
a,
a:hover {
color: $almost-white!important;
}
a:focus-visible {
color: $almost-black!important;
}
}
}
button {
color: $almost-white!important;
background: $has-text-link!important;
......@@ -184,6 +180,9 @@
color: white!important;
}
}
.todoFilterHint {
color: $lighter-grey;
}
}
#todoTableSearchContainer {
background-color: $almost-black;
......@@ -210,15 +209,9 @@
#resultStats {
.tag {
color: $lighter-grey!important;
strong {
color: white!important;
}
}
}
#todoTable {
i {
color: $almost-white;
}
i.fa-sort-down {
color: $dark-grey!important;
}
......@@ -263,40 +256,41 @@
color: $lighter-grey!important;
}
}
div.cell.text {
.cell.text {
color: $almost-white!important;
}
div.cell.text:focus-visible {
.cell.text:focus-visible {
background: $darker-grey!important;
}
.cell.itemDueDate {
color: white;
.cell.hint.itemDueDate {
i {
color: inherit;
color: inherit!important;
}
}
.cell.itemDueDate.today,
.cell.itemDueDate.past {
color: $has-text-danger;
.cell.hint.itemDueDate.today,
.cell.hint.itemDueDate.past {
color: $has-text-danger!important;
i {
color: inherit!important;
}
}
.cell.itemDueDate.tomorrow {
.cell.hint.itemDueDate.tomorrow {
color: $has-text-attention;
i {
color: inherit!important;
}
}
}
.cell.hint {
i:not(.fa-sort-down) {
color: $lighter-grey!important;
}
}
}
.todo:focus {
background: lighten($darker-grey, 5%)!important;
}
}
#modalForm {
i {
color: $lighter-grey!important;
}
.field {
input,
select {
......@@ -465,9 +459,7 @@
select {
background: $darker-grey!important;
}
.select:not(.is-multiple):not(.is-loading)::after {
border-color: white!important;
}
.delete,
.modal-close,
.tag.is-info {
......@@ -522,9 +514,6 @@
}
.message.fixed {
background: transparent!important;
i {
color: white!important;
}
.message-body {
color: $lighter-grey;
background: $even-darker-grey!important;
......
......@@ -146,6 +146,9 @@
cursor: help;
}
}
table tr td {
white-space: nowrap;
}
table tr td:nth-child(odd) {
width: auto;
vertical-align: middle;
......
......@@ -147,7 +147,6 @@ input[type="range"]:focus {
padding: 0.1em;
-webkit-appearance: none;
border-radius: $radius;
background: $lighter-grey!important;
}
input[type="range"]::-webkit-slider-thumb {
......@@ -366,6 +365,18 @@ code, pre {
color: $has-text-link;
}
}
.message.review {
table tr td {
text-align: center;
a {
display: block;
i {
font-size: 2em;
color: $has-text-link!important;
}
}
}
}
button {
margin-top: .5em;
}
......
......@@ -21,3 +21,4 @@ x 2022-03-30 This is a test todo that needs to be archived
x 2022-03-31 This is a test todo that needs to be archived
x 2022-04-01 This is a test todo that needs to be archived
x 2022-04-04 This is a test todo that needs to be archived
x 2022-04-07 This is a test todo that needs to be archived
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment