Technical communications/Status helper
Appearance
Behavior of the status helper
[edit]Adding a new status update
[edit]- Users can add a new status update by clicking a link.
- When clicking the link, a set of information and controls are shown in a modal overlay:
- the name of the activity to which the user is adding a status update, with a link to it;
- the date to use for the status update, prefilled with the current date from the server;
- a checkbox to decide if the status is a monthly summary to use in the monthly report;
- a free-form text field for the actual update;
- a preview button;
- a publish button.
- Users can preview their status update in the overlay before publishing it.
- This adds an item to the overlay: the preview.
- If the user is adding a status update while on a monthly report page, the "monthly summary" checkbox is already checked.
- When the "monthly summary" checkbox is checked, the date used is "YYYY-MM-monthly" instead of "YYYY-MM-DD".
- When saving the page, the information entered is formatted with the following template before being posted to the page:
== $date == <section begin=$date/>$text<section end=$date/>
- When saving the page, the "latest" field at the top of the /status subpage is changed to the status' date, if it's more recent.
Last update on: <section begin=latest />$date<section end=latest />
- Once the page is saved, the pages where the status is transcluded (available through
Special:WhatLinksHere/$activitypage/status&hidelinks=1&hideredirs=1
) are purged to show the new status.
If the /status page doesn't exist yet
[edit]The interface presented to the user is the same, and the behavior is similar, except the first line of the page needs to be added before the update:
Last update on: <section begin=latest />$date<section end=latest />
Editing an existing status update
[edit]- Users can edit an existing status update by clicking a link.
- When clicking the link, a set of information and controls are shown in a modal overlay, identical to those displayed for a new update, but with more fields prefilled:
- the date is the date of the existing update instead of the current date;
- the free-form text field contains the existing text;
- the preview shows the existing status.
Handling conflicts
[edit]- If the date used for a new update conflicts with an existing update (same date, or existing monthly summary):
- Display a heads-up;
- Display the existing status in the preview area;
- Offer to:
- replace the existing status (the new status overwrites the existing status);
- amend the existing status (the free-form text field is reloaded with the existing status; this is the same as canceling and opening the existing status for editing);
- cancel (the existing status remains).
Pushing status updates to a feed
[edit]- ...
Template features needed
[edit]In order to have inline edit/add links, it would be very helpful to have spans around content:
<span class="foo" data-bar="thing" data-baz="another thing">I am a thing!</span>
For purposes of this example, the following data will be used:
- example project name: "Example project"
- example project page: "Project/Example"
- example project status page "Project/Example/status"
- example department: "Generic Engineering"
Here is the list of span attributes we need
- Around the text of the status updates :
- class="mw-statushelper-entry"
- data-statuspage="Project/Example/status"
- data-entrydate="2012-06-02"
- Around the "add" link:
- class="mw-statushelper-addlink"
- data-statuspage="Project/Example/status"
- Around the "edit" link:
- class="mw-statushelper-editlink"
- data-statuspage="Project/Example/status"
- data-entrydate="2012-06-02"
- On each entry on the department page (used for constructing an accurate list of projects)
- class="mw-statushelper-project"
- data-projpage="Example/Project"
- data-projname="Example project"
- data-statuspage="Project/Example/status"
- data-projdept="Generic Engineering"
- To determine if the project is backburnered or complete: see if it's in a collapsed table
Someday
[edit]- Ability for users to specify their followed activities (à la watchlist)
- Followed activities can be accessed through a dedicated page, where users ca add new status updates
- If a user is defined as a member of the activity's team, the activity is automatically added to the user's list of followed activities