From 8698a53caf2a8ef9bc19318d2a236b194e8bcd66 Mon Sep 17 00:00:00 2001 From: Spythere Date: Mon, 15 Dec 2025 13:30:45 +0100 Subject: [PATCH 01/30] chore(workflows): changed sending files method to VPS --- .github/workflows/deploy.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0b492f3..3968441 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,22 +1,23 @@ name: Build & Deploy to VPS -'on': + +on: push: branches: - - master + - main + +env: + PROJECT_NAME: pojazdownik-td2 + jobs: build_and_deploy: runs-on: ubuntu-latest - steps: + steps: - uses: actions/checkout@v3 - name: Build the app run: yarn && yarn build - name: Setup SSH key for connection with the server run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa - - name: Remove old assets - run: | - ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} -p 2022 "rm -rf /var/www/pojazdownik/assets" - - name: Send the build files to web server - run: | - scp -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa -P 2022 -r ./dist/* ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/var/www/pojazdownik \ No newline at end of file + mkdir -p ~/.ssh + echo "${{ secrets.VPS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa + - name: Send new files + run: rsync -avP -e "ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa -p 2022" ./dist/ ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/var/www/$PROJECT_NAME --delete From 22b8509ebe2479ce675b4ac267f797612b4e1cad Mon Sep 17 00:00:00 2001 From: Spythere Date: Tue, 3 Mar 2026 02:29:27 +0100 Subject: [PATCH 02/30] refactor(styles): separated fonts and responsiveness to scss files; made global reference only once --- package.json | 12 +- src/App.vue | 9 +- src/components/app/AppModals.vue | 17 +-- src/components/app/MainContainer.vue | 6 +- src/components/cards/MigrationInfoCard.vue | 111 ++++++++++++++++++ src/components/cards/RealStockCard.vue | 10 +- src/components/sections/InputsSection.vue | 10 +- src/components/sections/LogoSection.vue | 2 +- src/components/sections/TabsSection.vue | 4 +- src/components/sections/TrainImageSection.vue | 16 +-- src/components/tabs/NumberGeneratorTab.vue | 9 +- src/components/tabs/StockGeneratorTab.vue | 6 +- src/components/tabs/StorageTab.vue | 2 +- src/components/tabs/WikiListTab.vue | 7 +- src/components/tabs/stock-list/StockList.vue | 42 ++----- .../tabs/stock-list/StockThumbnails.vue | 4 +- .../tabs/stock-list/StockWarnings.vue | 2 +- src/locales/en.json | 11 +- src/locales/pl.json | 10 +- src/store.ts | 1 + src/styles/_fonts.scss | 19 +++ src/styles/_global.scss | 82 +++++-------- src/styles/_responsive.scss | 20 ++++ src/styles/_tab.scss | 4 +- vite.config.ts | 6 +- 25 files changed, 278 insertions(+), 144 deletions(-) create mode 100644 src/components/cards/MigrationInfoCard.vue create mode 100644 src/styles/_fonts.scss create mode 100644 src/styles/_responsive.scss diff --git a/package.json b/package.json index bcc1daa..19b46e6 100644 --- a/package.json +++ b/package.json @@ -13,22 +13,22 @@ }, "dependencies": { "axios": "^1.4.0", - "lucide-vue-next": "^0.552.0", + "lucide-vue-next": "^0.576.0", "pinia": "^3.0.3", "prettier": "^3.0.3", "vue": "^3.2.37", - "vue-i18n": "11.1.12", - "vue-router": "4" + "vue-i18n": "11.2.8", + "vue-router": "5.0.3" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", - "@types/node": "^24.10.0", + "@types/node": "^25.3.3", "@vite-pwa/assets-generator": "^1.0.2", "@vitejs/plugin-vue": "^6.0.1", "@vue/eslint-config-prettier": "^10.2.0", "@vue/eslint-config-typescript": "^14.6.0", - "@vue/tsconfig": "^0.8.1", - "eslint": "^9.39.1", + "@vue/tsconfig": "^0.9.0", + "eslint": "^10.0.2", "eslint-plugin-vue": "^10.5.1", "sass": "^1.59.3", "typescript": "^5.0.2", diff --git a/src/App.vue b/src/App.vue index 194e7ea..29a2bf8 100644 --- a/src/App.vue +++ b/src/App.vue @@ -65,19 +65,22 @@ export default defineComponent({ diff --git a/src/components/app/MainContainer.vue b/src/components/app/MainContainer.vue index bbd73e5..3a924e1 100644 --- a/src/components/app/MainContainer.vue +++ b/src/components/app/MainContainer.vue @@ -20,6 +20,8 @@ export default defineComponent({ diff --git a/src/components/cards/RealStockCard.vue b/src/components/cards/RealStockCard.vue index 8a86aa9..dcda4af 100644 --- a/src/components/cards/RealStockCard.vue +++ b/src/components/cards/RealStockCard.vue @@ -220,6 +220,8 @@ export default defineComponent({ diff --git a/src/components/cards/MigrationInfoCard.vue b/src/components/cards/MigrationInfoCard.vue deleted file mode 100644 index 8d633e4..0000000 --- a/src/components/cards/MigrationInfoCard.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - diff --git a/src/locales/en.json b/src/locales/en.json index d68cd7f..d53f32c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -342,11 +342,10 @@ }, "migrate-info": { "tooltip-content": "Information about migration of\nStacjownik site!", - "header-text": "Attention!", - "paragraph-1-html": "Due to the growing interest in Stacjownik and other applications I have made, as of January 1, 2026, Stacjownik will be permanently moved to a new dedicated domain:", - "paragraph-2-link-text": "https://stacjownik-td2.spythere.eu", - "paragraph-3-text": "This website will no longer receive future updates and after the New Year it will only redirect to the address above.", - "paragraph-4-italic-text": "\"Why are you messing this up? It's been fine for so long!\"", - "paragraph-4-html": "\"Why are you messing this up? It's been fine for so long!\"
The change is mainly caused by the growing website interest and exceeding the free limit plan of the current Google hosting, which forces additional fees for each use of the service above a certain threshold (or otherwise blocks access to it). By moving the site to a dedicated domain (which has already been purchased and is maintained with the financial help of Supporters), I will get rid of unnecessary expenses for a large corporation that can shut down my application at any given time." + "header-text": "Information about the site migration", + "paragraph-1-html": "Due to the migration of all my applications to a common dedicated domain, Pojazdownik is being moved to:", + "paragraph-2-link-text": "https://pojazdownik-td2.spythere.eu/", + "paragraph-3-text": "This website will no longer receive future updates and after March 14th it will only redirect to the address above.", + "confirm-btn": "ROGER THAT!" } } diff --git a/src/locales/pl.json b/src/locales/pl.json index d6d0272..abb7944 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -340,11 +340,7 @@ "warning_military_pn": "PN: transport wojskowy" }, "migrate-info": { - "tooltip-content": "Informacja o migracji\nstrony Stacjownika!", - "header-text": "Uwaga!", - "paragraph-1-html": "Ze względu na coraz większe zainteresowanie Stacjownikiem oraz innymi aplikacjami mojego autorstwa z dniem 1 stycznia 2026r. Stacjownik zostaje permamentnie przeniesiony na nową dedykowaną domenę:", - "paragraph-2-link-text": "https://stacjownik-td2.spythere.eu", - "paragraph-3-text": "Obecna strona nie będzie otrzymywać już przyszłych aktualizacji, a po Nowym Roku będzie jedynie przenosić na powyższy adres.", - "paragraph-4-html": "\"Po co psujesz? Przecież było dobrze tyle czasu!\"
Zmiana podyktowana jest głównie wzrostem zainteresowania stroną i przekraczaniem darmowego limitu obecnego hostingu Google'a, który wymusza płatność za każde użycie serwisu ponad określoną wartość (lub w przeciwnym wypadku blokuje do niego dostęp). Przenosząc stronę na dedykowaną domenę (która jest już wykupiona i utrzymywana dzięki pomocy Wspierających), pozbędę się niepotrzebnego wydatku dla wielkiej korporacji, która w każdej chwili może mi wyłączyć aplikację." + "line-1": "Pojazdownik zostaje przeniesiony na nową domenę - {0}! Możesz korzystać z obecnej strony, jednak nie będzie ona otrzymywać już aktualizacji i w przyszłości zostanie wyłączona!", + "link": "https://pojazdownik-td2.spythere.eu/" } } diff --git a/src/store.ts b/src/store.ts index 4f70133..995980c 100644 --- a/src/store.ts +++ b/src/store.ts @@ -52,7 +52,7 @@ export const useStore = defineStore('store', { vehiclePreviewSrc: '', - isMigrationCardOpen: false, + isMigrationInfoOpen: false, isRandomizerCardOpen: false, isRealStockListCardOpen: false, diff --git a/src/styles/_global.scss b/src/styles/_global.scss index 527884f..5f9f543 100644 --- a/src/styles/_global.scss +++ b/src/styles/_global.scss @@ -53,15 +53,6 @@ a { text-decoration: none; transition: color 250ms; - - &:visited { - color: white; - } - - &:hover, - &:focus { - color: var(--accentColor); - } } select, @@ -329,7 +320,7 @@ hr { } // Vue Transition anims -.slide-top { +.slide-top-anim { &-enter-from, &-leave-to { transform: translateY(-100%); @@ -341,7 +332,19 @@ hr { } } -.card-appear { +.slide-bottom-anim { + &-enter-from, + &-leave-to { + transform: translateY(100%); + } + + &-enter-active, + &-leave-active { + transition: transform 100ms ease-in-out; + } +} + +.card-appear-anim { &-enter-from, &-leave-to { opacity: 0; From cc6215860fb622e24a2ffa3aef33ee6cb06794cb Mon Sep 17 00:00:00 2001 From: Spythere Date: Sat, 7 Mar 2026 00:54:45 +0100 Subject: [PATCH 05/30] chore(workflows): updated pushing changes to new and old branches --- .github/workflows/deploy.yml | 8 ++++---- .github/workflows/firebase-hosting-merge.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3968441..ef62bca 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -11,13 +11,13 @@ env: jobs: build_and_deploy: runs-on: ubuntu-latest - steps: + steps: - uses: actions/checkout@v3 - name: Build the app run: yarn && yarn build - name: Setup SSH key for connection with the server run: | - mkdir -p ~/.ssh - echo "${{ secrets.VPS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa + mkdir -p ~/.ssh + echo "${{ secrets.VPS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa - name: Send new files - run: rsync -avP -e "ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa -p 2022" ./dist/ ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/var/www/$PROJECT_NAME --delete + run: rsync -avP -e "ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa -p 2022" ./dist/ ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/var/www/$PROJECT_NAME --delete \ No newline at end of file diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge.yml index 52a8253..f36e7d9 100644 --- a/.github/workflows/firebase-hosting-merge.yml +++ b/.github/workflows/firebase-hosting-merge.yml @@ -5,7 +5,7 @@ name: Deploy to Firebase Hosting on merge 'on': push: branches: - - main + - main-old jobs: build_and_deploy: runs-on: ubuntu-latest From 70c5ec8d2ef4cb07342507321a0ebeb12d937855 Mon Sep 17 00:00:00 2001 From: Spythere Date: Sat, 7 Mar 2026 00:58:54 +0100 Subject: [PATCH 06/30] fix(locales): missing locale keys --- src/locales/en.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index d53f32c..425f1b6 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -341,11 +341,7 @@ "warning_military_pn": "PN: military transport" }, "migrate-info": { - "tooltip-content": "Information about migration of\nStacjownik site!", - "header-text": "Information about the site migration", - "paragraph-1-html": "Due to the migration of all my applications to a common dedicated domain, Pojazdownik is being moved to:", - "paragraph-2-link-text": "https://pojazdownik-td2.spythere.eu/", - "paragraph-3-text": "This website will no longer receive future updates and after March 14th it will only redirect to the address above.", - "confirm-btn": "ROGER THAT!" + "line-1": "Pojazdownik is being moved to a new domain - {0}! You can still use the current website, but it will no longer be updated and will be shut down in the nearest future!", + "link": "https://pojazdownik-td2.spythere.eu/" } } From 7f9caa510070ea1fbb8ca6a037093e45a3d4fd40 Mon Sep 17 00:00:00 2001 From: Spythere Date: Sat, 7 Mar 2026 18:45:43 +0100 Subject: [PATCH 07/30] chore(migration): added hiding migration info bar after clicking accept button --- src/App.vue | 6 +++--- src/components/app/MigrationInfo.vue | 30 ++++++++++++++++++++++++---- src/locales/en.json | 3 ++- src/locales/pl.json | 3 ++- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/App.vue b/src/App.vue index 138a586..32d350e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -25,7 +25,7 @@ registerSW({ onMounted(() => { loadStockDataFromStorage(); - showMigrationInfo(); + handleMigrationInfo(); store.setupAPIData(); }); @@ -37,9 +37,9 @@ watchEffect(() => { } }); -function showMigrationInfo() { +function handleMigrationInfo() { // Show only on old domain - if (location.hostname !== 'pojazdownik-td2.web.app' && location.hostname !== 'localhost') return; + if (location.hostname !== 'pojazdownik-td2.web.app') return; const showInfo = localStorage.getItem('showMigrationInfo'); diff --git a/src/components/app/MigrationInfo.vue b/src/components/app/MigrationInfo.vue index a5c6b27..66805ea 100644 --- a/src/components/app/MigrationInfo.vue +++ b/src/components/app/MigrationInfo.vue @@ -1,12 +1,26 @@ - + From b3098210abcfe51a7151ac06a439d5b2fc550c88 Mon Sep 17 00:00:00 2001 From: Spythere Date: Sat, 7 Mar 2026 21:28:49 +0100 Subject: [PATCH 10/30] fix(responsive): wrong attribute for mid screen landscape responsiveness --- src/styles/_responsive.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/_responsive.scss b/src/styles/_responsive.scss index ec5df4d..954d52b 100644 --- a/src/styles/_responsive.scss +++ b/src/styles/_responsive.scss @@ -14,7 +14,7 @@ $breakpointSm: 550px; } @mixin midScreenLandscape() { - @media only screen and (orientation: landscape) and (max-device-height: $breakpointMd) { + @media only screen and (orientation: landscape) and (max-width: $breakpointMd) { @content; } } \ No newline at end of file From 01d3d3657f4c67cb197b36b25e552994fff4b1b7 Mon Sep 17 00:00:00 2001 From: Spythere Date: Tue, 17 Mar 2026 22:48:17 +0100 Subject: [PATCH 11/30] hotfix(locales): added usage text for 411V car wagons --- src/locales/en.json | 1 + src/locales/pl.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/locales/en.json b/src/locales/en.json index 9ff4438..078a214 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -314,6 +314,7 @@ "426Z": "solid cargo, vehicles", "426S": "loose cargo", "429W": "weatherproof cargo (coal, ore)", + "411V": "loose cargo (track ballast)", "441V": "hard coal, gravel", "627Z": "containers", "WB117": "gas, gas mixtures", diff --git a/src/locales/pl.json b/src/locales/pl.json index 2bf97a1..f186d86 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -313,6 +313,7 @@ "426S": "drobnica", "426Z": "ładunki skupione, pojazdy", "429W": "towary masowe odporne na warunki atmosferyczne (węgiel, ruda)", + "411V": "drobnica, ładunki sypkie (podsypka do torów)", "441V": "węgiel kamienny, żwir", "627Z": "kontenery", "WB117": "gaz, mieszaniny gazów", From def6190cc132b6be232c04c0a5e494ccb2996581 Mon Sep 17 00:00:00 2001 From: Spythere Date: Fri, 27 Mar 2026 14:18:48 +0100 Subject: [PATCH 12/30] chore(locales): added EDK80 usage --- src/locales/en.json | 3 ++- src/locales/pl.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 078a214..b74cde5 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -331,7 +331,8 @@ "PRSM4": "rail welding car", "Luban_XH_short": "short residential car", "Luban_XH_long": "long residential car", - "Luban_XH_workshop": "workshop car" + "Luban_XH_workshop": "workshop car", + "EDK40": "crane car" }, "cargo-warnings": { "title": "Rolling stock containing extra cargo warnings:", diff --git a/src/locales/pl.json b/src/locales/pl.json index f186d86..a54ec8c 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -330,7 +330,8 @@ "PRSM4": "zgrzewarka torowa", "Luban_XH_short": "krótki wagon mieszkalny", "Luban_XH_long": "długi wagon mieszkalny", - "Luban_XH_workshop": "wagon warsztatowy" + "Luban_XH_workshop": "wagon warsztatowy", + "EDK40": "dźwig kolejowy" }, "cargo-warnings": { "title": "Skład z dodatkowymi uwagami przewozowymi:", From d762cb0536ddeaf01882d3ddc537ed14efce9f49 Mon Sep 17 00:00:00 2001 From: Spythere Date: Fri, 27 Mar 2026 14:19:01 +0100 Subject: [PATCH 13/30] chore(locales): added EDK80 usage --- src/locales/en.json | 2 +- src/locales/pl.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index b74cde5..7c23ae8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -332,7 +332,7 @@ "Luban_XH_short": "short residential car", "Luban_XH_long": "long residential car", "Luban_XH_workshop": "workshop car", - "EDK40": "crane car" + "EDK80": "crane car" }, "cargo-warnings": { "title": "Rolling stock containing extra cargo warnings:", diff --git a/src/locales/pl.json b/src/locales/pl.json index a54ec8c..a05e40f 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -331,7 +331,7 @@ "Luban_XH_short": "krótki wagon mieszkalny", "Luban_XH_long": "długi wagon mieszkalny", "Luban_XH_workshop": "wagon warsztatowy", - "EDK40": "dźwig kolejowy" + "EDK80": "dźwig kolejowy" }, "cargo-warnings": { "title": "Skład z dodatkowymi uwagami przewozowymi:", From 8392e2fa2982e305be87ac097bd498378c3ca4f3 Mon Sep 17 00:00:00 2001 From: Spythere Date: Sat, 28 Mar 2026 14:40:15 +0100 Subject: [PATCH 14/30] refactor(app): refreshed app's look&feel, improved responsiveness, viewport width and elements' alignment --- src/components/app/Footer.vue | 20 +- src/components/app/MainContainer.vue | 14 +- src/components/sections/TabsSection.vue | 42 ++-- src/components/sections/TrainImageSection.vue | 35 +--- src/components/tabs/NumberGeneratorTab.vue | 11 +- src/components/tabs/StockGeneratorTab.vue | 166 +++++++-------- src/components/tabs/StockListTab.vue | 31 +-- src/components/tabs/StorageTab.vue | 17 +- src/components/tabs/WikiListTab.vue | 189 +++++++++--------- src/components/tabs/stock-list/StockList.vue | 20 +- src/styles/_global.scss | 2 +- src/styles/_tab.scss | 2 - src/views/AppContainerView.vue | 23 ++- 13 files changed, 288 insertions(+), 284 deletions(-) diff --git a/src/components/app/Footer.vue b/src/components/app/Footer.vue index c3c5780..7d5d1ed 100644 --- a/src/components/app/Footer.vue +++ b/src/components/app/Footer.vue @@ -1,12 +1,10 @@ @@ -66,6 +58,6 @@ export default defineComponent({ diff --git a/src/components/app/MainContainer.vue b/src/components/app/MainContainer.vue index 3a924e1..5758bc7 100644 --- a/src/components/app/MainContainer.vue +++ b/src/components/app/MainContainer.vue @@ -26,17 +26,14 @@ main { display: grid; gap: 1em; - width: 100%; - max-width: 1350px; + width: 100vw; + max-width: 1600px; - grid-template-columns: 1fr 2fr; - grid-template-rows: auto 360px minmax(300px, 1fr); + grid-template-columns: minmax(380px, 1fr) 3fr; + grid-template-rows: auto 350px minmax(300px, 1fr); - background-color: var(--bgColorDarker); border-radius: 1em; - - min-height: 950px; - + overflow: hidden; padding: 1em; } @@ -45,6 +42,7 @@ main { display: flex; flex-direction: column; gap: 1em; + height: auto; } } diff --git a/src/components/sections/TabsSection.vue b/src/components/sections/TabsSection.vue index 7b8166e..bc1e84d 100644 --- a/src/components/sections/TabsSection.vue +++ b/src/components/sections/TabsSection.vue @@ -1,17 +1,9 @@