Summary:
Ref T4103. This doesn't get everything, but takes care of most of the easy stuff.
The tricky-ish bit here is that I need to move timezones, pronouns and translations to proper settings. I expect to pursue that next.
Test Plan:
- Grepped for `loadPreferences` to identify callsites.
- Changed start-of-week setting, loaded Calendar, saw correct start.
- Visited welcome page, read "Adjust Settings" point.
- Loaded Conpherence -- I changed behavior here slightly (switching threads drops the title glyph) but it wasn't consistent to start with and this seems like a good thing to push to the next version of Conpherence.
- Enabled Filetree, toggled in Differential.
- Disabled Filetree, no longer visible in Differential.
- Changed "Unified Diffs" preference to "Small Screens" vs "Always".
- Toggled filetree in Diffusion.
- Edited a task, saw sensible projects in policy dropdown.
- Viewed user profile, uncollapsed/collapsed side nav, reloaded page, sticky'd.
- Toggled "monospaced textareas", used a comment box, got appropriate fonts.
- Toggled durable column.
- Disabled title glyphs.
- Changed monospaced font to 18px/36px impact.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T4103
Differential Revision: https://secure.phabricator.com/D16004
Summary: Fixes T8897
Test Plan: Open any list view of Calendar events, every event should only show "Attending: ..." with users who are attending event.
Reviewers: chad, epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin
Maniphest Tasks: T8897
Differential Revision: https://secure.phabricator.com/D15779
Summary:
Ref T10295
* Viewing Upcoming Events in the calendar would display 'Attending: ' even if there were not attendees. This caused confusion, such as 'Is it telling me I am "Attending?"'
* When a calendar event has no attendees, simply do not display the 'Attending: ' label
Test Plan:
* Add a new event with no one attending.
* Add a new event with one or more attendees.
* View the Upcoming Events query of the Calendar app.
* Notice how the one with no attendees does not show 'Attending: ' while the other with attendees will show the already existing 'Attending: jdoe, ssmith' label.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T10295
Differential Revision: https://secure.phabricator.com/D15207
Summary: Fixes T9034, Calendar list objects that are ghost events should link to a ghost event, not the parent.
Test Plan: Open All Events in Calendar, make sure ghost objects open the ghost instance, not the parent instance.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin
Maniphest Tasks: T9034
Differential Revision: https://secure.phabricator.com/D13764
Summary: Fixes T8675, Set display mode for Upcoming Events builtin query so that no `$max_range` is set on the query
Test Plan: Open Upcoming Events builtin query, max events returned should be size of the page (100 objects)
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin
Maniphest Tasks: T8675
Differential Revision: https://secure.phabricator.com/D13447
Summary: Closes T8639, Formatting event dates in list view
Test Plan: List view should show dates in wide and narrow lists.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: epriestley, Korvin
Maniphest Tasks: T8639
Differential Revision: https://secure.phabricator.com/D13398
Summary: Ref T7950, Refactor Calendar Search, and implement Projects on events
Test Plan: Verify that all queries in Calendar search still work, and that events can now have associated Projects that you can search by in Calendar Search.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin
Maniphest Tasks: T7950
Differential Revision: https://secure.phabricator.com/D13393
Summary: Ref T8099. This adds a new class which all search engines return for layout. I thought about this a number of ways, and I think this is the cleanest path. Each Engine can return whatever UI bits they needs, and AppSearch or Dashboard picks and lays the bits out as needed. In the AppSearch case, interfaces like Notifications, Calendar, Legalpad all need more custom layouts. I think this also leaves a resonable path forward for NUX as well. Also, not sure I implemented the class correctly, but assume thats easy to fix?
Test Plan: Review and do a search in each application changed. Grep for all call sites.
Reviewers: btrahan, epriestley
Reviewed By: epriestley
Subscribers: epriestley, Korvin
Maniphest Tasks: T8099
Differential Revision: https://secure.phabricator.com/D13332
Summary: Closes T8050, Format Calendar list objects
Test Plan: Open Calendar list, check that new formatting is true to mocks.
Reviewers: chad, #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: epriestley, Korvin
Maniphest Tasks: T8050
Differential Revision: https://secure.phabricator.com/D13318
Summary: Ref T8577, More correct fix - set default value array() for `getParameter` call.
Test Plan: Make sure saved queries like Month View, Day View, and Upcoming Events, still work.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin
Maniphest Tasks: T8577
Differential Revision: https://secure.phabricator.com/D13330
Summary: Closes T8046, Convert "Created By" and "Invited" inputs in Calendar search to use `PhabricatorPeopleUserFunctionDatasource`
Test Plan: {nav Calendar > Advanced Search}, search for "members:Calendar", created by and invited. Should autofill and search correctly.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: epriestley, Korvin
Maniphest Tasks: T8046
Differential Revision: https://secure.phabricator.com/D13311
Summary: Ref T8394, List view should only allow 100 ghost events per recurring event
Test Plan: Open list view with many recurring events. Shouldn't hang.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8394
Differential Revision: https://secure.phabricator.com/D13132
Summary: Ref T8357, DRAFT, recurring events need optional end dates
Test Plan: Edit recurring event, set end date, save, recurring ghosts should not generate after end date
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8357
Differential Revision: https://secure.phabricator.com/D13088
Summary: Fixes T8347, Generated ghost events should start generating as early as the range start minus the duration of the event.
Test Plan: Create a year long weekly event, a year later, each day should have about 52 events.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8347
Differential Revision: https://secure.phabricator.com/D13069
Summary: Ref T8300, clicking in day view should create new event
Test Plan: Open day view, click in an empty slot, new event modal should open.
Reviewers: epriestley, #blessed_reviewers, chad
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8300
Differential Revision: https://secure.phabricator.com/D12990
Summary: Closes T7936, Calendar event icons show up on month and day views
Test Plan: Calendar month and day views should show event icons
Reviewers: chad, #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T7936
Differential Revision: https://secure.phabricator.com/D12943
Summary: Closes T8176, Add a setting so user can choose when Calendar weeks start
Test Plan: Open account settings, go to "Date and Time", change week start day, open Calendar, observe that month view responds to new week start day.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8176
Differential Revision: https://secure.phabricator.com/D12884
Summary: Ref T8183. The list view still used this field to choose a red/orange bar color.
Test Plan: Viewed event list view.
Reviewers: btrahan
Reviewed By: btrahan
Subscribers: epriestley
Maniphest Tasks: T8183
Differential Revision: https://secure.phabricator.com/D12857
Summary: Closes T8189, Calendar events should be green if viewer is invited, and grey if not.
Test Plan: Check that month and day views display events that viewer is invited to as green and grey otherwise, including month day badges on mobile monthly view.
Reviewers: chad, #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8189
Differential Revision: https://secure.phabricator.com/D12850
Summary: Closes T8177, Leading and trailing days should be considered part of the month in month view.
Test Plan: Open month view, no days should be empty unless they don't have events. Modify query, make sure month view still obeys query.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8177
Differential Revision: https://secure.phabricator.com/D12834
Summary: Ref T4392, First pass at Month View
Test Plan: Open month view, month view days should correctly grow with number of events, day numbers should now live at the bottom of day cells, day numbers should be links to day views of those days.
Reviewers: chad, epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T4392
Differential Revision: https://secure.phabricator.com/D12800
Summary: Ref T8050, Deprecating BrowseController and getting rid of unneeded calls to `getTerseSummary()` and `getHumanStatus()`
Test Plan: Use calendar, make sure nothing explodes
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8050
Differential Revision: https://secure.phabricator.com/D12791
Summary: Closes T8137, Calendar events in month view should display event names instead of "Away" summary
Test Plan: Open month view in Calendar, all events should display as their actual names.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8137
Differential Revision: https://secure.phabricator.com/D12790
Summary: Closes T8104, Calendar month view should notify user if all or part of the month was not included in the query search
Test Plan: In Calendar month view, search May 1-13, get "part of month is out of range", search May 1-31, 12am - 11:59:59, get no errors.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T8104
Differential Revision: https://secure.phabricator.com/D12787
Summary: Ref T8104, Calendar day view should notify user if they have navigated away from the query range dates.
Test Plan: Open Calendar day view, choose May 12-13 range, execute query, page through to May 11, day view should show error that day is out of range.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8104
Differential Revision: https://secure.phabricator.com/D12786
Summary: Closes T8085, Calendar day view and corresponding sidebar should correctly display all all-day events returned from query
Test Plan: Open day view with all-day and multi-day events, all events should correctly be drawn in day view in correct order, and sidebar preview should correctly mark future day boxes with all day events.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8085
Differential Revision: https://secure.phabricator.com/D12776
Summary: Closes T8108, Calendar sidebar should include a Day View builtin query
Test Plan: Open Calendar, navigate to Day View in left sidebar, Day View with event preview should work as expected
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T8108
Differential Revision: https://secure.phabricator.com/D12767
Summary: Ref T4393, First stab at Calendar day view sidebar
Test Plan: Open Calendar day view, sidebar should show today and the next 6 days, empty or not.
Reviewers: epriestley, #blessed_reviewers, chad
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12742
Summary: Ref T4393, Refactoring calendar query logic to only return at most what the query dates have specified
Test Plan: Query Calendar events for range May 1 - indefinite in month view, see events, scroll back to April, events should be absent, because April is out of range.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12728
Summary: Ref T4393, Calendar day view should have forward/back controls to scroll through days
Test Plan: Open day view on first or last day of the month, scrolling backwards or forwards through days should correctly calculate the date of the next day and the previous day and correctly find events.
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12721
Summary: Ref T4393, Implement day view event clustering so that overlapping events can share latitude.
Test Plan: Open day view in Calendar search query on a day with overlapping events. Overlapping events should be displayed side by side when possible, and should be layed out as a staircase when overlapping times.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12711
Summary: Ref T4393, Refactoring CalendarEventSearchEngine to fit new null handling of AphrontFormDateControlValue
Test Plan: Use calendar query for day view, expect no php errors
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12701
Summary: Ref T8024. Allow `DateControlValue` to manage enabled/disabled state, so we can eventually delete the copy of this logic in `DateControl`.
Test Plan:
- Used Calendar ApplicationSearch queries to observe improved behaviors:
- Error for invalid start date, if enabled.
- Error for invalid end date, if enabled.
- Error for invalid date range, if both enabled.
- When submitting an invalid date (for example, with the time "Tea Time"), form retains invalid date verbatim instead of discarding information.
- Created an event, using existing date controls to check that I didn't break anything.
Reviewers: chad, lpriestley, btrahan
Reviewed By: btrahan
Subscribers: epriestley
Maniphest Tasks: T8024
Differential Revision: https://secure.phabricator.com/D12673
Summary: Ref T4393, Making the day view slightly less bad.
Test Plan: Open Calendar Advanced Search, search for day with multiple events starting at the same time, events should show up side by side, and should link to actual events.
Reviewers: chad, #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T4393
Differential Revision: https://secure.phabricator.com/D12686
Summary: Closes T7927, Fix event pagination in month views.
Test Plan: Querying for events in month view should display max that month's events and min the subset of days selected.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T7927
Differential Revision: https://secure.phabricator.com/D12661
Summary: Closes T7933, Calendar items in Upcoming Events query should link to events, not calendar.
Test Plan: Open Upcoming Events query, click on an event, event detail view should open.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T7933
Differential Revision: https://secure.phabricator.com/D12631
Summary: Closes T7943, Canceling calendar event should deactivate the event instead of destroying data.
Test Plan: Create an event, cancel it, see changed status icon, query for active events, event should not appear, query for deactivated events, event should appear in results.
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, epriestley
Maniphest Tasks: T7943
Differential Revision: https://secure.phabricator.com/D12604
Summary:
Ref T7689. This serves two goals:
- I want to remove Controller->loadViewerHandles(). A nontrivial number of these callsites are loading handles to pass to tokenizers. Since tokenizers need to take strings eventually anyway, we can do less work by letting them take PHIDs now.
- A few changes out, I want tokenizers to accept parameterized tokens (like `viewer()`, `members(differential)`, etc.), so the `setValues()` signature needs to change eventually anyway.
I made this work and converted a handful of callsites as an example; upcoming changes will convert more.
Test Plan:
- Viewed Almanac binding editor; used "Interface".
- Edited Almanac services; used "Projects".
- Edited Almanac devices; used "Projects".
- Searched for commits; used "Auditors"; "Commit Authors", "Repositories".
- Searched for calendar events; used "Created By"; used "Invited".
Reviewers: btrahan
Reviewed By: btrahan
Subscribers: epriestley
Maniphest Tasks: T7689
Differential Revision: https://secure.phabricator.com/D12218