@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add "Date Updated" query fields for Maniphest

Summary:
Fixes T4637.

- We already allow you to order by this column but don't have a key on it. Add one.
- Expose UI for querying on ranges.

Test Plan:
- Ran some queries, got reasonable-looking results and no table scans.

Reviewers: btrahan, bigo

Reviewed By: bigo

Subscribers: bigo, epriestley

Maniphest Tasks: T4637

Differential Revision: https://secure.phabricator.com/D8557

+49
+2
resources/sql/autopatches/20140317.mupdatedkey.sql
··· 1 + ALTER TABLE {$NAMESPACE}_maniphest.maniphest_task 2 + ADD KEY `key_dateModified` (dateModified);
+26
src/applications/maniphest/query/ManiphestTaskQuery.php
··· 22 22 private $includeNoProject = null; 23 23 private $dateCreatedAfter; 24 24 private $dateCreatedBefore; 25 + private $dateModifiedAfter; 26 + private $dateModifiedBefore; 25 27 26 28 private $fullTextSearch = ''; 27 29 ··· 153 155 return $this; 154 156 } 155 157 158 + public function withDateModifiedBefore($date_modified_before) { 159 + $this->dateModifiedBefore = $date_modified_before; 160 + return $this; 161 + } 162 + 163 + public function withDateModifiedAfter($date_modified_after) { 164 + $this->dateModifiedAfter = $date_modified_after; 165 + return $this; 166 + } 167 + 156 168 public function loadPage() { 157 169 158 170 // TODO: (T603) It is possible for a user to find the PHID of a project ··· 191 203 $conn, 192 204 'dateCreated <= %d', 193 205 $this->dateCreatedBefore); 206 + } 207 + 208 + if ($this->dateModifiedAfter) { 209 + $where[] = qsprintf( 210 + $conn, 211 + 'dateModified >= %d', 212 + $this->dateModifiedAfter); 213 + } 214 + 215 + if ($this->dateModifiedBefore) { 216 + $where[] = qsprintf( 217 + $conn, 218 + 'dateModified <= %d', 219 + $this->dateModifiedBefore); 194 220 } 195 221 196 222 $where[] = $this->buildPagingClause($conn);
+21
src/applications/maniphest/query/ManiphestTaskSearchEngine.php
··· 64 64 65 65 $saved->setParameter('createdStart', $request->getStr('createdStart')); 66 66 $saved->setParameter('createdEnd', $request->getStr('createdEnd')); 67 + $saved->setParameter('modifiedStart', $request->getStr('modifiedStart')); 68 + $saved->setParameter('modifiedEnd', $request->getStr('modifiedEnd')); 67 69 68 70 $limit = $request->getInt('limit'); 69 71 if ($limit > 0) { ··· 168 170 169 171 if ($end) { 170 172 $query->withDateCreatedBefore($end); 173 + } 174 + 175 + $mod_start = $this->parseDateTime($saved->getParameter('modifiedStart')); 176 + $mod_end = $this->parseDateTime($saved->getParameter('modifiedEnd')); 177 + 178 + if ($mod_start) { 179 + $query->withDateModifiedAfter($mod_start); 180 + } 181 + 182 + if ($mod_end) { 183 + $query->withDateModifiedBefore($mod_end); 171 184 } 172 185 173 186 $this->applyCustomFieldsToQuery($query, $saved); ··· 343 356 pht('Created After'), 344 357 'createdEnd', 345 358 pht('Created Before')); 359 + 360 + $this->buildDateRange( 361 + $form, 362 + $saved, 363 + 'modifiedStart', 364 + pht('Updated After'), 365 + 'modifiedEnd', 366 + pht('Updated Before')); 346 367 347 368 $form 348 369 ->appendChild(