1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-14 19:02:41 +01:00
Commit graph

60 commits

Author SHA1 Message Date
Chad Little
801607381d [Redesign] PhabricatorApplicationSearchResultView
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
2015-06-19 11:46:20 +01:00
lkassianik
868ee3ef2f Only evaluate tokens if phids not null
Summary: Fixes T8577, Only evaluate tokens if phids not null

Test Plan: Open Upcoming Events in Calendar.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Maniphest Tasks: T8577

Differential Revision: https://secure.phabricator.com/D13326
2015-06-17 08:12:01 -07:00
lkassianik
05066f649b Convert "Created By" and "Invited" inputs in Calendar search to use PhabricatorPeopleUserFunctionDatasource
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
2015-06-16 13:38:11 -07:00
lkassianik
55c73b20ca Attempt to optimize ghost generating code.
Summary: Ref T8394, Attempt to optimize ghost generating code.

Test Plan: Open Upcoming, cancelled only, list view query. Should not hang.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T8394

Differential Revision: https://secure.phabricator.com/D13141
2015-06-03 13:01:26 -07:00
lkassianik
d3a84687ba Query for recurring event parents should accept a "not a child of anything" clause
Summary: Closes T8371, Query for recurring event parents should accept a "not a child of anything" clause

Test Plan: querying for a list of events with recurring events should still work the same.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T8371

Differential Revision: https://secure.phabricator.com/D13140
2015-06-03 09:27:39 -07:00
lkassianik
446611e2e3 Cancelled recurring events should propogate to real child events
Summary: Ref T8371, Cancelled recurring events should propogate to real child events

Test Plan: Create recurring event, create and exception to a ghost event, cancel recurring event, real ghost event should be treated as cancelled while the recurring event remains cancelled.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T8371

Differential Revision: https://secure.phabricator.com/D13121
2015-06-02 19:44:31 -07:00
lkassianik
5e168b629d List view should only allow 100 ghost events per recurring event.
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
2015-06-02 18:26:51 -07:00
lkassianik
95551a1a5a DRAFT, recurring events need optional end dates
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
2015-06-01 18:56:11 -07:00
lkassianik
65d9c0ea24 Edit recurring ghost events, not recurring event.
Summary: Closes T8358, Edit recurring ghost events, not recurring event.

Test Plan: Create recurring event, original event should not be editable, but ghost events should be editable.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T8358

Differential Revision: https://secure.phabricator.com/D13075
2015-05-31 15:04:48 -07:00
lkassianik
447c372cfe Generated ghost events should start generating as early as the range start minus the duration of the event.
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
2015-05-29 15:46:18 -07:00
epriestley
cb52dd27fc Fix a possible query error in filtering events
If all events are filtered by range logic, this invitee query may be invalid.

Auditors: lpriestley
2015-05-29 07:17:09 -07:00
lkassianik
59f0e8f950 DRAFT Add db columns for recurring events
Summary: Ref T2896, DRAFT Add db columns for recurring events

Test Plan: Open event, confirm it still works.

Reviewers: chad, #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: btrahan, Korvin, epriestley

Maniphest Tasks: T2896

Differential Revision: https://secure.phabricator.com/D13039
2015-05-28 17:27:25 -07:00
lkassianik
46c5e055a2 All day events should obey selected query range in viewer timezone.
Summary: Fixes T8147, All day events should obey selected query range in viewer timezone.

Test Plan: Create all day event May 25, query for events May 26-27. All day event should not be part of the query results list.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T8147

Differential Revision: https://secure.phabricator.com/D13023
2015-05-26 14:28:07 -07:00
lkassianik
18fe6d58ae Clicking in day view should create new event
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
2015-05-24 11:22:33 -07:00
lkassianik
680e8fdfdb Calendar query results should be ordered from first start date to last start date
Summary: Closes T8041, Calendar query results should be ordered from first start date to last start date

Test Plan: Open "Upcoming Events" in Calendar, verify that the event with the first start date is first and that events are ordered in ascending start dates.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T8041

