PHP Classes

File: FrontEndScripts/Filters/OrderGroups.ts

Recommend this page to a friend!
  Classes of Aleksey Nemiro   PHP Small Server Administrator   FrontEndScripts/Filters/OrderGroups.ts   Download  
File: FrontEndScripts/Filters/OrderGroups.ts
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP Small Server Administrator
Web panel for small Debian and Ubuntu servers
Author: By
Last change:
Date: 8 years ago
Size: 1,723 bytes
 

Contents

Class file image Download
?/* * Copyright © Aleksey Nemiro, 2016. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module SmallServerAdmin.Filters { /** * Filter to sort the list of groups. */ export class OrderGroups implements Nemiro.IFilter { Name: string = 'OrderGroups'; Filter: ng.IFilterService; constructor(filter: ng.IFilterService) { this.Filter = filter; } public Execution(groups: Array<Models.Group>, userGroups: Array<string>): any { if (groups === undefined) { return null; } var result = []; var userInGroups = []; if (userGroups !== undefined) { angular.forEach(groups, function (group) { if (userGroups.indexOf(group.Name) != -1) { userInGroups.push(group); } else { result.push(group); } }); } else { result = groups; } result.sort((a: Models.Group, b: Models.Group) => { return a.Name.localeCompare(b.Name); }); userInGroups.sort((a: Models.Group, b: Models.Group) => { return a.Name.localeCompare(b.Name); }); return userInGroups.concat(result); } } }