1. 12 Jan, 2017 2 commits
    • epriestley's avatar
      Provide bucketing for commits in Audit · a635da68
      epriestley authored
      Summary:
      Fixes T9430. Fixes T9362. Fixes T9544. This changes the default view of Audit to work like Differential, where commits you need to audit or respond to are shown in buckets.
      
      This is a bit messy and probably needs some followups. This stuff has changed from a compatibility viewpoint:
      
        - The query works differently now (but in a better, modern way), so existing saved queries will need to be updated.
        - I've removed the counters from the home page instead of updating them, since they're going to get wiped out by ProfileMenu soon anyway.
        - When bucketed queries return too many results (more than 1,000) we now show a warning about it. This isn't greaaaat but it seems good enough for now.
      
      Test Plan: {F2351123}
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T9430, T9362, T9544
      
      Differential Revision: https://secure.phabricator.com/D17192
      a635da68
    • epriestley's avatar
      Merge "Audit" more completely into "Diffusion" · 11861265
      epriestley authored
      Summary:
      Fixes T6630. Long ago, "Audit", "Diffusion" and "Repositories" were three totally separate applications.
      
      This separation isn't useful and the three rapidly became intertwined. Ideally, they would all be one application.
      
      This doesn't take us quite that far, but Audit no longer has any controllers and has little actual behavior.
      
      The "Audit" screen has always just been a SearchEngine view of commits with some filters on it, and this formalizes that and puts a link to it in Diffusion. (This view has other uses, too.)
      
      Test Plan:
        - Accessed audit from home page.
        - Accessed audit/commits from Diffusion.
        - Could no longer uninstall Audit on its own.
        - Grepped for `/audit/` and `AuditApplication`.
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T6630
      
      Differential Revision: https://secure.phabricator.com/D17186
      11861265
  2. 11 Jan, 2017 7 commits
  3. 10 Jan, 2017 1 commit
    • Chad Little's avatar
      Basic Favorites application · 6816974d
      Chad Little authored
      Summary: Ref T5867. Rough in a Favorites application, not wired to anything.
      
      Test Plan: tbd. currently 404s so... I messed up something. Tossing up to read.
      
      Reviewers: epriestley
      
      Reviewed By: epriestley
      
      Subscribers: Korvin
      
      Maniphest Tasks: T5867
      
      Differential Revision: https://secure.phabricator.com/D17160
      6816974d
  4. 08 Jan, 2017 3 commits
    • epriestley's avatar
      Add "project.column.search" for querying workboard column information · 63bfa5cc
      epriestley authored
      Summary:
      Ref T12074. Provide a basic but functional v3 API endpoint for reading workboard column information.
      
      There is no equivalent to this in the UI yet, although there may be some day (perhaps adjacent to T5024).
      
      Test Plan:
        - Queried for all columns.
        - Queried for columns on a particular board using `projectPHIDs`.
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T12074
      
      Differential Revision: https://secure.phabricator.com/D17157
      63bfa5cc
    • epriestley's avatar
      Add a "columns" attachment to the maniphest.search API method · ad3745c8
      epriestley authored
      Summary:
      Ref T12074. This allows callers to identify which columns an object appears in (currently, always tasks).
      
      There are a few major cases:
      
        - Object is in a normal column: we return column information.
        - Object is in a proxy column (subproject or milestone). For example, when you look at the board for "Some Parent Project", the task might show up in a milestone column. I've chosen to not return anything in this case: you can figure out that the task is there by looking at the project structure, and this is kind of an internal artifact of the implementation and probably not useful to callers.
        - Project does not have a workboard: we return nothing.
      
      These seem fairly reasonable, I think?
      
      Test Plan:
        - Queried for tasks, using the "columns" attachment.
        - Dragged a task across a board, querying it repeatedly. Got expected results for normal column (the column), subprojects with no board (nothing), milestones with no board (nothing) and mielstones/subprojects with a board (the column on //that// board, only, not the proxy column on the parent).
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T12074
      
      Differential Revision: https://secure.phabricator.com/D17156
      ad3745c8
    • epriestley's avatar
      Add "parent" and "ancestor" information to the project.search API · c0bec6c0
      epriestley authored
      Summary:
      Ref T12074.
      
        - Adds a new "parent" property on main results. This shows an abbreviated version of the project's parent, or `null` if the project is a root project.
        - Adds a new "ancestor" attachment to pull the entire ancestor list.
        - Adds a new "depth" property on main results.
        - You can use "parent" or "depth" to tell if a project is a subproject or not.
      
      These attempt to balance convenience, power, and performance: the full ancestor list can be big so I made it an attachment, but the other stuff isn't too big and is cheap and seems reasonable to always include.
      
      Test Plan:
      In API results:
      
        - Saw null parent (root projects) and non-null parent (subprojects/milestones).
        - Used "ancestors" attchment, got full list of ancestors.
        - Saw appropriate "depth" values.
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T12074
      
      Differential Revision: https://secure.phabricator.com/D17154
      c0bec6c0
  5. 04 Jan, 2017 1 commit
    • Chad Little's avatar
      Add Form MenuItem, Fix EditEngine Typeahead · e9243f22
      Chad Little authored
      Summary: Adds a FormEditEngine MenuItem for adding forms to Projects, Home, QuickCreate. Also adds an EditEngine typeahead that has token rendering issues currently.
      
      Test Plan: Set a normal form as a menu item, edit it, set the name. Set a custom form as a menu item, edit it, set a name.
      
      Reviewers: epriestley
      
      Reviewed By: epriestley
      
      Subscribers: Korvin
      
      Differential Revision: https://secure.phabricator.com/D17098
      e9243f22
  6. 03 Jan, 2017 1 commit
    • Chad Little's avatar
      Add download link to embedded files · 489587d6
      Chad Little authored
      Summary: Ref T3612. Doesn't render correctly, need help please. Adds a download icon into the renderfilelinkview to allow easier downloads.
      
      Test Plan: Click on link, get download, click on file, get lightbox.
      
      Reviewers: epriestley
      
      Reviewed By: epriestley
      
      Subscribers: Korvin
      
      Maniphest Tasks: T3612
      
      Differential Revision: https://secure.phabricator.com/D16980
      489587d6
  7. 01 Jan, 2017 2 commits
    • epriestley's avatar
      Use extended policies in Differential diffs · 65c1c758
      epriestley authored
      Summary:
      Fixes T9648. Diffs currently use `return $this->getRevision()->getViewPolicy();` to inherit their revision's view policy.
      
      After the introduction of object policies, this is wrong for policies like "Subscribers", because it means "Subscribers to this object, the diff". Since Diffs have no subscribers, this always fails.
      
      Instead, use extended policies so that the object policy evaluates in the context of the correct object (the revision).
      
      Test Plan:
        - Create a revision.
        - Subscribe `alice` to it.
        - Set view policy to "Subscribers".
        - View revision as `alice`.
        - Before patch: nonsense fatal about missing diff because of policy error.
        - After patch: `alice` can see the revision.
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T9648
      
      Differential Revision: https://secure.phabricator.com/D17123
      65c1c758
    • epriestley's avatar
      Be more lenient when accepting "Differential Revision" in the presence of... · ab17a7d4
      epriestley authored
      Be more lenient when accepting "Differential Revision" in the presence of custom ad-hoc commit message fields
      
      Summary:
      Fixes T8360. We will now parse revisions out of "Differential Revision: X" followed by other ad-hoc fields which we do not recognize. Previously, these fields would be treated as part of the value.
      
      (In the general case, other fields may line wrap so we can't assume that fields are only one line long. However, we can make that assumption safely for this field.)
      
      Also maybe fix whatever was going on in T9965 although that didn't really have a reproduction case.
      
      Test Plan: Added unit tests.
      
      Reviewers: chad
      
      Reviewed By: chad
      
      Maniphest Tasks: T8360
      
      Differential Revision: https://secure.phabricator.com/D17121
      ab17a7d4
  8. 31 Dec, 2016 8 commits
  9. 16 Dec, 2016 15 commits