Minor fixes (#8062)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov 2025-02-20 21:43:19 +05:00 committed by GitHub
parent 3cc324da77
commit 8bbba7bc8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 32 additions and 37 deletions

View File

@ -27,11 +27,11 @@
"NoEmployeesInDepartment": "Нет сотрудников в выбранном департаменте",
"Vacation": "Отпуск",
"Sick": "Больничный",
"PTO": "Отпуск",
"PTOs": "Отпускных дней",
"PTO": "Отгул(PTO)",
"PTOs": "Отгулов",
"Remote": "Удаленно",
"Overtime": "Переработка",
"PTO2": "Отпуск/2",
"PTO2": "Отгул(PTO)/2",
"Overtime2": "Переработка/2",
"EditRequest": "Редактировать {type}",
"EditRequestType": "Редактировать тип",

View File

@ -13,9 +13,9 @@
// limitations under the License.
-->
<script lang="ts">
import { Label, tooltip, themeStore } from '@hcengineering/ui'
import { getEmbeddedLabel, translate } from '@hcengineering/platform'
import { themeStore, tooltip } from '@hcengineering/ui'
import tracker from '../../../plugin'
import { translate } from '@hcengineering/platform'
export let id: string | undefined = undefined
export let kind: 'link' | undefined = undefined
@ -29,31 +29,32 @@
$: days = Math.floor(value / hoursInWorkingDay)
$: hours = Math.floor(value % hoursInWorkingDay)
$: minutes = Math.floor((value % 1) * 60)
$: minutes = Math.round((value % 1) * 60)
$: Promise.all([
days > 0 ? translate(tracker.string.TimeSpendDays, { value: days }, $themeStore.language) : Promise.resolve(false),
hours > 0
? translate(tracker.string.TimeSpendHours, { value: hours }, $themeStore.language)
: Promise.resolve(false),
minutes > 0
? translate(tracker.string.TimeSpendMinutes, { value: minutes }, $themeStore.language)
: Promise.resolve(false)
])
.then(([days, hours, minutes]) =>
[
...(days === false ? [] : [days]),
...(hours === false ? [] : [hours]),
...(minutes === false ? [] : [minutes])
].join(' ')
)
.then((l) => (l === '' ? translate(tracker.string.TimeSpendHours, { value: 0 }, $themeStore.language) : l))
.then((l) => {
label = l
})
.catch((err) => {
console.error(err)
})
$: void getLabel(days, hours, minutes, $themeStore.language)
async function getLabel (days: number, hours: number, minutes: number, language: string): Promise<void> {
try {
const res: string[] = []
if (days > 0) {
const d = await translate(tracker.string.TimeSpendDays, { value: days }, language)
res.push(d)
}
if (hours > 0) {
const h = await translate(tracker.string.TimeSpendHours, { value: hours }, language)
res.push(h)
}
if (minutes > 0) {
const m = await translate(tracker.string.TimeSpendMinutes, { value: minutes }, language)
res.push(m)
}
if (res.length > 0) {
label = res.join(' ')
} else {
label = await translate(tracker.string.TimeSpendHours, { value: 0 }, language)
}
} catch {}
}
</script>
<!-- svelte-ignore a11y-click-events-have-key-events -->
@ -63,13 +64,7 @@
class:link={kind === 'link'}
class:fs-bold={accent}
on:click
use:tooltip={{
component: Label,
props: {
label: tracker.string.TimeSpendHours,
params: { value }
}
}}
use:tooltip={{ label: getEmbeddedLabel(label) }}
>
{label}
</span>

View File

@ -294,7 +294,7 @@ export function convertEstimation (estimation: number | string): string {
const days = Math.floor(value / hoursInWorkingDay)
const hours = Math.floor(value % hoursInWorkingDay)
const minutes = Math.floor((value % 1) * 60)
const minutes = Math.round((value % 1) * 60)
const result = [
...(days === 0 ? [] : [`${days}d`]),
...(hours === 0 ? [] : [`${hours}h`]),