Differential Revision: https://secure.phabricator.com/D12968
2015-05-21 17:10:27 -07:00
lkassianik
f7c48acf44 Calendar event icons show up on month and day views
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
2015-05-19 16:55:36 -07:00
lkassianik
31988e74d1 Add a setting so user can choose when Calendar weeks start
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
2015-05-16 20:13:25 -07:00
epriestley
7179def064 Clean up a missed access to Calendar status
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
2015-05-15 11:54:51 -07:00
lkassianik
4016107411 Calendar events should be green if viewer is invited, and grey if not.
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
2015-05-14 19:20:44 -07:00
lkassianik
a76d3a8bb5 Leading and trailing days should be considered part of the month in month view.
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
2015-05-13 19:02:33 -07:00
lkassianik
c4dfc097c8 First pass at Month View
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
2015-05-11 18:15:27 -07:00
lkassianik
51facbabba Deprecating BrowseController and getting rid of unneeded calls to getTerseSummary() and getHumanStatus()
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
2015-05-10 11:14:24 -07:00
lkassianik
e074be0d3f Calendar events in month view should display event names instead of "Away" summary
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
2015-05-10 10:40:55 -07:00
lkassianik
f7662d61ac Calendar month view should notify user if all or part of the month was not included in the query search
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
2015-05-09 19:11:30 -07:00
lkassianik
b67ad3c4e0 Calendar day view should notify user if they have navigated away from the query range dates.
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
2015-05-09 14:19:48 -07:00
lkassianik
22ac7d7c76 Calendar day view and corresponding sidebar should correctly display all all-day events returned from query
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
2015-05-08 13:27:48 -07:00
lkassianik
314dc5b957 Calendar builtin queries should include a Day View
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
2015-05-07 21:18:48 -07:00
epriestley
f3d76a90f0 Translate "All Day" events into the viewer's time
Summary:
Ref T8021.

  - When "All Day" events are loaded, convert them into the viewer's time.
  - When "All Day" events are saved, convert them into a +24 hour range.

Test Plan:
  - Created and updated "All Day" events.
  - Created and updated normal events.
  - Changed timezones, edited and viewed "All Day" events and normal events.
  - In all cases, "All Day" events appeared to be 12:00AM - 11:59:59PM to the viewer, on the correct day.
  - Normal events shifted around properly according to timezones.

Reviewers: lpriestley

Reviewed By: lpriestley

Subscribers: epriestley

Maniphest Tasks: T8021

Differential Revision: https://secure.phabricator.com/D12765
2015-05-07 18:57:28 -07:00
lkassianik
78438951c8 Refactoring to use PHUICalendarListView instead of boxes
Summary: Ref T4393, Refactoring to use `PHUICalendarListView` instead of boxes

Test Plan: See new sidebar

Reviewers: chad, #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T4393

Differential Revision: https://secure.phabricator.com/D12743
2015-05-06 19:19:14 -07:00
lkassianik
7fd401d0e0 First stab at Calendar day view sidebar
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
2015-05-06 18:41:48 -07:00
epriestley
597566823e Fix a bad Calendar query (missing space in "...event.phidAND...")
Auditors: lpriestley
2015-05-06 12:41:02 -07:00
lkassianik
a54011b84e Searching Calendar events by invitee should work now
Summary: Closes T8045, Searching Calendar events by invitee should work now

Test Plan: Open Advanced Search on Calendar, search by invitee, only events with invitee specified should be returned.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T8045

Differential Revision: https://secure.phabricator.com/D12738
2015-05-06 11:12:24 -07:00
lkassianik
88ef32f61c Restricting query to return the displayed range
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
2015-05-05 16:04:00 -07:00
lkassianik
14af40afa0 Calendar day view should have forward/back controls to scroll through days
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
2015-05-05 12:51:32 -07:00
lkassianik
0aea2cb1c0 Implement day view event clustering so that overlapping events can share latitude
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
2015-05-04 21:23:18 -07:00
lkassianik
c02db2d15c Refactoring CalendarEventSearchEngine to fit new null handling of AphrontFormDateControlValue
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
2015-05-04 11:38:21 -07:00
epriestley
948d69364a Manage date control enabled state as part of DateControlValue
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
2015-05-04 10:08:49 -07:00
lkassianik
6817e55ec6 Making the day view slightly less bad.
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
2015-05-03 18:13:48 -07:00
lkassianik
ee2af90455 First stab at day view
Summary: Ref T4393, First stab at day view.

