# Operations & Content — Changed File Audit

This audit lists the phase-owned source changes. The worktree already contained
changes from earlier approved phases; those are not attributed to this phase and were
not reverted.

## Shared system and route/security contract

| File | Why it changed | Required |
|---|---|---|
| `public/admin/assets/css/pages/operations-content.css` | Shared premium tokens, compact density, filters, forms, details, modal, loading, empty, dark/RTL/mobile/reduced-motion contracts. | Yes — all seven |
| `public/admin/assets/js/pages/operations-content.js` | Local AJAX filtering, custom select/ARIA keyboard behavior, form transport, duplicate blocking, modals, deletion, toasts, media/upload fallbacks. | Yes — all seven |
| `public/admin/assets/js/pages/auction-operations.js` | Existing Auction edit/live/chat behavior moved out of inline handlers and kept on current routes. | Yes — Auctions |
| `views/admin/operationsContent/assets.ejs` | Loads the shared scoped CSS. | Yes — all seven |
| `views/admin/operationsContent/scripts.ejs` | Loads the shared scoped JavaScript. | Yes — all seven |
| `views/admin/operationsContent/hero.ejs` | Shared compact operational hero. | Yes — all seven |
| `views/admin/operationsContent/deleteModal.ejs` | Accessible custom confirmation with focus/loading contract. | Yes — all seven |
| `views/admin/operationsContent/empty.ejs` | Contextual compact empty state. | Yes — all seven |
| `src/routes/dashboard/adminRoute/adminRoute.js` | Validator wiring, filter-before-dynamic order, and CSRF on all supported mutations; no path/method rename. | Yes — all seven |
| `src/utils/validations/dashboard/operationsContent.js` | Shared strict query/ID/reply/Auction validation and operator-injection rejection. | Yes — all seven |
| `src/helpers/returnObject/returnObject.js` | Safe dashboard DTO mapping and null-safe translations/timestamps; no raw documents. | Yes — all seven |
| `views/admin/layouts/partials/sidebar.ejs` | One Auction resource item; removed status children while retaining active matching. | Yes — sidebar contract |
| `src/helpers/permissions/permissions.js` | Generated entries for the two new GET filter routes. | Yes — Contact/FAQs |
| `src/locales/ar/permissions.json` | Arabic permission labels for new filter routes; pre-existing manual keys preserved. | Yes — Contact/FAQs |
| `src/locales/en/permissions.json` | English permission labels for new filter routes; pre-existing manual keys preserved. | Yes — Contact/FAQs |
| `src/locales/ar/operationsContent.json` | Shared Arabic premium console/UI messages. | Yes — all seven |
| `src/locales/en/operationsContent.json` | Shared English premium console/UI messages. | Yes — all seven |

## Controllers and resource validators

| File | Why it changed | Required |
|---|---|---|
| `src/controllers/dashboard/auctionController/auctionController.js` | Non-deleted queries, safe details/chat DTO inputs, validated actions, existing soft-delete lifecycle. | Yes — Auctions |
| `src/utils/validations/dashboard/auction.js` | Existing Auction update image now validates MIME plus magic bytes. | Yes — Auctions |
| `src/controllers/dashboard/reasonsController/reasonsController.js` | Safe missing-detail/delete behavior while preserving benchmark flow. | Yes — Reasons |
| `src/controllers/dashboard/contactUsController/contactUsController.js` | Non-deleted safe list/filter/show/reply/delete flow and retained filter state. | Yes — Contact |
| `src/controllers/dashboard/complaintsController/complaintsController.js` | Safe DTO list/show/reply/delete, retained filters, and awaited bulk processing. | Yes — Complaints |
| `src/controllers/dashboard/sliderController/sliderController.js` | Safe detail/delete, valid replacement upload order, and last-active protection. | Yes — Sliders |
| `src/utils/validations/dashboard/slider.js` | Required bilingual and image MIME/signature validation. | Yes — Sliders |
| `src/locales/ar/sliders.json` | Arabic validation feedback. | Yes — Sliders |
| `src/locales/en/sliders.json` | English validation feedback. | Yes — Sliders |
| `src/controllers/dashboard/introController/introController.js` | Safe DTO/count/delete and optional edit-image replacement order. | Yes — Intros |
| `src/utils/validations/dashboard/intro.js` | Required bilingual and image MIME/signature validation; optional edit image. | Yes — Intros |
| `src/locales/ar/intros.json` | Arabic validation feedback. | Yes — Intros |
| `src/locales/en/intros.json` | English validation feedback. | Yes — Intros |
| `src/controllers/dashboard/fqsController/fqsController.js` | Safe DTO/count/show/delete, sort refresh, and existing response URLs. | Yes — FAQs |
| `src/utils/validations/dashboard/fqs.js` | Required bilingual question/answer and writing-system enforcement. | Yes — FAQs |
| `src/locales/ar/fqs.json` | Arabic validation feedback. | Yes — FAQs |
| `src/locales/en/fqs.json` | English validation feedback. | Yes — FAQs |

## Auctions views

| File | Why it changed | Required |
|---|---|---|
| `views/admin/auctions/index.ejs` | Premium hero, lifecycle nav, real filter studio, refresh/list region. | Yes |
| `views/admin/auctions/dataTable.ejs` | Compact fragment, local states, adjacent pagination. | Yes |
| `views/admin/auctions/tds.ejs` | Compact lifecycle row and stable protected action zone. | Yes |
| `views/admin/auctions/show.ejs` | Grouped read-only details, real relations/media/activity/settings/actions. | Yes |
| `views/admin/auctions/editForm.ejs` | Premium update form, exact fields, accessible upload, CSRF. | Yes |
| `views/admin/auctions/models.ejs` | Custom approve/reject/cancel/delete modals. | Yes |
| `views/admin/auctions/chat.ejs` | Read-only premium chat with safe identities/files. | Yes |
| `views/admin/auctions/live.ejs` | Compatibility live view using the shared premium surface. | Yes |
| `views/admin/auctions/includes.ejs` | Scoped shared assets and Auction behavior include. | Yes |

