diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -13,7 +13,7 @@ 'core.pkg.js' => '1475bd91', 'darkconsole.pkg.js' => '1f9a31bc', 'differential.pkg.css' => '1ccbf3a9', - 'differential.pkg.js' => 'b453b745', + 'differential.pkg.js' => 'b2c4cbfa', 'diffusion.pkg.css' => 'b93d9b8c', 'diffusion.pkg.js' => '84c8f8fd', 'favicon.ico' => '30672e08', @@ -393,8 +393,8 @@ 'rsrc/js/application/dashboard/behavior-dashboard-move-panels.js' => '408bf173', 'rsrc/js/application/dashboard/behavior-dashboard-query-panel-select.js' => '453c5375', 'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => 'd4eecc63', - 'rsrc/js/application/diff/DiffChangeset.js' => 'fc3919c8', - 'rsrc/js/application/diff/DiffChangesetList.js' => 'ffa063d8', + 'rsrc/js/application/diff/DiffChangeset.js' => 'ee50a0ec', + 'rsrc/js/application/diff/DiffChangesetList.js' => 'b4cf2217', 'rsrc/js/application/diff/DiffInline.js' => '1d17130f', 'rsrc/js/application/diff/behavior-preview-link.js' => '051c7832', 'rsrc/js/application/differential/behavior-comment-preview.js' => '51c5ad07', @@ -772,8 +772,8 @@ 'phabricator-darklog' => 'c8e1ffe3', 'phabricator-darkmessage' => 'c48cccdd', 'phabricator-dashboard-css' => 'fe5b1869', - 'phabricator-diff-changeset' => 'fc3919c8', - 'phabricator-diff-changeset-list' => 'ffa063d8', + 'phabricator-diff-changeset' => 'ee50a0ec', + 'phabricator-diff-changeset-list' => 'b4cf2217', 'phabricator-diff-inline' => '1d17130f', 'phabricator-drag-and-drop-file-upload' => '58dea2fa', 'phabricator-draggable-list' => 'bea6e7f4', @@ -1771,6 +1771,10 @@ 'b3e7d692' => array( 'javelin-install', ), + 'b4cf2217' => array( + 'javelin-install', + 'phuix-button-view', + ), 'b59e1e96' => array( 'javelin-behavior', 'javelin-stratcom', @@ -2088,6 +2092,17 @@ 'javelin-behavior', 'javelin-uri', ), + 'ee50a0ec' => array( + 'javelin-dom', + 'javelin-util', + 'javelin-stratcom', + 'javelin-install', + 'javelin-workflow', + 'javelin-router', + 'javelin-behavior-device', + 'javelin-vector', + 'phabricator-diff-inline', + ), 'efe49472' => array( 'javelin-install', 'javelin-util', @@ -2141,17 +2156,6 @@ 'javelin-behavior-device', 'phabricator-keyboard-shortcut', ), - 'fc3919c8' => array( - 'javelin-dom', - 'javelin-util', - 'javelin-stratcom', - 'javelin-install', - 'javelin-workflow', - 'javelin-router', - 'javelin-behavior-device', - 'javelin-vector', - 'phabricator-diff-inline', - ), 'fc91ab6c' => array( 'javelin-behavior', 'javelin-dom', @@ -2163,10 +2167,6 @@ 'javelin-view-visitor', 'javelin-util', ), - 'ffa063d8' => array( - 'javelin-install', - 'phuix-button-view', - ), ), 'packages' => array( 'conpherence.pkg.css' => array( diff --git a/webroot/rsrc/js/application/diff/DiffChangeset.js b/webroot/rsrc/js/application/diff/DiffChangeset.js --- a/webroot/rsrc/js/application/diff/DiffChangeset.js +++ b/webroot/rsrc/js/application/diff/DiffChangeset.js @@ -451,7 +451,8 @@ end: block.items[jj] }, attributes: { - unsaved: inline.isEditing() + unsaved: inline.isEditing(), + unsubmitted: inline.isDraft() } }; diff --git a/webroot/rsrc/js/application/diff/DiffChangesetList.js b/webroot/rsrc/js/application/diff/DiffChangesetList.js --- a/webroot/rsrc/js/application/diff/DiffChangesetList.js +++ b/webroot/rsrc/js/application/diff/DiffChangesetList.js @@ -113,6 +113,7 @@ _bannerNode: null, _unsavedButton: null, + _unsubmittedButton: null, sleep: function() { this._asleep = true; @@ -1371,8 +1372,9 @@ 'diff-banner-has-unsubmitted', !!unsubmitted.length); - var unsaved_button = this._getUnsavedButton(); var pht = this.getTranslations(); + var unsaved_button = this._getUnsavedButton(); + var unsubmitted_button = this._getUnsubmittedButton(); if (unsaved.length) { unsaved_button.setText(unsaved.length + ' ' + pht('Unsaved')); @@ -1381,6 +1383,14 @@ JX.DOM.hide(unsaved_button.getNode()); } + if (unsubmitted.length) { + unsubmitted_button.setText( + unsubmitted.length + ' ' + pht('Unsubmitted')); + JX.DOM.show(unsubmitted_button.getNode()); + } else { + JX.DOM.hide(unsubmitted_button.getNode()); + } + var path_view = [icon, ' ', changeset.getDisplayPath()]; var buttons_attrs = { @@ -1388,7 +1398,8 @@ }; var buttons_list = [ - unsaved_button.getNode() + unsaved_button.getNode(), + unsubmitted_button.getNode() ]; var buttons_view = JX.$N('div', buttons_attrs, buttons_list); @@ -1418,6 +1429,23 @@ return this._unsavedButton; }, + _getUnsubmittedButton: function() { + if (!this._unsubmittedButton) { + var button = new JX.PHUIXButtonView() + .setIcon('fa-comment-o') + .setButtonType(JX.PHUIXButtonView.BUTTONTYPE_SIMPLE); + + var node = button.getNode(); + + var onunsubmitted = JX.bind(this, this._onunsubmittedclick); + JX.DOM.listen(node, 'click', null, onunsubmitted); + + this._unsubmittedButton = button; + } + + return this._unsubmittedButton; + }, + _onunsavedclick: function(e) { e.kill(); @@ -1430,6 +1458,18 @@ this._onjumpkey(1, options); }, + _onunsubmittedclick: function(e) { + e.kill(); + + var options = { + filter: 'comment', + wrap: true, + attribute: 'unsubmitted' + }; + + this._onjumpkey(1, options); + }, + _getBannerNode: function() { if (!this._bannerNode) { var attributes = {