7 Commits

Author SHA1 Message Date
de03f56015 point README at the build docs in raven 2026-10-22 11:55:14 -07:00
838ce9f390 Add CLAUDE.md; point README at the build docs in raven 2026-10-22 11:54:09 -07:00
ab72022c08 case 4672 2026-09-21 14:39:50 -07:00
8c3037bd86 4643 2026-02-15 14:59:52 -08:00
e4dcbd852e 4643 2026-02-15 12:57:31 -08:00
f8ee7b2da7 case 4642 2026-02-13 08:24:15 -08:00
fcd1da6ef8 case 4642 2026-02-13 07:23:56 -08:00
5 changed files with 87 additions and 25 deletions

1
.gitignore vendored
View File

@@ -14,3 +14,4 @@ Thumbs.db
# Environment # Environment
.env.local .env.local
.env.*.local .env.*.local
/ayanova/logfile

61
CLAUDE.md Normal file
View 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).

View File

@@ -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
```

View File

@@ -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/";
} }

View File

@@ -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>