github.com/nsqio/nsq@v1.3.0/nsqadmin/static/js/models/topic.js (about)

     1  var _ = require('underscore');
     2  
     3  var AppState = require('../app_state');
     4  var Backbone = require('backbone');
     5  
     6  var Topic = Backbone.Model.extend({
     7      idAttribute: 'name',
     8  
     9      constructor: function Topic() {
    10          Backbone.Model.prototype.constructor.apply(this, arguments);
    11      },
    12  
    13      url: function() {
    14          return AppState.apiPath('/topics/' + encodeURIComponent(this.get('name')));
    15      },
    16  
    17      parse: function(response) {
    18          response['nodes'] = _.map(response['nodes'] || [], function(node) {
    19              var nodeParts = node['node'].split(':');
    20              var port = nodeParts.pop();
    21              var address = nodeParts.join(':');
    22              var hostname = node['hostname'];
    23              node['show_broadcast_address'] = hostname.toLowerCase() !== address.toLowerCase();
    24              node['hostname_port'] = hostname + ':' + port;
    25              return node;
    26          });
    27          return response;
    28      }
    29  });
    30  
    31  module.exports = Topic;