]> source.dussan.org Git - archiva.git/blob
7c9d7b10772a6e8f78bf9cecbc015d94029ac587
[archiva.git] /
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied.  See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19
20 import {Component, OnInit, Input, OnDestroy} from '@angular/core';
21 import {TranslateService} from "@ngx-translate/core";
22 import {UserService} from "../../../../services/user.service";
23 import {UserInfo} from "../../../../model/user-info";
24 import {EntityService} from "../../../../model/entity-service";
25 import {Observable, of} from "rxjs";
26 import {PagedResult} from "../../../../model/paged-result";
27
28 @Component({
29   selector: 'app-manage-users-list',
30   templateUrl: './manage-users-list.component.html',
31   styleUrls: ['./manage-users-list.component.scss']
32 })
33 export class ManageUsersListComponent implements OnInit {
34
35   @Input() heads: any;
36   service : EntityService<UserInfo>;
37   sortField = ["user_id"];
38   sortOrder = "asc";
39
40
41   constructor(private translator: TranslateService, private userService : UserService) {
42     this.service = function (searchTerm: string, offset: number, limit: number, orderBy: string[], order: string) : Observable<PagedResult<UserInfo>> {
43       console.log("Retrieving data " + searchTerm + "," + offset + "," + limit + "," + orderBy + "," + order);
44       return userService.query(searchTerm, offset, limit, orderBy, order);
45     }
46
47   }
48
49   ngOnInit(): void {
50     this.heads = {};
51     // We need to wait for the translator initialization and use the init key as step in.
52     this.translator.get('init').subscribe(() => {
53       // Only table headings for small columns that use icons
54       for (let suffix of ['validated', 'locked', 'password_change_required']) {
55         this.heads[suffix] = this.translator.instant('users.attributes.' + suffix);
56       }
57     });
58   }
59
60
61   changeSortOrder(order:string) {
62     if (this.sortOrder!=order) {
63       this.sortOrder = order;
64     }
65   }
66
67   private compareArrays(a1: string[], a2: string[]) {
68     let i = a1.length;
69     while (i--) {
70       if (a1[i] !== a2[i]) return false;
71     }
72     return true
73   }
74
75   sortCheck(fieldArray:string[]) {
76     return this.compareArrays(this.sortField, fieldArray);
77   }
78
79   isAscending() : boolean {
80     return this.sortOrder == "asc";
81   }
82
83
84
85
86
87
88
89
90
91 }