8acb1b50de
Persist relative return-to path for post-login redirect
...
Co-Authored-By: Codex <codex@openai.com >
2026-03-08 10:44:53 +08:00
e275e79a63
Sanitize Cytoscape tooltip labels to prevent XSS
...
Co-Authored-By: Codex <codex@openai.com >
2026-03-08 10:41:48 +08:00
1d621bf304
Translate all Chinese comments and strings to English
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 20:03:19 +08:00
7d5918837b
Add try-catch to async IIFEs to prevent unhandled rejections
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 18:11:27 +08:00
ede7becb3a
Remove await on non-promise values
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 18:06:29 +08:00
1b5f97dc9a
Remove unnecessary persist:true from acctMgmt store
...
The store only holds transient data (user list refetched from API,
hover/menu UI states) that should not survive page reload.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 17:58:39 +08:00
07a2518e76
Remove unused $moment and $emitter from globalProperties
...
These were set for Options API (this.$moment, this.$emitter) but all
components now use <script setup> with direct imports.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 17:53:00 +08:00
5b3130ea9c
Compute refresh token expiry fresh on each sign-in
...
The expiry date was computed once at store init time and went stale
in long-running SPA sessions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 17:49:14 +08:00
ba7c1c7cd0
Rename allUserAccoutList to allUserAccountList (fix typo)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 17:43:12 +08:00
fe4738b04c
Add encodeURIComponent for username in API URL paths
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 16:58:30 +08:00
984eaa96b7
Remove duplicate getUserData call in moveCurrentLoginUserToFirstRow
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 09:25:10 +08:00
9a8b45b151
Deduplicate refreshToken by delegating to auth.js refreshTokenAndGetNew
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 09:21:25 +08:00
cd71815c97
Remove artificial delay from apiError, show toast immediately
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:59:52 +08:00
589783d481
Fix typos in error messages, constants, and UI labels
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:55:33 +08:00
3693446d1b
Add event listener cleanup to prevent memory leaks
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:50:19 +08:00
b2b00c4542
Add optional chaining for querySelector result in Files.vue
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:45:27 +08:00
564ead23bf
Add null guard for performanceData before accessing time properties
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:45:06 +08:00
ac00183096
Initialize nodePositions structure before nested access
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:44:54 +08:00
c602848ad7
Add null check before tip.hide() on mouseout
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:44:42 +08:00
5058400d72
Fix filterTaskData computed property referencing itself
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:39:14 +08:00
ac9f958bef
Remove meaningless return statements inside forEach callbacks
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:27:12 +08:00
d7df6a2615
Fix setTimeChartData called with yMax twice instead of yMax and yMin
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:26:58 +08:00
eea79c852b
Fix open redirect vulnerability in return-to URL after login
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 08:13:12 +08:00
ddab7b3fe9
Add missing path=/ to setCookieWithoutExpiration
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:59:40 +08:00
2a4aa9db00
Add optional chaining to error.response.status in catch blocks
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:55:49 +08:00
eeea16be38
Fix getters mutating state on repeated access
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:31:59 +08:00
ef8ce0d778
Fix showCancelButton using string instead of boolean in renameModal
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:23:45 +08:00
4b7c08e2f9
Fix moment format using month token MM instead of minute mm
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:17:09 +08:00
3f1f8fb680
Fix BaseInfiniteFirstCases getter using wrong case for state property
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:10:26 +08:00
702d508d37
Fix incorrect hour/minute calculation in simpleTimeLabel()
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 07:05:41 +08:00
f4fbae8a5c
Extract duplicate API path logic into helper function in allMapData store
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 21:22:19 +08:00
ec0035a182
Extract duplicate API path logic into helper functions in conformance and files stores
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 21:16:26 +08:00
d7db387edf
Clean up i18n: translate 404 page Chinese text and remove placeholder German locale
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 21:02:33 +08:00
8d358516b8
Translate remaining Chinese JSDoc and CSS comments to English
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 20:53:00 +08:00
7fec6cb63f
Add JSDoc documentation and file headers to all source files
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 18:57:58 +08:00
3b7b6ae859
Migrate all Vue components from Options API to <script setup>
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 18:57:58 +08:00
a619be7881
Convert all store files from JavaScript to TypeScript
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 14:47:57 +08:00
90048d0505
Standardize store exports to named useXxxStore convention
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 13:25:00 +08:00
147b16ca34
Add centralized API client with axios interceptors, remove vue-axios
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 12:44:33 +08:00
4e22643999
Upgrade Tailwind CSS from 3 to 4 with CSS-first config migration
...
Migrate tailwind.config.js to @theme in CSS, replace PostCSS plugins
with @tailwindcss/postcss, add @reference to 12 Vue scoped styles using
@apply, and remove autoprefixer (now built into Tailwind 4).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 11:29:03 +08:00
941f1e1dbe
Upgrade ESLint from 8 to 9 with flat config migration
...
Replace .eslintrc.cjs with eslint.config.mjs, upgrade eslint-plugin-vue
to 10, eslint-plugin-cypress to 6, @vue/eslint-config-prettier to 10,
and remove @rushstack/eslint-patch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 11:12:17 +08:00
f958efb38b
Upgrade i18next from 23 to 25 and cytoscape-popper from 2 to 4
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 10:53:09 +08:00
85225c1e30
Upgrade PrimeVue from 3 to 4 with Aura theme preset
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 10:32:34 +08:00
5d6d6310be
Remove unused PrimeVue PickList and Button global registrations
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 09:58:46 +08:00
b259f23799
Replace date-fns with chartjs-adapter-moment to eliminate duplicate date libraries
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 09:51:13 +08:00
1d0d938193
Replace let with const where variable is never reassigned in Vue files
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 09:38:40 +08:00
64372c7043
Replace loose equality (== null, != null) with strict equality
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 09:22:36 +08:00
3eec131ae0
Fix typos: createfilterId, sidevarFilterRef, selecteName, namber
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 09:15:35 +08:00
802a5e51fd
Replace let with const where variable is never reassigned
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 08:57:36 +08:00
04841d84f2
Remove dead code and incorrect unused comments
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 08:54:51 +08:00