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

Improve rendering of empty workboard columns in header views

Summary:
Depends on D20271. Ref T10333. When a column is empty but a board is grouped (by priority, owner, etc) render the headers properly.

When a column has headers, don't apply the "empty" style even if it has no cards. This style just makes some empty space so you can drag-and-drop more easily, but headers do the same thing.

Test Plan: {F6264611}

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T10333

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

+35 -10
+7 -7
resources/celerity/map.php
··· 411 411 'rsrc/js/application/projects/WorkboardBoard.js' => 'fc1664ff', 412 412 'rsrc/js/application/projects/WorkboardCard.js' => '0392a5d8', 413 413 'rsrc/js/application/projects/WorkboardCardTemplate.js' => '2a61f8d4', 414 - 'rsrc/js/application/projects/WorkboardColumn.js' => '533dd592', 414 + 'rsrc/js/application/projects/WorkboardColumn.js' => 'fd4c2069', 415 415 'rsrc/js/application/projects/WorkboardController.js' => '42c7a5a7', 416 416 'rsrc/js/application/projects/WorkboardHeader.js' => '111bfd2d', 417 417 'rsrc/js/application/projects/WorkboardHeaderTemplate.js' => 'b65351bd', ··· 731 731 'javelin-workboard-board' => 'fc1664ff', 732 732 'javelin-workboard-card' => '0392a5d8', 733 733 'javelin-workboard-card-template' => '2a61f8d4', 734 - 'javelin-workboard-column' => '533dd592', 734 + 'javelin-workboard-column' => 'fd4c2069', 735 735 'javelin-workboard-controller' => '42c7a5a7', 736 736 'javelin-workboard-header' => '111bfd2d', 737 737 'javelin-workboard-header-template' => 'b65351bd', ··· 1347 1347 'javelin-dom', 1348 1348 'javelin-fx', 1349 1349 ), 1350 - '533dd592' => array( 1351 - 'javelin-install', 1352 - 'javelin-workboard-card', 1353 - 'javelin-workboard-header', 1354 - ), 1355 1350 '534f1757' => array( 1356 1351 'phui-oi-list-view-css', 1357 1352 ), ··· 2137 2132 'fce5d170' => array( 2138 2133 'javelin-magical-init', 2139 2134 'javelin-util', 2135 + ), 2136 + 'fd4c2069' => array( 2137 + 'javelin-install', 2138 + 'javelin-workboard-card', 2139 + 'javelin-workboard-header', 2140 2140 ), 2141 2141 'fdc13e4e' => array( 2142 2142 'javelin-install',
+28 -3
webroot/rsrc/js/application/projects/WorkboardColumn.js
··· 220 220 header_keys.reverse(); 221 221 } 222 222 223 + var header_key; 224 + var next; 223 225 for (ii = 0; ii < list.length; ii++) { 224 226 var card = list[ii]; 225 227 ··· 229 231 // cards in a column. 230 232 231 233 if (has_headers) { 232 - var header_key = board.getCardTemplate(card.getPHID()) 234 + header_key = board.getCardTemplate(card.getPHID()) 233 235 .getHeaderKey(order); 234 236 235 237 if (!seen_headers[header_key]) { 236 238 while (header_keys.length) { 237 - var next = header_keys.pop(); 239 + next = header_keys.pop(); 238 240 239 241 var header = this.getHeader(next); 240 242 objects.push(header); ··· 248 250 } 249 251 250 252 objects.push(card); 253 + } 254 + 255 + // Add any leftover headers at the bottom of the column which don't have 256 + // any cards in them. In particular, empty columns don't have any cards 257 + // but should still have headers. 258 + 259 + while (header_keys.length) { 260 + next = header_keys.pop(); 261 + 262 + if (seen_headers[next]) { 263 + continue; 264 + } 265 + 266 + objects.push(this.getHeader(next)); 251 267 } 252 268 253 269 this._objects = objects; ··· 431 447 432 448 JX.DOM.setContent(content_node, display_value); 433 449 434 - var is_empty = !this.getCardPHIDs().length; 450 + // Only put the "empty" style on the column (which just adds some empty 451 + // space so it's easier to drop cards into an empty column) if it has no 452 + // cards and no headers. 453 + 454 + var is_empty = 455 + (!this.getCardPHIDs().length) && 456 + (!this._hasColumnHeaders()); 457 + 435 458 var panel = JX.DOM.findAbove(this.getRoot(), 'div', 'workpanel'); 436 459 JX.DOM.alterClass(panel, 'project-panel-empty', is_empty); 460 + 461 + 437 462 JX.DOM.alterClass(panel, 'project-panel-over-limit', over_limit); 438 463 439 464 var color_map = {