diff --git a/README.md b/README.md index 529bf5a0..ca61308e 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,6 @@ You can try out evitaLab with evitaDB demo dataset at [demo.evitadb.io](https:// ## Features -evitaLab is currently in early development stage, and features are being added as we go. - evitaLab allows you to: - [x] inspect schemas @@ -41,6 +39,8 @@ evitaLab allows you to: - [x] manage server (status, tasks, JFR recordings) - [x] manage catalogs and collections +evitaLab is still in active development and new features are being added fairly frequently. + ## Running locally To run evitaLab locally, you can use either of the following ways. @@ -107,7 +107,7 @@ yarn install yarn dev ``` -You can find more indepth info about internal structure of evitaLab in [developer documentation](/documentation/developer/index.md). +You can find more indepth info about internal structure and guidelines of evitaLab in [developer documentation](/documentation/developer/index.md). ## Licence @@ -116,5 +116,4 @@ You can find more indepth info about internal structure of evitaLab in [develope ## Contribution Any contributions are welcome and appreciated. If you would like to contribute to evitaLab, feel free to open an issue -and submit a pull request. However, keep in mind that this project is still in an early development stage and features -may change or be completely removed. +and submit a pull request. diff --git a/documentation/developer/guidelines.md b/documentation/developer/guidelines.md index 56cd334f..af4721ca 100644 --- a/documentation/developer/guidelines.md +++ b/documentation/developer/guidelines.md @@ -31,13 +31,13 @@ export function useService(): Service { } ``` -For component tree dependency injection a `dependecies.ts` file should be created where the components for a feature are +For component tree dependency injection a `dependecies.ts` file should be created where the components for a feature are places with proper injection keys and `provideX` and `injectX` methods so that the keys are not spread across components. ### UI Complex components that access data should adhere to the [Model-View-ViewModel architecture](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel), -preferably in conjunction with the [mediator pattern](https://en.wikipedia.org/wiki/Mediator_pattern) in form of +preferably in conjunction with the [mediator pattern](https://en.wikipedia.org/wiki/Mediator_pattern) in form of custom service for the component to abstract access to generic services. ![Component-service hierarchy](assets/component-service-hierarchy.svg) @@ -56,13 +56,15 @@ VConfirmDialogButton ##### Tab windows +TODO document approach to creating new tab window types and available tooling + Use `VTabToolbar` for toolbars within tab window content. ##### Lists Use `VListItemDivider` for delimiting list items in **each** non-menu lists. -Use `VListItemLazyIterator` if you need client-side with "load next" pagination for lists. Usually useful for +Use `VListItemLazyIterator` if you need client-side with "load next" pagination for lists. Usually useful for optimizing GUI rendering for lots of components. ##### Expansion panels @@ -111,13 +113,13 @@ The `master` branch is for the released versions of the evitaLab only. The `dev` code is at, and to where the feature branches are merged into. Finally, feature branches are created for each issues to fix a bug or create new feature. These are then merged into the `dev` branch for eventual release. -When fixing a bug or creating new feature, **always** create new feature branch from the `dev` branch. Or for hotfixes, +When fixing a bug or creating new feature, **always** create new feature branch from the `dev` branch. Or for hotfixes, create new bug fixing branch from the `master`, but such branch cannot do more than fix a bug in non-breaking way. ### Commits -We use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for Git commit messages and pull requests -for 2 reasons: +We use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for Git commit messages and pull requests +for 2 reasons: - the commits are more transparent - we have GitHub CI/CD hooked onto it, to automatically build and version the evitaLab \ No newline at end of file diff --git a/package.json b/package.json index 92c5af09..16110b24 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@connectrpc/connect-web": "^1.4.0", "@connectrpc/protoc-gen-connect-es": "^1.4.0", "@ddietr/codemirror-themes": "^1.4.2", - "@lukashornych/codemirror-lang-evitaql": "1.2.5", + "@lukashornych/codemirror-lang-evitaql": "1.3.0", "@mdi/font": "7.0.96", "@types/dompurify": "^3.0.4", "@types/keymaster": "^1.6.33", diff --git a/src/modules/backup-viewer/components/BackupViewer.vue b/src/modules/backup-viewer/components/BackupViewer.vue index 064a247c..d839d187 100644 --- a/src/modules/backup-viewer/components/BackupViewer.vue +++ b/src/modules/backup-viewer/components/BackupViewer.vue @@ -14,6 +14,13 @@ import TaskList from '@/modules/task-viewer/components/TaskList.vue' import BackupList from '@/modules/backup-viewer/components/BackupList.vue' import BackupCatalogButton from '@/modules/backup-viewer/components/BackupCatalogButton.vue' import RestoreLocalBackupFileButton from '@/modules/backup-viewer/components/RestoreLocalBackupFileButton.vue' +import { TabComponentExpose } from '@/modules/workspace/tab/model/TabComponentExpose' +import { SubjectPath } from '@/modules/workspace/status-bar/model/subject-path-status/SubjectPath' +import { + ConnectionSubjectPath +} from '@/modules/connection/workspace/status-bar/model/subject-path-status/ConnectionSubjectPath' +import { SubjectPathItem } from '@/modules/workspace/status-bar/model/subject-path-status/SubjectPathItem' +import { BackupViewerTabDefinition } from '@/modules/backup-viewer/model/BackupViewerTabDefinition' const shownTaskStates: TaskState[] = [TaskState.WaitingForPrecondition, TaskState.Running, TaskState.Queued, TaskState.Failed] const shownTaskTypes: string[] = [backupTaskName, restoreTaskName] @@ -22,11 +29,22 @@ const { t } = useI18n() const props = defineProps>() const emit = defineEmits() +defineExpose({ + path(): SubjectPath | undefined { + return new ConnectionSubjectPath( + props.params.connection, + [SubjectPathItem.significant( + BackupViewerTabDefinition.icon(), + t('backupViewer.title') + )] + ) + } +}) const taskListRef = ref() const backupListRef = ref() -const path: List = List([t('backupViewer.title')]) +const title: List = List.of(t('backupViewer.title')) const backupsInPreparationPresent = ref(false) @@ -44,7 +62,7 @@ emit('ready')