41 Commits
Author SHA1 Message Date
jakob.scheidandGitea f29658ce61 Merge pull request 'Chore: prepare release 0.1.0' (#189) from chore/prepare-1-0-0 into main
Deploy on dev / Deploy on dev (push) Successful in 41s
Deploy on production / Deploy on production (release) Skipped
Deploy on staging / Deploy on staging (release) Successful in 44s
Reviewed-on: #189
Reviewed-by: Jakob Gregory
2026-08-09 19:27:28 +02:00
jakob.scheid cdb00f7be0 chore(cd): add workflow to deploy on production environment 2026-08-09 19:26:23 +02:00
jakob.scheid 68f0faaa28 chore(cd): add workflow to deploy on staging environment 2026-08-09 19:25:50 +02:00
jakob.scheid 2b730506ee chore: update Node.js project version information 2026-08-09 18:02:36 +02:00
jakob.scheid a2f3313ea0 docs(changelog): mark changelog section as 0.1.0 2026-08-09 18:01:46 +02:00
jakob.scheid e893c213b0 docs(changelog): fix typo in changelog 2026-08-09 17:59:00 +02:00
jakob.scheid a6b9c439bd docs(changelog): complete changelog 2026-08-09 17:58:40 +02:00
jakob.scheidandGitea 168cdc96c9 Merge pull request 'Feat: remove placeholder slogan' (#188) from feature/remove-placeholder-slogan into main
Deploy on dev / Deploy on dev (push) Successful in 42s
Reviewed-on: #188
Reviewed-by: Jakob Gregory
2026-08-09 14:33:46 +02:00
jakob.scheid bed6bb655e refactor(i18n): remove unused slogan translation 2026-08-09 13:16:12 +02:00
jakob.scheid 220127125b feat: remove placeholder slogan 2026-08-09 13:16:04 +02:00
jakob.scheidandGitea 0abad9a144 Merge pull request 'Style: make code style consistent' (#186) from style/make-code-style-consistent into main
Deploy on dev / Deploy on dev (push) Successful in 48s
Reviewed-on: #186
Reviewed-by: Jakob Gregory
2026-08-09 13:09:54 +02:00
jakob.scheidandGitea 007b46223a refactor(search): move search view to search feature directory for consistency 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea aecce32842 style: format code using Prettier 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 6e0c14ac48 chore(format): set up Prettier 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 32a77bbcf0 fix(settings): add :key to sidebar section links 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 0a7bf94c4c refactor: always use shorthand object properties 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea e1dab8a4c7 refactor(icons): fix typo
Used 'icon' instead of 'Icon'.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 034256e81b refactor(icons): rename Icon to UIIcon
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 049857fe91 refactor(search)!: rename Searchbar to SearchBar
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea bf79f25a33 refactor(footer)!: rename Footer to AppFooter
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 8fe3d9ad61 refactor(nav)!: rename Navbar to AppNavbar
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 79b508dcf4 refactor(settings)!: rename Selection to SettingsSelection
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 9ef4077916 refactor(settings)!: rename Switch to SettingsSwitch
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea c2a4ac77c7 refactor(sidebar)!: rename Sidebar to AppSidebar
Vue.js components should have multi-word names.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 7262024b78 refactor: avoid asynchronous functions without await 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 870a26d766 feat(lint): add ESLint rules
Added some ESLint rules (see eslint.config.js).
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea fe0c1cfd94 chore(lint): set up ESLint
Added ESLint dependencies and ESLint configuration.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea a221b5f04f refactor: remove all unused variables 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 1065eb144c style: reorder imports in entrypoint script
Reordered the imports in src/main.js so that they are more clear and
more readable.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea d8b4aa7a1a style: reorder imports alphabetically 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea db3758a54a style(legal): remove function wrapper 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea a086affbef style: ensure named functions 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea dd07392821 style: ensure function expressions
Replaced all function statements with function expressions.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 995e77b69a style: remove unnecessary function whitespace
Remove the unnecessary whitespace between the function name or the
'function' keyword and the opening parenthesis.
2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 6bf315e4b8 style: remove unnecessary whitespace 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea cd1755693b style: remove unnecessary semicolons after blocks 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 722865133d refactor(i18n): fix typo in language switch 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea dc60b968e7 style: ensure semicolons at line ends 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 18ba0f2a70 test: use describe in all test files 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea 7ae4fb9a3f style: ensure newlines at the end of each file 2026-08-09 13:09:39 +02:00
jakob.scheidandGitea f4f8993e87 Merge pull request 'Feat(i18n): make language a setting' (#185) from feature/make-language-a-setting into main
Deploy on dev / Deploy on dev (push) Successful in 39s
Reviewed-on: #185
Reviewed-by: Jakob Gregory
2026-08-07 11:44:32 +02:00
12 changed files with 135 additions and 24 deletions
+62
View File
@@ -0,0 +1,62 @@
# Copyright 2026 Seekra
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Deploy on production
on:
release:
types:
- published
permissions:
contents: read
jobs:
deploy:
if: ${{ !github.event.release.prerelease && !github.event.release.draft }}
name: Deploy on production
runs-on: node-minio
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
set -euo pipefail
npm install
- name: Build
run: |
set -euo pipefail
npm run build
- name: Set alias
run: mc alias set minio ${{ vars.S3_PROD_URL }} ${{ secrets.S3_PROD_ACCESS_KEY }} ${{ secrets.S3_PROD_SECRET_KEY }}
- name: Upload build artifacts to S3
run: |
set -euo pipefail
BUCKET=${{ vars.S3_PROD_BUCKET_NAME }}
BUILD_ID=$(date +%s)-$(git rev-parse --short HEAD)
echo "Build ID: $BUILD_ID"
mc cp --recursive ./dist/ "minio/$BUCKET/builds/$BUILD_ID/"
echo "Copied files"
echo "$BUILD_ID" | mc pipe "minio/$BUCKET/current"
echo "Updated current build pointer"
+62
View File
@@ -0,0 +1,62 @@
# Copyright 2026 Seekra
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Deploy on staging
on:
release:
types:
- published
permissions:
contents: read
jobs:
deploy:
if: ${{ github.event.release.prerelease && !github.event.release.draft }}
name: Deploy on staging
runs-on: node-minio
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
set -euo pipefail
npm install
- name: Build
run: |
set -euo pipefail
npm run build
- name: Set alias
run: mc alias set minio ${{ vars.S3_STAGING_URL }} ${{ secrets.S3_STAGING_ACCESS_KEY }} ${{ secrets.S3_STAGING_SECRET_KEY }}
- name: Upload build artifacts to S3
run: |
set -euo pipefail
BUCKET=${{ vars.S3_STAGING_BUCKET_NAME }}
BUILD_ID=$(date +%s)-$(git rev-parse --short HEAD)
echo "Build ID: $BUILD_ID"
mc cp --recursive ./dist/ "minio/$BUCKET/builds/$BUILD_ID/"
echo "Copied files"
echo "$BUILD_ID" | mc pipe "minio/$BUCKET/current"
echo "Updated current build pointer"
+8 -3
View File
@@ -1,6 +1,6 @@
# Changelog
## [Unreleased]
## [0.1.0] - 2026-08-09
### Added
@@ -8,9 +8,14 @@
- Settings page
- Footer
- Navbar
- Searchbar
- Search bar
- Icons
- Internationalization and some major languages
- Color scheme
- Search results view with error message which indicates that the search is not available
- Settings renderer
- Settings
- Setup scripts
- License script
- Prettier configuration
- ESLint configuration
- Legal notice page
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "frontend",
"version": "0.0.0",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "frontend",
"version": "0.0.0",
"version": "1.0.0",
"dependencies": {
"pinia": "^3.0.4",
"pinia-plugin-persistedstate": "^4.7.1",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "frontend",
"private": true,
"version": "0.0.0",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
-12
View File
@@ -18,9 +18,6 @@ limitations under the License.
import logo from '@/assets/images/logo.svg';
import SearchBar from '@/features/search/components/SearchBar.vue';
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const searchQuery = ref('');
</script>
@@ -29,9 +26,6 @@ const searchQuery = ref('');
<div class="search-content main-content-padding">
<header class="global-header">
<img :src="logo" alt="Seekra" class="header-logo" />
<span class="slogan">
{{ t('slogan') }}
</span>
</header>
<div class="search-container">
@@ -66,12 +60,6 @@ const searchQuery = ref('');
max-width: 100%;
}
.slogan {
margin-top: 1rem;
font-size: small;
line-height: normal;
}
.search-container {
width: 70%;
max-width: 624px;
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Gebaut zum Suchen.",
"settings": {
"input": {
"done": {
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Built to search.",
"settings": {
"input": {
"done": {
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Hecho para buscar.",
"settings": {
"input": {
"done": {
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Conçu pour chercher.",
"settings": {
"input": {
"done": {
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Costruito per cercare.",
"settings": {
"input": {
"done": {
-1
View File
@@ -38,7 +38,6 @@
}
}
},
"slogan": "Feito para pesquisar.",
"settings": {
"input": {
"done": {