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

     1  var Backbone = require('backbone');
     2  var _ = require('underscore');
     3  
     4  var AppState = Backbone.Model.extend({
     5      defaults: function() {
     6          return {
     7              'VERSION': VERSION,
     8              'GRAPHITE_URL': GRAPHITE_URL,
     9              'GRAPH_ENABLED': GRAPH_ENABLED,
    10              'STATSD_INTERVAL': STATSD_INTERVAL,
    11              'STATSD_COUNTER_FORMAT': STATSD_COUNTER_FORMAT,
    12              'STATSD_GAUGE_FORMAT': STATSD_GAUGE_FORMAT,
    13              'STATSD_PREFIX': STATSD_PREFIX,
    14              'NSQLOOKUPD': NSQLOOKUPD,
    15              'graph_interval': '2h',
    16              'IS_ADMIN': IS_ADMIN,
    17              'BASE_PATH': BASE_PATH
    18          };
    19      },
    20  
    21      initialize: function() {
    22          this.on('change:graph_interval', function(model, v) {
    23              localStorage.setItem('graph_interval', v);
    24          });
    25  
    26          var qp = _.object(_.compact(_.map(window.location.search.slice(1).split('&'),
    27              function(item) { return item ? item.split('=') : false; })));
    28  
    29          var def = this.get('GRAPH_ENABLED') ? '2h' : 'off';
    30          var interval = qp['t'] || localStorage.getItem('graph_interval') || def;
    31          this.set('graph_interval', interval);
    32      },
    33  
    34      basePath: function(p) {
    35          // if base path is / then don't prefix
    36          var bp = this.get('BASE_PATH') === '/' ? '' : this.get('BASE_PATH');
    37          // remove trailing /, but guarantee at least /
    38          return (bp + p).replace(/\/$/, '') || '/';
    39      },
    40  
    41      apiPath: function(p) {
    42          return this.basePath('/api' + p);
    43      }
    44  });
    45  
    46  var appState = new AppState();
    47  
    48  window.AppState = appState;
    49  
    50  module.exports = appState;