mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Merge branch 'release/15.4' into dev
This commit is contained in:
@@ -1629,6 +1629,7 @@ af:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Van"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-pos"
|
||||
name: "Naam"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ af:
|
||||
nothing_to_preview: "Niks om te voorskou"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Slot Weergawe"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1709,6 +1709,7 @@ ar:
|
||||
journal_notes: "Comment"
|
||||
lastname: "الاسم الأخير"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "البريد الإكتروني"
|
||||
name: "الاسم"
|
||||
note: "Note"
|
||||
@@ -4339,7 +4340,6 @@ ar:
|
||||
nothing_to_preview: "لا شيء للمعاينة"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "قفل الإصدار"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ az:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ az:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1669,6 +1669,7 @@ be:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Прозвішча"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Імя"
|
||||
note: "Note"
|
||||
@@ -4257,7 +4258,6 @@ be:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ bg:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Фамилно име"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Име"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ bg:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1626,6 +1626,7 @@ ca:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Cognom"
|
||||
login: "Nom d'usuari"
|
||||
lock_version: "Lock version"
|
||||
mail: "Correu electrònic"
|
||||
name: "Nom"
|
||||
note: "Note"
|
||||
@@ -4164,7 +4165,6 @@ ca:
|
||||
nothing_to_preview: "Res per previsualitzar"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Bloquejar versió"
|
||||
property: "Propietat"
|
||||
errors:
|
||||
code_400: "Sol·licitud incorrecta: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ ckb-IR:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ ckb-IR:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1669,6 +1669,7 @@ cs:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Příjmení"
|
||||
login: "Uživatelské jméno"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Název"
|
||||
note: "Poznámka"
|
||||
@@ -4255,7 +4256,6 @@ cs:
|
||||
nothing_to_preview: "Nic pro náhled"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Uzamknout verzi"
|
||||
property: "Vlastnost"
|
||||
errors:
|
||||
code_400: "Špatný požadavek: %{message}"
|
||||
|
||||
@@ -1627,6 +1627,7 @@ da:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Efternavn"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Navn"
|
||||
note: "Note"
|
||||
@@ -4169,7 +4170,6 @@ da:
|
||||
nothing_to_preview: "Intet at forhåndsvise"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lås version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1622,6 +1622,7 @@ de:
|
||||
journal_notes: "Kommentar"
|
||||
lastname: "Nachname"
|
||||
login: "Benutzername"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-Mail"
|
||||
name: "Name"
|
||||
note: "Anmerkung"
|
||||
@@ -4165,7 +4166,6 @@ de:
|
||||
nothing_to_preview: "Keine Vorschau verfügbar"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Version sperren"
|
||||
property: "Eigenschaft"
|
||||
errors:
|
||||
code_400: "Ungültige Anfrage: %{message}"
|
||||
|
||||
@@ -1625,6 +1625,7 @@ el:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Επώνυμο"
|
||||
login: "Όνομα χρήστη"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Όνομα"
|
||||
note: "Note"
|
||||
@@ -4167,7 +4168,6 @@ el:
|
||||
nothing_to_preview: "Δεν υπάρχει κάτι για προεπισκόπηση"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Κλείδωμα Έκδοσης"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Λάθος αίτημα: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ eo:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Familinomo"
|
||||
login: "Uzantnomo"
|
||||
lock_version: "Lock version"
|
||||
mail: "Retpoŝto"
|
||||
name: "Nomo"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ eo:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1627,6 +1627,7 @@ es:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Apellido"
|
||||
login: "Nombre usuario"
|
||||
lock_version: "Lock version"
|
||||
mail: "Correo electrónico"
|
||||
name: "Nombre"
|
||||
note: "Nota"
|
||||
@@ -4169,7 +4170,6 @@ es:
|
||||
nothing_to_preview: "Nada para previsualizar"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Versión Bloqueada"
|
||||
property: "Propiedad"
|
||||
errors:
|
||||
code_400: "Solicitud errónea: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ et:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Perekonnanimi"
|
||||
login: "Kasutajanimi"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-posti aadress"
|
||||
name: "Nimi"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ et:
|
||||
nothing_to_preview: "Eelvaateks pole midagi näidata"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ eu:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ eu:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ fa:
|
||||
journal_notes: "Comment"
|
||||
lastname: "نام خانوادگی"
|
||||
login: "نام كاربري"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "نام"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ fa:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "قفل نگارش"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ fi:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Sukunimi"
|
||||
login: "Käyttäjätunnus"
|
||||
lock_version: "Lock version"
|
||||
mail: "Sähköposti"
|
||||
name: "Nimi"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ fi:
|
||||
nothing_to_preview: "Ei esikatseltavaa"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ fil:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Huling pangalan"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Pangalan"
|
||||
note: "Note"
|
||||
@@ -4171,7 +4172,6 @@ fil:
|
||||
nothing_to_preview: "Walang mai-preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Nakakandadong bersyon"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1627,6 +1627,7 @@ fr:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Nom de famille"
|
||||
login: "Nom d'utilisateur"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Nom"
|
||||
note: "Note"
|
||||
@@ -4170,7 +4171,6 @@ fr:
|
||||
nothing_to_preview: "Rien à afficher en apperçu"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Version Lock"
|
||||
property: "Propriété"
|
||||
errors:
|
||||
code_400: "Mauvaise requête : %{message}"
|
||||
|
||||
@@ -1669,6 +1669,7 @@ he:
|
||||
journal_notes: "Comment"
|
||||
lastname: "שם משפחה"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "אימייל"
|
||||
name: "שם"
|
||||
note: "Note"
|
||||
@@ -4257,7 +4258,6 @@ he:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "גרסת מנעול"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1627,6 +1627,7 @@ hi:
|
||||
journal_notes: "Comment"
|
||||
lastname: "अंतिम नाम"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "ईमेल"
|
||||
name: "नाम"
|
||||
note: "Note"
|
||||
@@ -4171,7 +4172,6 @@ hi:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1649,6 +1649,7 @@ hr:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Prezime"
|
||||
login: "Korisničko ime"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Naziv"
|
||||
note: "Note"
|
||||
@@ -4215,7 +4216,6 @@ hr:
|
||||
nothing_to_preview: "Ne postoji zapis za pregled"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Zaključavanje verzije"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1628,6 +1628,7 @@ hu:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Vezetéknév"
|
||||
login: "Felhasználónév"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Név"
|
||||
note: "Note"
|
||||
@@ -4171,7 +4172,6 @@ hu:
|
||||
nothing_to_preview: "Nincs előnézet"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lezárt változat"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Hibás hívás %{message}"
|
||||
|
||||
@@ -1605,6 +1605,7 @@ id:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Nama belakang"
|
||||
login: "Nama pengguna"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Nama"
|
||||
note: "Note"
|
||||
@@ -4124,7 +4125,6 @@ id:
|
||||
nothing_to_preview: "Tidak ada pre-view"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Properti"
|
||||
errors:
|
||||
code_400: "Permintaan buruk: %{message}"
|
||||
|
||||
@@ -1626,6 +1626,7 @@ it:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Cognome"
|
||||
login: "Nome utente"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Nome"
|
||||
note: "Nota"
|
||||
@@ -4170,7 +4171,6 @@ it:
|
||||
nothing_to_preview: "Niente in anteprima"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Blocca Versione"
|
||||
property: "Proprietà"
|
||||
errors:
|
||||
code_400: "Richiesta non valida: %{message}"
|
||||
|
||||
@@ -1607,6 +1607,7 @@ ja:
|
||||
journal_notes: "Comment"
|
||||
lastname: "苗字"
|
||||
login: "ユーザー名"
|
||||
lock_version: "Lock version"
|
||||
mail: "電子メールアドレス"
|
||||
name: "名称"
|
||||
note: "Note"
|
||||
@@ -4128,7 +4129,6 @@ ja:
|
||||
nothing_to_preview: "プレビューできるものは何もありません。"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "ロックバージョン"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "不正なリクエスト: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ ka:
|
||||
journal_notes: "Comment"
|
||||
lastname: "გვარი"
|
||||
login: "მომხმარებლის სახელი"
|
||||
lock_version: "Lock version"
|
||||
mail: "ელფოსტა"
|
||||
name: "სახელი"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ ka:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "ვერსიის ჩაკეტვა"
|
||||
property: "თვისება"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ kk:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ kk:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1609,6 +1609,7 @@ ko:
|
||||
journal_notes: "Comment"
|
||||
lastname: "성"
|
||||
login: "사용자 이름"
|
||||
lock_version: "Lock version"
|
||||
mail: "이메일"
|
||||
name: "이름"
|
||||
note: "메모"
|
||||
@@ -4128,7 +4129,6 @@ ko:
|
||||
nothing_to_preview: "미리 볼 내용 없음"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "잠금 버전"
|
||||
property: "속성"
|
||||
errors:
|
||||
code_400: "잘못된 요청: %{message}"
|
||||
|
||||
@@ -1666,6 +1666,7 @@ lt:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Pavardė"
|
||||
login: "Naudotojas"
|
||||
lock_version: "Lock version"
|
||||
mail: "El. paštas"
|
||||
name: "Vardas"
|
||||
note: "Note"
|
||||
@@ -4250,7 +4251,6 @@ lt:
|
||||
nothing_to_preview: "Nėra ką rodyti"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Užrakto versija"
|
||||
property: "Savybė"
|
||||
errors:
|
||||
code_400: "Bloga užklausa: %{message}"
|
||||
|
||||
@@ -1649,6 +1649,7 @@ lv:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Uzvārds"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-Pasts"
|
||||
name: "Nosaukums"
|
||||
note: "Note"
|
||||
@@ -4215,7 +4216,6 @@ lv:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ mn:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ mn:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1607,6 +1607,7 @@ ms:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Nama akhir"
|
||||
login: "Nama pengguna"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mel"
|
||||
name: "Nama"
|
||||
note: "Nota"
|
||||
@@ -4128,7 +4129,6 @@ ms:
|
||||
nothing_to_preview: "Tiada kandungan untuk dipreviu"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Versi Terkunci "
|
||||
property: "Ciri-ciri"
|
||||
errors:
|
||||
code_400: "Ralat Permintaan: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ ne:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ ne:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1625,6 +1625,7 @@ nl:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Achternaam"
|
||||
login: "Gebruikersnaam"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Naam"
|
||||
note: "Opmerking"
|
||||
@@ -4167,7 +4168,6 @@ nl:
|
||||
nothing_to_preview: "Niets om te bekijken"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Vergrendel versie"
|
||||
property: "Eigendom"
|
||||
errors:
|
||||
code_400: "Verkeerd verzoek: %{message}"
|
||||
|
||||
@@ -1628,6 +1628,7 @@
|
||||
journal_notes: "Comment"
|
||||
lastname: "Etternavn"
|
||||
login: "Brukernavn"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-post"
|
||||
name: "Navn"
|
||||
note: "Note"
|
||||
@@ -4172,7 +4173,6 @@
|
||||
nothing_to_preview: "Ingenting å forhåndsvise"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Låst versjon"
|
||||
property: "Egenskap"
|
||||
errors:
|
||||
code_400: "Feil forespørsel: %{message}"
|
||||
|
||||
@@ -1666,6 +1666,7 @@ pl:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Nazwisko"
|
||||
login: "Nazwa użytkownika"
|
||||
lock_version: "Lock version"
|
||||
mail: "Adres e-mail"
|
||||
name: "Nazwa"
|
||||
note: "Uwaga"
|
||||
@@ -4251,7 +4252,6 @@ pl:
|
||||
nothing_to_preview: "Nie ma nic do podglądu"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Wersja zablokowana"
|
||||
property: "Własność"
|
||||
errors:
|
||||
code_400: "Nieprawidłowe żądanie: %{message}"
|
||||
|
||||
@@ -1626,6 +1626,7 @@ pt-BR:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Sobrenome"
|
||||
login: "Nome de usuário"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Nome"
|
||||
note: "Nota"
|
||||
@@ -4168,7 +4169,6 @@ pt-BR:
|
||||
nothing_to_preview: "Nada para visualizar"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Bloquear versão"
|
||||
property: "Propriedade"
|
||||
errors:
|
||||
code_400: "Requisição inválida: %{message}"
|
||||
|
||||
@@ -1626,6 +1626,7 @@ pt-PT:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Último nome"
|
||||
login: "Nome do Utilizador"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Nome"
|
||||
note: "Nota"
|
||||
@@ -4167,7 +4168,6 @@ pt-PT:
|
||||
nothing_to_preview: "Nada para Visualizar"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Versão de bloqueio"
|
||||
property: "Propriedade"
|
||||
errors:
|
||||
code_400: "Pedido incorreto: %{message}"
|
||||
|
||||
@@ -1649,6 +1649,7 @@ ro:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Nume"
|
||||
login: "Utilizator"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Nume"
|
||||
note: "Note"
|
||||
@@ -4214,7 +4215,6 @@ ro:
|
||||
nothing_to_preview: "Nimic de previzualizat"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Blocare versiune"
|
||||
property: "Proprietate"
|
||||
errors:
|
||||
code_400: "Cerere greșită: %{message}"
|
||||
|
||||
@@ -1667,6 +1667,7 @@ ru:
|
||||
journal_notes: "Комментарий"
|
||||
lastname: "Фамилия"
|
||||
login: "Имя пользователя"
|
||||
lock_version: "Lock version"
|
||||
mail: "Электронная почта"
|
||||
name: "Имя"
|
||||
note: "Заметка"
|
||||
@@ -4251,7 +4252,6 @@ ru:
|
||||
nothing_to_preview: "Нет ничего для предосмотра"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Блокировать этап"
|
||||
property: "Свойство"
|
||||
errors:
|
||||
code_400: "Неверный запрос: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ rw:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ rw:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ si:
|
||||
journal_notes: "Comment"
|
||||
lastname: "අවසාන නම"
|
||||
login: "පරිශීලක නාමය"
|
||||
lock_version: "Lock version"
|
||||
mail: "ඊ-තැපැල්"
|
||||
name: "නම"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ si:
|
||||
nothing_to_preview: "පෙරදසුන් කිරීමට කිසිවක් නැත"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "අගුලු අනුවාදය"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "නරක ඉල්ලීම: %{message}"
|
||||
|
||||
@@ -1669,6 +1669,7 @@ sk:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Priezvisko"
|
||||
login: "Používateľské meno"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-mail"
|
||||
name: "Názov"
|
||||
note: "Note"
|
||||
@@ -4256,7 +4257,6 @@ sk:
|
||||
nothing_to_preview: "Nič na zobrazenie náhľadu"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Uzamknúť verziu"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1668,6 +1668,7 @@ sl:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Priimek"
|
||||
login: "Uporabniško ime"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-pošta"
|
||||
name: "Ime"
|
||||
note: "Note"
|
||||
@@ -4255,7 +4256,6 @@ sl:
|
||||
nothing_to_preview: "Ničesar za predogled"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Zakleni verzijo"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Slaba zahteva: %{message}"
|
||||
|
||||
@@ -1649,6 +1649,7 @@ sr:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4215,7 +4216,6 @@ sr:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ sv:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Efternamn"
|
||||
login: "Användarnamn"
|
||||
lock_version: "Lock version"
|
||||
mail: "E-post"
|
||||
name: "Namn"
|
||||
note: "Note"
|
||||
@@ -4170,7 +4171,6 @@ sv:
|
||||
nothing_to_preview: "Ingenting att förhandsgranska"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lås version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Felaktig begäran: %{message}"
|
||||
|
||||
@@ -1609,6 +1609,7 @@ th:
|
||||
journal_notes: "Comment"
|
||||
lastname: "นามสกุล"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "อีเมล"
|
||||
name: "ชื่อ"
|
||||
note: "Note"
|
||||
@@ -4131,7 +4132,6 @@ th:
|
||||
nothing_to_preview: "ไม่มีอะไรให้แสดงเป็นตัวอย่าง"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1628,6 +1628,7 @@ tr:
|
||||
journal_notes: "Yorum"
|
||||
lastname: "Soyisim"
|
||||
login: "Kullanıcı adı"
|
||||
lock_version: "Lock version"
|
||||
mail: "Eposta"
|
||||
name: "İsim"
|
||||
note: "Not"
|
||||
@@ -4169,7 +4170,6 @@ tr:
|
||||
nothing_to_preview: "Önizlenecek bir şey yok"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Sürümü Kilitle"
|
||||
property: "Özellik"
|
||||
errors:
|
||||
code_400: "Geçersiz istek: %{message}"
|
||||
|
||||
@@ -1664,6 +1664,7 @@ uk:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Прізвище"
|
||||
login: "Ім'я користувача"
|
||||
lock_version: "Lock version"
|
||||
mail: "Електронна пошта"
|
||||
name: "Ім’я"
|
||||
note: "Примітка"
|
||||
@@ -4249,7 +4250,6 @@ uk:
|
||||
nothing_to_preview: "Нічого для перегляду"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Версія замку"
|
||||
property: "Властивість"
|
||||
errors:
|
||||
code_400: "Поганий запит: %{message}"
|
||||
|
||||
@@ -1629,6 +1629,7 @@ uz:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4173,7 +4174,6 @@ uz:
|
||||
nothing_to_preview: "Nothing to preview"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -1609,6 +1609,7 @@ vi:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Họ"
|
||||
login: "Tên người dùng"
|
||||
lock_version: "Lock version"
|
||||
mail: "Thư điện tử"
|
||||
name: "Tên"
|
||||
note: "Note"
|
||||
@@ -4130,7 +4131,6 @@ vi:
|
||||
nothing_to_preview: "Không có gì để xem trước"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Phiên bản khóa"
|
||||
property: "Thuộc tính"
|
||||
errors:
|
||||
code_400: "Yêu cầu không hợp lệ: %{message}"
|
||||
|
||||
@@ -1605,6 +1605,7 @@ zh-CN:
|
||||
journal_notes: "评论"
|
||||
lastname: "姓氏"
|
||||
login: "用户名"
|
||||
lock_version: "Lock version"
|
||||
mail: "电子邮件"
|
||||
name: "名称"
|
||||
note: "备注"
|
||||
@@ -4121,7 +4122,6 @@ zh-CN:
|
||||
nothing_to_preview: "没有什么要预览"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "锁版"
|
||||
property: "属性"
|
||||
errors:
|
||||
code_400: "错误的请求:%{message}"
|
||||
|
||||
@@ -1607,6 +1607,7 @@ zh-TW:
|
||||
journal_notes: "留言"
|
||||
lastname: "姓:"
|
||||
login: "使用者帳號"
|
||||
lock_version: "Lock version"
|
||||
mail: "電子郵件"
|
||||
name: "名稱"
|
||||
note: "備註"
|
||||
@@ -4127,7 +4128,6 @@ zh-TW:
|
||||
nothing_to_preview: "沒有內容可預覽"
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "鎖定版本"
|
||||
property: "屬性"
|
||||
errors:
|
||||
code_400: "錯誤請求:%{message}"
|
||||
|
||||
@@ -1714,6 +1714,7 @@ en:
|
||||
journal_notes: "Comment"
|
||||
lastname: "Last name"
|
||||
login: "Username"
|
||||
lock_version: "Lock version"
|
||||
mail: "Email"
|
||||
name: "Name"
|
||||
note: "Note"
|
||||
@@ -4413,7 +4414,6 @@ en:
|
||||
|
||||
api_v3:
|
||||
attributes:
|
||||
lock_version: "Lock Version"
|
||||
property: "Property"
|
||||
errors:
|
||||
code_400: "Bad request: %{message}"
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//-- copyright
|
||||
// OpenProject is an open source project management software.
|
||||
// Copyright (C) the OpenProject GmbH
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License version 3.
|
||||
//
|
||||
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
// Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
// Copyright (C) 2010-2013 the ChiliProject Team
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; either version 2
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
//
|
||||
// See COPYRIGHT and LICENSE files for more details.
|
||||
//++
|
||||
|
||||
/* jshint expr: true */
|
||||
|
||||
import { waitForAsync } from '@angular/core/testing';
|
||||
import { OpCalendarService } from 'core-app/features/calendar/op-calendar.service';
|
||||
|
||||
describe('OP calendar service', () => {
|
||||
let service:OpCalendarService;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
// This is not a valid constructor call, but since we only want to test a helper method that does not
|
||||
// depend on injected services, we can pass null values here.
|
||||
// @ts-expect-error ignore invalid constructor call since we don't need a completely valid instance
|
||||
service = new OpCalendarService(null, null, null);
|
||||
}));
|
||||
|
||||
describe('stripYearFromDateFormat', () => {
|
||||
it('from dotted syntax', () => {
|
||||
expect(service.stripYearFromDateFormat('DD.MM.YYYY')).toEqual('DD.MM.');
|
||||
});
|
||||
|
||||
it('from slash syntax', () => {
|
||||
expect(service.stripYearFromDateFormat('MM/DD/YYYY')).toEqual('MM/DD');
|
||||
expect(service.stripYearFromDateFormat('DD/MM/YYYY')).toEqual('DD/MM');
|
||||
});
|
||||
|
||||
it('from dash syntax', () => {
|
||||
expect(service.stripYearFromDateFormat('DD-MM-YYYY')).toEqual('DD-MM');
|
||||
expect(service.stripYearFromDateFormat('YYYY-MM-DD')).toEqual('MM-DD');
|
||||
});
|
||||
|
||||
it('from spaced syntax', () => {
|
||||
expect(service.stripYearFromDateFormat('DD MMM YYYY')).toEqual('DD MMM');
|
||||
expect(service.stripYearFromDateFormat('DD MMMM YYYY')).toEqual('DD MMMM');
|
||||
});
|
||||
|
||||
it('from comma syntax', () => {
|
||||
expect(service.stripYearFromDateFormat('MMM DD, YYYY')).toEqual('MMM DD');
|
||||
expect(service.stripYearFromDateFormat('MMMM DD, YYY')).toEqual('MMMM DD');
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -8,6 +8,8 @@ import { WeekdayService } from 'core-app/core/days/weekday.service';
|
||||
import { DayResourceService } from 'core-app/core/state/days/day.service';
|
||||
import { IDay } from 'core-app/core/state/days/day.model';
|
||||
import * as moment from 'moment-timezone';
|
||||
import { ConfigurationService } from 'core-app/core/config/configuration.service';
|
||||
import { DayHeaderContentArg } from '@fullcalendar/core';
|
||||
|
||||
@Injectable()
|
||||
export class OpCalendarService extends UntilDestroyedMixin {
|
||||
@@ -18,6 +20,7 @@ export class OpCalendarService extends UntilDestroyedMixin {
|
||||
constructor(
|
||||
readonly weekdayService:WeekdayService,
|
||||
readonly dayService:DayResourceService,
|
||||
readonly configurationService:ConfigurationService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
@@ -31,7 +34,7 @@ export class OpCalendarService extends UntilDestroyedMixin {
|
||||
this.resizeObs = new ResizeObserver(() => this.resize$.next());
|
||||
}
|
||||
|
||||
this.resizeObs.observe(v.nativeElement);
|
||||
this.resizeObs.observe(v.nativeElement as Element);
|
||||
}
|
||||
|
||||
applyNonWorkingDay({ date }:{ date?:Date }, nonWorkingDays:IDay[]):string[] {
|
||||
@@ -42,4 +45,29 @@ export class OpCalendarService extends UntilDestroyedMixin {
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
dayHeaderContent(event:DayHeaderContentArg):string {
|
||||
// When the user did not configure a custom date format, we can always return the default content for the
|
||||
// fullcalendar day header.
|
||||
if (!this.configurationService.dateFormatPresent()) {
|
||||
return event.text;
|
||||
}
|
||||
|
||||
// Additionally, we must use the default in dayGridMonth view, as it displays the day of the week:
|
||||
if (event.view.type === 'dayGridMonth') {
|
||||
return event.text;
|
||||
}
|
||||
|
||||
// We are not in month grid view and there is a date format configured => return a formatted date according to
|
||||
// the settings. Prefix the day of the week name for better readability.
|
||||
const configuredDateFormat = this.configurationService.dateFormat();
|
||||
const formatWithoutYear = this.stripYearFromDateFormat(configuredDateFormat);
|
||||
const utcDate = moment(event.date).utc();
|
||||
|
||||
return utcDate.format(`ddd ${formatWithoutYear}`);
|
||||
}
|
||||
|
||||
stripYearFromDateFormat(format:string):string {
|
||||
return format.replace(/(\/|-|,?\s?)Y{3,4}$/, '').replace(/^Y{4}-/, '');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
if (this.isMilestone(workPackage)) {
|
||||
return workPackage.date;
|
||||
}
|
||||
return workPackage[`${type}Date`] as string;
|
||||
return workPackage[`${type}Date`];
|
||||
}
|
||||
|
||||
isMilestone(workPackage:WorkPackageResource):boolean {
|
||||
@@ -133,11 +133,13 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
|
||||
warnOnTooManyResults(collection:WorkPackageCollectionResource, isStatic = false):void {
|
||||
if (collection.count < collection.total) {
|
||||
this.tooManyResultsText = this.I18n.t('js.calendar.too_many',
|
||||
this.tooManyResultsText = this.I18n.t(
|
||||
'js.calendar.too_many',
|
||||
{
|
||||
count: collection.total,
|
||||
max: OpWorkPackagesCalendarService.MAX_DISPLAYED,
|
||||
});
|
||||
},
|
||||
);
|
||||
} else {
|
||||
this.tooManyResultsText = null;
|
||||
}
|
||||
@@ -180,7 +182,6 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
// 3. We are already loaded and are refetching data (for changed dates, e.g.)
|
||||
let queryProps:string|undefined;
|
||||
|
||||
|
||||
if (this.initializingWithQuery) {
|
||||
// This is the case on initially loading the calendar with a query_id present in the url params but no
|
||||
// query props to overwrite the query settings.
|
||||
@@ -201,7 +202,7 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
// There might also be a query_id but the settings persisted in it are overwritten by the props.
|
||||
if (this.urlParams.query_props) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const oldQueryProps:{ [key:string]:unknown } = JSON.parse(this.urlParams.query_props);
|
||||
const oldQueryProps:{ [key:string]:unknown } = JSON.parse(this.urlParams.query_props as string);
|
||||
|
||||
// Update the date period of the calendar in the filter
|
||||
const newQueryProps = {
|
||||
@@ -231,9 +232,9 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
|
||||
return Promise.all([this
|
||||
.wpListService
|
||||
.fromQueryParams({ query_id: queryId, query_props: queryProps, }, projectIdentifier || undefined)
|
||||
.fromQueryParams({ query_id: queryId, query_props: queryProps }, projectIdentifier || undefined)
|
||||
.toPromise(),
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
public generateQueryProps(
|
||||
@@ -360,6 +361,7 @@ export class OpWorkPackagesCalendarService extends UntilDestroyedMixin {
|
||||
dayGridClassNames: (data:DayCellContentArg) => this.calendarService.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
slotLaneClassNames: (data:SlotLaneContentArg) => this.calendarService.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
slotLabelClassNames: (data:SlotLabelContentArg) => this.calendarService.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
dayHeaderContent: (data:DayHeaderContentArg) => this.calendarService.dayHeaderContent(data),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -184,6 +184,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
dayGridClassNames: (data:DayCellContentArg) => this.calendar.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
slotLaneClassNames: (data:SlotLaneContentArg) => this.calendar.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
slotLabelClassNames: (data:SlotLabelContentArg) => this.calendar.applyNonWorkingDay(data, this.nonWorkingDays),
|
||||
dayHeaderContent: (data:DayHeaderContentArg) => this.calendar.dayHeaderContent(data),
|
||||
};
|
||||
|
||||
private initializeCalendar(displayedDayss:DisplayedDays) {
|
||||
@@ -308,7 +309,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
return entries.map((entry) => {
|
||||
let start:Moment;
|
||||
let end:Moment;
|
||||
const hours = this.timezone.toHours(entry.hours) * this.scaleRatio;
|
||||
const hours = this.timezone.toHours(entry.hours as string) * this.scaleRatio;
|
||||
const spentOn = entry.spentOn;
|
||||
|
||||
if (hoursDistribution[spentOn]) {
|
||||
@@ -347,7 +348,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
const dateSums:{ [key:string]:number } = {};
|
||||
|
||||
entries.forEach((entry) => {
|
||||
const hours = this.timezone.toHours(entry.hours);
|
||||
const hours = this.timezone.toHours(entry.hours as string);
|
||||
const spentOn = entry.spentOn;
|
||||
|
||||
if (dateSums[spentOn]) {
|
||||
@@ -421,7 +422,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
|
||||
private dispatchEventClick(event:CalendarViewEvent):void {
|
||||
if (event.event.extendedProps.entry) {
|
||||
this.editEvent(event.event.extendedProps.entry);
|
||||
this.editEvent(event.event.extendedProps.entry as TimeEntryResource);
|
||||
} else if (event.el.classList.contains(ADD_ENTRY_CLASS_NAME) && !event.el.classList.contains(ADD_ENTRY_PROHIBITED_CLASS_NAME)) {
|
||||
this.addEvent(moment(event.event.startStr));
|
||||
}
|
||||
@@ -535,7 +536,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
const schema = (await this.schemaCache.ensureLoaded(entry as TimeEntryResource)) as TimeEntrySchema;
|
||||
|
||||
jQuery(event.el).tooltip({
|
||||
content: this.tooltipContentString(event.event.extendedProps.entry, schema),
|
||||
content: this.tooltipContentString(event.event.extendedProps.entry as TimeEntryResource, schema),
|
||||
items: '.fc-event',
|
||||
close() {
|
||||
jQuery('.ui-helper-hidden-accessible').remove();
|
||||
@@ -555,11 +556,11 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
private prependDuration(event:CalendarViewEvent):void {
|
||||
const timeEntry = event.event.extendedProps.entry as TimeEntryResource;
|
||||
|
||||
if (this.timezone.toHours(timeEntry.hours) < 0.5) {
|
||||
if (this.timezone.toHours(timeEntry.hours as string) < 0.5) {
|
||||
return;
|
||||
}
|
||||
|
||||
const formattedDuration = this.timezone.formattedDuration(timeEntry.hours);
|
||||
const formattedDuration = this.timezone.formattedDuration(timeEntry.hours as string);
|
||||
|
||||
jQuery(event.el)
|
||||
.find('.fc-event-title')
|
||||
@@ -578,7 +579,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
private appendFadeout(event:CalendarViewEvent):void {
|
||||
const timeEntry = event.event.extendedProps.entry as TimeEntryResource;
|
||||
|
||||
if (this.timezone.toHours(timeEntry.hours) < 0.5) {
|
||||
if (this.timezone.toHours(timeEntry.hours as string) < 0.5) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -636,7 +637,7 @@ export class TimeEntryCalendarComponent implements AfterViewInit, OnDestroy {
|
||||
</li>
|
||||
<li class="tooltip--map--item">
|
||||
<span class="tooltip--map--key">${schema.hours.name}:</span>
|
||||
<span class="tooltip--map--value">${this.timezone.formattedDuration(entry.hours)}</span>
|
||||
<span class="tooltip--map--value">${this.timezone.formattedDuration(entry.hours as string)}</span>
|
||||
</li>
|
||||
<li class="tooltip--map--item">
|
||||
<span class="tooltip--map--key">${schema.comment.name}:</span>
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
.fc-non-working-day
|
||||
background: rgb(109 109 109 / 20%)
|
||||
|
||||
.fc-col-header-cell
|
||||
word-break: break-word
|
||||
|
||||
// The days in full calendar are anchor elements which we do not
|
||||
// want to like like actual links
|
||||
.fc-col-header-cell a,
|
||||
|
||||
@@ -107,7 +107,6 @@ module API
|
||||
|
||||
schema :lock_version,
|
||||
type: "Integer",
|
||||
name_source: ->(*) { I18n.t("api_v3.attributes.lock_version") },
|
||||
show_if: ->(*) { @show_lock_version }
|
||||
|
||||
schema :id,
|
||||
|
||||
@@ -122,4 +122,21 @@ RSpec.describe "Calendar Widget", :js, with_settings: { start_of_week: 1 } do
|
||||
work_package.reload
|
||||
expect(work_package.due_date).to eq Time.zone.today.beginning_of_week.next_occurring(:tuesday)
|
||||
end
|
||||
|
||||
context "when looking at the date headers" do
|
||||
let(:next_tuesday) { Time.zone.today.beginning_of_week.next_occurring(:tuesday) }
|
||||
let(:tue_css_selector) { ".fc-day-tue .fc-col-header-cell-cushion" }
|
||||
|
||||
it "shows the default date format" do
|
||||
expected = /Tue #{next_tuesday.month}\/#{next_tuesday.day}/
|
||||
expect(page).to have_css(tue_css_selector, text: expected)
|
||||
end
|
||||
|
||||
context "with a date format configured", with_settings: { date_format: "%d.%m.%Y" } do
|
||||
it "shows the configured date format" do
|
||||
expected = /Tue #{next_tuesday.day.to_s.rjust(2, '0')}\.#{next_tuesday.month.to_s.rjust(2, '0')}\./
|
||||
expect(page).to have_css(tue_css_selector, text: expected)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -94,6 +94,10 @@ RSpec.describe "Work package calendars", :js do
|
||||
expect(page)
|
||||
.to have_no_css ".fc-event-title", text: another_future_work_package.subject
|
||||
|
||||
# The columns are set correctly according to month view.
|
||||
expect(page).to have_css ".fc-day-mon .fc-col-header-cell-cushion", text: "Mon"
|
||||
expect(page).to have_css ".fc-day-tue .fc-col-header-cell-cushion", text: "Tue"
|
||||
|
||||
filters.expect_filter_count 1
|
||||
|
||||
filters.open
|
||||
|
||||
@@ -70,12 +70,12 @@ class MeetingOutcomesController < ApplicationController
|
||||
if call.success?
|
||||
render_base_outcome_component_via_turbo_stream(meeting: @meeting, meeting_agenda_item: @meeting_agenda_item,
|
||||
meeting_outcome: @meeting_outcome, edit: false)
|
||||
update_header_component_via_turbo_stream
|
||||
else
|
||||
render_base_error_in_flash_message_via_turbo_stream(call.errors)
|
||||
update_all_via_turbo_stream
|
||||
end
|
||||
|
||||
update_all_via_turbo_stream
|
||||
|
||||
respond_with_turbo_streams
|
||||
end
|
||||
|
||||
@@ -112,7 +112,6 @@ class MeetingOutcomesController < ApplicationController
|
||||
if call.success?
|
||||
render_base_outcome_component_via_turbo_stream(meeting: @meeting, meeting_agenda_item: @meeting_agenda_item,
|
||||
meeting_outcome: call.result, edit: false)
|
||||
update_header_component_via_turbo_stream
|
||||
else
|
||||
render_base_error_in_flash_message_via_turbo_stream(call.errors)
|
||||
end
|
||||
|
||||
@@ -235,7 +235,7 @@ RSpec.describe API::V3::WorkPackages::Schema::WorkPackageSchemaRepresenter do
|
||||
it_behaves_like "has basic schema properties" do
|
||||
let(:path) { "lockVersion" }
|
||||
let(:type) { "Integer" }
|
||||
let(:name) { I18n.t("api_v3.attributes.lock_version") }
|
||||
let(:name) { I18n.t("attributes.lock_version") }
|
||||
let(:required) { true }
|
||||
let(:writable) { true }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user