add support for bidi text

fix #1959

Signed-off-by: jamazi <jamazi@tutanota.com>
This commit is contained in:
jamazi
2023-11-05 13:36:45 +00:00
parent 30c5f276b6
commit 2a4b3e709c
9 changed files with 25 additions and 9 deletions

View File

@@ -24,7 +24,9 @@
<div class="controls"> <div class="controls">
<div v-if="overviewName" class="board-title"> <div v-if="overviewName" class="board-title">
<div class="board-bullet icon-calendar-dark" /> <div class="board-bullet icon-calendar-dark" />
<h2>{{ overviewName }}</h2> <h2 dir="auto">
{{ overviewName }}
</h2>
<NcActions> <NcActions>
<NcActionButton icon="icon-add" @click="clickShowAddCardModel"> <NcActionButton icon="icon-add" @click="clickShowAddCardModel">
{{ t('deck', 'Add card') }} {{ t('deck', 'Add card') }}
@@ -36,7 +38,9 @@
</div> </div>
<div v-else-if="board" class="board-title"> <div v-else-if="board" class="board-title">
<div :style="{backgroundColor: '#' + board.color}" class="board-bullet" /> <div :style="{backgroundColor: '#' + board.color}" class="board-bullet" />
<h2>{{ board.title }}</h2> <h2 dir="auto">
{{ board.title }}
</h2>
<p v-if="showArchived"> <p v-if="showArchived">
({{ t('deck', 'Archived cards') }}) ({{ t('deck', 'Archived cards') }})
</p> </p>

View File

@@ -4,7 +4,7 @@
<ul> <ul>
<li v-for="deletedStack in deletedStacks" :key="deletedStack.id"> <li v-for="deletedStack in deletedStacks" :key="deletedStack.id">
<span class="icon icon-deck" /> <span class="icon icon-deck" />
<div class="title"> <div class="title" dir="auto">
<span>{{ deletedStack.title }}</span> <span>{{ deletedStack.title }}</span>
<span class="timestamp">{{ relativeDate(deletedStack.deletedAt*1000) }}</span> <span class="timestamp">{{ relativeDate(deletedStack.deletedAt*1000) }}</span>
</div> </div>
@@ -18,7 +18,7 @@
<ul> <ul>
<li v-for="deletedCard in deletedCards" :key="deletedCard.id"> <li v-for="deletedCard in deletedCards" :key="deletedCard.id">
<div class="icon icon-deck" /> <div class="icon icon-deck" />
<div class="title"> <div class="title" dir="auto">
<span>{{ deletedCard.title }}</span> <span>{{ deletedCard.title }}</span>
<span class="timestamp">{{ relativeDate(deletedCard.deletedAt*1000) }}</span> <span class="timestamp">{{ relativeDate(deletedCard.deletedAt*1000) }}</span>
</div> </div>

View File

@@ -34,6 +34,7 @@
</h3> </h3>
<h3 v-else-if="!editing" <h3 v-else-if="!editing"
v-tooltip="stack.title" v-tooltip="stack.title"
dir="auto"
tabindex="0" tabindex="0"
:aria-label="stack.title" :aria-label="stack.title"
class="stack__title" class="stack__title"
@@ -48,6 +49,7 @@
@keyup.esc="cancelEdit"> @keyup.esc="cancelEdit">
<input v-model="copiedStack.title" <input v-model="copiedStack.title"
v-focus v-focus
dir="auto"
type="text" type="text"
required="required"> required="required">
<input v-tooltip="t('deck', 'Edit list title')" <input v-tooltip="t('deck', 'Edit list title')"

View File

@@ -41,6 +41,7 @@
</span> </span>
</template> </template>
<div ref="contentEditable" <div ref="contentEditable"
dir="auto"
class="comment-form__contenteditable" class="comment-form__contenteditable"
contenteditable contenteditable
@keydown.enter="handleKeydown" @keydown.enter="handleKeydown"

View File

