improved markdown editor
This commit is contained in:
@@ -104,30 +104,16 @@
|
|||||||
if (simple) startEdit();
|
if (simple) startEdit();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
|
||||||
textarea{
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100px;
|
|
||||||
}
|
|
||||||
div{
|
|
||||||
min-width: 40px;
|
|
||||||
min-height: 20px;
|
|
||||||
}
|
|
||||||
div.editable:hover{
|
|
||||||
border: 1px dotted;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="markdown {editing?'editing':''}">
|
<div class="markdown {editing?'editing':''}">
|
||||||
{#if editing}
|
{#if editing}
|
||||||
<div class="boundary">
|
<textarea bind:value={editValue.source} onkeyup={typed} autofocus={!simple}></textarea>
|
||||||
<textarea bind:value={editValue.source} onkeyup={typed} autofocus={!simple}></textarea>
|
<div>{@html target(editValue.rendered)}</div>
|
||||||
<span class="buttons">
|
<div class="buttons">
|
||||||
<button class="cancel" onclick={e => editing = false}>{t('cancel')}</button>
|
<button class="cancel" onclick={e => editing = false}>{t('cancel')}</button>
|
||||||
<span>{@html t('markdown_supported')}</span>
|
<span>{@html t('markdown_supported')}</span>
|
||||||
<button class="save" onclick={doSave}>{t('save')}</button>
|
<button class="save" onclick={doSave}>{t('save')}</button>
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{:else}
|
||||||
<svelte:element this={type} {onclick} {oncontextmenu} class={{editable}} title={t('right_click_to_edit')} >{@html target(editValue.rendered)}</svelte:element>
|
<svelte:element this={type} {onclick} {oncontextmenu} class={{editable}} title={t('right_click_to_edit')} >{@html target(editValue.rendered)}</svelte:element>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -210,9 +210,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{#if task.description}
|
{#if task.description}
|
||||||
<div>{t('description')}</div>
|
<div>{t('description')}</div>
|
||||||
<div class="description">
|
<MarkdownEditor bind:value={task.description} editable={true} onSet={val => update({description:val})} />
|
||||||
<MarkdownEditor bind:value={task.description} editable={true} onSet={val => update({description:val})} />
|
|
||||||
</div>
|
|
||||||
{/if}
|
{/if}
|
||||||
{#if !showSettings && task.start_date}
|
{#if !showSettings && task.start_date}
|
||||||
<div>{t('start_date')}</div>
|
<div>{t('start_date')}</div>
|
||||||
@@ -277,6 +275,10 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
<div>{t('tags')}</div>
|
||||||
|
<div class="tags">
|
||||||
|
<TagList module="task" {id} user_list={Object.keys(task.members).map(id => +id)} />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{t('subtasks')}
|
{t('subtasks')}
|
||||||
@@ -288,10 +290,6 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>{t('tags')}</div>
|
|
||||||
<div class="tags">
|
|
||||||
<TagList module="task" {id} user_list={Object.keys(task.members).map(id => +id)} />
|
|
||||||
</div>
|
|
||||||
<h3>{t('notes')}</h3>
|
<h3>{t('notes')}</h3>
|
||||||
<div>
|
<div>
|
||||||
<Notes module="task" entity_id={id} />
|
<Notes module="task" entity_id={id} />
|
||||||
|
|||||||
@@ -290,6 +290,18 @@ span.timetracking {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.markdown.editing{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
column-gap: 10px;
|
||||||
|
}
|
||||||
|
.markdown .buttons{
|
||||||
|
grid-column-end: span 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editable:hover{
|
||||||
|
border: 1px dotted;
|
||||||
|
}
|
||||||
|
|
||||||
.timetracks .year, .timetracks .month{
|
.timetracks .year, .timetracks .month{
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
@@ -307,23 +319,6 @@ span.timetracking {
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown.editing{
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.markdown.editing > *{
|
|
||||||
width: 49%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.markdown.editing > *:nth-child(2){
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.markdown img{
|
|
||||||
max-width: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
table{
|
table{
|
||||||
min-width: 30vw;
|
min-width: 30vw;
|
||||||
@@ -370,6 +365,7 @@ a.wikilink{
|
|||||||
.grid2{
|
.grid2{
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 230px auto;
|
grid-template-columns: 230px auto;
|
||||||
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid2 > :nth-child(2n-1){
|
.grid2 > :nth-child(2n-1){
|
||||||
|
|||||||
Reference in New Issue
Block a user