implemented storing of data entered into a task form in localstore
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
let {
|
let {
|
||||||
editable = true,
|
editable = true,
|
||||||
onclick = evt => {},
|
onclick = evt => {},
|
||||||
|
onRender = src => {},
|
||||||
onSet = newVal => {return true;},
|
onSet = newVal => {return true;},
|
||||||
simple = false,
|
simple = false,
|
||||||
type = 'div',
|
type = 'div',
|
||||||
@@ -50,6 +51,7 @@
|
|||||||
body : editValue.source
|
body : editValue.source
|
||||||
});
|
});
|
||||||
editValue.rendered = await resp.text();
|
editValue.rendered = await resp.text();
|
||||||
|
onRender(editValue.source);
|
||||||
}
|
}
|
||||||
|
|
||||||
function typed(ev){
|
function typed(ev){
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
let extendedSettings = $state(false);
|
let extendedSettings = $state(false);
|
||||||
let parent_task = $state(null);
|
let parent_task = $state(null);
|
||||||
let task = $state({
|
let task = $state({
|
||||||
name : '',
|
name : localStorage.getItem('task.name'),
|
||||||
description : { source : '', rendered : '' },
|
description : { source : localStorage.getItem('task.markdown'), rendered : '' },
|
||||||
due_date : null,
|
due_date : null,
|
||||||
est_time : null,
|
est_time : null,
|
||||||
members : {},
|
members : {},
|
||||||
@@ -42,6 +42,14 @@
|
|||||||
/// TODO: ?
|
/// TODO: ?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getCandidates(text){
|
||||||
|
const origin = parent_task ? parent_task.members : project.members;
|
||||||
|
const candidates = Object.values(origin)
|
||||||
|
.filter(member => member.user.name.toLowerCase().includes(text.toLowerCase()))
|
||||||
|
.map(member => [member.user.id,member.user.name]);
|
||||||
|
return Object.fromEntries(candidates);
|
||||||
|
}
|
||||||
|
|
||||||
async function load(){
|
async function load(){
|
||||||
if (parent_task_id) await loadParent();
|
if (parent_task_id) await loadParent();
|
||||||
if (project_id) loadProject();
|
if (project_id) loadProject();
|
||||||
@@ -87,16 +95,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getCandidates(text){
|
function onkeydown(e){
|
||||||
const origin = parent_task ? parent_task.members : project.members;
|
|
||||||
const candidates = Object.values(origin)
|
|
||||||
.filter(member => member.user.name.toLowerCase().includes(text.toLowerCase()))
|
|
||||||
.map(member => [member.user.id,member.user.name]);
|
|
||||||
return Object.fromEntries(candidates);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function onkeydown(e){
|
|
||||||
if (e.ctrlKey && e.keyCode === 83) {
|
if (e.ctrlKey && e.keyCode === 83) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
saveTask();
|
saveTask();
|
||||||
@@ -111,6 +110,8 @@
|
|||||||
body : JSON.stringify(task)
|
body : JSON.stringify(task)
|
||||||
});
|
});
|
||||||
if (resp.ok) {
|
if (resp.ok) {
|
||||||
|
localStorage.removeItem('task.markdown');
|
||||||
|
localStorage.removeItem('task.name');
|
||||||
if (!assignee) { // if assignee is set, this form was opened within an external context. hence we don`t want to navigate somewhere else!
|
if (!assignee) { // if assignee is set, this form was opened within an external context. hence we don`t want to navigate somewhere else!
|
||||||
task = await resp.json();
|
task = await resp.json();
|
||||||
if (task.parent_task_id){
|
if (task.parent_task_id){
|
||||||
@@ -123,6 +124,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function storeSource(markdown){
|
||||||
|
if (markdown) localStorage.setItem('task.markdown',markdown);
|
||||||
|
localStorage.setItem('task.name',task.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function toggleSettings(){
|
function toggleSettings(){
|
||||||
extendedSettings = !extendedSettings;
|
extendedSettings = !extendedSettings;
|
||||||
}
|
}
|
||||||
@@ -172,7 +179,7 @@
|
|||||||
{t('description')}
|
{t('description')}
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
<MarkdownEditor bind:value={task.description} simple={true} />
|
<MarkdownEditor bind:value={task.description} onRender={storeSource} simple={true} />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
Reference in New Issue
Block a user