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

Vue 3 #949

Draft
wants to merge 72 commits into
base: master
Choose a base branch
from
Draft

Vue 3 #949

wants to merge 72 commits into from

Conversation

mzur
Copy link
Member

@mzur mzur commented Oct 11, 2024

Tasks:

  • Install Vue 3 compat
  • Set up Vite build
  • Update uiv
  • Test Vite hot reload
  • Fix navbar dropdowns
  • Find Vue Compat warnings and fix them
    • Use fake privacy page for default layout/code
    • Disable compat features to find source of warnings
    • Walk through all views and look for warnings
  • Update slots to <template #slot> syntax
  • Update use of v-model to new default modelValue variable name
  • Define component events with emits: ['evt', ...]
  • Replace use of $on, $once and $off.
  • Replace use of inline-template.
  • Update :disabled and v-bind:disabled attributes that expect the attribute to be removed if false. Use null instead.
  • Rename beforeDestroy to beforeUnmount.
  • Fix these locations:
    • Error Property "scollable" was accessed during render but is not defined on instance. on project overview.
    • The image/video annotation tab filter system. It uses Vue.extend, $mount(), $on() and $off(). Fix this once the image/video annotation tools are functional again with the compatibility build. Finally disable GLOBAL_EXTEND.
  • Remove/replace Vue Resource. Afterwards, disable GLOBAL_PROTOTYPE. Maybe use a fetch wrapper.
  • Replace Vue.Promise with native Promise
  • Update Docker build process (if necessary)
  • Maybe remove cachebust_asset()
  • Update modules:
    • Migrate from Mix to Vite
    • Change <script type="text/javascript"> to <script type="module"> for inline scripts
    • Remove Vue Resource
    • Update <control-button> component to use scoped slot event instead of $on listener (689106d).
  • TEST EVERYTHING with compat MODE: 3
    • Change <script type="text/javascript"> to <script type="module"> for inline scripts that were added in the meantime
    • Walk through all JS files and test their features in the UI
    • Check if date picker components behave correctly
    • Check if echarts charts work correctly
  • Remove Vue Compat, including all uses of compatConfig
  • Check if NPM run prod silently fails when using Node 23 #984 is resolved
  • Follow up with Improve annotation performance #249 (unify image and video annotation tools with composition API)

Resolves #455
Resolves #515

mzur added 30 commits January 16, 2025 13:41
The attribute must be removed if not disabled. Vue 3 only does this
if the value is null or undefined.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Switch build process to Vite Upgrade to Vue 3
1 participant