[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/js/application/ponder/ -> behavior-votebox.js (source)

   1  /**
   2   * @provides javelin-behavior-ponder-votebox
   3   * @requires javelin-behavior
   4   *           javelin-dom
   5   *           javelin-util
   6   *           javelin-stratcom
   7   *           javelin-request
   8   */
   9  
  10  JX.behavior('ponder-votebox', function() {
  11  
  12    function handle_vote(e, vote) {
  13      e.kill();
  14  
  15      var root = e.getNode('ponder-votable');
  16      var data = e.getNodeData('ponder-votable');
  17  
  18      if (data.vote != vote) {
  19        // Remove the user's current vote, if they have one.
  20        data.count -= data.vote;
  21        data.vote = vote;
  22        data.count += vote;
  23      } else {
  24        // User is undoing their vote.
  25        data.vote = 0;
  26        data.count -= vote;
  27      }
  28  
  29      var upv = JX.DOM.find(root, 'a', 'upvote');
  30      JX.DOM.alterClass(upv, 'ponder-vote-active', (data.vote > 0));
  31  
  32      var downv = JX.DOM.find(root, 'a', 'downvote');
  33      JX.DOM.alterClass(downv, 'ponder-vote-active', (data.vote < 0));
  34  
  35      JX.DOM.setContent(
  36        JX.DOM.find(root, 'div', 'ponder-vote-count'),
  37        data.count);
  38  
  39      new JX.Request(e.getTarget().href, JX.bag)
  40        .setData({vote: data.vote})
  41        .send();
  42    }
  43  
  44    JX.Stratcom.listen(
  45      'click',
  46      'downvote',
  47      function(e) {
  48        handle_vote(e, -1);
  49      });
  50  
  51    JX.Stratcom.listen(
  52      'click',
  53      'upvote',
  54      function(e) {
  55        handle_vote(e, 1);
  56      });
  57  });


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