@@ -13,6 +13,7 @@
</NcActions> </NcActions>
</div> </div>
<NcRichText class="comment--content" <NcRichText class="comment--content"
dir="auto"
:text="richText(comment)" :text="richText(comment)"
:arguments="richArgs(comment)" :arguments="richArgs(comment)"
:autolink="true" /> :autolink="true" />
@@ -57,11 +58,15 @@
<CommentItem v-if="comment.replyTo" :reply="true" :comment="comment.replyTo" /> <CommentItem v-if="comment.replyTo" :reply="true" :comment="comment.replyTo" />
<div v-show="!edit" ref="richTextElement"> <div v-show="!edit" ref="richTextElement">
<NcRichText class="comment--content" <NcRichText class="comment--content"
dir="auto"
:text="richText(comment)" :text="richText(comment)"
:arguments="richArgs(comment)" :arguments="richArgs(comment)"
:autolink="true" /> :autolink="true" />
</div> </div>
<CommentForm v-if="edit" v-model="commentMsg" @submit="updateComment" /> <CommentForm v-if="edit"
v-model="commentMsg"
dir="auto"
@submit="updateComment" />
</li> </li>
</template> </template>

View File

@@ -55,6 +55,7 @@
<template v-else> <template v-else>
<div v-if="!descriptionEditing && hasDescription" <div v-if="!descriptionEditing && hasDescription"
id="description-preview" id="description-preview"
dir="auto"
@click="clickedPreview" @click="clickedPreview"
v-html="renderedDescription" /> v-html="renderedDescription" />
<p v-else-if="!descriptionEditing" class="placeholder" @click="showEditor()"> <p v-else-if="!descriptionEditing" class="placeholder" @click="showEditor()">

View File

@@ -31,15 +31,16 @@
class="card" class="card"
@click="openCard"> @click="openCard">
<div v-if="standalone" class="card-related"> <div v-if="standalone" class="card-related">
<div :style="{backgroundColor: '#' + board.color}" class="board-bullet" /> <div :style="{backgroundColor: '#' + board.color}" class="board-bullet" dir="auto" />
{{ board.title }} » {{ stack.title }} {{ board.title }} » {{ stack.title }}
</div> </div>
<CardCover v-if="showCardCover" :card-id="card.id" /> <CardCover v-if="showCardCover" :card-id="card.id" />
<div class="card-upper"> <div class="card-upper">
<h3 v-if="inlineEditingBlocked"> <h3 v-if="inlineEditingBlocked" dir="auto">
{{ card.title }} {{ card.title }}
</h3> </h3>
<h3 v-else-if="!editing" <h3 v-else-if="!editing"
dir="auto"
tabindex="0" tabindex="0"
class="editable" class="editable"
:aria-label="t('deck', 'Edit card title')" :aria-label="t('deck', 'Edit card title')"
@@ -55,6 +56,7 @@
@submit.prevent="finishedEdit(card)"> @submit.prevent="finishedEdit(card)">
<input v-model="copiedCard.title" <input v-model="copiedCard.title"
v-focus v-focus
dir="auto"
type="text" type="text"
autocomplete="off" autocomplete="off"
required required

View File

@@ -5,12 +5,12 @@
class="card"> class="card">
<div class="card--header"> <div class="card--header">
<DueDate class="right" :card="card" /> <DueDate class="right" :card="card" />
<span class="title">{{ card.title }}</span> <span class="title" dir="auto">{{ card.title }}</span>
</div> </div>
<ul v-if="card.labels && card.labels.length" <ul v-if="card.labels && card.labels.length"
class="labels"> class="labels">
<li v-for="label in card.labels" :key="label.id" :style="labelStyle(label)"> <li v-for="label in card.labels" :key="label.id" :style="labelStyle(label)">
<span>{{ label.title }}</span> <span dir="auto">{{ label.title }}</span>
</li> </li>
</ul> </ul>
</a> </a>

View File

@@ -134,6 +134,7 @@
<form @submit.prevent.stop="applyEdit"> <form @submit.prevent.stop="applyEdit">
<input v-model="editTitle" <input v-model="editTitle"
v-focus v-focus
dir="auto"
type="text" type="text"
required> required>
<input type="submit" value="" class="icon-confirm"> <input type="submit" value="" class="icon-confirm">