Select the types of activity you want to include in your feed.
@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
···11+<?php
22+33+final class PhabricatorSearchDateControlField
44+ extends PhabricatorSearchField {
55+66+ protected function getValueExistsInRequest(AphrontRequest $request, $key) {
77+ // The control doesn't actually submit a value with the same name as the
88+ // key, so look for the "_d" value instead, which has the date part of the
99+ // control value.
1010+ return $request->getExists($key.'_d');
1111+ }
1212+1313+ protected function getValueFromRequest(AphrontRequest $request, $key) {
1414+ $value = AphrontFormDateControlValue::newFromRequest($request, $key);
1515+ $value->setOptional(true);
1616+ return $value->getDictionary();
1717+ }
1818+1919+ protected function newControl() {
2020+ return id(new AphrontFormDateControl())
2121+ ->setAllowNull(true);
2222+ }
2323+2424+ protected function didReadValueFromSavedQuery($value) {
2525+ if (!$value) {
2626+ return null;
2727+ }
2828+2929+ if ($value instanceof AphrontFormDateControlValue && $value->getEpoch()) {
3030+ return $value->setOptional(true);
3131+ }
3232+3333+ $value = AphrontFormDateControlValue::newFromWild(
3434+ $this->getViewer(),
3535+ $value);
3636+ return $value->setOptional(true);
3737+ }
3838+3939+}
···7575 // Show the notification itself.
7676 new JX.Notification()
7777 .setContent(JX.$H(response.content))
7878+ .setDesktopReady(response.desktopReady)
7979+ .setKey(response.primaryObjectPHID)
8080+ .setTitle(response.title)
8181+ .setBody(response.body)
8282+ .setHref(response.href)
8383+ .setIcon(response.icon)
7884 .show();
79858086 // If the notification affected an object on this page, show a