mirror of
https://github.com/plankanban/planka.git
synced 2025-12-24 17:25:00 +03:00
feat: Display last updates in About modal
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
"error",
|
||||
{
|
||||
"ignore": [
|
||||
"\\?url$",
|
||||
"\\.svg\\?react$"
|
||||
]
|
||||
}
|
||||
|
||||
84
client/src/assets/docs/whats-new.md
Normal file
84
client/src/assets/docs/whats-new.md
Normal file
@@ -0,0 +1,84 @@
|
||||
## [2.4.0] - 2025-03-22
|
||||
|
||||
### Added
|
||||
|
||||
* Lorem ipsum dolor sit amet consectetur adipiscing elit.
|
||||
* Sed do eiusmod tempor incididunt ut labore et dolore magna.
|
||||
* Ut enim ad minim veniam quis nostrud exercitation ullamco.
|
||||
|
||||
### Changed
|
||||
|
||||
* Duis aute irure dolor in reprehenderit in voluptate velit esse.
|
||||
* Excepteur sint occaecat cupidatat non proident sunt in culpa.
|
||||
|
||||
### Fixed
|
||||
|
||||
* Nulla pariatur consectetur adipiscing elit sed do eiusmod.
|
||||
* Tempor incididunt ut labore et dolore magna aliqua enim.
|
||||
|
||||
---
|
||||
|
||||
## [2.3.2] - 2025-02-18
|
||||
|
||||
### Fixed
|
||||
|
||||
* Minim veniam quis nostrud exercitation ullamco laboris nisi.
|
||||
* Aliquip ex ea commodo consequat duis aute irure dolor.
|
||||
|
||||
---
|
||||
|
||||
## [2.3.0] - 2025-01-29
|
||||
|
||||
### Added
|
||||
|
||||
* Reprehenderit in voluptate velit esse cillum dolore eu fugiat.
|
||||
* Excepteur sint occaecat cupidatat non proident culpa qui officia.
|
||||
|
||||
### Changed
|
||||
|
||||
* Deserunt mollit anim id est laborum sed ut perspiciatis.
|
||||
|
||||
### Deprecated
|
||||
|
||||
* Unde omnis iste natus error sit voluptatem accusantium doloremque.
|
||||
|
||||
---
|
||||
|
||||
## [2.2.0] - 2024-12-14
|
||||
|
||||
### Added
|
||||
|
||||
* Totam rem aperiam eaque ipsa quae ab illo inventore veritatis.
|
||||
* Quasi architecto beatae vitae dicta sunt explicabo nemo.
|
||||
|
||||
### Changed
|
||||
|
||||
* Enim ipsam voluptatem quia voluptas sit aspernatur aut odit.
|
||||
* Consequuntur magni dolores eos qui ratione voluptatem sequi.
|
||||
|
||||
### Fixed
|
||||
|
||||
* Neque porro quisquam est qui dolorem ipsum quia dolor.
|
||||
|
||||
---
|
||||
|
||||
## [2.1.0] - 2024-10-05
|
||||
|
||||
### Added
|
||||
|
||||
* Adipisci velit sed quia non numquam eius modi tempora incidunt.
|
||||
* Ut labore et dolore magnam aliquam quaerat voluptatem neque.
|
||||
|
||||
---
|
||||
|
||||
## [2.0.0] - 2024-08-20
|
||||
|
||||
### Added
|
||||
|
||||
* Porro quisquam est qui dolorem ipsum quia dolor sit amet.
|
||||
* Consectetur adipisci velit sed quia non numquam eius modi.
|
||||
* Tempora incidunt ut labore et dolore magnam aliquam quaerat.
|
||||
|
||||
### Removed
|
||||
|
||||
* Voluptatem neque porro quisquam est qui dolorem ipsum quia.
|
||||
@@ -13,7 +13,9 @@ import { useClosableModal } from '../../../hooks';
|
||||
import TermsPane from './TermsPane';
|
||||
import AboutPane from './AboutPane';
|
||||
|
||||
const InformationModal = React.memo(() => {
|
||||
import styles from './AboutModal.module.scss';
|
||||
|
||||
const AboutModal = React.memo(() => {
|
||||
const dispatch = useDispatch();
|
||||
const [t] = useTranslation();
|
||||
|
||||
@@ -39,7 +41,14 @@ const InformationModal = React.memo(() => {
|
||||
];
|
||||
|
||||
return (
|
||||
<ClosableModal open closeIcon size="small" centered={false} onClose={handleClose}>
|
||||
<ClosableModal
|
||||
open
|
||||
closeIcon
|
||||
size="small"
|
||||
centered={false}
|
||||
className={styles.wrapper}
|
||||
onClose={handleClose}
|
||||
>
|
||||
<ClosableModal.Content>
|
||||
<Tab
|
||||
menu={{
|
||||
@@ -53,4 +62,4 @@ const InformationModal = React.memo(() => {
|
||||
);
|
||||
});
|
||||
|
||||
export default InformationModal;
|
||||
export default AboutModal;
|
||||
@@ -0,0 +1,14 @@
|
||||
/*!
|
||||
* Copyright (c) 2024 PLANKA Software GmbH
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
:global(#app) {
|
||||
.wrapper {
|
||||
margin: 2rem auto;
|
||||
|
||||
@media (width < 926px) {
|
||||
margin: 1rem auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
60
client/src/components/common/AboutModal/AboutPane.jsx
Normal file
60
client/src/components/common/AboutModal/AboutPane.jsx
Normal file
@@ -0,0 +1,60 @@
|
||||
/*!
|
||||
* Copyright (c) 2024 PLANKA Software GmbH
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Divider, Header, Image, Loader, Tab } from 'semantic-ui-react';
|
||||
|
||||
import version from '../../../version';
|
||||
import Markdown from '../Markdown';
|
||||
|
||||
import aboutLogo from '../../../assets/images/about-logo.png';
|
||||
import whatsNewUrl from '../../../assets/docs/whats-new.md?url';
|
||||
|
||||
import styles from './AboutPane.module.scss';
|
||||
|
||||
const AboutPane = React.memo(() => {
|
||||
const [t] = useTranslation();
|
||||
const [whatsNew, setWhatsNew] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
async function fetchWhatsNew() {
|
||||
let response;
|
||||
try {
|
||||
response = await fetch(whatsNewUrl);
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
|
||||
const text = await response.text();
|
||||
setWhatsNew(text);
|
||||
}
|
||||
|
||||
fetchWhatsNew();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Tab.Pane attached={false} className={styles.wrapper}>
|
||||
<a href="https://github.com/plankanban/planka" target="_blank" rel="noreferrer">
|
||||
<Image centered src={aboutLogo} size="large" />
|
||||
</a>
|
||||
<div className={styles.version}>{version}</div>
|
||||
<Divider horizontal>
|
||||
<Header as="h4">
|
||||
{t('common.whatsNew', {
|
||||
context: 'title',
|
||||
})}
|
||||
</Header>
|
||||
</Divider>
|
||||
{whatsNew ? (
|
||||
<Markdown>{whatsNew}</Markdown>
|
||||
) : (
|
||||
<Loader active inverted inline="centered" size="small" />
|
||||
)}
|
||||
</Tab.Pane>
|
||||
);
|
||||
});
|
||||
|
||||
export default AboutPane;
|
||||
@@ -6,6 +6,7 @@
|
||||
:global(#app) {
|
||||
.version {
|
||||
font-weight: bold;
|
||||
margin-bottom: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
import InformationModal from './InformationModal';
|
||||
import AboutModal from './AboutModal';
|
||||
|
||||
export default InformationModal;
|
||||
export default AboutModal;
|
||||
@@ -16,7 +16,7 @@ import Toaster from '../Toaster';
|
||||
import Fixed from '../Fixed';
|
||||
import Static from '../Static';
|
||||
import AdministrationModal from '../AdministrationModal';
|
||||
import InformationModal from '../InformationModal';
|
||||
import AboutModal from '../AboutModal';
|
||||
import UserSettingsModal from '../../users/UserSettingsModal';
|
||||
import ProjectBackground from '../../projects/ProjectBackground';
|
||||
import AddProjectModal from '../../projects/AddProjectModal';
|
||||
@@ -63,8 +63,8 @@ const Core = React.memo(() => {
|
||||
modalNode = <AdministrationModal />;
|
||||
|
||||
break;
|
||||
case ModalTypes.INFORMATION:
|
||||
modalNode = <InformationModal />;
|
||||
case ModalTypes.ABOUT:
|
||||
modalNode = <AboutModal />;
|
||||
|
||||
break;
|
||||
case ModalTypes.USER_SETTINGS:
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
/*!
|
||||
* Copyright (c) 2024 PLANKA Software GmbH
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { Image, Tab } from 'semantic-ui-react';
|
||||
|
||||
import version from '../../../version';
|
||||
|
||||
import aboutLogo from '../../../assets/images/about-logo.png';
|
||||
|
||||
import styles from './AboutPane.module.scss';
|
||||
|
||||
const AboutPane = React.memo(() => (
|
||||
<Tab.Pane attached={false} className={styles.wrapper}>
|
||||
<a href="https://github.com/plankanban/planka" target="_blank" rel="noreferrer">
|
||||
<Image centered src={aboutLogo} size="large" />
|
||||
</a>
|
||||
<div className={styles.version}>{version}</div>
|
||||
</Tab.Pane>
|
||||
));
|
||||
|
||||
export default AboutPane;
|
||||
@@ -40,8 +40,8 @@ const UserActionsStep = React.memo(({ onClose }) => {
|
||||
onClose();
|
||||
}, [onClose, dispatch]);
|
||||
|
||||
const handleInformationClick = useCallback(() => {
|
||||
dispatch(entryActions.openInformationModal());
|
||||
const handleAboutClick = useCallback(() => {
|
||||
dispatch(entryActions.openAboutModal());
|
||||
onClose();
|
||||
}, [onClose, dispatch]);
|
||||
|
||||
@@ -98,7 +98,7 @@ const UserActionsStep = React.memo(({ onClose }) => {
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
<Menu.Item className={styles.menuItem} onClick={handleInformationClick}>
|
||||
<Menu.Item className={styles.menuItem} onClick={handleAboutClick}>
|
||||
<Icon name="info circle" className={styles.menuItemIcon} />
|
||||
{t('common.aboutApp', {
|
||||
context: 'title',
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
const ADMINISTRATION = 'ADMINISTRATION';
|
||||
const INFORMATION = 'INFORMATION';
|
||||
const ABOUT = 'ABOUT';
|
||||
const USER_SETTINGS = 'USER_SETTINGS';
|
||||
const ADD_PROJECT = 'ADD_PROJECT';
|
||||
const PROJECT_SETTINGS = 'PROJECT_SETTINGS';
|
||||
@@ -13,7 +13,7 @@ const BOARD_ACTIVITIES = 'BOARD_ACTIVITIES';
|
||||
|
||||
export default {
|
||||
ADMINISTRATION,
|
||||
INFORMATION,
|
||||
ABOUT,
|
||||
USER_SETTINGS,
|
||||
ADD_PROJECT,
|
||||
PROJECT_SETTINGS,
|
||||
|
||||
@@ -13,10 +13,10 @@ const openAdministrationModal = () => ({
|
||||
},
|
||||
});
|
||||
|
||||
const openInformationModal = () => ({
|
||||
const openAboutModal = () => ({
|
||||
type: EntryActionTypes.MODAL_OPEN,
|
||||
payload: {
|
||||
type: ModalTypes.INFORMATION,
|
||||
type: ModalTypes.ABOUT,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -68,7 +68,7 @@ const closeModal = () => ({
|
||||
|
||||
export default {
|
||||
openAdministrationModal,
|
||||
openInformationModal,
|
||||
openAboutModal,
|
||||
openUserSettingsModal,
|
||||
openAddProjectModal,
|
||||
openProjectSettingsModal,
|
||||
|
||||
@@ -357,6 +357,7 @@ export default {
|
||||
viewers: 'المشاهدون',
|
||||
visualTaskManagementWithLists: 'إدارة المهام البصرية بالقوائم.',
|
||||
webhooks: 'الويب هوكس',
|
||||
whatsNew_title: 'ما الجديد',
|
||||
withoutBaseGroup: 'بدون مجموعة أساسية',
|
||||
writeComment: 'اكتب تعليقاً...',
|
||||
},
|
||||
|
||||
@@ -372,6 +372,7 @@ export default {
|
||||
viewers: 'Зрители',
|
||||
visualTaskManagementWithLists: 'Визуално управление на задачи със списъци.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Какво еново',
|
||||
withoutBaseGroup: 'Без основна група',
|
||||
writeComment: 'Напишете коментар...',
|
||||
},
|
||||
|
||||
@@ -374,6 +374,7 @@ export default {
|
||||
viewers: 'Observadors',
|
||||
visualTaskManagementWithLists: 'Gestió visual de tasques amb llistes.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Què hi ha de nou',
|
||||
withoutBaseGroup: 'Sense grup base',
|
||||
writeComment: 'Escriu un comentari...',
|
||||
},
|
||||
|
||||
@@ -362,6 +362,7 @@ export default {
|
||||
viewers: 'Diváci',
|
||||
visualTaskManagementWithLists: 'Vizuální správa úkolů pomocí seznamů.',
|
||||
webhooks: 'Webhooky',
|
||||
whatsNew_title: 'Co je nového',
|
||||
withoutBaseGroup: 'Bez základní skupiny',
|
||||
writeComment: 'Napsat komentář...',
|
||||
},
|
||||
|
||||
@@ -368,6 +368,7 @@ export default {
|
||||
viewers: 'Læsere',
|
||||
visualTaskManagementWithLists: 'Visuel opgavestyring med lister.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Hvad er nyt',
|
||||
withoutBaseGroup: 'Uden standardgruppe',
|
||||
writeComment: 'Skriv en kommentar...',
|
||||
},
|
||||
|
||||
@@ -384,6 +384,7 @@ export default {
|
||||
viewers: 'Betrachter',
|
||||
visualTaskManagementWithLists: 'Visuelle Aufgabenverwaltung mit Listen.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Was ist neu',
|
||||
withoutBaseGroup: 'Ohne Basisgruppe',
|
||||
writeComment: 'Kommentar verfassen...',
|
||||
},
|
||||
|
||||
@@ -388,6 +388,7 @@ export default {
|
||||
viewers: 'Θεατές',
|
||||
visualTaskManagementWithLists: 'Οπτική διαχείριση εργασιών με λίστες.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Τι νέο υπάρχει',
|
||||
withoutBaseGroup: 'Χωρίς βασική ομάδα',
|
||||
writeComment: 'Γράψτε ένα σχόλιο...',
|
||||
},
|
||||
|
||||
@@ -364,6 +364,7 @@ export default {
|
||||
viewers: 'Viewers',
|
||||
visualTaskManagementWithLists: 'Visual task management with lists.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: "What's New",
|
||||
withoutBaseGroup: 'Without base group',
|
||||
writeComment: 'Write a comment...',
|
||||
},
|
||||
|
||||
@@ -359,6 +359,7 @@ export default {
|
||||
viewers: 'Viewers',
|
||||
visualTaskManagementWithLists: 'Visual task management with lists.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: "What's New",
|
||||
withoutBaseGroup: 'Without base group',
|
||||
writeComment: 'Write a comment...',
|
||||
},
|
||||
|
||||
@@ -374,6 +374,7 @@ export default {
|
||||
viewers: 'Observadores',
|
||||
visualTaskManagementWithLists: 'Gestión visual de tareas con listas.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Novedades',
|
||||
withoutBaseGroup: 'Sin grupo base',
|
||||
writeComment: 'Escribe un comentario...',
|
||||
},
|
||||
|
||||
@@ -366,6 +366,7 @@ export default {
|
||||
viewers: 'Vaatajad',
|
||||
visualTaskManagementWithLists: 'Visual tööülesande haldamine nimekirjade abil.',
|
||||
webhooks: 'Webhookid',
|
||||
whatsNew_title: 'Mis on uut',
|
||||
withoutBaseGroup: 'Ilma põhiklassita',
|
||||
writeComment: 'Kirjuta kommentaar...',
|
||||
},
|
||||
|
||||
@@ -368,6 +368,7 @@ export default {
|
||||
viewers: 'بینندگان',
|
||||
visualTaskManagementWithLists: 'مدیریت بصری وظایف با لیستها.',
|
||||
webhooks: 'وبهوکها',
|
||||
whatsNew_title: 'چه چیز جدیدی',
|
||||
withoutBaseGroup: 'بدون گروه پایه',
|
||||
writeComment: 'نظر بنویسید...',
|
||||
},
|
||||
|
||||
@@ -367,6 +367,7 @@ export default {
|
||||
viewers: 'Katselijat',
|
||||
visualTaskManagementWithLists: 'Visuaalinen tehtävien hallinta listoilla.',
|
||||
webhooks: 'Webhookit',
|
||||
whatsNew_title: 'Mitä uutta',
|
||||
withoutBaseGroup: 'Ilman perusryhmää',
|
||||
writeComment: 'Kirjoita kommentti...',
|
||||
},
|
||||
|
||||
@@ -373,6 +373,7 @@ export default {
|
||||
viewers: 'Spectateurs',
|
||||
visualTaskManagementWithLists: 'Management visuel des tâches avec des listes.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Quoi de neuf',
|
||||
withoutBaseGroup: 'Sans groupe de base',
|
||||
writeComment: 'Écrire un commentaire...',
|
||||
},
|
||||
|
||||
@@ -366,6 +366,7 @@ export default {
|
||||
viewers: 'Megtekintők',
|
||||
visualTaskManagementWithLists: 'Vizuális feladatkezelés listákkal.',
|
||||
webhooks: 'Webhook-ok',
|
||||
whatsNew_title: 'Újdonságok',
|
||||
withoutBaseGroup: 'Alapcsoport nélkül',
|
||||
writeComment: 'Írjon egy megjegyzést...',
|
||||
},
|
||||
|
||||
@@ -367,6 +367,7 @@ export default {
|
||||
viewers: 'Penglihat',
|
||||
visualTaskManagementWithLists: 'Manajemen tugas visual dengan daftar.',
|
||||
webhooks: 'Webhook',
|
||||
whatsNew_title: 'Apa yang baru',
|
||||
withoutBaseGroup: 'Tanpa grup dasar',
|
||||
writeComment: 'Tuliskan komentar...',
|
||||
},
|
||||
|
||||
@@ -370,6 +370,7 @@ export default {
|
||||
viewers: 'Visualizzatori',
|
||||
visualTaskManagementWithLists: 'Gestione visiva dei task con liste.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Novità',
|
||||
withoutBaseGroup: 'Senza gruppo base',
|
||||
writeComment: 'Scrivi un commento...',
|
||||
},
|
||||
|
||||
@@ -364,6 +364,7 @@ export default {
|
||||
viewers: 'ビューア',
|
||||
visualTaskManagementWithLists: 'リストによる視覚的タスク管理。',
|
||||
webhooks: 'Webhook',
|
||||
whatsNew_title: '新機能',
|
||||
withoutBaseGroup: 'ベースグループなし',
|
||||
writeComment: 'コメントを書く…',
|
||||
},
|
||||
|
||||
@@ -361,6 +361,7 @@ export default {
|
||||
viewers: '뷰어들',
|
||||
visualTaskManagementWithLists: '목록을 통한 시각적 작업 관리.',
|
||||
webhooks: '웹훅',
|
||||
whatsNew_title: '새로운 소식',
|
||||
withoutBaseGroup: '기본 그룹 없음',
|
||||
writeComment: '댓글 작성...',
|
||||
},
|
||||
|
||||
@@ -370,6 +370,7 @@ export default {
|
||||
viewers: 'Kijkers',
|
||||
visualTaskManagementWithLists: 'Visueel takenbeheer met lijsten.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Wat is er nieuw',
|
||||
withoutBaseGroup: 'Zonder basisgroep',
|
||||
writeComment: 'Schrijf een opmerking...',
|
||||
},
|
||||
|
||||
@@ -367,6 +367,7 @@ export default {
|
||||
viewers: 'Wyświetlający',
|
||||
visualTaskManagementWithLists: 'Wizualne zarządzanie zadaniami z listami.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Co nowego',
|
||||
withoutBaseGroup: 'Bez grupy bazowej',
|
||||
writeComment: 'Napisz komentarz...',
|
||||
},
|
||||
|
||||
@@ -370,6 +370,7 @@ export default {
|
||||
viewers: 'Visualizadores',
|
||||
visualTaskManagementWithLists: 'Gerenciamento visual de tarefas com listas.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Novidades',
|
||||
withoutBaseGroup: 'Sem grupo básico',
|
||||
writeComment: 'Escreva um comentário...',
|
||||
},
|
||||
|
||||
@@ -373,6 +373,7 @@ export default {
|
||||
viewers: 'Visualizadores',
|
||||
visualTaskManagementWithLists: 'Gestão visual de tarefas com listas.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Novidades',
|
||||
withoutBaseGroup: 'Sem grupo base',
|
||||
writeComment: 'Escreva um comentário...',
|
||||
},
|
||||
|
||||
@@ -367,6 +367,7 @@ export default {
|
||||
viewers: 'Vizualizatori',
|
||||
visualTaskManagementWithLists: 'Gestionarea vizuală a sarcinilor cu liste.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Ce este nou',
|
||||
withoutBaseGroup: 'Fără grup de bază',
|
||||
writeComment: 'Scrie un comentariu...',
|
||||
},
|
||||
|
||||
@@ -369,6 +369,7 @@ export default {
|
||||
viewers: 'Читатели',
|
||||
visualTaskManagementWithLists: 'Визуальное управление задачами с помощью списков.',
|
||||
webhooks: 'Веб-хуки',
|
||||
whatsNew_title: 'Что нового',
|
||||
withoutBaseGroup: 'Без основной группы',
|
||||
writeComment: 'Напишите комментарий...',
|
||||
},
|
||||
|
||||
@@ -360,6 +360,7 @@ export default {
|
||||
viewers: 'Prehliadače',
|
||||
visualTaskManagementWithLists: 'Vizuálne riadenie úloh so zoznamami.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Čo je nové',
|
||||
withoutBaseGroup: 'Bez základnej skupiny',
|
||||
writeComment: 'Napísať komentár...',
|
||||
},
|
||||
|
||||
@@ -363,6 +363,7 @@ export default {
|
||||
viewers: 'Прегледачи',
|
||||
visualTaskManagementWithLists: 'Визуелно управљање задацима са списковима.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Шта је ново',
|
||||
withoutBaseGroup: 'Без основне групе',
|
||||
writeComment: 'Напиши коментар...',
|
||||
},
|
||||
|
||||
@@ -365,6 +365,7 @@ export default {
|
||||
viewers: 'Pregledači',
|
||||
visualTaskManagementWithLists: 'Vizuelno upravljanje zadacima sa spiskovima.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Šta je novo',
|
||||
withoutBaseGroup: 'Bez osnovne grupe',
|
||||
writeComment: 'Napiši komentar...',
|
||||
},
|
||||
|
||||
@@ -374,6 +374,7 @@ export default {
|
||||
viewers: 'Visare',
|
||||
visualTaskManagementWithLists: 'Visuell uppgiftshantering med listor.',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Vad är nytt',
|
||||
withoutBaseGroup: 'Utan basgrupp',
|
||||
writeComment: 'Skriv en kommentar...',
|
||||
},
|
||||
|
||||
@@ -370,6 +370,7 @@ export default {
|
||||
viewers: 'Görüntüleyiciler',
|
||||
visualTaskManagementWithLists: 'Listelerle görsel görev yönetimi.',
|
||||
webhooks: "Webhook'lar",
|
||||
whatsNew_title: 'Yenilikler',
|
||||
withoutBaseGroup: 'Temel grup olmadan',
|
||||
writeComment: 'Yorum yazın...',
|
||||
},
|
||||
|
||||
@@ -365,6 +365,7 @@ export default {
|
||||
viewers: 'Переглядачі',
|
||||
visualTaskManagementWithLists: 'Візуальне управління завданнями за допомогою списків.',
|
||||
webhooks: 'Вебхуки',
|
||||
whatsNew_title: 'Що нового',
|
||||
withoutBaseGroup: 'Без базової групи',
|
||||
writeComment: 'Написати коментар...',
|
||||
},
|
||||
|
||||
@@ -363,6 +363,7 @@ export default {
|
||||
viewers: "Ko'ruvchilar",
|
||||
visualTaskManagementWithLists: "Ro'yxatlar bilan vizual vazifa boshqaruvi.",
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: 'Nima yangi',
|
||||
withoutBaseGroup: 'Asosiy guruhsiz',
|
||||
writeComment: 'Izoh yozish...',
|
||||
},
|
||||
|
||||
@@ -340,6 +340,7 @@ export default {
|
||||
viewers: '查看者',
|
||||
visualTaskManagementWithLists: '使用列表进行可视化任务管理。',
|
||||
webhooks: 'Webhooks',
|
||||
whatsNew_title: '新功能',
|
||||
withoutBaseGroup: '无基础组',
|
||||
writeComment: '编写评论...',
|
||||
},
|
||||
|
||||
@@ -340,6 +340,7 @@ export default {
|
||||
viewers: '檢視者',
|
||||
visualTaskManagementWithLists: '使用列表進行視覺化任務管理。',
|
||||
webhooks: 'Webhook',
|
||||
whatsNew_title: '最新消息',
|
||||
withoutBaseGroup: '無基礎群組',
|
||||
writeComment: '編寫評論...',
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
module.exports.up = async (knex) => {
|
||||
await knex.raw(`
|
||||
CREATE EXTENSION pg_trgm;
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||
|
||||
CREATE SEQUENCE next_id_seq;
|
||||
CREATE FUNCTION next_id(OUT id BIGINT) AS $$
|
||||
|
||||
7
server/package-lock.json
generated
7
server/package-lock.json
generated
@@ -432,7 +432,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.726.0.tgz",
|
||||
"integrity": "sha512-5JzTX9jwev7+y2Jkzjz0pd1wobB5JQfPOQF3N2DrJ5Pao0/k6uRYwE4NqB0p0HlGrMTDm7xNq7OSPPIPG575Jw==",
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "5.2.0",
|
||||
"@aws-crypto/sha256-js": "5.2.0",
|
||||
@@ -486,7 +485,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.726.1.tgz",
|
||||
"integrity": "sha512-qh9Q9Vu1hrM/wMBOBIaskwnE4GTFaZu26Q6WHwyWNfj7J8a40vBxpW16c2vYXHLBtwRKM1be8uRLkmDwghpiNw==",
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "5.2.0",
|
||||
"@aws-crypto/sha256-js": "5.2.0",
|
||||
@@ -2761,7 +2759,6 @@
|
||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -4527,7 +4524,6 @@
|
||||
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
@@ -4614,7 +4610,6 @@
|
||||
"integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"eslint-config-prettier": "bin/cli.js"
|
||||
},
|
||||
@@ -4678,7 +4673,6 @@
|
||||
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@rtsao/scc": "^1.1.0",
|
||||
"array-includes": "^3.1.9",
|
||||
@@ -8492,7 +8486,6 @@
|
||||
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user