Compare commits
7 Commits
6c3ab29189
...
net8-basel
| Author | SHA1 | Date | |
|---|---|---|---|
| de03f56015 | |||
| 838ce9f390 | |||
| ab72022c08 | |||
| 8c3037bd86 | |||
| e4dcbd852e | |||
| f8ee7b2da7 | |||
| fcd1da6ef8 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -13,4 +13,5 @@ Thumbs.db
|
|||||||
|
|
||||||
# Environment
|
# Environment
|
||||||
.env.local
|
.env.local
|
||||||
.env.*.local
|
.env.*.local
|
||||||
|
/ayanova/logfile
|
||||||
|
|||||||
61
CLAUDE.md
Normal file
61
CLAUDE.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# AyaNova v8 front end — instructions for Claude Code
|
||||||
|
|
||||||
|
Shared AyaNova context and working rules, from the server repo (the master):
|
||||||
|
@../raven/CLAUDE.md
|
||||||
|
|
||||||
|
Everything below is specific to this repo.
|
||||||
|
|
||||||
|
## What this is
|
||||||
|
|
||||||
|
The AyaNova v8 web client, in `ayanova/`. Vue 2.6, Vuetify 2.6, Vuex, Vue Router, plain
|
||||||
|
JavaScript (no TypeScript), Vue CLI 4 / webpack 4. Stack details:
|
||||||
|
`../raven/devdocs/modernization/CODEBASE-REFERENCE.md`.
|
||||||
|
|
||||||
|
## During the .NET 10 port
|
||||||
|
|
||||||
|
The port is back-end only. **No changes in this repo** unless John asks, apart from a
|
||||||
|
rebuild if the port needs one. Whether the client gets rebuilt in this pass is an open
|
||||||
|
question in `../raven/devdocs/modernization/NET10-PORT.md`.
|
||||||
|
|
||||||
|
If a port item touches the client (for example removing a package from both repos), it
|
||||||
|
goes on a `net10-port` branch here too, with its own commit.
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
|
||||||
|
- **Node.js 12.22.9 exactly.** `fibers` breaks on anything newer. Check with `node -v` before building.
|
||||||
|
- **No dependency changes**: no `npm install <package>`, no `npm update`, no version edits in `package.json`. Front-end upgrades are roadmap step F, not current work.
|
||||||
|
- Install with `npm ci` (exact versions from `package-lock.json`), never `npm install`.
|
||||||
|
- Vue 2 / Vuetify 2 are end of life. Do not upgrade them, and do not write Vue 3 style code.
|
||||||
|
- Add `data-testid` attributes to elements that Cypress tests select.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd ayanova
|
||||||
|
npm ci # first time, or after package-lock.json changes
|
||||||
|
npm run serve # dev server with hot reload
|
||||||
|
npm run build # production build into dist\
|
||||||
|
npm run lint
|
||||||
|
```
|
||||||
|
|
||||||
|
## How the build reaches the server
|
||||||
|
|
||||||
|
`npm run build` writes to `ayanova\dist\`. `raven\build-release.bat` (or `buildrelease.bat`
|
||||||
|
here) copies it into `raven\server\AyaNova\wwwroot\`. The .NET build does not produce
|
||||||
|
`wwwroot`: whatever is there when the server is published is what ships.
|
||||||
|
|
||||||
|
Webpack content-hash file names (`app.<hash>.js` …) change on every build even when the
|
||||||
|
contents do not. Compare file contents, not names.
|
||||||
|
|
||||||
|
Warnings on every build that are harmless: Browserslist "caniuse-lite is outdated"; Dart
|
||||||
|
Sass division deprecation (from Vuetify); asset size (Monaco's workers).
|
||||||
|
|
||||||
|
## Code layout
|
||||||
|
|
||||||
|
`src/api/` API utilities, auth and error handling; `src/components/` about 80 components;
|
||||||
|
`src/views/` about 100 pages; `src/plugins/` Vuetify setup; `router.js`, `store.js`,
|
||||||
|
`main.js`, `App.vue`.
|
||||||
|
|
||||||
|
View prefixes: `acc-` accounting, `adm-` administration, `cust-` customers, `home-`
|
||||||
|
dashboard, `inv-` inventory, `ops-` server operations, `svc-` service (work orders, quotes,
|
||||||
|
PMs).
|
||||||
@@ -1,36 +1,35 @@
|
|||||||
# ayanova
|
# AyaNova client UI
|
||||||
|
|
||||||
## Project setup
|
## Project setup
|
||||||
```
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
### Compiles and hot-reloads for development
|
1. Install the build tools exactly as listed in `C:\data\code\raven\devdocs\build\BUILD.md`.
|
||||||
|
They are very specific, and in several cases outdated on purpose (Node.js 12.22.9).
|
||||||
|
2. Clone this repository from Gitea into `C:\data\code\raven-client`.
|
||||||
|
3. Install dependencies:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd C:\data\code\raven-client\ayanova
|
||||||
|
npm ci
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `npm ci`, not `npm install`: it installs the exact versions in `package-lock.json`.
|
||||||
|
|
||||||
|
## Development server with hot reload
|
||||||
|
|
||||||
```
|
```
|
||||||
npm run serve
|
npm run serve
|
||||||
```
|
```
|
||||||
|
|
||||||
### Compiles and minifies for production
|
## Production build
|
||||||
|
|
||||||
```
|
```
|
||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run your tests
|
Output goes to `dist\`. The release build copies it into the server's `wwwroot`.
|
||||||
```
|
|
||||||
npm run test
|
## Lint
|
||||||
```
|
|
||||||
|
|
||||||
### Lints and fixes files
|
|
||||||
```
|
```
|
||||||
npm run lint
|
npm run lint
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run your end-to-end tests
|
|
||||||
```
|
|
||||||
npm run test:e2e
|
|
||||||
```
|
|
||||||
|
|
||||||
### Run your unit tests
|
|
||||||
```
|
|
||||||
npm run test:unit
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ export default {
|
|||||||
if (
|
if (
|
||||||
window.$gz.dev &&
|
window.$gz.dev &&
|
||||||
window.location.hostname == "localhost" &&
|
window.location.hostname == "localhost" &&
|
||||||
window.location.port == "8080"
|
(window.location.port == "8080" || window.location.port == "8081")
|
||||||
) {
|
) {
|
||||||
return "http://localhost:7575/api/v8.0/" + apiPath;
|
return "http://localhost:7575/api/v8.0/" + apiPath;
|
||||||
}
|
}
|
||||||
@@ -307,7 +307,7 @@ export default {
|
|||||||
if (
|
if (
|
||||||
window.$gz.dev &&
|
window.$gz.dev &&
|
||||||
window.location.hostname == "localhost" &&
|
window.location.hostname == "localhost" &&
|
||||||
window.location.port == "8080"
|
(window.location.port == "8080" || window.location.port == "8081")
|
||||||
) {
|
) {
|
||||||
return "http://localhost:7575/docs/";
|
return "http://localhost:7575/docs/";
|
||||||
}
|
}
|
||||||
@@ -317,7 +317,7 @@ export default {
|
|||||||
if (
|
if (
|
||||||
window.$gz.dev &&
|
window.$gz.dev &&
|
||||||
window.location.hostname == "localhost" &&
|
window.location.hostname == "localhost" &&
|
||||||
window.location.port == "8080"
|
(window.location.port == "8080" || window.location.port == "8081")
|
||||||
) {
|
) {
|
||||||
return "http://localhost:7575/cust/";
|
return "http://localhost:7575/cust/";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
v-model="selectedContact"
|
v-model="selectedContact"
|
||||||
:items="contacts"
|
:items="contacts"
|
||||||
:label="$ay.t('Contacts')"
|
:label="$ay.t('Contacts')"
|
||||||
|
data-cy="contactSelect"
|
||||||
></v-select>
|
></v-select>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user