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;