123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- define([ "require", "backbone", "hbs!tmpl/site/DebugMetricsTableLayoutView_tmpl", "utils/UrlLinks", "collection/VEntityList", "utils/CommonViewFunction", "utils/Utils" ], function(require, Backbone, DebugMetricsTableLayoutViewTmpl, UrlLinks, VEntityList, CommonViewFunction, Utils) {
- "use strict";
- var DebugMetricsTableLayoutView = Backbone.Marionette.LayoutView.extend({
- _viewName: "DebugMetricsTableLayoutView",
- template: DebugMetricsTableLayoutViewTmpl,
- regions: {
- RDebugMetricsTableLayoutView: "#r_debugMetricsTableLayoutView"
- },
- ui: {
- refreshMetricsBtn: '[data-id="refreshMetricsBtn"]',
- metricsInfoBtn: '[data-id="metricsInfo"]'
- },
- events: function() {
- var events = {};
- return events["click " + this.ui.refreshMetricsBtn] = function(e) {
- this.currPage = 1, this.limit = 26, this.debugMetricsCollection.state.pageSize = 25,
- this.debugMetricsCollection.state.currentPage = 0, this.fetchMetricData();
- }, events["click " + this.ui.metricsInfoBtn] = "metricsInfo", events;
- },
- initialize: function(options) {
- _.extend(this, options);
- this.DATA_MAX_LENGTH = 25, this.debugMetricsCollection = new VEntityList(), this.debugMetricsCollection.url = UrlLinks.debugMetricsApiUrl(),
- this.debugMetricsCollection.modelAttrName = "data", this.commonTableOptions = {
- collection: this.debugMetricsCollection,
- includeFilter: !1,
- includePagination: !0,
- includeFooterRecords: !0,
- includePageSize: !0,
- includeGotoPage: !0,
- includeAtlasTableSorting: !0,
- includeTableLoader: !0,
- includeColumnManager: !1,
- gridOpts: {
- className: "table table-hover backgrid table-quickMenu",
- emptyText: "没有找到记录!"
- },
- filterOpts: {},
- paginatorOpts: {}
- }, this.currPage = 1, this.limit = 26;
- },
- bindEvents: function() {
- },
- onRender: function() {
- this.bindEvents(), this.$(".debug-metrics-table").show(), this.fetchMetricData();
- },
- metricsInfo: function(e) {
- require([ "views/site/MetricsUIInfoView", "modules/Modal" ], function(MetricsUIInfoView, Modal) {
- var view = new MetricsUIInfoView(), modal = new Modal({
- title: "Debug Metrics",
- content: view,
- okCloses: !0,
- showFooter: !1,
- allowCancel: !1
- }).open();
- view.on("closeModal", function() {
- modal.trigger("cancel");
- });
- });
- },
- fetchMetricData: function(options) {
- var that = this;
- this.debugMetricsCollection.fetch({
- success: function(data) {
- var data = _.first(data.toJSON()), metricsDataKeys = data ? Object.keys(data) : null;
- that.debugMetricsCollection.fullCollection.reset(), _.each(metricsDataKeys.sort(), function(keyName) {
- that.debugMetricsCollection.fullCollection.add(data[keyName]);
- });
- },
- complete: function(data) {
- that.renderTableLayoutView();
- }
- });
- },
- renderTableLayoutView: function() {
- var that = this;
- require([ "utils/TableLayout" ], function(TableLayout) {
- var cols = new Backgrid.Columns(that.getAuditTableColumns());
- that.RDebugMetricsTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
- columns: cols
- }))), that.debugMetricsCollection.models.length < that.limit || that.RDebugMetricsTableLayoutView.$el.find("table tr").last().hide();
- });
- },
- millisecondsToSeconds: function(rawValue) {
- return parseFloat(rawValue % 6e4 / 1e3).toFixed(3);
- },
- getAuditTableColumns: function() {
- var that = this;
- return this.debugMetricsCollection.constructor.getTableCols({
- name: {
- label: "Name",
- cell: "html",
- sortable: !0,
- editable: !1
- },
- numops: {
- label: "Count",
- cell: "html",
- toolTip: "Number of times the API has been hit since Atlas started",
- sortable: !0,
- editable: !1
- },
- minTime: {
- label: "Min Time (secs)",
- cell: "html",
- toolTip: "Minimum API execution time since Atlas started",
- sortable: !0,
- editable: !1,
- formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
- fromRaw: function(rawValue, model) {
- return that.millisecondsToSeconds(rawValue);
- }
- })
- },
- maxTime: {
- label: "Max Time (secs)",
- cell: "html",
- toolTip: "Maximum API execution time since Atlas started",
- sortable: !0,
- editable: !1,
- formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
- fromRaw: function(rawValue, model) {
- return that.millisecondsToSeconds(rawValue);
- }
- })
- },
- avgTime: {
- label: "Average Time (secs)",
- cell: "html",
- toolTip: "Average time taken to execute by an API within an interval of time",
- sortable: !0,
- editable: !1,
- formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
- fromRaw: function(rawValue, model) {
- return that.millisecondsToSeconds(rawValue);
- }
- })
- }
- }, this.debugMetricsCollection);
- }
- });
- return DebugMetricsTableLayoutView;
- });
|