2018-07-05 15:58:15 +02:00
|
|
|
import { Component } from '@angular/core';
|
2018-07-04 05:33:12 +02:00
|
|
|
|
|
|
|
import { ApiService } from 'jslib/abstractions/api.service';
|
|
|
|
import { CollectionService } from 'jslib/abstractions/collection.service';
|
|
|
|
import { FolderService } from 'jslib/abstractions/folder.service';
|
2018-07-04 05:43:57 +02:00
|
|
|
import { I18nService } from 'jslib/abstractions/i18n.service';
|
2018-07-04 05:33:12 +02:00
|
|
|
|
|
|
|
import { CollectionData } from 'jslib/models/data/collectionData';
|
|
|
|
import { Collection } from 'jslib/models/domain/collection';
|
|
|
|
import { Organization } from 'jslib/models/domain/organization';
|
|
|
|
import { CollectionView } from 'jslib/models/view/collectionView';
|
|
|
|
|
2018-07-05 19:14:33 +02:00
|
|
|
import { GroupingsComponent as BaseGroupingsComponent } from '../../vault/groupings.component';
|
2018-07-05 15:58:15 +02:00
|
|
|
|
2018-07-04 05:33:12 +02:00
|
|
|
@Component({
|
|
|
|
selector: 'app-org-vault-groupings',
|
2018-07-05 19:14:33 +02:00
|
|
|
templateUrl: '../../vault/groupings.component.html',
|
2018-07-04 05:33:12 +02:00
|
|
|
})
|
|
|
|
export class GroupingsComponent extends BaseGroupingsComponent {
|
|
|
|
organization: Organization;
|
|
|
|
|
|
|
|
constructor(collectionService: CollectionService, folderService: FolderService,
|
2018-07-04 05:43:57 +02:00
|
|
|
private apiService: ApiService, private i18nService: I18nService) {
|
2018-07-04 05:33:12 +02:00
|
|
|
super(collectionService, folderService);
|
|
|
|
}
|
|
|
|
|
|
|
|
async loadCollections() {
|
2018-07-05 16:48:51 +02:00
|
|
|
if (!this.organization.isAdmin) {
|
2018-07-04 05:33:12 +02:00
|
|
|
await super.loadCollections(this.organization.id);
|
2018-07-05 16:48:51 +02:00
|
|
|
return;
|
2018-07-04 05:33:12 +02:00
|
|
|
}
|
2018-07-05 16:48:51 +02:00
|
|
|
const collections = await this.apiService.getCollections(this.organization.id);
|
|
|
|
if (collections != null && collections.data != null && collections.data.length) {
|
2018-07-06 18:49:06 +02:00
|
|
|
const collectionDomains = collections.data.map((r) => new Collection(new CollectionData(r)));
|
|
|
|
this.collections = await this.collectionService.decryptMany(collectionDomains);
|
2018-07-05 16:48:51 +02:00
|
|
|
} else {
|
|
|
|
this.collections = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
const unassignedCollection = new CollectionView();
|
|
|
|
unassignedCollection.name = this.i18nService.t('unassigned');
|
|
|
|
unassignedCollection.id = 'unassigned';
|
|
|
|
unassignedCollection.organizationId = this.organization.id;
|
|
|
|
unassignedCollection.readOnly = true;
|
|
|
|
this.collections.push(unassignedCollection);
|
2018-07-04 05:33:12 +02:00
|
|
|
}
|
|
|
|
}
|