Merge branch 'filter_orgs' of https://github.com/Othyus/grafana into Othyus-filter_orgs

This commit is contained in:
bergquist
2016-08-18 15:48:01 +02:00
2 changed files with 36 additions and 13 deletions

View File

@@ -13,6 +13,10 @@ export class SideMenuCtrl {
orgMenu: any;
appSubUrl: string;
loginUrl: string;
orgFilter: string;
orgItems: any;
orgs: any;
maxShownOrgs: number;
/** @ngInject */
constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) {
@@ -20,6 +24,7 @@ export class SideMenuCtrl {
this.user = contextSrv.user;
this.appSubUrl = config.appSubUrl;
this.showSignout = this.contextSrv.isSignedIn && !config['authProxyEnabled'];
this.maxShownOrgs = 10;
this.mainLinks = config.bootData.mainNavLinks;
this.openUserDropdown();
@@ -31,6 +36,8 @@ export class SideMenuCtrl {
}
this.loginUrl = 'login?redirect=' + encodeURIComponent(this.$location.path());
});
this.orgFilter = '';
}
getUrl(url) {
@@ -51,38 +58,44 @@ export class SideMenuCtrl {
this.orgMenu.push({section: this.user.orgName, cssClass: 'dropdown-menu-title'});
this.orgMenu.push({
text: "Preferences",
url: this.getUrl("/org"),
url: this.getUrl("/org")
});
this.orgMenu.push({
text: "Users",
url: this.getUrl("/org/users"),
url: this.getUrl("/org/users")
});
this.orgMenu.push({
text: "API Keys",
url: this.getUrl("/org/apikeys"),
url: this.getUrl("/org/apikeys")
});
}
this.orgMenu.push({cssClass: "divider"});
this.backendSrv.get('/api/user/orgs').then(orgs => {
orgs.forEach(org => {
if (org.orgId === this.contextSrv.user.orgId) {
return;
}
this.orgs = orgs;
this.loadOrgsItems();
});
}
this.orgMenu.push({
loadOrgsItems(){
this.orgItems = [];
this.orgs.forEach(org => {
if (org.orgId === this.contextSrv.user.orgId) {
return;
}
if (this.orgItems.length < this.maxShownOrgs && (this.orgFilter === '' || org.name.indexOf(this.orgFilter) !== -1)){
this.orgItems.push({
text: "Switch to " + org.name,
icon: "fa fa-fw fa-random",
url: this.getUrl('/profile/switch-org/' + org.orgId),
target: '_self'
});
});
if (config.allowOrgCreate) {
this.orgMenu.push({text: "New organization", icon: "fa fa-fw fa-plus", url: this.getUrl('/org/new')});
}
});
if (config.allowOrgCreate) {
this.orgItems.push({text: "New organization", icon: "fa fa-fw fa-plus", url: this.getUrl('/org/new')});
}
}
}