64 lines
1.8 KiB
TypeScript

/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. 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.
*/
import { User } from './general-user.model';
export class CommentModel {
id: string | number;
message: string;
created: Date;
createdBy: User;
isSelected: boolean;
get hasAvatarPicture(): boolean {
return !!this.createdBy && !!(this.createdBy['pictureId'] || this.createdBy['avatarId']);
}
get userDisplayName(): string {
let result = '';
if (this.createdBy) {
result = `${this.createdBy.firstName || ''} ${this.createdBy.lastName || ''}`;
}
return result.trim();
}
get userInitials(): string {
let result = '';
if (this.createdBy) {
if (this.createdBy.firstName) {
result = this.createdBy.firstName[0];
}
if (this.createdBy.lastName) {
result += this.createdBy.lastName[0];
}
}
return result.toUpperCase();
}
constructor(obj?: any) {
if (obj) {
this.id = obj.id;
this.message = obj.message;
this.created = obj.created;
this.createdBy = new User(obj.createdBy);
this.isSelected = obj.isSelected ? obj.isSelected : false;
}
}
}