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

Major timeline redesign

Summary: OMG We Have TOKENS

Test Plan: TOKENS, also UIExamples

Reviewers: btrahan, epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin, chad

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

+68 -6
+2 -2
resources/celerity/map.php
··· 148 148 'rsrc/css/phui/phui-status.css' => '2f562399', 149 149 'rsrc/css/phui/phui-tag-view.css' => '295d81c4', 150 150 'rsrc/css/phui/phui-text.css' => '23e9b4b7', 151 - 'rsrc/css/phui/phui-timeline-view.css' => 'cd93f227', 151 + 'rsrc/css/phui/phui-timeline-view.css' => '23d72d35', 152 152 'rsrc/css/phui/phui-workboard-view.css' => 'bf70dd2e', 153 153 'rsrc/css/phui/phui-workpanel-view.css' => '97b69459', 154 154 'rsrc/css/sprite-actions.css' => '969ad0e5', ··· 764 764 'phui-status-list-view-css' => '2f562399', 765 765 'phui-tag-view-css' => '295d81c4', 766 766 'phui-text-css' => '23e9b4b7', 767 - 'phui-timeline-view-css' => 'cd93f227', 767 + 'phui-timeline-view-css' => '23d72d35', 768 768 'phui-workboard-view-css' => 'bf70dd2e', 769 769 'phui-workpanel-view-css' => '97b69459', 770 770 'policy-css' => '957ea14c',
+21 -2
src/applications/uiexample/examples/PHUITimelineExample.php
··· 29 29 30 30 $events[] = id(new PHUITimelineEventView()) 31 31 ->setUserHandle($handle) 32 + ->setIcon('love') 32 33 ->setTitle('A minor event.'); 33 34 34 35 $events[] = id(new PHUITimelineEventView()) 35 36 ->setUserHandle($handle) 37 + ->setIcon('comment') 36 38 ->appendChild('A major event with no title.'); 37 39 38 40 $events[] = id(new PHUITimelineEventView()) 39 41 ->setUserHandle($handle) 42 + ->setIcon('dislike') 40 43 ->setTitle('Another minor event.'); 41 44 42 45 $events[] = id(new PHUITimelineEventView()) 46 + ->setIcon('like') 47 + ->setToken('medal-1') 48 + ->setUserHandle($handle); 49 + 50 + $events[] = id(new PHUITimelineEventView()) 51 + ->setIcon('dislike') 52 + ->setToken('medal-1', true) 43 53 ->setUserHandle($handle); 44 54 45 55 $events[] = id(new PHUITimelineEventView()) ··· 51 61 52 62 $events[] = id(new PHUITimelineEventView()) 53 63 ->setUserHandle($handle) 64 + ->setIcon('love') 54 65 ->setTitle('Minor Red Event') 55 66 ->setColor(PhabricatorTransactions::COLOR_RED); 56 67 57 68 $events[] = id(new PHUITimelineEventView()) 69 + ->setIcon('like') 58 70 ->setUserHandle($handle) 59 - ->setTitle('Minor Not-Red Event'); 71 + ->setTitle('Minor Not-Red Event') 72 + ->setColor(PhabricatorTransactions::COLOR_GREEN); 60 73 61 74 $events[] = id(new PHUITimelineEventView()) 62 75 ->setUserHandle($handle) 76 + ->setIcon('love') 63 77 ->setTitle('Minor Red Event') 64 78 ->setColor(PhabricatorTransactions::COLOR_RED); 65 79 66 80 $events[] = id(new PHUITimelineEventView()) 67 81 ->setUserHandle($handle) 68 - ->setTitle('Minor Not-Red Event'); 82 + ->setIcon('dislike') 83 + ->setTitle('Minor Not-Red Event') 84 + ->setColor(PhabricatorTransactions::COLOR_BLACK); 85 + 69 86 70 87 $events[] = id(new PHUITimelineEventView()) 71 88 ->setUserHandle($handle) 89 + ->setIcon('tag') 72 90 ->setTitle('Major Green Event') 73 91 ->appendChild('This event is green!') 74 92 ->setColor(PhabricatorTransactions::COLOR_GREEN); 75 93 76 94 $events[] = id(new PHUITimelineEventView()) 77 95 ->setUserHandle($handle) 96 + ->setIcon('tag') 78 97 ->setTitle(str_repeat('Long Text Title ', 64)) 79 98 ->appendChild(str_repeat('Long Text Body ', 64)) 80 99 ->setColor(PhabricatorTransactions::COLOR_ORANGE);
+20 -1
src/view/phui/PHUITimelineEventView.php
··· 16 16 private $isPreview; 17 17 private $eventGroup = array(); 18 18 private $hideByDefault; 19 + private $token; 20 + private $tokenRemoved; 19 21 20 22 public function setHideByDefault($hide_by_default) { 21 23 $this->hideByDefault = $hide_by_default; ··· 114 116 return $this; 115 117 } 116 118 119 + public function setToken($token, $removed=false) { 120 + $this->token = $token; 121 + $this->tokenRemoved = $removed; 122 + return $this; 123 + } 124 + 117 125 public function getEventGroup() { 118 126 return array_merge(array($this), $this->eventGroup); 119 127 } ··· 178 186 '')); 179 187 } 180 188 189 + $token = null; 190 + if ($this->token) { 191 + $token = id(new PHUIIconView()) 192 + ->addClass('phui-timeline-token') 193 + ->setSpriteSheet(PHUIIconView::SPRITE_TOKENS) 194 + ->setSpriteIcon($this->token); 195 + if ($this->tokenRemoved) { 196 + $token->addClass('strikethrough'); 197 + } 198 + } 199 + 181 200 $title = phutil_tag( 182 201 'div', 183 202 array( 184 203 'class' => implode(' ', $title_classes), 185 204 ), 186 - array($icon, $title, $extra)); 205 + array($icon, $token, $title, $extra)); 187 206 } 188 207 189 208 return $title;
+25 -1
webroot/rsrc/css/phui/phui-timeline-view.css
··· 61 61 } 62 62 63 63 .phui-timeline-title { 64 - line-height: 18px; 64 + line-height: 17px; 65 65 min-height: 18px; 66 66 position: relative; 67 67 color: {$bluetext}; ··· 123 123 124 124 .phui-timeline-title-with-icon { 125 125 padding-left: 38px; 126 + } 127 + 128 + .phui-timeline-token { 129 + display: inline-block; 130 + } 131 + 132 + .phui-timeline-token.strikethrough { 133 + position: relative; 134 + } 135 + 136 + .phui-timeline-token.strikethrough:before { 137 + position: absolute; 138 + content: ""; 139 + left: 0; 140 + top: 50%; 141 + right: 0; 142 + border-top: 3px solid; 143 + border-color: {$darkbluetext}; 144 + 145 + -webkit-transform:rotate(-40deg); 146 + -moz-transform:rotate(-40deg); 147 + -ms-transform:rotate(-40deg); 148 + -o-transform:rotate(-40deg); 149 + transform:rotate(-40deg); 126 150 } 127 151 128 152 .phui-timeline-major-event .phui-timeline-content