## Contact and Complaints views

| File | Why it changed | Required |
|---|---|---|
| `views/admin/contactUs/index.ejs` | Premium list hero, real filter studio, refresh and resource region. | Yes — Contact |
| `views/admin/contactUs/dataTable.ejs` | Compact fragment, empty/loading/pagination placement. | Yes — Contact |
| `views/admin/contactUs/tds.ejs` | Safe sender/contact/status row and stable actions. | Yes — Contact |
| `views/admin/contactUs/show.ejs` | Grouped safe communication details. | Yes — Contact |
| `views/admin/contactUs/reply.ejs` | Premium protected reply form with duplicate prevention. | Yes — Contact |
| `views/admin/complaints/index.ejs` | Premium workflow list and real filter studio. | Yes — Complaints |
| `views/admin/complaints/dataTable.ejs` | Compact fragment, empty/loading/pagination placement. | Yes — Complaints |
| `views/admin/complaints/tds.ejs` | Complainant/target/status row and protected actions. | Yes — Complaints |
| `views/admin/complaints/show.ejs` | Grouped complaint/reply details. | Yes — Complaints |
| `views/admin/complaints/reply.ejs` | Premium protected reply workflow. | Yes — Complaints |

## Sliders, Intros, and FAQs views

| File | Why it changed | Required |
|---|---|---|
| `views/admin/sliders/index.ejs` | Premium list hero, CTA, refresh and scoped resource region. | Yes — Sliders |
| `views/admin/sliders/dataTable.ejs` | Compact fragment, empty/loading/pagination placement. | Yes — Sliders |
| `views/admin/sliders/tds.ejs` | Media/status row and stable actions. | Yes — Sliders |
| `views/admin/sliders/create.ejs` | Reasons-style bilingual create form and accessible upload. | Yes — Sliders |
| `views/admin/sliders/edit.ejs` | Reasons-style edit form with existing-media preview. | Yes — Sliders |
| `views/admin/sliders/show.ejs` | Safe media/content/status detail surface. | Yes — Sliders |
| `views/admin/sliders/includes.ejs` | Shared assets, page metadata, and current routes. | Yes — Sliders |
| `views/admin/intros/index.ejs` | Premium list hero, CTA, refresh and scoped resource region. | Yes — Intros |
| `views/admin/intros/dataTable.ejs` | Compact fragment, empty/loading/pagination placement. | Yes — Intros |
| `views/admin/intros/tds.ejs` | Bilingual/media row and stable actions. | Yes — Intros |
| `views/admin/intros/create.ejs` | Reasons-style bilingual create form and upload. | Yes — Intros |
| `views/admin/intros/edit.ejs` | Reasons-style edit form with optional image replacement. | Yes — Intros |
| `views/admin/intros/show.ejs` | Safe bilingual/media detail surface. | Yes — Intros |
| `views/admin/intros/includes.ejs` | Shared assets, page metadata, and current routes. | Yes — Intros |
| `views/admin/fqs/index.ejs` | Premium list hero, real sort filter, CTA and refresh. | Yes — FAQs |
| `views/admin/fqs/dataTable.ejs` | Compact fragment, empty/loading/pagination placement. | Yes — FAQs |
| `views/admin/fqs/tds.ejs` | Controlled long-content preview and stable actions. | Yes — FAQs |
| `views/admin/fqs/create.ejs` | Reasons-style bilingual create form. | Yes — FAQs |
| `views/admin/fqs/edit.ejs` | Reasons-style bilingual edit form. | Yes — FAQs |
| `views/admin/fqs/show.ejs` | Full safe bilingual content details. | Yes — FAQs |
| `views/admin/fqs/includes.ejs` | Shared assets, page metadata, and current routes. | Yes — FAQs |

## Tests and evidence

| File | Why it changed | Required |
|---|---|---|
| `test/dashboardOperationsContentCluster.test.js` | 29 UI/validation/route/behavior contracts across the cluster, including a Slider duplicate-identity regression. | Yes |
| `test/dashboardOperationsContentCsrf.test.js` | 54 route-harness cases covering 22 mutations and five multipart routes. | Yes |
| `test/dashboardSidebarNavigation.test.js` | Resource-only navigation regression and stable interaction fixture. | Yes |
| `artifacts/operations-content/README.md` | Visual QA summary and evidence index. | Yes |
| `artifacts/operations-content/visual-qa-manifest.json` | Per-state geometry, errors, requests, and overflow measurements. | Yes |
| `artifacts/operations-content/ACCEPTANCE_MATRIX.md` | Required endpoint/page/state acceptance matrix. | Yes |
| `artifacts/operations-content/CHANGE_AUDIT.md` | Required phase-owned diff mapping. | Yes |
| `artifacts/operations-content/<resource>/*.png` | 62 state screenshots and seven overview contact sheets. | Yes |

## Scope and line-growth conclusion

- No route was renamed.
- No model/schema, Auth/API, package/dependency, environment/deployment, global shell
  geometry, Products, Providers, Join Requests, Clients/Supervisors, or Dashboard Home
  file was changed by this phase.
- Reasons view/CSS/JS files were not rewritten; the approved benchmark was regression
  tested and visually captured.
- There are no generated OpenAPI/Postman changes from this phase.
- The material line increase is the shared premium UI system, explicit resource EJS
  states, focused tests, and screenshot evidence. Consolidating shared hero/empty/modal/
  assets/scripts already avoids duplicating the largest cross-resource blocks.
