Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dots in URL lead to 404 (regression?) #2415

Closed
3 tasks done
Deckluhm opened this issue Mar 7, 2021 · 22 comments · Fixed by #14142
Closed
3 tasks done

Dots in URL lead to 404 (regression?) #2415

Deckluhm opened this issue Mar 7, 2021 · 22 comments · Fixed by #14142

Comments

@Deckluhm
Copy link
Contributor

Deckluhm commented Mar 7, 2021

⚠️ IMPORTANT ⚠️ Please do not ignore this template. If you do, your issue will be closed immediately.

Describe the bug

URLs with dots are leading to a 404 error instead of correctly displaying the corresponding page.

Note that it works fine with a project created with Vue CLI but it doesn't work with a project created with @vite/create-app (both using Vue 3 with Vue Router 4).

I guess this is a regression from #130 but many things have change with Vite 2 (especially project structure) so it's hard for me to identify why the bug reappeared (but with some guidance I'm happy to help).

Reproduction

Run projects and go to http://localhost:3000/just.a.test (or a similar URL).

System Info

  • vite version: 2.0.1 (with @vitejs/plugin-vue 1.1.4)
  • Operating System: Ubuntu 20.10
  • Node version: 15.10.0
  • Package manager (npm/yarn/pnpm) and version: Yarn 1.22.10
@tdxius
Copy link

tdxius commented Mar 19, 2021

I'm experiencing the same issue when using vite version 2.0.5.

@patak-dev
Copy link
Member

There was an issue created about this already here: #2245
But it was closed because of the use of a workaround with a plugin, that may also help you while this is open.
Maybe there is a limitation I'm not aware of, but this looks like a bug, and the other issue was wrongly closed.

@tdxius
Copy link

tdxius commented Mar 20, 2021

Thank you @matias-capeletto. I can confirm that it works with the plugin.

@anncwb anncwb added the has pr label Mar 22, 2021
ChiChou added a commit to ChiChou/grapefruit that referenced this issue Oct 13, 2022
kleinfreund pushed a commit to kumahq/kuma-gui that referenced this issue Nov 29, 2022
* chore(deps): updates all dependencies

Updates all dependencies.

Removes `data-v` attributes from snapshots to avoid minor/patch releases of Kongponents to breaking our tests solely on account of all the `data-v` attributes changing.

Adds workaround plugin for Vite issue vitejs/vite#2415.

* refactor: removes all data-v-* attributes

* refactor: ditch tableDataUtils

Removes the `getTableData` function and its related utilities in favor of direct API calls in components which allows for more precise type inference.

Signed-off-by: Philipp Rudloff <[email protected]>
@TLIQ
Copy link

TLIQ commented Dec 6, 2022

Hi! Did anyone solve problem with serving vite app with dots in several parts like

http://localhost:3000/j.smith/d.porter
I have a combined url with dots, in case of
http://localhost:3000/j.smith
vite-plugin-rewrite-all works great but when I have another one
http://localhost:3000/j.smith/d.porter
I still have a 404 not found

@kleinfreund
Copy link

@TLIQ In short, the workaround provided via the Vite plugin https://www.npmjs.com/package/vite-plugin-rewrite-all seems to work for people.

@silverwind
Copy link

The behaviour seems to be because vite assumes that if the final segment of the path contains ., the user meant to navigate to a file. This is a pretty bad assumption to take because files without . are valid too (although, uncommon) and modern SPAs generally expect all paths except static assets to be routed to index.html so client-side routing can take effect.

One solution could be to check existance in the file system, and if the file is not there, serve index.html, similar to try_files is often configured in nginx to serve prod apps. With such an mechanism, no option like #2634 is necessary as it'll work correctly in all cases, but it will involve one additional stat call on each request.

@uxsoft
Copy link

uxsoft commented Dec 29, 2022

Hi, I have the same problem. In my case, it's PocketBase adding a JWT token to the URL which I have no control over.

@hbshvn
Copy link

hbshvn commented Dec 31, 2022

Hi, I have the same problem. In my case, it's PocketBase adding a JWT token to the URL which I have no control over.

Same problem using URL with JWT

@nicholasdgoodman
Copy link

nicholasdgoodman commented Jan 13, 2023

Hey everyone, ran into the same issue today. If you want a workaround that doesn't involve installing random "fix things" packages such as vite-plugin-rewrite-all, here is a simple middleware function you can add that works for me:

import fs from 'fs';

