1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-12 06:13:38 +00:00

[PM-24951] - update "My Items" icon to bwi-user (#16674)

* update "My Items" icon to bwi-user

* fix tests

* revert changse to reports. fix assign collections.

* revert remaining changes to reports
This commit is contained in:
Jordan Aasen
2025-10-02 14:39:13 -07:00
committed by GitHub
parent 83c457920e
commit 7a38b22667
11 changed files with 63 additions and 18 deletions

View File

@@ -14,7 +14,11 @@ import {
take, take,
} from "rxjs"; } from "rxjs";
import { CollectionService, CollectionView } from "@bitwarden/admin-console/common"; import {
CollectionService,
CollectionTypes,
CollectionView,
} from "@bitwarden/admin-console/common";
import { ViewCacheService } from "@bitwarden/angular/platform/view-cache"; import { ViewCacheService } from "@bitwarden/angular/platform/view-cache";
import { DynamicTreeNode } from "@bitwarden/angular/vault/vault-filter/models/dynamic-tree-node.model"; import { DynamicTreeNode } from "@bitwarden/angular/vault/vault-filter/models/dynamic-tree-node.model";
import { sortDefaultCollections } from "@bitwarden/angular/vault/vault-filter/services/vault-filter.service"; import { sortDefaultCollections } from "@bitwarden/angular/vault/vault-filter/services/vault-filter.service";
@@ -473,7 +477,14 @@ export class VaultPopupListFiltersService {
}); });
}), }),
map((tree) => map((tree) =>
tree.nestedList.map((c) => this.convertToChipSelectOption(c, "bwi-collection-shared")), tree.nestedList.map((c) =>
this.convertToChipSelectOption(
c,
c.node.type === CollectionTypes.DefaultUserCollection
? "bwi-user"
: "bwi-collection-shared",
),
),
), ),
shareReplay({ bufferSize: 1, refCount: true }), shareReplay({ bufferSize: 1, refCount: true }),
); );

View File

@@ -55,7 +55,10 @@
> >
<i <i
*ngIf="c.children.length === 0" *ngIf="c.children.length === 0"
class="bwi bwi-fw bwi-collection-shared" [class]="
'bwi bwi-fw ' +
(c.node.type === DefaultCollectionType ? 'bwi-user' : 'bwi-collection-shared')
"
aria-hidden="true" aria-hidden="true"
></i> ></i>
&nbsp;{{ c.node.name }} &nbsp;{{ c.node.name }}

View File

@@ -13,7 +13,12 @@
</td> </td>
<td bitCell [ngClass]="RowHeightClass" class="tw-min-w-fit"> <td bitCell [ngClass]="RowHeightClass" class="tw-min-w-fit">
<div aria-hidden="true"> <div aria-hidden="true">
<i class="bwi bwi-fw bwi-lg bwi-collection-shared"></i> <i
[class]="
'bwi bwi-fw bwi-lg ' +
(collection.type === DefaultCollectionType ? 'bwi-user' : 'bwi-collection-shared')
"
></i>
</div> </div>
</td> </td>
<td bitCell [ngClass]="RowHeightClass"> <td bitCell [ngClass]="RowHeightClass">

View File

