Commit 6d60d125 by bergquist

Merge branch 'Othyus-filter_orgs'

parents 998ed097 e3bbf96b
...@@ -22,6 +22,16 @@ ...@@ -22,6 +22,16 @@
{{::menuItem.text}} {{::menuItem.text}}
</a> </a>
</li> </li>
<li ng-show="ctrl.orgs.length > ctrl.maxShownOrgs" style="margin-left: 10px;width: 90%">
<span class="sidemenu-item-text">Max shown : {{::ctrl.maxShownOrgs}}</span>
<input ng-model="::ctrl.orgFilter" style="padding-left: 5px" type="text" ng-change="::ctrl.loadOrgsItems();" class="gf-input-small width-12" placeholder="Filter">
</li>
<li ng-repeat="orgItem in ctrl.orgItems" ng-class="::orgItem.cssClass">
<a href="{{::orgItem.url}}" ng-show="::orgItem.url" target="{{::orgItem.target}}">
<i class="{{::orgItem.icon}}" ng-show="::orgItem.icon"></i>
{{::orgItem.text}}
</a>
</li>
</ul> </ul>
</li> </li>
......
...@@ -13,6 +13,10 @@ export class SideMenuCtrl { ...@@ -13,6 +13,10 @@ export class SideMenuCtrl {
orgMenu: any; orgMenu: any;
appSubUrl: string; appSubUrl: string;
loginUrl: string; loginUrl: string;
orgFilter: string;
orgItems: any;
orgs: any;
maxShownOrgs: number;
/** @ngInject */ /** @ngInject */
constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) { constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) {
...@@ -20,6 +24,7 @@ export class SideMenuCtrl { ...@@ -20,6 +24,7 @@ export class SideMenuCtrl {
this.user = contextSrv.user; this.user = contextSrv.user;
this.appSubUrl = config.appSubUrl; this.appSubUrl = config.appSubUrl;
this.showSignout = this.contextSrv.isSignedIn && !config['authProxyEnabled']; this.showSignout = this.contextSrv.isSignedIn && !config['authProxyEnabled'];
this.maxShownOrgs = 10;
this.mainLinks = config.bootData.mainNavLinks; this.mainLinks = config.bootData.mainNavLinks;
this.openUserDropdown(); this.openUserDropdown();
...@@ -31,6 +36,8 @@ export class SideMenuCtrl { ...@@ -31,6 +36,8 @@ export class SideMenuCtrl {
} }
this.loginUrl = 'login?redirect=' + encodeURIComponent(this.$location.path()); this.loginUrl = 'login?redirect=' + encodeURIComponent(this.$location.path());
}); });
this.orgFilter = '';
} }
getUrl(url) { getUrl(url) {
...@@ -51,38 +58,44 @@ export class SideMenuCtrl { ...@@ -51,38 +58,44 @@ export class SideMenuCtrl {
this.orgMenu.push({section: this.user.orgName, cssClass: 'dropdown-menu-title'}); this.orgMenu.push({section: this.user.orgName, cssClass: 'dropdown-menu-title'});
this.orgMenu.push({ this.orgMenu.push({
text: "Preferences", text: "Preferences",
url: this.getUrl("/org"), url: this.getUrl("/org")
}); });
this.orgMenu.push({ this.orgMenu.push({
text: "Users", text: "Users",
url: this.getUrl("/org/users"), url: this.getUrl("/org/users")
}); });
this.orgMenu.push({ this.orgMenu.push({
text: "API Keys", text: "API Keys",
url: this.getUrl("/org/apikeys"), url: this.getUrl("/org/apikeys")
}); });
} }
this.orgMenu.push({cssClass: "divider"}); this.orgMenu.push({cssClass: "divider"});
this.backendSrv.get('/api/user/orgs').then(orgs => { this.backendSrv.get('/api/user/orgs').then(orgs => {
orgs.forEach(org => { this.orgs = orgs;
this.loadOrgsItems();
});
}
loadOrgsItems(){
this.orgItems = [];
this.orgs.forEach(org => {
if (org.orgId === this.contextSrv.user.orgId) { if (org.orgId === this.contextSrv.user.orgId) {
return; return;
} }
this.orgMenu.push({ if (this.orgItems.length < this.maxShownOrgs && (this.orgFilter === '' || org.name.indexOf(this.orgFilter) !== -1)){
this.orgItems.push({
text: "Switch to " + org.name, text: "Switch to " + org.name,
icon: "fa fa-fw fa-random", icon: "fa fa-fw fa-random",
url: this.getUrl('/profile/switch-org/' + org.orgId), url: this.getUrl('/profile/switch-org/' + org.orgId),
target: '_self' target: '_self'
}); });
}
}); });
if (config.allowOrgCreate) { if (config.allowOrgCreate) {
this.orgMenu.push({text: "New organization", icon: "fa fa-fw fa-plus", url: this.getUrl('/org/new')}); this.orgItems.push({text: "New organization", icon: "fa fa-fw fa-plus", url: this.getUrl('/org/new')});
} }
});
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment