Lesson 3 of 10 · 4 min

Reading a Job Detail: Task Tab, Media Tab, and Activity

Walk through every section inside an open job — the two-tab layout, the fields, the activity timeline, and how agents vs. providers see different controls.

Reading a Job Detail: Task Tab, Media Tab, and Activity

Video coming soon

3/10

Lesson Notes

01

The JobTaskView is organized into two top-level tabs: Task and Media. The Task tab is active by default and contains all operational fields and communication. The Media tab shows the uploaded assets for the job. Switching between them is immediate and does not reload data — both are rendered on the same page and simply toggled in view. An additional Invoice view exists outside the tab bar: clicking the invoice summary strip in the Task tab's header area navigates to the full invoice detail, and a Back button returns to the job.

02

Inside the Task tab, a two-column grid lays out key fields on the left (Address, Customer, Technician, Project Manager, Editor, Scheduled date/time, Package, Media Types, Priority) with their values on the right. Each assignee slot shows either the assigned person's avatar + name or an 'Assign' button if empty. Owners, Admins, and Project Managers can click any assignee slot to open an inline dropdown and change the assignment without leaving the task view. The Priority field renders a badge: Standard (outline), Rush (secondary), or Urgent (destructive red).

03

A Discussion section lives at the bottom of the Task tab. It contains two sub-tabs — Client (the Customer chat channel) and Team (the internal channel). Owners, Admins, and Project Managers see both sub-tabs and can post in either. Technicians and Editors see both channels. Agents see only the Client sub-tab because they are the customer. Messages support rich text (bold, italic, underline, lists, code), @-mention autocomplete for team members, emoji reactions, threaded replies, and file attachments. An unread message badge on the Discussion label signals new activity.

04

On the iOS OrderDetailView, the same information is split across three segmented-picker tabs: Appointment, Order, and Deliverables. The Appointment tab holds the schedule card (all scheduled visits with status and technician), the Team card (technicians + editors + PM), the chat preview rows (latest three messages with an 'Open chat' button), the activity timeline (chronological feed of order placed → shoot scheduled → shoot started → editing started → delivered → invoice paid), and a weather forecast card if the property has coordinates and the shoot is in the future. The Order tab shows the Package card, Provider card, Customer card, and Invoice summary. The Deliverables tab shows the client approval card, property artefacts (virtual tour, property website), and the full media grid.

05

The activity timeline visible on iOS and referenced in the web's JobDetailPage is a chronological feed sourced from multiple database columns: createdAt (order placed), scheduledTime (shoot scheduled), inProductionAt (shoot started), editingAt (editing started), deliveredAt (delivered), clientApprovedAt (customer approved), completedAt (project completed), and invoice lifecycle fields (sentAt, paidAt). Dispatch tracking phase timestamps (EN_ROUTE, ARRIVED, IN_PROGRESS, COMPLETE) also appear when a technician has started a trip. This timeline is the single most useful surface for quickly understanding a job's history without reading individual messages.

Key Takeaways

  • JobTaskView has two top-level tabs: Task (fields + discussion) and Media (uploaded assets); Invoice is a third destination accessed from the header strip.
  • The Task tab's two-column grid shows Address, Customer, Technician, PM, Editor, Schedule, Package, Media Types, and Priority — assignee slots are inline-editable for manager roles.
  • Discussion has Client and Team sub-channels; agents see only Client, provider roles see both.
  • On iOS, the same data splits across Appointment / Order / Deliverables tabs in OrderDetailView.
  • The Activity timeline reconstructs a job's full history from database timestamps — no need to read through messages to understand what happened.
Related documentation at docs.vremly.com