@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.

Require canonical numbers in routes

Summary:
D03646 works, I don't want it to work.
Theoretically, it can cause us some troubles if we use this string in JS number context where 030 is 24.

Test Plan: D03646, D3646

Reviewers: epriestley, edward

Reviewed By: edward

CC: aran, Korvin

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

vrana 22cb8f5d 26d62ee4

+62 -57
+1 -1
src/applications/audit/application/PhabricatorApplicationAudit.php
··· 37 37 'view/(?P<filter>[^/]+)/(?:(?P<name>[^/]+)/)?' 38 38 => 'PhabricatorAuditListController', 39 39 'addcomment/' => 'PhabricatorAuditAddCommentController', 40 - 'preview/(?P<id>\d+)/' => 'PhabricatorAuditPreviewController', 40 + 'preview/(?P<id>[1-9]\d*)/' => 'PhabricatorAuditPreviewController', 41 41 ), 42 42 ); 43 43 }
+3 -3
src/applications/countdown/application/PhabricatorApplicationCountdown.php
··· 47 47 '/countdown/' => array( 48 48 '' 49 49 => 'PhabricatorCountdownListController', 50 - '(?P<id>\d+)/' 50 + '(?P<id>[1-9]\d*)/' 51 51 => 'PhabricatorCountdownViewController', 52 - 'edit/(?:(?P<id>\d+)/)?' 52 + 'edit/(?:(?P<id>[1-9]\d*)/)?' 53 53 => 'PhabricatorCountdownEditController', 54 - 'delete/(?P<id>\d+)/' 54 + 'delete/(?P<id>[1-9]\d*)/' 55 55 => 'PhabricatorCountdownDeleteController' 56 56 ), 57 57 );
+5 -4
src/applications/daemon/application/PhabricatorApplicationDaemons.php
··· 45 45 public function getRoutes() { 46 46 return array( 47 47 '/daemon/' => array( 48 - 'task/(?P<id>\d+)/' => 'PhabricatorWorkerTaskDetailController', 49 - 'task/(?P<id>\d+)/(?P<action>[^/]+)/' 48 + 'task/(?P<id>[1-9]\d*)/' => 'PhabricatorWorkerTaskDetailController', 49 + 'task/(?P<id>[1-9]\d*)/(?P<action>[^/]+)/' 50 50 => 'PhabricatorWorkerTaskUpdateController', 51 51 'log/' => array( 52 52 '(?P<running>running/)?' => 'PhabricatorDaemonLogListController', 53 53 'combined/' => 'PhabricatorDaemonCombinedLogController', 54 - '(?P<id>\d+)/' => 'PhabricatorDaemonLogViewController', 54 + '(?P<id>[1-9]\d*)/' => 'PhabricatorDaemonLogViewController', 55 55 ), 56 56 'timeline/' => 'PhabricatorDaemonTimelineConsoleController', 57 - 'timeline/(?P<id>\d+)/' => 'PhabricatorDaemonTimelineEventController', 57 + 'timeline/(?P<id>[1-9]\d*)/' 58 + => 'PhabricatorDaemonTimelineEventController', 58 59 '' => 'PhabricatorDaemonConsoleController', 59 60 ), 60 61 );
+9 -8
src/applications/differential/application/PhabricatorApplicationDifferential.php
··· 38 38 39 39 public function getRoutes() { 40 40 return array( 41 - '/D(?P<id>\d+)' => 'DifferentialRevisionViewController', 41 + '/D(?P<id>[1-9]\d*)' => 'DifferentialRevisionViewController', 42 42 '/differential/' => array( 43 43 '' => 'DifferentialRevisionListController', 44 44 'filter/(?P<filter>\w+)/(?:(?P<username>[\w\.-_]+)/)?' => 45 45 'DifferentialRevisionListController', 46 46 'stats/(?P<filter>\w+)/' => 'DifferentialRevisionStatsController', 47 47 'diff/' => array( 48 - '(?P<id>\d+)/' => 'DifferentialDiffViewController', 48 + '(?P<id>[1-9]\d*)/' => 'DifferentialDiffViewController', 49 49 'create/' => 'DifferentialDiffCreateController', 50 50 ), 51 51 'changeset/' => 'DifferentialChangesetViewController', 52 - 'revision/edit/(?:(?P<id>\d+)/)?' 52 + 'revision/edit/(?:(?P<id>[1-9]\d*)/)?' 53 53 => 'DifferentialRevisionEditController', 54 54 'comment/' => array( 55 - 'preview/(?P<id>\d+)/' => 'DifferentialCommentPreviewController', 55 + 'preview/(?P<id>[1-9]\d*)/' => 'DifferentialCommentPreviewController', 56 56 'save/' => 'DifferentialCommentSaveController', 57 57 'inline/' => array( 58 - 'preview/(?P<id>\d+)/' => 59 - 'DifferentialInlineCommentPreviewController', 60 - 'edit/(?P<id>\d+)/' => 'DifferentialInlineCommentEditController', 58 + 'preview/(?P<id>[1-9]\d*)/' 59 + => 'DifferentialInlineCommentPreviewController', 60 + 'edit/(?P<id>[1-9]\d*)/' 61 + => 'DifferentialInlineCommentEditController', 61 62 ), 62 63 ), 63 - 'subscribe/(?P<action>add|rem)/(?P<id>\d+)/' 64 + 'subscribe/(?P<action>add|rem)/(?P<id>[1-9]\d*)/' 64 65 => 'DifferentialSubscribeController', 65 66 ), 66 67 );
+2 -2
src/applications/files/application/PhabricatorApplicationFiles.php
··· 44 44 45 45 public function getRoutes() { 46 46 return array( 47 - '/F(?P<id>\d+)' => 'PhabricatorFileShortcutController', 47 + '/F(?P<id>[1-9]\d*)' => 'PhabricatorFileShortcutController', 48 48 '/file/' => array( 49 49 '' => 'PhabricatorFileListController', 50 50 'filter/(?P<filter>\w+)/' => 'PhabricatorFileListController', 51 51 'upload/' => 'PhabricatorFileUploadController', 52 52 'dropupload/' => 'PhabricatorFileDropUploadController', 53 - 'delete/(?P<id>\d+)/' => 'PhabricatorFileDeleteController', 53 + 'delete/(?P<id>[1-9]\d*)/' => 'PhabricatorFileDeleteController', 54 54 'info/(?P<phid>[^/]+)/' => 'PhabricatorFileInfoController', 55 55 'data/(?P<key>[^/]+)/(?P<phid>[^/]+)/.*' 56 56 => 'PhabricatorFileDataController',
+1 -1
src/applications/flag/application/PhabricatorApplicationFlags.php
··· 65 65 '' => 'PhabricatorFlagListController', 66 66 'view/(?P<view>[^/]+)/' => 'PhabricatorFlagListController', 67 67 'edit/(?P<phid>[^/]+)/' => 'PhabricatorFlagEditController', 68 - 'delete/(?P<id>\d+)/' => 'PhabricatorFlagDeleteController', 68 + 'delete/(?P<id>[1-9]\d*)/' => 'PhabricatorFlagDeleteController', 69 69 ), 70 70 ); 71 71 }
+4 -4
src/applications/herald/application/PhabricatorApplicationHerald.php
··· 54 54 => 'HeraldHomeController', 55 55 'new/(?:(?P<type>[^/]+)/(?:(?P<rule_type>[^/]+)/)?)?' 56 56 => 'HeraldNewController', 57 - 'rule/(?:(?P<id>\d+)/)?' => 'HeraldRuleController', 58 - 'history/(?:(?P<id>\d+)/)?' => 'HeraldRuleEditHistoryController', 59 - 'delete/(?P<id>\d+)/' => 'HeraldDeleteController', 57 + 'rule/(?:(?P<id>[1-9]\d*)/)?' => 'HeraldRuleController', 58 + 'history/(?:(?P<id>[1-9]\d*)/)?' => 'HeraldRuleEditHistoryController', 59 + 'delete/(?P<id>[1-9]\d*)/' => 'HeraldDeleteController', 60 60 'test/' => 'HeraldTestConsoleController', 61 61 'transcript/' => 'HeraldTranscriptListController', 62 - 'transcript/(?P<id>\d+)/(?:(?P<filter>\w+)/)?' 62 + 'transcript/(?P<id>[1-9]\d*)/(?:(?P<filter>\w+)/)?' 63 63 => 'HeraldTranscriptController', 64 64 ), 65 65 );
+2 -2
src/applications/macro/application/PhabricatorApplicationMacro.php
··· 42 42 return array( 43 43 '/macro/' => array( 44 44 '' => 'PhabricatorMacroListController', 45 - 'edit/(?:(?P<id>\d+)/)?' => 'PhabricatorMacroEditController', 46 - 'delete/(?P<id>\d+)/' => 'PhabricatorMacroDeleteController', 45 + 'edit/(?:(?P<id>[1-9]\d*)/)?' => 'PhabricatorMacroEditController', 46 + 'delete/(?P<id>[1-9]\d*)/' => 'PhabricatorMacroDeleteController', 47 47 ), 48 48 ); 49 49 }
+2 -1
src/applications/mailinglists/application/PhabricatorApplicationMailingLists.php
··· 42 42 return array( 43 43 '/mailinglists/' => array( 44 44 '' => 'PhabricatorMailingListsListController', 45 - 'edit/(?:(?P<id>\d+)/)?' => 'PhabricatorMailingListsEditController', 45 + 'edit/(?:(?P<id>[1-9]\d*)/)?' 46 + => 'PhabricatorMailingListsEditController', 46 47 ), 47 48 ); 48 49 }
+7 -6
src/applications/maniphest/application/PhabricatorApplicationManiphest.php
··· 50 50 51 51 public function getRoutes() { 52 52 return array( 53 - '/T(?P<id>\d+)' => 'ManiphestTaskDetailController', 53 + '/T(?P<id>[1-9]\d*)' => 'ManiphestTaskDetailController', 54 54 '/maniphest/' => array( 55 55 '' => 'ManiphestTaskListController', 56 56 'view/(?P<view>\w+)/' => 'ManiphestTaskListController', ··· 58 58 'batch/' => 'ManiphestBatchEditController', 59 59 'task/' => array( 60 60 'create/' => 'ManiphestTaskEditController', 61 - 'edit/(?P<id>\d+)/' => 'ManiphestTaskEditController', 62 - 'descriptionchange/(?:(?P<id>\d+)/)?' => 61 + 'edit/(?P<id>[1-9]\d*)/' => 'ManiphestTaskEditController', 62 + 'descriptionchange/(?:(?P<id>[1-9]\d*)/)?' => 63 63 'ManiphestTaskDescriptionChangeController', 64 64 'descriptionpreview/' => 65 65 'ManiphestTaskDescriptionPreviewController', 66 66 ), 67 67 'transaction/' => array( 68 68 'save/' => 'ManiphestTransactionSaveController', 69 - 'preview/(?P<id>\d+)/' => 'ManiphestTransactionPreviewController', 69 + 'preview/(?P<id>[1-9]\d*)/' 70 + => 'ManiphestTransactionPreviewController', 70 71 ), 71 72 'export/(?P<key>[^/]+)/' => 'ManiphestExportController', 72 73 'subpriority/' => 'ManiphestSubpriorityController', 73 74 'custom/' => array( 74 75 '' => 'ManiphestSavedQueryListController', 75 - 'edit/(?:(?P<id>\d+)/)?' => 'ManiphestSavedQueryEditController', 76 - 'delete/(?P<id>\d+)/' => 'ManiphestSavedQueryDeleteController', 76 + 'edit/(?:(?P<id>[1-9]\d*)/)?' => 'ManiphestSavedQueryEditController', 77 + 'delete/(?P<id>[1-9]\d*)/' => 'ManiphestSavedQueryDeleteController', 77 78 ), 78 79 ), 79 80 );
+1 -1
src/applications/metamta/application/PhabricatorApplicationMetaMTA.php
··· 43 43 $this->getBaseURI() => array( 44 44 '' => 'PhabricatorMetaMTAListController', 45 45 'send/' => 'PhabricatorMetaMTASendController', 46 - 'view/(?P<id>\d+)/' => 'PhabricatorMetaMTAViewController', 46 + 'view/(?P<id>[1-9]\d*)/' => 'PhabricatorMetaMTAViewController', 47 47 'receive/' => 'PhabricatorMetaMTAReceiveController', 48 48 'received/' => 'PhabricatorMetaMTAReceivedListController', 49 49 'sendgrid/' => 'PhabricatorMetaMTASendGridReceiveController',
+3 -3
src/applications/owners/application/PhabricatorApplicationOwners.php
··· 51 51 '/owners/' => array( 52 52 '' => 'PhabricatorOwnersListController', 53 53 'view/(?P<view>[^/]+)/' => 'PhabricatorOwnersListController', 54 - 'edit/(?P<id>\d+)/' => 'PhabricatorOwnersEditController', 54 + 'edit/(?P<id>[1-9]\d*)/' => 'PhabricatorOwnersEditController', 55 55 'new/' => 'PhabricatorOwnersEditController', 56 - 'package/(?P<id>\d+)/' => 'PhabricatorOwnersDetailController', 57 - 'delete/(?P<id>\d+)/' => 'PhabricatorOwnersDeleteController', 56 + 'package/(?P<id>[1-9]\d*)/' => 'PhabricatorOwnersDetailController', 57 + 'delete/(?P<id>[1-9]\d*)/' => 'PhabricatorOwnersDeleteController', 58 58 ), 59 59 ); 60 60 }
+2 -2
src/applications/paste/application/PhabricatorApplicationPaste.php
··· 36 36 37 37 public function getRoutes() { 38 38 return array( 39 - '/P(?P<id>\d+)' => 'PhabricatorPasteViewController', 39 + '/P(?P<id>[1-9]\d*)' => 'PhabricatorPasteViewController', 40 40 '/paste/' => array( 41 41 '' => 'PhabricatorPasteEditController', 42 - 'edit/(?P<id>\d+)/' => 'PhabricatorPasteEditController', 42 + 'edit/(?P<id>[1-9]\d*)/' => 'PhabricatorPasteEditController', 43 43 'filter/(?P<filter>\w+)/' => 'PhabricatorPasteListController', 44 44 ), 45 45 );
+1 -1
src/applications/people/application/PhabricatorApplicationPeople.php
··· 47 47 '/people/' => array( 48 48 '' => 'PhabricatorPeopleListController', 49 49 'logs/' => 'PhabricatorPeopleLogsController', 50 - 'edit/(?:(?P<id>\d+)/(?:(?P<view>\w+)/)?)?' 50 + 'edit/(?:(?P<id>[1-9]\d*)/(?:(?P<view>\w+)/)?)?' 51 51 => 'PhabricatorPeopleEditController', 52 52 'ldap/' => 'PhabricatorPeopleLdapController', 53 53 ),
+3 -3
src/applications/phriction/application/PhabricatorApplicationPhriction.php
··· 48 48 'history(?P<slug>/)' => 'PhrictionHistoryController', 49 49 'history/(?P<slug>.+/)' => 'PhrictionHistoryController', 50 50 51 - 'edit/(?:(?P<id>\d+)/)?' => 'PhrictionEditController', 52 - 'delete/(?P<id>\d+)/' => 'PhrictionDeleteController', 51 + 'edit/(?:(?P<id>[1-9]\d*)/)?' => 'PhrictionEditController', 52 + 'delete/(?P<id>[1-9]\d*)/' => 'PhrictionDeleteController', 53 53 54 54 'preview/' => 'PhrictionDocumentPreviewController', 55 - 'diff/(?P<id>\d+)/' => 'PhrictionDiffController', 55 + 'diff/(?P<id>[1-9]\d*)/' => 'PhrictionDiffController', 56 56 ), 57 57 ); 58 58 }
+1 -1
src/applications/ponder/application/PhabricatorApplicationPonder.php
··· 49 49 50 50 public function getroutes() { 51 51 return array( 52 - '/Q(?P<id>\d+)' => 'PonderQuestionViewController', 52 + '/Q(?P<id>[1-9]\d*)' => 'PonderQuestionViewController', 53 53 '/ponder/' => array( 54 54 '(?P<page>feed/)?' => 'PonderFeedController', 55 55 '(?P<page>questions)/' => 'PonderFeedController',
+5 -4
src/applications/project/application/PhabricatorApplicationProject.php
··· 47 47 '/project/' => array( 48 48 '' => 'PhabricatorProjectListController', 49 49 'filter/(?P<filter>[^/]+)/' => 'PhabricatorProjectListController', 50 - 'edit/(?P<id>\d+)/' => 'PhabricatorProjectProfileEditController', 51 - 'members/(?P<id>\d+)/' => 'PhabricatorProjectMembersEditController', 52 - 'view/(?P<id>\d+)/(?:(?P<page>\w+)/)?' 50 + 'edit/(?P<id>[1-9]\d*)/' => 'PhabricatorProjectProfileEditController', 51 + 'members/(?P<id>[1-9]\d*)/' 52 + => 'PhabricatorProjectMembersEditController', 53 + 'view/(?P<id>[1-9]\d*)/(?:(?P<page>\w+)/)?' 53 54 => 'PhabricatorProjectProfileController', 54 55 'create/' => 'PhabricatorProjectCreateController', 55 - 'update/(?P<id>\d+)/(?P<action>[^/]+)/' 56 + 'update/(?P<id>[1-9]\d*)/(?P<action>[^/]+)/' 56 57 => 'PhabricatorProjectUpdateController', 57 58 ), 58 59 );
+4 -4
src/applications/repository/application/PhabricatorApplicationRepositories.php
··· 43 43 '/repository/' => array( 44 44 '' => 'PhabricatorRepositoryListController', 45 45 'create/' => 'PhabricatorRepositoryCreateController', 46 - 'edit/(?P<id>\d+)/(?:(?P<view>\w+)/)?' => 46 + 'edit/(?P<id>[1-9]\d*)/(?:(?P<view>\w+)/)?' => 47 47 'PhabricatorRepositoryEditController', 48 - 'delete/(?P<id>\d+)/' => 'PhabricatorRepositoryDeleteController', 49 - 'project/edit/(?P<id>\d+)/' => 48 + 'delete/(?P<id>[1-9]\d*)/' => 'PhabricatorRepositoryDeleteController', 49 + 'project/edit/(?P<id>[1-9]\d*)/' => 50 50 'PhabricatorRepositoryArcanistProjectEditController', 51 - 'project/delete/(?P<id>\d+)/' => 51 + 'project/delete/(?P<id>[1-9]\d*)/' => 52 52 'PhabricatorRepositoryArcanistProjectDeleteController', 53 53 ), 54 54 );
+1 -1
src/applications/slowvote/application/PhabricatorApplicationSlowvote.php
··· 48 48 49 49 public function getRoutes() { 50 50 return array( 51 - '/V(?P<id>\d+)' => 'PhabricatorSlowvotePollController', 51 + '/V(?P<id>[1-9]\d*)' => 'PhabricatorSlowvotePollController', 52 52 '/vote/' => array( 53 53 '(?:view/(?P<view>\w+)/)?' => 'PhabricatorSlowvoteListController', 54 54 'create/' => 'PhabricatorSlowvoteCreateController',
+5 -5
src/applications/xhpastview/application/PhabricatorApplicationPHPAST.php
··· 42 42 return array( 43 43 '/xhpast/' => array( 44 44 '' => 'PhabricatorXHPASTViewRunController', 45 - 'view/(?P<id>\d+)/' 45 + 'view/(?P<id>[1-9]\d*)/' 46 46 => 'PhabricatorXHPASTViewFrameController', 47 - 'frameset/(?P<id>\d+)/' 47 + 'frameset/(?P<id>[1-9]\d*)/' 48 48 => 'PhabricatorXHPASTViewFramesetController', 49 - 'input/(?P<id>\d+)/' 49 + 'input/(?P<id>[1-9]\d*)/' 50 50 => 'PhabricatorXHPASTViewInputController', 51 - 'tree/(?P<id>\d+)/' 51 + 'tree/(?P<id>[1-9]\d*)/' 52 52 => 'PhabricatorXHPASTViewTreeController', 53 - 'stream/(?P<id>\d+)/' 53 + 'stream/(?P<id>[1-9]\d*)/' 54 54 => 'PhabricatorXHPASTViewStreamController', 55 55 ), 56 56 );