Comments: Fixed pointer display, Fixed translation test

This commit is contained in:
Dan Brown 2025-05-13 12:03:15 +01:00
parent 8f92b6f21b
commit 32b29fcdfc
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
4 changed files with 16 additions and 13 deletions

View File

@ -58,6 +58,11 @@ describe('Translations Service', () => {
expect(caseB).toEqual('an orange angry big dinosaur'); expect(caseB).toEqual('an orange angry big dinosaur');
}); });
test('it provides count as a replacement by default', () => {
const caseA = $trans.choice(`:count cats|:count dogs`, 4);
expect(caseA).toEqual('4 dogs');
});
test('not provided replacements are left as-is', () => { test('not provided replacements are left as-is', () => {
const caseA = $trans.choice(`An :a dog`, 5, {}); const caseA = $trans.choice(`An :a dog`, 5, {});
expect(caseA).toEqual('An :a dog'); expect(caseA).toEqual('An :a dog');

View File

@ -10,7 +10,7 @@ export class Translator {
* to use. Similar format at Laravel's 'trans_choice' helper. * to use. Similar format at Laravel's 'trans_choice' helper.
*/ */
choice(translation: string, count: number, replacements: Record<string, string> = {}): string { choice(translation: string, count: number, replacements: Record<string, string> = {}): string {
replacements = Object.assign({}, replacements, {count: String(count)}); replacements = Object.assign({}, {count: String(count)}, replacements);
const splitText = translation.split('|'); const splitText = translation.split('|');
const exactCountRegex = /^{([0-9]+)}/; const exactCountRegex = /^{([0-9]+)}/;
const rangeRegex = /^\[([0-9]+),([0-9*]+)]/; const rangeRegex = /^\[([0-9]+),([0-9*]+)]/;

View File

@ -158,11 +158,7 @@ body.tox-fullscreen, body.markdown-fullscreen {
border-radius: 4px; border-radius: 4px;
box-shadow: 0 0 12px 1px rgba(0, 0, 0, 0.1); box-shadow: 0 0 12px 1px rgba(0, 0, 0, 0.1);
@include mixins.lightDark(background-color, #fff, #333); @include mixins.lightDark(background-color, #fff, #333);
width: 275px; width: 328px;
&.is-page-editable {
width: 328px;
}
&:before { &:before {
position: absolute; position: absolute;
@ -193,7 +189,8 @@ body.tox-fullscreen, body.markdown-fullscreen {
border: 1px solid #DDD; border: 1px solid #DDD;
@include mixins.lightDark(border-color, #ddd, #000); @include mixins.lightDark(border-color, #ddd, #000);
color: #666; color: #666;
width: 180px; width: auto;
flex: 1;
z-index: 58; z-index: 58;
padding: 5px; padding: 5px;
border-radius: 0; border-radius: 0;
@ -203,7 +200,8 @@ body.tox-fullscreen, body.markdown-fullscreen {
} }
.input-group .button { .input-group .button {
line-height: 1; line-height: 1;
margin: 0 0 0 -5px; margin-inline-start: -1px;
margin-block: 0;
box-shadow: none; box-shadow: none;
border-radius: 0; border-radius: 0;
} }

View File

@ -6,21 +6,21 @@
tabindex="-1" tabindex="-1"
aria-label="{{ trans('entities.pages_pointer_label') }}" aria-label="{{ trans('entities.pages_pointer_label') }}"
class="pointer-container"> class="pointer-container">
<div class="pointer flex-container-row items-center justify-space-between gap-xs p-xs anim {{ userCan('page-update', $page) ? 'is-page-editable' : ''}}" > <div class="pointer flex-container-row items-center justify-space-between gap-xs p-xs anim" >
<div refs="pointer@mode-section" class="flex-container-row items-center gap-xs"> <div refs="pointer@mode-section" class="flex flex-container-row items-center gap-xs">
<button refs="pointer@mode-toggle" <button refs="pointer@mode-toggle"
title="{{ trans('entities.pages_pointer_toggle_link') }}" title="{{ trans('entities.pages_pointer_toggle_link') }}"
class="text-button icon px-xs">@icon('link')</button> class="text-button icon px-xs">@icon('link')</button>
<div class="input-group"> <div class="input-group flex flex-container-row items-center">
<input refs="pointer@link-input" aria-label="{{ trans('entities.pages_pointer_permalink') }}" readonly="readonly" type="text" id="pointer-url" placeholder="url"> <input refs="pointer@link-input" aria-label="{{ trans('entities.pages_pointer_permalink') }}" readonly="readonly" type="text" id="pointer-url" placeholder="url">
<button refs="pointer@link-button" class="button outline icon px-xs" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button> <button refs="pointer@link-button" class="button outline icon px-xs" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button>
</div> </div>
</div> </div>
<div refs="pointer@mode-section" hidden class="flex-container-row items-center gap-s"> <div refs="pointer@mode-section" hidden class="flex flex-container-row items-center gap-xs">
<button refs="pointer@mode-toggle" <button refs="pointer@mode-toggle"
title="{{ trans('entities.pages_pointer_toggle_include') }}" title="{{ trans('entities.pages_pointer_toggle_include') }}"
class="text-button icon px-xs">@icon('include')</button> class="text-button icon px-xs">@icon('include')</button>
<div class="input-group"> <div class="input-group flex flex-container-row items-center">
<input refs="pointer@include-input" aria-label="{{ trans('entities.pages_pointer_include_tag') }}" readonly="readonly" type="text" id="pointer-include" placeholder="include"> <input refs="pointer@include-input" aria-label="{{ trans('entities.pages_pointer_include_tag') }}" readonly="readonly" type="text" id="pointer-include" placeholder="include">
<button refs="pointer@include-button" class="button outline icon px-xs" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button> <button refs="pointer@include-button" class="button outline icon px-xs" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button>
</div> </div>