@@ -2,7 +2,12 @@
// @ts-strict-ignore // @ts-strict-ignore
import { Component, EventEmitter, Input, Output } from "@angular/core"; import { Component, EventEmitter, Input, Output } from "@angular/core";
import { CollectionAdminView, Unassigned, CollectionView } from "@bitwarden/admin-console/common"; import {
CollectionAdminView,
Unassigned,
CollectionView,
CollectionTypes,
} from "@bitwarden/admin-console/common";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { CipherViewLike } from "@bitwarden/common/vault/utils/cipher-view-like-utils"; import { CipherViewLike } from "@bitwarden/common/vault/utils/cipher-view-like-utils";
@@ -26,6 +31,7 @@ export class VaultCollectionRowComponent<C extends CipherViewLike> {
protected RowHeightClass = RowHeightClass; protected RowHeightClass = RowHeightClass;
protected Unassigned = "unassigned"; protected Unassigned = "unassigned";
protected CollectionPermission = CollectionPermission; protected CollectionPermission = CollectionPermission;
protected DefaultCollectionType = CollectionTypes.DefaultUserCollection;
@Input() disabled: boolean; @Input() disabled: boolean;
@Input() collection: CollectionView; @Input() collection: CollectionView;

View File

@@ -12,7 +12,11 @@ import {
switchMap, switchMap,
} from "rxjs"; } from "rxjs";
import { CollectionService, CollectionView } from "@bitwarden/admin-console/common"; import {
CollectionService,
CollectionTypes,
CollectionView,
} from "@bitwarden/admin-console/common";
import { sortDefaultCollections } from "@bitwarden/angular/vault/vault-filter/services/vault-filter.service"; import { sortDefaultCollections } from "@bitwarden/angular/vault/vault-filter/services/vault-filter.service";
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
@@ -257,7 +261,8 @@ export class VaultFilterService implements VaultFilterServiceAbstraction {
const collectionCopy = cloneCollection( const collectionCopy = cloneCollection(
new CollectionView({ ...c, name: c.name }), new CollectionView({ ...c, name: c.name }),
) as CollectionFilter; ) as CollectionFilter;
collectionCopy.icon = "bwi-collection-shared"; collectionCopy.icon =
c.type === CollectionTypes.DefaultUserCollection ? "bwi-user" : "bwi-collection-shared";
const parts = c.name ? c.name.replace(/^\/+|\/+$/g, "").split(NestingDelimiter) : []; const parts = c.name ? c.name.replace(/^\/+|\/+$/g, "").split(NestingDelimiter) : [];
ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, undefined, NestingDelimiter); ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, undefined, NestingDelimiter);
} }

View File