Test Plan: Open Calendar Advanced Search, select "Day View (beta)", see rough day view of selected day.

Reviewers: chad, epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T4393

Differential Revision: https://secure.phabricator.com/D12685
2015-05-03 16:57:18 -07:00
lkassianik
0c1f367c92 Fix event pagination in month views
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
2015-05-02 16:17:05 -07:00
lkassianik
52a461a75c Expand ApplicationSearch on Calendar
Summary: Ref T7927, Expand ApplicationSearch on Calendar

Test Plan: Open Calendar application, month view should be a saved query.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T7927

Differential Revision: https://secure.phabricator.com/D12659
2015-05-02 15:27:33 -07:00
lkassianik
f14e0bf2ef Calendar items in Upcoming Events query should link to events, not calendar
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
2015-04-30 13:22:13 -07:00
lkassianik
f721501877 Fixing strictly null checks in CalendarInviteeQuery
Summary: Ref T7935, Fixing strictly null checks in CalendarInviteeQuery

Test Plan: Check code.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T7935

Differential Revision: https://secure.phabricator.com/D12615
2015-04-29 13:56:26 -07:00
lkassianik
d4176606f9 Calendar events should now auto-invite the creator
Summary: Closes T7935, Calendar events should now auto-invite the creator.

Test Plan: Create event, save, event should now show creator as an invitee.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T7935

Differential Revision: https://secure.phabricator.com/D12613
2015-04-29 13:51:09 -07:00
lkassianik
0f914afda9 Canceling calendar events should deactivate the event
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
2015-04-29 08:39:39 -07:00
lkassianik
c6fa4355cc Calendar events should support subscribers, for possible future uses.
Summary: Closes T7974, Calendar events support subscribers.

Test Plan: Create or update calendar event, add subscribers, save, event detail view should show subscribers, and timeline should reflect the action.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin, epriestley

Maniphest Tasks: T7974

Differential Revision: https://secure.phabricator.com/D12595
2015-04-28 10:40:35 -07:00
lkassianik
65329204a5 T5464, ApplicationTransactions for calendar events
Summary: Closes T5464, Implement ApplicationTransactions in Calendar.

Test Plan: Create a calendar event, update calendar event, detail view of event should show update history.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: johnny-bit, Korvin, epriestley

Maniphest Tasks: T5464

Differential Revision: https://secure.phabricator.com/D12586
2015-04-28 06:26:48 -07:00
epriestley
f5580c7a08 Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery
Summary:
Ref T4100. Ref T5595.

To support a unified "Projects:" query across all applications, a future diff is going to add a set of "Edge Logic" capabilities to `PolicyAwareQuery` which write the required SELECT, JOIN, WHERE, HAVING and GROUP clauses for you.

With the addition of "Edge Logic", we'll have three systems which may need to build components of query claues: ordering/paging, customfields/applicationsearch, and edge logic.

For most clauses, queries don't currently call into the parent explicitly to get default components. I want to move more query construction logic up the class tree so it can be shared.

For most methods, this isn't a problem, but many subclasses define a `buildWhereClause()`. Make all such definitions protected and consistent.

This causes no behavioral changes.

Test Plan: Ran `arc unit --everything`, which does a pretty through job of verifying this statically.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: yelirekim, hach-que, epriestley

Maniphest Tasks: T4100, T5595

Differential Revision: https://secure.phabricator.com/D12453
2015-04-20 10:06:09 -07:00
epriestley
7711ea9855 Move handle fetching into tokenizer Datasources
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
2015-03-31 14:10:32 -07:00
Bob Trahan
5a9df1a225 Policy - filter app engines where the user can't see the application from panel editing
Summary: Fixes T7118. This does the basic "filter the list" thing, though it ends up being a little manual since I guess this hasn't come up before? There is also potential weird behavior if the user was using an app and lost access to it - they will have nothing selected on edit - but I think this is actually correct behavior in this circumstance.

Test Plan:
used a user who couldn't get access to the "quick create" apps and noted that the dropdown list on dashboard panel create was missing the expected engines

ran `arc unit --everything` to verify abstract method implemented everywhere

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T7118

Differential Revision: https://secure.phabricator.com/D11687
2015-02-04 15:47:48 -08:00