Task Issue 961 issuetracker Env Column - sebiboga/testlink-upgraded GitHub Wiki

Task 961 — Restore per-tracker Environment column (checkEnv) in the Issue Trackers screen (gap vs legacy)

Issue: #961 Status: IMPLEMENTED & VERIFIED (2026-09-23)

The gap

Legacy surfaced each tracker's environment state and rendered every tracker URL:

  • lib/issuetrackers/issueTrackerView.php:23 → getAll(array('output'=>'add_link_count','checkEnv'=>true))
  • tlIssueTracker.class.php:610-616 ran $impl::checkEnv() per tracker → env_check_ok + env_check_msg (base interface → ['status'=>true,'msg'=>'OK']; jira/mantis/gforge SOAP → extension_loaded('soap'))
  • issueTrackerView.tpl:16,77 rendered the Environment column (th_issuetracker_env)

The modern screen dropped both: the BFF called getAll() without checkEnv, and the Server URL cell regex-matched ONLY <uribase> — trackers whose cfg writes <url> (redmine, gitlab, and GitHub-OAuth-created github trackers) rendered an EMPTY cell.

before: empty URL + no Environment column

Implementation

BFF api/issuetracker/index.php — GET / → getAll(['output'=>'add_link_count','checkEnv'=>true]); trackerToJSON() emits env_check_ok (bool) + env_check_msg (string).

Screen gui/templates/issuetracker/issuetrackerView.html — new Environment column between Type and Active (legacy th_issuetracker_env parity, shown to ALL viewers); URL extraction now matches <uribase> or <url>; env cell renders a green OK badge (it.envOk) or a red badge showing the impl message (e.g. "You need to enable SOAP extension") — same raw output as legacy.

after: URL filled + Environment column

i18n — new keys it.environment, it.envOk, it.envKo in all 10 locale bundles.

Verification

  • Admin: all 4 tracker URLs render; Environment column shows green OK.
  • KO path: red badge-env-ko with the impl message (verified via injected fake item).
  • View-only user itview (right 32 only): Environment column visible, write UI hidden.
  • Event Viewer: 0 Error/Warning rows; console clean.

view-only: Environment column visible, no write UI

Test suite: tmp/TLU_Test_Cases.md → "Suite 961" (6/6 PASS).

⚠️ **GitHub.com Fallback** ⚠️