rsercano/mongoclient

View on GitHub
client/imports/views/pages/admin_queries/admin_queries.js

Summary

Maintainability
D
1 day
Test Coverage
import { Template } from 'meteor/templating';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Enums, SessionManager, UIComponents } from '/client/imports/modules';
import { QueryRender } from '/client/imports/ui';
import Helper from '/client/imports/helpers/helper';
import '/client/imports/views/query_templates/admin/add_user/add_user';
import '/client/imports/views/query_templates/admin/build_info/build_info';
import '/client/imports/views/query_templates/admin/command/command';
import '/client/imports/views/query_templates/admin/list_databases/list_databases';
import '/client/imports/views/query_templates/admin/ping/ping';
import '/client/imports/views/query_templates/admin/remove_user/remove_user';
import '/client/imports/views/query_templates/admin/repl_set_get_status/repl_set_get_status';
import '/client/imports/views/query_templates/admin/server_info/server_info';
import '/client/imports/views/query_templates/admin/server_status/server_status';
import '/client/imports/views/query_templates/admin/validate_collection/validate_collection';

import './admin_queries.html';

Template.adminQueries.onRendered(function () {
  if (!SessionManager.get(SessionManager.strSessionCollectionNames)) {
    FlowRouter.go('/databaseStats');
    return;
  }

  const settings = this.subscribe('settings');
  const connections = this.subscribe('connections');

  this.autorun(() => {
    if (connections.ready() && settings.ready()) {
      UIComponents.Combobox.init({ selector: $('#cmbAdminQueries'), data: Enums.ADMIN_QUERY_TYPES, comboGroupLabel: 'Admin Queries', options: {} });
      UIComponents.Checkbox.init($('#inputRunOnAdminDB'));
      $('[data-toggle="tooltip"]').tooltip({ trigger: 'hover' });
    }
  });
});


Template.adminQueries.events({
  'change #cmbAdminQueries': function () {
    SessionManager.set(SessionManager.strSessionSelectedOptions, []);

    const value = $('#cmbAdminQueries').find(':selected').text();
    if (value) SessionManager.set(SessionManager.strSessionSelectedQuery, value);
  },

  'click #btnSwitchView': function () {
    const jsonView = $('#divJsonEditor');
    const aceView = $('#divAceEditor');

    if (jsonView.css('display') === 'none' && aceView.css('display') === 'none') {
      return;
    }

    if (jsonView.css('display') === 'none') {
      aceView.hide();
      jsonView.show('slow');
    } else {
      jsonView.hide();
      aceView.show('slow');
    }
  },
  'click #btnExecuteAdminQuery': function () {
    QueryRender.executeQuery();
  },
});

Template.adminQueries.helpers({
  getPageHeading() {
    return Helper.translate({ key: 'admin_queries' });
  },

  getQueryTemplate() {
    return SessionManager.get(SessionManager.strSessionSelectedQuery);
  },

  getHelpBlockForSelectedQuery() {
    switch (SessionManager.get(SessionManager.strSessionSelectedQuery)) {
      case Enums.ADMIN_QUERY_TYPES.ADD_USER:
        return Helper.translate({ key: 'add_user_help_block' });

      case Enums.ADMIN_QUERY_TYPES.BUILD_INFO:
        return Helper.translate({ key: 'build_info_help_block' });

      case Enums.ADMIN_QUERY_TYPES.LIST_DATABASES:
        return Helper.translate({ key: 'list_dbs_help_block' });

      case Enums.ADMIN_QUERY_TYPES.COMMAND:
        return Helper.translate({ key: 'command_help_block' });

      case Enums.ADMIN_QUERY_TYPES.PING:
        return Helper.translate({ key: 'ping_help_block' });

      case Enums.ADMIN_QUERY_TYPES.PROFILING_INFO:
        return Helper.translate({ key: 'profiling_info_help_block' });

      case Enums.ADMIN_QUERY_TYPES.REPL_SET_GET_STATUS:
        return Helper.translate({ key: 'repl_set_get_status_help_block' });

      case Enums.ADMIN_QUERY_TYPES.SERVER_STATUS:
        return Helper.translate({ key: 'server_status_help_block' });

      case Enums.ADMIN_QUERY_TYPES.SET_PROFILING_LEVEL:
        return Helper.translate({ key: 'set_profiling_level_help_block' });

      case Enums.ADMIN_QUERY_TYPES.VALIDATE_COLLECTION:
        return Helper.translate({ key: 'validate_collection_help_block' });

      default:
        return '';
    }
  }
});