[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/js/application/transactions/ -> behavior-transaction-list.js (source)

   1  /**
   2   * @provides javelin-behavior-phabricator-transaction-list
   3   * @requires javelin-behavior
   4   *           javelin-stratcom
   5   *           javelin-workflow
   6   *           javelin-dom
   7   *           javelin-uri
   8   *           phabricator-textareautils
   9   */
  10  
  11  JX.behavior('phabricator-transaction-list', function() {
  12  
  13    JX.Stratcom.listen(
  14      'click',
  15      [['transaction-edit'], ['transaction-remove'], ['transaction-raw']],
  16      function(e) {
  17        if (!e.isNormalClick()) {
  18          return;
  19        }
  20  
  21        e.prevent();
  22  
  23        var anchor = e.getNodeData('tag:a').anchor;
  24        var uri = JX.$U(window.location).setFragment(anchor);
  25  
  26        JX.Workflow.newFromLink(e.getNode('tag:a'))
  27          .setHandler(function() {
  28            // In most cases, `uri` is on the same page (just at a new anchor),
  29            // so we have to call reload() explicitly to get the browser to
  30            // refresh the page. It would be nice to just issue a server-side
  31            // redirect instead, but there isn't currently an easy way to do
  32            // that without complexity and/or a semi-open redirect.
  33            uri.go();
  34            window.location.reload();
  35          })
  36          .start();
  37      });
  38  
  39    JX.Stratcom.listen(
  40      'click',
  41      'transaction-quote',
  42      function(e) {
  43        e.prevent();
  44  
  45        var data = e.getNodeData('transaction-quote');
  46        new JX.Workflow(data.uri)
  47          .setData({ref: data.ref})
  48          .setHandler(function(r) {
  49            var textarea = JX.$(data.targetID);
  50  
  51            JX.DOM.scrollTo(textarea);
  52  
  53            var value = textarea.value;
  54            if (value.length) {
  55              value += '\n\n';
  56            }
  57            value += r.quoteText;
  58            value += '\n\n';
  59            textarea.value = value;
  60  
  61            JX.TextAreaUtils.setSelectionRange(
  62              textarea,
  63              textarea.value.length,
  64              textarea.value.length);
  65          })
  66          .start();
  67      });
  68  
  69  });


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1