grafana/public/app/features/plugins/plugin_list_ctrl.ts
2017-12-19 16:06:54 +01:00

33 lines
799 B
TypeScript

import angular from "angular";
import _ from "lodash";
export class PluginListCtrl {
plugins: any[];
tabIndex: number;
navModel: any;
searchQuery: string;
allPlugins: any[];
/** @ngInject */
constructor(private backendSrv: any, $location, navModelSrv) {
this.tabIndex = 0;
this.navModel = navModelSrv.getNav("cfg", "plugins", 0);
this.backendSrv.get("api/plugins", { embedded: 0 }).then(plugins => {
this.plugins = plugins;
this.allPlugins = plugins;
});
}
onQueryUpdated() {
let regex = new RegExp(this.searchQuery, "ig");
this.plugins = _.filter(this.allPlugins, item => {
return regex.test(item.name) || regex.test(item.type);
});
}
}
angular
.module("grafana.controllers")
.controller("PluginListCtrl", PluginListCtrl);