@@ -7,6 +7,7 @@ import {
Unassigned, Unassigned,
CollectionView, CollectionView,
CollectionAdminService, CollectionAdminService,
CollectionTypes,
} from "@bitwarden/admin-console/common"; } from "@bitwarden/admin-console/common";
import { JslibModule } from "@bitwarden/angular/jslib.module"; import { JslibModule } from "@bitwarden/angular/jslib.module";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
@@ -152,9 +153,12 @@ export class VaultHeaderComponent {
} }
protected get icon() { protected get icon() {
return this.filter?.collectionId && this.filter.collectionId !== All if (!this.filter?.collectionId || this.filter.collectionId === All) {
? "bwi-collection-shared" return "";
: ""; }
return this.collection?.node.type === CollectionTypes.DefaultUserCollection
? "bwi-user"
: "bwi-collection-shared";
} }
/** /**

View File

@@ -4,7 +4,7 @@ import { Directive, EventEmitter, Input, Output } from "@angular/core";
// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop.
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { CollectionView } from "@bitwarden/admin-console/common"; import { CollectionTypes, CollectionView } from "@bitwarden/admin-console/common";
import { ITreeNodeObject } from "@bitwarden/common/vault/models/domain/tree-node"; import { ITreeNodeObject } from "@bitwarden/common/vault/models/domain/tree-node";
import { DynamicTreeNode } from "../models/dynamic-tree-node.model"; import { DynamicTreeNode } from "../models/dynamic-tree-node.model";
@@ -21,6 +21,7 @@ export class CollectionFilterComponent {
@Output() onNodeCollapseStateChange: EventEmitter<ITreeNodeObject> = @Output() onNodeCollapseStateChange: EventEmitter<ITreeNodeObject> =
new EventEmitter<ITreeNodeObject>(); new EventEmitter<ITreeNodeObject>();
@Output() onFilterChange: EventEmitter<VaultFilter> = new EventEmitter<VaultFilter>(); @Output() onFilterChange: EventEmitter<VaultFilter> = new EventEmitter<VaultFilter>();
DefaultCollectionType = CollectionTypes.DefaultUserCollection;
readonly collectionsGrouping: TopLevelTreeNode = { readonly collectionsGrouping: TopLevelTreeNode = {
id: "collections", id: "collections",

View File

@@ -49,7 +49,7 @@
*ngFor="let c of collections$ | async" *ngFor="let c of collections$ | async"
[value]="c" [value]="c"
[label]="c.name" [label]="c.name"
icon="bwi-collection-shared" [icon]="c.type === DefaultCollectionType ? 'bwi-user' : 'bwi-collection-shared'"
/> />
</ng-container> </ng-container>
</bit-select> </bit-select>

View File

@@ -29,7 +29,11 @@ import { combineLatestWith, filter, map, switchMap, takeUntil } from "rxjs/opera
// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop.
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { CollectionService, CollectionView } from "@bitwarden/admin-console/common"; import {
CollectionService,
CollectionTypes,
CollectionView,
} from "@bitwarden/admin-console/common";
import { JslibModule } from "@bitwarden/angular/jslib.module"; import { JslibModule } from "@bitwarden/angular/jslib.module";
import { import {
getOrganizationById, getOrganizationById,
@@ -103,6 +107,8 @@ import { ImportLastPassComponent } from "./lastpass";
providers: ImporterProviders, providers: ImporterProviders,
}) })
export class ImportComponent implements OnInit, OnDestroy, AfterViewInit { export class ImportComponent implements OnInit, OnDestroy, AfterViewInit {
DefaultCollectionType = CollectionTypes.DefaultUserCollection;
featuredImportOptions: ImportOption[]; featuredImportOptions: ImportOption[];
importOptions: ImportOption[]; importOptions: ImportOption[];
format: ImportType = null; format: ImportType = null;

View File

@@ -7,7 +7,7 @@ import { toSignal } from "@angular/core/rxjs-interop";
import { fromEvent, map, startWith } from "rxjs"; import { fromEvent, map, startWith } from "rxjs";
// eslint-disable-next-line no-restricted-imports // eslint-disable-next-line no-restricted-imports
import { CollectionView } from "@bitwarden/admin-console/common"; import { CollectionTypes, CollectionView } from "@bitwarden/admin-console/common";
import { JslibModule } from "@bitwarden/angular/jslib.module"; import { JslibModule } from "@bitwarden/angular/jslib.module";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
@@ -102,7 +102,9 @@ export class ItemDetailsV2Component {
getIconClass(item: Organization | CollectionView | FolderView): string { getIconClass(item: Organization | CollectionView | FolderView): string {
if (item instanceof CollectionView) { if (item instanceof CollectionView) {
return "bwi-collection-shared"; return item.type === CollectionTypes.DefaultUserCollection
? "bwi-user"
: "bwi-collection-shared";
} else if (item instanceof FolderView) { } else if (item instanceof FolderView) {
return "bwi-folder"; return "bwi-folder";
} }

View File

@@ -330,7 +330,8 @@ export class AssignCollectionsComponent implements OnInit, OnDestroy, AfterViewI
); );
}) })
.map((c) => ({ .map((c) => ({
icon: "bwi-collection-shared", icon:
c.type === CollectionTypes.DefaultUserCollection ? "bwi-user" : "bwi-collection-shared",
id: c.id, id: c.id,
labelName: c.name, labelName: c.name,
listName: c.name, listName: c.name,
@@ -371,7 +372,7 @@ export class AssignCollectionsComponent implements OnInit, OnDestroy, AfterViewI
collection.id !== this.params.activeCollection?.id, collection.id !== this.params.activeCollection?.id,
) )
.map((collection) => ({ .map((collection) => ({
icon: "bwi-collection-shared", icon: collection.icon,
id: collection.id, id: collection.id,
labelName: collection.labelName, labelName: collection.labelName,
listName: collection.listName, listName: collection.listName,
@@ -435,7 +436,8 @@ export class AssignCollectionsComponent implements OnInit, OnDestroy, AfterViewI
) )
.subscribe((collections) => { .subscribe((collections) => {
this.availableCollections = collections.map((c) => ({ this.availableCollections = collections.map((c) => ({
icon: "bwi-collection-shared", icon:
c.type === CollectionTypes.DefaultUserCollection ? "bwi-user" : "bwi-collection-shared",
id: c.id, id: c.id,
labelName: c.name, labelName: c.name,
listName: c.name, listName: c.name,