Your tablet pin number is: {{ ' ' + pin + ' ' }}
+
myPlanet Server pin: {{ ' ' + pin + ' ' }}
Reset Pin
diff --git a/src/app/meetups/meetups.service.ts b/src/app/meetups/meetups.service.ts
index c7fa5773ee..d1f1f37820 100644
--- a/src/app/meetups/meetups.service.ts
+++ b/src/app/meetups/meetups.service.ts
@@ -96,9 +96,16 @@ export class MeetupService {
openDeleteDialog(meetups: any[] | any, callback) {
const isMany = meetups.length > 1;
const displayName = isMany ? '' : (meetups[0] || meetups).title;
- const recurringInfo = (meetups[0] || meetups).recurring && (meetups[0] || meetups).recurring !== 'none' && (meetups[0] || meetups).recurringNumber
- ? `(Recurs ${ (meetups[0] || meetups).recurring} for ${ (meetups[0] || meetups).recurringNumber } ${ (meetups[0] || meetups).recurring === 'daily' ? 'days' : 'weeks' })`
- : '';
+ const recurringInfo =
+ (meetups[0] || meetups).recurring &&
+ (meetups[0] || meetups).recurring !== 'none' &&
+ (meetups[0] || meetups).recurringNumber
+ ? `(Recurs ${(meetups[0] || meetups).recurring} for ${
+ (meetups[0] || meetups).recurringNumber
+ } ${
+ (meetups[0] || meetups).recurring === 'daily' ? 'days' : 'weeks'
+ })`
+ : '';
this.deleteDialog = this.dialog.open(DialogsPromptComponent, {
data: {
okClick: this.deleteMeetups([ meetups ].flat(), displayName, callback),
diff --git a/src/app/news/news-list.component.ts b/src/app/news/news-list.component.ts
index 61d3ea892a..fb0b0cf5bd 100644
--- a/src/app/news/news-list.component.ts
+++ b/src/app/news/news-list.component.ts
@@ -115,7 +115,8 @@ export class NewsListComponent implements OnChanges {
data: {
okClick: this.deleteNews(news),
changeType: 'delete',
- type: 'news'
+ type: 'news',
+ displayName: news.message
}
});
}
@@ -134,7 +135,7 @@ export class NewsListComponent implements OnChanges {
this.deleteDialog.close();
},
onError: (error) => {
- this.planetMessageService.showAlert($localize`There was a problem deleting this news.`);
+ this.planetMessageService.showAlert($localize`There was a problem deleting this message.`);
}
};
}
diff --git a/src/app/news/news.service.ts b/src/app/news/news.service.ts
index 32bfcab631..de318dab2c 100644
--- a/src/app/news/news.service.ts
+++ b/src/app/news/news.service.ts
@@ -54,7 +54,7 @@ export class NewsService {
return ((item.viewIn || []).find(view => view._id === viewId) || {}).sharedDate;
}
- postNews(post, successMessage = $localize`Thank you for submitting your news`, isMessageEdit = true) {
+ postNews(post, successMessage = $localize`Thank you for submitting your message`, isMessageEdit = true) {
const { configuration } = this.stateService;
const message = typeof post.message === 'string' ? post.message : post.message.text;
const images = this.createImagesArray(post, message);
@@ -76,7 +76,7 @@ export class NewsService {
}
deleteNews(post) {
- return this.postNews({ ...post, _deleted: true }, $localize`Post deleted`);
+ return this.postNews({ ...post, _deleted: true }, $localize`Message deleted`);
}
createImagesArray(post, message) {
@@ -90,7 +90,7 @@ export class NewsService {
return this.couchService.bulkDocs(this.dbName, replies.map(reply => ({ ...reply.doc, replyTo: newReplyToId })));
}
- shareNews(news, planets?: any[], successMessage = $localize`News has been successfully shared`) {
+ shareNews(news, planets?: any[], successMessage = $localize`Message has been successfully shared`) {
const viewInObject = (planet) => (
{ '_id': `${planet.code}@${planet.parentCode}`, section: 'community', sharedDate: this.couchService.datePlaceholder }
);
diff --git a/src/app/resources/resources-add.component.html b/src/app/resources/resources-add.component.html
index 3ac3c770a9..f5978236eb 100644
--- a/src/app/resources/resources-add.component.html
+++ b/src/app/resources/resources-add.component.html
@@ -86,7 +86,7 @@
-
+
File Upload:
File size cannot exceed more than 512 MB
diff --git a/src/app/resources/resources-add.scss b/src/app/resources/resources-add.scss
index 4f4a5cb9ac..b93107fbbd 100644
--- a/src/app/resources/resources-add.scss
+++ b/src/app/resources/resources-add.scss
@@ -22,5 +22,11 @@
.form-container {
width: auto;
}
+
+ .file-upload {
+ display: flex;
+ flex-direction: column;
+ }
+
}
}
diff --git a/src/app/resources/resources.scss b/src/app/resources/resources.scss
index b73f711a42..5e803920cf 100644
--- a/src/app/resources/resources.scss
+++ b/src/app/resources/resources.scss
@@ -44,6 +44,19 @@ $label-height: 1rem;
}
}
+.list-content-menu {
+ &.list-content-menu-auto {
+ .header {
+ word-break: break-word;
+ max-width: 100%;
+
+ a {
+ display: inline-block;
+ }
+ }
+ }
+}
+
.ellipsis-menu {
text-align: center;
}
@@ -56,6 +69,14 @@ $label-height: 1rem;
justify-content: center;
}
+.tags-list mat-chip {
+ max-width: 200px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ display: inline-block;
+}
+
@media(max-width: $screen-md) {
.resources-list {
.mat-column-createdDate {
diff --git a/src/app/shared/auth-guard.service.ts b/src/app/shared/auth-guard.service.ts
index c19ec8debe..5461ff3422 100644
--- a/src/app/shared/auth-guard.service.ts
+++ b/src/app/shared/auth-guard.service.ts
@@ -45,6 +45,15 @@ export class AuthService {
// For main app (which requires login). Uses canActivateChild to check on every route
// change if session has expired
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable
{
+ let currentRoute: ActivatedRouteSnapshot | null = route;
+
+ while (currentRoute) {
+ if (currentRoute.data && currentRoute.data.requiresAuth === false) {
+ return of(true);
+ }
+ currentRoute = currentRoute.parent;
+ }
+
return this.checkUser(state.url);
}
diff --git a/src/app/shared/dialogs/dialogs-announcement.component.html b/src/app/shared/dialogs/dialogs-announcement.component.html
index 4754422790..79ad83396a 100644
--- a/src/app/shared/dialogs/dialogs-announcement.component.html
+++ b/src/app/shared/dialogs/dialogs-announcement.component.html
@@ -1,6 +1,6 @@
diff --git a/src/app/shared/dialogs/dialogs-announcement.component.scss b/src/app/shared/dialogs/dialogs-announcement.component.scss
index f3d53594ca..fd1a6d80aa 100644
--- a/src/app/shared/dialogs/dialogs-announcement.component.scss
+++ b/src/app/shared/dialogs/dialogs-announcement.component.scss
@@ -55,8 +55,9 @@
background-color: $primary;
transition: width 0.5s;
display: flex;
- justify-content: center;
align-items: center;
+ white-space: nowrap;
+ padding: 0 10px;
}
.thermometer-label {
diff --git a/src/app/shared/dialogs/dialogs-announcement.component.ts b/src/app/shared/dialogs/dialogs-announcement.component.ts
index ec17b7215b..93cbade868 100644
--- a/src/app/shared/dialogs/dialogs-announcement.component.ts
+++ b/src/app/shared/dialogs/dialogs-announcement.component.ts
@@ -1,8 +1,8 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { MatDialogRef } from '@angular/material/dialog';
import { Router } from '@angular/router';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
+import { Subject, of, Observable } from 'rxjs';
+import { takeUntil, catchError, map, switchMap } from 'rxjs/operators';
import { findDocuments } from '../../shared/mangoQueries';
import { CouchService } from '../couchdb.service';
@@ -11,20 +11,19 @@ import { NewsService } from '../../news/news.service';
import { StateService } from '../state.service';
import { SubmissionsService } from '../../submissions/submissions.service';
import { UserService } from '../user.service';
-import { UsersService } from '../../users/users.service';
import { UserChallengeStatusService } from '../user-challenge-status.service';
import { planetAndParentId } from '../../manager-dashboard/reports/reports.utils';
export const includedCodes = [ 'guatemala', 'san.pablo', 'xela', 'okuro', 'uriur', 'mutugi', 'vi' ];
export const challengeCourseId = '4e6b78800b6ad18b4e8b0e1e38a98cac';
export const examId = '4e6b78800b6ad18b4e8b0e1e38b382ab';
-export const challengePeriod = (new Date() > new Date(2024, 10, 31)) && (new Date() < new Date(2024, 12, 1));
+export const challengePeriod = (new Date() > new Date(2024, 10, 31)) && (new Date() < new Date(2025, 0, 16));
@Component({
template: `
@@ -67,7 +66,6 @@ export class DialogsAnnouncementComponent implements OnInit, OnDestroy {
private stateService: StateService,
private submissionsService: SubmissionsService,
private userService: UserService,
- private usersService: UsersService,
private userStatusService: UserChallengeStatusService
) {}
@@ -90,6 +88,7 @@ export class DialogsAnnouncementComponent implements OnInit, OnDestroy {
}
initializeData() {
+ this.fetchMembers().subscribe(members => { this.members = members; });
this.coursesService.requestCourses();
this.newsService.requestNews({
selectors: {
@@ -100,7 +99,6 @@ export class DialogsAnnouncementComponent implements OnInit, OnDestroy {
},
viewId: this.teamId
});
- this.fetchMembers();
this.fetchCourseAndNews();
this.fetchEnrolledMembers();
}
@@ -158,16 +156,22 @@ export class DialogsAnnouncementComponent implements OnInit, OnDestroy {
);
}
- fetchMembers() {
- this.usersService.getAllUsers().subscribe((users: any) => {
- this.members = users.map((member: any) => {
- const [ , memberName ] = member?._id.split(':');
- return {
- ...member,
- name: memberName,
- };
- });
- });
+ fetchMembers(): Observable
{
+ return this.couchService.findAll('login_activities', findDocuments({
+ type: 'login',
+ loginTime: { $gte: this.startDate.getTime() }
+ }, [ 'user' ])).pipe(
+ catchError(() => of([])),
+ map((res: any[]) => Array.from(new Set(res.map(doc => doc.user)))),
+ switchMap(uniqueUsers => {
+ if (uniqueUsers.length === 0) { return of([]); }
+ return this.couchService.findAll(
+ '_users',
+ findDocuments({ name: { $in: uniqueUsers } }, [ '_id', 'name' ])
+ );
+ }),
+ catchError(() => of([]))
+ );
}
fetchEnrolledMembers() {
diff --git a/src/app/shared/dialogs/dialogs-prompt.component.html b/src/app/shared/dialogs/dialogs-prompt.component.html
index 3c67eab8ba..456c4b973f 100644
--- a/src/app/shared/dialogs/dialogs-prompt.component.html
+++ b/src/app/shared/dialogs/dialogs-prompt.component.html
@@ -17,6 +17,7 @@
event {event}
transaction {transaction}
link {link}
+ news {message}
report {report}}?
}
many
diff --git a/src/app/shared/forms/planet-tag-input-dialog.component.ts b/src/app/shared/forms/planet-tag-input-dialog.component.ts
index 8c549c019e..1e26049b29 100644
--- a/src/app/shared/forms/planet-tag-input-dialog.component.ts
+++ b/src/app/shared/forms/planet-tag-input-dialog.component.ts
@@ -21,7 +21,7 @@ import { DialogsPromptComponent } from '../../shared/dialogs/dialogs-prompt.comp
}
:host mat-dialog-content {
overflow-y: auto;
- max-height: calc(100vh - 100px);
+ max-height: calc(100vh - 100px);
}
:host .mat-list-option span {
font-weight: inherit;
diff --git a/src/app/submissions/submissions.component.html b/src/app/submissions/submissions.component.html
index 950e0b2fbf..cd9fd16f52 100644
--- a/src/app/submissions/submissions.component.html
+++ b/src/app/submissions/submissions.component.html
@@ -62,7 +62,7 @@
Course Name
- {{element.courseTitle}}
+ {{element.courseTitle || element.parent.courseTitle}}
Course Step
diff --git a/src/app/surveys/surveys.component.html b/src/app/surveys/surveys.component.html
index cd3302a9bd..a94b93f4ed 100644
--- a/src/app/surveys/surveys.component.html
+++ b/src/app/surveys/surveys.component.html
@@ -1,4 +1,4 @@
-
+
arrow_back
@@ -11,7 +11,7 @@
-
+
add
@@ -61,8 +61,8 @@
Action
- edit Edit
- send Send
+ edit Edit
+ send Send
fiber_manual_record Record
diff --git a/src/app/surveys/surveys.component.ts b/src/app/surveys/surveys.component.ts
index 8df508e2fc..5079e926d3 100644
--- a/src/app/surveys/surveys.component.ts
+++ b/src/app/surveys/surveys.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';
+import { Component, OnInit, ViewChild, AfterViewInit, OnDestroy, Input } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { FormGroup } from '@angular/forms';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
@@ -25,6 +25,7 @@ import { DialogsFormService } from '../shared/dialogs/dialogs-form.service';
import { DialogsAddTableComponent } from '../shared/dialogs/dialogs-add-table.component';
@Component({
+ selector: 'planet-surveys',
templateUrl: './surveys.component.html',
styleUrls: [ './surveys.component.scss' ]
})
@@ -44,6 +45,8 @@ export class SurveysComponent implements OnInit, AfterViewInit, OnDestroy {
message = '';
configuration = this.stateService.configuration;
parentCount = 0;
+ routeTeamId = this.route.parent?.snapshot.paramMap.get('teamId') || null;
+ @Input() teamId?: string;
constructor(
private couchService: CouchService,
@@ -79,7 +82,17 @@ export class SurveysComponent implements OnInit, AfterViewInit, OnDestroy {
}).length
})),
...this.createParentSurveys(submissions)
- ];
+ ].filter(survey => {
+ if (this.routeTeamId) {
+ return survey.teamId === this.routeTeamId;
+ }
+
+ if (this.teamId) {
+ return survey.teamId === this.teamId;
+ } else {
+ return true;
+ }
+ });
this.surveys.data = this.surveys.data.map((data: any) => ({ ...data, courseTitle: data.course ? data.course.courseTitle : '' }));
this.dialogsLoadingService.stop();
});
@@ -245,7 +258,7 @@ export class SurveysComponent implements OnInit, AfterViewInit, OnDestroy {
recordSurvey(survey: any) {
this.submissionsService.createSubmission(survey, 'survey').subscribe((res: any) => {
this.router.navigate([
- 'dispense',
+ this.teamId ? 'surveys/dispense' : 'dispense',
{ questionNum: 1, submissionId: res.id, status: 'pending', mode: 'take' }
], { relativeTo: this.route });
});
diff --git a/src/app/surveys/surveys.module.ts b/src/app/surveys/surveys.module.ts
index c9594d40bb..35294a277a 100644
--- a/src/app/surveys/surveys.module.ts
+++ b/src/app/surveys/surveys.module.ts
@@ -23,6 +23,7 @@ import { SharedComponentsModule } from '../shared/shared-components.module';
SurveysRouterModule,
SharedComponentsModule
],
+ exports: [ SurveysComponent ],
declarations: [
SurveysComponent
]
diff --git a/src/app/tasks/tasks.component.html b/src/app/tasks/tasks.component.html
index 73ad09a824..16522e4336 100644
--- a/src/app/tasks/tasks.component.html
+++ b/src/app/tasks/tasks.component.html
@@ -15,7 +15,8 @@
{{task.title}}
- Deadline: {{task.deadline | date}} {{task.deadline | date: 'shortTime'}}
+ Deadline: {{task.deadline | date}} {{task.deadline | date: 'shortTime'}}
Completed: {{task.completedTime | date}} {{task.completedTime | date: 'shortTime'}}
now;
+
+ return isWithinNextDay;
+ }
+
+ isTaskOverdue(task): boolean {
+ if (task.completed || !task.deadline) { return false; }
+
+ const now = new Date();
+ const deadline = new Date(task.deadline);
+ return deadline < now;
+ }
+
openAddDialog(additionalFields, task: any = {}, onSuccess = (res) => {}) {
const { fields, formGroup } = this.tasksService.addDialogForm(task);
this.dialogsFormService.openDialogsForm(task.title ? $localize`Edit Task` : $localize`Add Task`, fields, formGroup, {
diff --git a/src/app/tasks/tasks.scss b/src/app/tasks/tasks.scss
index 65c5ece91c..14e3ba9115 100644
--- a/src/app/tasks/tasks.scss
+++ b/src/app/tasks/tasks.scss
@@ -19,6 +19,14 @@ planet-tasks {
}
}
+ .deadline-soon{
+ color: #F6BE00
+ }
+
+ .deadline-passed{
+ color: red
+ }
+
mat-button-toggle-group {
font-size: 14px;
diff --git a/src/app/teams/teams-router.module.ts b/src/app/teams/teams-router.module.ts
index b686e4f9bc..ba8a036766 100644
--- a/src/app/teams/teams-router.module.ts
+++ b/src/app/teams/teams-router.module.ts
@@ -6,6 +6,10 @@ import { TeamsViewComponent } from './teams-view.component';
const routes: Routes = [
{ path: '', component: TeamsComponent },
{ path: 'view/:teamId', component: TeamsViewComponent },
+ {
+ path: 'view/:teamId/surveys',
+ loadChildren: () => import('../surveys/surveys.module').then(m => m.SurveysModule)
+ },
{ path: 'users', loadChildren: () => import('../users/users.module').then(m => m.UsersModule) },
];
@NgModule({
diff --git a/src/app/teams/teams-view.component.html b/src/app/teams/teams-view.component.html
index 4f2a7d5b8b..ce128346a2 100644
--- a/src/app/teams/teams-view.component.html
+++ b/src/app/teams/teams-view.component.html
@@ -43,6 +43,7 @@ {{configuration
+ Manage Surveys
Add Members
@@ -184,7 +185,7 @@ {{configuration
-
+
Courses ({{team?.courses?.length || 0}})
@@ -211,6 +212,9 @@ {{configuration
+
+
+
{ mode, select, team {Join Requests} enterprise {Applicants} } ({{requests.length}})
diff --git a/src/app/teams/teams-view.scss b/src/app/teams/teams-view.scss
index 91ff662210..a5b4639e48 100644
--- a/src/app/teams/teams-view.scss
+++ b/src/app/teams/teams-view.scss
@@ -32,6 +32,14 @@
margin: 0;
}
+ .mat-subheading-2 b {
+ display: inline-block;
+ max-width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
.toolbar-button{
flex-shrink: 0;
}
diff --git a/src/app/teams/teams.component.html b/src/app/teams/teams.component.html
index 033295d432..b2f889b592 100644
--- a/src/app/teams/teams.component.html
+++ b/src/app/teams/teams.component.html
@@ -43,8 +43,8 @@
Name
-
- {{element.doc.name}}
+
+ {{element.doc.name.length > 200 ? element.doc.name.slice(0, 200) + '...': element.doc.name }}
check
diff --git a/src/app/teams/teams.module.ts b/src/app/teams/teams.module.ts
index 11b2614760..c77877f90b 100644
--- a/src/app/teams/teams.module.ts
+++ b/src/app/teams/teams.module.ts
@@ -18,6 +18,7 @@ import { TeamsMemberComponent } from './teams-member.component';
import { TeamsReportsComponent } from './teams-reports.component';
import { TeamsReportsDialogComponent } from './teams-reports-dialog.component';
import { TeamsReportsDetailComponent } from './teams-reports-detail.component';
+import { SurveysModule } from '../surveys/surveys.module';
@NgModule({
exports: [ TeamsViewComponent, TeamsComponent, TeamsViewFinancesComponent, TeamsMemberComponent, TeamsReportsComponent ],
@@ -34,6 +35,7 @@ import { TeamsReportsDetailComponent } from './teams-reports-detail.component';
SharedComponentsModule,
PlanetCalendarModule,
FormsModule,
+ SurveysModule
],
declarations: [
TeamsComponent,
diff --git a/src/app/teams/teams.scss b/src/app/teams/teams.scss
index 0e6a2cfae0..0af5144e31 100644
--- a/src/app/teams/teams.scss
+++ b/src/app/teams/teams.scss
@@ -26,10 +26,33 @@
justify-content: center;
}
- @media screen and (max-width: #{$screen-sm}) {
+ .team-name{
+ max-width: 95%;
+ overflow: hidden;
+ }
+
+ .mat-cell button, .mat-cell div button[mat-raised-button] {
+ width: 150px;
+ text-align: center;
+ padding: 8px 12px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ @media (max-width: $screen-sm) {
mat-cell button {
min-width: 0;
padding: 0 3px;
}
+
+ .mat-cell button, .mat-cell div button[mat-raised-button] {
+ width: 50px;
+ }
+
+ .button-container {
+ flex-direction: column;
+ align-items: flex-start;
+ }
}
}
diff --git a/src/app/users/users-achievements/users-achievements-update.component.html b/src/app/users/users-achievements/users-achievements-update.component.html
index 2240d819ae..7147bde432 100644
--- a/src/app/users/users-achievements/users-achievements-update.component.html
+++ b/src/app/users/users-achievements/users-achievements-update.component.html
@@ -1,6 +1,7 @@
arrow_back
- Edit Achievements
+ Add Achievements
+ Edit Achievements
@@ -91,7 +92,7 @@
- Update
+ Submit
Cancel
diff --git a/src/app/users/users-achievements/users-achievements-update.component.ts b/src/app/users/users-achievements/users-achievements-update.component.ts
index 162823a75d..0b6c8fd501 100644
--- a/src/app/users/users-achievements/users-achievements-update.component.ts
+++ b/src/app/users/users-achievements/users-achievements-update.component.ts
@@ -20,11 +20,11 @@ import { showFormErrors } from '../../shared/table-helpers';
encapsulation: ViewEncapsulation.None
})
export class UsersAchievementsUpdateComponent implements OnInit, OnDestroy {
-
user = this.userService.get();
configuration = this.stateService.configuration;
docInfo = { '_id': this.user._id + '@' + this.configuration.code, '_rev': undefined };
readonly dbName = 'achievements';
+ achievementNotFound = false;
editForm: FormGroup;
profileForm: FormGroup;
private onDestroy$ = new Subject();
@@ -59,20 +59,25 @@ export class UsersAchievementsUpdateComponent implements OnInit, OnDestroy {
ngOnInit() {
this.profileForm.patchValue(this.user);
this.usersAchievementsService.getAchievements(this.docInfo._id)
- .pipe(catchError(() => this.usersAchievementsService.getAchievements(this.user._id)))
- .subscribe((achievements) => {
- this.editForm.patchValue(achievements);
- this.editForm.controls.achievements = this.fb.array(achievements.achievements || []);
- this.editForm.controls.references = this.fb.array(achievements.references || []);
- this.editForm.controls.links = this.fb.array(achievements.links || []);
- // Keeping older otherInfo property so we don't lose this info on database
- this.editForm.controls.otherInfo = this.fb.array(achievements.otherInfo || []);
- if (this.docInfo._id === achievements._id) {
- this.docInfo._rev = achievements._rev;
- }
- }, (error) => {
- console.log(error);
- });
+ .pipe(
+ catchError(() => this.usersAchievementsService.getAchievements(this.user._id))
+ )
+ .subscribe((achievements) => {
+ this.editForm.patchValue(achievements);
+ this.editForm.controls.achievements = this.fb.array(achievements.achievements || []);
+ this.editForm.controls.references = this.fb.array(achievements.references || []);
+ this.editForm.controls.links = this.fb.array(achievements.links || []);
+ // Keeping older otherInfo property so we don't lose this info on database
+ this.editForm.controls.otherInfo = this.fb.array(achievements.otherInfo || []);
+
+ if (this.docInfo._id === achievements._id) {
+ this.docInfo._rev = achievements._rev;
+ }
+ }, (error) => {
+ console.log(error);
+ this.achievementNotFound = true;
+ });
+
this.planetStepListService.stepMoveClick$.pipe(takeUntil(this.onDestroy$)).subscribe(
() => this.editForm.controls.dateSortOrder.setValue('none')
);
diff --git a/src/app/users/users-achievements/users-achievements.component.html b/src/app/users/users-achievements/users-achievements.component.html
index 4f2f70d554..1ccb50c49a 100644
--- a/src/app/users/users-achievements/users-achievements.component.html
+++ b/src/app/users/users-achievements/users-achievements.component.html
@@ -31,39 +31,39 @@ {{user.firstName}} {{user.middleName}} {{user.lastName}}
Birthplace: {{' ' + user.birthplace}}
-
+
My Purpose
-
+
My Goals
-
0">
+
My Certifications
- {{certification.name}}
+ {{certification.name}}
-
0">
+
My Links
- {{link.title}}:
+ {{link.title}}:
{{link.url}}
-
0">
+
My Achievements
@@ -85,8 +85,8 @@ My Achievements
-
0">
+
My References
diff --git a/src/app/users/users-achievements/users-achievements.component.ts b/src/app/users/users-achievements/users-achievements.component.ts
index de990a2643..4c420cea89 100644
--- a/src/app/users/users-achievements/users-achievements.component.ts
+++ b/src/app/users/users-achievements/users-achievements.component.ts
@@ -133,8 +133,8 @@ export class UsersAchievementsComponent implements OnInit {
{
text: `
${this.user.firstName} ${this.user.middleName ? this.user.middleName : ''} ${this.user.lastName}
- ${formattedBirthDate ? $localize`Birthplace: ${formattedBirthDate}` : ''}
- ${this.user.Birthplace ? $localize`Birthdate: ${this.user.Birthplace}` : ''}
+ ${formattedBirthDate ? $localize`Birthdate: ${formattedBirthDate}` : ''}
+ ${this.user.birthplace ? $localize`Birthplace: ${this.user.birthplace}` : ''}
`,
alignment: 'center',
},
diff --git a/src/app/users/users-achievements/users-achievements.scss b/src/app/users/users-achievements/users-achievements.scss
index c280f57f51..27a8894a54 100644
--- a/src/app/users/users-achievements/users-achievements.scss
+++ b/src/app/users/users-achievements/users-achievements.scss
@@ -10,10 +10,12 @@
text-align: center;
}
- .certs-list .mat-list-item{
- display: flex;
- justify-content: center;
- text-align: center;
+ .certs-list {
+ .cert-item {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
}
& mat-list, & ul, & ol {
@@ -76,6 +78,7 @@
grid-area: txt;
display: flex;
align-items: center;
+ max-width: 75%;
}
.achievement-date {
@@ -92,6 +95,10 @@
}
}
+ .link-title {
+ max-width: 75%;
+ }
+
.styled-link {
color: #007bff;
text-decoration: none;
diff --git a/src/app/users/users-table.component.html b/src/app/users/users-table.component.html
index 613bf4c617..f49f5f43bd 100644
--- a/src/app/users/users-table.component.html
+++ b/src/app/users/users-table.component.html
@@ -127,10 +127,10 @@
Demote
-
+
visibility
View Profile
-
+
diff --git a/src/app/users/users-table.scss b/src/app/users/users-table.scss
index dc3458c0cd..68bc3af1fb 100644
--- a/src/app/users/users-table.scss
+++ b/src/app/users/users-table.scss
@@ -23,6 +23,15 @@ button-container {
justify-content: center;
}
+.mat-cell button, .mat-cell div button[mat-raised-button] {
+ width: 150px;
+ text-align: center;
+ padding: 8px 12px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
@media(max-width: $screen-md) {
.mat-column-visitCount, .mat-column-joinDate, .mat-column-lastLogin {
max-width: 70px;
@@ -30,8 +39,7 @@ button-container {
}
@media (max-width: $screen-sm) {
- mat-cell button, .visibility-cell {
- min-width: 0;
- padding: 0 3px;
+ .mat-cell button, .mat-cell div button[mat-raised-button] {
+ width: 50px;
}
}
diff --git a/src/assets/challenge/dec challenge.jpeg b/src/assets/challenge/dec challenge.jpeg
new file mode 100644
index 0000000000..944b8beae6
Binary files /dev/null and b/src/assets/challenge/dec challenge.jpeg differ