Page MenuHomePhabricator

D17841.diff
No OneTemporary

D17841.diff

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' => '2ff7879f',
'darkconsole.pkg.js' => '1f9a31bc',
'differential.pkg.css' => '90b30783',
- 'differential.pkg.js' => '84d27954',
+ 'differential.pkg.js' => '8532657e',
'diffusion.pkg.css' => 'b93d9b8c',
'diffusion.pkg.js' => '84c8f8fd',
'favicon.ico' => '30672e08',
@@ -390,7 +390,7 @@
'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/DiffChangesetList.js' => '58c4c0d6',
+ 'rsrc/js/application/diff/DiffChangesetList.js' => '9137a890',
'rsrc/js/application/diff/behavior-preview-link.js' => '051c7832',
'rsrc/js/application/differential/ChangesetViewManager.js' => 'a2828756',
'rsrc/js/application/differential/DifferentialInlineCommentEditor.js' => '2e3f9738',
@@ -400,7 +400,7 @@
'rsrc/js/application/differential/behavior-dropdown-menus.js' => '9a6b9324',
'rsrc/js/application/differential/behavior-edit-inline-comments.js' => '4fbbc3e9',
'rsrc/js/application/differential/behavior-keyboard-nav.js' => '92904457',
- 'rsrc/js/application/differential/behavior-populate.js' => 'c0c44c3e',
+ 'rsrc/js/application/differential/behavior-populate.js' => 'cf707904',
'rsrc/js/application/differential/behavior-toggle-files.js' => 'ca3f91eb',
'rsrc/js/application/differential/behavior-user-select.js' => 'a8d8459d',
'rsrc/js/application/diffusion/DiffusionLocateFileSource.js' => 'c93358e3',
@@ -629,7 +629,7 @@
'javelin-behavior-differential-edit-inline-comments' => '4fbbc3e9',
'javelin-behavior-differential-feedback-preview' => 'b064af76',
'javelin-behavior-differential-keyboard-navigation' => '92904457',
- 'javelin-behavior-differential-populate' => 'c0c44c3e',
+ 'javelin-behavior-differential-populate' => 'cf707904',
'javelin-behavior-differential-toggle-files' => 'ca3f91eb',
'javelin-behavior-differential-user-select' => 'a8d8459d',
'javelin-behavior-diffusion-browse-file' => '054a0f0b',
@@ -787,7 +787,7 @@
'phabricator-darklog' => 'c8e1ffe3',
'phabricator-darkmessage' => 'c48cccdd',
'phabricator-dashboard-css' => 'fe5b1869',
- 'phabricator-diff-changeset-list' => '58c4c0d6',
+ 'phabricator-diff-changeset-list' => '9137a890',
'phabricator-drag-and-drop-file-upload' => '58dea2fa',
'phabricator-draggable-list' => 'bea6e7f4',
'phabricator-fatal-config-template-css' => '8f18fa41',
@@ -1355,9 +1355,6 @@
'javelin-vector',
'javelin-dom',
),
- '58c4c0d6' => array(
- 'javelin-install',
- ),
'58dea2fa' => array(
'javelin-install',
'javelin-util',
@@ -1621,6 +1618,9 @@
'javelin-dom',
'javelin-request',
),
+ '9137a890' => array(
+ 'javelin-install',
+ ),
92904457 => array(
'javelin-behavior',
'javelin-dom',
@@ -1946,14 +1946,6 @@
'javelin-install',
'javelin-dom',
),
- 'c0c44c3e' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'phabricator-tooltip',
- 'changeset-view-manager',
- 'phabricator-diff-changeset-list',
- ),
'c420b0b9' => array(
'javelin-behavior',
'javelin-behavior-device',
@@ -2041,6 +2033,14 @@
'cd2b9b77' => array(
'phui-oi-list-view-css',
),
+ 'cf707904' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'phabricator-tooltip',
+ 'changeset-view-manager',
+ 'phabricator-diff-changeset-list',
+ ),
'd0c516d5' => array(
'javelin-behavior',
'javelin-dom',
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
@@ -8,16 +8,78 @@
construct: function() {
+ var onload = JX.bind(this, this._ifawake, this._onload);
+ JX.Stratcom.listen('click', 'differential-load', onload);
+
+ var onmore = JX.bind(this, this._ifawake, this._onmore);
+ JX.Stratcom.listen('click', 'show-more', onmore);
},
members: {
+ _asleep: true,
sleep: function() {
-
+ this._asleep = true;
},
wake: function() {
+ this._asleep = false;
+ },
+
+ isAsleep: function() {
+ return this._asleep;
+ },
+
+ getChangesetForNode: function(node) {
+ return JX.ChangesetViewManager.getForNode(node);
+ },
+
+ _ifawake: function(f) {
+ // This function takes another function and only calls it if the
+ // changeset list is awake, so we basically just ignore events when we
+ // are asleep. This may move up the stack at some point as we do more
+ // with Quicksand/Sheets.
+
+ if (this.isAsleep()) {
+ return;
+ }
+
+ return f.apply(this, [].slice.call(arguments, 1));
+ },
+
+ _onload: function(e) {
+ var data = e.getNodeData('differential-load');
+
+ // NOTE: We can trigger a load from either an explicit "Load" link on
+ // the changeset, or by clicking a link in the table of contents. If
+ // the event was a table of contents link, we let the anchor behavior
+ // run normally.
+ if (data.kill) {
+ e.kill();
+ }
+
+ var node = JX.$(data.id);
+ var changeset = this.getChangesetForNode(node);
+
+ changeset.load();
+
+ // TODO: Move this into Changeset.
+ var routable = changeset.getRoutable();
+ if (routable) {
+ routable.setPriority(2000);
+ }
+ },
+
+ _onmore: function(e) {
+ e.kill();
+
+ var node = e.getNode('differential-changeset');
+ var changeset = this.getChangesetForNode(node);
+
+ var data = e.getNodeData('show-more');
+ var target = e.getNode('context-target');
+ changeset.loadContext(data.range, target);
}
}
diff --git a/webroot/rsrc/js/application/differential/behavior-populate.js b/webroot/rsrc/js/application/differential/behavior-populate.js
--- a/webroot/rsrc/js/application/differential/behavior-populate.js
+++ b/webroot/rsrc/js/application/differential/behavior-populate.js
@@ -75,39 +75,6 @@
}
}
- JX.Stratcom.listen(
- 'click',
- 'differential-load',
- function(e) {
- var meta = e.getNodeData('differential-load');
- var changeset = JX.$(meta.id);
- var view = JX.ChangesetViewManager.getForNode(changeset);
-
- view.load();
- var routable = view.getRoutable();
- if (routable) {
- routable.setPriority(2000);
- }
-
- if (meta.kill) {
- e.kill();
- }
- });
-
- JX.Stratcom.listen(
- 'click',
- 'show-more',
- function(e) {
- e.kill();
-
- var changeset = e.getNode('differential-changeset');
- var view = JX.ChangesetViewManager.getForNode(changeset);
- var data = e.getNodeData('show-more');
- var target = e.getNode('context-target');
-
- view.loadContext(data.range, target);
- });
-
var highlighted = null;
var highlight_class = null;

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 9:23 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6277886
Default Alt Text
D17841.diff (7 KB)

Event Timeline