UNPKG

plugin-generator

Version:

core_plugin generator

102 lines (89 loc) 3.47 kB
require('../utils'); module.exports = controller = (name) => { return `import _, { forEach } from 'lodash'; import AggResponseTabifyTabifyProvider from 'ui/agg_response/tabify/tabify'; import AggCofigResult from 'ui/vis/agg_config_result'; import uiModules from 'ui/modules'; const module = uiModules.get('kibana/${allLowerCase(name)}', ['kibana']); module.controller('${upperCamelCase(name)}Controller', function ($scope, $element, Private, getAppState, config) { const tabifyAggResponse = Private(AggResponseTabifyTabifyProvider); const containerNode = $element[0]; $scope.watchMulti(['esResponse', 'vis.params'], function ([resp]) { if (resp) { $scope.tableResponse = tabifyAggResponse($scope.vis, resp, { asAggCofigResults: true }) } }); $scope.$watch(getContainerSize, _.debounce(() => { //resize (rerender) logic }, 500, { trailing: true }), true); function getContainerSize() { let parentDiv = $($element[0]).parent()[0]; return { height: parentDiv.clientHeight, width: parentDiv.clientWidth }; } })`; } module.exports = params_html = (name) => { return `<div> Hello World </div>` } module.exports = params_js = (name) => { return `import uiModules from 'ui/modules'; uiModules.get('kibana/${snakeCase(name)}') .controller('${camelCase(name)}', ['$scope', function ($scope) { }]);` } module.exports = main_html = (name) => { return `<div> Hello World </div>` } module.exports = main_js = (name) => { return `import TemplateVisTypeTemplateVisTypeProvider from 'ui/template_vis_type/template_vis_type'; import VisSchemaProvider from 'ui/vis/schemas'; import _ from 'lodash'; import 'plugins/${snakeCase(name)}/styles/${snakeCase(name)}.css'; import 'plugins/${snakeCase(name)}/${snakeCase(name)}_controller'; import ${camelCase(name)}VisTemplate from 'plugins/${snakeCase(name)}/${snakeCase(name)}.html'; import ${camelCase(name)}VisParamsTemplate from 'plugins/${snakeCase(name)}/${snakeCase(name)}_params.html'; import ${camelCase(name)}SidebarTemplate from 'plugins/${snakeCase(name)}/${snakeCase(name)}_sidebar.html'; import commonParamSetProvider from 'plugins/mcube_utils/common_param_set'; require('ui/registry/vis_types').register(${upperCamelCase(name)}VisProvider); function ${upperCamelCase(name)}VisProvider(Private) { const TemplateVisType = Private(TemplateVisTypeTemplateVisTypeProvider); const Schemas = Private(VisSchemaProvider); const commonParamSet = Private(commonParamSetProvider); const defaults = { }; return new TemplateVisType({ name: '${snakeCase(name)}', title: '${name}', icon: 'fa-code', description: '${name}', template: ${camelCase(name)}VisTemplate, params: { defaults: _.merge({}, commonParamSet(), defaults), editor: ${camelCase(name)}VisParamsTemplate, sidebarEditor: ${camelCase(name)}SidebarTemplate }, schemas: new Schemas([{ group: 'metrics', name: 'metric', title: 'Y-Axis', min: 1, max: 15, defaults: [{ schema: 'metric', type: 'count' }] }]) }) } export default ${upperCamelCase(name)}VisProvider;` } module.exports = sidebar_html = (name) => { return `<div> Hello World </div>` }