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

Restore fields to Releeph from prior to CustomField patch

Summary: See notes / inlines.

Test Plan: See inlines.

Reviewers: wez, btrahan

Reviewed By: btrahan

CC: btrahan, aran

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

+162 -55
+137 -49
src/applications/releeph/field/selector/ReleephDefaultFieldSelector.php
··· 2 2 3 3 final class ReleephDefaultFieldSelector extends ReleephFieldSelector { 4 4 5 + /** 6 + * Determine if this install is Facebook. 7 + * 8 + * TODO: This is a giant hacky mess because I am dumb and moved forward on 9 + * Releeph changes with partial information. Recover from this as gracefully 10 + * as possible. This obivously is an abomination. -epriestley 11 + */ 12 + public static function isFacebook() { 13 + try { 14 + class_exists('ReleephFacebookKarmaFieldSpecification'); 15 + return true; 16 + } catch (Exception $ex) { 17 + return false; 18 + } 19 + } 20 + 21 + /** 22 + * @phutil-external-symbol class ReleephFacebookKarmaFieldSpecification 23 + * @phutil-external-symbol class ReleephFacebookSeverityFieldSpecification 24 + * @phutil-external-symbol class ReleephFacebookTagFieldSpecification 25 + * @phutil-external-symbol class ReleephFacebookTasksFieldSpecification 26 + */ 5 27 public function getFieldSpecifications() { 6 - return array( 7 - new ReleephCommitMessageFieldSpecification(), 8 - new ReleephSummaryFieldSpecification(), 9 - new ReleephReasonFieldSpecification(), 10 - new ReleephAuthorFieldSpecification(), 11 - new ReleephRevisionFieldSpecification(), 12 - new ReleephRequestorFieldSpecification(), 13 - new ReleephSeverityFieldSpecification(), 14 - new ReleephOriginalCommitFieldSpecification(), 15 - new ReleephDiffMessageFieldSpecification(), 16 - new ReleephStatusFieldSpecification(), 17 - new ReleephIntentFieldSpecification(), 18 - new ReleephBranchCommitFieldSpecification(), 19 - new ReleephDiffSizeFieldSpecification(), 20 - new ReleephDiffChurnFieldSpecification(), 21 - ); 28 + if (self::isFacebook()) { 29 + return array( 30 + new ReleephCommitMessageFieldSpecification(), 31 + new ReleephSummaryFieldSpecification(), 32 + new ReleephReasonFieldSpecification(), 33 + new ReleephAuthorFieldSpecification(), 34 + new ReleephRevisionFieldSpecification(), 35 + new ReleephRequestorFieldSpecification(), 36 + new ReleephFacebookKarmaFieldSpecification(), 37 + new ReleephFacebookSeverityFieldSpecification(), 38 + new ReleephOriginalCommitFieldSpecification(), 39 + new ReleephDiffMessageFieldSpecification(), 40 + new ReleephStatusFieldSpecification(), 41 + new ReleephIntentFieldSpecification(), 42 + new ReleephBranchCommitFieldSpecification(), 43 + new ReleephDiffSizeFieldSpecification(), 44 + new ReleephDiffChurnFieldSpecification(), 45 + new ReleephFacebookTagFieldSpecification(), 46 + new ReleephFacebookTasksFieldSpecification(), 47 + ); 48 + } else { 49 + return array( 50 + new ReleephCommitMessageFieldSpecification(), 51 + new ReleephSummaryFieldSpecification(), 52 + new ReleephReasonFieldSpecification(), 53 + new ReleephAuthorFieldSpecification(), 54 + new ReleephRevisionFieldSpecification(), 55 + new ReleephRequestorFieldSpecification(), 56 + new ReleephSeverityFieldSpecification(), 57 + new ReleephOriginalCommitFieldSpecification(), 58 + new ReleephDiffMessageFieldSpecification(), 59 + new ReleephStatusFieldSpecification(), 60 + new ReleephIntentFieldSpecification(), 61 + new ReleephBranchCommitFieldSpecification(), 62 + new ReleephDiffSizeFieldSpecification(), 63 + new ReleephDiffChurnFieldSpecification(), 64 + ); 65 + } 22 66 } 23 67 24 68 public function arrangeFieldsForHeaderView(array $fields) { 25 - return array( 26 - // Top group 27 - array( 28 - 'left' => self::selectFields($fields, array( 29 - 'ReleephAuthorFieldSpecification', 30 - 'ReleephRevisionFieldSpecification', 31 - 'ReleephOriginalCommitFieldSpecification', 32 - 'ReleephDiffSizeFieldSpecification', 33 - 'ReleephDiffChurnFieldSpecification', 34 - )), 35 - 'right' => self::selectFields($fields, array( 36 - 'ReleephRequestorFieldSpecification', 37 - 'ReleephSeverityFieldSpecification', 38 - 'ReleephStatusFieldSpecification', 39 - 'ReleephIntentFieldSpecification', 40 - 'ReleephBranchCommitFieldSpecification', 41 - )) 42 - ), 69 + if (self::isFacebook()) { 70 + return array( 71 + // Top group 72 + array( 73 + 'left' => self::selectFields($fields, array( 74 + 'ReleephAuthorFieldSpecification', 75 + 'ReleephRevisionFieldSpecification', 76 + 'ReleephOriginalCommitFieldSpecification', 77 + 'ReleephDiffSizeFieldSpecification', 78 + 'ReleephDiffChurnFieldSpecification', 79 + 'ReleephFacebookTasksFieldSpecification', 80 + )), 81 + 'right' => self::selectFields($fields, array( 82 + 'ReleephRequestorFieldSpecification', 83 + 'ReleephFacebookKarmaFieldSpecification', 84 + 'ReleephFacebookSeverityFieldSpecification', 85 + 'ReleephFacebookTagFieldSpecification', 86 + 'ReleephStatusFieldSpecification', 87 + 'ReleephIntentFieldSpecification', 88 + 'ReleephBranchCommitFieldSpecification', 89 + )) 90 + ), 91 + 92 + // Bottom group 93 + array( 94 + 'left' => self::selectFields($fields, array( 95 + 'ReleephDiffMessageFieldSpecification', 96 + )), 97 + 'right' => self::selectFields($fields, array( 98 + 'ReleephReasonFieldSpecification', 99 + )) 100 + ) 101 + ); 102 + } else { 103 + return array( 104 + // Top group 105 + array( 106 + 'left' => self::selectFields($fields, array( 107 + 'ReleephAuthorFieldSpecification', 108 + 'ReleephRevisionFieldSpecification', 109 + 'ReleephOriginalCommitFieldSpecification', 110 + 'ReleephDiffSizeFieldSpecification', 111 + 'ReleephDiffChurnFieldSpecification', 112 + )), 113 + 'right' => self::selectFields($fields, array( 114 + 'ReleephRequestorFieldSpecification', 115 + 'ReleephSeverityFieldSpecification', 116 + 'ReleephStatusFieldSpecification', 117 + 'ReleephIntentFieldSpecification', 118 + 'ReleephBranchCommitFieldSpecification', 119 + )) 120 + ), 43 121 44 - // Bottom group 45 - array( 46 - 'left' => self::selectFields($fields, array( 47 - 'ReleephDiffMessageFieldSpecification', 48 - )), 49 - 'right' => self::selectFields($fields, array( 50 - 'ReleephReasonFieldSpecification', 51 - )) 52 - ) 53 - ); 122 + // Bottom group 123 + array( 124 + 'left' => self::selectFields($fields, array( 125 + 'ReleephDiffMessageFieldSpecification', 126 + )), 127 + 'right' => self::selectFields($fields, array( 128 + 'ReleephReasonFieldSpecification', 129 + )) 130 + ) 131 + ); 132 + } 54 133 } 55 134 56 135 public function arrangeFieldsForSelectForm(array $fields) { 57 - return self::selectFields($fields, array( 58 - 'ReleephStatusFieldSpecification', 59 - 'ReleephSeverityFieldSpecification', 60 - 'ReleephRequestorFieldSpecification', 61 - )); 136 + if (self::isFacebook()) { 137 + return self::selectFields($fields, array( 138 + 'ReleephStatusFieldSpecification', 139 + 'ReleephFacebookSeverityFieldSpecification', 140 + 'ReleephRequestorFieldSpecification', 141 + 'ReleephFacebookTagFieldSpecification', 142 + )); 143 + } else { 144 + return self::selectFields($fields, array( 145 + 'ReleephStatusFieldSpecification', 146 + 'ReleephSeverityFieldSpecification', 147 + 'ReleephRequestorFieldSpecification', 148 + )); 149 + } 62 150 } 63 151 64 152 public function sortFieldsForCommitMessage(array $fields) {
+9 -1
src/applications/releeph/query/ReleephRequestQuery.php
··· 117 117 if ($this->severities) { 118 118 $severities = array_fuse($this->severities); 119 119 foreach ($requests as $key => $request) { 120 - if (empty($severities[$request->getDetail('releeph:severity')])) { 120 + 121 + // NOTE: Facebook uses a custom field here. 122 + if (ReleephDefaultFieldSelector::isFacebook()) { 123 + $severity = $request->getDetail('severity'); 124 + } else { 125 + $severity = $request->getDetail('releeph:severity'); 126 + } 127 + 128 + if (empty($severities[$severity])) { 121 129 unset($requests[$key]); 122 130 } 123 131 }
+16 -5
src/applications/releeph/query/ReleephRequestSearchEngine.php
··· 148 148 } 149 149 150 150 private function getSeverityOptions() { 151 - return array( 152 - '' => pht('(All Severities)'), 153 - ReleephSeverityFieldSpecification::HOTFIX => pht('Hotfix'), 154 - ReleephSeverityFieldSpecification::RELEASE => pht('Release'), 155 - ); 151 + if (ReleephDefaultFieldSelector::isFacebook()) { 152 + return array( 153 + '' => pht('(All Severities)'), 154 + 11 => 'HOTFIX', 155 + 12 => 'PIGGYBACK', 156 + 13 => 'RELEASE', 157 + 14 => 'DAILY', 158 + 15 => 'PARKING', 159 + ); 160 + } else { 161 + return array( 162 + '' => pht('(All Severities)'), 163 + ReleephSeverityFieldSpecification::HOTFIX => pht('Hotfix'), 164 + ReleephSeverityFieldSpecification::RELEASE => pht('Release'), 165 + ); 166 + } 156 167 } 157 168 158 169 }