Преглед изворни кода

feat(sidemenu): add limit for shown organizations

Othyus пре 9 година
родитељ
комит
31317abbeb

+ 4 - 1
public/app/core/components/sidemenu/sidemenu.html

@@ -22,7 +22,10 @@
 					{{::menuItem.text}}
 				</a>
 			</li>
-            <li><input ng-model="::ctrl.orgFilter" type="text" ng-change="::ctrl.loadOrgsItems();" class="gf-form-input" placeholder="Filter"></li>
+            <li ng-show="ctrl.orgs.length > ctrl.maxShownOrgs">
+                <input ng-model="::ctrl.orgFilter" type="text" ng-change="::ctrl.loadOrgsItems();" class="gf-input-small" placeholder="Filter">
+                <span class="sidemenu-item-text">Max shown : {{::ctrl.maxShownOrgs}}</span>
+            </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>

+ 3 - 2
public/app/core/components/sidemenu/sidemenu.ts

@@ -15,6 +15,7 @@ export class SideMenuCtrl {
   orgFilter: string;
   orgItems: any;
   orgs: any;
+  maxShownOrgs: number;
 
   /** @ngInject */
   constructor(private $scope, private $location, private contextSrv, private backendSrv, private $element) {
@@ -22,7 +23,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();
@@ -79,7 +80,7 @@ export class SideMenuCtrl {
        return;
      }
 
-     if (this.orgFilter === '' || org.name.indexOf(this.orgFilter) !== -1){
+     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",