Commit Graph
7 Commits
Author SHA1 Message Date
Pliable PixelsandClaude Opus 4.6 efe4b99156 feat: separate training view from event view with cross-event navigation
Move the annotation/training interface from an inline panel in event.php
to a dedicated ?view=training screen. This cleanly separates the training
workflow from event playback and enables switching between events without
a full page reload.

- Add web/skins/classic/views/training.php as a standalone training view
- Add web/skins/classic/views/js/training.js.php with view-specific init
  and translations (moved from event.js.php)
- Add switchEvent() method to AnnotationEditor for in-place event switching
  when clicking thumbnails or edit buttons in the browse panel
- Update page title, URL bar, and back button on event switch
- Change annotate button in event.php from toggle to navigation link
- Update objdetect modal to link to training view
- Remove annotation panel HTML and training init code from event view
- Fix pre-existing broken </span tag on toggleZonesButton in event.php
- Add training view layout CSS, inline browse panel styles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 06:37:01 -05:00
Pliable PixelsandClaude Opus 4.6 eaaa8f4016 fix: code review fixes, version bump to 1.39.1, remove non-repo files
- Rename migration to zm_update-1.39.1.sql, add DEALLOCATE PREPARE,
  fix Requires format to 'ZM_OPT_TRAINING=1'
- Bump version.txt to 1.39.1
- Remove docs/plans/ and utils/deploy-training.sh from repo
- training.php: remove PHP fallback path, add validFrameId() helper,
  move buildTree() to top-level with symlink skip and depth limit,
  split canView/canEdit permissions, require POST for destructive ops,
  remove path disclosure, sanitize log output, add is_executable check
- training.js: remove console.log calls, fix _setStatus boolean to
  string type, fix double undo push, switch delete ops to POST,
  replace hardcoded English strings with translation keys
- event.js.php: remove window.annotationEditor global, add new
  translation keys to trainingTranslations
- event.php: add frame skip and browse buttons, break up long HTML
- en_gb.php: add missing translation keys in alphabetical order
- training.css: add frame browse overlay and pagination styles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:25:46 -05:00
Pliable PixelsandClaude Opus 4.6 6978d4d6ac feat: add annotate button to objdetect modal, compact stats, delete-all, UI polish
- Add Annotate button to objdetect modal (events list) with auto-open
  via ?annotate=1 URL parameter
- Compact stats layout: label and value on same row, trash icon to
  delete all training data with typed confirmation prompt
- Add delete_all AJAX action to training.php
- Reduce all annotation panel font sizes to 0.8rem to match ZM base
- Fix label picker white-on-white by setting explicit colors
- Add beforeunload guard for unsaved annotations
- Switch detect action from shell_exec to exec for better error handling
- Show "no objects detected" as info status, not error
- Increase status message display time to 10 seconds
- Add i18n strings: ConfirmDeleteTrainingData, DeleteAllTrainingData,
  TrainingDataDeleted

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 00:03:35 -05:00
Andrew Bauer 56e88aea89 revert back to a standard modal (no static backdrop) for objdetect 2021-01-02 12:34:33 -06:00
rabsym b7970d69a5 Avoid top-scroll when returning from bs_modal objdetect 2021-01-01 14:15:35 +01:00
Andrew Bauer 2ea4b39d93 don't use quotes around the event id 2020-12-22 11:46:31 -06:00
Andrew Bauer ee45916526 move objdetect image to a modal 2020-12-22 10:08:31 -06:00