const dotPathFixPlugin = () => ({
  name: 'dot-path-fix-plugin',
  configureServer: (server) => {
    server.middlewares.use((req,_,next) => {
      const reqPath = req.url.split('?', 2)[0];
      if(!req.url.startsWith('/@') && !fs.existsSync(`.${reqPath}`)) {
          req.url = '/';
      }
      next();
    });
  }
});

Which just checks if the request is a path for an existing file (or special dev server path), and if not just rewrites it to /.

In your vite.config.js file you simply use it:

export default defineConfig({
  plugins: [
    // your other plugins
    dotPathFixPlugin()
  ],
  // rest of the stuff
}

And sure, there are "performance" implications to checking if a file exists, but as long as we are just talking a development server, I cannot see how this is a practical concern. I have to admit I never understood the modern obsession with ultra-fast / hmr, etc. when it means we have to sacrifice application design in favor of a good developer experience.

Edit

I should clarify I am working on a Solid.JS (SPA) application and only currently doing no SSR or SSG. Just in early development mode running a classic SPA.

@silverwind
Copy link

silverwind commented Jan 13, 2023

Hey everyone, ran into the same issue today. If you want a workaround that doesn't involve installing random "fix things" packages such as vite-plugin-rewrite-all, here is a simple middleware function you can add that works for me:

Interesting solution. Can you clarify what the /@ check is for? Is that some vite-internal routing prefix?

And sure, there are "performance" implications to checking if a file exists

It is possible to cache the stat calls to a certain degree, modules like sirv do just that to serve static files. Thought I generally think stat calls are fast enough generally to not be an hindrance.

CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 11, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 12, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 26, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue Mar 26, 2023
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template
justinforlenza added a commit to justinforlenza/romm that referenced this issue Apr 16, 2023
@theoephraim
Copy link

to follow up on @nicholasdgoodman's solution (thanks!), depending on the rest of our setup, you may need to add a few extra checks, for example:

const dotPathFixPlugin = () => ({
  name: "dot-path-fix-plugin",
  configureServer: (server) => {
    server.middlewares.use((req, _, next) => {
      const reqPath = req.url.split("?", 2)[0];
      if (
        !req.url.startsWith("/@") && // virtual files provided by vite plugins
        !req.url.startsWith("/api/") && // api proxy, configured below
        !existsSync(`./public${reqPath}`) && // files served directly from public folder
        !existsSync(`.${reqPath}`) // actual files
      ) {
        req.url = "/";
      }
      next();
    });
  },
});

@graue
Copy link

graue commented May 1, 2023

Thanks Nicholas for the suggested fix!

This was really hard to find because being new to Vite, I didn't realize the dot in the URL was the issue. I just thought every path served from the dev server needed to correspond to a file, so I was looking for some sort of "how to do client-side routing with Vite" guide, to tell me how to define dynamic paths...

@posva
Copy link
Contributor

posva commented May 1, 2023

Given that . are valid characters and URLs and that https://www.npmjs.com/package/vite-plugin-rewrite-all has now almost 30k downloads weekly (plus people using a raw plugin in their vite config). I think it would be great not to leave this hanging too much longer. The longer is stays open, the longer people keep finding workarounds and not use dots in their paths, despite being totally valid.

It's worth noting that the plugin workaround breaks other features like opening files with vitest

CommanderStorm added a commit to TUM-Dev/NavigaTUM that referenced this issue May 26, 2023
* integrated #355
Applied the fixes from the Maplibre migration
added a editorconfig file for more consistent lints
migrated from swagger-codegen's types to openapi-typescript
added the vite-plugin-rewrite-all dependency, as a workaround for vitejs/vite#2415
This will be solved if vitejs/vite#2634 is merged
migrated 1f050e8
stopped eslint from fixing .js files due to a suspeced infinite loop
updated some of our js-dependencys to the newest version. No changes required
adapted the webclient for the new version of our API docs
migrated vite to v4.x
fixed bug of v-for and v-if not being separated
fixed how the DetailsView and the feedbackButton are coupled
added an alt tag for a thumb-building
fixed thumb-building preview not having the correct path
set our npm type to module to prevent import errors
renmoved unneeded defineExpose import
rebase of d2b2a1d
rebase 5e2f141
rebase 31f34b4
rebase of 61b8cd3
rebase of 2c1a33a
updated swagger codegen
Fixed defineExpose being used twice
press `/` to focus the search bar (#270)* press / to focus the search bar
removed legacy file
Try to fix the share menu not opening on Safari (#269)
migrated to the new docs style
Remove API lang cookie (#259)* Remove checking the cookie in the server
* Fix language determination in the webclient
* Remove cookie from API documentationCo-authored-by: Frank Elsinga <[email protected]>
Darkmode lang/theme selector (#256)* Switched the disabled lang/theme selector color to whiteCo-authored-by: octycs <[email protected]>
Separated Coordinate Handling (#243)* seperated coordinates and other data from each other
* improved how entries are formattedCo-authored-by: octycs <[email protected]>
Fixed the room feedback not being correctly interpreted by GitHub
mapbox
migrated the vue3 webclient to nav.tum.de
Link to the calendar (#221)* implemented a link to the calendarCo-authored-by: octycs <[email protected]>
Changed user location dot color to #3070B3 (#233)Co-authored-by: ge78fug <[email protected]>
added the outdatedBrowser detection
hacked together the linking between the feedbackbutton and the interactive map
fixed issues preventing the feedback modal to open properly
improved the typing in the interactive map
changed the localStorage access key for storing feedback-coordinates to be more in line with the other usage `feedback-token`
fixed some of the feedback related functionality in other parts of our app
merged all feedback related functionality into its own component
set mapboxgl and swaggerui to be manually chunked
set mapboxgl to be manually chunked
seperated swagger-ui-dist from the api view for inital page loads
fixed vite not correctly routing /api/
fixed details not correctly registering navigation events
fixed roomfinder maps not being loaded correctly
replaced existance checks via a && a.b with a?.b
replaced v-on:click with @click
fixed interactive maps button not being correctly highlighted
fixed loading icon not disapearing misteriously on the details screen
inlined a bracket into the translation
fiede how referencing between the map componentand the DetailsView.vue worked
added rsync as an docker dependency
added a script, which builds the needed files for our deployment
increased the cache duration of the assets folder
moved everything that can be cached into the assets folder
clairified the theme selector
modived the nginx config for the adapted deployment
inital draft of the updated docs
fixed bug, where early returning after redirection lead to invalid content being shown
moved files around for uniformer layout
inlined loadMap()
fixed a translation not working due to a typo
fixed the map not working due to wrong paths
fixed other typing issues
fixed wrong usage of the translation api
migrated the details view to the composition API
added v-if check for sources being present
extracted the feedbackbutton into its own component
moved confirmLocationPicker and other related functionality to he interactive map
fixed the details routing
unified the Showcase naming to Slideshow
fixed bug in copyCurrentLink method declartion
extracted the roomfinder into a seperate component
sources
extracted the sources into a seperate component
extracted the InfoSection into its own component
extracted the (currently unused) featured section into an own component
extracted the building overview and the room overview into its own component
fixed typing issues in the auto-generated typing stubs
split the interactive map into its own component
added the type keyword to an type-only import
switched from a home-grown reset function to a buildin function for the details store
migrated the error.msg to an pinia store, for accessing the erroer it in the useFetch method
fixed import of mapboxgl in the interactive-map
migrated usages of `==` to `===`
unified the translation formatting previously, the existance of a leading newline and a trailing space was possible

removed scoped stylesheets, as it was noticed, that they cause weird styling issues
removed an v-if statement without any effect
in vue3, this v-for statement is apparently illegal and needs a wrapper
inlined some functions from autocomplete.ts, as they were only used in the searchbar
added active to the acitve toggler in the settings at the bottom
moved the the scss components to their respective owners
moved our noscript warning to our index.html
moved the seachbar to its own component
fixed, that the design of the language toggler was different to currently deployed
fixed the SearchView.vue not being rendered correctly
fixed issue of some translation blocks having a trailing whitespace
reverted change to change copied in the calller and instead changed this state in the called method
fixed the success not being correctly indicaded in copyCurrentLink()
fixed places, where translation was incorrectly used
refactored the details-state to live in pinia
fixed setDescription and setTitle being used in the new waypreviously, this was done via the global variable "navigatum"
refactored the sharebutton into its own component
reconfigured the dockerfile for the new build system
moved our logo to the assets folder to enable automatic inlining
moved removeLocalStorage,setLocalStorageWithExpiry,getLocalStorageWithExpiry to utils/storage
added configuration option to explicitly tell vite, that we are a spa
added the ability to view our about pages
configured environment options and api proxying
removed the preconnect statements and explicit theming
changed the internal name of the details api, to not confuse people between GET and get
fixed an import bug in the search view
made the language selection persistent
made the openapi.yaml server from the actual host, instead of github
fixed origin check to allow local-remote development
added typing to the fetch options. added the credentials handling seen in #198
fixed faulty inlinging of more() and less()
unified the language and theme selectors in their own components
added swagger codegen for typescript types
fixed our localisation by migrating to unplugin-vue-i18n
changed the i18n options to what we want
fixed another path issue with paths not being found
renamed router-link to RouterLink, as this is recomended
moved the main template to app.vue
fixed an issue with locale templates in html
partialy migrated about, details and search
migrated the main view to vue3
moved interactive-map.ts to typescript
moved scss to the index.html for faster time to design
removed legacy code.js
removed unused components from the template
migrated feedback to ts
converted modules to ts modules
changed how comments in our scss work
reodered the package.json
added i18n
migrated the apiview to vue3
fixed an pathing issue
moved our utils to a comon directory
moved all styles to be consistently below the html
changed all paths to the assets to @asset
removed unnessesry app prefix
fromatting
re-enabled some imports from the previous dockerifle
removed old build system
scss move
vueI18n
removed polyfills temporarily to focus on making the app work
moved views 1:1 into single file components
moves
added our old routing config
moved the 404 and api view to a SFC
moved more files to different directories
moved some files to a new directory
added the basic vue3 template

* made shure that the feedback and the calendar APIs route to our servers

* fixed the General message modal throwiing an error if no information_modal is supplied

* fixed typing bugs

* rebased #4149cc0f680c48f689172cea6b0c861f970990d4

* fixed deployment issues

* [SSR-1] Removal of Rendertron (#474)

Remvoal of Rendertron

* typing fixes

* linting fixes

* fixed links not being able to be copied

* linting fixes

* fixed html content in translations not being displayed properly

* linting fixes

* fixed one translation

* translation fixes

* renamed methods in the browser detection

* added the canonical link to the html to make shure chrome is not confused about our stagings

* Migrate new POI URL

* Fix a bug where the map would not update when updating the DetailsView

* migrated ##502

* migrated #532

* Change arguments for scrolling (still sometimes not working properly yet)

* migrated the addition of the TUM logo

* updated the api_types and ran the linter

* fixed default thumbnails not being displayed and not being localised

* fixed the api view not being correctly linked to

* added the openapi definition to the cdn to correctly load the api page

* made the app reload on theme/language change fixing this not applying

* fixed the window continuously reloading

* fixed the about view not being reflective of the actual url being used currently

* fixed the details view being stuck loading for an unnessesaryly long time

* fixed small design issues in the feedback modal

* added debug information to the language toggler

* added VITE_APP_URL to the environent variables

* tested a diffferent approach to introduce VITE_APP_URL into the webclient

* maybe fixed the cookies not loading properly?

* renamed utils to composables

* added a saveCooke() function to centralise this functionality

* aded an debug alert

* removed alert

* tested a different way to scope cookies

* removed logging statements from the code

* uptated the typescript bindings for the openapi spec

* bumped our linting suite and `swagger-ui`

* bumped maplibre to v3 as in master

* Add resizeObserver to scroll to y-positions > 0 on forward/backward navigation.
The problem is that the scroll is intiated before the components are updated. If the previous page was shorter than the next one, the browser might not scroll then.
I am not sure exactly why this breaks now and didn't break in the vue2 version, but I think it is because Vue router is now async. The solution with a resizeObserver requires the least changes. Else we would need to add scrolling code to all views.

* added translations to the search and general feedback button `aria-label`'s

---------

Co-authored-by: octycs <[email protected]>
@Minho-Lee
Copy link

This took me a fair amount of to debug, and ended up resolving the issue with the above package mentioned (https://www.npmjs.com/package/vite-plugin-rewrite-all). Would love to see this resolved so we don't have to rely on external packages/plugins and continue using valid urls with ..

@eteeselink
Copy link

Thanks sapphi-red and patak-dev! This fixes the problem for me when switching to 5.0.0-beta.0

zurdi15 pushed a commit to rommapp/romm that referenced this issue Aug 27, 2023
@mahnunchik
Copy link

mahnunchik commented Sep 7, 2023

@redmundas
Copy link

having this issue with [email protected]

@bluwy
Copy link
Member

bluwy commented Sep 15, 2023

It's not fixed in Vite 4 as it's a breaking change. You can start using the Vite 5 beta to fix it. Vite 5 stable will come around mid October.

@KaKi87
Copy link

KaKi87 commented Sep 15, 2023

it's a breaking change

How so ?

@github-actions github-actions bot locked and limited conversation to collaborators Sep 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet