mirror of
https://github.com/Spythere/srjp-td2.git
synced 2026-05-03 05:28:12 +00:00
Merge pull request #8 from Spythere/development
Added information bar about migration to a new domain
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
name: Build & Deploy to VPS
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
env:
|
||||||
|
PROJECT_NAME: srjp-td2
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
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: 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
|
||||||
+11
-11
@@ -11,21 +11,21 @@
|
|||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.13.6",
|
||||||
"lucide-vue-next": "^0.503.0",
|
"lucide-vue-next": "^0.577.0",
|
||||||
"pinia": "^2.3.1",
|
"pinia": "^3.0.4",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.30",
|
||||||
"vue-i18n": "10"
|
"vue-i18n": "11.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^5.2.1",
|
"@vitejs/plugin-vue": "^6.0.4",
|
||||||
"@vue/tsconfig": "^0.7.0",
|
"@vue/tsconfig": "^0.9.0",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"postcss": "^8.5.1",
|
"postcss": "^8.5.1",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"typescript": "~5.6.2",
|
"typescript": "~5.9.3",
|
||||||
"vite": "^6.0.5",
|
"vite": "^7.3.1",
|
||||||
"vite-plugin-pwa": "^1.0.0",
|
"vite-plugin-pwa": "^1.2.0",
|
||||||
"vue-tsc": "^2.2.0"
|
"vue-tsc": "^3.2.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+22
@@ -5,9 +5,15 @@
|
|||||||
<UpdatePrompt v-if="needRefresh" @onUpdateClick="updateApp()" />
|
<UpdatePrompt v-if="needRefresh" @onUpdateClick="updateApp()" />
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
|
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<Navbar v-if="!globalStore.fullscreenMode" />
|
<Navbar v-if="!globalStore.fullscreenMode" />
|
||||||
<MainContainer />
|
<MainContainer />
|
||||||
|
|
||||||
|
<!-- Migrate Info -->
|
||||||
|
<transition name="slide-anim">
|
||||||
|
<MigrateInfo v-if="globalStore.isMigrationInfoOpen" />
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -22,6 +28,7 @@ import { useGlobalStore } from './stores/global.store';
|
|||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { useRegisterSW } from 'virtual:pwa-register/vue';
|
import { useRegisterSW } from 'virtual:pwa-register/vue';
|
||||||
import { DataStatus } from './types/api.types';
|
import { DataStatus } from './types/api.types';
|
||||||
|
import MigrateInfo from './components/App/MigrateInfo.vue';
|
||||||
|
|
||||||
const originalDocumentTitle = document.title;
|
const originalDocumentTitle = document.title;
|
||||||
|
|
||||||
@@ -34,6 +41,7 @@ const { needRefresh, updateServiceWorker } = useRegisterSW({ immediate: true });
|
|||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
setupLocale();
|
setupLocale();
|
||||||
setupDarkMode();
|
setupDarkMode();
|
||||||
|
handleMigrationInfo();
|
||||||
setupOfflineMode();
|
setupOfflineMode();
|
||||||
loadStorageTimetables();
|
loadStorageTimetables();
|
||||||
setupAfterPrintClose();
|
setupAfterPrintClose();
|
||||||
@@ -112,4 +120,18 @@ function handleQueries() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleMigrationInfo() {
|
||||||
|
// Show only on old domain
|
||||||
|
if (location.hostname !== 'srjp-td2.web.app' && location.hostname != 'localhost') return;
|
||||||
|
|
||||||
|
const showInfo = localStorage.getItem('showMigrationInfo');
|
||||||
|
|
||||||
|
// Do not show if already acknowledged
|
||||||
|
if (showInfo === 'false') return;
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
globalStore.isMigrationInfoOpen = true;
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<template>
|
||||||
|
<div class="fixed z-10 bottom-0 left-0 p-1 text-center w-full bg-yellow-400 text-black font-bold">
|
||||||
|
<div class="flex justify-center items-center flex-wrap gap-2">
|
||||||
|
<i18n-t keypath="migrate-info.line-1" for="migrate-info" tag="div">
|
||||||
|
<a href="https://srjp-td2.spythere.eu/" target="_blank" class="underline">
|
||||||
|
https://srjp-td2.spythere.eu/
|
||||||
|
</a>
|
||||||
|
</i18n-t>
|
||||||
|
<button
|
||||||
|
class="p-1 bg-zinc-700 text-white rounded-md hover:bg-zinc-500 focus-visible:bg-zinc-500"
|
||||||
|
@click="onAcceptButtonClick"
|
||||||
|
>
|
||||||
|
{{ t('migrate-info.accept-btn') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { useGlobalStore } from '../../stores/global.store';
|
||||||
|
|
||||||
|
const store = useGlobalStore();
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
function onAcceptButtonClick() {
|
||||||
|
store.isMigrationInfoOpen = false;
|
||||||
|
localStorage.setItem('showMigrationInfo', 'false');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -26,6 +26,11 @@
|
|||||||
"relation": "Route"
|
"relation": "Route"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"migrate-info": {
|
||||||
|
"line-1": "Rozkładownik 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!",
|
||||||
|
"accept-btn": "ROGER THAT!"
|
||||||
|
},
|
||||||
|
|
||||||
"storage-empty-header": "ARCHIVED TIMETABLES SEARCH MODE",
|
"storage-empty-header": "ARCHIVED TIMETABLES SEARCH MODE",
|
||||||
"storage-empty-info": "Timetables will be shown here after their archiving.",
|
"storage-empty-info": "Timetables will be shown here after their archiving.",
|
||||||
"storage-preview-title": "ARCHIVED TIMETABLES",
|
"storage-preview-title": "ARCHIVED TIMETABLES",
|
||||||
|
|||||||
@@ -26,6 +26,11 @@
|
|||||||
"relation": "Relacja"
|
"relation": "Relacja"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"migrate-info": {
|
||||||
|
"line-1": "Rozkładownik 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!",
|
||||||
|
"accept-btn": "PRZYJĄŁEM!"
|
||||||
|
},
|
||||||
|
|
||||||
"storage-empty-header": "TRYB WYSZUKIWANA ZAPISANYCH ROZKŁADÓW JAZDY",
|
"storage-empty-header": "TRYB WYSZUKIWANA ZAPISANYCH ROZKŁADÓW JAZDY",
|
||||||
"storage-empty-info": "Użyj funkcji zapisu rozkładu jazdy, aby go tutaj wyświetlić.",
|
"storage-empty-info": "Użyj funkcji zapisu rozkładu jazdy, aby go tutaj wyświetlić.",
|
||||||
"storage-preview-title": "ZAPISANE ROZKŁADY JAZDY",
|
"storage-preview-title": "ZAPISANE ROZKŁADY JAZDY",
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ export const useGlobalStore = defineStore('global', {
|
|||||||
route: ''
|
route: ''
|
||||||
},
|
},
|
||||||
|
|
||||||
showSettings: false
|
showSettings: false,
|
||||||
|
isMigrationInfoOpen: false
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
activeTimetableTrains() {
|
activeTimetableTrains() {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"root":["./src/i18n.ts","./src/main.ts","./src/vite-env.d.ts","./src/mixins/useVehicleMixin.ts","./src/stores/api.store.ts","./src/stores/global.store.ts","./src/types/api.types.ts","./src/types/common.types.ts","./src/utils/dateUtils.ts","./src/utils/trainUtils.ts","./src/App.vue","./src/components/App/MainBottom.vue","./src/components/App/MainContainer.vue","./src/components/App/Navbar.vue","./src/components/App/SettingsCard.vue","./src/components/App/UpdatePrompt.vue","./src/components/Timetable/TimetableContainer.vue","./src/components/Timetable/TimetableContent.vue","./src/components/Timetable/TimetableContentCZ.vue","./src/components/Timetable/TimetableWarnings.vue","./src/components/TimetableSearch/ActiveSearchInput.vue","./src/components/TimetableSearch/JournalSearchInput.vue","./src/components/TimetableSearch/LocalSearchInput.vue","./src/components/TimetableSearch/SearchContainer.vue","./src/components/TimetableSearch/SearchModeActions.vue","./src/components/TimetableViews/ActiveDataView.vue","./src/components/TimetableViews/CurrentTimetableView.vue","./src/components/TimetableViews/JournalStorageView.vue","./src/components/TimetableViews/LocalStorageView.vue"],"version":"5.6.3"}
|
{"root":["./src/i18n.ts","./src/main.ts","./src/vite-env.d.ts","./src/mixins/useVehicleMixin.ts","./src/stores/api.store.ts","./src/stores/global.store.ts","./src/types/api.types.ts","./src/types/common.types.ts","./src/utils/dateUtils.ts","./src/utils/trainUtils.ts","./src/App.vue","./src/components/App/MainBottom.vue","./src/components/App/MainContainer.vue","./src/components/App/MigrateInfo.vue","./src/components/App/Navbar.vue","./src/components/App/SettingsCard.vue","./src/components/App/UpdatePrompt.vue","./src/components/Timetable/TimetableContainer.vue","./src/components/Timetable/TimetableContent.vue","./src/components/Timetable/TimetableContentCZ.vue","./src/components/Timetable/TimetableWarnings.vue","./src/components/TimetableSearch/ActiveSearchInput.vue","./src/components/TimetableSearch/JournalSearchInput.vue","./src/components/TimetableSearch/LocalSearchInput.vue","./src/components/TimetableSearch/SearchContainer.vue","./src/components/TimetableSearch/SearchModeActions.vue","./src/components/TimetableViews/ActiveDataView.vue","./src/components/TimetableViews/CurrentTimetableView.vue","./src/components/TimetableViews/JournalStorageView.vue","./src/components/TimetableViews/LocalStorageView.vue"],"version":"5.9.3"}
|
||||||
@@ -1 +1 @@
|
|||||||
{"root":["./vite.config.ts"],"version":"5.6.3"}
|
{"root":["./vite.config.ts"],"version":"5.9.3"}
|
||||||
Reference in New Issue
Block a user