/** * @provides javelin-behavior-phabricator-show-all-transactions * @requires javelin-behavior * javelin-stratcom * javelin-dom */ /** * Automatically show older transactions if the user follows an anchor to a * transaction which is hidden by the "N older changes are hidden." shield. */ JX.behavior('phabricator-show-all-transactions', function(config) { var revealed = false; function get_hash() { return window.location.hash.replace(/^#/, ''); } function hash_is_hidden() { var hash = get_hash(); for (var ii = 0; ii < config.anchors.length; ii++) { if (config.anchors[ii] == hash) { return true; } } return false; } function reveal() { if (revealed) { return false; } JX.DOM.hide(JX.$(config.hideID)); JX.DOM.show(JX.$(config.showID)); revealed = true; return true; } function check_hash() { if (hash_is_hidden()) { if (reveal()) { try { var target = JX.$(get_hash()); JX.DOM.scrollTo(target); } catch (ignored) { // We did our best. } } } } JX.DOM.listen( JX.$(config.linkID), 'click', null, function (e) { e.kill(); reveal(); }); JX.Stratcom.listen('hashchange', null, check_hash); check_hash(); });